Поддерживать активность
![]() | В этой статье есть несколько проблем. Пожалуйста, помогите улучшить его или обсудите эти проблемы на странице обсуждения . ( Узнайте, как и когда удалять эти шаблонные сообщения )
|
Keepalive ) — это ( KA сообщение, отправляемое одним устройством другому, чтобы проверить работоспособность соединения между ними или предотвратить разрыв соединения.
Описание
[ редактировать ]После того как TCP-соединение установлено, оно считается действительным до тех пор, пока одна из сторон не закроет его. Как только соединение перешло в состояние «подключено», оно останется подключенным на неопределенный срок. Но на самом деле связь не будет длиться бесконечно. Многие брандмауэры или системы NAT закроют соединение, если в течение определенного периода времени не было активности. Сигнал Keep Alive можно использовать, чтобы заставить промежуточные хосты не закрывать соединение из-за неактивности. Также возможно, что один хост больше не прослушивает (например, сбой приложения или системы). В этом случае соединение закрывается, но нет FIN
когда-либо был отправлен. В этом случае пакет KeepAlive можно использовать для опроса соединения и проверки его целостности.
Сигнал поддержки активности часто отправляется через заранее определенные интервалы времени и играет важную роль в Интернете . Если после отправки сигнала ответ не получен, канал предполагается, что не работает, и будущие данные будут маршрутизироваться по другому пути до тех пор, пока канал снова не откроется. Сигнал поддержки активности также может использоваться, чтобы указать инфраструктуре Интернета, что соединение должно быть сохранено. Без сигнала поддержки активности промежуточные маршрутизаторы с поддержкой NAT могут разорвать соединение по истечении времени ожидания.
Поскольку единственной целью является поиск неработающих ссылок или указание соединений, которые следует сохранить, сообщения поддержки активности, как правило, короткие и не занимают много полосы пропускания . Однако их точный формат и условия использования зависят от протокола связи.
TCP-поддержание активности
[ редактировать ]Поддержки активности протокола управления передачей (TCP) являются дополнительной функцией и, если они включены, по умолчанию должны быть отключены. [1] Пакет поддержки активности не содержит данных. В сети Ethernet это приводит к кадрам минимального размера (64 байта). [2] ). Есть три параметра [3] относящиеся к поддержанию активности:
- Время поддержки активности — это продолжительность между двумя передачами поддержки активности в состоянии ожидания. Период поддержки активности TCP должен быть настраиваемым, и по умолчанию он составляет не менее 2 часов.
- Интервал поддержки активности — это продолжительность между двумя последовательными повторными передачами поддержки активности, если подтверждение предыдущей передачи поддержки активности не получено.
- Повторные попытки поддержки активности — это количество повторных передач, которые необходимо выполнить, прежде чем объявить, что удаленный конец недоступен.
Когда два хоста подключены к сети через TCP/IP, пакеты TCP Keepalive могут использоваться для определения того, действительно ли соединение все еще, и при необходимости разорвать его.
Большинство хостов, поддерживающих TCP, также поддерживают TCP Keepalive. Каждый хост (или одноранговый узел) периодически отправляет TCP-пакет своему одноранговому узлу, который запрашивает ответ. Если отправлено определенное количество сообщений поддержки активности и не получен ответ (ACK), отправляющий хост разорвет соединение со своего конца.Если соединение было прервано из-за тайм-аута TCP Keepalive и другой хост в конечном итоге отправляет пакет для старого соединения, хост, прервавший соединение, отправит пакет с установленным флагом RST, чтобы сигнализировать другому хосту о том, что старое соединение было прервано. соединение больше не активно. Это заставит другой хост завершить соединение на своем конце, чтобы можно было установить новое соединение.
Обычно сообщения TCP Keepalive отправляются каждые 45 или 60 секунд при неактивном TCP-соединении, а соединение разрывается после пропуска трех последовательных подтверждений. Это зависит от хоста, например, по умолчанию ПК с Windows отправляют первый пакет TCP Keepalive через 7200000 мс (2 часа), затем отправляют 5 пакетов Keepalive с интервалом 1000 мс, разрывая соединение, если нет ответа ни на один из пакетов Keepalive.
Keepalive на более высоких уровнях
[ редактировать ]Поскольку поддержка TCP не является обязательной, различные протоколы (например,СМБ [4] и ТЛС [5] )реализовать собственную функцию поддержания активности поверх TCP. Это также характерно для протоколов, которые поддерживают сеанс через протокол без установления соединения, например OpenVPN через UDP, [6] для реализации собственного поддержания жизни.
Другое использование
[ редактировать ]HTTP-поддержание активности
[ редактировать ]Протокол передачи гипертекста использует ключевое слово «Keep-Alive» вЗаголовок «Соединение», сигнализирующий о том, что соединение должно оставаться открытым.для дальнейших сообщений (это значение по умолчанию в HTTP 1.1, но в HTTP 1.0по умолчанию для каждой пары запрос/ответ использовалось новое соединение). [7] Несмотря на похожее название, эта функция совершенно не связана с ней.
Другие устройства
[ редактировать ]Устройства «поддержания активности» используются при ремонте автомобилей для поддержания напряжения аккумуляторной батареи устройств в автомобиле, когда аккумулятор отсоединен или заменен, обычно путем подключения небольшой батареи к 12-вольтовой розетке автомобиля. Типичным применением является предотвращение перехода радиоприемника или другого устройства автомобиля в «кодовый» режим (блокировка безопасности) во время ремонта автомобиля. Обычно для этой цели достаточно источника более низкого напряжения, например 9-вольтовой батареи.
Электрические часы часто имеют схемы поддержания активности с батарейным питанием для поддержания времени и других настроек во время отключения электроэнергии. В некоторых электронных устройствах используется конденсаторная схема для сохранения энергозависимой памяти, когда пользователь меняет батарею.
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Брейден, Роберт Т. (октябрь 1989 г.). Брейден, Р. (ред.). «Требования к интернет-хостам — коммуникационные уровни» . IETF . дои : 10.17487/RFC1122 . Проверено 8 ноября 2013 г.
- ^ Стандарт IEEE для Ethernet . Стандарт IEEE для Ethernet, 802.3-2015 – раздел первый. 2016. с. 108. дои : 10.1109/IEESTD.2016.7428776 . ISBN 978-1-5044-0078-7 .
- ^ «Использование поддержки активности TCP в Linux» . tldp.org . Проверено 29 июля 2016 г.
- ^ «Стандарт протокола для службы NetBIOS на транспорте TCP/UDP: концепции и методы» . IETF . Март 1987 г. doi : 10.17487/RFC1001 . Проверено 18 июня 2015 г.
- ^ Уильямс, Майкл; Тюксен, Майкл; Зеггельманн, Робин (февраль 2012 г.). «Безопасность транспортного уровня (TLS) и расширение безопасности транспортного уровня дейтаграмм (DTLS) Heartbeat» . IETF . дои : 10.17487/RFC6520 . Проверено 18 июня 2015 г.
- ^ «Страница руководства OpenVPN» . Проверено 18 июня 2015 г.
- ^ «Рассуждение Джима Дрисколла о HTTP Keep Alive» . Архивировано из оригинала 13 августа 2010 г.