> For the complete documentation index, see [llms.txt](https://real-dev.gitbook.io/real-library/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://real-dev.gitbook.io/real-library/backend-mastre-courese-udemy/5.-icmp.md).

# 5. ICMP

* 네트워크 장치들이 서로 통신하기 위해 사용하는 네트워크 계층(3계층) 프로토콜이다. 라우터 같은 네트워크 장치들이 사용하며 주로 오류 보고 및 네트워크 문제 진단에 사용하는데 가장 잘 알려진게 Ping이다.
* ICMP 메시지를 수신하기 위한 Port는 그 자체가 없다. 즉, 언제라도 받고 보낼 수 있다는 뜻.
* IP패킷의 단편화 필요성에 대해 확인하기 위해서도 사용된다. 실제 IP패킷이 너무 크면 서버는 클라이언트에게 MTU보다 너무 크다, 즉 단편화를 요청하는 ICMP 메시지를 송신한다.
* 혹은 IP패킷의 TTL에 따라 목적지에 정확히 전송되었는지 혹은 중간에 TTL이 모두 소모되어 도달하지 못했는지를 알려주기도 한다.
* ICMP가 차단되어 있는 클라이언트라면 이 모든 주요 응답을 제대로 받지 못할 수도 있다.
