ICMP(Internet Control Message Protocol)
- 노드간 에러사항이나 통신제어를 위한 메시지 보고에 사용한다.
- 장애나 목적지 시스템이 제대로 응답하여 동작하고 있는지 판단한다.
- 문제가 발생하면 라우터에 의해 ICMP 메시지가 자동으로 발생하여 패킷 송신 호스트에게 전달된다.
- 오류만 보고할뿐 오류를 해결하지는 못한다.
- TCP/UDP헤더가 필요하지않고, IP헤더와 IP데이터 부분에 ICMP 메시지를 포함하여 패킷을 전송한다.
- Ping, 라우팅 경로 변경에 사용한다.
[ICMP 헤더]
Type (8 bit) | Code (8 bit) | Checksum |
Message (가변길이) |
① Type
- 어떤 종류의 ICMP 메세지인지를 정의한다.
Type |
메시지 종류 |
0 |
Echo Reply |
3 |
Destination Unreachable |
4 |
Source Quench |
5 |
Redirect |
8 |
Echo Request |
11 |
Time Exceeded |
② Code
- 타입필드의 옵션을 정의한다.
<type3 : Destination Unreachable(경로상의 제일 마지막 라우터는 출발지 시스템에게 목적지에 도달할 수 없다는 메시지를 전송)>
Code | 설명 |
0 | Network Unreachable |
1 | Host Unreachable |
2 | Protocol Unreachable |
3 | Port Unreachable |
4 | Fragmentation needed |
③ Checksum
- ICMP 패킷이 변조나 수정없이 도착되었음을 보장한다.
④ Message
-Type, Code에 따라 달라진다.
[ICMP 패킷 분석]
- Sequence number로 request와 reply의 쌍을 확인할 수 있다.