首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Internet上最大的安全UDP数据包大小是多少

Internet上最大的安全UDP数据包大小是多少
EN

Stack Overflow用户
提问于 2009-07-08 23:39:49
回答 4查看 300.6K关注 0票数 227

我已经阅读了许多关于UDP数据包大小的文章,但无法得出哪些是正确的结论。

许多服务将最大UDP数据包限制为512字节(如dns)

给定因特网上的最小MTU是576,并且IPv4报头的大小是20字节,而UDP报头是8字节。这样就剩下548个字节可用于用户数据

我是否可以在没有数据包碎片的情况下使用548大小的数据包?或者DNS的创建者知道什么,为什么他们把它限制在512字节。

我还能安全地使用548字节以上的数据吗?

EN

回答 4

Stack Overflow用户

发布于 2014-05-28 23:05:47

本文描述了最大传输单位(MTU) http://en.wikipedia.org/wiki/Maximum_transmission_unit。它规定IP主机必须能够处理IP数据包的576个字节。然而,它指出,最低是68。RFC 791:“每个互联网模块必须能够转发68个八位字节的数据报,而不会进一步分段。这是因为互联网报头可以高达60个八位字节,而最小片段是8个八位字节。”

因此,508 = 576 - 60 (IP报头)-8 (udp报头)的安全分组大小是合理的。

正如user607811所提到的,其他网络层的碎片必须重新组装。https://www.rfc-editor.org/rfc/rfc1122#page-56 3.3.2重组IP层必须实现IP数据报的重组。我们指定可由EMTU_R重组的最大数据报大小(“有效接收MTU”);这有时被称为“重组缓冲区大小”。EMTU_R必须大于或等于576

票数 15
EN

Stack Overflow用户

发布于 2016-08-03 19:34:56

我在这里读到了一些不错的答案;但是,也有一些小错误。有些人回答说,UDP报头中的消息长度字段最多为65535 (0xFFFF);这在技术上是正确的。有些人回答说,实际的最大值是(65535 - IPHL - UDPHL = 65507)。错误在于,UDP报头中的消息长度字段包括所有有效载荷(层5-7),外加UDP报头的长度(8字节)。这意味着如果消息长度字段是200字节(0x00C8),则有效载荷实际上是192字节(0x00C0)。

最难的是,IP数据报的最大大小是65535字节。此数字等于L3和L4报头加上第5-7层有效负载的总和。IP报头+ UDP报头+层5-7 = 65535 (最大)。

最正确的答案是65515字节(0xFFEB),因为UDP数据报包含UDP报头。UDP有效负载的最大大小是65507字节,因为UDP有效负载不包括UDP报头。

票数 8
EN

Stack Overflow用户

发布于 2009-07-08 15:45:52

512是你最好的选择它在其他地方使用,是一个很好的偶数(1024的一半)。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1098897

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档