【问题标题】:Android UDP packet lossAndroid UDP丢包
【发布时间】:2016-08-11 16:29:05
【问题描述】:

所以我正在编写一个应用程序,它通过 UDP 每秒发送 15 次 5Kb 数据包。我知道我会丢失一些数据包,但我似乎在前几秒钟后丢失了所有数据包。即使我放慢速度以每 10 秒发送一次 5Kb 数据包,我仍然会丢失它们。什么会导致这个?

【问题讨论】:

  • 没有看到代码,这将很难帮助您。

标签: java android udp packet-loss


【解决方案1】:

它们都被丢弃并不奇怪。有效载荷bigger than 512 bytes 不太可能脱离网络。这取决于路由器的 MTU 以及路由器上分配给 UDP / 互联网流量的带宽。

【讨论】:

  • 因此,如果我手动将数据包拆分为 512 个块并分别发送它们,即使我发送相同数量的数据,它是否可以工作?我一直认为数据包在到达数据包目的地的途中会被您的路由器和其他路由器自动分解为正确的 MTU 大小,然后在到达目的地时重新组合。
  • 是的,减少负载大小会有所帮助。
  • 这很棒!我不得不将数据包分开,然后在另一端重新组装它们,这需要一些额外的开销,但它确实有效。非常感谢,我在处理 UDP 时遇到过很多次这个问题,但从未意识到这是问题所在。
【解决方案2】:

你会很幸运地得到任何大于大约 1260 字节的 UDP 数据报。普遍接受的通过路由器的 UDP 限制是 534 字节,这在某种程度上源自 IPv4 非分段最小 576 字节。

【讨论】:

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