影响

2012-07-20 59 views
0

我有一个带宽有限 512 Kbps的下载 368 Kbps的上传影响

我在循环发送40字节 UDP包在10ms的定期

Thread.sleep(10)声明。

虽然接收分组(UDP)可以是大小0-1500字节,可以来在其中i的接收与

的channel.receive()的任何量的任何时间;while(true){}循环.Channel处于阻止模式。

我想我缺少这个代码的数据包。

如何防止由于低速下载造成的数据包丢失。

+0

40字节的UDP 100x每秒是4KB数据和大约200字节的开销,上传速度大约为46KB/s。您不应该以这些费率来解决问题,除非其他方面与您的计划竞争流量。连续爆发真的是最好的方式来做到这一点,或者你会更好地缓存数据? – Wug 2012-07-20 14:33:02

+0

您不能防止UDP丢包,只能将其最小化。我会设计你的应用程序,使一些数据包丢失是可以接受的。 (或使用TCP) – 2012-07-20 14:40:47

+0

40字节的数据包完全相同,只有IP和端口发生变化。 我的问题是1500字节大小不同的回复数据包。 – User1234 2012-07-20 14:41:33

回答

0

如何防止由于低下载速度造成的数据包丢失。

你不能阻止它。即使您拥有大量带宽,某些级别的数据包丢失也是不可避免的。

如果您打算使用UDP作为您的传输,您将不得不设计您的应用协议,以便在丢包的情况下具有弹性...并避免吞吐太多流量的网络链路。这些都是不平凡的问题。

一个更简单的替代方法是使用TCP,并让它处理面对数据包丢失和流量控制问题时的重试。

+0

我必须使用UDP(游戏网络)。我的问题是缺少1500字节大小的回复数据包,当达到下载速度限制时错过了这些数据包。 – User1234 2012-07-20 14:43:27

+0

@解决方案 - 没有解决方案。如果数据包丢失了,你只需要处理它......不知何故。 – 2012-07-20 14:46:13

+0

游戏文档说服务器仅支持带有字节值的UDP/IP数据包。我可以将发送间隔从10毫秒增加到1000毫秒以避免丢失,但IP列表花费的时间太长。 会增加带宽或购买128MB RAM VPS有帮助吗? – User1234 2012-07-20 14:50:59