Як перевірити тайм-аут TCP в Linux / macos?


11

У мене на MacOS проблема з мережею, яку мені потрібно вирішити. Я знаю, що у сокета TCP є внутрішній тайм-аут, який закриє з'єднання, якщо віддалена сторона не реагує (але і витонченого відключення). Чи будь-яка команда / інструмент я можу використовувати для перевірки точного значення цього тайм-ауту?

Відповіді:


15

Ви можете побачити всі встановлені системою значення tcp за допомогою

$ sysctl net.inet.tcp

Інтерпретується з tcp_var.h, tcp_subr.c та tcp_timer.c:

  • net.inet.tcp.keepidle = таймер очікування простою
  • net.inet.tcp.keepintvl = інтервал для надсилання ключів
  • net.inet.tcp.keepinit = час очікування встановлення синхронізації
  • net.inet.tcp.mssdflt = Максимальний розмір сегмента TCP
  • net.inet.tcp.v6mssdflt = Максимальний розмір сегмента TCP за замовчуванням для IPv6
  • net.inet.tcp.minmss = Minmum TCP Максимальний розмір сегмента
  • net.inet.tcp.minmssoverload = Кількість сегментів TCP в секунду, дозволених бути розміром MINMSS
  • net.inet.tcp.rfc1323 = Увімкнути розширення rfc1323 (високоефективний TCP)
  • net.inet.tcp.rfc1644 = Увімкнути розширення rfc1644 (TTCP)
  • net.inet.tcp.do_tcpdrain = Увімкнути процедуру tcp_drain для додаткової допомоги при низькому рівні mbufs
  • net.inet.tcp.pcbcount = Кількість активних друкованих плат
  • net.inet.tcp.icmp_may_rst = Деякі недоступні повідомлення ICMP можуть перервати з'єднання в SYN_SENT
  • net.inet.tcp.strict_rfc1948 = Визначає, чи точно дотримується RFC1948
  • net.inet.tcp.isn_reseed_interval = Секунди між перезавантаженням секрету ISN
  • net.inet.tcp.background_io_enabled = Увімкнено фон IO
  • net.inet.tcp.rtt_min = дозволене значення min rtt
  • net.inet.tcp.randomize_ports = Вивірити кількість портів TCP
  • net.inet.tcp.tcbhashsize = Розмір хеш-блоку контрольного блоку TCP
  • net.inet.tcp.msl = Максимальний термін служби сегмента
  • net.inet.tcp.always_keepalive = Припустимо SO_KEEPALIVE на всіх з'єднаннях TCP
  • net.inet.tcp.broken_peer_syn_rxmit_thres = Кількість повторно переданих SYN, перш ніж TCP відключить rfc1323 та rfc1644 під час решти спроб
  • net.inet.tcp.pmtud_blackhole_detection = Виявлення чорного отвору Math Discovery
  • net.inet.tcp.pmtud_blackhole_mss = Шлях МТУ Discovery виявлення чорної діри знижений MSS

Я вважаю, що за замовчуванням 8 keepalives будуть надіслані до того, як з'єднання буде закрите, якщо встановлено SO_KEEPALIVE. Часи в мілісекундах.



3

Я не впевнений, що це те, що ви шукаєте, але ви можете перевірити значення збереження:

$ netstat -o

3
netstat не приймає для мене опцію '-o' в Mac OS X
10.6.6

1

Можливо, не пов'язане, але працює для мене:

Я намагаюся визначити інтерактивний тайм-аут ssh / tcp на одному з наших серверів, тому я просто:

date; ssh host.domain 'sleep 10000'; date

Приклад виведення:

Thu May 24 12:22:39 CEST 2018
packet_write_wait: Connection to 172.29.1.27 port 22: Broken pipe
Thu May 24 14:22:40 CEST 2018
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.