인터넷 제어 메시지 프로토콜

위키백과, 우리 모두의 백과사전.
이동: 둘러보기, 검색
OSI/IP 모형
7. 응용 계층
NNTP  · SIP  · SSI  · DNS  · FTP  · 고퍼  · HTTP  · NFS  · NTP  · SMPP  · SMTP  · DHCP  · SNMP  · 텔넷  · (더 보기)
6. 표현 계층
MIME  · XDR  · TLS  · SSL
5. 세션 계층
지명 파이프  · NetBIOS  · SAP  · SIP
4. 전송 계층
TCP  · UDP  · SCTP  · DCCP
3. 네트워크 계층
IP  · ICMP  · IPsec  · IGMP  · IPX  · 애플토크
2. 데이터 링크 계층
ARP  · CSLIP  · SLIP  · 이더넷  · 프레임 릴레이  · ITU-T G.hn DLL  · L2TP  · PPP  · PPTP
1. 물리 계층

RS-232  · RS-449  · RS-485  · V.35  · V.34  · I.430  ·

I.431  · T1  · E1  · POTS  · SONET/SDH  · OTN  · DSL  · 802.11a/b/g/n PHY  · ITU-T G.hn PHY  · 이더넷  · USB  · 블루투스

v  d  e  h

ICMP(Internet Control Message Protocol, 인터넷 제어 메시지 프로토콜)는 인터넷 프로토콜 스위트에 기록된 주요 프로토콜 가운데 하나이다. 네트워크 컴퓨터 위에서 돌아가는 운영체제에서 오류 메시지(Requested service is not available 등)를 전송받는 데 주로 쓰이며 인터넷 프로토콜의 주요 구성원 중 하나로 인터넷 프로토콜에 의존하여 작업을 수행한다. 프로토콜 번호 1로 할당되고 시스템 사이에 데이터를 교환하지 않거나 최종 사용자에 적용되지 않는다는 점에서 TCPUDP와는 다르다.(ping 이나 traceroute 같은 몇몇 진단 프로그램 제외) 인터넷 프로토콜 버전 4(IPv4) 용 ICMP는 ICMPv4로 알려져 있고, 유사하게 IPv6용은 ICMPv6이다.

상세 기술 정보[편집]

인터넷 제어 메시지 프로토콜은 RFC 792에서 정의한 인터넷 프로토콜 모음 중에 하나이다. ICMP 메시지들은 일반적으로 IP 동작(RFC 1122에 규정)에서 진단이나 제어로 사용되거나 오류에 대한 응답으로 만들어진다. ICMP 오류들은 원래 패킷의 소스 IP 주소로 보내지게 된다.

예를 들어, IP 데이터그램을 전달하는 모든 기기(중간 라우터 같은)는 맨 처음 IP 헤더에서 타임 투 리브(Time to Live, TTL)을 '1'만큼 감소시킨다. 만약 TTL이 '0'이면 패킷은 버려지고, ICMP TTL 초과 메시지가 데이터그램의 원래 IP 주소로 보내진다.

비록 ICMP 메시지는 표준 IP 패킷에 포함되지만, 일반적인 IP 처리와는 구분되어 특별한 경우로 처리된다. 많은 경우, ICMP 메시지의 내용을 검사하고 ICMP 메시지 전송을 유발하는 IP 패킷을 만들어내는 응용 프로그램으로 적당한 오류 메시지를 전달하는 것이 필요하다.

일반적으로 네트워크 유틸리티에서 사용되는 많은 것들이 ICMP 메시지에 기반을 두고있다. 트레이스라우트(traceroute) 명령어는 특별하게 만들어진 IP TTL 헤더 필드들을 가진 IP 데이터그램을 전송하고, 응답에서 ICMP TTL 초과 메시지와 "목적지에 닿을 수 없음(Destination unreachable)" 메시지가 생성되었는지 찾는다. 이와 유사한 (ping) 유틸리티는 ICMP "에코 요청(Echo request)"과 "에코 응답(Echo reply)" 메시지를 사용해 구현할 수 있다.

ICMP 부분 구조[편집]

ICMP 헤더는 IPv4 헤더 뒤에서 시작되고 IP 프로토콜 번호 '1'로 분류된다. 모든 ICMP 패킷은 8 바이트 헤더와 가변 데이터 구역을 가지고 있다. 마지막 4 바이트는 ICMP 패킷의 타입과 코드에 의존하지만, 처음 4 바이트는 고정된 형식을 가진다.

ICMP 헤더 형식
옵셋 옥텟 0 1 2 3
옥텟 비트 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
0 0 타입 코드 검사 합계
4 32 나머지 헤더
타입
ICMP 타입, 제어 메시지 참조.
코드
ICMP 서브 타입, 제어 메시지 참조.
검사 합계
ICMP 헤더와 데이터로부터 계산되는 오류 검사 데이터, 이 필드는 0으로 대치됨. 인터넷 검사 합계는 RFC 1071에 규정된 방식으로 사용된다.
나머지 헤더
ICMP 타입과 코드에 따라 내용이 변경되는 네 바이트 필드