본문 바로가기
목차훔치기/하루 3분 네트워크 교실

ICMP (하루 3분 네트워크 교실)

by 해삼2 2023. 7. 21.
728x90
반응형
ICMP

ICMP

ICMP(Internet Control Message Protocol)는 인터넷 프로토콜 스위트(IP 프로토콜 스위트)에서 사용되는 프로토콜 중 하나로, 네트워크 장치들 간에 제어 메시지를 교환하는 데 사용됩니다. 주로 네트워크의

상태를 모니터링하고, 네트워크 장비 간의 통신 문제를 진단하기 위해 사용됩니다.

 

ICMP 작동 방식

ICMP(Internet Control Message Protocol)는 인터넷 프로토콜 스위트(IP 프로토콜 스위트)의 일부로, 

네트워크 장치들 간에 제어 정보를 교환하는 데 사용됩니다. ICMP는 IP 패킷을 사용하여 네트워크의 

상태를 모니터링하고, 오류 메시지를 전송하며, 호스트 및 라우터의 응답 상태를 확인하는 등 다양한 

기능을 수행합니다. 이제 ICMP의 작동 방식에 대해 더 자세히 알아보겠습니다.

에러 보고:
ICMP는 네트워크에서 발생하는 에러를 다른 장치에 알리는 데 사용됩니다. 예를 들어, 목적지 호스트에 

도달할 수 없는 경우 라우터가 ICMP 메시지를 생성하여 발송지에게 에러를 보고합니다.
이러한 ICMP 에러 메시지에는 오류 유형과 발생한 이유에 대한 정보가 포함되어 있습니다. 이를 통해 

네트워크 관리자가 문제를 진단하고 해결할 수 있습니다.

 

네트워크 상태 확인:
ICMP Echo Request와 Echo Reply 메시지를 사용하여 네트워크의 호스트나 라우터가 동작하는지 확인할 수 있습니다. 이를 통해 "핑(Ping)" 테스트를 수행하여 호스트의 응답 여부를 파악하는 데 사용됩니다.
핑 테스트는 Echo Request 메시지를 보내고, 호스트가 정상적으로 동작하고 있으면 Echo Reply 메시지를 

보내서 응답함을 확인합니다.


경로 MTU 문제 감지:
ICMP는 패킷의 최대 전송 크기를 초과하는 경우에 해당 정보를 전송하여, 중간에 있는 장치에서 큰 패킷을 처리할 수 없음을 알리는 역할을 합니다.
발신지는 이 정보를 받아, 더 작은 크기의 패킷을 사용하여 전송하는데 이를 "패킷 단편화"라고 합니다.

 

네트워크 리다이렉션:
ICMP는 라우터가 패킷을 올바른 경로로 보낼 수 있도록 다른 라우터로 트래픽을 재지정하는데 사용됩니다.
라우터가 패킷을 수신하고, 이 패킷이 더 나은 경로를 통해 전송될 수 있다면, ICMP 리다이렉션 메시지를 

생성하여 발신지에게 새로운 경로를 제안합니다.
ICMP는 주로 IP 프로토콜과 함께 사용되며, IP 패킷의 데이터 부분에 내용을 담아 전송합니다. 

또한 ICMP 메시지는 일반적으로 상위 계층인 TCP나 UDP와는 달리 연결 설정이나 연결 유지와 같은 

기능을 갖지 않습니다. ICMP는 주로 네트워크의 정상적인 동작과 문제 진단을 위해 사용되는 

프로토콜이며, 일반적으로 사용자가 직접적으로 조작하거나 설정하는 경우는 드뭅니다.

 

ICMP 예시

상황: 학교에서 친구에게 메모를 보내려고 합니다.

에러 보고:
학교 내부에 있는 친구의 책상에 메모를 전달하려고 하는데, 그 친구가 이미 학교를 떠난 경우입니다. 

이때, 떠난 친구의 책상에 메모를 전달할 수 없기 때문에, 이 정보를 교무실로 알려주는 역할을 하는 것이 ICMP입니다. ICMP는 "친구를 찾을 수 없음"이라는 메시지를 교무실로 전송하여 해당 상황을 보고합니다.

네트워크 상태 확인:
학교에서 친구들과 연락을 주고받으려고 합니다. 이때, 친구의 핸드폰이 켜져 있는지 확인하기 위해 

"핑(Ping)" 테스트를 수행합니다. 여기서 핸드폰이 친구의 응답이 없는 경우에는 친구의 핸드폰이 꺼져

있거나 혹은 통신에 문제가 있을 수 있습니다. 이때 ICMP는 "핸드폰을 찾을 수 없음"이라는 메시지를 

보내서 핸드폰의 응답 상태를 알려줍니다.

경로 MTU 문제 감지:
학교에서 친구에게 큰 사이즈의 메모를 보내려고 합니다. 그런데 중간에 복도가 너무 작아서 메모지가 

지나갈 수 없는 경우를 가정해봅시다. 이때, ICMP는 "메모지의 크기가 너무 큼"이라는 메시지를 보내서 

친구에게 메모지를 작게 나누어 보내도록 안내합니다.

네트워크 리다이렉션:
학교 내부에는 여러 강의실과 복도가 있습니다. 메모를 친구에게 보낼 때, 가장 빠른 경로로 보내려고 하는데, 잘못된 방향으로 메모를 보낼 수도 있습니다. 이때, ICMP는 "올바른 방향으로 메모를 보내세요"라는

메시지를 보내서 메모를 올바른 경로로 보내도록 안내합니다.

이렇게 학교에서 발생하는 일상적인 상황으로 예시를 들어봤습니다. ICMP는 네트워크에서 이러한 역할을 

수행하여 효율적이고 안정적인 통신을 도와줍니다.

 

ICMP Echo Request, ICMP Echo Reply 

ICMP Echo Request (에코 리퀘스트):
에코 리퀘스트는 핑 테스트를 시작하는 목적지 호스트나 라우터에서 보내는 메시지입니다.
에코 리퀘스트 메시지에는 특정 식별자(ID)와 시퀀스 번호가 포함되어 있습니다. 이로 인해 핑 테스트를 시작한 주체가 에코 리퀘스트와 에코 리플레이를 매칭할 수 있습니다.
에코 리퀘스트를 받은 호스트 또는 라우터는 해당 메시지에 대해 응답하기 위해 ICMP Echo Reply 메시지를 보냅니다.

 

ICMP Echo Reply (에코 리플레이):
에코 리플레이는 에코 리퀘스트를 받은 호스트나 라우터에서 보내는 메시지입니다.
에코 리플레이 메시지는 동일한 ID와 시퀀스 번호를 가지고 있으며, 에코 리퀘스트와 매칭되어 응답으로 전송됩니다.
에코 리플레이를 보낸 주체는 에코 리퀘스트를 받았음을 확인하는 응답으로, 두 장치 간에 통신이 원활하게 이루어지는지를 확인합니다.

 

에코 리퀘스트와 에코 리플레이의 주요 목적

네트워크 장치들 간의 응답 상태 확인:

핑 테스트를 통해 호스트나 라우터가 동작하고 있는지 확인할 수 있습니다.

 

네트워크 연결 품질 확인: 

핑 테스트의 응답 시간을 측정하여 네트워크 연결의 지연 상태를 파악할 수 있습니다.

 

네트워크 디버깅 및 문제 진단: 

핑 테스트를 통해 특정 호스트나 라우터와 통신이 원활하지 않는 경우, 문제의 원인을 찾는 데 도움이 됩니다.

 

핑 테스트는 주로 네트워크 문제 해결이나 네트워크 상태 모니터링 등에 사용되며, ICMP Echo Request와 Echo Reply 메시지가 서로를 매칭하여 네트워크 상태를 확인하는 것이 중요한 원리입니다.


 

*바쁜 사람을 위한 깜찍한 정리

ICMP은 TCP/IP 계층 모델 Network부분에서 사용되며 네트워크 장치들 간에 제어 메시지를 알려주는 역할을 합니다. 에러를 확인하고 네트워크 상태를 파악하고 문제를 감지하며 올바른 방향으로 안내해 주는 역할을 해주는 프로토콜이라고 생각하면 편할 거 같습니다. ICMP는 상태를 파악하고 에코리퀘스트를 이용해서 식별 ID, 시퀀스 정보를 담아 해당 문제가 무엇인지 메시지를 보내면 에코리플레이가 받아 해당 식별 ID정보 시퀀스 정보를 비교해서 맞으면 해당하는 메시지를 알려주는 것으로 어떤 것이 문제인지 나타내주는 중요한 역할을 하는 프로토콜입니다.
728x90
반응형