LINUX

TTL (time-to-live)

0hee 2008. 3. 18. 09:43

TTL[티티엘]IP 패킷 내에 있는 값으로서, 그 패킷네트웍 내에 너무 오래 있어서 버려져야하는지의 여부를 라우터에게 알려준다. 패킷들은, 여러 가지 이유로 적당한 시간 내에 지정한 장소에 배달되지 못하는 수가 있다. 예를 들어, 부정확한 라우팅 테이블의 결합은 패킷을 끝없이 순환하게 만들 수도 있다. 일정한 시간이 지나면 그 패킷을 버리고, 재전송할 것인지를 결정하도록 그 사실을 발신인에게 알리기 릴 수 있게 하기 위한 해결책으로 TTL이 사용된다. TTL의 초기치는 시스템에 의해 대개 8 비트 길이의 패킷 헤더에 설정된다. TTL에 관한 원래의 아이디어는, 일정시간동안을 초단위로 지정함으로써 그 시간이 지나면 패킷을 버리도록 하기 위한 것이었다. 각 라우터는 TTL 필드로부터 적어도 하나의 숫자를 빼도록 되어 있으며, 그 계산은 대개 패킷이 버려지기 전에 허용되는 라우터 수를 의미하는데 사용된다. 패킷을 받는 각 라우터는 TTL 필드 내의 값에서 1을 뺀다. 그 값이 0이 되었을 때, 라우터는 그것을 감지하여 그 패킷을 버리고 ICMP 메시지를 발신지 호스트로 보낸다.

윈도우95나 98의 TTL 기본 값은 32 홉이다. 만약 어떤 사이트에 도달하기에 어려움을 느끼는 사용자라면, 이 값을 128 정도로 바꾸는 것도 하나의 방법이다.

pingtraceroute 유틸리티는 둘다 특정 호스트 컴퓨터에 접근을 시도하거나 그 호스트까지의 경로를 추적할 때 TTL 값을 사용한다. traceroute는 수신경로를 따라 이어지는 각 라우터에 의해 그 패킷이 버려지도록 하기 위해, 의도적으로 낮은 TTL 값을 이용하여 패킷을 보낸다. 패킷을 보내고 패킷이 버려졌다는 ICMP 메시지를 돌려 받기까지의 시간은, 이어지는 각각의 홉 이동시간을 계산하는데 사용된다. 멀티캐스팅 IP 프로토콜을 사용하면, TTL 값은 패킷이 전달되어야 하는 범위나 구역을 가리킨다.

0은 같은 호스트로 제한된다.
  • 1은 같은 서브넷으로 제한된다.
  • 32는 같은 사이트로 제한된다.
  • 64는 같은 지역으로 제한된다.
  • 128은 같은 대륙으로 제한된다.
  • 255는 제한 없다.