Station keep alive wifi что это
В статье рассматривается один из способов контроля над работоспособностью TCP/IP-соединения под Windows – создание keep-alive таймера.
Для чего нужен keep alive в роутере
Преимущества такой функции:
- Снижение нагрузки на оперативную память;
- Возможность использования ускоренной обработки данных по принципу конвейера.
- Вероятность сетевого сбоя значительно ниже.
- При наличии ошибок в протоколах они исправляются самостоятельно.
- Налаживание работы происходит прямо во время сессии соединения.
Такой режим обязательно нужен в качестве «страховки» при нестабильном соединении.
Введение
В данной статье речь будет идти о реализациях стека TCP/IP в Microsoft Windows NT/2000/XP и более поздних версиях, а также реализации Windows Sockets версии 2 и более поздних.
Примеры
В следующем примере кода свойство устанавливается KeepAlive в значение false , чтобы избежать установления постоянного подключения к Интернет-ресурсу. The following code example sets the KeepAlive property to false to avoid establishing a persistent connection with the Internet resource.
Принципы работы протокола VRRP
В первую очередь нужно рассмотреть теорию и основные определения протокола VRRP.
- VIP — Virtual IP, виртуальный IP адрес, который может автоматически переключаться между серверами в случае сбоев;
- Master — сервер, на котором в данный момент активен VIP;
- Backup — сервера на которые переключится VIP, в случае сбоя мастера;
- VRID — Virtual Router ID, сервера объединенные общим виртуальным IP(VIP) образуют так называемый виртуальный роутер, уникальный идентификатор которого, принимает значения от 1 до 255. Сервер может одновременно состоять в нескольких VRID, при этом для каждой VRID должны использоваться уникальные виртуальные IP адреса.
Общий алгоритм работы:
-
Master сервер с заданным интервалом отправляет VRRP пакеты на зарезервированный адрес multicast (многоадресной) рассылки 224.0.0.18, а все slave сервера слушают этот адрес. Multicast рассылка — это когда отправитель один, а получателей может быть много.
Важно. Для работы серверов в режиме multicast, сетевое оборудование должно поддерживать передачу multicast трафика.
Настройка D-Link DIR-300 NRU B5
Wi-Fi-точка роутер, стандарт Wi-Fi: 802.11b/g/n. Макс. скорость беспроводного соединения: 150 Мбит/с.
Для роутера D-Link DIR-300 у нас есть четыре варианта инструкций:
Что вам понадобится
Перед тем, как вы начнете это руководство, вам понадобится следующее:
Как настроить keep alive в роутере
Сперва необходимо узнать IP-адрес роутера. Для этого достаточно войти в режим поиска «Пуск» и написать cmd, нажать Enter. Откроется командная строка. Теперь осталось ввести ipconfig и снова нажать Ввод. Пользователю представится адрес в виде цифр «000.000.0.0».
Для получения доступа к интерфейсу настроек роутера нужно ввести в адресной строке браузера цифры, полученные из командной строки. На экране отобразится два поля – имя пользователя и пароль. Логин всегда один и тот же – admin, а пароль либо напечатан на дне коробочки самого роутера, либо был изменён пользователем. Вводить нужно актуальный пароль на данный момент.
После того как перед пользователем предстал интерфейс, ему осталось проследовать по пути:
«Сеть» — «Соединение» — «Параметры» — «Настройки PPP» — отметить галочкой keep alive.
Сохранить изменения и выйти из системы.
Использование в веб-браузерах
Схема множественного и постоянного подключения.
Все современные веб-браузеры, включая Google Chrome , Firefox , Internet Explorer (с 4.01), Opera (с 4.0) и Safari, используют постоянные соединения.
В Firefox можно настроить количество одновременных подключений (для каждого сервера, для каждого прокси, всего). Время ожидания постоянных соединений истекает через 115 секунд (1,92 минуты) бездействия, которое можно изменить в конфигурации.
Keep alive в роутере что это
papasid » 04 май 2011, 22:58
то такое keepalive в tcp/ip (NCR)?
mikle » 05 май 2011, 03:40
Nexozavr » 08 июл 2015, 16:02
Dan » 08 июл 2015, 16:58
KeepAlive=»1″
RetryTimer=»3000″
LengthFormat=»1″
LengthSize=»2″
LengthAdjust=»2″
LengthOffset=»0″
LengthEmbedded=»0″
RCVTimeOut=»30000″
PrefixSize=»0″
PrefixData=»0″
На закладке Дополнительные настройки Вы можете определить дополнительные
параметры, влияющие на работу Вашей беспроводной сети.
Изменения параметров на данной странице могут оказать негативное влияние на
Вашу беспроводную сеть.
Рисунок 38. Закладка дополнительных настроек для беспроводной сети.
NRU Беспроводной маршрутизаторсо встроенным.
DIR-300NRU Беспроводной маршрутизатор
со встроенным 4-портовым коммутатором
Настройка маршрутизатора
На закладке представлены следующие элементы:
Station Keep Alive
Интервал (в секундах) между проверками активности
беспроводных устройств, входящих в локальную сеть. Если
задано значение 0, проверка не выполняется.
Beacon период
Интервал (в миллисекундах) между отправкой пакетов для
синхронизации беспроводной сети.
Минимальный размер пакета (в байтах), для которого будет
передаваться RTS-кадр.
Максимальный размер нефрагментируемого (неделимого) пакета
(в байтах). Пакеты большего размера фрагментируются
(разбиваются на части).
DTIM период
TX мощность
Мощность передатчика (в процентах).
BG Protection
Функция защиты устройств стандарта 802.11b и 802.11g
используется для уменьшения количества конфликтов между
устройствами Вашей беспроводной сети.
Auto – функция защиты включается и выключается
автоматически в зависимости от состояния сети (рекомендуется,
если в Вашей сети есть устройства стандарта 802.11b и
устройства стандарта 802.11g),
Always On – функция защиты всегда активна (такая настройка
может существенно снизить производительность беспроводной
сети),
Always Off – функция защиты всегда неактивна.
TX преамбула
Данный параметр определяет длину блока CRC-проверки,
передаваемого маршрутизатором при взаимодействии с
беспроводными устройствами. Возможные значения:
Long Preamble – длинный блок,
Short Preamble – короткий блок (данное значение
рекомендуется для сети с интенсивным трафиком).
После изменения параметров нажмите кнопку Изменить.
NRU Беспроводной маршрутизаторсо встроенным.
DIR-300NRU Беспроводной маршрутизатор
со встроенным 4-портовым коммутатором
Настройка маршрутизатора
На закладке WMM Вы можете активировать функцию Wi-Fi Multimedia (WMM).
Функция WMM реализует механизм QoS для беспроводных соединений. Она позволяет
улучшить качество передачи данных по Wi-Fi-сети за счет назначения приоритетов
различным типам трафика.
Чтобы включить функцию WMM, установите флажок WMM и нажмите кнопку Изменить.
Рисунок 39. Закладка для настройки функции WMM.
В системе заданы все необходимые параметры для функции
рекомендуется менять настройки, определенные по умолчанию.
NRU Беспроводной маршрутизаторсо встроенным.
DIR-300NRU Беспроводной маршрутизатор
со встроенным 4-портовым коммутатором
Настройка маршрутизатора
Функция WMM позволяет назначать приоритеты для четырех категорий доступа (Access
Category, AC):
AC_BK (Background, фоновый режим) – трафик с низким приоритетом (задания на
печать, загрузка файлов, пр.);
AC_BE (Best Effort, лучшее качество из возможного) – трафик от устаревших
устройств или устройств и приложений, которые не поддерживают функцию QoS;
AC_VI (Video, передача видео);
AC_VO (Voice, передача голоса).
Параметры категорий доступа определены как для самого маршрутизатора (в разделе WMM
параметры точки доступа), так и для беспроводных устройств, подключенных к
маршрутизатору (в разделе WMM параметры станции).
Для каждой категории доступа доступны следующие параметры:
Arbitrary Inter-Frame Space Number – коэффициент переменного
межкадрового интервала.
Этот параметр влияет на временную задержку для данной
категории доступа. Чем меньше значение данного параметра,
тем выше приоритет категории доступа.
Contention Window Minimum – минимальный размер окна
конкурентного доступа.
Contention Window Maximum – максимальный размер окна
конкурентного доступа.
Эти параметры влияют на временную задержку для данной
категории доступа. Значение поля
меньше значения поля CWMin. Чем меньше разница между
значением поля
CWMax и значением поля CWMin, тем выше
приоритет категории доступа.
Transmission Opportunity – возможность передачи данных.
Чем больше значение данного параметра, тем выше приоритет
категории доступа.
Admission Control Mandatory – обязательный контроль допуска.
Если флажок установлен, устройство не может использовать
данную категорию доступа.
NRU Беспроводной маршрутизаторсо встроенным.
DIR-300NRU Беспроводной маршрутизатор
со встроенным 4-портовым коммутатором
Настройка маршрутизатора
Acknowledgment – подтверждение приема.
Реакция на запросы отклика во время передачи данных.
Отображается только в разделе WMM параметры точки
доступа.
Если флажок не установлен, маршрутизатор отвечает на
запросы.
Если флажок установлен, маршрутизатор не отвечает на
запросы.
После изменения параметров нажмите кнопку Изменить.
Клиент
DIR-300NRU Беспроводной маршрутизатор
со встроенным 4-портовым коммутатором
Настройка маршрутизатора
Клиент
На закладке Клиент Вы можете настроить маршрутизатор в качестве клиента для
подключения к беспроводной точке доступа.
Режим клиента, как правило, используется для подключения к сети беспроводного Интернет-
провайдера. Все параметры, задаваемые на данной закладке, предоставляются таким
провайдером.
Рисунок 40. Закладка для настройки маршрутизатора в качестве клиента.
NRU Беспроводной маршрутизаторсо встроенным.
DIR-300NRU Беспроводной маршрутизатор
со встроенным 4-портовым коммутатором
Настройка маршрутизатора
На закладке представлены следующие элементы:
Флажок для настройки маршрутизатора в качестве клиента.
Название сети, к которой подключается маршрутизатор.
Уникальный идентификатор сети, к которой подключается
маршрутизатор.
аутентификация
Тип сетевой аутентификации в сети, к которой подключается
маршрутизатор.
Для типов сетевой аутентификации Open и Shared на закладке отображаются следующие
поля:
шифрование WEP
Флажок для активации WEP-шифрования
флажке на странице отображается поле Номер ключа по
умолчанию и четыре поля Ключ шифрования. Для типа
шифрования Shared флажок всегда установлен.
Номер ключа по
Номер ключа (от 1-го до 4-го), который будет использоваться
для WEP-шифрования.
Ключ шифрования (1-
. При шифровании используется
ключ, номер которого указан в раскрывающемся списке
Номер ключа по умолчанию. Необходимо заполнить все
поля. Вы можете задавать ключи длиной 5 или 13 символов
(цифр и (или) латинских букв).
Для типов сетевой аутентификации WPA-PSK и WPA2-PSK на закладке отображаются
следующие поля:
WPA шифрование
Механизм шифрования: TKIP или AES.
Ключ шифрования
Ключ для WPA-шифрования.
После изменения параметров нажмите кнопку Изменить.
Дополнительно, Vlan
DIR-300NRU Беспроводной маршрутизатор
со встроенным 4-портовым коммутатором
Настройка маршрутизатора
Дополнительно
В данном разделе меню представлена расширенная версия настроек маршрутизатора. Здесь
Вы можете определить статические маршруты и правила удаленного доступа к web-
интерфейсу, добавить серверы имен, активировать функцию автоматической настройки
устройства для сетевых приложений, настроить DDNS-сервис, разрешить маршрутизатору
использовать протокол IGMP, а также создать группы портов для виртуальных сетей.
На странице Дополнительно / VLAN Вы можете создавать и редактировать группы портов
для виртуальных сетей (VLAN).
По умолчанию в системе маршрутизатора создано 2 группы портов.
lan – для LAN-интерфейса, содержит порты 1-4.
wan – для WAN-интерфейса, содержит порт 5.
Для обеих групп не указано значение для идентификатора VLAN ID. Такая настройка
означает, что эти группы портов не привязаны ни к какой VLAN.
Чтобы создать новую группу портов для VLAN, нажмите кнопку Добавить.
Если Вы хотите создать группу с какими-либо портами
предварительно удалите эти порты из группы
на данной странице.
NRU Беспроводной маршрутизаторсо встроенным.
DIR-300NRU Беспроводной маршрутизатор
со встроенным 4-портовым коммутатором
Настройка маршрутизатора
Вы можете задать следующие параметры:
Главные настройки
Название группы портов для удобной идентификации.
Установите флажок, чтобы разрешить использование
создаваемой группы портов.
NRU Беспроводной маршрутизаторсо встроенным.
DIR-300NRU Беспроводной маршрутизатор
со встроенным 4-портовым коммутатором
Настройка маршрутизатора
Тип VLAN, идентификатор которой определен в поле VLAN
ID.
Локальный. Группа данного типа представляет собой канал
для подключения локальных клиентов к маршрутизатору;
обычно используется для подключения различных типов
клиентов, требующих независимых настроек подключения.
NAT. Группа данного типа является внешним соединением с
трансляцией адресов; обычно используется для подключения к
сети Интернет. Впоследствии VLAN, идентификатор которой
определен в поле VLAN ID, используется для создания WAN-
соединения с типом IPoE или PPPoE (на странице Сеть /
Соединения).
Прозрачный. Группа данного типа является прозрачным
соединением внутреннего порта с одним из внешних
подключений; обычно используется для подключения IPTV-
приставок.
Идентификатор VLAN, к которой будет привязана создаваемая
группа портов.
Выберите из списка свободный порт, чтобы назначить его для
создаваемой группы. Порт отобразится в таблице в нижней
части страницы.
Метка приоритета для трафика, передаваемого через порт,
выделенный таблице в нижней части страницы.
Выберите необходимое значение для порта, выделенного в
таблице в нижней части страницы.
tagged – тегированный порт,
untagged – нетегированный порт.
Кнопка Удалить порт позволяет удалить порт, выделенный в таблице в нижней части
страницы, из данной группы.
Кнопка Удалить VLAN позволяет удалить редактируемую группу портов из системы.
Для дальнейшего использования групп портов для
изменения настроек в энергонезависимой памяти устройства и перезагрузить его
(нажмите на строку
Большинство современных серверов поддерживает соединения keep-alive. Если на страницах много медиаконтента, то такое соединение поможет существенно ускорить их загрузку. Но мы попробуем использовать keep-alive для куда менее очевидных задач.
How it works
Expect принудительно закрывает соединение
2. Когда указано соединение keep-alive, сервер будет искать конец первого запроса. Если в запросе не содержится данных, то концом считается удвоенный CRLF (это управляющие символы \r\n, но зачастую срабатывает просто два \n). Запрос считается пустым, если у него нет заголовков Content-Length,Transfer-Encoding, а также в том случае, если у этих заголовков нулевое или некорректное содержание. Если они есть и имеют корректное значение, то конец запроса — это последний байт контента объявленной длины.
За последним байтом объявленного контента может сразу идти следующий запрос
3. Если после первого запроса присутствуют дополнительные данные, то для них повторяются соответствующие шаги 1 и 2, и так до тех пор, пока не закончатся правильно сформированные запросы.
Иногда даже после корректного завершения запроса схема keep-alive не отрабатывает из-за неопределенных магических особенностей сервера и сценария, к которому обращен запрос. В таком случае может помочь принудительная инициализация соединения путем передачи в первом запросе HEAD.
Запрос HEAD запускает последовательность keep-alive
Тридцать по одному или один по тридцать?
Как бы забавно это ни звучало, но первый и самый очевидный профит — это возможность ускориться при некоторых видах сканирования веб-приложений. Разберем простой пример: нам нужно проверить определенный XSS-вектор в приложении, состоящем из десяти сценариев. Каждый сценарий принимает по три параметра.
Я накодил небольшой скрипт на Python, который пробежится по всем страницам и проверит все параметры по одному, а после выведет уязвимые сценарии или параметры (сделаем четыре уязвимые точки) и время, затраченное на сканирование.
Пробуем. В результате время исполнения составило 0,690999984741.
Локальный тест без keep-alive
А теперь пробуем то же самое, но уже с удаленным ресурсом, результат — 3,0490000248.
Неплохо, но попробуем использовать keep-alive — перепишем наш скрипт так, что он будет посылать все тридцать запросов в одном соединении, а затем распарсит ответ для вытаскивания нужных значений.
Пробуем запустить локально: результат — 0,167000055313. Запускаем keep-alive для удаленного ресурса, выходит 0,393999814987.
И это при том, что пришлось добавить 0,15 с, чтобы не возникло проблем с передачей запроса в Python. Весьма ощутимая разница, не правда ли? А когда таких страниц тысячи?
Конечно, продвинутые продукты не сканируют в один поток, но настройки сервера могут ограничивать количество разрешенных потоков. Да и в целом если распределить запросы грамотно, то при постоянном соединении нагрузка окажется меньше и результат будет получен быстрее. К тому же задачи пентестера бывают разные, и нередко для них приходится писать кастомные скрипты.
Расстрел инъекциями
Пожалуй, к одной из таких частых рутинных задач можно причислить посимвольную раскрутку слепых SQL-инъекций. Если нам не страшно за сервер — а ему вряд ли будет хуже, чем если крутить посимвольно или бинарным поиском в несколько потоков, — то можно применить keep-alive и здесь — для получения максимальных результатов с минимального количества соединений.
Принцип прост: собираем запросы со всеми символами в одном пакете и отправляем. Если в ответе обнаружено совпадение с условием true, то останется только верно его распарсить для получения номера нужного символа по номеру успешного ответа.
Собираем один пакет со всеми символами и ищем в ответе выполненное условие
Это снова может оказаться полезным, если число потоков ограничено или невозможно использовать другие методы, ускоряющие процесс перебора символов.
Непредвиденные обстоятельства
Поскольку сервер в случае соединения keep-alive не пробуждает дополнительных потоков для обработки запросов, а методично выполняет запросы в порядке очереди, мы можем добиться наименьшей задержки между двумя запросами. В определенных обстоятельствах это могло бы пригодиться для эксплуатации логических ошибок типа Race Condition. Хотя что такого не может быть сделано при помощи нескольких параллельных потоков? Тем не менее вот пример исключительной ситуации, возможной только благодаря keep-alive.
Попробуем изменить файл в Tomcat через Java-сценарий:
Файл изменен, никаких проблем
Все ОK, и сценарий, и сервер видят, что файл изменился. А теперь добавим в нашу последовательность запрос keep-alive к содержимому файла перед запросом на изменение — сервер не хочет мириться с изменой.
Сервер не хочет мириться с изменой
Сценарий (надо отметить, что и ОС тоже) прекрасно видит, что файл изменился. А вот сервер… Tomcat еще секунд пять будет выдавать прежнее значение файла, перед тем как заменит его на актуальное.
В сложном веб-приложении это позволяет добиться «гонки»: одна часть обращается к еще не обновленной информации с сервера, а другая уже получила новые значения. В общем, теперь ты знаешь, что искать.
Как остановить время
Напоследок приведу любопытный пример использования данной техники — остановку времени. Точнее, его замедление.
Чтобы увеличить задержку, можно передавать пароль большей длины, в моем случае при передаче пароля в 500 символов разница между тайм-аутами увеличилась до 25 мс. В условиях прямого подключения, возможно, это уже можно проэксплуатировать, но для доступа через интернет не годится совсем.
Разница слишком мала
И тут нам приходит на помощь наш любимый режим keep-alive, в котором все запросы исполняются последовательно один за другим, а значит, общая задержка умножается на количество запросов в соединении. Другими словами, если мы можем передать 100 запросов в одном пакете, то при пароле в 500 символов задержка увеличивается аж до 2,5 с. Этого вполне хватит для безошибочного подбора логинов через удаленный доступ, не говоря уж о локальной сети.
Крафтим последовательность одинаковых запросов
Последнему запросу в keep-alive лучше закрывать соединение при помощи **Connection: close**. Так мы избавимся от ненужного тайм-аута в 5 с (зависит от настроек), в течение которых сервер ждет продолжения последовательности. Я набросал небольшой скрипт для этого.
Еще в этом случае есть смысл везде использовать HEAD, чтобы гарантировать проход всей последовательности.
Теперь мы можем брутить логины
Что и требовалось доказать — keep-alive может оказаться полезным не только для ускорения, но и для замедления ответа. Также возможно, что подобный трюк прокатит при сравнении строк или символов в веб-приложениях или просто для более качественного отслеживания тайм-аутов каких-либо операций.
На самом деле спектр применения постоянных соединений куда шире. Некоторые серверы при таких соединениях начинают вести себя иначе, чем обычно, и можно наткнуться на любопытные логические ошибки в архитектуре или поймать забавные баги. В целом же это полезный инструмент, который можно держать в арсенале и периодически использовать. Stay tuned!
От автора
есть роутер(проводной) TL-R460, нужно подключить к нему WIFI роутер
Ребят есть роутер(проводной) TL-R460. Раздаёт инет на 2 компа. Нужно подключить к нему WIFI.
Роутер ADSL-2540U D-LINK + WIFI Роутер ASUS WL-520GU
Помогите настроить wifi через Роутер ADSL-2540U D-LINK + WIFI Роутер ASUS WL-520GU .Инет подключен.
Роутер ADSL-2540U D-LINK + WIFI Роутер ASUS WL-520GU
Помогите настроить wifi через Роутер ADSL-2540U D-LINK + WIFI Роутер ASUS WL-520GU .Инет подключен.
в документации должно быть написано максимальное число которое можно вписать?
TCP сокеты остаются открытыми, пока они не будут закрыты.
тем не менее, очень сложно обнаружить сломанное соединение (сломанное, как в маршрутизаторе, и т. д., а не закрытое) без фактической отправки данных, поэтому большинство приложений делают какую-то реакцию пинг-понга так часто, чтобы убедиться, что соединение все еще на самом деле живо.
короткий ответ:да, есть тайм-аут, и он применяется через TCP Keep-Alive.
TCP-соединения состоят из двух розеток, одна на каждом конце соединения. Когда одна сторона хочет прекратить соединение, она отправляет RST пакет, который другая сторона признает, и оба закрывают свои сокеты.
пока это не произойдет, однако, обе стороны будут держать свое гнездо открытым неопределенно долго. Это оставляет открытой возможность того, что одна сторона может закрыть свой сокет, намеренно или из-за некоторой ошибки, не сообщая другому концу через RST . Для обнаружения этого сценария и закрытия устаревших соединений Используется процесс TCP Keep Alive.
Keep-Alive Process
есть три настраиваемых свойства, которые определяют, как Keep-Alives работают. В Linux они 1 :
процесс работает следующим образом:
этот процесс включен по умолчанию в большинстве операционных систем, и поэтому мертвые TCP-соединения регулярно обрезаются, как только другой конец не отвечает в течение 2 часов 11 минут (7200 секунд + 75 * 9 секунд).
2 Часа По Умолчанию
поскольку процесс не запускается, пока соединение не простаивает в течение двух часов по умолчанию, устаревшие TCP-соединения могут задерживаться очень долго, прежде чем быть обрезаны. Это может быть особенно опасно для дорогих соединений, таких как соединения с базой данных.
Keep-Alive является необязательным
по данным RFC 1122 4.2.3.6, отвечая на и/или ретрансляцию TCP Keep-Alive пакеты необязательно:
крайне важно помнить, что сегменты ACK, не содержащие данных, не являются надежно передается по протоколу TCP.
рассуждение заключается в том, что пакеты Keep-Alive не содержат данных и не являются строго необходимыми и рискуют засорить трубки паутины, если они используются.
однако на практике, мой опыт был в том, что эта проблема со временем уменьшилась, поскольку пропускная способность стала дешевле; и, таким образом, пакеты Keep-Alive обычно не отбрасываются. документация Amazon EC2 например, дает косвенное одобрение Keep-Alive, поэтому, если вы размещаете с AWS, вы, вероятно, безопасно полагаетесь на Keep-Alive, но ваш пробег может отличаться.
изменение таймаутов TCP
За Исполнение
вместо этого, вы можете быть вынуждены применить конфигурацию операционной системы в целом. Имейте в виду, что эта конфигурация повлияет на все TCP-соединения, запущенные во всей системе.
текущие настройки TCP Keep-Alive можно найти в
- /proc/sys/net/ipv4/tcp_keepalive_time
- /proc/sys/net/ipv4/tcp_keepalive_probes
- /proc/sys/net/ipv4/tcp_keepalive_intvl
вы можете обновить любой из них так:
такие изменения не будут сохраняться при перезапуске. Чтобы внести постоянные изменения, используйте sysctl :
текущие настройки можно просмотреть с помощью sysctl :
обратите внимание, Mac OS X определяет keepidle и keepintvl в единицах МС в отличие от Linux, который использует секунды.
свойства можно задать с помощью sysctl который сохранит эти настройки при перезагрузке:
кроме того, вы можете добавлять их в /etc/sysctl.conf (создает файл, если он не существует).
у меня нет машины Windows для подтверждения, но вы должны найти соответствующие настройки TCP Keep-Alive в реестре at
1. См. man tcp для получения дополнительной информации.
3. Некоторые примеры, которые я нашел в базовом поиске Google, -lucwilliams / JavaLinuxNet и flonatel/libdontdie.
вы ищете опцию сокета SO_KEEPALIVE.
Это из спецификации TCP,
пакеты Keep-alive должны быть отправлены только тогда, когда никакие данные или пакеты подтверждения не были получены для соединения в течение интервала. Этот интервал должен быть конфигурируемым и иметь значение по умолчанию не менее двух несколько часов.
Как вы можете видеть, интервал TCP keepalive по умолчанию слишком длинный для большинства приложений. Возможно, вам придется добавить активности в свой протокол.
Если вы находитесь за маскирующимся NAT (как и большинство домашних пользователей в эти дни), существует ограниченный пул внешних портов, и они должны быть разделены между TCP-соединениями. Поэтому маскирующиеся NATs склонны предполагать, что соединение было прервано, если данные не были отправлены в течение определенного периода времени.
использование keepalives оба уменьшается вероятность того, что соединение будет прервано где-то по линии, а также позволяет узнать о сломанном соединении раньше.
вот некоторая дополнительная литература по keepalive, которая объясняет это гораздо более подробно.
поскольку Java не позволяет вам контролировать фактическое время keepalive, вы можете использовать примеры для их изменения, если вы используете ядро Linux (или ОС на основе proc).
Функция KeepAlive в Apache
Насколько удобна функция Keep Alive для веб-серверов Apache? Преимущество использования Keep Alive в том, что клиент может сделать несколько запросов к разным объектам на веб-сервере без необходимости каждый раз создавать новое TCP-соединение. Проблема в том, что если, к примеру, лимит соединений на Apache равен 300, и количество активных соединений уже достигло предела, то остальным придется подождать то тех пор, пока первые 300 клиентов не закончат соединение или же не истечет срок ожидания и соединение не оборвется.
Отключение функции приведет к тому, что при каждом новом запросе клиенту придется устанавливать новое соединение. На веб-серверах с малыми объемами памяти рекомендуется отключать функцию Keep-Alive.
Автор: Александр Белявцев | 27 Августа 2010
Некоторые Интернет провайдеры, обеспечивающие DSL-доступ, для установки соединения используют протокол РРРоЕ. Если вы соединяетесь с Интернет посредством DSL линии, уточните у своего провайдера, используется ли протокол РРРоЕ. Если да, то вам следует разрешить его использование.
Connect on Demand: Max Idle Time (Соединение по запросу: Максимальное время бездействия). Вы можете настроить свой роутер на разрыв Интернет-соединения после бездействия в течение определенного периода времени. Если ваше соединение было разорвано из-за бездействия, опция Соединения по запросу разрешает роутеру автоматически восстанавливать соединение после того, как вы снова попытаетесь воспользоваться Интернет. Чтобы включить эту опцию, выберите Connect on Demand и в поле Max Idle Time введите количество минут, которое должно пройти до разрыва вашего соединения. По умолчанию это значение равно 5 минутам.
Keep Alive: Redial Period (Поддерживать соединение: Период повторного набора). Если вы выберете эту опцию, роутер будет автоматически проверять ваше Интернет-соединение. Если оно оборвано, роутер повторно его установит. Для использования этой опции выберите Keep Alive. В поле Redial Period вы указываете, как часто роутер должен проверять наличие соединения. По умолчанию это значение равно 30 секундам.
Читайте также: