リアルタイム通信でうまく動作するように TCP を調整しようとしています。これを行うための仕様の 1 つは、TCP が「信頼できない」場合があるバッファがいっぱいになった場合でも、アプリケーションによって書き込まれた新しいデータを受け入れるように TCP を強制することです。このようにして、アプリケーションの書き込み呼び出しがブロックされることはなく、送信側アプリケーションのタイミングが崩れることはありません。NS2にはそれを可能にするオプションが必要だと思います。では、TCP にバッファ内の最も古いデータ セグメントを強制的に破棄させ、アプリケーションによって NS2 に書き込まれた新しいデータを受け入れるにはどうすればよいでしょうか?
質問する
247 次
2 に答える
3
それはいけません。TCPは「信頼性の高いストリーム」です。データのドロップを許可する機能は、その目標に反するため、そのようなサポートはありません。
データをドロップできるようにしたい場合は、UDPなどに切り替えて、「ベストエフォート」ではなく「最も信頼性の高い配信」が必要な場合は、独自のウィンドウ処理/再試行を実装する必要があります。
于 2012-10-16T14:16:27.417 に答える
1
とにかくデータをドロップする場合は、ソケットに送信する前にドロップしてください。select を使用して、ソケットが書き込み可能かどうかを確認し、そうでない場合はアプリケーション層でデータをドロップできます。最新のデータを入手することが最も重要な場合は、ブライアンの回答を参照してください。
編集
余談ですが、リアルタイムのネットワーク プロトコルをグーグル検索して、既存のものを確認することもできます。
于 2012-10-16T15:10:51.627 に答える