2016-09-09 11 views
2

サーバーが昼間サービスを実行していると仮定します。TCP TIME_WAIT状態

次に、この昼間サーバを接続するためにtelnetを使用します。サーバはTIME_WAIT状態に入る予定のアクティブクローズ側であるため、時刻データを送信して接続を閉じます。

なぜ私はサーバがTIME_WAIT状態にある間に最後のtelnetの直後に昼間サービスにtelnetを行うことができますか?

答えて

1

状態はセッションに属します。セッションは、送信元IP /ポート、宛先IP /ポート、およびトランスポートタイプ(TCPまたはUDPなど)で構成される5つのタプルです。制限がサーバ側のプロパティに基づいているだけであれば、インターネットを使えなくなる(Googleで4分ごとに1回の検索しかできないと思う)。

したがって、同じ5タプルを使用しない場合は、すぐに新しいセッションを開始できます。つまり、同じ送信元IPから同じ宛先IPとポートに接続することができますが、送信元ポートはほぼ確実に異なります。

したがって、異なるセッションです.1つは待ち状態にはなりません。

ほとんどのクライアントは、セッションを作成するときにポート番号として通常ゼロを使用します。これは、通信スタックに対して、セッションに任意の/ランダム/使用可能なポートを割り当てる必要があることを示します。

+0

私はちょうど私の教科書に戻り、あなたの答えを読んだ後に再びそのセクションを読んでいます。すべて私の不注意のxDのため、ソケットのペアはサーバーのポートではなくレスキューできないという。どうもありがとうございます ! – ryuu

0

サーバは、TIME_WAIT状態ではありません。 以前の接続は、送信元/宛先IP:ポートの間にTIME_WAIT状態にあります。つまり、そのタプルを再利用することはできません。しかし、クライアントはデフォルトで常に新しい送信ポートを使用するため、新しいタプルが使用されます。すぐに接続することができます。

それ以外の場合、TCP/IP、インターネット、このサイトなどはまったく動作しません。

+0

ありがとうございました。私は教科書に間違いなくそこに書かれた "ソケットペア"を見逃しました... – ryuu

関連する問題