これは、 Sam LiangとDavid Cheritonによる「 TCP-RTM: Using TCP for Real Time Multimedia Applications」という名前の論文です。
この論文は、tcpをリアルタイムアプリケーションで使用するように適応させることです。私が実際にあなたに助けてもらいたい2つの主要な変更は次のとおりです。
- TCP 接続でのアプリケーション レベルの読み取りで、読み取りのためにキューに入れられた順序どおりのデータがないが、1 つまたは複数の順序どおりでないパケットが接続のためにキューに入れられている場合、順序どおりでないパケットの最初の連続した範囲が順不同のキューを受信キューに移動すると、受信ポインターはこれらのパケットを超えて進められ、結果のデータがアプリケーションに配信されます。現在の受信ポインター (rcv next ptr) よりも論理的に大きいシーケンス番号を持ち、リーダーが接続を待機している状態で、順序が正しくないパケットを受信すると、パケット データは待機中の受信者に配信され、受信ポインターが進められます。このデータを過ぎて、この新しい受信ポインターが次の肯定応答セグメントで返されます。
- 大量のバックログ データが原因で送信者の送信バッファがいっぱいになった場合、TCP-RTM はバッファ内の最も古いデータ セグメントを破棄し、アプリケーションによって書き込まれた新しいデータを受け入れます。TCP-RTM は、破棄されたデータ セグメントを超えて送信ウィンドウも進めます。このようにして、アプリケーションの書き込み呼び出しがブロックされることはなく、送信側アプリケーションのタイミングが崩れることはありません。
彼らは実際に、実際の環境で古い Linux 2.2 カーネルの「tcpreno with sack」バージョンの tcp を変更しました。しかし、これをNS2でシミュレートしたい。NS2 を使用して、分析、パフォーマンス グラフの作成などを行うことができます。関連するすべてのファイルを調べましたが、変更する場所が見つかりません。それで、これを行うのを手伝ってくれませんか。