timer:(<timer_name>,<expire_time>,<retrans>)
<expire_time>
은 무슨 <retrans>
뜻인가요?
나는 <expire_time>
그것이 0까지 카운트다운된 다음 어떤 숫자부터 다시 카운트를 다시 시작한다는 것을 발견했습니다. 시작 값은 TCP 소켓마다 다릅니다.
<retrans>
모든 TCP 소켓에 대해 항상 0인 것 같습니다.
답변1
expire_time
타이머가 만료되기까지 남은 시간입니다. Linux 커널의 TCP 스택은 많은 타이머를 지원하며 모두 만료 시간이 있습니다.
retrans
발생한 재전송 횟수입니다. TCP 구현 손실된 것으로 생각되는 패킷을 재전송;그들은 언제 포기해야 할지 알기 위해 이러한 재전송 횟수를 계산합니다. 이를 강제하는 한 가지 방법은 즉시 거부되지 않는 포트에서 연결을 열어보는 것입니다.예를 들어(이전 질문 중 하나의 예를 기반으로 함):
curl http://www.google.com:9000
실행해 보면 curl
한동안 거기에 머물다가 계속해서 재전송 횟수가 증가하는 항목이 ss -o
나타나는 것을 볼 수 있습니다. SYN-SENT
이 경우 백오프가 적용되는 것도 확인할 수 있습니다. 즉, 패킷이 재전송될 때마다 초기 만료 시간이 늘어납니다.