Skip to content
NotesComputer Networking

自顶向下的计算机网络笔记,覆盖应用层、传输层、网络层与链路层。

Packet Path

Network Layer

The data plane forwards each packet locally; the control plane decides the global routing state.

datagramrouterSDN
01Ingresspacket in
02Lookuptable hit
03Switchfabric
04Egresslink out
best effortIP
routing statecontrol
congestionfeedback

第五章:网络层:控制平面 ​

上一章讨论的是 数据平面:分组进入路由器以后如何查表、排队、交换和转发。本章讨论 控制平面:这些转发表、路径选择和网络控制策略到底从哪里来。传统互联网依靠每台路由器运行分布式路由协议;SDN 则把控制逻辑抽象成逻辑集中式控制器,再通过开放接口向交换设备下发表项。

目录 ​


5.1 本章主线:控制平面在做什么 ​

网络层有两个紧密相关但职责不同的平面:

平面核心动作时间尺度典型实现
数据平面按表项把到达分组从输入端口转到输出端口每个分组,通常要求线速路由器/交换机硬件
控制平面计算路径、生成转发表或流表、管理网络状态路由变化或策略变化时路由协议或 SDN 控制器

控制平面有两种主要构建方式:

  1. 每路由器控制:每台路由器本地运行路由算法,和其他路由器交换路由信息,独立计算自己的转发表。RIP、OSPF、BGP 都属于这一传统体系。
  2. 逻辑集中式控制:远程控制器掌握网络状态,集中计算流表或转发表,再安装到数据平面设备中。SDN 采用这种思路,但控制器本身可以为了可靠性和扩展性而分布式实现。

如果把数据平面看成“按路牌开车”,控制平面就是“路牌是谁算出来、谁发布、谁维护”的问题。

5.2 路由抽象:子网、路由器、图和路径代价 ​

互联网路由通常以 网络/子网前缀 为单位,而不是以单台主机为单位。一个子网内部共享前缀,主机之间一跳可达;路由器比较特殊,它有多个接口,分别属于多个网络,因此可以在网络之间转发分组。

从路由器视角看,主机到主机的跨网络通信可以简化成路由器之间的路径选择:

  • 第一跳:源主机把分组交给本网络的默认网关。
  • 中间跳:路由器根据目标子网逐跳选择下一跳。
  • 最后一跳:到达目标网络所连路由器后,目标主机在该网络内可直接到达。

路由算法通常把网络抽象成图:

图元素网络含义
节点 N路由器集合
边 E路由器之间的链路
链路代价 cx,y链路的度量值,可由跳数、带宽、延迟、拥塞程度等定义
路径从源到目的经过的路由器序列

一条路径 (x1,x2,…,xp) 的总代价为:

c(x1,x2)+c(x2,x3)+⋯+c(xp−1,xp)

链路代价由网络运营者定义。它可以永远为 1,也可以和带宽、延迟、队列长度或拥塞程度有关。选择什么指标,本质上是在表达“网络更重视什么”。

最优化原则 ​

对某个目的节点来说,从所有节点到它的最优路径会形成一棵 汇集树 (sink tree)。路由算法的目标,就是为每台路由器找到通往各个目标网络的下一跳,使这些下一跳组合成代价较小、稳定且可用的路径。

路由表项的结果通常不是完整路径,而是:

text
目标网络前缀 -> 下一跳路由器 / 输出接口

数据平面拿到这个结果后,再按最长前缀匹配逐跳转发。

5.3 路由算法的目标与分类 ​

一个实用路由算法需要同时满足多个目标:

目标含义
正确性能给所有可达目标算出正确路径
简单性算法和协议实现不能过度复杂
健壮性能适应链路故障、路由器故障、流量变化和拓扑变化
稳定性路由不应频繁摇摆
公平性不应长期牺牲某些流量或目标
最优性在给定指标下尽量选择低代价路径

路由算法可以从三个维度分类:

分类维度类型说明
信息来源全局每台路由器知道完整拓扑和链路代价,典型算法是链路状态算法
信息来源分布式路由器只知道邻居信息,通过邻居交换逐步收敛,典型算法是距离矢量算法
变化速度静态路由变化很慢,通常人工或低频更新
变化速度动态根据链路代价或拓扑变化自动更新
计算方式集中式/逻辑集中式控制器或全局状态驱动计算
计算方式迭代分布式每台路由器局部计算,邻居之间交换结果

本章先讨论两个经典算法:链路状态 (link state, LS) 和 距离矢量 (distance vector, DV),再看它们在互联网协议中的落地。

5.4 链路状态路由与 Dijkstra 算法 ​

链路状态路由的基本思路是:每个路由器先获得全网拓扑和链路代价,然后独立运行最短路算法,算出自己到所有目的节点的最短路径树。

LS 路由可以分成五个动作:

步骤动作目的
1发现邻居通过 HELLO 等报文发现相邻路由器及其网络地址
2测量链路代价可用 ECHO 往返时间、带宽、人工配置等估计代价
3组装 LS 分组描述本路由器及其邻居链路代价
4可靠泛洪把 LS 分组扩散到所有路由器,让每台路由器得到同一份拓扑图
5运行 Dijkstra以自己为源计算最短路径树和转发表

LS 分组通常包含发送者、序号、年龄和邻居代价列表。序号用于丢弃重复或过期分组;年龄字段用于防止旧分组在网络里永久存在。可靠泛洪实现时,还需要记录已见过的 (源路由器, 序号),并维护向哪些邻居转发、向哪些邻居应答。

Dijkstra 算法的状态 ​

从源节点 s 出发,Dijkstra 算法维护:

记号含义
N′已经确定最小代价路径的节点集合
D(v)当前已知从源到节点 v 的最小代价估计
p(v)当前路径上 v 的前序节点
cx,y节点 x 到直接邻居 y 的链路代价;非邻居为 ∞

算法框架如下:

text
N' = {u}
for every node v:
    if v adjacent to u:
        D(v) = c(u,v)
    else:
        D(v) = infinity

loop:
    find w not in N' with minimum D(w)
    add w to N'
    for each neighbor v of w not in N':
        D(v) = min(D(v), D(w) + c(w,v))
until all nodes are in N'

最终可以通过每个节点的前序节点 p(v) 还原最短路径树。转发表只需要记录从源路由器走向每个目的网络时的第一跳。

复杂度与振荡 ​

朴素 Dijkstra 在 n 个节点上需要 O(n2) 次比较;更好的数据结构可把复杂度降到 O(nlog⁡n) 量级。消息复杂度方面,每个路由器都要把自己的链路状态泛洪给其他路由器,整体通常是 O(n2) 级别。

如果链路代价直接依赖流量负载,LS 也可能振荡:路由器根据当前拥塞改走另一条路,流量迁移后原路径又变便宜,下一轮计算又改回去。实际网络会通过平滑代价、限制更新频率和工程化策略减少这种摇摆。

5.5 距离矢量路由与 Bellman-Ford 方程 ​

距离矢量路由不要求每台路由器知道完整拓扑。每台路由器只维护自己到各目标的代价估计,并周期性或触发式地把这个向量发给邻居。收到邻居的距离矢量后,本路由器用 Bellman-Ford 方程更新自己的估计。

令 Dx(y) 表示节点 x 到目标 y 的最小代价估计,cx,v 表示 x 到邻居 v 的直接链路代价,则:

Dx(y)=minv{cx,v+Dv(y)}

其中 v 遍历 x 的所有邻居。让上式取到最小值的邻居,就是 x 到目标 y 的下一跳。

DV 算法过程 ​

每台路由器重复执行下面的事件循环:

text
wait until local link cost changes or a distance vector arrives
recompute D_x(y) for each destination y using Bellman-Ford
if any local distance estimate changes:
    send the new distance vector to neighbors

DV 的特点是:

  • 迭代:路由器一轮轮更新自己的估计。
  • 异步:不同路由器不需要同步时钟或同步轮次。
  • 分布式:每台路由器只和邻居交换信息。
  • 自终止:如果没有新的变化,就不会继续产生通告。

好消息快,坏消息慢 ​

当链路代价下降时,低代价路径通常很快通过邻居通告扩散出去;这常被称为“好消息传得快”。当链路代价上升或链路失效时,DV 可能发生 无穷计数 (count-to-infinity):

  1. y 发现自己到 x 的直接代价变大。
  2. 但邻居 z 还声称它能以较低代价到达 x。
  3. y 误以为可经 z 到达 x,更新并通告一个稍大的代价。
  4. z 又以为可以经 y 到达 x,继续把代价加大。
  5. 两者来回更新,直到代价达到协议定义的“无穷大”。

RIP 使用毒性逆转等机制缓解这类问题,但分布式算法的收敛和环路处理仍然是 DV 的核心难点。

5.6 LS 与 DV 的对比 ​

维度链路状态 LS距离矢量 DV
路由信息每台路由器获得完整拓扑和链路代价每台路由器只知道邻居通告的距离估计
计算方式本地运行 Dijkstra根据 Bellman-Ford 与邻居迭代更新
消息传播泛洪链路状态邻居之间交换距离矢量
收敛速度通常较快,但要运行最短路计算变化较大,可能慢收敛
常见风险代价依赖流量时可能振荡路由环路、无穷计数、错误信息扩散
故障影响错误链路状态会影响所有收到该状态的节点错误距离可能被邻居继续传播
互联网实例OSPF、IS-ISRIP,BGP 的路径矢量思想也源自 DV

两类算法没有绝对优劣。LS 更依赖全局状态和泛洪机制,DV 更轻量但收敛行为更复杂。互联网在不同范围内同时使用了它们。

5.7 层次化路由与自治系统 ​

如果把整个互联网当成一个平面网络,让所有路由器都知道所有网络的路由信息,会遇到两个根本问题:

问题原因
规模问题目标网络数量巨大,路由信息存储、传输和计算代价过高
管理自治问题不同网络归不同组织所有,各自希望控制内部策略并隐藏内部细节

互联网的解决办法是 层次化路由:把网络划分为自治系统 (autonomous system, AS),每个 AS 通常由一个 ISP、企业或组织管理,并用 AS Number (ASN) 标识。

层次范围协议类型解决的问题
AS 内部路由一个自治系统内部内部网关协议 IGP,如 RIP、OSPF、IS-IS、EIGRPAS 内各子网和路由器如何互达
AS 间路由自治系统之间外部网关协议 EGP,事实标准是 BGP各 AS 如何通告可达性、选择跨域路径

层次化带来两个好处:

  1. 规模可控:AS 内部路由只处理本 AS 内有限数量的路由器和子网;AS 间路由把一个 AS 抽象成更粗粒度的节点。
  2. 管理独立:不同 AS 可以运行不同的内部路由协议,并根据商业关系和策略决定是否接收、选择或再通告某条路径。

5.8 AS 内部路由:RIP 与 OSPF ​

AS 内部路由更关注性能、快速收敛和资源利用,因为整个 AS 通常属于同一管理者。课件主要讨论 RIP 和 OSPF。

RIP ​

RIP (Routing Information Protocol) 是经典距离矢量协议,早期在 BSD UNIX 中实现。

特性RIP 行为
算法距离矢量
代价每条链路代价为 1,以跳数为指标
最大距离15 跳;16 表示不可达
通告周期邻居间约每 30 秒交换距离矢量
通告内容每条通告最多包含 25 个目标网络的可达信息
失效检测约 180 秒未收到邻居通告,则认为邻居或链路失效
环路缓解毒性逆转,把不可达路径以 16 跳通告
实现方式routed 守护进程,通告报文通过 UDP 传送

RIP 的一个有趣点是:它虽然服务于网络层路由,但实现上是一个应用进程,借助 UDP 报文交换路由信息。

OSPF ​

OSPF (Open Shortest Path First) 是开放的链路状态协议,也是更现代、更常用的 AS 内部路由协议之一。

特性OSPF 行为
算法链路状态
通告方式每台路由器向 AS 内泛洪链路状态通告
承载方式直接运行在 IP 之上,不使用 TCP 或 UDP
路径计算每台路由器得到拓扑和代价后运行 Dijkstra
代价指标可使用带宽、延迟等多种链路代价
安全性OSPF 报文可认证,防止恶意注入

OSPF 支持层次化区域:

角色作用
本地区域区域内路由器只需要掌握本区域详细拓扑
骨干区域连接多个区域,承载区域间路由
区域边界路由器汇总本区域可达信息,并通告到骨干区域
边界路由器连接其他 AS,同时参与外部路由
内部路由器在本区域内泛洪 LS 信息并计算区域内路由

这种结构让大型 AS 内部也能继续分层,避免所有路由器都维护整个 AS 的完整细节。

5.9 AS 间路由:BGP ​

BGP (Border Gateway Protocol) 是 AS 间路由的事实标准,常被称为把互联网粘在一起的协议。它让一个 AS 可以向其他 AS 通告:

text
我拥有这些网络前缀;或者,通过我可以到达这些网络前缀。

BGP 有两种会话范围:

类型作用
eBGP不同 AS 的网关路由器之间交换前缀可达性信息
iBGP在同一个 AS 内部传播从外部学到的可达性信息

BGP 被称为 路径矢量协议。它不只通告“到某前缀的距离”,还通告到达该前缀经过的 AS 序列,从而能检测环路,并为策略选择提供依据。

BGP 路由信息与属性 ​

BGP 通告的基本形式是:

text
prefix + attributes

两个关键属性是:

属性含义
AS-PATH到达该前缀要经过的 AS 序列
NEXT-HOP到下一跳 AS 的具体边界路由器

网关路由器收到路径后,不一定接受,也不一定再通告。AS 可以根据输入策略和输出策略过滤路径,例如不愿经过某个 AS、不愿为非客户网络承载过境流量,或者已有更偏好的路径。

BGP 报文 ​

BGP 对等体通过半永久 TCP 连接交换报文:

报文作用
OPEN打开到 BGP 对等体的连接并认证对等体
UPDATE通告新路径或撤回旧路径
KEEPALIVE在没有 UPDATE 时保持连接,也可确认 OPEN
NOTIFICATION报告错误并关闭连接

BGP 如何影响转发表 ​

AS 内部路由和 AS 间路由共同决定最终表项。假设 AS1 的内部路由器通过 iBGP 得知“经边界路由器 1c 可以到达前缀 X”,那么它还要靠 AS 内部路由协议算出自己到 1c 的路径。最终转发表通常是:

text
目标前缀 X -> 到达边界路由器 1c 的输出接口

这说明 BGP 负责选择跨 AS 的出口和路径属性,OSPF/RIP 等 IGP 负责把分组送到本 AS 内正确的出口。

热土豆路由 ​

热土豆路由 (hot potato routing) 指 AS 内路由器选择 离自己最近的出口网关,尽快把流量交给别的 AS。它不一定选择全局 AS 路径最短的出口,而是更关注本 AS 内部代价。

BGP 路由选择常见顺序是:

  1. 最高本地偏好值。
  2. 最短 AS-PATH。
  3. 最近 NEXT-HOP,也就是热土豆路由。
  4. 其他附加规则。

为什么 AS 内和 AS 间路由差异这么大 ​

维度AS 内部路由AS 间路由
管理者同一组织多个独立组织
主要目标性能、收敛、资源利用策略、商业关系、可扩展性
路径选择代价指标更重要策略通常比性能更重要
拓扑可见性可以暴露较多内部信息倾向隐藏内部结构

AS 间路由不是单纯的最短路问题。客户、提供商、对等互联、过境流量等商业关系会直接决定某些路径是否被通告和是否被采用。

5.10 SDN 控制平面 ​

传统互联网控制平面把路由算法放在每台路由器里,由私有路由器操作系统运行 IP、RIP、OSPF、BGP 等协议。SDN 重新思考这个结构:把控制平面从数据平面设备中抽离出来,由逻辑集中式控制器计算和安装表项。

SDN 的动机主要有三点:

动机说明
管理更简单网络策略集中表达,减少逐台设备配置错误
控制更灵活基于通用匹配表项的交换设备可被控制器编程
接口更开放控制平面不再完全绑定在厂商私有实现里,便于创新

传统路由在流量工程上的限制 ​

如果只靠目的地址转发和链路权重,网络运营者能调的旋钮很少。例如:

  • 想让 u→z 的流量走某条特定路径,通常只能改链路权重,让最短路算法间接得到这个结果。
  • 想把同一对源目的之间的流量分摊到两条路径,传统最短路协议不容易表达。
  • 想让同一出口上的不同业务流走不同策略,基于目的地址的转发也难以表达。

第四章提到的通用转发和 OpenFlow 把动作抽象成“匹配字段 + 执行动作”,为 SDN 的可编程控制提供了数据平面基础。

SDN 的四个特征 ​

特征含义
通用的基于流转发流表可匹配链路层、网络层、传输层等字段
控制平面与数据平面分离交换机负责快速转发,控制器负责计算表项
控制功能位于交换设备之外路由、访问控制、负载均衡等逻辑作为控制应用运行
可编程控制控制应用通过 API 使用控制器提供的网络状态和控制能力

SDN 控制器结构 ​

SDN 控制器常被称为 network OS,它负责维护网络状态并对上、对下提供接口:

层次作用
网络控制应用路由、访问控制、防火墙、负载均衡、流量工程等
北向 API给控制应用提供网络图、统计、意图、流表等抽象
网络状态管理维护链路、主机、交换机、流表和统计信息,通常需要分布式可靠存储
南向 API / 通信层通过 OpenFlow、SNMP、NETCONF、OVSDB 等协议和设备交互
SDN 交换设备实现高速通用转发,按控制器安装的表项处理分组

控制器逻辑上集中,但工程上常常分布式实现,以满足性能、可扩展性、容错和安全需求。

OpenFlow 协议 ​

OpenFlow 是控制器和交换机之间的一类南向协议,使用 TCP 交换报文,加密可以作为可选能力。它和 OpenFlow API 不同:API 描述通用转发行为,协议负责控制器和设备之间实际通信。

OpenFlow 报文可以分为三类:

类别方向例子
控制器到交换机控制器主动控制设备查询特性、配置设备、增加/删除/修改流表项、让交换机从指定端口发包
交换机到控制器设备向控制器上报事件packet-in、流移除、端口状态变化
对称消息双向或通用hello、echo 等连接维护消息

一个典型控制循环是:

  1. 交换机检测到链路失效,通过 OpenFlow 端口状态消息通知控制器。
  2. 控制器更新网络状态数据库。
  3. 已注册的链路状态路由应用被触发。
  4. 路由应用读取拓扑和链路状态,运行 Dijkstra 计算新路径。
  5. 控制器中的流表计算模块生成新的表项。
  6. 控制器通过 OpenFlow 把更新安装到相关交换机。

ODL、ONOS 与挑战 ​

OpenDaylight (ODL) 和 ONOS 都是 SDN 控制器实践。ODL 强调网络编排、服务抽象层和多种南向协议;ONOS 强调应用与控制器分离、意图框架和分布式核心。

SDN 的难点也很现实:

  • 控制平面本身必须可靠、可信、安全、可扩展。
  • 控制器故障不能让网络整体失控。
  • 网络状态要足够新,又不能被更新流量淹没。
  • 大范围跨 AS 部署比单个数据中心或运营商网络内部更困难。

5.11 ICMP 与 traceroute ​

ICMP (Internet Control Message Protocol) 用于主机和路由器之间传送网络层控制信息。它不是传输层协议,而是被封装在 IP 数据报中。

ICMP 报文包含类型、代码,以及触发错误的 IP 数据报头部和前 8 字节。常见类型如下:

TypeCode含义
00echo reply,ping 响应
30目标网络不可达
31目标主机不可达
32目标协议不可达
33目标端口不可达
80echo request,ping 请求
90路由器通告
100路由器发现
110TTL 过期
120IP 头部错误

traceroute 的基本机制 ​

traceroute 利用 TTL 和 ICMP 观察路径上的路由器:

  1. 源主机向目标发送一系列 UDP 段。
  2. 第一轮设置 TTL=1,第二轮 TTL=2,依此类推,通常每个 TTL 发多个探测包。
  3. 第 n 轮探测包到达第 n 个路由器时 TTL 变为 0,路由器丢弃该分组,并返回 ICMP TTL expired。
  4. 源主机收到 ICMP 报文后记录路由器地址和往返时间。
  5. 当 UDP 段最终到达目标主机时,由于目标端口通常未开放,目标返回 ICMP port unreachable。
  6. 源主机以这个端口不可达报文作为停止条件。

因此,ping 主要测试端到端连通性和 RTT;traceroute 则逐跳暴露路径和每跳 RTT。

5.12 网络管理:SNMP、MIB、NETCONF 与 YANG ​

网络管理要监测、测试、配置、分析和控制网络设备,使网络以合理成本满足可用性、性能和服务质量要求。一个 AS 可能有大量互操作的软硬件元素,因此需要系统化管理机制。

网络管理的基本角色如下:

元件作用
管理服务器/控制器运行管理应用,通常有人类管理员或自动化系统参与
被管设备具有可管理、可配置硬件和软件组件的路由器、交换机等设备
代理数据设备状态、配置参数、运行参数和统计信息
网络管理协议用于查询、配置设备,或让设备上报事件

管理员可以通过三类方式管理网络:

方式特点
CLI直接登录单台设备输入命令或脚本,简单但不适合大规模自动化
SNMP/MIB查询或设置 MIB 中的设备变量,也能接收异常事件通知
NETCONF/YANG面向网络范围配置,抽象程度更高,强调多设备配置管理

SNMP 与 MIB ​

SNMP (Simple Network Management Protocol) 以管理服务器和被管设备代理之间的交互为核心。它有两种基本模式:

模式说明
request/response管理服务器主动查询或设置设备数据
trap被管设备主动向管理服务器报告异常事件

常见 SNMP 报文类型:

报文方向功能
GetRequestmanager -> agent读取指定数据
GetNextRequestmanager -> agent读取列表中的下一个数据
GetBulkRequestmanager -> agent批量读取数据
SetRequestmanager -> agent设置 MIB 变量
Responseagent -> manager返回值或响应请求
Trapagent -> manager报告异常事件

MIB (Management Information Base) 是被管设备运行数据和部分配置数据的集合。MIB 模块由对象 ID 标识,SMI (Structure of Management Information) 则提供数据定义语言。典型变量包括 UDP 输入数据报数、无端口可交付数据报数、输出数据报数等计数器。

NETCONF ​

NETCONF 的目标是主动管理和配置网络范围内的设备。它运行在管理服务器和被管设备之间,采用远程过程调用 (RPC) 范式,报文通常编码为 XML,并运行在安全、可靠传输之上。

NETCONF 支持:

  • 请求、设置、修改和激活配置。
  • 对多个设备执行原子配置操作。
  • 查询运行状态和统计数据。
  • 订阅设备通知。

常见操作包括:

操作作用
<get-config>检索给定配置的全部或部分内容
<get>检索配置状态和操作状态数据
<edit-config>修改被管设备上的配置
<lock> / <unlock>锁定或解锁配置数据存储,避免并发修改冲突
<create-subscription>启用事件通知订阅
<notification>被管设备发送事件通知

NETCONF 会话通常包括 <hello> 能力交换、多个 <rpc> / <rpc-reply> 交互、可能的 <notification>,最后通过 <close-session> 关闭。

YANG ​

YANG 是用于描述 NETCONF 管理数据的数据建模语言。它规定配置数据的结构、语法和语义,包含内置数据类型,也能表达配置之间必须满足的约束。

可以把三者关系简化为:

text
YANG 定义数据模型
NETCONF 按模型读写配置和状态
设备根据配置改变运行行为

SNMP 更偏向监测和简单变量管理;NETCONF/YANG 更偏向结构化、可验证、可自动化的大规模配置管理。

5.13 本章小结 ​

本章的核心问题是:网络层的转发表和控制状态如何被计算、分发、管理和更新?

需要掌握的主线:

  1. 控制平面决定路径和表项,数据平面按表项逐包转发。
  2. 路由通常以子网为单位,图抽象把路由器表示为节点,把链路表示为带代价的边。
  3. 链路状态算法让每台路由器掌握全局拓扑,再用 Dijkstra 计算最短路径。
  4. 距离矢量算法只在邻居间交换距离估计,用 Bellman-Ford 迭代收敛。
  5. LS 和 DV 各有代价:LS 依赖泛洪和全局状态,DV 可能出现环路和无穷计数。
  6. 互联网通过 AS 实现层次化路由,AS 内部协议解决性能和可达性,BGP 解决跨 AS 可达性和策略。
  7. RIP 是经典 DV 协议;OSPF 是开放的 LS 协议,并支持区域层次化。
  8. BGP 是路径矢量协议,核心是前缀、AS-PATH、NEXT-HOP、策略和通告控制。
  9. SDN 把控制逻辑移到逻辑集中式控制器,通过北向/南向 API 和 OpenFlow 等协议编程数据平面。
  10. ICMP 支持错误报告、ping 和 traceroute 等网络诊断。
  11. SNMP/MIB、NETCONF/YANG 提供网络监测、配置和管理机制。

下一章的问题是:当一个分组已经知道下一跳后,它如何在单条链路上被封装、传输、校验并交付?