科学工具 / 27 · COMPUTER NETWORKS

网络拓扑与数据包仿真

把拥堵、等待与绕行,拆成每一个真实发生的时刻。

先播放观察瓶颈,再把 B—C 的带宽调大,比较延迟与丢包。

构造自己的网络

新增双向链路

↔

拖动只改布局。每条链路的两个方向各有独立队列,标签为每方向带宽。

记录一份基线

带走实验结果

CSV 为完整实验,时间线与上方六项指标随回放时刻变化。图面长名称缩略,完整内容保留在实验JSON。

链路与流量

链路Mbps传播 ms等待槽开启断链 ms

等待槽不包含正在发送的包;0 有效。断链时刻留空表示不安排,0 表示起始断开。

流量源

名称起点终点bytes包数间隔 ms起始 ms

最多16节点、32链路、8条流、全实验1000个包。相同输入产生相同事件。

这一封包,等在了哪里?

跳路径入队 ms开始发送发送完成到达排队 ms
模型约定、公式与一手资料

本实验是确定性、全双工、FIFO、存储转发的离散事件模型。发送时延 = 字节数 × 8 ÷(带宽 Mbps × 1000),单位 ms。每跳总时延 = 等待 + 发送 + 传播;节点处理时间在此模型取零。

每次到达节点,用 Dijkstra 选择当前可用链路的最小「发送+传播」路径,不把队列预测放进路由代价。同一时刻依次处理断链、发送完成、到达/新发送;同级按事件插入次序。断链丢弃该链路两个方向的等待包,已经开始发送或传播的包按教学约定继续完成该跳。没有恢复、ACK、重传、拥塞控制或协议头,也不是 TCP/IP 性能预测器。

吞吐率统计为在观察窗口内成功到达的完整包位数 ÷ 从首包发送至当前时刻(最多全实验完成时刻)的时长。延迟均值和 P95 仅针对已经交付的包;P95 使用排序后的最近秩。丢失比例分母为已发送包。空集合显示 —。所有示例为原创合成数据。

参考:MIT 6.02 · Lecture 17: Packet switching。链接用于阅读,不是运行依赖。