如何增加 UDP 的最大数据包大小?

发布于 2024-10-09 15:30:58 字数 119 浏览 3 评论 0原文

我通常发送 3 到 15 KB 的数据包,但有时我需要发送大约 0.8-0.9 MB 的大数据包。在这种情况下,UDP 套接字将停止,因为单个数据包大小可能存在一些限制。

如何增加此限制以便可以发送大数据包?

I am usually sending packets that range from 3 to 15 KB but from time to time I need to send a large packet which is about 0.8-0.9 MB. In that case the UDP socket will stop because there is probably some limit on a single packet size.

How can I increase this limit so I can send large packets?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

南七夏 2024-10-16 15:30:58

UDP数据包头中的length字段的宽度只有16位;您不能拥有大于 65,535 字节的单个 UDP 数据包(也包括标头,因此实际上限制为 65,527 字节;由于 IP 还有其他限制,它可能甚至更低)。

The length field in the UDP packet header is only 16 bits in width; you can't have a single UDP packet larger than 65,535 bytes (that includes the header, too, so really the limit is 65,527 bytes; it's probably even lower still since IP has other restrictions).

忆伤 2024-10-16 15:30:58

请注意,大于 MTU 的 UDP 数据包(在主机之间的每个希望)将被 IP 分割。如果其中一个部分丢失,则整个 UDP 数据包将被丢弃。没有重传。

在本地 LAN 上,流量较低时您可能不会注意到差异,但在任何不太理想的情况下,这可能会对性能造成巨大影响。

我认为最好的方法是:

  • 使用 TCP 处理大于几 KB 的
  • 消息分割(您很快就会发现您正在重新发明 TCP),
  • 在 UDP 之上使用其他一些经过良好测试的协议。一个例子是 UDT

note that UDP packets bigger than the MTU's (at every hope between your hosts) will be split by IP. If a single one of these parts is lost, the whole UDP packet will be discarded. There's no retransmission.

On a local LAN, with low traffic you might not note the difference, but in any not-so-ideal situation, it could be a huge performance hit.

I think it would be much better to either:

  • use TCP for anything bigger than a few KB's
  • split your messages (you'll find pretty soon you're reinventing TCP)
  • use some other well-tested protocol on top of UDP. One example is UDT
止于盛夏 2024-10-16 15:30:58

尽管第 4 层标头中的字段大小有限制,但可以使用大于 64K 的数据包。请参阅IPv6 Jumbograms

It is possible to use packets >64K, despite the size limitation of fields in the layer-4 headers. See IPv6 Jumbograms.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文