그것이 일관되게 일어나고 있기 때문에, 가장 가능성이 큰 원인은 라우터 펌웨어 중 하나의 버그로 인해 추적 패킷을 삭제하지 못하고 ( "TTL 초과"보고서를 보내지 않아야 할 때) 할까요. 다음은 BSD traceroute 매뉴얼 페이지 의 첫 번째 문제에 대한 예입니다 .
A sample use and output might be:
[yak 71]% traceroute nis.nsf.net.
traceroute to nis.nsf.net (35.1.1.48), 30 hops max, 56 byte packet
1 helios.ee.lbl.gov (128.3.112.1) 19 ms 19 ms 0 ms
2 lilac-dmc.Berkeley.EDU (128.32.216.1) 39 ms 39 ms 19 ms
3 lilac-dmc.Berkeley.EDU (128.32.216.1) 39 ms 39 ms 19 ms
4 ccngw-ner-cc.Berkeley.EDU (128.32.136.23) 39 ms 40 ms 39 ms
[...]
Note that lines 2 & 3 are the same. This is due to a buggy kernel on the
2nd hop system - lbl-csam.arpa - that forwards packets with a zero ttl (a
bug in the distributed version of 4.3 BSD).
이 예에서는 버그가있는 두 번째 라우터이며, 세 번째 라우터는 2 번과 3 번으로 나열됩니다.
반면에 TTL이 0 대신 1에 도달했을 때 패킷을 버리는 버그가있는 경우 어떻게되는지 생각해보십시오.
- TTL = 1로 전송 된 추적 패킷은 첫 번째 라우터에서 0으로 감소하여이를 삭제하고 TTL 초과를보고하므로 홉 # 1로 표시됩니다. 여기 다 좋아요
- TTL = 2로 전송 된 패킷은 첫 번째 라우터에서 1로 감소합니다. 그런 다음 두 번째 라우터는 0으로 감소시키고 삭제 및보고하므로 홉 # 2로 표시됩니다. 다시 한 번 여기에 좋습니다.
- TTL = 3으로 전송 된 패킷은 첫 번째 라우터에서 2로 감소합니다. 두 번째 라우터는이를 1로 줄이고 잘못 삭제하여보고하므로 홉 # 3으로 표시됩니다.
다시 버그가있는 두 번째 라우터이지만이 경우 두 번 나열된 두 번째 라우터입니다 (예 : 맨 페이지의 두 번째 라우터는 두 번째로 나열됩니다).