The OpenNET Project
 
Поиск (ключи):    ПРОГРАММЫ СТАТЬИ СОВЕТЫ ФОРУМ
  WIKI НОВОСТИ (+) MAN'ы ДОКУМЕНТАЦИЯ

Сокращение TIME_WAIT, уменьшение таймаута (timeout socket )


<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>
Ключевые слова: timeout, socket,  (найти похожие документы)
Date: Thu, 11 Apr 2002 22:28:02 +0000 (UTC) From: Lev Walkin <vlm@netli.com> Newsgroups: fido7.ru.unix.prog Subject: Сокращение TIME_WAIT, уменьшение таймаута >>есть сервер слушает порт >>есть клиент на тойже тачке который делает очень быстро и очень много запросов >>к серверу по tcp/ip >>в какой-то момент клиент вываливвается с месагой Ресурс недоступен , > Это может быть, например, потому что у сервера переполняется очередь входящих > запросов (та, размер которой задается при listen()). Поскольку клиент находится > на той же машине, много процессорного времени выделяется именно ему, и сервер не > успевает делать им accept в оставшееся время. TIME_WAIT - это состояние серверного сокета, в котором он находится 2msl времени, чтобы собирать случайно задержавшиеся в сети пакеты. Таймаут этот можно изменять в различных операционках по разному - во FreeBSD есть sysctl на эту тему - net.inet.tcp.msl, равный тридцати секундам по умолчанию. То есть, TIME_WAIT'с будут сидеть минуту на сервере. В Линуксе избавится от них можно, например, с помощью setsockopt(SO_REUSEADDR), который заодно будет выгребать сокеты из TIME_WAIT для повторного использования для новых коннектов. -- Lev Walkin vlm@netli.com

<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>

Обсуждение [ RSS ]
 
  • 1, michael, 14:57, 10/02/2006 [ответить] [смотреть все]
  • +/
    бред.
    TIME_WAIT - одно из стандартных состояний TCP соединения, в который переходит сторона осуществляющая активное закрытие соединения.
    Обойти TIME_WAIT можно только с помощью параметра SO_LINGER выставив в структуре linger l_onoff=1,l_linger=0. (тот кто это сделает будет проклят, поскольку навлечет на себя гнев богов, и кучу некорректно доставленных сегментов).
    А SO_REUSEADDR -вообще не для этого нужно.
     
  • 2, passwd, 01:32, 18/03/2007 [ответить] [смотреть все]
  • +/
    SO_LINGER - тоже не решение проблемы.. да, возможно оно у тебя сработает. Однако на некоторых системах структура просто игнорится, либо выдает ошибку.
     

    Ваш комментарий
    Имя:         
    E-Mail:      
    Заголовок:
    Текст:



    ПОДПИШИСЬ НА ЖУРНАЛ Linux Format 2012!

    Журнал "Linux Format" (Линукс Формат)- Единственный в России и странах СНГ журнал на русском языке, посвящённый Linux и свободному ПО. Журнал для IT-директоров, IT-менеджеров, программистов, системных администраторов, учителей школ и преподавателей ВУЗов и всех пользователей ПК. В каждом выпуске: Новости индустрии OpenSource, обзоры новинок свободного ПО, обучающие и методические статьи.

    Каждый, кто оформит подписку, получает бонусы и подарки- объёмные наклейки на системный блок, диск с архивом номеров за 2005-2011 г.г. и ежемесячно электронную версию журнала в pdf-формате.

    Оформить подписку на год


      Закладки на сайте
      Проследить за страницей
    Created 1996-2012 by Maxim Chirkov  
    ДобавитьРекламаВебмастеруГИД  
    RUNNet TopList