2015-08-19 2 views
-1

Я прочитал другие темы, касающиеся сокетов в TIME_WAIT, но я все еще явно что-то не вижу.Почему один и тот же сокет в TIME_WAIT много раз?

Ниже приведено несколько строк из «netstat -an». Как он мог попасть в эту ситуацию? Если бы я понял описания, которые я нашел, у нас не должно быть более одного экземпляра сокета 63444 ... но после того, как он указан как «LISTEN», существует около 50 отдельных соединений сокетов с одним концом на 63444, все в «TIME_WAIT», , Как это могло произойти, и как я могу это исправить?

 
tcp 0 0 0.0.0.0:63444 0.0.0.0:* LISTEN 
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 

ответ

2

Я не уверен, какие описания вы нашли, но это вздор. Веб-сервер может иметь десятки подключений к порту 80 одновременно и многие другие в процессе выключения. Все они имеют одинаковую локальную конечную точку.

Каждая из этих линий TIME_WAIT представляет собой другое соединение с портом 63444, который находится в процессе закрытия. Машина на 169.254.66.84 сделала связку с этой машиной, и некоторые из них теперь находятся в состоянии TIME_WAIT. В этом нет ничего необычного.

1

Соединения уникальны (обычно), идентифицированные исходным портом, адресом источника, целевым портом и адресом dest. Если какой-либо из них отличается, это другое соединение. В каждой из строк, которые вы показываете, есть другой порт на «другой» стороне, поэтому каждый из них является другим соединением.

1

Почему такой же разъем в TIME_WAIT много раз?

Это не то же гнездо. Посмотрите на удаленный адрес. Это тот же локальный IP-адрес и порт каждый раз, но удаленные адреса все разные.

Я прочитал другие темы, касающиеся сокетов в TIME_WAIT, но я, очевидно, все еще что-то не хватает. Ниже приведено несколько строк из «netstat -an». Как он мог попасть в эту ситуацию?

Сервер принял некоторые подключения и позже их закрыл.

Если я понял описания я нашел, что мы не должны иметь более одного экземпляра сокета 63444 ...

Это нонсенс, где бы вы читали его. В противном случае TCP-серверы не могли работать вообще.

, но после списка, обозначенного как «LISTEN», имеется около 50 отдельных разъемов с одним концом на 63444, все в «TIME_WAIT». Как это могло произойти, и как я могу это исправить?

Это совершенно нормально. Здесь нет ничего, что нужно для исправления.

Когда соединение принято, создается новый сокет с тем же локальным IP-адресом и портом, а исходный IP-адрес: порт, установленный для порта клиента. Когда сервер закрывает этот сокет, он переходит через различные состояния по мере того, как тесное рукопожатие продолжается, заканчиваясь в TIME_WAIT в течение двух минут, а затем оно исчезает.

Смежные вопросы