影響

2012-07-20 91 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