패킷이 라우터에 도착했을 때, 언제 TTL 값이 감소되나요?

chroma14의 이미지

제목처럼 패킷이 라우터에 도착했을 때,

IP 헤더에 있는 다른 필드에 대한 확인을 한 뒤에(예를 들어 checksum 확인을 하고, fragmentation을 해야 되면 fragmentation을 한 뒤에, 그리고 다음 route를 지정한 뒤 등) TTL값을 1감소 시키는 것인지...

아니면 도착하자마자 TTL값을 1감소 시킨 뒤에 다른 필드들을 확인하는지...

kyong의 이미지

chroma14 wrote:
제목처럼 패킷이 라우터에 도착했을 때,

IP 헤더에 있는 다른 필드에 대한 확인을 한 뒤에(예를 들어 checksum 확인을 하고, fragmentation을 해야 되면 fragmentation을 한 뒤에, 그리고 다음 route를 지정한 뒤 등) TTL값을 1감소 시키는 것인지...

아니면 도착하자마자 TTL값을 1감소 시킨 뒤에 다른 필드들을 확인하는지...

ip header checksum은 TTL값도 포함하므로 TTL값을 변경시켰다면
checksum 도 당연히 업데이트 돼야 되겠죠.
리눅스에서 다루는 방식은 소스를 확인하시는 것이 정확하겠네요.
http://lxr.linux.no/source/net/ipv4/ip_forward.c?v=2.4.21