面试官问:讲讲IP地址的分配原理?
阅读本文大概需要 6 分钟。
网络模型介绍
分类的IP地址
IP地址的表示方法
在A、B、C 三类地址中灰色的部分即为网络号,网络号的前三位是类别位,分别是0,10,110。
也就是说我们可以凭借这个类别位置来判断网络类别。
32位的总长度,由于A、B、C 三类网络号的长度的不同,导致A、B、C 类地址的主机号字段的字节数分别为3、2、1(一个字节8位)。
D 类地址的网络号为1110,用于多播(一对多通讯)。
E 类地址的网络号为1111,保留以后使用。
常用IP地址的指派范围
网络号指派范围
A类地址网络号占用一个字节,但是由于有一位是类别位,只有7位可供使用,但是由于规定,网络字段全0是个保留字段表示本网络,而127(01111111)是另外一个保留字段,作为本地软件的环回测试。
我们常见的127.0.0.1表示本机,原因也是出自这里。
所以A类地址可以指派的网络号个数为(27-2).
B类网络地址网络号有两个字节,前两位为10已经固定,只剩下14位可用,由于这14位无论怎么取值都不会使得网络号为全0或者全1,单实际上规定,规定B类最小网络地址为128.1.0.0。
因此B类地址可指派的网络号个数为(214-1).
C类地址有3个字节的网络字段号,前三位固定110,只有剩下21位可用,同样C类地址可指派的最小网络地址也是192.0.1.0。
因此C类地址可指派的网络号个数为(221-1).
主机号指派范围
由于主机号有规定,全0的主机号代表IP地址是“本主机”所连接到的单个网络地址(例,一主机地址为5.6.7.8,则该主机所在的网络地址为5.0.0.0),而全1则表示“所有的”,即表示该网络上的所有主机。
A类地址的主机号是由三个字节,24位组成,所以每一个A类网络中可分配的主机个数为(224-2).
B类地址的主机号是由两个字节,16位组成,所以每一个B类网络中可分配的主机个数为(216-2).
C类地址的主机号是由一个字节,8位组成,所以每一个C类网络中可分配的主机个数为(28-2).
总结IP指派范围
所有A类地址共有(27-2)∗∗(224-2)个,大约231,占50%;
所有B类地址共有(214-1)∗∗(216-2)个,大约230,占25%;
所有C类地址共有(221-1)∗∗(28-2)个,大约229,占12.5%;
所以可以这样来表示一个A类IP地址 n.x.y.zn.x.y.z,若1≤n≤1261≤n≤126,0≤x,y,z≤2550≤x,y,z≤255,其中 x,y,zx,y,z不同时为0也不能同时为255.
所以可以这样来表示一个B类IP地址 n.m.x.yn.m.x.y,若128≤n≤191128≤n≤191,0≤m≤2550≤m≤255,0≤x,y≤2550≤x,y≤255,其中 I. 当n=128n=128时,m≠0m≠0; II. x,yx,y不同时为0也不能同时为255;
所以可以这样来表示一个C类IP地址 n.m.k.xn.m.k.x,若192≤n≤223192≤n≤223,0≤m,k≤2550≤m,k≤255,1≤x≤2541≤x≤254,其中 当n=192n=192时,k≠0k≠0.
IP地址和硬件地址
子网和超网
子网
A类地址的默认子网掩码是255.0.0.0 B类地址的默认子网掩码是255.255.0.0 C类地址的默认子网掩码是255.255.255.0
超网
第一,消除了传统的ABC类地址及划分子网的概念,CIRD把32位的IP地址划分成为两个部分,网络前缀和剩下的部分,表示方法为,在IP地址后面加上“/”,然后写上网络前缀所占位数。
第二,把网络前缀相同的IP地址组成一个CIDR地址块,例如,IP地址 128.14.35.7/20 用二进制表示 100000000 00001110 00100011 00000111,所以我们很容易可以得出这块地址中最小地址为128.14.32.0,即 100000000 00001110 00100000 00000000,最大地址为128.14.47.255,即 100000000 00001110 00101111 11111111.
推荐阅读:
说实话,Intellij IDEA 自带的 Vim 插件真心不错!
微信扫描二维码,关注我的公众号
朕已阅