イーサネットケーブルを取り外すと、TCP接続はどうなりますか?


42

TCP接続の場合、ケーブルを取り外して30〜40秒後に再接続すると、パケット損失の問題はありません。ただし、再接続時間が数分を超えると、すべてのパケットが失われます。再送信タイマーが切れても動作することは知っていますが、ネットワークケーブルが抜かれたときにどうなるかを正確に知りたいです。


9
「正確に何が起こっているのか」を答えるのは非常に難しいでしょう。最近では、ケーブルが取り外されたことを検出するなど、OSが「賢い」ことを行う場合があります。ルーティングテーブルからそのネットワークへのルートを削除します。ワイヤレスを介して新しいルートをアクティブ化する、....これらはすべて、簡単で普遍的な説明の妨げになります。
ヘネス

5
欠落パケットのビットバケットを確認しましたか?
ダニエルRヒックス

4
確かに起こることができることの一つは、現在の通信がなどの途中で中断されていることである
ereOn

OSとその構成に依存します。MS Windowsの場合はgoogleを試してくださいwindows mediasense
ザボイカンプラ15年

回答:


60

OSIまたはTCP / IPとしての階層化モデルの定義により、各層は独立して動作し、下位層を認識しません。

ケーブルを取り外すと、物理的な混乱(レイヤー1)であるため、ほとんどすぐにイーサネット(レイヤー2)が信号の損失を検出します(Windowsを使用している場合は、ネットワークが切断されたことを知らせる非常に恐ろしいポップアップが表示されます

IP(レイヤー3)とTCP(レイヤー4)はそれに気づかないので、動作し続けようとします。

TCPは、確立されたTCP接続を一定期間切断しません。TCPがデータを送信すると、応答でACKを期待し、一定時間内に到着しない場合、データを再送信するためです。

TCPはデータを再送信し、IPに渡します。IPはIPをイーサネットに渡します。イーサネットは送信できず、単に破棄します。

TCPは再び待機し、接続が終了したことを宣言できるタイムアウトが発生するまでこのプロセスを繰り返します。TCPはセグメントシーケンス番号をリセットし、送信しようとしていた情報を破棄し、その接続に割り当てられたバッファとメモリリソースを解放します。

それが起こる前にケーブルを差し込むと、すべてが進み続けます。これがTCPの信頼性を高めると同時に、DDos攻撃に対して脆弱です。

OSに複数のインターフェース(たとえば、イーサネットとwi-fi)がある場合、イーサネットがダウンすると、wifiを介して試行する可能性があります。ルーティングの構成方法によって異なりますが、一般的に「TCPはそのことを認識しません」。

DDoS攻撃の基本構造は次のとおりです。数千のクライアントがサーバーへのTCP接続を数秒ごとに開き、接続を放棄します。各TCP接続は、サーバー上で長時間開いたままになります(TCPポート、割り当てられたメモリ、帯域幅などの貴重な資産を浪費します)。


7
それはモデルが言っていることですが、実際のOSはいくつかの障害を検出しすぐに接続を切断します。それは単に役に立つことです。
usr

8
@usr誰かが私のPCが接続されているイーサネットスイッチの電源を再投入するだけで、すべての接続を強制終了するのはなぜ便利なのでしょうか。
CVn

9
@usr OSの管理インターフェイスを介してネットワークカードを無効にすることは、物理的にケーブルを抜いたり、物理層のリンクを切断したりすることとはまったく異なる操作です。2つを混同しないでください。
CVn

7
また、ケーブルが切断されている間に実際にTCPデータを送信しないと、気付くことはありません。そのため、キープアライブメッセージを送信し続ける必要があります。リッスンするだけのアプリケーションは、接続が「死んだ」かどうかを知ることができません。プラス側では、ケーブルが取り外されている間にどちらも送信を試みなかった場合、ケーブルが再び差し込まれた後でも接続はうまく機能することを意味します。 TCP-over-Pigeon-mail実験:))
Luaan

11
@usr標準に従わないことは、本当に悪い実装選択です。TCP接続は、一時的なネットワークの停止に耐えることができます。そうするように設計されています。実際、以前はコンピューターを再起動してもTCP接続を使用できましたが、これは必ずしも実用的ではありませんでした。ケーブルが引っ張られたときに誰もが切断されることを望むというあなたの仮定は誤りであり、システムの設計方法ではありません。
ブラッド
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.