4.1 网络层的功能与 IPv4 分组
网络层的功能(异构网络互联、路由与转发、SDN、拥塞控制),IPv4 分组的首部格式与各字段的含义,IP 数据报的分片与重组。
网络层的功能
异构网络互联
网络层所要完成的任务之一就是使这些异构的网络实现互连。所谓网络互连,是指将两个以上的计算机网络,通过一定的方法,用一种或多种通信处理设备(即中间设备)相互连接起来,以构成更大的网络系统。中间设备又称中间系统或中继系统:物理层使用中继器和集线器,数据链路层使用网桥或交换机,网络层使用路由器,网络层以上使用网关。TCP/IP 体系在网络互连上采用的做法是在网络层采用标准化协议(IP),使得这些性能各异的网络在网络层上看起来好像是一个统一的网络——虚拟互连网络。
路由与转发
路由器主要完成两个功能:
- 路由选择(确定哪一条路径):按照复杂的分布式算法,根据从各相邻路由器所得到的关于整个网络拓扑的变化情况,动态地改变所选择的路由,并由此构造出路由表;
- 分组转发(当一个分组到达时所采取的动作):路由器根据转发表(由路由表得出)将用户的 IP 数据报从合适的端口转发出去。
SDN 的基本概念
传统网络中每台路由器既有数据平面(转发)又有控制平面(路由选择,分布式计算)。软件定义网络(SDN)把两者分离:控制平面从路由器中分离出来,由逻辑上集中的远程控制器计算转发表并下发给各路由器,路由器只负责按”流表”执行”匹配 + 动作”的分组转发。
- 控制器通过南向接口(如 OpenFlow 协议)与路由器交换信息;通过北向接口向网络应用程序提供服务;控制器之间用东西向接口通信;
- 优点:全局集中式控制和分布式高速转发,灵活的可编程性,降低成本;缺点:安全风险(集中控制器是攻击目标)、瓶颈问题。
拥塞控制
在通信子网中,因出现过量的分组而引起网络性能下降的现象称为拥塞。判断网络是否进入拥塞状态的方法是观察网络的吞吐量与网络负载的关系:随着网络负载的增加,网络的吞吐量明显小于正常的吞吐量时,网络就可能已进入轻度拥塞状态;当网络的吞吐量随着网络负载的增大反而下降时,网络就可能已进入拥塞状态;当网络的负载继续增大,而网络的吞吐量下降到零时,网络就可能已进入死锁状态。拥塞控制分为开环控制(事先考虑,静态预防)和闭环控制(基于反馈环路,动态处理)。
IPv4 分组
一个 IP 分组由首部和数据部分组成。首部前一部分的长度固定,共 20 B,是所有 IP 分组必须具有的;在首部固定部分的后面是一些可选字段,其长度可变,用来提供错误检测及安全等机制。
| 字段 | 长度 | 说明 |
|---|---|---|
| 版本 | 4 位 | IPv4 为 4 |
| 首部长度 | 4 位 | 单位为 4 B,最大值 15 表示首部最长 60 B;最常用的为 0101(20 B,无可选字段) |
| 总长度 | 16 位 | 首部和数据之和的长度,单位为 1 B,最大 65535 B。以太网帧的最大传送单元(MTU)为 1500 B,当一个 IP 分组封装成链路层的帧时,此分组的总长度一定不能超过链路层的 MTU 值 |
| 标识 | 16 位 | 一个计数器,每产生一个数据报就加 1;同一数据报的各分片标识相同,以便正确重装 |
| 标志 | 3 位 | 最低位 MF(More Fragment)= 1 表示后面还有分片,= 0 表示最后一个分片;中间位 DF(Don’t Fragment)= 0 才允许分片 |
| 片偏移 | 13 位 | 较长的分组在分片后,某片在原分组中的相对位置,以 8 B 为偏移单位。除最后一个分片外,每个分片的数据长度一定是 8 B 的整数倍 |
| 生存时间 TTL | 8 位 | 数据报在网络中可通过的路由器数的最大值,标识分组在网络中的寿命,以确保分组不会永远在网络中循环。路由器在转发分组前,先把 TTL 减 1,若 TTL 被减为 0,则该分组必须丢弃 |
| 协议 | 8 位 | 指出此分组携带的数据使用何种协议:6 为 TCP,17 为 UDP,1 为 ICMP,89 为 OSPF |
| 首部检验和 | 16 位 | 只检验分组的首部,不检验数据部分;每经过一个路由器都要重新计算(TTL 等字段会变) |
| 源地址、目的地址 | 各 32 位 | 发送方和接收方的 IP 地址 |
IP 数据报的分片
一个链路层数据报能承载的最大数据量称为最大传送单元(MTU)。因为 IP 数据报被封装在链路层的帧中,因此链路层的 MTU 严格地限制着 IP 数据报的长度,而且在 IP 数据报的源与目的地路径上的各段链路可能使用不同的链路层协议,有不同的 MTU。当 IP 数据报的总长度大于链路 MTU 时,就需要将 IP 数据报中的数据分装在两个或多个较小的 IP 数据报中,这些较小的数据报称为片。
片在目的地的网络层被重新组装(中间路由器不负责重组)。目的主机使用 IP 首部中的标识、标志和片偏移字段来完成对片的重组。
| 分片 | 数据长度 | 总长度字段 | 片偏移字段 | MF | DF | 标识 |
|---|---|---|---|---|---|---|
| 片1 | 1480 | 1500 | 0 | 1 | 0 | 相同 |
| 片2 | 1480 | 1500 | 185 | 1 | 0 | 相同 |
| 片3 | 1020 | 1040 | 370 | 0 | 0 | 相同 |
- 每片的数据部分最多为 字节;
- 依次切分数据,第 片的片偏移 = 该片数据在原数据中的起始字节 / 8;
- 每片的总长度 = 该片数据长度 + 首部长度;除最后一片外 MF = 1;所有片的标识字段与原数据报相同。
即时练习
- 1(408 真题 2021)若路由器向 MTU = 800 B 的链路转发一个总长度为 1580 B 的 IP 数据报(首部长度为 20 B)时,进行了分片,且每个分片尽可能大,则第 2 个分片的总长度字段和 MF 标志位的值分别是( )。
- 2一个 IP 数据报总长度为 4000 B(固定首部 20 B),经过 MTU 为 1500 B 的链路时被分片,则第 3 个分片的片偏移字段值为( )。
- 3IPv4 首部中"首部长度"字段的值为 6,则该首部中可选字段的长度为( )。
- 4下列关于 IPv4 首部检验和的说法中,正确的是( )。
- 5在 SDN 体系结构中,控制器与路由器之间交换信息使用的是( )。
标记完成后,侧栏会显示进度。进度仅保存在本浏览器中。