ICMP

ICMP는 IP의 에러 리포팅, 간단한 쿼리를 도와주기 위한 프로토콜

ICMP 메시지는 IP 데이터그램으로 캡슐화

IP 위에서 동작 ⇒ TCP/UDP와 같은 레벨이지만, 전송계층은 아님

ICMP 역할

  1. Error 알림
    패킷 전송이 실패했을 때 에러가 났음을 알림과 동시에, 해결 가능한 힌트 제공
  2. 진단/ 정보전달 메세지
    ping, traceroute 명령 등등 진단과 정보전달을 하는데에 사용

ICMP 메세지 포멧

Type : ICMP 패킷의 종류

Code: Type을 자세히 분류

Checksum : 코드에 오류가 없는지 확인하는 용도

Rest of the Headers : Type에 따라 사용여부 결정. 미사용시 0

PayLoad : 직접적인 데이터 내용

Type Message 설명
0 Echo reply Echo 메세지의 답 (ping의 응답)
3 Destination unreachable 도달 불가 에러(Code에 더 자세한 에러사유)
4 Source quench congestion control의 용도
5 Redirect 더 빠른 경로가 있다고 알려줄 때
8 Echo request Echo 메세지의 요청 (ping의 요정)
11 Time exceeded TTL이 초과된 경우
30 Traceroute 해당 라우터까지 가는 경로 체크용

ICMP 에러 타입 메세지

IP 패킷은 Best Effort ⇒ 자신의 할일만 하고 에러를 컨트롤 하지않음

ICMP 에러 타입 메시지도, Error의 정보는 전달해주지만, source의 문제가 아닌 이상 전송되지 않음

Type 3 : Destination Unreachable

Code 0 : Network 도달불가

Code 1 : Host 도달불가

Code 2 : Protocol 도달불가

Code 3 : Port 도달불가

Code 4 : fragment가 필요하나 DF 로 되어 있을 때

Type 4 : Source Quench

IP는 흐름제어가 없기 때문에 ICMP는 발신자에게 통보하여 송신억제

더 이상 사용 안함

  1. TCP congestion control 지원
  2. UDP congestion control X

Type 5 : Redirect

라우터가 지금 상황이 최적의 경로가 아닐때 최적의 경로를 전송

IP데이터 그램을 폐기하지 않고 전달

Type 11 : Time Exceeded

  1. TTL 이 0 이 된 경우
  2. Fragment중 하나가 손실돼서, 다시  조합을 할 수 없을 경우

ICMP 진단/정보 타입 메세지

Ping, Tracert/Traceroute는 에러 메세지가 아닌 진단,정보 메세지

Ping 은 Type 8인 ICMP 메세지로 요청하며, 특정 IP와의 통신이 가능한지를 Type 0 메세지를 통해 반환

Traceroute는 해당 IP까 거친 라우팅 경로를 반환

Reference

https://programming119.tistory.com/155

https://www.cloudflare.com/ko-kr/learning/ddos/glossary/internet-control-message-protocol-icmp/

https://itwiki.kr/w/ICMP

https://waristo.tistory.com/21

 

'네트워크' 카테고리의 다른 글

HTTP, HTTPS  (0) 2023.11.10
대칭키, 비대칭키 암호화  (0) 2023.11.10
SMTP, IMAP, POP3  (1) 2023.10.28
FTP  (1) 2023.10.28
OSI 계층 별 장비  (1) 2023.10.27

+ Recent posts