LINUX.ORG.RU
ФорумAdmin

Как работает Keepalive?

 , keepalive,


0

1

В очередной раз столкнувшись с зависанием табов Firefox, когда перестаёт работать клавиатура, я узнал от Гугло-ИИ про «молчаливое бесконечное зависание сокетов» и сообщения KeepAlive. Поискал информацию в других местах, и вопросов стало ещё больше:

  1. Правильно ли я понимаю, что
    1.1. при плохой связи или намеренном удушении трафика до моей машины не доходят сообщения об обрыве связи,
    1.2. поэтому программа может вечно висеть и считать себя работающей, ничего не скачивая/не передавая,
    1.3. поэтому придумали отправку сигнала KeepAlive,
    1.4. и при плохой связи имеет смысл увеличить частоту запросов и уменьшить время до нескольких минут?

  2. Если по умолчанию tcp_keepalive_time — 2 часа, а затем 9 (tcp_keepalive_probes) попыток с интервалом 75 с (tcp_keepalive_intvl), почему curl, браузеры, FTP-сервера и другие программы могут висеть, ничего не скачивая, гораздо дольше 2 часов 12 минут? Считать ли способность не работать и не выдавать ошибку дольше 2 часов 12 минут багом сетевой программы?

  3. Где об этом стоит прочитать? Помимо man sysctl, man sysctl.conf и man.tcp.

  4. Можно ли глобально прибить все подвисшие соединения на уровне ядра?

  5. Пытался ли кто-нибудь решить проблему мёртвого зависания при плохой связи глобально? Можно ли, например, при таймауте на уровне TCP долго пытаться восстановить связь, а не рвать окончательно?

  6. Можно ли настраивать параметры keepalive для браузеров в Андроиде без рута?

★★★★★
  • Markdown
Пустая строка (два раза Enter) начинает новый абзац. Знак '>' в начале абзаца выделяет абзац курсивом цитирования.
Внимание: прочитайте описание разметки Markdown.
Используйте Ctrl-Enter для размещения комментария