Главная страница


ru.linux

 
 - RU.LINUX ---------------------------------------------------------------------
 From : Eugene B. Berdnikov                  2:5020/400     13 May 2003  17:03:29
 To : "Oleg O. Ossovitskii"
 Subject : Re: CLOSE_WAIT trouble =(
 -------------------------------------------------------------------------------- 
 
 Oleg O. Ossovitskii <o.ossovitskii@kgpa.ru> wrote:
 
 OOO> У меня клиент, когда нет коннекта постоянно пытается переконнектиться
 OOO> и при неудаче делает.
 OOO> 
 OOO> shutdown(sock_fd, 2);
 OOO> close(sock_fd);
 
  Откуда такая странная последовательность?
 
  Зачем вообще прибивать "неудавшееся" соединение? Это бессмысленно.
  Разве shutdown(2) не возвращает ENOTCONN в этом случае? Проверьте.
 
 OOO> После подключения шнурка вижу 4 коннекта, вместо одного. Т.е. те
 OOO> коннекты, которые не получились они не исчезли, хотя я их и прибил.
 
  Те, которые не получились - должны быть в SYN-SENT.
 
 OOO> Hа сервере
 OOO> я завел таймаут - если нет запросов 30 секунда - вырубаемся. В итоге.
 OOO> Один конннект хороший и три дохлых. Hа сервере они FIN_WAIT_2 -> TIME_WAIT 
 OOO> и закрылись.
 
  Это правильно.
 
 OOO> А на клиенте вот уже час примерно висят 3 CLOSE_WAIT и не уходят.
 
  CLOSE_WAIT - это когда peer закрыл соединение (получен FIN),
  но сокету еще не сказали close(). А совсем не то, что Вы думаете.
 
 OOO> Как их убить? Hа серевере я сокету таймаут ставил, на клиенте что
 OOO> делать? Я прочитал, что эти самые CLOSE_WAIT через 12 часов сами
 OOO> отсохнут.
 
  Ой. Это где же такое написано?
 
 OOO> Побыстрее никак нельзя? Кстати, если сервер сам закрывает
 OOO> соединение, или клиент закрывает соединение (например сделал все, что
 OOO> хотел и отключился) то все нормально и никаких остаточных FIN_WAIT_2 и
 OOO> CLOSE_WAIT не остается.
 OOO>  И еще - разве CLOSE_WAIT должен быть не на стороне сервера?
 
  CLOSE_WAIT может быть с любой.
 
 OOO> Что он у меня с клиентской стороны делает?
 
  Демонстрирует какую-то ошибку программиста.
 
 OOO>  Операционка у меня QNX 4.25 patch G, TCP/IP stack 4. Hо я думаю, что
 OOO>  в данном случае подойдет рецепт из любого другого юникса.
 
  RFC793 - платформонезависимо.
 -- 
  Eugene Berdnikov
 --- ifmail v.2.15dev5
  * Origin: Institute for High Energy Physics, Protvino, Russia (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 CLOSE_WAIT trouble =(   Oleg O. Ossovitskii   12 May 2003 19:11:48 
 Re: CLOSE_WAIT trouble =(   Eugene B. Berdnikov   13 May 2003 17:03:29 
Архивное /ru.linux/3651e38a9075.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional