详解网络层-网络层概述和编址【王道计算机网络笔记】

时间:2022-12-29 22:55:20

主要任务是把分组从源端传到目的端,为分组交换网上的不同主机提供通信服务。网络层的传输单位是数据报,数据报是一个比较长的数据,分组是对数据报进行切割得到的一部分 功能:

  • 路由选择与分组转发(最佳路径)
  • 异构网络互联。4G,wifi,校园网等网络之间可以通信
  • 拥塞控制。如果所有结点都来不及接收分组,而要丢弃大量分组的话,网络就处于拥塞状态,因此要采取一定措施,缓解这种拥塞

IP数据报格式

详解网络层-网络层概述和编址【王道计算机网络笔记】

IP数据报的首部分为固定部分和可变部分,固定部分占20B

  • 版本指明使用IPv4/IPv6

  • 首部长度:单位是4B,占用4位,可以从0000到1111,如果为1111,对应十进制数15,15×4B=60B,即IP数据报的首部为60B,其中固定部分20B,可变部分40B。因为固定部分为20B,因此最小为5,对应二进制数0101。 可以看到可变部分最后有一个填充部分,为了把可变部分填充为4B的整数倍,否则无法用首部长度表示

  • 区分服务:指示期望获得那种类型的服务

  • 总长度:首部长度+数据长度,单位是1B,占16位,最大取值对应十进制数为$2^{16}-1=65535$

  • 标识、标志、片偏移后面讲

  • 生存时间(TTL):IP分组的保质期,经过一个路由器-1变成0则丢弃。确保分组不会永远在网络中循环

  • 协议:数据部分使用的协议 详解网络层-网络层概述和编址【王道计算机网络笔记】

  • 首部检验和:只校验分组的首部,而不校验数据部分,不重要

  • 源地址和目的地址:各占32位

  • 可选字段:0~40B,用来支持排错、测量以及安全等措施

  • 填充:全0,把首部不成4B的整数倍

IP数据报分片

最大传送单元MTU:数据链路层数据帧可封装数据的上限,以太网的MTU是1500字节,也就是下图的数据部分 详解网络层-网络层概述和编址【王道计算机网络笔记】

详解网络层-网络层概述和编址【王道计算机网络笔记】

  • 标识:同一数据报的分片使用同一标识。使分片知道自己是哪一家的
  • 标志:占三位,只有后两位有意义 中间位DF:DF=1,(满足)禁止分片;DF=0,允许分片 最低位MF:MF=1,后面还有分片;MF=0,代表最后一片/没分片
  • 片偏移:指出较长分组分片后,某片在原分组中的相对位置,以8B为单位。 占13位,如0……01,换成十进制即为1,$1\times 8B=8B$,也就是说这个分片从数据报的数据部分8B开始往后 除了最后一个分片,每个分片一定是8B的整数倍

总长度占16字节,单位是1B 片偏移占13字节,单位是8B 首部长度占4字节,单位是4B

例题

详解网络层-网络层概述和编址【王道计算机网络笔记】

定义需要分片为长度不超过1420B的数据报分片

因为每一个分片都需要携带相同长度的首部,因此每个分片最大数据部分为1400B, 第一个分片数据部分为1400B,第二个1400B,第三个1000B 详解网络层-网络层概述和编址【王道计算机网络笔记】

然后计算片偏移,第一个分片显然是从0B-1399B,因此片偏移为0;第二个分片从1400B-3799B,片偏移为$\frac{1400B}{8B}=175$,类似地,第三个分片片偏移为为350 详解网络层-网络层概述和编址【王道计算机网络笔记】 ]

IPv4地址

分类的IP地址

IP地址={<网络号>,<主机号>} 11011111.00000001.00000001.00000001=223.1.1.1(点分十进制) 详解网络层-网络层概述和编址【王道计算机网络笔记】

上图共有6个逻辑上的网络 每个路由器总是有两个或两个以上IP地址,路由器的每个接口都会有不同网络号的IP地址

详解网络层-网络层概述和编址【王道计算机网络笔记】

最前面固定的几位可以看做标志位

  • 特殊IP地址

详解网络层-网络层概述和编址【王道计算机网络笔记】

环回地址就是自己给自己发,检测设备是否可以正确的接受发送数据、网络层是否能正常工作等

  • 常用的三种类别IP地址的使用范围

详解网络层-网络层概述和编址【王道计算机网络笔记】

A的最大可用网络数要-2,减去的是全0和127(环回地址);每个网络中的最大主机数也要-2,减去全0和全1 B的最大可用网络数要-1,减去的是128.0不可指派,也就是全0;每个网络中的最大主机数也要-2,减去全0和全1 C的最大可用网络数要-1,减去的是192.0.0不可指派,也就是全0;每个网络中的最大主机数也要-2,减去全0和全1

  • 私有IP地址

详解网络层-网络层概述和编址【王道计算机网络笔记】

网络地址转换NAT

网络地址转换NAT:在专用网连接到因特网的路由器上安装NAT软件,安装了NAT软件的路由器叫NAT路由器,它至少有一个有效的外部全球IP地址 详解网络层-网络层概述和编址【王道计算机网络笔记】

详解网络层-网络层概述和编址【王道计算机网络笔记】

如果此时A要与B通信,A发出一个数据报,那么该数据报的源地址就是192.168.0.3,目的地址是213.18.2.4,端口号(假设)是30000,这时数据报到NAT路由器处,根据NAT转换表,需要将LAN端映射成WAN端,即该数据报的源地址就是172.38.1.5,目的地址是213.18.2.4,端口号是40001

端口号可以表明主机内的某一个进程

同理如果B向A发送一个数据报,那么该数据报的源地址就是213.18.2.4,目的地址是172.38.1.5,端口号(假设)是40001,这时数据报到NAT路由器处,根据NAT转换表,需要将WAN端映射成LAN端,即该数据报的源地址就是213.18.2.4,目的地址是192.168.0.4,端口号是30001

子网划分与子网掩码

分类IP地址的缺点:

  • IP地址空间的利用率有时很低(某公司申请了一个B类网络,但是可能只有几台主机,但认为自己公司未来可能扩张,因此不想申请C类网络,但是很多IP地址实际上没用上,因此利用率很低)
  • 两级IP地址不够灵活(单位要在一个新的地方马上开通一个新的网络,显然这是需要时间的)

详解网络层-网络层概述和编址【王道计算机网络笔记】

申请到一个网络后,划分子网是自己的选择,不需要向运营商申请。虽然划分了一个网络,但是对外仍表现为一个网络,即外面的网络看不见本网络内子网的划分

子网号能否全0全1要看情况,主机号不能全0全1,全0就是本网络,全1就是广播

详解网络层-网络层概述和编址【王道计算机网络笔记】

假设此时有一个外部网络的数据报要发给145.13.3.10

子网掩码是一个与P地址相对应的、长32bit的二进制串,它由一串1和跟随的一串0组成。其中,1对应于IP地址中的网络号及子网号,而0对应于主机号。计算机只需将IP地址和其对应的子网掩码逐位“与”(逻辑AND运算),就可得出相应子网的网络地址。

例如:已知IP地址是141.14.72.24,子网掩码是255.255.192.0,求网络地址 255是8个1,0是8个0,因此子网地址是141.14.xxx.0 192=11000000,72=01001000,与的结果是01000000即64 因此子网网址为141.14.64.0

如果子网掩码是255.255.224.0,求网络地址 结果一样141.14.64.0

但第一个子网掩码占了18位,剩下14位都是主机号,第二个子网掩码占了19位,剩下13位都是主机号

例:某主机的IP地址为180.80.77.55,子网掩码为255.255.252.0。若该主机向其所在子网发送广播分组,则目的地址是

子网网络地址为180.80.xxx.0 252对应11111100,这里可以看出子网掩码有8+8+6=22位,77对应01001101,取前6位进行与运算,得到01001100,对应76,因此子网掩码是180.80.76.0 现在需要进行广播,因此主机号全是1,之前说网络号占22位,剩下10位都是主机号,因此加上之前算的子网掩码后6位,即为180.80.010011 11.255,因此就得到了180.80.79.255

要注意子网掩码是11111111.11111111.11111100.00000000,因此第三部分被划分成了两块,前6位是网络号,后两位是主机号

使用子网掩码的情况

  • 一台主机在设置IP地址信息的同时,必须设置子网掩码
  • 同属于一个子网的所有主机及路由器的相应端口,必须设置相同的子网掩码
  • 路由器的路由表中,所包含信息的主要内容必须有目的网络地址、子网掩码、下一跳地址

使用子网掩码时路由器的分组转发算法如下:

  1. 从收到的分组的首部提取目的P地址,记为D
  2. 先判断是否为直接交付。对路由器直接相连的网络逐个进行检查:用各网络的子网掩码和D逐位相“与”,看结果是否和相应的网络地址匹配。若匹配,则将分组直接交付,否则间接交付,执行步骤3.
  3. 若路由表中有目的地址为D的特定主机路由,则将分组传送给路由表中所指明的下一跳路由器:否则,执行4.
  4. 对路由表中的每一行(目的网络地址、子网掩码、下一跳地址)中的子网掩码和D逐位相“与”,其结果为N。若N与该行的目的网络地址匹配,则将分组传送给该行指明的下一跳路由器:否则,执行步骤5.
  5. 若路由表中有一个默认路由,则将分组传送给路由表中所指明的默认路由器:否则,执行步骤
  6. 报告转发分组出错。

无分类编址CIDR

无分类域间路由选择即CIDR

  • 消除了传统A、B、C类地址划分 详解网络层-网络层概述和编址【王道计算机网络笔记】

    CIDR记法:IP地址后加上/,然后写上网络前缀(可以任意长度)的位数,e.g.128.14.32.0/20

  • 融合子网地址与子网掩码,方便子网划分 CIDR把网络前缀相同的连续的IP地址组成一个CIDR地址块 128.14.35.7/20是某CIIDR地址块中的一个地址 变成二进制:10000000 00001110 00100011 00000111 最小地址:10000000 00001110 00100000 00000000 最大地址:10000000 00001110 00101111 11111111 地址块:128.14.32.0/20 地址掩码(子网掩码):11111111 11111111 11110000 00000000

应用

  • 构成超网

将多个子网聚合成一个较大的子网,叫做构成超网,或路由聚合 方法:将网络前缀缩短 详解网络层-网络层概述和编址【王道计算机网络笔记】

例如,在如图所示的网络中,如果不使用路由聚合,那么R1的路由表中需要分别有到网络1和网络2的路由表项。不难发现,网络1和网络2的网络前缀在二进制表示的情况下,前16位都是相同的,第17位分别是0和1,并且从R1到网络1和网络2的路由的下一跳皆为R2。若使用路由聚合,在R1看来,网络1和网络2可以构成一个更大的地址块206.1.0.0/16,到网络1和网络2的两条路由就可以聚合成一条到206.1.0.0/16的路由。 详解网络层-网络层概述和编址【王道计算机网络笔记】

例:某路由表中有转发接口相同的4条路由表项, 其目的网络地址分别为35.230.32.0/21、35.230.40.0/21、 35.230.48.0/21、 35.230.56.0/21, 将该4条路由聚合后的目的网络地址为,35.230.32.0/19 详解网络层-网络层概述和编址【王道计算机网络笔记】

  • 最长前缀匹配

在使用CIDR时,查找路由表可能得到几个匹配结果(跟网络掩码按位与),应选择具有最长网络前缀路由。前缀越长,地址块越小,路由越具体

例如:有三个网络地址206.0.68.0/22、206.0.71.128/25、206.0.71.0/25,现发出一个数据报,目的地址为206.0.71.130 与第一个网络的子网掩码进行与运算,结果为206.0.68.0/22,可以发送给第一个网络 与第二个网络的子网掩码进行与运算,结果为206.0.71.128/25,可以发送给第二个网络 与第三个网络的子网掩码进行与运算,结果为206.0.71.128/25,不可以发送给第三个网络 我们得到可以发给一、二两个网络,但是根据最长前缀匹配,显然第二个网络匹配了25位,长于第一个网络22位,因此发给第二个网络