인터넷 제어 메시지 프로토콜이에요. IP 통신은 목적지에 패킷을 전달하는 방법은 있어요. 하지만 에러가 발생 시 처리가 불가능해요.
그래서 나온게 ICMP
에요. ICMP
는 IP 통신 에러 상황을 출발지로부터 전달하고 메시지를 제어하는 역할을 해요.
ICMP
는 IP 패킷에 포함되어 있어요.
구조별 설명
1. Type :ICMP
메시지 종류
2. Code : 메시지Type
별 세부 코드 정보
3. Checksum :ICMP
헤더 손상 여부를 확인해요
Type
은 0~254까지 정의되어 있어요. 주로 쓰이는 Type
은 오류 보고
나 정보성
으로 나뉘어요.
0
, 8
, 9
, 10
3
, 5
, 11
, 12
대표적인 메시지를 설명드리자면, 8
, 0
은 Echo Request & Reply에요. 네트워크 문제를 진단할 때 사용하고, 출발지에서 목적지 IP로 ICMP Echo Request
메시지를 보내면 목적지는 ICMP Echo Request
로 응답해요. 목적지 도달 여부는 RTT(Round-trip Delay Time)
, Hop Count
로 확인해요. cmd
에서 ping {IP}
를 치면 볼 수 있는 내용이에요.
그리고 9
, 10
은 라우터 광고Broadcast
및 정보를 요청하는 메시지에요. 자신이 라우터임을 응답하면서 네트워크를 진입할 때 정보를 요청해요. 구조는 아래와 같아요(참고로 맨 아래가 오타인데 10
, 라우터 정보 요청 메시지에요.
그 다음으로 설명드릴 것은 오류 보고
에요.
3
- Destination Unreachable : 라우터가 IP패킷을 라우팅하지 못하는 경우에요.
5
- Redirect : 로컬 네트워크에 2개 이상의 경로가 있으면 더 좋은 경로를 알려주는 경우에요.
그리고 상세 정보를 Code
를 통해 알 수 있어요.
3
,5
Code 목록
0
: Net Unreachable1
: Host Unreachable2
: Protocol Unreachable3
: Port Unreachable4
: Fragmentation Needed and DF set5
: Source Route Failed
11
- Time Exceeded : 시간 초과로 TTL
값이 0이 되면 출발지에 시간이 초과되었음을 알려요.
11
Code 목록
0
: Time to LiveTTL
Exceeded1
: Framentation Reassembly Time Exceed, 나머지 fragment가 오기 전에TTL
이 만료된 경우에요IP Fragmentation
IP 패킷을 작은 패킷으로 나눠 전송하고 목적지에서 재조합Maximum Transimission Unit
MTU
IP 패킷을 전송할 수 있는 최대 크기
12
- Parameter Problem : IP 옵션을 잘못 사용하여 라우터에서 패킷이 폐기된 경우에요.