为什么设置了“不分段”标志且大于 MTU 的数据包仍会被发送?

问题描述 投票:0回答:1

我发现即使设置了“不分段”(DF) 标志,仍会发送大于网卡 MTU 的数据包。详情如下:

  • 环境:Windows 10
  • MTU 设置:1450 字节
  • 观察到的数据包大小:2800 字节
  • 数据包类型:TCP Ipv4
  • 抓包工具:Wireshark
  • DF 标志:在数据包上设置

根据我的理解,如果设置了 DF 标志,则不应发送大于 MTU 的数据包。但是,我在 Wireshark 中看到这些大数据包。我知道网卡硬件也可以对数据包进行分段,但我认为尊重 DF 标志?我知道wireshark会在数据包到达硬件之前捕获数据包,并且wireshark正在发送数据包的机器上运行。

networking tcp
1个回答
0
投票

DF 标志用于到目的地路径中的路由器。 NIC 可以在发送数据包之前对其进行分段。因此,数据包在发送之前就已经被分段了。

如果路由器收到一个 DF 和 MTU 太大的数据包,它将返回 ICMP 错误类型 3:“目标无法到达”,代码 4:“需要分片,并且已设置 DF”。但您自己的 NIC 不会将这些 ICMP 发送回给您。

© www.soinside.com 2019 - 2024. All rights reserved.