我想開發一個P2P遊戲應用程序。什麼是實現NAT穿越和對等發現的最快和最有效的方式。我已閱讀關於STUN和TURN服務器。但是,什麼是開放源代碼部件,我如何使用它們? 1.這些STUN服務器在3G網絡上工作嗎? 2. UDP HOLE PUNCHING是否適用於3G網絡?P2P應用開發
Q
P2P應用開發
0
A
回答
0
如果你有一個視頻遊戲,你可能想要一個包含所有遊戲數據並允許用戶成爲客戶端的中央服務器。你知道,如拼圖和龍,你有一個用戶名和密碼,並登錄到服務器。
Google「Stun Client」和「ICE protocol」。有很多開源實現
STUN在移動網絡上失敗,因爲移動網絡具有對稱的大規模NAT。遍歷那種NAT的不STUN(見下文原因)
爲什麼移動寬帶NAT無法繞過?
歸結爲統計。爲了建立連接,您必須將數據包發送到他們所在的端口,並且必須將數據包發送到您所在的端口。如果發送到錯誤的端口號或者發送到錯誤的端口號,則會錯過並且沒有建立連接。如果你們兩個人同時綁定到一個端口併發送一個指向另一個ip地址的數據包,那麼你有65535中的1(65535是ip地址上的端口數)發送數據包到他們的端口的機會,他們有65535中大約有1個將數據包發送到您的端口的機會。所以你建立連接的機會是(1/65535)*(1/65535)或(1/65535^2)。
因爲對於每一個新的出站連接,路由器都會隨機給你一個新的端口號,在1024和65535之間的間隔內,你無法知道你的端口號。因此,如果你問一個服務器你的ip和端口號是,它可能會告訴你正確的IP(你的IP地址不會經常改變,除非你關掉你的手機或類似的東西),但端口號會改變。如果您嘗試猜測端口號,則會出現((65535-1024-1)/(65535-1024))或99.998%的更改,您認爲它錯了,假設可以選擇的端口號的數量是( 65535-1024)。因此,除非端口號碼是可預測的(在很多4G網絡中它們不是),否則你就沒有機會了。
最好的選擇是使用眩暈並且不支持邪惡的路由器。
相關問題
- 1. 我應該知道什麼來開發p2p小應用程序
- 2. 如何開發P2P聊天網絡應用程序
- 3. P2P應用中的自動發現
- 4. P2P發現功能
- 5. 編程P2P應用程序
- 6. Android p2p GPS應用程序
- 7. p2p發佈並播放
- 8. P2p使用IPhone共享應用程序?
- 9. 使用WCF P2P應用程序,我可以發送到P2P網絡而不是節點
- 10. 使用socket.io,socket.io-p2p,socket.io-p2p-server
- 11. Android應用開發
- 12. Ibeacon應用開發
- 13. facebook應用開發
- 14. Chrome應用開發
- 15. RIA應用開發
- 16. 打開p2p並從操作欄執行發現
- 17. P2P文件共享應用程序
- 18. 如何構建Python p2p應用程序?
- 19. P2p在Android的聊天應用程序
- 20. P2P照片共享應用程序
- 21. Windows Metro應用程序中沒有P2P?
- 22. Wifi P2P相機應用程序android
- 23. P2P與DDNS?應該使用什麼?
- 24. Silverlight 5中的p2p應用程序
- 25. Android上的P2P P2P連接
- 26. 我可以在哪裏找到用於開發P2P應用程序的iphone sdk 3.0 GameKit教程?
- 27. 如何開始在p2p網絡編程?
- 28. Windows應用商店應用開發
- 29. 與Windows應用商店應用的本地網絡p2p連接
- 30. 開發android應用程序