gpt4 book ai didi

network-programming - 编程实践 : how to choose a packet size for UDP datagrams?

转载 作者:行者123 更新时间:2023-12-04 08:14:15 24 4
gpt4 key购买 nike

免责声明:这不是一个“如何”的问题。作为背景信息,我更想知道实际使用的不同实际做法是什么。

我们知道 UDP 没有像 TCP 那样的 PMTU 发现。因此,我看到了几种避免使用 UDP 产生 IP 碎片的方法:

  • 最大发送 512 字节数据包(UDP 方法)
  • 重新实现一些 PMTU(使用 ICMP“需要分段”消息)。
  • 依赖本地MTU(但它有多可靠,因为UDP不是连接协议(protocol),它怎么知道它的数据包将通过哪个接口(interface)?)
  • 其他... ?

  • 所以我想要了解当前 UDP 程序/协议(protocol)正在使用哪些方法的“背景”概念,尤其是关于流/VoIP 常见应用程序?

    预先感谢,

    乔斯林

    最佳答案

    限制为 576 字节是很常见的。大多数 Internet 协议(protocol)(例如 DNS)都是这样做的。大多数实时流协议(protocol)也使用较小的数据包,因为它具有提供较低序列化延迟和单个数据包丢失时影响较小的额外好处。

    一些协议(protocol)具有协商更大数据包大小的方法,但通常不像 PMTU 发现那样健壮(例如,DHCP 允许最大消息大小协商)。

    还有一些默认为 1500 左右的东西,并让用户在必要时降低它。 SNMP 的大多数实现似乎都在做这样的事情。

    无论如何,通常不会设置 DF 位,因此过于乐观的后果是碎片,而不是损坏。

    关于network-programming - 编程实践 : how to choose a packet size for UDP datagrams?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4346021/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com