私はMMOゲームを構築しており、多くの人々が接続しているときには、多くの遅れがあります。私はUDPとTCPパケットを使用しています。 TCPは本当にうまく動作するように見えますが、UDPは5秒の遅延の後に来ることがあります。何が原因でしょうか?私はMongoDBを使用しており、クライアントごとに毎秒30回パケットを送信しています。ありがとう。UDPを使用すると巨大な遅延が発生します。どうして?
答えて
UDPプロトコルは、パッケージ配信の保証を行いません。だからあなたの問題はこの中にあるかもしれません。 http://en.wikipedia.org/wiki/User_Datagram_Protocol
私はそれをチェックして、それはすべてのパケットが来ているようだが、5秒遅れているようだ。最初にサーバーを起動すると、すべて正常です。 2時間後、2秒後。 5時間後、5秒後など。すべての(ほとんどの..)パケットが到着していますが、遅れています。 – Eli
野生の推測:あなたのUDPパケットの受信パスには、メモリの割り当てが含まれ、そのメモリがリークします。パケットが多く受信されるほど、メモリの割り当てに時間がかかります。
は、私もここに推測しているが、状況は、アプリケーションがUDPパケットのためにポーリングしていることが考えられ、すべてのNミリ秒(あなたのFPSが20の場合のように、その後、Nは50ミリ秒になります)。
今のところ、あなたのPCは多くのUDPパケットを受信し、オペレーティングシステムによってスタックされていると推測されます。次に、これらのパケットをポーリングすると、あなたまたはオペレーティングシステムは一度にスタックをクリアしません。スタックが大きければ、ラグが大きくなる可能性があります。
私はどこかのルータでもスマートでUDPパケットを積み重ねようとしていると読んだと思います。しかし、私はそれを見たページを見つけることができません。
私はここに同様の質問を掲載しました:
Router gets unresponsive when using UDP
以上、残念ながら私はまだそれを回避する方法がわからない、私の現在の理論:)です。私の考えで考えられる1つの可能性は、毎回ネットワークをポーリングするのではなく、ネットワーク要求に即座に反応する個別のスレッドを使用することです。n ms。
- 1. Androidで巨大なUDP遅延/遅延
- 2. スクロールイメージの巨大な遅延
- 3. '巨大な'遅延を持つViewFlipper
- 4. AVAudioPlayerを再生すると遅延が発生します
- 5. iOS Safari WebSockets:短い間隔でメッセージを送信するときに巨大な遅延が発生する
- 6. ManipulationMode = "Control"を設定すると遅延が発生します
- 7. なぜUIPanGestureRecognizerを使用してオブジェクトを移動すると遅延が発生する
- 8. Javaメールの遅延が発生する
- 9. 「遅延コレクションを遅延して初期化できませんでした」OSIVパターンを使用しても例外が発生する
- 10. 巨大なCSVファイルをインポートしようとしたときにPythonインポートエラーが発生しました
- 11. 'Sendto failed'; CでUDPソケットを使用してsendto-functionを使用するとエラーが発生しました
- 12. Microsoft.Office.Interop.Word.Applicationを作成するときに遅延が発生する
- 13. 休止状態で余分な遅延が発生しない
- 14. セッションで遅延ロードエラーが発生しました.Get
- 15. 巨大なDBpediaダンプをロード中に例外が発生しました
- 16. 巨大なリスト/配列を再割り当てするとメモリリークが発生しますか?
- 17. カスタムイベントの遅延の発生
- 18. 大きなミニダンプファイルを使用してデバッグしようとするとメモリエラーが発生する
- 19. UDPデータグラムパケット受信ループ遅延
- 20. Direct3DコントロールでVisual Studio 2010を使用すると遅延が発生する可能性がありますか?
- 21. 約束と遅延を使用して(延期)
- 22. iPhone開発:Core-Plotのパフォーマンス巨大なデータを扱うときに遅い
- 23. SQLiteを使用すると大きなメモリリークが発生する
- 24. android-16で再生中にストリーミングオーディオの遅延が発生しましたか?
- 25. イベントが発生するまでの遅延イベントの処理
- 26. デリゲートとして使用するパッケージをどのように「遅延ロード」しますか?
- 27. cPickleを使用して大規模な辞書を直列化すると、MemoryErrorが発生します。
- 28. "disconnect"イベントの発生にSocket.ioの遅延がありますか?
- 29. 表示と遅延 - jQuery、どのように遅延を使用するのですか?
- 30. セグ遅延を準備する。情報が遅延していますが、表示されています
私はこの質問にフォローアップしています。それは解決されましたか?以下の回答のうち正しいものはありましたか? Thx –