Como verificar o tempo limite TCP no linux / macos?

8

Eu tenho um problema de rede no meu MacOS que preciso solucionar. Eu sei que o socket TCP tem timeout interno que fechará a conexão se a parte remota não estiver respondendo (mas também não haverá uma desconexão). É algum comando / ferramenta que eu possa usar para verificar o valor exato desse timeout (s)?

    
por grigoryvp 29.12.2010 / 10:15

4 respostas

12

Você pode ver todos os valores tcp do conjunto de sistemas com

$ sysctl net.inet.tcp

Interpretado de tcp_var.h, tcp_subr.c e tcp_timer.c:

  • net.inet.tcp.keepidle = temporizador inativo do keepalive
  • net.inet.tcp.keepintvl = intervalo para enviar keepalives
  • net.inet.tcp.keepinit = tempo limite para estabelecer syn
  • net.inet.tcp.mssdflt = Tamanho máximo do segmento TCP padrão
  • net.inet.tcp.v6mssdflt = Tamanho máximo do segmento TCP padrão para IPv6
  • net.inet.tcp.minmss = Tamanho máximo do segmento TCP do Minmum
  • net.inet.tcp.minmssoverload = Número de segmentos TCP por segundo que podem estar sob o tamanho MINMSS
  • net.inet.tcp.rfc1323 = Ativar extensões rfc1323 (TCP de alto desempenho)
  • net.inet.tcp.rfc1644 = Ativar extensões rfc1644 (TTCP)
  • net.inet.tcp.do_tcpdrain = Ativar a rotina tcp_drain para ajuda extra quando estiver em baixo no mbufs
  • net.inet.tcp.pcbcount = Número de PCBs ativos
  • net.inet.tcp.icmp_may_rst = Certas mensagens inacessíveis do ICMP podem anular conexões em SYN_SENT
  • net.inet.tcp.strict_rfc1948 = Determina se o RFC1948 é seguido exatamente
  • net.inet.tcp.isn_reseed_interval = Segundos entre a nova propagação do segredo da ISN
  • net.inet.tcp.background_io_enabled = Fundo IO ativado
  • net.inet.tcp.rtt_min = min valor de rtt permitido
  • net.inet.tcp.randomize_ports = Randomizar números de porta TCP
  • net.inet.tcp.tcbhashsize = Tamanho da hashtable do bloco de controle TCP
  • net.inet.tcp.msl = Duração máxima do segmento
  • net.inet.tcp.always_keepalive = Assume SO_KEEPALIVE em todas as conexões TCP
  • net.inet.tcp.broken_peer_syn_rxmit_thres = Número de SYNs retransmitidos antes de TCP desabilitar rfc1323 e rfc1644 durante o restante das tentativas
  • net.inet.tcp.pmtud_blackhole_detection = Detecção do buraco negro na descoberta da MTU do caminho
  • net.inet.tcp.pmtud_blackhole_mss = Detecção de MTU de caminho A detecção de buraco negro diminuiu o MSS

Acredito que, por padrão, 8 keepalives serão enviados antes que a conexão seja fechada, se SO_KEEPALIVE estiver configurado. Os tempos estão em milissegundos.

    
por 31.05.2011 / 15:12
3

Não tenho certeza se é isso que você está procurando, mas você pode verificar o valor do keep-alive com:

$ netstat -o
    
por 29.12.2010 / 10:21
3

Para o linux você pode usar:

$ sysctl -a | grep net.ipv4
    
por 31.08.2016 / 10:14
1

Talvez não relacionado, mas funciona para mim:

Estou tentando determinar o tempo limite interativo do ssh / tcp para um de nossos servidores, portanto, apenas:

date; ssh host.domain 'sleep 10000'; date
Exemplo de saída

:

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
    
por 24.05.2018 / 12:27

Tags