扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
在TCP/IP的四层模型中,每一层中的对等实体为了标识自己,需要拥有一个唯一的名字。在模型的最底层-主机到网络层,使用网络适配器的物理地址(MAC地址)标识处于同一个网段的不同主机;在网络互连层,使用IP地址来标识整个网络中不同的主机;在传输层,使用端口号来标识运行在某台主机上的不同网络应用程序;在应用层,使用易于辨别、易于记忆的主机地址来标识整个因特网中的不同主机。如图1所示。
图1 不同的层使用不同的名字
这里,我们将主要讨论网际互连层的地址-IP地址。
1 IP地址的格式
在目前广泛使用的IPv4中,IP地址由32位二进制数字组成。这32位二进制数字可以分为4个位域(octets)。每个位域8位二进制数,各位域之间被点号分开。
有时,为了便于识别、记忆,我们经常将每个位域的8位二进制数转化成为在0到255(00000000到11111111=28-1)范围内的十进制数字,称为点分十进制。如图2所示(为了便于计数,我们将每个位域中的8位二进制数用逗号分隔为两部分。在实际计算机内部表示时,并没有任何分隔符)。
图2 IP地址的格式
2 IP地址的种类
为了实现层次化管理,32比特的IP地址又被划分为两个部分:一部分用来标识网络,称为网络号(Network ID,NID);另一部分用来表示网络中的主机,称为主机号(Host ID,HID)。如图2中的IP地址210.31.233.1,210.31.233为网络号; 1为主机号,表示210.31.233网络中编号为1的主机。
IPv4中定义了5类IP地址,即:A、B、C、D、E类地址。不同类别的IP地址对网络号及主机号范围的规定是不同的,用于匹配不同规模的网络。
2.1 A类
图3 A类地址
A类地址的特点是第1个位域的8位二进制数用来标识网络号,且第1个位域的最高位为0,它和第1个位域的其余7位共同组成了网络号。剩余的24位二进制位代表主机号。如图3所示。
网络号全为0的地址不能使用。因此,最小的A类网络号为1,最大的A类网络号为127(01111111=27-1)。但网络号127被保留做循环测试使用,不能分配给任何一台主机。所以A类地址的网络号范围为:1-126。
对于A类网络来说,因为可以用24位二进制数标识主机号,所以每个A类网络可以容纳224-2=16777214台主机(IPv4中规定主机号的各位不能全为0或全为1)。
可见,可以用于分配的A类IP地址范围是:1.x.y.z-126.x.y.z,其中x、y、z的各个二进制位不能全为0或全为1。例如,10.255.255.255是不正确A类IP地址,不能分配给主机使用,而10.255.255.254是合法的A类IP地址。
2.2 B类
图4 B类地址
B类地址的特点是第1、2个位域的16位二进制数用来标识网络号,且第1个位域的最高两位为10,它和其余的14位二进制数共同组成了网络号。剩余的16位二进制数代表主机号。如图4所示。
最小的B类网络号为128.0,最大的B类网络号为191.255。
对于B类网络来说,因为可以用除了最高两位以外的14位二进制数来标识网络号,所以一共可以有214=16384个B类网络。同时,因为可以用16位二进制数标识主机号,所以每个B类网络可以容纳216-2=65534台主机。
可见,可以用于分配的B类IP地址范围是:128.0.y.z-191.255.y.z,其中y、z的各个二进制位不能全为0或全为1。
2.3 C类
图5 C类地址
C类地址的特点是第1、2、3个位域的24位二进制数用来标识网络号,且第1个位域的最高三位为110,它和其余的21位二进制数共同组成了网络号。剩余的8位二进制位代表主机号。如图5所示。
最小的C类网络号为192.0.0,最大的C类网络号为223.255.255。
对于C类网络来说,因为可以用除了最高三位以外的21位二进制数标识网络号,所以一共可以有221=2097152个C类网络。同时,因为可以用8位二进制数标识主机号,所以每个C类网络可以容纳28-2=254台主机。
可见,可以用于分配的C类IP地址范围是:192.0.0.z-223.255.255.z,其中z的各个二进制位不能全为0或全为1。
2.4 D类
图6 D类地址
D类地址的第1个位域的最高位4位为1110。因此,第1个位域的取值范围是224~239。如图6所示。
D类地址属于比较特殊的IP地址类,它不区分网络号和主机号,也不能分配给具体的主机。
D类地址主要用于多播(multi-casting),用于向特定的一组(多台)主机发送广播消息。在RIPv2和OSPF动态路由协议中采用多播方式在一组路由器间传送和路由相关的信息。
2.5 E类
图7 E类地址
E类地址的第1个位域的最高位5位为11110。因此,第1个位域的取值范围是240~247。如图7所示。
E类地址被保留作为实验用。
2.6 其他
对于第1个位域的取值范围在248~254之间的IP地址保留不用。
2.7 IP地址的分配注意事项
在为主机分配IP地址时,必须注意以下问题:
网络号不能为127
网络号127被保留作为本机循环测试使用。例如,我们可以使用命令ping 127.0.0.1测试TCP/IP协议栈是否正确安装。如图8所示。在路由器中,同样支持循环测试地址的使用。
图8 本机循环测试地址的使用
主机号不能全为0或255
全0的主机号代表本网络,如210.31.233.0代表网络号为210.31.233的C类网络。全1的主机号代表对本网络的广播,如210.31.233.255代表对C类网络210.31.233.0的广播,称为直接广播。如果一个数据包中的目标地址是一个广播地址,它要求该网段中的所有主机必须接收此数据包。如果IP地址的32位全为1,即255.255.255.255,则代表有限广播,它的目标同样是网络中的所有主机。
0.0.0.0
IP地址0.0.0.0通常代表未知的源主机。当主机采用DHCP动态获取IP地址而无法获得合法IP地址时,会用IP地址0.0.0.0来表示源主机IP地址未知。如图9所示。
图9 未知的源主机
3 子网掩码
3.1 子网
子网(subnetwork)将网络划分为不同的部分,每一部分是一个独立的逻辑网络,称为子网。处于同一子网中的各主机的网络号是相同的,它们可以直接互相通信而不用经过路由器中转。
将网络划分为多个子网可以减小广播域的规模,减少广播对网络的不利影响。将网络划分为多个子网也便于实现层次化的管理。另外,将网络划分为多个子网也便于每个子网使用不同类型的网络架构。
3.2 子网掩码
子网掩码(subnetwork mask)用来与IP地址的各位按位进行"逻辑与"的运算,用来分辨网络号和主机号。
IPv4规定了A类、B类、C类的标准子网掩码:
A类:255.0.0.0
B类:255.255.0.0
C类:255.255.255.0
例如,对于标准的C类IP地址210.31.233.1来说,其标准子网掩码是:255.255.255.0。我们将IP地址210.31.233.1和其对应的子网掩码255.255.255.0分别化为二进制形式。然后,按位进行"逻辑与"运算,得到的结果中,被子网掩码中的"0"屏蔽掉的部分就是主机号,而被子网掩码中的"1"保留下来的部分就是网络号。如图10所示。即IP地址210.31.233.1表示C类网络210.31.233.0中的编号为1的主机。
图10 子网掩码的应用-1
又如,对于标准的B类IP地址160.133.50.131来说,其标准子网掩码是:255.255.0.0。我们将IP地址160.133.50.131和其对应的子网掩码255.255.0.0分别化为二进制形式。然后,按位进行"逻辑与"运算。从结果可看出IP地址160.133.50.131表示B类网络160.133.0.0中的编号为50.131的主机。如图11所示。
图11 子网掩码的应用-2
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者