11


0

ローカルで実行されているプロセスでもUDPデータグラムの順序が狂うのはなぜですか?

ストリーミングサーバーとフラッシュクライアントの間のJavaインターフェイスを開発しています。 両方のプロセスがローカルで実行されている場合でも、UDPデータグラムが順序どおりにインターフェイスに到達できないことに気付きました。

それは普通ですか? データグラムはルーターやネットワークデバイスを通過する必要がないので、それは起きてはいけないと思いました。

4 回答


8


これはオペレーティングシステムに依存します。 オペレーティングシステムの指定に失敗しましたが、とにかく重要ではありません。 移植性を維持するには、データグラムソケットが異常なデータを受信することを常に予測する必要があります。


7


実際には、localhost上のlocalhostによって送信された場合でも、UDPパケットに関する順序と受信の保証はありません。 プロトコルの仕様がそれについて何も意味しないからといって。

それらを推測することはできないため、TCPを使用するか、プログラムで処理されるシーケンス番号を使用して並べ替えを処理することを選択する必要があります。


2


localhostを実行していますが、実際の展開ではUDPデータグラムの順序が正しくないことが予想されます。

順番に必要な場合は、TCPを試してください。


0


上記のポスターがすべて言っているように、UDPはシーケンスを保持するように指定されていませんが、中間ルーターがなければ、コードのバグも疑います。