네트워크 - ICMP 프로토콜, ARP, RARP
이번 포스팅은 네트워크에서 ICMP 프로토콜 대해 하겠습니다. 네트워크가 제대로 연결되어 있는지 확인할 수 있는 ping명령어 가 ICMP에 포함되어 있습니다. Windows와 Linux 둘 모두 작동하며 커맨드 창에서 ping이라고 치기만 하면 됩니다. ping 뿐 아니라 Traceroute 명령어도 포함되어 있습니다. 이러한 명령어들은 네트워크가 제대로 연결되어 있는지 오류를 확인할 수 있습니다.
ICMP 프로토콜
앞서 설명한 것처럼 인터넷에서의 데이터 전송은 4계층 의 TCP와 UDP, 3계층 의 IP에 의해 이루어집니다. TCP/IP 모델에서는 사용자 데이터 전송이 TCP, UDP, IP에 의해 이루어지지만, 이들이 올바르게 동작하려면 더 많은 프로토콜이 추가로 필요합니다.
주소 문제를 해결하기 위한 ARP, RARP와 오류 문제를 해결하기 위한 ICMP는 TCP/IP 모델의 동작에서 매우 중요한 역할을 합니다.
ICMP 메세지는 여러가지가 있습니다. Echo request, Echo reply, Destination unreachable, Source quench, Time Exceeded, Timestamp Request, Timestamp Reply 등의 메세지가 있습니다. 이 메세지들은 ICMP헤더의 Type 필드 값에 따라 구분됩니다.
ICMP 헤더
[ICMP 헤더]
TCP/IP 계층 구조
TCP/IP를 사용하는 인터넷 환경에서 맨 위의 응용 프로그램은 TCP와 UDP를 사용해 데이터 송수신 기능을 수행하지만, 네트워크 계층의 IP 프로토콜을 직접 사용하기도 합니다. ICMP와 ARP/RARP는 네트워크 계층에 소속되어 IP 동작을 도와주는 기능을 합니다.
네트워크 계층의 IP는 사용자 데이터를 전송하는 프로토콜입니다. IP의 동작 과정에서 전송 오류가 발생하는 경우를 대비해 오류 정보를 전송하는 목적으로 ICMP(Internet Control Message Protocol)를 사용합니다. ICMP는 IP 프로토콜과 같은 계층으로 간주할 수 있지만, ICMP에서 전송하는 ICMP 메시지는 IP에 캡슐화되어 전송됩니다.
ARP와 RARP
TCP/IP 모델에서 사용하는 주소는 데이터 링크 계층의 MAC 주소, 네트워크 계층의 IP 주소, 전송 계층의 포트 번호입니다. 포트 번호는 사용자 프로그램 환경에서 사용되므로, 번호 할당과 관리가 다른 계층 프로토콜의 동작에 크게 영향을 미치지 않습니다.
IP 주소와 MAC 주소는 프로토콜의 동작 특성상 추가로 고려할 사항이 있다. 예를 들어, 계층 2 프로토콜을 이용해 데이터를 전송하려면 목적지 호스트의 MAC 주소가 필요합니다. 자신의 IP 주소와 MAC 주소는 쉽게 얻을 수 있지만 수신자의 주소는 다르게 처리됩니다. 상대방의 IP 주소는 응용 프로그램 사용자로부터 입력되지만, 상대방 MAC 주소 정보는 어디서도 얻을 수 없다. 따라서 사용자로부터 입력된 IP 주소를 이용해 MAC 주소를 구하는 기능이 필요한데, 이것을 ARP(Address Resolution Protocol)가 담당합니다.
일반적으로 호스트의 IP 주소는 하드 디스크의 특정 위치에 보관한다. 하드 디스크가 없는 시스템은 LAN 카드에 내장된 자신의 MAC 주소는 알지만, 자신의 IP 주소는 알 수 없습니다. 그러므로 MAC 주소를 IP 주소로 변환하는 RARP(Reverse Address Resolution Protocol)가 필요합니다.
ICMP
데이터를 전송하는 프로토콜인 IP가 동작하는 과정에서는 전송 오류가 발생할 수 있습니다. 오류 발생을 송신자에게 통지하려고 ICMP(Internet Control Message Protocol)를 사용합니다. ICMP는 오류 메시지를 전송하기 위한 별도의 헤더 구조를 가지며, IP 프로토콜에 캡슐화되어 전송되지만 IP와 같은 계층으로 취급됩니다.
ARP, RARP, ICMP 비교
ARP(Address Resolution Protocol)
인터넷에서 통신하려면 자신의 로컬 IP 주소와 MAC 주소, 원격 호스트의 IP 주소와 MAC 주소가 필요합니다. ARP는 원격 호스트의 주소 변환 기능을 제공합니다. 사용자가 입력한 IP 주소를 이용해 MAC 주소를 제공하는 프로토콜입니다.
RARP(Reverse Address Resolution Protocol)
로컬 호스트의 주소 변환 기능을 제공하는 데, LAN 카드에 보관된 MAC 주소를 이용해 IP 주소를 제공하는 프로토콜입니다. 일반 컴퓨터 시스템은 로컬 호스트의 IP 주소가 하드 디스크의 파일 시스템에 보관되므로 RARP를 사용하지 않지만, 디스크가 장착되지 않은 시스템에서는 RARP 사용이 필수적입니다.
ICMP(Internet Control Message Protocol)
사용자 데이터의 전송 과정에서 오류가 발생하면 오류 메시지가 생성되는데, 이를 전송하는 기능을 담당하는 프로토콜입니다. 사용자 데이터 전송은 IP 프로토콜이 담당하며, ping, traceroute의 기능도 ICMP에 포함되어 있습니다.
'IT > 네트워크' 카테고리의 다른 글
TCP/IP 프로토콜에 대한 설명, TCP, IP의 개념 (0) | 2017.08.11 |
---|---|
네트워크 - Telnet, SSH (0) | 2017.08.06 |
Wireshark 설명 및 설치 방법 정리 (0) | 2017.08.03 |
네트워크 - NAT의 개념 및 장점 (0) | 2017.08.02 |
네트워크 기초2 - OSI 4계층 심화 (0) | 2017.07.31 |
댓글