R's Hacking Daily Log

ICMP 본문

Daily-Note

ICMP

hanhxx 2023. 4. 1. 16:19

ICMP :: Internet control Message Protocol

흔히 말하는 IP, Internet protocol에서는 질의응답, 오류제어, 수정, packet 전달 보장 등의 기능을 수행하지 않는다. 

Transport 계층에서는 신뢰 기반의 전송을 한다고 하지만 사실상 packet이 오고 가는 Network 계층에서는 "Best Effort" 방식을 실행한다. 

 

 

*Best Effort = 말 그대로 열심히 보내기만 할 뿐..

패킷이 제대로 전달되어 있는지, 전달 과정에서 문제가 발생했는지 등의 역할은 수행하지 않는 것.

 

 

그렇기 때문에 열심히 전달만 하는 IP를 위해 ICMP가 보조적인 역할을 수행해준다.

크게 나누어보자면 두 가지 역할을 수행한다고 할 수 있다. 

 

 

:: Error Reporting ::

에러 발생 시 메시지를 보내 알리는 것

Type 3 Destination Unreachable :: 목적지에 도달할 수 없음!
Type 4 Source Quanch :: sender에서 나가려는 데이터가 꽉차서 나갈 수가 없음요!!
Type 11 Time exeeds (TTL = 0) :: 시간 초과.. 게임 오버..
Type 12 parameter 모양이 틀림.
Type 5 음.. 이 경로 말고 저 경로로 가는 게 좋을 거 같은데?

 

 

:: Query message ::

Type 8 & Type 0 echo-request & echo-reply message
ping에 사용되는 ICMP message type
Type 13 & Type 14 Time Stamp Request
RTT 계산에 사용되는 ICMP message type

 

 

 

ICMP가 에러 보고를 하고 질의응답 역할을 수행한다고 하지만 모든 경우를 처리하지는 않는다.

1. 어떤 문제가 발생해 ICMP 메시지가 전송되었는 데, 이 ICMP 메시지에 에러가 난 경우.

2. 127.0.0.1 / 0.0.0.0과 같은 특정 class.

3. 하나의 데이터에 대해 여러 개의 packet이 전달될 때, 첫 번째가 아닌 *fragment에 문제가 생긴 경우

4. multicast 주소에 대한 에러의 경우.

 

3) 번 같은 경우에는 time out으로 인해 해당 fragment에 대한 데이터 전부가 재전송 처리되기 때문에 ICMP로 처리하지 않는다.

 

 

*fragment = 데이터를 전송할 때 데이터의 크기가 보낼 수 있는 MTU보다 크면 여러 개의 조각으로 쪼개서 목적지로 전송하고 목적지에서 다시

합치는 과정이 수행된다. 이때 쪼개진 데이터 조각을 fragment라고 부른다.

 

 

*datagram = network 모델에서 각 계층에 따라 데이터를 부르는 이름이 다양하게 존재한다.

datagram(UDP), packet(TCP), frame(Data link), Segment(TCP header 부분).. 다 필요 없이 이 이름들이 뜻하는 건 "data"라는 것.

'Daily-Note' 카테고리의 다른 글

burp suite으로 보는 간단한 Brute fore 실습  (0) 2023.04.09
Brute Force  (0) 2023.04.09
Binaryfuck  (0) 2023.03.23
HTML vs XML  (0) 2023.03.21
NDP - overview  (0) 2023.03.18
Comments