【发布时间】:2018-08-13 06:02:01
【问题描述】:
我在 linux 上使用 ping 进行了一些测试,我有点好奇 DF 位和碎片是如何工作的。我一直在发送一些带有命令 -M do 的包和一些带有 -M dont 的包,我意识到即使发送小于 MTU 的包,rtt 也比 DF 位更小禁用比启用 DF 位时。碎片化对rtt真的有一些影响吗?为什么?
【问题讨论】:
我在 linux 上使用 ping 进行了一些测试,我有点好奇 DF 位和碎片是如何工作的。我一直在发送一些带有命令 -M do 的包和一些带有 -M dont 的包,我意识到即使发送小于 MTU 的包,rtt 也比 DF 位更小禁用比启用 DF 位时。碎片化对rtt真的有一些影响吗?为什么?
【问题讨论】:
DF 位对 RTT 或 TTL 没有(实际)影响。
发送数据包时,TTL 指示您的数据包应该存活多少路由器跃点。在接收时,它会指示路由经过了多少跳(前提是您知道或猜到了起始值)。
RTT 是数据包到达目的地并再次返回的时间。当使用未分段的 ICMP 回显请求 (ping) 时,回答时间可能提供 RTT 的估计值 - 但是,由于 ICMP 通常以低优先级运行,ping 时间也可能比RTT。
对于较大的 ping 数据包,尤其是分段 ping 数据包,带宽开始发挥作用。ping 不仅测量 发送第一个片段和 接收最后一个片段之间的时间 em> 响应片段,但您还需要考虑所有片段在两个方向上的传输时间。对于细链接,这为ping 增加了可忽略不计的延迟。
现在,设置 DF 位只会阻止您发送碎片化的回显请求。
【讨论】: