计算机网络网络层如何实现网络层各主机的标识——IPv4

2023/02/13 计算机网络 共 2005 字,约 6 分钟

IPv4

​ IPv4地址是给因特网上的每一个主机或路由器接口分配一个32bit的标识。它的编址方法先后经历了分类编址:arrow_right:划分子网:arrow_right:无分类编址三个历史阶段。为了便于阅读、记录等IPv4采用点分十进制方便用户使用。

分类编址方法

  1. 分类编址方法采用两级结构的IPv4地址,一个IP地址由网络号和主机号两部分组成。网络号用于标识各接口所连接的网络,同一个网络中,不同主机或路由器接口的网络号必须一致表示属于一个网络;主机号用于标识主机或路由器的接口,同一个网络中不同接口的主机号必须不同。

  2. 分类

    • 地址类别 网络号 主机号 数量及其占比
      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可以作为源地址,不能作为目的地址,表示本网络上的主机
  3. 分类编址不够灵活而且容易造成大量地址的浪费,如下图:

    image-20230214195343806

    网络 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的地址广播地址)

image-20230214200746238

image-20230214201004703

无分类编址方法

​ 划分子网的编址方法一定程度上解决了网络地址灵活分配的问题,但是IPv4地址数量有限的问题并没有得到缓解。数量巨大的C类网络由于每个网络包含的地址数量太小没有得到充分利用。为了缓解IPv4地址资源紧张,由此出现了无分类域间路由选择CIDR。

  1. 这种编址方法使用两级结构进行编址,分别是网络前缀和主机号,网络前缀是不定长的。用地址掩码获取网络前缀的bit数。例如128.14.35.7地址掩码255.255.240.0,网络前缀共有20bit,主机号12bit,使用CIDR的斜线计法表示为128.14.35.7/20

  2. 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

  3. 使用CIDR地址块可以更加有效地分配地址空间,还是分类编址中的例子

    image-20230214203008342

  4. 路由聚合(构造超网):路由器转发时候找最长前缀匹配,但是不恰当的聚合,可能引入路由器并未连接的网络,例如在下图中假设路由器R1并未连接127.1.5.0/25网络,而此时进行路由聚合就可能会导致路由错误。

    image-20230214203139748

参考资料

深入浅出计算机网络(微课视频版)

img

文档信息

Search

    Table of Contents