zoukankan      html  css  js  c++  java
  • Internet地址介绍

    为了使用服务,您必须能够找到它。Internet对诸如计算机之类的设备使用一种地址方案,以便可以定位它们。该寻址方案最初是在只有少数几台已连接的计算机时设计的,并且非常慷慨地允许232 地址,使用32位无符号整数。这些就是所谓的IPv4地址。

    近年来,已连接(或至少直接可寻址)的设备的数量有可能超过该数量,因此“现在”,我们将切换到IPv6寻址方式,以支持 2128 地址,使用无符号的128位整数。由于发达国家已经使用了几乎所有的IPv4地址池,因此转换很可能是由新兴国家强制执行的。

    IPv4 地址

    IPv4地址使用32位整数(4个字节)表示,这个地址定位到一个设备的一个网络接口。一般用点"." 分隔的四个十进制数(分别对应4个字节)来表示,如66.102.11.104.

    IP地址分为两部分:网络地址设备地址。曾几何时,IP地址的网络地址和设备地址是按照字节简单划分:

    • 在A类网络中,第一个字节标识网络,而最后三个节点标识设备。只有128个A类网络,这些网络是Internet领域的早期参与者拥有的,例如IBM,通用电气公司和MIT
    • B类网络使用前两个字节标识网络,使用后两个字节标识子网内的设备。这允许216个网络和每个子网中的216(65,536)个设备
    • C类网络使用前三个字节标识网络,最后一个字节来标识该网络中的设备。这允许28(实际上是254个,而不是256个)设备

    此方案效果不好,如您要在网络上安装400台计算机,254太小而65536太大。用二进制算术术语,您需要大约512。这可以通过使用 23 位网络地址和 9 位设备地址来实现。同样,如果您想要多达1024台设备,则使用 22 位网络地址和 10 位设备地址。

    给定设备的IP地址,知道网络地址使用了多少位N,就可以提取网络地址和该网络中的设备地址,这一过程相对简单。形成一个“网络掩码”,它是一个32位二进制数,前N个位全为1,其余的全零。例如,如果将16位用作网络地址,则掩码为11111111111111110000000000000000。使用二进制有点不方便,因此通常使用十进制字节。对于16位的网络地址的网络掩码是255.255.0.0,对于24比特网络地址是255.255.255.0,而对于23个地址将是255.255.254.0用于22个地址将是255.255.252.0。

    然后查找设备的网络,将其IP地址与网络掩码进行按位“与”运算,而子网中的设备地址与掩码的1的补充掩码与IP地址进行按位“与”运算。

    IPv6 地址

    互联网已经大大超出了最初的期望。最初慷慨的32位寻址方案即将用完。有一些不愉快的解决方法,例如NAT寻址,但是最终我们将不得不切换到更大的地址空间。IPv6使用128位地址(8个字节)。即使是字节也很难表示这样的地址,因此使用十六进制数字,将其分成4个数字一组并用冒号分隔":"。典型的地址可能是2002:c0e8:82e7:0:0:0:c0e8:82e7。

    这些地址不容易记住!DNS将变得更加重要。有一些技巧可以减少某些地址,例如消除零和重复的数字。例如,“ localhost”是0:0:0:0:0:0:0:1,可以缩写为::1。

  • 相关阅读:
    sql: table,view,function, procedure created MS_Description in sql server
    sql: sq_helptext
    sql:Oracle11g 表,视图,存储过程结构查询
    sql:MySQL 6.7 表,视图,存储过程结构查询
    csharp: MongoDB
    10个出色的NoSQL数据库
    算法习题---3.01猜数字游戏提示(UVa340)
    03--STL算法(常用算法)
    STL函数适配器
    02--STL算法(函数对象和谓词)
  • 原文地址:https://www.cnblogs.com/laop520/p/14432406.html
Copyright © 2011-2022 走看看