一包消息,怎样走到目的地?
网上的消息会被分成小数据包。每个包带着目的地址。路由器像路口的指路员,看自己的路线表,再决定把它交给哪个邻居。
一包消息每到一个路口,就重新决定下一步。出口忙时要排队,线路坏了可能要绕路,而路线表的更新也需要时间。
跟住同一个编号,看看它在哪里等待、走向哪里、最后有没有到达。目的地相同,也不保证走同一条路、按同一顺序抵达。
跟住同一个编号做比较
- 选中同一个数据包,拖动时间,跟住它的等待和行走。
- 让一条线路故障,看看附近和远处的路由表是否同时更新。
- 增加等候位置,再比较丢包和等待:能多留下数据,不等于出口变快。
等待、收敛与协议边界
进一步操作与数值核对
- 稳定网络下选 P3,缩短源端间隔并降低 B–R 速率。拖动时间,看它先进入等待位,再获得发送机会。
- 把初始 TTL 设为 2。A 将其减到 1,B 再减到 0 后丢弃;目的地很近也不能绕过这个检查。
- 选择 B–R 故障,停在 50 ms。B 已改路,A、C 仍用旧数据库。到 93–94 ms,远处的更新才依次安装。
- 用同一批分组比较原有缓存与八个等待位。更多分组能留下,但出口每秒能发送的比特数没有变化。
- 选择恢复链路与重排,跟随 P4。它先到,但应用示例会等待 P1、P2、P3。这个示例没有重传;若某个前序分组永远丢失,缺口不会自动消失。
六个滑块和所有选择按钮均可用键盘操作。重置恢复所有数值、场景、时间、分组选择、本地路由器选择及缓存比较开关。观看和探索都使用同一事件模型;画面慢放的是毫秒级过程。
想核对技术细节?
网上的消息会被装进一个个小数据包,这里叫“分组”。每个包带着目的地址。路由器像路口的指路员,先看自己的地图,再决定把它交给哪个邻居;它不需要提前安排整段旅程。
一号分组从 S 发往 R。A 和 B 不需要替它预先写好整段旅程:每次收齐分组,根据自己的路由表选一个下一跳,再排入相应出口。目的地址保持不变,走过的节点却由沿途当时的本地状态决定。
本片的路由器各有一份链路状态数据库,使用 Dijkstra 算法求最小代价路径。代价是配置的权重,不是画面上的线段长度,也不会自动等于眼前的排队时间。初始数据库已经同步;之后只有 B–R 的状态会改变,其他路由器必须收到并安装更新才会改表。这借用了链路状态协议的核心思想,而不是完整 OSPF 实现。RFC 2328
网络中出现了丢失、短暂绕圈和乱序,并不意味着分组被动画随意移动。每个分组都有固定编号与释放时刻;模型记录它的所有处理、排队、发送、传播和最终结果。
时延究竟由什么组成?
L 是字节数,R 是比特每秒。每个分组固定 1200 B,在 0.4 Mbit/s 出口完整发送需要 24 ms。传播从发送最后一比特到最后一比特到达的时间计算,下一跳只有收齐后才开始 1 ms 的处理。图上的分组标记在发送阶段留在出口,传播阶段沿线移动;它代表分组状态,不代表真实空间尺寸。
每个方向都有独立 FIFO 出口。等待位不包含正在发送的分组,因此零等待位仍能发送一个立即获得空闲出口的分组。出口忙且等待位满时,后来者被丢弃。正常默认网络的一号分组共花 35.2 ms:2 ms 处理、19.2 ms 发送、14 ms 传播,无排队。
为什么故障后的路由不同时改变?
B 在 40 ms 立即检测到本地 B–R 故障,更新自身数据库并发送版本 1。教学控制消息是 80 B,使用与数据隔离的 64 kbit/s 控制预算,另加所在链路传播时间和每个接收路由器 40 ms 的安装处理。C 在 93 ms 安装,A 在 94 ms 安装。重复版本不再安装或继续扩散。这里的速率与处理时间是明确选择的教学参数,不是 OSPF 定时器或真实设备性能。
在 C 更新前,B 的新表指向 C,C 的旧表又指向 B。P2 实际走过 S → A → B → C → B → C → B → C → R,最后携带 TTL=1 到达。TTL 每经路由器准备转发至少减一,本片的短时过程按一计算,零值分组丢弃。目的主机不执行下一次转发检查。RFC 1812,第 5.3.1 节
链路中断会丢弃这个模型中正在该链路发送、传播或等待的分组,旧事件不能让它们复活。故障精确位置、检测延迟、重传与故障保护不在模型内。没有改变的链路状态从起点就已知。
接收乱序等于 TCP 吗?
不是。P1、P2 等是教学身份编号,兼作这个应用示例的顺序号,不是 IPv4 分片标识字段。恢复场景中,前三个分组走传播时间较长的 C–R;后续分组在路由更新后走 B–R,计算出的到达顺序是 P4、P1、P5、P2、P6、P3。下排只把已到达的连续前缀标成可交付,缺口之后的分组先暂存。
IP 本身不承诺可靠传送,不提供端到端确认、重传或流量控制。RFC 791 本片也不模拟 TCP 拥塞窗口、确认、超时、重传、分片、ICMP、地址前缀匹配、ECMP、OSPF 邻接建立、区域和可靠洪泛。绿色顺序槽只是按序交付的一种应用策略。
已计划编号始终分成四类:未发、在途、到达和丢弃。按序交付是“到达”中的子集,不能再加一次计数。动画没有自动补包,也没有把丢弃编号从记录里删掉。