网络拓扑与数据包仿真 科学工具 27 · 计算机网络 第一次打开 点「播放事件」,看看上路的包如何经过瓶颈。下方包号选择器定位某一个包,地图和逐跳时间线同时变化。黄色是排队,紫色是串行发送,绿色是传播。点「看完整实验」得到全部包的最终结果。 完成一个自己的实验 1. 选择节点,改名字或位置;可以直接拖动,也可输入横纵坐标。新增节点后选择两个端点建立链路。 2. 链路按每个方向设置带宽Mbps、传播时延ms、等待槽。两个方向互不占用对方的发送器与队列。0等待槽是合法实验。 3. 添加一条流,设置来源、目的、包字节、包数、间隔和开始时间。总包数最多1000。 4. 先冻结基线,再把B—C带宽从0.8改为8 Mbps,或设置一次断链时刻。结果重新计算,当前与基线使用各自完整条件。 5. 导出完整实验JSON以继续编辑;包CSV记录送达或明确丢失原因,逐跳CSV记录每段等待/发送/到达;PNG是当前观察时刻的图面。 模型与单位 使用确定性离散事件、FIFO和存储转发。发送时间=bytes×8/(Mbps×1000) ms,每次转发以Dijkstra选择当前可用链路的「发送+传播」最短路,不预测队列。链路有限等待槽不含正在发送的包。断链先丢弃等待包;按本工具教学约定,已经开始发送及传播的包完成这一跳,新包重新选路。没有TCP、重传、ACK、拥塞控制、协议头或处理时延。 同一时刻依次处理断链、发送完成、到达/发包,再按事件插入次序。所有包最终交付或明确丢失。回放是预先实际算出的事件记录,可暂停、跳到下一事件时刻;同一时刻发生的事件一起呈现。实验窗口从首包发送到最后一个包结束;在这之后才计划的断链不扩大吞吐率的分母。 实际核对结果 默认140包中72交付、68丢失;已交付包平均42.5166667 ms,最近秩P95为77.4 ms。将BC带宽改为8 Mbps后,140包全部交付,平均11.7842857 ms。独立小例:1000 bytes、1 Mbps、3 ms传播,一跳11 ms;再接2 Mbps、5 ms链路,总20 ms。0等待槽下三包同发,一包送达、两包丢失;同时反向发送不抢占另一个方向。 这些都是指定教学模型和合成流量的结果,不是现实互联网性能预测。 一手资料 MIT 6.02 Lecture 17: Packet switching https://ocw.mit.edu/courses/6-02-introduction-to-eecs-ii-digital-communication-systems-fall-2012/8f332043eaaa2d41028991a442dd4fb6_MIT6_02F12_lec17.pdf 使用方式与数据 双击 index.html。运行资源、脚本与中文常用字字体都在单个HTML中;没有CDN、API、账户或本地服务器要求。来源链接只用于阅读资料。新增字体子集之外的字由系统字体回退。浏览器暂存可能受路径、隐私模式或容量影响,重要资料请保存完整JSON。作品提供手动下载和严格回读,不会直接覆盖你电脑上的文件。撤销重做覆盖文档编辑,视图选择可独立改变。拖动尚未完成时切换历史、编辑其他参数或操作回放,会取消该次拖动预览;已完成的拖动仍可撤销。开始播放后,之前尚未完成的文件读取不会覆盖当前操作。 核对范围 已执行最终HTML内的真实模型与真实Canvas绘图,用Node和原生Canvas核对输出;还使用非渲染元素替身直接调用最终内嵌UI处理器,核对撤销/拖动所有权和迟到文件读取;导出的PNG已解码并人工看过。此环境没有获准的浏览器控制,未把这些图称为网页截图,也没有声称DOM/CSS布局、真实鼠标或触控事件、本地首次断网冷启动、系统下载对话框和移动设备性能已经验收。