ICMP의 기본 개념
1. ICMP의 역할:
• ICMP는 호스트와 라우터가 네트워크 계층 정보를 서로 교환하기 위해 사용된다.
• 주로 에러 보고와 진단 목적으로 사용된다.
• 예: HTTP 요청 중 “Destination Host Unreachable” 오류 메시지가 발생했을 때, 이 메시지는 ICMP를 통해 전달된다.
2. ICMP의 작동 방식:
• ICMP 메시지는 IP 데이터그램 내에서 **페이로드(payload)**로 캡슐화되어 전송된다.
• ICMP는 IP 프로토콜 상단에서 작동하며, TCP나 UDP와 동일한 방식으로 동작한다.
ICMP 메시지의 구조
ICMP 메시지는 두 가지 주요 필드를 포함한다:
1. Type 필드: 메시지의 종류를 나타낸다.
2. Code 필드: 같은 타입 내에서 메시지의 세부 정보를 제공.
또한, ICMP 메시지는 오류가 발생한 원래 IP 데이터그램의 처음 8바이트를 포함하여, 오류를 일으킨 데이터그램을 식별할 수 있도록 한다.
주요 ICMP 메시지 타입 (Figure 5.19 참조)
1. Echo Request (Type 8, Code 0):
• ping 명령에서 사용된다.
• 요청이 전송되면, 대상 호스트는 Echo Reply(Type 0, Code 0)를 반환.
2. Destination Unreachable (Type 3):
• 데이터그램을 전달할 수 없는 경우 사용.
• 예:
• Code 0: 네트워크에 도달할 수 없음.
• Code 1: 호스트에 도달할 수 없음.
• Code 3: 포트에 도달할 수 없음.
3. Source Quench (Type 4):
• 혼잡 제어를 위한 메시지.
• 현재는 TCP의 혼잡 제어 메커니즘으로 대체되어 거의 사용되지 않는다.
4. Time Exceeded (Type 11):
• 데이터그램의 TTL(Time-to-Live)이 0이 되었을 때 사용.
• Traceroute 프로그램에서 사용.
5. Router Advertisement (Type 9) 및 Router Solicitation (Type 10):
• 호스트가 라우터를 찾거나, 라우터가 자신을 광고하는 데 사용.
ICMP의 실제 사용 사례
1. Ping:
• 네트워크 연결 상태를 확인하기 위한 도구.
• Echo Request를 보내고, Echo Reply를 받는 방식으로 동작.
2. Traceroute:
• 출발지와 목적지 간 라우터의 경로를 추적.
• TTL(Time-to-Live) 필드를 조정하여, 경유하는 각 라우터의 IP 주소와 RTT(Round-Trip Time)를 기록.
Traceroute의 작동 원리
1. 출발지 호스트는 TTL 값이 1인 패킷을 전송.
• 첫 번째 라우터는 TTL 값이 0이 되면, “Time Exceeded” 메시지를 반환.
2. 출발지 호스트는 TTL 값을 1씩 증가시키며 계속 패킷을 전송.
• 각 라우터에서 동일한 방식으로 Time Exceeded 메시지가 반환.
3. 목적지에 도달하면, “Port Unreachable” 메시지가 반환되어 추적이 종료.
ICMPv6의 추가 기능
IPv6에서는 ICMPv6가 사용되며, 다음과 같은 새로운 기능이 추가되었다:
• Packet Too Big: 데이터그램이 경유하는 링크의 MTU를 초과할 때 사용.
• Unrecognized IPv6 Options: 지원되지 않는 옵션을 처리할 때 사용.
ICMP는 네트워크의 문제를 진단하고 경로를 탐색하는 데 중요한 역할을 한다.
'Book > COMPUTER NETWORKING A TOP-DOWN-APPROACH' 카테고리의 다른 글
5.8 Summary (0) | 2024.12.03 |
---|---|
5.7 Network Management and SNMP,NETCONF/YANG (0) | 2024.12.03 |
5.5 The SDN Control Plane (1) | 2024.12.03 |
5.4 Routing Among the ISPs: BGP (1) | 2024.12.03 |
5.3 Intra-AS Routing in the Internet:OSPF (0) | 2024.12.03 |