반응형

ICMP(Internet Control Message Protocol)

통신흐름의 제어 역할을 하는 중요한 프로토콜. Router가 경로 설정을 할 수 없는 경우, Data를 전달할 수 없는 상황이 발생했을 경우, Router는 네트워크상의 문제를 피하거나 복구하도록 Source host에게 ICMP를 이용하여 통보한다. ICMP는 오류를 보고할 뿐이지 해결하지는 않는다.

ICMP의 역할

반향

IP노드의 진단도구

목적지 미도착

목적지 IP노드에 도착하지 않았다는 것을 나타내기위해 사용

출발지 억제

출발지 집중문제를 나타내기 위해 사용

재지정

대체 경로를 알리기 위해 라우터에 사용

시간초과

IP header TTL field 값의 만료를 나타내기 위해 사용

매개변수 문제

IP datagram 문제를 나타내기 위해 사용

타임 스탬프

인터넷에서 시간을 재기 위해 사용

주소 마스크

네트워크의 서브넷 마스크 정보를 입수하기 위해 사용

상황에 따른 ICMP의 패킷 구조도

① ICMP 기본형식

type, code값은 message구별을 나타낸다.

IP header

20 bytes

ICMP message

n bytes

IP header

20 bytes

type

1 byte

code

1 byte

checksum

2 bytes

type과 코드에 관련된 내용들

m types

IP datagram

checksum은 ICMP message에 대한 확인 값이다. Message는 Type과 Code와 관련이 있는 내용이 들어간다. 다음은 위의 타입에 대한 내용이다.

IP header

20 bytes

code(0-15)

1 byte

checksum

2 bytes

unused (must be 0)

4 bytes

IP header + fist 64 bits of original IP datagram data

② 목적지 미도착 메시지 포맷

Type값은 오류의 원인, Code는 구체적 이유를 말한다.

기본값의 설명은 아래표와 같다.

Type

ICMP message

Type

ICMP message

0

반향 응답

13

타임 스탬프 요청

3

목적지 미도착

14

타임 스탬프 응답

4

출발지 억제

15

정보 요청

5

재지정

16

정보 응답

8

반향 응답

17

주소 마스크 요청

11

시간 초과

18

주소 마스크 응답

12

비지능적 매게 변수(IP)

Code

설 명

0

IP 목적지 주소에 지정된 네트워크가 없을 때(라우터에서만 생성, 경로 설정 실패)

1

데이터그램이 라우터에서는 성공적으로 전달되었지만 마지막 라우터가 호스트와 통신 불가

(발생이유: 호스트 종료, 구성 오류, IP 설정 오류(목적지 네트워크에 직접 연결하는 라우터 에서 발생)

2

데이터그램이 목적지 호스트에 도착했지만 IP 데이터그램이 운반하고 IP 헤더의 프로토콜 필드로 식별된 상위 프로토콜을 사용할 수 없다는 뜻. TCP/IP 호스트에서 구현되는 공통의 상위 프로토콜은 TCP, UDP, OSPF임, IP header의 프로토콜 ID를 이용해 사용가능 여부 를 확인하여 문제를 해결할 수 있다.

3

지정된 전송 계층 프로토콜(TCP, UDP)이 데이터그램을 개별화할 수 없고 송신자에게 알 릴 수 있는 다른 프로토콜 매커니즘을 가지고 있지 않을 경우 생성(예: 서버의 데몬 등)

4

네트워크 인터페이스의 MTU size가 datagram의 크기보다 작기 때문에 datagram을 발생 해야 하는 라우터가 생성. 그러나 datagram header에 DF flag가 1로 설정되면 라우터는 datagram DF할 수 없다. DF flag는 TFTP파일 전송을 수행하는 디스크가 없는 WS의 시 스템 부트 메시지 다운로드를 위해 1로 설정

5

IP 출발지 경로 옵션을 사용하는 IP datagram에 대해 라우터에서 생성, 라우터는 datagram 삭제

6

라우터가 경로 설정표에서 목적지 네트워크를 알 수 없다는 것을 탐지했을 때 생성

7

라우터가 네트워크 인터페이스에 있는 데이터 링크층 소프트웨어를 통해 목적지 호스트가 없다는 것을 탐지했을 때 라우터에서 생성

8

라우터가 나머지 네트워크에서 호스트가 격리된 것을 탐지하면 생성, RFC1812에서 사용 못하도록 함

9

목적지 네트워크와의 통신이 관리상 금지됨

10

목적지 호스트와의 통신이 관리상 금지됨

11

라우터에서 경로 설정 테이블의 경로가 요청한 ToS값 또는 기본 ToS와 일치할 수 없기 때문에 datagram을 발송할 수 없을 경우 생성

12

목적지 호스트에 도달할 수 없을 경우(Code 11과 유사)

13

통신 방화벽 때문에 관리상 금지됨

14

호스트 우선권 위반(송신자 호스트에 대한 첫 번째 홉 라우터가 생성)

15

우선권 효력이 차단됨(라우터에서 우선권을 낮게 보낸 datagram을 삭제하고 송신자에게 보낸 MSG)

③ Time Exceeded Message

type(11)

1 byte

code(0/1)

1 byte

checksum

2 bytes

unused (must be 0)

4 bytes

IP header + fist 64bits of original IP datagram data

시간 초과를 나타내는 값 11일 tpye의 값이다. 그리고 전송 중간에 TTL 값이 0이 되면 code값은 0이 되고, 재조합 과정중에 0이 되면 TTL 값은 1이 된다.

④ Source Quench Message

중간에 있는 router의 buffer가 꽉차서 더 이상 자료를 받을 수 없을 때 자료를 보내는 source host에 보내는 메시지이다.

type(4)

1 byte

code(0)

1 byte

checksum

2 bytes

unused (must be 0)

4 bytes

IP header + fist 64bits of original IP datagram data

type에는 출발지에게 더 이상 메시지를 보내지 말라는 4값이 들어간다. 경로 설정이 잘못되었으니 경로 설정의 변경을 요청하는 값 0이 code값으로 들어간다.

⑤ Redirection Message

type(5)

1 byte

code(0-3)

1 byte

checksum

2 bytes

unused (must be 0)

4 bytes

IP header + fist 64bits of original IP datagram data

재지정 값 5가 type의 값으로 설정되고, 대상이 네트워크일 경우 Code는 0, 호스트일 경우 1, 서비스와 네트워크일 경우 2, 서비스와 호스트일 경우 3의 값이 들어간다.

⑥ Echo Request and Echo Reply Message

type(0/8)

1 byte

code(0)

1 byte

checksum

2 bytes

identifier

2 bytes

sequence number

2 bytes

optional data

ping 명령어에 사용한다. ping에 대한 응답을 할 때는 type값이 0이고, ping을 요청할 시에는 1이 type 값으로 들어간다. 이때 code값은 0이다. 

 
반응형

'Network' 카테고리의 다른 글

IMS (IP Multimedia Subsystem)  (0) 2008.04.30
OSI 7 Layer - 1 계층 (Physical layer)  (0) 2008.04.28
Baseband, Narrowband, Broadband  (0) 2008.04.28
TCP 헤더 구조  (0) 2008.04.28
UDP 헤더 구조  (0) 2008.04.28

+ Recent posts