본문 바로가기
컴퓨터 지식/네트워크&프로토콜

[네트워크📶] Tracert 작동원리 / Traceroute 작동 방식 ✨

by 서상혁 2020. 6. 10.

들어가기 앞서

 

Traceroute는 ICMP Error메세지를 통해 진행됩니다.

ICMP 프로토콜의 원리를 알고 계시면 좋습니다.

링크 : 

 


 

Traceroute / Tracert 작동방식

 

특정 IP까지의 라우팅 경로를 알고 싶을때,

운영체제에 따라 Traceroute / Tracert 명령어를 이용하죠.

Traceroute/Tracert는 Ping 메시지와는 달리, 해당 라우터까지 거치는 라우팅 IP를 모두 알려줍니다.

어떤 방식으로 작동하는 것일까요?

 

ICMP 방식으로 이루어집니다.

제 노트북에서 naver.com 까지의 trace를 추적해봅시다! 😁

 

 

위 사진과 같이, 다음 라우터의 경로들이 쭉~ 나옵니다.

언뜻 출력값만 보기에는 naver.com 서버에 해당하는 IP까지 한번에 쭉~~~ 가면서 그 경로 IP를 바로바로 반환하는거처럼 보이죠. 하지만, 직접 해보시면 알겠지만 속도가 매우 느려요. tracert 작동방식에 그 비밀이 담겨있습니다.

tracert는 ICMP 의 type 30으로서, TTL 방식을 사용합니다.

 

TTL은 내가 이동할 수 있는 최대 라우팅 홉을 의미합니다.

예를들어 TTL을 1 로 설정하고 패킷을 보내면, 다음 라우터에서 바로 TTL 이 0 이되면서 ICMP Error를 반환합니다.

 

ICMP traceroute 는 TTL을 1로 시작해서 보내고, 목표 라우터에 도달할때까지 TTL을 1씩 계속 늘려가며 패킷을 보냅니다. 그러면 가는 경로에 있는 모든 라우터들은 TTL 을 0 을 경험하기 때문에, ICMP Error을 통해, 본인의 라우팅 IP를 반환합니다.

그러면 TTL이 1일때 도달한 라우터, 2일때 도달한 라우터, .........~~~~

도착했을때 도달한 라우터 까지 모든 경로를 얻게 되는 것입니다!

 


 

간단하게 정리하자면,

 

1. TTL을 1으로 패킷을 전송한다.

2. TTL이 0이된 바로 다음 라우터는 ICMP error 메세지를 돌려준다. (경로에있는 첫번째 라우터 IP 알아냄!)

3. TTL을 2로 패킷을 전송한다.

4. TTL이 0이된 경로중 2번째에 있는 라우터는 ICMP error 메세지를 돌려준다. (경로에 있는 두번째 라우터 IP 알아냄!)

5. 위와 같은 방식으로 도착할 때 까지 모든 TTL을 늘려가며 전송한다.

6. 목적지의 ICMP 메세지를 받으면, 라우팅 경로의 모든 IP를 알 수 있다.

 

 

728x90

댓글