TCP再送信とTCP高速再送信


9

Wiresharkでは、「TCP再送信」および「TCP高速再送信」と言うものが表示されます。違いは何ですか?Wiresharkはどのように違いを見分けることができますか?

回答:


8

パケットがTCPを使用して送信される場合、パケットにはシーケンス番号が送信されます。受信者がパケットを受信すると、そのパケットが受信されたことを示すシーケンス番号を含む確認応答を送信者に送信します。あなたが質問した方法に基づいて、私はあなたがこれを知っていると思います。他の読者のために入れたかった。

TCP再送信は、タイムアウト内に確認応答しない単なるパケットです。

TCP高速再送信とは、パケットが受信されなかったことをソースが確認したときです... 高速再送信からの引用-ウィキペディア、無料​​の百科事典

TCP送信者が同じ確認番号を持つ3つの重複する確認応答(つまり、同じ確認番号を持つ合計4つの確認応答)を受信した場合、送信者は、次に大きいシーケンス番号を持つセグメントが削除されたことを合理的に確信できます。


ACKの数は確かですか?3つのACKで発生することを確認しました。
tony_sid

2
いいえ。私が確信しているのは、複数のシーケンスACKのために送信者が問題を検出したときに高速再送信が発生することです。
Theo

3
また、高速と表示されていますが、通常の再送信と同じ速度です。高速と呼ばれる理由は、タイムアウトを待つ代わりに問題が通知されるためです。したがって、プロセス全体が「高速」になります。
Theo

6

私はこれをMicrosoftから消化しました

TCPは、各送信セグメントがインターネットプロトコル(IP)層に渡されると、再送信タイマーを開始します。タイマーが期限切れになる前に、TCPが特定のセグメントのデータの確認応答を受信しない場合、セグメントは再送信されます。

再送信のタイムアウトは、ACM SIGCOMM会議の議事録のVan JacobsonとMike Karelsのペーパー「輻輳回避と制御」で説明されているスムーズラウンドトリップ時間(SRTT)計算を使用して、接続の特性に合わせてオンザフライで調整されます。この文書は、Association for Computing MachineryのACM Digital Libraryにあります。SRTT計算の詳細については、RFC 793:Transmission Control Protocol DARPA Internet Program Protocol Specificationを参照してください。特定のセグメントの再送信タイムアウトは、そのセグメントの各再送信後に2倍になります。

このアルゴリズムを使用して、TCPは接続の通常の遅延に自身を調整します。高遅延リンク上のTCP接続は、接続が存在しないのではなく単に遅い場合に誤ってタイムアウトになるのを防ぐために、低遅延リンク上のTCP接続よりもタイムアウトに時間がかかります。

状況によっては、TCPは特定のセグメントの再送信タイマーが期限切れになる前にデータを再送信します。最も一般的なこのような状況は、高速再送信と呼ばれる機能が原因で発生します。

高速再送信をサポートするレシーバーが、現在予期されているものよりも大きいシーケンス番号のパケットを受信すると、一部のデータがドロップされたかのように処理を進めます。見かけ上ドロップされたデータを送信者にできるだけ早く知らせるために、受信者はすぐに確認応答(ACK)を送信します。ACK番号は欠落していると思われるシーケンス番号に設定されています。受信側は、欠落しているものよりも大きいシーケンス番号で到着する着信ストリーム内の追加のTCPセグメントごとに、そのシーケンス番号に対して別のACKを送信します。

送信者が同じシーケンス番号を確認する重複したACKのストリームを受信し、示されたシーケンス番号が送信されている現在のセグメントのシーケンス番号よりも早い場合、送信者は以前送信した1つ以上のセグメントが削除されたと推測できます。一定数の重複ACKを受信した後、高速再送信アルゴリズムをサポートする送信側は、欠落しているセグメントの再送信タイマーが期限切れになるのを待たずに、受信側がデータのギャップを埋めるように要求しているセグメントを再送信します。この最適化により、ビジーなネットワーク環境でのパフォーマンスが大幅に向上します。

高速再送信では、送信者は、欠落しているTCPセグメントを再送信タイマーが期限切れになる前に再送信します。欠落したTCPセグメントの再送信タイマーは期限切れにならないため、欠落したセグメントは宛先で受信され、高速再送信を行わなかった場合よりも速く受信者によって確認され、送信者は後のセグメントを受信者に迅速に送信できます。このプロセスは高速リカバリと呼ばれます。高速再送信と高速リカバリは、RFC 2581:TCP Congestion Controlで説明されています


2

再送信は、本質的に自動再送要求(ARQ)と同じですが、破損または失われたパケットの再送信です。信頼できる通信を提供するために、パケット交換コンピュータネットワーク上で動作するプロトコルによって使用される基本的なメカニズムの1つを指す用語です。しかし、高速再送信はTCPの拡張であり、失われたセグメントを再送信する前に送信者が待機する時間を短縮します。高速再送信の拡張は、次のように機能します。確認応答番号(つまり、同じ確認応答番号を持つ合計4つの確認応答)の場合、送信者は、次に大きいシーケンス番号のセグメントが削除され、順序が狂わないことを確信できます。その後、送信者は、そのタイムアウトを待機する前にドロップされたと推定されたパケットを再送信します。詳細とアルゴリズムについては、このリンクを確認してください http://www.isi.edu/nsnam/DIRECTED_RESEARCH/DR_WANIDA/DR/JavisInActionFastRetransmitFrame.html


1

簡単に言うと、TCP再送信は、ほとんどの場合、パケットのタイムアウトに依存してミスを検出しますが、TCP高速再送信では、特定のパケットに対する重複した確認応答がそのミスを表します。

パケットの3つの重複した確認応答は、パケットミスとして推定されます。送信元は、NACKがトリガーされたパケットのシーケンス番号を確認できます。これは、欠落しているパケットのシーケンス番号であり、受信側に送信できます。

TCP Fast Retransmissionの利点は、名前が示すように、パケットタイムアウトが送信を開始するのを待たないため、パケットの再送信が高速になることです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.