IPv4
IPv4地址是给因特网上的每一个主机或路由器接口分配一个32bit的标识。它的编址方法先后经历了分类编址划分子网无分类编址三个历史阶段。为了便于阅读、记录等IPv4采用点分十进制方便用户使用。
分类编址方法
分类编址方法采用两级结构的IPv4地址,一个IP地址由网络号和主机号两部分组成。网络号用于标识各接口所连接的网络,同一个网络中,不同主机或路由器接口的网络号必须一致表示属于一个网络;主机号用于标识主机或路由器的接口,同一个网络中不同接口的主机号必须不同。
-
分类
地址类别 网络号 主机号 数量及其占比 A 0+7bit,共8bit 24bit \(\frac{2^{32-1}}{2^{32}}=\frac{1}{2}\) B 10+14bit,共计16bit 16bit \(\frac{2^{32-2}}{2^{32}}=\frac{1}{4}\) C 110+21bit,共计24bit 8bit \(\frac{2^{32-3}}{2^{32}}=\frac{1}{8}\) D 1110多播地址 \(\frac{2^{32-4}}{2^{32}}=\frac{1}{16}\) E 1111保留地址 \(\frac{2^{32-4}}{2^{32}}=\frac{1}{16}\) A、B、C类地址都是单播地址,只有单播地址才能分配给路由器或主机的各接口。
主机号全0的地址表示该网路地址,不能分配给各接口。可以作为源地址,不可以作为目的地址,表示本网路中的某台主机。
主机号全1的地址表示该网络的广播地址,不能分配给各接口。可以作为目的地址不能作为源地址。
A类的地址的127网段表示本地环回测试地址。127.0.0.1-127.255.255.254可以作为源地址和目的地址
255.255.255.255不能作为源地址可以作为目的地址,只能在本网络内广播。
- 0.0.0.0可以作为源地址,不能作为目的地址,表示本网络上的主机
-
分类编址不够灵活而且容易造成大量地址的浪费,如下图:
网络 A 中共有 65534 台主机,一个路由器接口,共需要65535个地址,但是一个B类网络可分配给各接口的地址共有 \(2^{16}-2=65534\) 个,只能选用一个A类网络
网络 B中共有 254 台主机,一个路由器接口,共需要255个地址,但是一个B类网络可分配给各接口的地址共有 \(2^8-2=254\) 个,只能选用一个B类网络
划分子网的编址方法
如果能够从分类编址的主机号部分借用一些比特作为子网号,那么可供分配的网络号就会增加,同时能够灵活对规模不同的网络分配地址。
划分子网的网络编址方法采用3级结构,分别是网络号、子网号、主机号
子网掩码用来获取从主机号部分借用的用于编码子网号的比特数
例如C类地址218.75.230.0,使用子网掩码255.255.255.128对其进行划分,划分出的子网数量\(2^1=2\),每个子网可分配的地址数量\(2^{8-1}-2=126\),(减2是去掉主机号全0的网络地址和全1的地址广播地址)
无分类编址方法
划分子网的编址方法一定程度上解决了网络地址灵活分配的问题,但是IPv4地址数量有限的问题并没有得到缓解。数量巨大的C类网络由于每个网络包含的地址数量太小没有得到充分利用。为了缓解IPv4地址资源紧张,由此出现了无分类域间路由选择CIDR。
这种编址方法使用两级结构进行编址,分别是网络前缀和主机号,网络前缀是不定长的。用地址掩码获取网络前缀的bit数。例如128.14.35.7地址掩码255.255.240.0,网络前缀共有20bit,主机号12bit,使用CIDR的斜线计法表示为128.14.35.7/20
-
CIDR可以将多个前缀相同的、连续的多个无分类IPv4地址组成一个新的CIDR地址块,只要知道地址块中的任何一个地址就能知道该地址块中的全部地址。例如128.14.35.7/20,网络前缀20bit,主机号12bit
128.14.35.7/20 即128.14.0010 0011. 0000 0111
最小地址128.14.32.0 128.14.0010 0000.0000 0000
最大地址128.14.47.255 128.14.0010 1111. 1111 1111
地址数量\(2^{32-20}\)
聚合C类网络的数量 \(2^{32-20} / 2^8=16\)
地址掩码 255.255.240.0 255.255.1111 0000. 0000 0000
-
使用CIDR地址块可以更加有效地分配地址空间,还是分类编址中的例子
-
路由聚合(构造超网):路由器转发时候找最长前缀匹配,但是不恰当的聚合,可能引入路由器并未连接的网络,例如在下图中假设路由器R1并未连接127.1.5.0/25网络,而此时进行路由聚合就可能会导致路由错误。