ICMP(Internet Control Message Protocol)은 인터넷상의 노드 간에 에러사항이나 통신 제어를 위한 메시지를 보고하게 할 목적으로 만들어진 프로토콜이 ICMP 프로토콜입니다. 대표적인 프로그램으로는 PING이 있습니다. 주로 통신 간에 장애나 목적지 시스템이 제대로 응답을 하여 동작하고 있는지를 판단하기 위한 용도로 많이 활용됩니다. 한 가지 숙지사항은 ICMP 프로토콜은 패킷전송시의 오류만 Report할 뿐 오류를 해결하는 역할은 하지 못합니다. ICMP는 TCP/UDP 헤더를 필요치 않으며 IP헤더와 IP 데이터 부분에 ICMP 메시지를 포함하여 패킷을 전송하는 역할을 합니다. 그래서 오늘은 ICMP 프로토콜 기능 및 PING 프로그램에 대해 알아보겠습니다.
ICMP의 기능
- 네트워크상의 에러 보고 : 데이터 전송오류 보고
- 네트워크 혼잡 보고 : 라우터가 받는 속도처럼 빠르지 못하면 천천히 보내게 유도
- 트러블 슈팅 : 두 노드간에 문제파악 가능
- 타임아웃 보고 : TTL 값이 0이면 패킷 폐기
ICMP 메시지 종류
Type | 메세지 종류 |
0 | Echo Reply |
3 | Destination Unreachable |
4 | Source Quench |
5 | Redirect |
8 | Echo Request |
11 | Time Exceed |
12 | Parameter problem |
13 | Timestamp Request |
14 | Timestap Reply |
15 | Information Request |
16 | Information Reply |
17 | Address Mask Request |
18 | Address Mask reply |
Type 8, type 0은 특정 호스트에서 목적지 시스템까지 경로가 설정되어 있어 도달이 가능한지 목적지 시스템이 현재 운영 중인지 검사할 수 있는 Utility인 Ping 프로그램이 사용하는 ICMP type입니다. ping은 IMCP 메시지 Type 8(Echo request)로 패킷을 목적지로 발송합니다. 시스템 A가 발송한 패킷이 정상적으로 시스템 B에 도달하면 시스템 B는 ICMP Type(Echo Reply) 메시지를 시스템 A에 되돌려 보내 네트워크 경로상에 이상이 없음을 확인할 수 있습니다. type 3은 IP 패킷이 목적지에 전달할 수 없게 되었을 때 경로상의 제일 마지막 라우터는 출발지 시스템에게 목적지에 도달할 수 없다는 ICMP Type 3 메시지를 전송합니다. Destination Unreachable 메시지는 아래 표와 같이 세분화된 code를 통해 출발지 시스템에게 목적지에 도달할 수 없는 이유에 대한 정보를 제공합니다.
Code | 설명 |
0 | Network Unreachable |
1 | Host Unreachable |
2 | Protocol Unreachable |
3 | Port Unreachable |
4 | Fragmentation needed |
PING 프로그램
Ping(Packet Internet Groper) Utility는 ICMP echo request 메시지를 이용하여 원격지 시스템이 도달 가능한지 확인할 수 있는 도구입니다. Ping 프로그램을 통하여 아래와 같은 정보를 파악할 수 있다. 원격지 시스템에 도달했는지 여부와 시스템에 살아있는지 여부원격지 시스템에 도달하는 시간을 알 수 있습니다. ping 프로그램을 이용하여 원격지 시스템에 도달했는지 여부와 시스템에 살아있는지 여부, 원격지 시스템에 도달하는 시간, 원격지 시스템 type에 대해 알 수 있습니다.
1) bytes
Ping 사용시 packet size를 말합니다. default로 32 byte4 64 byte를 사용합니다.
2) time
패킷이 목적지까지 갔다 돌아오는데 걸린 시간을 말합니다.
3) TTL
reply하는 시스템에서 보내온 IP 패킷의 TITL 값 중간의 라우터들을 지날 때마다 ID 헤더의 TTL 값이 1씩 감소하게 됩니다. TTL 값을 확인하여 중간 경로에 몇 개의 router를 거치는지 확인할 수 있습니다. 각 시스템 OS 마다 default TTL 값이 다르기 때문에 리턴되는 TTL 값을 가지고 상대방 시스템의 종류를 유추할 수 있습니다.
요약
여기까지 ICMP 프로토콜 기능 및 PING 프로그램에 대해 알아보았습니다. ICMP 메세지 종류는 Type별 코드로 따지기 때문에 Type의 숫자를 제대로 인지해 놓는 것이 중요합니다. 또한, Type별 특성이 어떤 것이 있는지 이번 포스팅을 통해 잘 숙지해놓으시길 바랍니다.
'컴퓨터학개론' 카테고리의 다른 글
UDP와 유니캐스트, 멀티캐스트, 브로드캐스트 알아보기 (0) | 2022.02.14 |
---|---|
TCP 3way 핸드쉐이크 총정리 (0) | 2022.02.13 |
ARP 프로토콜 및 구조 총정리 (0) | 2022.02.10 |
서브넷팅 설계 및 활용 (0) | 2022.02.08 |
TCP, IP 프로토콜 및 IP 역할과 기능 (0) | 2022.02.06 |
댓글