요약

  • IPv4는 TTL을 초 단위로 측정되는 8비트 수명 필드로 정의하지만, 모든 라우터는 전달에 1초도 걸리지 않더라도 최소 1씩 줄여야 합니다.
  • 이 최소 감소 규칙 덕분에 TTL은 사실상 홉 수 제한이 되었습니다. 값이 0이 되면 패킷은 폐기되며, 통상 ICMP Time Exceeded 메시지가 생성됩니다.

시간을 정확히 재지 못하는 타이머

RFC 791은 IPv4 발신자에게 데이터그램의 최대 수명을 제어할 수 있게 했습니다. 발신자는 8비트 Time to Live 필드를 설정하며, 이 필드의 명목상 단위는 1초입니다. 따라서 255라는 값은 규격의 시간 어휘에 따라 최대 255초, 즉 4.25분을 의미했습니다.

그러나 같은 규격은 이 시계를 문자 그대로 읽는 해석을 곧바로 약화시킵니다. 인터넷 헤더를 처리하는 모든 지점은 처리 시간을 반영해 TTL을 줄여야 하며, 온전한 1초가 경과하지 않았더라도 최소 1은 빼야 합니다. 결국 RFC 791은 이 값을 수명의 상한선으로만 규정합니다. 패킷이 휴대하는 스톱워치였던 적은 없습니다.

이 최소 감소 규칙은 정확한 전송 시간 측정이 불가능할 때 네트워크를 보호합니다. 라우터가 필드의 명목상 단위보다 빠르게 패킷을 전달한다는 이유만으로 패킷이 영원히 순환할 수는 없습니다. 처리 단계마다 유한한 예산의 일부가 소모됩니다.

홉 예산의 명시화

RFC 1812는 이후 이 운영상 결과를 분명히 밝혔습니다. 경과 시간이 1초보다 훨씬 짧더라도 각 라우터는 TTL을 최소 1씩 줄여야 하므로, TTL은 사실상 데이터그램이 전파될 수 있는 거리에 대한 홉 수 제한입니다.

타이머 개념이 완전히 사라진 것은 아닙니다. 패킷을 1초 이상 보유한 라우터는 초당 1씩 더 줄일 수 있습니다. 그러나 상호운용 가능한 최소 기준은 라우터당 1회 감소입니다. 따라서 공통 보장은 실제 시간보다 네트워크 내 진행 과정을 더 신뢰할 수 있게 반영합니다.

이 이중적 의미는 은폐되기보다 인정되었습니다. RFC 1812는 TTL을 홉 수 제한이자 시간 제한으로 동시에 기술하면서, 다수 구현이 이를 순수한 홉 수로 취급한다는 점도 언급합니다. 이 규격의 요구사항은 모든 라우터가 체류 시간을 동일하게 측정한다고 가정하지 않으면서도, 포워딩 루프를 끊고 운영 진단을 지원하는 메커니즘을 유지합니다.

0은 값이 아니라 동작이다

전달 과정에서 TTL이 0 이하로 떨어지면 라우터는 패킷을 폐기해야 합니다. 멀티캐스트가 아닌 목적지의 경우 RFC 1812는 발신자에게 ICMP Time Exceeded Code 0 메시지를 보내도록 요구합니다. Traceroute는 이 메시지에 의존하지만, 그 이면의 제어는 더 광범위합니다. 라우팅 장애가 있어도 하나의 데이터그램이 무제한 순환할 수는 없습니다.

TTL 변경은 IPv4 헤더에도 영향을 줍니다. RFC 791의 체크섬은 헤더만을 대상으로 하며, TTL과 같은 가변 필드가 바뀔 때마다 다시 계산하고 검증해야 합니다. 따라서 전파 예산은 종단 간 그대로 유지되는 메타데이터가 아니라, 홉마다 반복되는 헤더 전환의 일부입니다.

출처