어떡하지`` 그리고 ``ss -o`의 출력에서 ​​`는 무엇을 의미합니까?

어떡하지`` 그리고 ``ss -o`의 출력에서 ​​`는 무엇을 의미합니까?

ss -o다음 형식으로 TCP 타이머를 표시합니다.

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이 경우 백오프가 적용되는 것도 확인할 수 있습니다. 즉, 패킷이 재전송될 때마다 초기 만료 시간이 늘어납니다.

관련 정보