[server] 리눅스 / macOS에서 TCP 타임 아웃을 확인하는 방법은 무엇입니까?

MacOS에 문제가있는 네트워크 문제가 있습니다. TCP 소켓에는 원격 당사자가 응답하지 않는 경우 연결을 닫는 내부 시간 초과가 있음을 알고 있습니다 (그러나 우아한 연결 해제는 없습니다). 이 시간 초과의 정확한 값을 확인하는 데 사용할 수있는 명령 / 도구입니까?



답변

모든 시스템 설정 TCP 값을 볼 수 있습니다

$ sysctl net.inet.tcp

tcp_var.h, tcp_subr.c 및 tcp_timer.c에서 해석됩니다.

  • net.inet.tcp.keepidle = Keepalive 유휴 타이머
  • net.inet.tcp.keepintvl = 연결 유지를위한 간격
  • net.inet.tcp.keepinit = syn 설정을위한 타임 아웃
  • net.inet.tcp.mssdflt = 기본 TCP 최대 세그먼트 크기
  • net.inet.tcp.v6mssdflt = IPv6의 기본 TCP 최대 세그먼트 크기
  • net.inet.tcp.minmss = 최소 TCP 최대 세그먼트 크기
  • net.inet.tcp.minmssoverload = MINMSS 크기 미만으로 허용되는 초당 TCP 세그먼트 수
  • net.inet.tcp.rfc1323 = rfc1323 (고성능 TCP) 확장 활성화
  • net.inet.tcp.rfc1644 = TTCP (rfc1644) 확장 사용
  • net.inet.tcp.do_tcpdrain = mbuf가 부족할 때 추가 도움을 받으려면 tcp_drain 루틴을 활성화하십시오.
  • net.inet.tcp.pcbcount = 활성 PCB 수
  • 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 = 허용되는 최소 rtt 값
  • net.inet.tcp.randomize_ports = TCP 포트 번호 랜덤 화
  • net.inet.tcp.tcbhashsize = TCP 제어 블록 해시 테이블의 크기
  • net.inet.tcp.msl = 최대 세그먼트 수명
  • net.inet.tcp.always_keepalive = 모든 TCP 연결에서 SO_KEEPALIVE로 가정
  • net.inet.tcp.broken_peer_syn_rxmit_thres = 나머지 시도 동안 TCP가 rfc1323 및 rfc1644를 비활성화하기 전에 재전송 된 SYN 수
  • net.inet.tcp.pmtud_blackhole_detection = 경로 MTU 발견 블랙홀 탐지
  • net.inet.tcp.pmtud_blackhole_mss = 경로 MTU 발견 블랙홀 탐지가 MSS를 낮춤

SO_KEEPALIVE가 설정되면 연결이 닫히기 전에 기본적으로 8 개의 keepalives가 전송된다고 생각합니다. 시간은 밀리 초입니다.


답변

리눅스의 경우 다음을 사용할 수 있습니다.

$ sysctl -a | grep net.ipv4


답변

이것이 당신이 찾고있는 것인지 확실하지 않지만 다음과 같이 keep-alive 값을 확인할 수 있습니다.

$ netstat -o


답변

아마도 관련이 없지만 나를 위해 작동합니다.

우리 서버 중 하나에 대한 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


답변