【问题标题】:UDP packet loss rate might increase on conditions?UDP丢包率可能会增加?
【发布时间】:2015-11-03 18:43:01
【问题描述】:

考虑到数据包的大小,UDP 数据包丢失百分比是否会增加?例如,如果我发送 100'000 个数据包,首先尝试 byte[] 大小为 30,但第二次尝试为 300。数据包大小是否会影响它的 丢弃能力,或者数据包丢失百分比与其大小无关?

【问题讨论】:

    标签: sockets udp packet-loss


    【解决方案1】:

    数据包丢失取决于数据包的大小。这有几个原因。

    • IP 数据包大约可以达到 64k,但它们会被分段到以太网的 MTU,如果其中一个数据包丢失,则整个 IP 数据包都会被丢弃。对于较大的数据包,如果流量较高,则丢弃较大数据包的概率较高。 MTU 约为 1500 字节。

    • 不仅如此。在内部,协议栈是使用比 mtu 小很多的内部缓冲区实现的,这可以从 300 字节和更大的字节变化。但关键是这些缓冲区也是有限的资源。如果网络设备的缓冲区用完,那么数据包也会被丢弃。

    【讨论】:

    • 谢谢你的回答,有趣的东西,当然不知道MTU
    【解决方案2】:

    如果您根据下面的链接不知道相关网络上的 MTU,那么 512 字节的 UDP 有效负载被认为是合理的,可以为您可能没有预料到的其他标头信息留出余量。

    What is the largest Safe UDP Packet Size on the Internet

    【讨论】:

      【解决方案3】:

      因为您要发送更大的数据包,是的,它可能会增加数据包被丢弃的机会。

      现在,如果您比较发送 100000 个 30 字节的数据包或 10000 个 300 字节的数据包,即使用户数据相同,由于标头的原因,数据包的总大小更大。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-08-26
        • 1970-01-01
        • 1970-01-01
        • 2013-11-21
        • 2018-03-18
        相关资源
        最近更新 更多