-
ICMP 프로토콜이란?CS/네트워크 2022. 7. 22. 00:01728x90
ICMP 프로토콜이란?
ICMP는 Internet Control Message Protocol (인터넷 제어 메시지 프로토콜)입니다.
네트워크 컴퓨터 위에서 돌아가는 운영체제에서 오류 메시지를 전송받는데 주로 쓰입니다.
프로토콜 구조의 Type과 Code를 통해 오류 메시지를 전송받습니다.
보통 상대방과 통신이 되는지 안되는지 확인하는 데 사용됩니다.
통신 환경의 문제점에 대한 피드백을 제공하지만 IP가 신뢰 가능하도록 만들지는 않습니다.
네트워크 계층인 3 계층에 속하며 IP 프로토콜과 같이 사용됩니다.
ICMP 프로토콜의 구조
Type
대분류의 개념으로 30개의 종류가 있습니다.
가장 많이 쓰이는 타입은 다음과 같습니다.
- 0번 : Echo Reply (응답)
- 3번 : Destinatnion Unreachable
- 5번 : Redirect
- 8번 : Echo(요청)
- 11번 : Time Exceded
주로 상대방과 통신이 되는지 안되는지 확인하는 데 사용하기 때문에 8번을 통해 요청하고 0번을 통해 응답을 받습니다.
3번은 목적지에 도달하지 못했음, 11번은 목적지까지는 도달했지만 응답을 받지 못하는 경우를 의미합니다.
3번은 가는 경로상의 문제가 있는 것이고(ex : 라우터 경로 문제), 11번은 상대방 컴퓨터에 문제가 있는 것입니다(ex : 방화벽).
5번은 Redirect로 호스트 패킷의 라우팅 경로를 변경할 수 있습니다.
따라서 보안상으로 다룰 수 있습니다.
ICMP Redirect Attack
ICMP redirect를 위조한 메시지를 만들어서 호스트 패킷의 라우팅 경로를 악의적으로 변조할 수 있습니다.
조금 더 자세하게 알고 싶다면 여기를 참조하세요.
Code
소분류의 개념으로 Type 별로 추가적인 코드를 제공합니다.
Checksum
코드에 오류가 없는지 확인하는 용도로 사용됩니다.
ICMP 프로토콜의 역할
ICMP는 TCP/IP 에서 IP 패킷을 처리할 때 발생하는 문제를 알려주는 역할을 담당하는 프로토콜입니다.
IP에는 오로지 패킷을 목적지에 도달시키기 위한 내용들로만 구성되어 있습니다.
만약 전달해야 할 호스트가 꺼져 있거나, 선이 단절된 경우와 같은 비정상적인 경우에 패킷이 출발한 출발지 호스트에 이러한 사실을 알려야 하지만 IP에는 그러한 에러에 대한 처리 방법이 명시되어 있지 않습니다.
이런 IP의 부족한 점을 메꾸기 위하여 사용되는 것이 바로 ICMP 프로토콜입니다.
ICMP 활용 예시
통신 유무 확인 시 자주 사용하는 윈도의 ping 같은 경우 ICMP 프로토콜을 이용한 방법입니다.
A컴퓨터에서 B컴퓨터의 상태를 알아보기 위해 명령어 " ping [B IP 주소]"를 입력하면 윈도에서는 ICMP 프로토콜을 상대방 컴퓨터로 보내게 됩니다.
출처
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=rbdi3222&logNo=220602423771
https://www.youtube.com/watch?v=_AONcID7Sc8
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=on21life&logNo=221329284059
'CS > 네트워크' 카테고리의 다른 글
CLOSE_WAIT 과 TIME_WAIT (0) 2023.06.25 세션 하이재킹과 TCP Sequence Number (0) 2022.07.28 ARP 프로토콜이란? (0) 2022.07.17 공인 IP와 사설 IP (0) 2022.07.15 HTTP 1.1 , HTTP 2.0, HTTP 3.0 정리 (0) 2022.05.30