RFC 777 - Inetnet Control Message Protocol 요약정리 메세지 방식 ICMP는 기본 IP 헤더를 이용하여 전송된다. 첫번째 옥텟은 ICMP의 타입을 나타낸다. 이 타입의 값은 나머지 필드의 내용을 결정짓는다. 어떤 필드들은 'unused' 라고 표시되기도 한다. 이는 미래를 위해 예약된 필드이며 패킷을 발송할 때 '0'으로 셋팅한 후 발송해야 한다. 하지만 수신받는 쪽에서는 이를 해석하지 않는다. ICMP를 나타내는 IP 데이터그램 형식. - Protocol 섹션이 ICMP(1) 로 설정되어 있는 것을 볼 수 있다. Version : 4 IHL : Internet header length in 32-bit words. Type of Service : 0 Total Length : Length of internet header and data in octets. Identification, Flags, Fragment Offset Time to Live Protocol : ICMP = 1 Header Checksum Source Address Destination Address ================================================================================= * Destination Unreachable Message 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Code | unused | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Internet Header + 64 bits of Original Data Datagram | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ IP Fields : Destination Address (원본 데이터그램 데이터의 출발지 네트워크 와 주소를 나타낸다.) ICMP Fields : Type : 3 Code 0 = 네트워크에 도달불가. 1 = 호스트에 도달불가. 2 = 프로토콜 도달불가. (상위 프로토콜(TCP, UDP)에 데이터 전송 불가) 3 = 포트 도달불가. Internet Header + 64 bits of Data Datagram Internet header 와 원본 데이터그램 데이터의 64비를 포한한다. 이는 호스트에서 어떤 패킷에 대한 ICMP 메시지임을 확인하게 해준다. ================================================================================= * Time Exceeded Message 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Code | unused | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Internet Header + 64 bits of Original Data Datagram | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ IP Fields : Destination Address (원본 데이터그램 데이터의 출발지 네트워크 와 주소를 나타낸다.) ICMP Fields : Type : 11 Code 0 = 전송시 Time to live 초과. 1 = 단편화 재조립 시간 초과. Internet Header + 64 bits of Data Datagram Internet header 와 원본 데이터그램 데이터의 64비를 포한한다. 이는 호스트에서 어떤 패킷에 대한 ICMP 메시지임을 확인하게 해준다. ================================================================================= * Parameter Problem Message 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Code | Parameter | unused | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Internet Header + 64 bits of Original Data Datagram | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ IP Fields : Destination Address (원본 데이터그램 데이터의 출발지 네트워크 와 주소를 나타낸다.) ICMP Fields : Type : 12 Code 0 = 옵션 문제 Parameter code 가 0 이라면 헤더 필드의 문제이다. Internet Header + 64 bits of Data Datagram Internet header 와 원본 데이터그램 데이터의 64비를 포한한다. 이는 호스트에서 어떤 패킷에 대한 ICMP 메시지임을 확인하게 해준다. ================================================================================= * Source Quench Message 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | unused | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Internet Header + 64 bits of Original Data Datagram | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ IP Fields : Destination Address (원본 데이터그램 데이터의 출발지 네트워크 와 주소를 나타낸다.) ICMP Fields : Type : 4 ================================================================================= * Redirect Message 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Code | unused | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Gateway Internet Address | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Internet Header + 64 bits of Original Data Datagram | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ IP Fields : Destination Address (원본 데이터그램 데이터의 출발지 네트워크 와 주소를 나타낸다.) ICMP Fields : Type : 5 Code 0 = 네트워크 지정 경로를 위한 재지정 1 = 호스트 지정 경로를 위한 재지정 2 = 특정한 서비스 유형에 기초한 네트워크 지정 경로를 위한 재지정 3 = 특정한 서비스 유형에 기초한 호스트 지정 경로를 위한 재지정 Gateway Internet Address : 이 메시지를 발송한 게이트웨이의 주소를 포함한다. ================================================================================= * Echo or Echo Reply Message 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | unused | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Data ... +-+-+-+-+- IP Fields : Destination Address (원본 데이터그램 데이터의 출발지 네트워크 와 주소를 나타낸다.) ICMP Fields : Type 8 : 에코 메시지 0 : 에코 응답 메시지 ================================================================================= * Timestamp or Timestamp Reply Message 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | unused | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Originate Timestamp | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Receive Timestamp | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Transmit Timestamp | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ IP Fields : Destination Address (원본 데이터그램 데이터의 출발지 네트워크 와 주소를 나타낸다.) ICMP Fields : Type 13 : 타임스탬프 메시지 14 : 타임스탬프 응답 메시지 ================================================================================= * Summary of Message Types 0 Echo Reply 3 Destination Unreachable 4 Source Quench 5 Redirect 8 Echo 11 Time Exceeded 12 Parameter Problem 13 Timestamp 14 Timestamp Reply