何时在IP头中设置"不分片"标志?

don*_*ing 4 ip networking tcp wireshark

IP头中有一个"Do not fragment"标志.应用程序能设置此标志吗?什么时候设置这个标志?

Ket*_*dam 5

如果在数据包上设置'DF'位,则通常会将大于MTU的数据包分段(并且可能无序地传送)的路由器将丢弃该数据包.期望路由器发送"需要ICMP分段"的数据包,允许发送主机在到目的主机的路径上考虑较低的MTU.然后,发送方将减少其对连接的路径MTU(最大传输单元)的估计,并在较小的段中重新发送.该过程称为PMTU-D("路径MTU发现").

碎片会导致CPU处理的额外开销,以在另一端重新组装数据包(并处理丢失的碎片).

通常,'DF'位是IP堆栈的可配置参数.我知道ping实用程序,可以选择设置DF.

避免碎片通常很有用,因为除了碎片化和重新组装的CPU利用率之外,它可能会影响吞吐量(如果丢失的碎片需要重新传输).因此,通常希望知道最大传输单元.因此,通过简单地设置DF位(比如说ping),'Path MTU discovery'用于查找此大小