Packet Delay, Forwarding, and Routing(分组时延、转发与路由)思考记录
背景
学习《Computer Networking: A Top-Down Approach》1.3 分组交换时,围绕以下问题反复确认:
- 单条链路上有
N个 packet 时,为什么总发送时延是N(L/R) - 1 个 packet 经过
N条链路时,为什么也是N(L/R) - 传播时延、排队时延分别发生在哪里
- 书上为什么只提发送时延、排队时延、传播时延
forwarding和routing到底分别在做什么packet loss是丢一个 packet,还是把相关 packet 一起丢掉
Q1:单条链路上有 N 个 packet,为什么总时间是 N(L/R)?
初始疑问
直觉里容易把“链路上传输一个 packet”理解成一次性完成。
但如果有 N 个 packet 连续通过同一条链路,最后一个 packet 什么时候完成发送?
思考过程
每个 packet 的长度是 L,链路速率是 R。
把一个 packet 的所有比特完整推出发送端口,需要:
L / R如果是 N 个 packet 连续发送,那么每个 packet 都要占用一次发送过程。
因此最后一个 packet 完成发送时,总发送时延是:
N(L / R)这里先只看发送时延,不把传播时延混进去。
结论
N 个 packet 经过同一条链路时,总发送时延 = N(L / R)Q2:1 个 packet 经过 N 条链路,为什么也是 N(L/R)?
初始疑问
我一开始以为 1 个 packet 走多跳时,可能只算成 2L/R 之类的形式。
思考过程
这里的关键是:一个 packet 经过多少条链路,就要被完整发送多少次。
如果路径上有:
N 条链路
N - 1 台路由器那么 packet 会被存储转发:
- 在第 1 条链路上完整发送一次
- 到达路由器后,再在第 2 条链路上完整发送一次
- 依次类推
所以发送时延累加后得到:
N(L / R)如果只有 2 条链路,那才会是 2(L/R)。
结论
1 个 packet 经过 N 条链路时,总发送时延 = N(L / R)Q3:书上这部分里的三种时延分别发生在哪里?
初始疑问
这一节看到的是:
- 发送时延
- 排队时延
- 传播时延
那它们分别对应网络里的什么位置?
思考过程
按这一节的简化视角,可以先这样理解:
- 排队时延:packet 在输出缓存里等
- 发送时延:packet 被完整推出端口
- 传播时延:信号在链路上传过去
也就是:
flowchart LR A[输出缓存] -->|排队时延| B[发送端口] B -->|发送时延 L/R| C[物理链路] C -->|传播时延 d/s| D[下一跳]
这一节先不单列处理时延,所以学习时可以先把它放在后面,不和当前模型混在一起。
结论
这一节的主线是:
排队时延 + 发送时延 + 传播时延Q4:处理时延为什么没有在这一节单独提?
初始疑问
完整的节点时延常常会提到处理时延,但 1.3 里没有展开。
思考过程
这一节的重点是先让读者抓住分组交换里最核心、最直观的三件事:
- packet 在节点里等多久
- packet 被推出去要多久
- 信号在链路上跑多久
所以处理时延在这一节里被省略了。
这不表示它不存在,只是当前章节先不把它作为主线。
结论
1.3 关注三种时延;处理时延是更完整模型里再补充的内容。Q5:forwarding 和 routing 分别是什么?
初始疑问
书上提到转发表和路由选择协议:
- 转发表把目的 IP 映射为输出链路
- 路由选择协议用于自动设置转发表
思考过程
可以先把它们理解为两层不同的事情:
- forwarding:router 收到 packet 后,立刻查表,决定从哪个输出口发出去
- routing:网络里通过路由选择协议,自动算出这些表项,并维护它们
简单说就是:
- forwarding 负责“走哪条口”
- routing 负责“表怎么来”
结论
forwarding = 依据转发表转发 packet
routing = 自动生成 / 维护转发表Q6:packet loss 是丢一个 packet,还是把相关 packet 一起丢掉?
初始疑问
输出缓存满了时,丢的是哪个范围?
思考过程
在当前学习阶段里,可以先把它理解为:
- 丢的是进不去的那个 packet
- 其他已经在队列里的 packet 继续保留和转发
也就是说,packet loss 一般是“按 packet 发生”的,不会把无关的其他 packet 一起带走。
结论
packet loss 通常表示某一个 packet 被丢弃,不是把一批 packet 全丢掉。最终理解
在 1.3 的简化模型里,分组交换的核心是三种时延:排队、发送、传播。packet 经过多少条链路,就要被完整发送多少次;forwarding 是查转发表做转发,routing 是自动维护这些表;packet loss 通常只影响那个进不去队列或被丢弃的 packet。
总结模型
flowchart TD A[packet 到达节点] --> B[输出缓存排队] B --> C[发送端口推出 packet] C --> D[链路上传播] D --> E[下一跳节点接收] E --> F[查转发表转发] B -->|排队时延| B1[queuing delay] C -->|发送时延| C1[transmission delay] D -->|传播时延| D1[propagation delay] F -->|forwarding| F1[依据转发表决定输出链路]
关联概念
- Packet:分组本身
- Router:转发 packet 的网络设备
- Host & End System:packet 的产生端和接收端
- Packet Switching:分组交换的机制总结
- Network Fundamentals:协议、主机、路由器的整体理解