Является ли приложение tcp_keepalive зависимым от Linux?

Согласно http://tldp.org/HOWTO/TCP-Keepalive-HOWTO/index.html, функция поддержки активности ядра выполняется на уровне ОС и не требует, чтобы приложение явно вызывало ее. Однако я также читал о том, как приложение должно вызывать его (используя SO_KEEPALIVE), чтобы фактически использовать функцию ядра.

Здесь> Параметры поддержки активности не работают в Linux для исходящего соединения

Может кто-нибудь уточнить, пожалуйста?

Спасибо!

1 ответ

Решение

Это не происходит для сокетов приложений, если они не включены явно. Более того, в документе TCP Keepalive HOWTO вы четко указали:

Помните, что поддержка keepalive, даже если она настроена в ядре, не является поведением по умолчанию в Linux. Программы должны запрашивать контроль активности для своих сокетов, используя интерфейс setsockopt. Существует относительно немного программ, реализующих keepalive, но вы можете легко добавить поддержку keepalive для большинства из них, следуя инструкциям, приведенным далее в этом документе.

Другие вопросы по тегам