Udp 包含报头的IP数据包帧有多大?

Udp 包含报头的IP数据包帧有多大?,udp,Udp,一点背景知识 我正在编写一个使用UDP的应用程序。应用程序将在LAN(而不是internet)上运行。 我一直在假设,如果我的MTU是1500,那么UDP有效负载就可以有多大,但我不确定 不确定UDP报头是否也要包含在其中 我怀疑,如果我发送一个带有1500字节负载的UDP数据包,而机器MTU是1500字节,那么它最终会发送两个数据包吗 在互联网上搜索一个明确的答案似乎比它应该的要难,我看到了相互矛盾的信息 --------------------------------------------

一点背景知识

我正在编写一个使用UDP的应用程序。应用程序将在LAN(而不是internet)上运行。 我一直在假设,如果我的MTU是1500,那么UDP有效负载就可以有多大,但我不确定 不确定UDP报头是否也要包含在其中

我怀疑,如果我发送一个带有1500字节负载的UDP数据包,而机器MTU是1500字节,那么它最终会发送两个数据包吗

在互联网上搜索一个明确的答案似乎比它应该的要难,我看到了相互矛盾的信息

------------------------------------------------------------------------------
|Ethernet  | IPv4         |UDP    | Data                   |Ethernet checksum|
------------------------------------------------------------------------------
  14 bytes    20 bytes     8 bytes    x bytes                4 bytes
           \ (w/o options)                               /
            \___________________________________________/
                              |
                             MTU
如果MTU为1500,则数据的字节数为1500-20-8=1472

  • 如果超过该值,数据包将被分割,即分割成更多数据包
  • 可能会涉及更多层,例如,如果您位于vlan以太网的顶部,则vlan报头将包含4字节
  • 在您和目的地之间的某些路由器可能会添加更多层

是的,您的示例不适合一个框架

以太网数据有效负载为1500字节。IPv4的标头至少需要20个字节。或者,IPv6至少需要40个字节。UDP的头需要8个字节。这将为您的数据保留1472字节(ipv4)或1452字节(ipv6)

更多信息:


    • 所以,下面是它的工作原理。以太网将您的数据流限制为每帧1500字节,即使您有一个100兆fat管道。要真正使用线速率,通过UDP应用程序,您需要使用/移动到以太网巨型帧,每个帧最多支持9000字节。此外,如果你查看netflix/youtube和其他流媒体协议,它们会在开始流媒体之前测试你的链接。本质上,他们做的是,在转储流之前,向您发送一些数据并计算/平均链路速度。它们基本上也使用UDP,但具有非常大的数据包大小。我想肯定大于1500字节

      很确定这会让你支离破碎。不过,你可以用Wireshark来确定这一点。谢谢,是的Wireshark没有显示太多,因为我是独立开发的。环回MTU是16436!谢谢大家,谢谢你们的链接。它们比我在谷歌上找到的要好。好吧,MTU不包括以太网报头和尾随的CRC32(您省略了),而是有效的以太网负载,您必须减去IP协议开销。谢谢,这是我怀疑的,但不确定。@Lucero是的,您可能是对的,取决于将MTU定义为的图层。我猜在本例中是IP数据报的MTU。以太网的MTU是我们正在讨论的,因此很少有人猜测它适用于哪一层。值得注意的额外层是子网,802.2 SNAP LLC为8字节。这称为路径MTU发现,与我最初的问题无关。如果这个问题在一年前就已经得到了充分的回答,那么发布你的答案就没有意义了。发帖前要仔细考虑。