-1

TIME_WAIT のソケットに関する他のスレッドを読みましたが、明らかにまだ何かが欠けています。

以下は、「netstat -an」からの数行です。どうしてこのような状況に陥ったのでしょうか?私が見つけた説明を理解していれば、ソケット 63444 の複数のインスタンスを持つべきではありません ... しかし、「LISTEN」としてリストされたものの後には、約 50 個の個別のソケット接続があり、片端が 63444 であり、すべて「TIME_WAIT」にあります。 . これはどのように発生する可能性があり、どうすれば修正できますか?

tcp 0 0 0.0.0.0:63444 0.0.0.0:* 聞く
TCP 0 0 169.254.7.228:63444 169.254.66.84:35391 TIME_WAIT
TCP 0 0 169.254.7.228:63444 169.254.66.84:35283 TIME_WAIT
TCP 0 0 169.254.7.228:63444 169.254.66.84:35352 TIME_WAIT
TCP 0 0 169.254.7.228:63444 169.254.66.84:35431 TIME_WAIT
4

3 に答える 3

2

あなたが見つけた説明はわかりませんが、それはナンセンスです。Web サーバーでは、ポート 80 への多数の接続が一度にアクティブになり、他の多くの接続がシャットダウンの過程にある場合があります。それらはすべて同じローカル エンドポイントを持ちます。

これらの TIME_WAIT 行はそれぞれ、クローズ中のポート 63444 への異なる接続を表しています。169.254.66.84 のマシンはこのマシンに多数の接続を行い、そのうちのいくつかは現在 TIME_WAIT 状態になっています。それについて何も珍しいことはありません。

于 2015-08-19T22:39:54.057 に答える
1

接続は、送信元ポート、送信元アドレス、送信先ポート、送信先アドレスによって (一般に) 一意に識別されます。それらのいずれかが異なる場合、それは別の接続です。あなたが示す各行には、「反対側」に異なるポートがあるため、それぞれが異なる接続です。

于 2015-08-19T22:43:53.197 に答える
1

同じソケットが TIME_WAIT に何度もあるのはなぜですか?

同じソケットではありません。リモートアドレスを見てください。毎回同じローカル IP アドレスとポートですが、リモート アドレスはすべて異なります。

TIME_WAIT のソケットに関する他のスレッドを読みましたが、明らかにまだ何かが欠けています。以下は、「netstat -an」からの数行です。どうしてこのような状況に陥ったのでしょうか?

サーバーはいくつかの接続を受け入れ、後でそれらを閉じました。

私が見つけた説明を理解していれば、ソケット 63444 のインスタンスは 1 つしかないはずです ...

どこを読んでもナンセンスです。そうしないと、TCP サーバーはまったく機能しません。

しかし、「LISTEN」としてリストされているものの後には、約 50 の個別のソケット接続があり、一端が 63444 であり、すべて「TIME_WAIT」にあります。これはどのように発生する可能性があり、どうすれば修正できますか?

これは完全に正常です。ここには修正が必要なものは何もありません。

接続が受け入れられると、同じローカル IP アドレスとポートで新しいソケットが作成され、ソース IP アドレス:ポートがクライアントのものに設定されます。サーバーがこのソケットを閉じると、クローズ ハンドシェイクが進行するにつれてさまざまな状態に遷移し、2 分間の TIME_WAIT で終了し、その後消えます。

于 2015-08-20T00:11:26.753 に答える