Проверка активности TCP: Почему неактивное Установленное соединение заканчивается после 60 секунд вместо tcp_keepalive_time?

Я исследую способы смягчить сервер против АТАК ТИПА DOS. В одном сценарии я открыл несколько сотен соединений TCP для своего веб-сервера. Я не отправляю данных после начального квитирования TCP; это - неактивное соединение после квитирования TCP. Сервер показывает это соединение в УСТАНОВЛЕННОМ состоянии.

После 60 секунд никакого действия соединение завершается сервером (перемещенный в состояние FIN_WAIT2).

Почему это происходит после 60 секунд? Существует ли значение ядра, которое управляет этим? Я ожидал, что соединение завершится после "tcp_keepalive_time" секунды (в настоящее время набор к 7 200).

Хорошо, что неактивное соединение не должно ожидать 7 200 секунд, которые будут завершены, но я хочу понять, почему это происходит после 60 секунд.

Это находится на сервере CentOS 6.4, выполняющем 2.6.32 ядер.

0
задан 25 June 2015 в 10:02
1 ответ

Работа с незадействованными соединениями не имеет ничего общего с сохранением TCP, а связана только с настройками внутри серверного процесса. TCP-сервер заботится только о своевременном обнаружении прерванных соединений, т.е. о том, где нельзя обмениваться пакетами, потому что что что-то посередине прервано или один из пиеров разбился. Когда соединение простаивает, обмен данными не происходит, но TCP поддерживает пакеты с нулевой полезной нагрузкой, которые все еще могут быть обменены

.
1
ответ дан 4 December 2019 в 16:54

Теги

Похожие вопросы