Проблема состоит в том, что я должен ожидать некоторого тайм-аута на точке 5. Я хочу использовать, мой открыл сессию SSH теперь, и не ожидают в течение 5-10 секунд, пока она не узнает, что соединение работает снова.
Как вынудить все соединения TCP снова послать данные без задержек GNU/Linux?
Вы знаете, что IP-соединение было установлено во время (4)? С DHCP / WiFi / WPA / ARP / Zeroconf там является пересмотром канала передачи данных, который мог легко занять 5 секунд между поставщиком услуг на и способностью передать даже один пакет IP.
Если бы это так, сессия SSH не может быть ограничением, и принуждение TCP снова посылает, не помог бы вообще.
Обновление:
Не знайте, я не могу воспроизвести его. У меня было открытое соединение SSH между машиной.2 и.3 с.3 печатью времени к stdout каждую секунду. Эти две машины запускают ванильную Ubuntu, Ясную и связанную через скучный WAP/переключатель/маршрутизатор. Машинами является настроенный DHCP. Я вытянул кабель от машины.3 и ожидал с научной точки зрения точный (посмотрел на часы), интервал 60 секунд. Вот трассировка пакетов:
No. Time Source Destination Protocol Info
18 8.479990 192.168.2.3 192.168.2.2 SSH Encrypted response packet len=48
19 8.480024 192.168.2.2 192.168.2.3 TCP 56670 > ssh [ACK] Seq=1 Ack=433 Win=1002 Len=0 TSV=2804876 TSER=44100246
20 87.619215 AsustekC_f1:59:70 Broadcast ARP Who has 192.168.2.2? Tell 192.168.2.3
21 87.619221 AsustekC_24:9c:85 AsustekC_f1:59:70 ARP 192.168.2.2 is at 00:1a:92:24:9c:85
22 87.619527 192.168.2.3 192.168.2.2 SSH Encrypted response packet len=48
23 87.619545 192.168.2.2 192.168.2.3 TCP 56670 > ssh [ACK] Seq=1 Ack=481 Win=1002 Len=0 TSV=2824661 TSER=44120031
Потребовалось приблизительно 200 микросекунд для сессии для возобновления. Я использовал стандартный Wireshark для пакетного сниффинга.
Смотрите на следующие proc записи
/proc/sys/net/ipv4/
tcp_keepalive
tcp_retries
tcp_keepalive:
Число секунд, соединение должно быть неактивным перед TCP, начинает отсылать активные датчики. Это может быть изменено путем выполнения следующей команды
отзовитесь эхом 20>/proc/sys/net/ipv4/tcp_keepalive_time.
Значение по умолчанию составляет 7 200 секунд (2 часа).
tcp_retries:
Количество повторений прежде, чем закрыть соединение TCP
отзовитесь эхом 45>/proc/sys/net/ipv4/tcp_retries2
Не уверенный, если это действительно поможет когда дело доходит до соединения SSH, поскольку это может действительно зависеть от скорости канала и конфигурации тайм-аута SSH.
Аплодисменты Chris