ARP는 Adress Resolution Protocol의 약자로 IP 주소를 통해 MAC 주소를 알아내기 위한 프로토콜이다.
LAN(Local Area Network) 통신을 위해서 사용자는 IP주소를 사용하지만, 장비에서 처리하기 위해서는 IP주소와 함께 MAC 주소를 사용한다. 이를 다르게 표현하면 동일한 IP 대역을 공유하는 LAN에서 장비와 장비가 통신하기 위해서는 MAC 주소를 이용해 목적지를 찾는 것이다.
ARP를 사용하는 이유는 목적지 IP의 장비가 소유한 MAC 주소를 알아내어 해당 장비로 전송하기 위함이다.
ARP Header
Hardware Type : 네트워크 유형을 정의하며, Ethernet 환경의 경우 0x0001 세팅
Protocol Type : 프로토콜을 정의하며, IPv4의 경우 0x0800 세팅
Hardware Length : MAC 주소의 길이를 정의하며, Ethernet 환경의 경우 0x06 세팅
Protocol Length : 프로토콜의 길이를 정의하며, IPv4 의 경우 0x04 세팅
Target Hardware Address : 목적지 MAC 주소, 그러나 ARP Request의 경우 알 수 없으므로 브로드케스트 세팅
Target Protocol Address : 목적지 IP 주소 세팅
ARP Cache
ARP로 MAC 주소를 알아내는 과정에서 브로드캐스트를 전송한다, 브로드캐스트는 LAN의 전체 장비에 전송하여 많이 사용하면 장비의 과부하와 성능 저하를 일으킬수 있기 때문에 ARP 응답을 수신하면 IP 주소와 MAC 주소를 캐시에 저장한다. 장비에서 다음 전송을 수행할 때 캐시를 검사하여 ARP를 전송하지 않고 즉시 응답할 수 있게 된다.
Static ARP Table
특정 IP 주소에 대해서는 ARP를 묻지 않고 바로 전송할 수 있도록 IP 주소와 MAC 주소를 수동으로 등록할 수 있다.
ICMP(Internet Control Message Protocol)
IP 프로토콜이 동작하는 과정에서 다양한 메시지를 전송하는데 사용되는 프로토콜이다. ICMP는 메시지 전송을 위한 별도의 헤더 구조를 가진다.
ICMP Utility
ICMP 메시지를 전송하여 목적지 장비에 도달할 수 있는지를 테스트 할 수 있으며, Windows에서 제공하는 대표적인 명령으로 ping과 tracert가 있다.