1. traceroute 프로그램
ㅇ 목적지까지의 라우팅 경로를 추적하기 위해 사용되는 TCP/IP 프로토콜 디버깅 도구
- 최초의 버젼이 버클리대 Van Jacobson에 의해 작성
2. 동작 원리
ㅇ 라우터의 기본 동작
- 모든 IP 라우터들은 수신된 IP 패킷을 다음 라우터로 전달하기 전에,
. IP 패킷 헤더를 조사하여 TTL 값을 1 만큼 뺀 후 0 이 되는지 확인
- 만일 감소된 TTL 값이 0 이라면,
. 이 패킷을 버리고 송신측에게 Time Exceeded Error 라는 ICMP 에러메세지를 보내게 됨
ㅇ tracert 프로그램은 라우터의 바로 이 점을 이용함
- 매 라우터 마다 TTL 값을 조정하므로,
. Echo Request 메세지를 매 라우터 마다 보내면서,
. 그 결과로 경로상의 라우터의 존재 및 지연 시간 등을 확인 가능
- 맨처음 TTL 값이 1 인 패킷을 보내면서 시작하며,
. 거치는 매 라우터 마다 3개 패킷을 보내면서 중복 확인을 함
3. 실제 구현상의 특징
ㅇ UNIX
- UDP 패킷의 TTL 필드를 사용하여 구현
ㅇ MS사의 윈도우즈
- UDP 대신에 ICMP를 사용하여 구현.
- 한편, 윈도우즈에서의 명령어는 tracert 라고 불리움