컴퓨터네트워크-네트워크층 프로토콜(6)
Example of traceroute program
Traceroute(유닉스), tracert(윈도우): 최대 30홉(라우터)
시간초과와 목적지 도달 불가 오류보고 메시지로부터 정보 획득
1. Traceroute는 응용층의 프로그램
2. 서버 프로그램은 traceroute 프로그램이 없다.
3. UDP 사용자 데이터그램에 캡슐화됨
4. traceroute 프로그램은 일부러 목적지에서 사용하지 않는 포트번호를 사용한다.
5. n개의 라우터가 경로상에 있으면 traceroute 프로그램은 (n+1)개의 메시지를 전달한다.
6. 첫 번째 traceroute 메시지는 TTL값이 1로 설정되어 전달된다.
7. 메시지는 첫 번째 라우터에서 폐기되며, 시간초과 ICMP 오류 메시지 전송되고 traceroute 프로그램은 처음 라우터의 IP주소와 메시지의 데이터 영역에서 라우터 이름을 검색할 수 있다.
8. 두 번째 traceroute 메시지는 TTL 값이 2로 설정되어 전달된다.
9. ...
10. 네 번째 메시지는 목적지 주소에 전달된다. 목적지 호스트는 UDP 사용자 데이터그램에서 특정한 포트번호를 찾을 수 없어 메시지를 폐기한다. ICMP는 포트번호를 찾을 수 없다는 코드 3을 가진 목적지 접근 부가 메시지를 전송한다.
11. 다른 ICMP 메시지를 전송받은 후, traceroute 프로그램은 최종 목적지에 도착했다는 것을 알 수 있다.
12. 최종 목적지의 이름과 IP 주소를 찾기 위해 전달받은 메시지에서 정보를 사용한다.
ICMP Checksum
ICMP에서 체크섬은 전체 메시지 (헤더 및 데이터)에 대해 계산됩니다.
그림 19.11은 간단한 에코 요청 메시지에 대한 체크섬 계산의 예를 보여줍니다.
식별자를 1로, 시퀀스 번호를 9로 무작위로 선택했습니다. 메시지는 16 비트 (2 바이트) 단어로 나뉩니다.
단어가 추가되고 합계가 보완됩니다.
이제 발신자가이 값을 체크섬 필드에 넣을 수 있습니다.