네트워크 및 보안/TCPIP 프로토콜

ICMPv4

언제나휴일 2015. 2. 2. 17:36
반응형

ICMPv4



ICMP(Internet Control Message Protocol)IP 프로토콜의 오류 보고와 수정 및 호스트나 라우터의 동작 여부를 확인하기 위한 프로토콜이다. IP 패킷이 만기되어(TTL 필드가 0) 목적지에 도착하지 못할 때 라우터는 발신지에게 ICMP를 보낸다. 또한 단편화 패킷이 주어진 시간안에 도착하지 못하면 목적지에서는 발신지에게 ICMP를 보낸다. 이 외에도 목적지의 호스트의 동작 여부나 경로를 확인할 때도 ICMP를 이용한다.

참고: RFC 792, http://tools.ietf.org/html/rfc792


프로토콜 스택

0~7

8~15

16~23

24~31

Type(8)

Code(8)

Checksum(16)

Rest of header(가변)

Data(가변)

 

참고: 위키백과, http://en.wikipedia.org/wiki/Internet_Control_Message_Protocol

Type

Code

설명

0

0

Echo reply(Type 8, Echo request)

1,2

 

Reserved

3

0

Destination network unreachable

1

Destination host unreachable

2

Destination protocol unreachable

3

Destination port unreachable

4

Fragmentation required

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

0

Source quench(혼잡 제어)

5

0

Redirect Datagram for the Network

1

Redirect Datagram for the Host

2

Redirect Datagram for the TOS and Network

3

Redirect Datagram for the TOS and Host

6

 

Alternate Host Address

7

 

Reserved

8

0

Echo request(Type 0, Echo reply)

9

0

Router Advertisement

10

0

Router discovery/selection/solicitation

11

0

TTL expired in transmit

1

Fragment reassembly time exceeded

12

0

Parameter Problem(Pointer indicates the error)

1

Parameter Problem(Missing a required option)

2

Parameter Problem(Bad length)

13

0

Timestamp

14

0

Timestamp reply

15

0

Information request

16

0

Information reply

17

0

Address Mask request

18

0

Address Mask reply

19

 

Reserved for security

20~29

 

Reserved for robustness experiment

30

0

Traceroute(Information request)

31

 

Datagram Conversion Error

32

 

Mobile Host Redirect

33

 

Where are you(IPv6)

34

 

Here I Am(IPv6)

35

 

Mobile Registration request

36

 

Mobile Registration reply

37

 

Domain Name request

38

 

Domain Name reply

39

 

SKIP Alogorithm Discovery Protocol

40

 

Photuris, Security failures

41

 

ICMP for experimental mobility protocols such as Seamoby

42~255

 

Reserved

'

Echo request(Type 8)/ reply(Type 0)

  code는 항상 0이어야 함

  Rest of the header id(16), seq(16)

  id는 한 쌍의 requestreply에 값이 같음

  Data Section에는 추가적인 데이터(메시지)

Timestamp(Type 13), Timestamp reply(Type 14)

  code는 항상 0이어야 함

  Rest of the header id(16), seq(16)

  Data Section에는 요청 시간(32), 수신 시간(32), 전송 시간(32)

  Timestamp에는 요청 시간을 설정하여 보낸다.

  Timestamp reply에는 수신한 시간을 채운다. 응답 메시지 출발 시점을 전송시간에 채운다.

Destination unreacable(Type 3)

  code0~15를 사용한다.

  0 – 하드웨어 고장 등의 이유

  1 – 호스트에 도달할 수 없음(하드웨어 고장일 수 있다.)

  2 – 프로토콜에 도달할 수 없음(목적지 호스트가 생성)

  3 – 포트에 도달할 수 없음(목적지 호스트가 생성)

  4 – 단편화가 필요하지만 datagram DF 필드가 설정되어 있을 때

  5 – 발신지 라우팅을 수행할 수 없음

  6 – 목적지 네트워크가 알려져 있지 않음(라우터의 정보 부재)

  7 – 목적지 호스트가 알려져 있지 않다.(존재하지만 라우터가 목적지호스트를 모름)

  8 – 발신지 호스트가 고립

  9 – 목적지 네트워크와 통신이 관리상의 이유로 금지

  10 – 목적지 호스트와 통신이 관리상의 이유로 금지

  11 – 명시한 서비스 유형에 대해 네트워크에 도달할 수 없음

  12 – 명시한 서비스 유형에 대해 호스트에 도달할 수 없음

  13 – 관리자가 필터를 설치하여 호스트에 도달할 수 없음

  14 – 호스트 우선순위를 위반하여 호스트에 도달할 수 없음

  15 – 우선순위에 밀려 호스트에 도달할 수 없음

  Rest of the header는 모두 0

  Data Section에는 받은 IP 헤더와 datagram 8바이트

Source quench(Type 4)

  code는 항상 0

  Rest of the header는 모두 0

  Data Section에는 받은 IP 헤더와 datagram 8바이트

Redirection(Type 5)

  code0~3

  0 - 네트워크 지정 경로를 위한 재지정

  1 - 호스트 지정 경로를 위한 재지정

  2 - 특정한 서비스 유형에 기초한 네트워크 지정 경로를 위한 재지정

  3 - 특정한 서비스 유형에 기초한 호스트 지정 경로를 위한 재지정

  Rest of the header는 타겟 라우터 IP 주소

  Data Section에는 받은 IP 헤더와 datagram 8바이트

Router Advertisement(Type 9)  , 자신이 라우터라고 알리는 것

   Rest of the headerAdvertisement count(8), Address Entry size(8), Lifetime(16)

   Advertisement count - Router 정보 개수

   Address Entry size - 각 라우터 주소의 정보 개수(단위 4바이트), 일반적으로 2

   Lifetime - 유효 시간

   Data Section에는 Router 주소 구조체(라우터 주소 4바이트, 우선순위 레벨 4바이트)  

Router Solicitation(Type 10) , 누가 라우터인지 묻는 것

   code는 항상 0,

   Rest of the header는 모두 0으로 채움

Time exceeded(Type 11)

  code 0 - TTL0이 되었음

  code 1 - 단편화의 일부가 도착하지 않음

  Rest of the header는 항상 0

  Data Section에는 받은 IP 헤더와 datagram 8바이트

Parameter Problem(Type 12)

  code 0~2

  0 - 헤더 필더 중에서 명확하지 않은 것이 있거나 빠진 것이 있다.

  Rest of the header의 첫 번째 바이트는 해당 필드(바이트 오프셋)를 가리킴

  1 - 옵션의 일부가 필요하지만 빠졌다. 이 때는 어디가 잘못 되었는지 알려주지 않음

  2 - Length가 이상함

  나머지 Rest of the header는 항상 0

  Data Section에는 받은 IP 헤더와 datagram 8바이트

 


다른 네트워크 프로토콜

[프로그래밍 기술/TCPIP 프로토콜] - ethernet

[프로그래밍 기술/TCPIP 프로토콜] - ARP(Address Resolution Protocol)

[프로그래밍 기술/TCPIP 프로토콜] - IPv4

[프로그래밍 기술/TCPIP 프로토콜] - TCP(Transmission Control Protocol,RFC 675, RFC 793)

[프로그래밍 기술/TCPIP 프로토콜] - UDP(User Datagram Protocol, RFC 768)

[프로그래밍 기술/TCPIP 프로토콜] - DNS(Domain Name System, RFC 1034)

[프로그래밍 기술/TCPIP 프로토콜] - DHCP(Dynamic Host Configuration Protocol)

반응형

'네트워크 및 보안 > TCPIP 프로토콜' 카테고리의 다른 글

DNS(Domain Name System, RFC 1034)  (0) 2015.02.03
DHCP(Dynamic Host Configuration Protocol)  (0) 2015.02.02
TCP(Transmission Control Protocol,RFC 675, RFC 793)  (0) 2015.02.02
UDP(User Datagram Protocol, RFC 768)  (0) 2015.02.02
ARP(Address Resolution Protocol)  (0) 2015.02.02
IPv4  (0) 2015.02.02
ethernet  (0) 2015.02.02