Linux에서 TCP SYN 재전송 지연

Linux에서 TCP SYN 재전송 지연

우리 애플리케이션은 무선 네트워크의 장치에 연결됩니다. 네트워크는 통신을 하기 전에 장치를 깨워야 하며 약 3초가 소요됩니다. 이 3초 안에 CentOS(Linux 3.10.0-957.62.1.el7.x86_64 x86_64) 시스템은 TCP SYN 패킷을 2번 재전송합니다. 재전송으로 인해 무선 네트워크에 문제가 발생하므로 최소 3초 동안 재전송을 기다리고 싶습니다.

낮추어도 tcp_syn_retries첫 번째 재시도는 실제로 변경되지 않으며 4 이하로 구성되면 원치 않는 동작이 발생합니다(이 역시조언하지 않음). 단지 재시도 횟수를 줄일 뿐이지만 여전히 동일한 재시도 패턴을 따릅니다(단지 적은 횟수).

및 을(를) tcp_frto설정해 도 원하는 효과가 나오지 않았습니다.1setting tcp_low_latency1

Windows에 대한 유사한 질문이 게시되었습니다.여기

Linux에서 TCP SYN 재전송 스키마를 어떻게 변경합니까?

답변1

syn의 tcp 재전송은 수신 시간 초과( rto) 값과 관련이 있습니다(참조:소스 코드). 기본적으로 1초와 같습니다(정의됨).여기그리고여기; 최소 = 0.2초, 최대 = 120초).

util을 사용하여 지정된 경로에 대한 rto 값을 변경할 수 있습니다 ip.

ip route replace 0/0 via <wifi-gw> dev <wifi-iface> rto_min 5s

그러나 애플리케이션 자체는 setockopt 호출을 통해 rto 값을 변경할 수 있습니다.

관련 정보