时间:2025-12-30 13:08
人气:
作者:admin

导论作为第 4 章的开篇,核心是 “建立网络层数据平面的基础认知”,为后续 4.2(路由器组成)、4.3(IP 协议)、4.4(SDN)的学习铺垫框架性理解。

导论需达成的 4 个核心目标,也是本章数据平面的学习基础:
数据平面与控制平面是网络层的两大核心组成,课件 4-7 通过 “本地执行” 与 “全局决策” 的逻辑明确两者差异,结合老师的讲解补充如下:
| 维度 | 数据平面(Data Plane) | 控制平面(Control Plane) |
|---|---|---|
| 课件对应 | 课件 4-7 “数据平面” 模块 | 课件 4-7 “控制平面” 模块 |
| 功能定位 | 本地执行功能:单台网络设备(如路由器)对到来的分组做 “入 - 出” 转发,核心是 “怎么转” | 全局决策功能:规划 “源主机到目标主机” 的端到端路径,核心是 “转哪条” |
| 作用范围 | 仅单台网络设备(如 1 台路由器) | 整个网络(跨多台路由器、端系统) |
| 核心依赖 / 输出 | 依赖 “路由表(传统)/ 流表(SDN)”,输出 “转发动作”(如从端口 2 转发) | 输出 “路由表 / 流表”,为数据平面提供转发决策依据 |
| 老师举例 | 路由器插 3 块网卡(以太网、ATM、帧中继):接收以太网帧→解封装到网络层→查目标 IP→从帧中继端口转发 | 春游去植物园选路线:规划 “五里墩 / 黄山路 / 南二环” 的全局路径,而非单个路口的转弯 |
| 实现方式 | 传统:IP 协议按目标 IP 查路由表;SDN:按多字段查流表 | 传统:路由器分布式交互路由信息(如 OSPF);SDN:远程控制器集中计算路径 |






转发与路由各有 “传统方式” 和 “SDN 方式”,共 4 种组合(导论仅分类,不深入细节):

网络层的核心服务是 “主机到主机的分组交付”,流程如下:

服务模型是 “网络层向上层提供服务的标准化描述”—— 当 “可靠性、延迟、保序性、带宽” 等服务指标取特定值时,形成的固定服务类型(如 “尽力而为”“恒定带宽”)。
课件 4-11 明确服务指标分为两类:

通过表格对比 IP、ATM 的服务模型,结合老师的讲解补充如下:
| 网络架构 | 服务模型 | 带宽保障 | 丢失保障 | 保序保障 | 延迟保障 | 拥塞反馈 |
|---|---|---|---|---|---|---|
| Internet | 尽力而为(Best Effort) | 无 | 无 | 无 | 无 | 无(通过丢失推断) |
| ATM | CBR(恒定比特率) | 恒定速率(如 64kbps) | 有 | 有 | 有 | 无 |
| ATM | VBR(可变比特率) | 保障最小速率 | 有 | 有 | 有 | 无 |
| ATM | ABR(可用比特率) | 保障最小速率 | 无 | 有 | 无 | 有 |
| ATM | UBR(未指定比特率) | 无 | 无 | 有 | 无 | 无 |
ATM 是 “有连接” 的网络层技术,明确其 4 类模型均比 IP 的 “尽力而为” 更具保障,如 CBR 适合语音传输(恒定带宽),ABR 适合弹性业务(动态调整带宽)。

强调两者的核心差异在于 “是否涉及中间路由器”,补充如下:
| 连接类型 | 网络层 “有连接”(如 ATM) | 传输层 “面向连接”(如 TCP) |
|---|---|---|
| 课件对应 | 课件 4-12 “网络层连接” 模块 | 课件 4-12 “传输层连接” 模块 |
| 涉及设备 | 源主机、目标主机 + 中间所有路由器 | 仅源主机、目标主机(中间路由器无连接状态) |
| 状态维护 | 所有设备维护 “连接状态”(如 ATM 的虚电路表) | 仅端系统维护 “连接状态”(如 TCP 的 TCB) |
| 老师举例 | ATM 网络:通信前建立虚电路,路径上所有路由器维护虚电路表 | TCP 三次握手:仅主机 A 和主机 B 维护连接状态,路由器仅转发 IP 分组 |
| 核心差异 | 连接覆盖 “端到端 + 中间节点”,是 “主机到主机” 的连接 | 连接仅覆盖 “端到端”,是 “进程到进程” 的连接 |
导论作为第 4 章的开篇,核心是建立 “数据平面” 的基础框架,关键结论如下:


输入端口是分组进入路由器的 “第一站”,需完成物理层接收、链路层解封装、网络层转发决策,具体流程如下:
| 分层 | 功能描述(课件核心内容) | 补充细节 |
|---|---|---|
| 物理层 | 完成 “比特级接收”(line termination),将链路上的物理信号(电磁波 / 光信号)转换为数字信号(0/1)。 | 转换粒度可为 “比特” 或 “字(word)”,取决于物理编码方式。 |
| 数据链路层 | 执行链路层协议动作(如以太网解封装),校验帧完整性(如 CRC),判断帧的目标 MAC 地址是否匹配本端口,提取帧中封装的 IP 分组。 | 若目标 MAC 不匹配,直接丢弃帧;仅提取匹配帧的数据部分(即 IP 分组)交给网络层。 |
| 网络层 | 基于分组头部信息(如目标 IP 地址),在输入端口内存的转发表中执行 “匹配 + 行动”,确定转发到的输出端口。 | 传统转发仅依赖 “目标 IP 地址”,SDN 通用转发可基于头部多字段(如源 MAC、TCP 端口);分组需先在队列(queueing)中排队,等待转发决策。 |
转发表结构(课件图 4-17):转发表通过 “目标地址范围” 关联 “输出接口”,示例如下:

问题:若地址范围划分不规整,可能导致匹配歧义(如分组地址同时落在多个范围)。
定义:查找转发表时,选择与分组目标地址 “前缀重叠最长” 的表项,确保匹配唯一。转发表示例优化如下:

硬件支持:采用 TCAMs(三态内容可寻址存储器)实现,可在 1 个时钟周期内完成检索,不受表项数量影响(如 Cisco Catalyst 系列路由器可存储约 1 百万条路由表项)。
举例验证:



交换机构是连接输入端口与输出端口的 “桥梁”,核心功能是将输入端口缓存的分组传输到目标输出端口,需满足 “交换速率≥N 倍输入 / 输出链路速率”(N 为输入端口数量),避免成为性能瓶颈。课件中定义了 3 种典型交换机构:




输出端口是分组离开路由器的 “最后一站”,需完成 “分组缓存→链路层封装→物理层发送”,具体流程如下:
| 分层 | 功能描述(课件核心内容) | 老师补充细节 |
|---|---|---|
| 网络层 | 接收交换机构转发的分组,在数据报缓存(datagram buffer)中排队,由调度规则选择分组发送顺序。 | 排队原因:多个输入端口同时向同一输出端口转发,导致 “输入速率>输出速率”(如多用户同时访问天猫,输出端口带宽不足)。 |
| 链路层 | 执行链路层协议(发送端),将 IP 分组封装为帧(添加帧头 / 帧尾、源 MAC 地址、目标 MAC 地址、CRC 校验码)。 | 封装需符合链路类型(如以太网),下一章会详细讲解链路层协议(如接入控制、CRC 计算)。 |
| 物理层 | 将帧的数字信号转换为物理信号(电磁波 / 光信号),通过链路发送到下一个路由器 / 主机。 | 转换粒度可为 “比特” 或 “字”,需与链路的物理编码方式匹配。 |


RFC 3439 拇指规则(经验公式):平均缓存大小 = 典型 RTT(往返时间,如 250ms)× 链路容量 C。
示例:10Gbps 链路的缓存大小 = 250ms × 10Gbps = 2.5Gbit。
优化公式(多流场景):当网络存在 N(极大)个流时,缓存大小 = (RTT×C)/√N,避免缓存过大导致分组超时(如缓存 80T 会使分组排队到 “订单超时”,用户重复发送)。
调度机制的核心是 “选择队列中下一个要传输的分组”,需兼顾 “公平性” 与 “服务质量(QoS)”,课件中定义了 4 类典型调度策略:






头部结构(32 位为单位):
包含 IP 协议版本号(如 IPv4 为 4)、头部长度(单位为 4 字节块)、数据报总长度(头部 + 数据,最大 65535 字节)、服务类型(Type of Service,用于 QoS 相关标识)。
分片 / 重组字段:16 位标识(同一数据报分片标识相同)、3 位标志(最低位表是否还有分片,0 为最后一片)、13 位偏移量(分片在原数据报中的位置,以 8 字节为单位)。
其他核心字段:生存时间(TTL,每经过路由器减 1,为 0 则丢弃)、16 位头部校验和(验证头部完整性)、32 位源 IP 地址、32 位目的 IP 地址、上层协议字段(指示数据部分交付给 TCP/UDP 等上层协议)。
可选字段(Options):如时间戳、指定必经路由器列表,长度可变(0-40 字节)。
数据部分:通常为 TCP 或 UDP 段,整体构成 IP 数据报载荷。

MTU(最大传输单元):链路层帧可携带的最大数据长度,不同链路类型 MTU 不同(如以太网 MTU 通常 1500 字节)。
当 IP 数据报长度超过链路 MTU 时,需在路由器进行分片,重组仅在最终目标主机完成(路由器不重组分片)。

原数据报:4000 字节(20 字节头部 + 3980 字节数据),MTU=1500 字节。
第一片:20 字节头部 + 1480 字节数据,总长度 1500 字节,标识 = x,标志 = 1(有后续分片),偏移量 = 0。
第二片:20 字节头部 + 1480 字节数据,总长度 1500 字节,标识 = x,标志 = 1,偏移量 = 1480/8=185。
第三片:20 字节头部 + 1020 字节数据(3980-1480-1480=1020),总长度 1040 字节,标识 = x,标志 = 0(最后一片),偏移量 = 2960/8=370。


IP 地址为 32 位二进制数,用于标识主机或路由器的接口(而非设备):
路由器通常有多个接口,每个接口对应一个 IP 地址;主机可能有多个接口(如有线 + 无线),每个接口也对应一个 IP 地址。
示例:接口 IP =223.1.1.1(二进制 11011111 00000001 00000001 00000001),通过接口连接物理链路(如以太网、WiFi)。



子网定义:IP 地址高位(子网部分)相同的节点(主机 / 路由器)集合,子网内节点无需路由器可直接通信。
子网表示:如 [223.1.1.0/24](CIDR 表示法,“/24” 表前 24 位为子网部分),对应子网掩码 [255.255.255.0](二进制 11111111 11111111 11111111 00000000)。
子网掩码作用:32 位二进制,“1” 对应 IP 地址的子网部分,“0” 对应主机部分;通过 “IP 地址 & 子网掩码” 可提取子网号,用于路由匹配。


地址分类:
A 类:首位 0,范围 1.0.0.0-126.255.255.255,共 126 个网络,每个网络 16777214 个主机(排除子网 / 主机全 0 / 全 1)。
B 类:前两位 10,范围 128.0.0.0-191.255.255.255,共 16382 个网络,每个网络 65534 个主机。
C 类:前三位 110,范围 192.0.0.0-223.255.255.255,共 2097152 个网络,每个网络 254 个主机。
D 类:前四位 1110,用于多播(如 224.0.0.0-239.255.255.255;E 类:前四位 1111,预留未来使用。
特殊地址:
子网部分全 0:表示本网络;主机部分全 0:表示本主机。
主机部分全 1:广播地址,用于向子网内所有主机发送数据(如 223.1.1.255)。
127.x.x.x:回路地址(如 127.0.0.1),用于主机自测(发送给该地址的数据包不经过网络,直接回环到本机上层协议)。

定义:地址空间中预留的专用地址,不分配为公网地址,仅在局域网内有效,路由器不转发目标为专用地址的数据包。
专用地址范围:
A 类:10.0.0.0-10.255.255.255(子网掩码 255.0.0.0)。
B 类:172.16.0.0-172.31.255.255(子网掩码 255.255.0.0)。
C 类:192.168.0.0-192.168.255.255(子网掩码 255.255.255.0)。

背景:解决 A/B/C 类地址浪费问题(如 B 类网络过大、C 类过小),子网部分可在 IP 地址任意位置划分。
格式:a.b.c.d/x,x 为子网长度(如 200.23.16.0/23,前 23 位为子网部分,子网掩码 11111111 11111111 11111110 00000000)。

转发表结构:包含 “目标子网号、掩码、下一跳 IP、输出接口” 四列。
转发流程:

Windows:控制面板→网络→TCP/IP 属性,手动输入 IP、子网掩码、默认网关、DNS 服务器。
UNIX/Linux:编辑 /etc/rc.config 等配置文件,写入 IP 相关参数。




目标:实现 “即插即用”,主机动态从 DHCP 服务器获取 IP 及配套信息,支持租期更新、移动用户接入。
工作流程:
DHCP 返回信息:IP 地址、子网掩码、第一跳路由器(默认网关)IP、DNS 服务器 IP。







地址块获取:
方式 1:从 ISP(互联网服务提供商)分配(如 ISP 从 ICANN 获得大地址块,再拆分给下属机构)。
方式 2:直接向 ICANN(互联网名称与数字地址分配机构)申请,ICANN 负责全球 IP 地址分配、DNS 管理。
路由聚集:基于层次编址,将多个连续子网的路由信息合并为一条,减少广域网路由表项数量。例如:200.23.16.0/23、200.23.18.0/23等 8 个子网,可聚集为 200.23.16.0/20(前 20 位相同),降低路由信息传输与计算代价。


节省公网 IP:局域网内设备使用专用 IP,共用一个公网 IP 访问互联网。
灵活性:内网设备地址变化无需通知外界,更换 ISP 时仅需修改 NAT 路由器的公网 IP,不影响内网。
安全性:内网设备对外不可见,减少外部直接攻击风险。


NAT 路由器核心功能:维护 “NAT 转换表”(记录内网 IP + 端口与公网 IP + 端口的映射关系)。
外出数据包:替换源 IP 为 NAT 公网 IP,源端口为新端口(未被占用),目标 IP / 端口不变,更新转换表。
进入数据包:根据目标 IP + 端口查询转换表,替换为内网 IP + 端口,源 IP / 端口不变。
端口资源:16 位端口字段支持 65535 个同时连接,满足局域网多设备并发访问需求。




争议:
违反分层原则:路由器(网络层设备)处理传输层端口信息。
违反端到端原则:需在中间设备(NAT 路由器)维护连接状态,增加网络复杂性。
外网无法主动访问内网设备:需特殊机制实现 “NAT 穿越”。
NAT 穿越方案:
静态配置:固定映射公网 IP + 端口到内网 IP + 端口(如公网 138.76.29.7:2500 映射到内网 10.0.0.1:2500)。
UPnP(通用即插即用):内网设备通过 UPnP 协议自动查询、添加 / 删除 NAT 映射表项。
中继(如 Skype):内网设备主动与中继服务器建立连接,外网设备通过中继服务器与内网设备通信。

IPv4 地址耗尽:32 位 IPv4 地址仅约 43 亿个,无法满足物联网等场景需求;IPv6 为 128 位地址,地址空间极大(可满足长期需求)。
简化头部处理:移除校验和(由链路层 / TCP/UDP 校验)、固定头部长度(40 字节),加速路由器转发。
支持 QoS:新增 “优先级”“流标签” 字段,便于对不同数据流提供差异化服务。
取消路由器分片:仅目标主机重组,路由器若遇 MTU 不足,直接丢弃数据包并发送 ICMPv6 “Packet Too Big” 报文,由源主机调整数据包大小。

固定 40 字节头部:
版本(4 位,IPv6 为 6)、优先级(4 位,数据流优先级)、流标签(20 位,标识同一数据流)。
载荷长度(16 位,头部后的数据长度)、下一跳(8 位,指示上层协议或选项)、跳限制(8 位,类似 IPv4 的 TTL)。
源 IP 地址(128 位)、目的 IP 地址(128 位)。

移除头部校验和:降低路由器处理开销。
选项处理:选项通过 “下一跳” 字段标识,不包含在固定头部中,保持头部简洁。
ICMPv6:新增报文类型(如 “Packet Too Big”),整合 IPv4 中 IGMP(多播组管理)功能,支持多播组加入 / 退出。



核心挑战:无法通过 “标记日(Flag Day)” 一次性升级(设备数量庞大,用户 / 应用兼容性要求高),需平滑过渡。
隧道技术:在 IPv4 网络中传输 IPv6 数据包,将 IPv6 数据包封装为 IPv4 数据包的载荷,通过 IPv4 路由器传输,到达目标 IPv6 网络后解封装。例如:两个 IPv6 “孤岛” 通过 IPv4 “海洋” 通信,借助隧道实现数据互通。

部分场景已落地:谷歌约 8% 用户通过 IPv6 访问服务,美国 NIST(国家标准与技术研究院)1/3 政府域支持 IPv6。
部署周期长:预计需 20 年以上完成全面过渡,因设备升级、应用兼容性适配需长期推进。






垂直集成的三层绑定:
传统方式的三大问题:
突破方向:2005 年提出 “控制平面与数据平面分离 + 集中控制”,即 SDN 雏形。



















场景:控制 H5(10.3.0.5)→H3(10.2.0.3)走 “S1→S3”,H6(10.3.0.6)→H4(10.2.0.4)走 “S1→S2”;
流表配置(S1 为例):
| 匹配条件 | 行动 |
|---|---|
| ingress port=1,IP src=10.3..,IP dst=10.2.. | forward(4) |
| ingress port=2,IP dst=10.2.0.3 | forward(3) |
优势:通过多字段匹配(入端口、源 IP、目标 IP),精准控制路径,传统路由无法实现。

参考资料来源:中科大郑烇、杨坚全套《计算机网络(自顶向下方法 第7版,James F.Kurose,Keith W.Ross)》课程