선선한 바람이 불기 시작한 9월입니다.
환절기에 감기 조심하시구요~
오늘의 주제인 ICMP에 대한 이야기를 시작해 보겠습니다.
1. ICMP란?
ICMP[Internet Control Message Protocol]
: 인터넷 제어 메시지 프로토콜
오류 메세지를 전송받는 데 주로 쓰입니다.
위키 정의를 좀 더 들여다 볼까요?
ICMP 메세지들은 일반적으로 IP 동작에서 진단이나 제어로 사용되거나 오류에 대한 응답으로 만들어진다.
ICMP 오류들은 원래 패킷의 소스 IP 주소로 보내지게 된다.
- wikipedia
ICMP의 용도는 뭘까요?
- 인터넷/통신 상에서 발생한 일반적인 상황에 대한 보고(report)
- 인터넷/통신 상에서 발생한 오류에 대한 보고
- 위험한 상황에 대한 경보
ICMP의 기능을 정리해볼까요?
- IP 프로토콜을 이용하여 ICMP 메세지 전달
- 네트워크 계층에 속하여 네트워크 관리 프로토콜의 역할 수행
(여기서 포인트는 종단간 데이터 수송 역할 X)
아래의 그림을 한 번 볼까요?
TCP/IP 계층에서의 ICMP가 어디에 속하는 지를 나타내는 그림입니다.
우리가 기억하고 있어야 할 것은!?
-> ICMP 프로토콜은 Network 계층에 속하며 IP 프로토콜과 같이 사용한다!
ICMP 사용(활용) 명령어
1. Ping 명령어 : 상대방 호스트의 작동 여부 및 응답시간 측정하는데 사용
- Echo Request (ICMP 질의메세지 요청)
- Echo Reply (ICMP 응답메세지 요청)
2. Tracert명령어 : 목적지까지의 라우팅 경로 추적을 하기 위해 사용
- Time Exceeded 확인 가능 (이 내용은 추후에 다루도록 할게요 ~)
2. ICMP 패킷 헤더 구조
ICMP 는 헤더는 그림에선 5개로 보이지만 기본적으로 4개로 구성되어있어요.
ICMP Type : ICMP 의 메세지를 구별
ICMP Code : 메세지 내용에 대한 추가 정보 (즉, ICMP TYPE에 대한 상세 정보죠)
ICMP Cehcksum : ICMP의 값이 변조 여부를 확인
ICMP 메세지1, 메세지2 : ICMP TYPE에 따라 내용이 가변적으로 들어가는 내용
- 메세지 1
ICMP TYPE 3 (DESTINATION UNREACHABLE),
ICMP TYPE 11 (TIME EXCEEDED) 등에서는 사용되지 않으므로 0이 채워짐
- 메세지 2
ICMP TYPE 8 (ECHO REQUEST),
ICMP TYPE 0 (ECHO REPLY) 같은 메시지에서는 특정 값이 주어짐
내용을 읽어본다면 결국 ICMP는 TYPE에 따라 종류가 다양합니다.
그 중 많이 볼 수 있는 메세지 들을 아래 표에 정리해 봤어요.
상세 설명은 나중에 발행될 자료를 통해 확인해주세요 !
3. Wireshark를 통해 본 ICMP
이번엔 실제 덤프를 통해서 패킷을 살펴볼게요.
ICMP TYPE - Request
ICMP구조에 따라 Type 8, Code 0, Checksum, Data를 확인 할 수 있네요
type이 Request 이기 때문에 메세지 1(data)에 특정값(abcdefg .. 이하 생략)이 채워져 있네요
ICMP TYPE - Reply [응답이 정상적인 경우]
Type 0, Code 0, Checksum 도 정상적이네요
또 동일하게 Reply 이기 때문에 메세지 1(data)에 특정값으로 채워져 있는 것을 확인할 수 있습니다
ICMP TYPE - Destination Unreachable [응답이 비정상적인경우]
어떠한 이유로 인해 패킷이 정상적으로 도달하지 못하는 경우 이에 대한 응답메세지를 보내는데, Unreachable도 그 중 하나입니다.
Type 3, Code 13, Checksum 도 정상적인데, 차이점은 메세지 2(data)에 실패한 패킷의 정보(IPV4, ICMP)가 담겨있는 것을 볼 수 있죠
자,
-끗-
'OSI 7계층 > [LAYER 3] 네트워크 계층' 카테고리의 다른 글
IPSec VPN 파헤치기 1탄 (5) | 2018.11.11 |
---|---|
IPsec VPN 과 ssl VPN 의 차이는 무엇일까요 (2) | 2018.11.04 |
NAT(Network Address Translation) 통신과정 끝판왕(feat. 총정리) (1) | 2018.07.22 |
NAT(Network Address Translation) (0) | 2018.07.15 |
네트워크 통신과정(feat. ARP vs Routing) (3) | 2018.06.10 |