ICMP (Internet Control Messege Protocol)
ICMP란 인터넷 프로토콜의 주요 프로토콜 중 하나로서, 통신의 연결성을 확인하고 에러 메시지를 받을 때 사용되는 프로토콜이다. 4계층의 TCP/UDP와는 다르게 데이터를 주고받을 때나 사용자 어플리케이션을 위해 사용되지 않는다.
신뢰성이 없는 IP프로토콜을 대신하여 연결성을 확인하는데 사용하고, 문제가 생긴 구간의 원인을 파악하기 위해 에러 메시지를 체크하기 위해 사용하기도 한다. 또한 패킷이 전달되는 경로를 추적하여 라우팅 경로를 확인하는 용도로 사용할 수 있다.
ICMP 구조
Type |
ICMP type (Control messages 참조) |
Code |
ICMP subtype을 나타냄 (Control messages 참조) |
Checksum |
헤더와 데이터를 계산하여 데이터의 에러를 체크. |
Rest of Header |
ICMP type과 code를 바탕으로 분류된 컨텐츠 |
Data |
IPv4헤더의 전반적인 부분을 담은 ICMP 에러 메시지 데이터와 에러를 발생시킨 IPv4 패킷 데이터의 첫 8byte |
Control messages
Type |
Code |
Description |
0 – Echo Reply |
0 |
Echo reply (used to ping) |
1 and 2 |
|
Reserved |
3 – Destination Unreachable |
0 |
Destination network unreachable |
|
1 |
Destination host unreachable |
|
2 |
Destination protocol unreachable |
|
3 |
Destination port unreachable |
|
4 |
Fragmentation required, and DF flag set |
|
5 |
Source route failed |
|
6 |
Destination network unknown |
|
7 |
Destination host unknown |
|
8 |
Source host isolated |
|
9 |
Network administratively prohibited |
|
10 |
Host administratively prohibited |
|
11 |
Network unreachable for TOS |
|
12 |
Host unreachable for TOS |
|
13 |
Communication administratively prohibited |
|
14 |
Host Precedence Violation |
|
15 |
Precedence cutoff in effect |
4 – Source Quench |
0 |
Source quench (congestion control) |
5 – Redirect Message |
0 |
Redirect Datagram for the Network |
|
1 |
Redirect Datagram for the Host |
|
2 |
Redirect Datagram for the TOS & network |
|
3 |
Redirect Datagram for the TOS & host |
6 |
|
Alternate Host Address |
7 |
|
Reserved |
8 – Echo Request |
0 |
Echo request (used to ping) |
9 – Router Advertisement |
0 |
Router Advertisement |
10 – Router Solicitation |
0 |
Router discovery/selection/solicitation |
11 – Time Exceeded |
0 |
TTL expired in transit |
|
1 |
Fragment reassembly time exceeded |
12 – Parameter Problem: Bad IP header |
0 |
Pointer indicates the error |
|
1 |
Missing a required option |
|
2 |
Bad length |
13 – Timestamp |
0 |
Timestamp |
14 – Timestamp Reply |
0 |
Timestamp reply |
15 – Information Request |
0 |
Information Request |
16 – Information Reply |
0 |
Information Reply |
17 – Address Mask Request |
0 |
Address Mask Request |
18 – Address Mask Reply |
0 |
Address Mask Reply |
19 |
|
Reserved for security |
20 through 29 |
|
Reserved for robustness experiment |
30 – Traceroute |
0 |
Information Request |
31 |
|
Datagram Conversion Error |
32 |
|
Mobile Host Redirect |
33 |
|
Where-Are-You (originally meant for IPv6) |
34 |
|
Here-I-Am (originally meant for IPv6) |
35 |
|
Mobile Registration Request |
36 |
|
Mobile Registration Reply |
37 |
|
Domain Name Request |
38 |
|
Domain Name Reply |
39 |
|
SKIP Algorithm Discovery Protocol, Simple Key-Management for Internet Protocol |
40 |
|
Photuris, Security failures |
41 |
|
ICMP for experimental mobility protocols such as Seamoby [RFC4065] |
42 through 255 |
|
Reserved |
출처: <http://en.wikipedia.org/wiki/Internet_Control_Message_Protocol>
'[Network] Beginner' 카테고리의 다른 글
4계층(Transport) 세부설명 (8) | 2019.08.20 |
---|---|
ARP (주소결정프로토콜) (5) | 2014.08.07 |
Wildcard-Mask (와일드카드 마스크) (6) | 2014.07.26 |
서브넷팅 (Subnetting) (5) | 2014.07.22 |
Subnet-Mask (서브넷 마스크) (0) | 2014.07.21 |