ICMP(인터넷 제어 메시지 프로토콜)은 디바이스가 네트워크에서 데이터 전송 오류를 전달하는 데 사용하는 통신 규칙 집합니다. 발신자와 수신자 간에 메시지를 교환할 때 예기치 못한 오류가 발생할 수 있는데(예를 들면 메시지가 너무 길거나 데이터 패킷이 순서에 맞지 않게 도착하여 수신자가 메시지를 조합하지 못하는 경우 등등), 이럴 때 수신자는 ICMP를 사용하여 발신자에게 오류 메시지를 알리고 메시지 재전송을 요청합니다.
라우터와 엔드포인트 디바이스를 비롯하여 네트워크에 연결된 모든 디바이스가 ICMP 메시지를 처리할 수 있고, IPv4, IPv6 모두에서 작동됩니다.
ICMP와 TCP의 차이점
TCP는 신뢰할 수 있고 오류 검사가 적용되는 데이터 전송을 위한 연결 지향 프로토콜입니다. 일반적으로 웹 브라우징, 이메일, 원격 로그인 및 파일 전송 애플리케이션에서 사용됩니다.
TCP에는 발신자와 수신자 간에 트러스트와 인증을 설정하는 일련의 메시지인 핸드셰이킹이 필요합니다. TCP는 메시지 전송을 보장합니다.
반면 ICMP는 비연결 프로토콜입니다. 이 프로토콜은 메시지 전송을 보장하지 않습니다. ICMP는 오류 보고에만 사용되므로 ICMP 메시지도 TCP 패킷보다 작습니다.
ICMP Type: ICMP의 메시지 구별
ICMP Code: 메시지 내용에 대한 추가 정보
ICMP Checksum: ICMP의 값이 변조되었는지 확인
ICMP 메시지1, 2 : ICMP 타입에 따라서 가변적으로 들어가는 내용
메시지 1: 3(DETINATION UNREACHABLE), 11(TIME EXCEEDED) 타입등에서는 사용되지 않아 0이 채워집니다.
메시지 2: 8(ECHO REQUEST), 0(ECHO REPLY) 등에서는 특정값이 주어집니다.