Как проверить сохранение TCP в Linux

Я хочу настроить поддержку tcp на моей машине с Linux. Итак, что я делаю, это запускаю скрипт

if [ `/sbin/sysctl -n net.ipv4.tcp_keepalive_time` != 200 ] ; then
   /sbin/sysctl -w net.ipv4.tcp_keepalive_time=200;

Но у меня все еще есть проблемы с подключением к красному смещению амазонки. Может кто-нибудь, пожалуйста, помогите и покажите мне, как я могу проверить, действительно ли установлен TCP Keep Alive или нет?


person user2588495    schedule 26.06.2014    source источник
comment
Это устанавливает значения таймера проверки активности TCP по умолчанию. Ваш код по-прежнему должен явно включать поддержку активности TCP для каждого сокета. (Нет глобальных настроек для включения поддержки активности TCP).   -  person nos    schedule 26.06.2014


Ответы (1)


Чтобы проверить, активна ли поддержка активности, откройте соединение, не обменивайтесь данными и проверьте с помощью tcpdump или аналогичного, что пакеты регулярно обмениваются в соединении, даже если обмен реальными данными не происходит.

Но, возможно, вы просто путаете keep-alive с тайм-аутом:

  • Поддерживать активность: определить, активно ли соединение, например. что данные могут быть обменены в случае необходимости. Это обнаружит потерю сетевого подключения и т. д. Поддержание активности выполняется на уровне TCP.
  • Тайм-аут: соединения закрываются после некоторого бездействия. Это делается на прикладном уровне.

В обоих случаях вы не обнаружите проблему, пока не попытаетесь прочитать или записать в сокет.

person Steffen Ullrich    schedule 26.06.2014