본문 바로가기
컴퓨터학개론

ARP 프로토콜 및 구조 총정리

by yurieee 2022. 2. 10.

ARP(Address Resolution Protocol)는 통신을 원하는 호스트의 IP address를 알고 있을 때, 그 호스트의 MAC 주소를 알고자 할 경우에 사용하는 프로토콜입니다. 즉, 레이어 3 계층의 IP주소를 레이어 2 계층의 하드웨어 주소로 연계시키는 프로토콜입니다. 오늘은 ARP 프로토콜 및 구조와 어떤 특성이 있는지 한 번 알아보겠습니다.

 

ARP 프로토콜

ARP 프로토콜

IP패킷이 실제 네트워크상에 전송되려면 이더넷 프레임으로 변환되어 목적지로 발송하게 되는데요, 이더넷 프레임 안에는 패킷을 발송하는 시스템 하드웨어 주소와 패킷을 전달받을 목적지 호스트 시스템의 하드웨어 주소가 있어야 합니다. ARP는 한번 찾은 어드레스는 ARP-Cache에 일정기간 IP 어드레스-MAC 어드레스 형태로 보관하게 됩니다.

MAC 주소

MAC(하드웨어 주소)은 48비트 주소 체계로 구성되어 있으며 제품 생산시 네트워크 카드마다 고유한 번호가 부여되어 있습니다. 이는 네트워크상에 다른 호스트로 전송하기 위하여 사용됩니다. MAC 레이어는 상위 프로토콜이 TCP/IP가 아닌 타 프로토콜에서도 사용이 되고 네트워크 카드는 네트워크에 전달되는 이더넷 프레임 중 목적지 MAC 주소가 자신의 주소와 일치하는 프레임을 시스템으로 전달합니다.

목적지
MAC 주소
출발지
MAC 주소
IP Header TCP Header Application Data Mac trailer

IP주소와 MAC 주소 비교

TCP/IP 프로토콜에서는 지속적으로 OSI 7 레이어에 대한 관련성에 대하여 언급하기 때문에 가급적 OSI 7 모델은 그냥 암기가 아닌 조금 깊이 있게 공부하여 반드시 이해하고 넘어가는 자세가 중요합니다.

구분 IP 주소 MAC 주소
Layer Layer3 (네트워크 계층) Layer2(데이터링크 계층)
길이 32bit 48bit
성격 논리적인 주소 물리적인 주소
주소 변경여부 패킷이 출발지에서 목적지에 전달되는 동안 바뀌지 않고 전송된다. 타 네트워크로 패킷 발송시 전송 과정 중에 MAC 주소가 변경된다.

IP주소와 MAC주소 비교

동일 네트워크 상의 목적지라면 패킷을 직접 전송하기 위하여 ARP 프로토콜을 브로드 캐스팅하여 목적지 IP주소의 MAC 주소를 요청하게 된다. 목적지 IP의 MAC주소를 확인한 후 이더넷 헤더에 목적지 MAC주소에 상대방의 MAC주소를 넣어 이더넷 프레임을 발송하게 됩나다. 목적지 시스템은 자신을 목적지로 하는 이더넷 프레임이 발송이 되면 해당 패킷을 IP레이어로 전송합니다. 서로 다른 네트워크상에 있는 시스템에서는 전달할 경로를 찾기 위해 라우팅 테이블을 참조합니다. 라우팅 테이블을 참조하여 패킷을 전송할 Next Hop의 IP를 결정하게 되고 Next Hop의 IP에게 패킷을 전송하기 위하여 ARP 프로토콜을 이용하여 라우터의 IP주소의 MAC주소를 요청합니다. 라우터의 MAC주소를 알게 되면 이더넷 헤더의 목적지 MAC주소에 라우터 MAC주소를 넣어 이더넷 프레임을 발송합니다.

ARP구조

TCP/IP에서 첫 번째 계층인 네트워크 인터페이스 계층에서 수행하는 주소변환 프로토콜을 말합니다. 네트워크 IP에서는 네트워크 인터페이스 계층의 물리적인 하드웨어 주소를 알아야 트래픽을 해당 인터페이스로 전달할 수 있습니다. 이를 위하여 소프트웨어 주소인 IP주소를 설정한 HW주소를 알아내는 절차가 필요한데 이것이 ARP입니다.

HW Type Protocol Type
HLEN, PLEN Opcode
Sender MAC Address Sender IP
Target MAC Address Target IP

ARP Cache 방법

모든 시스템들은 자신의 네트워크 범위에 있는 호스트들의 IP 주소와 매칭 되는 MAC 주소를 캐싱(Caching)합니다. 특정 호스트로 패킷을 포워딩하기 위해서 ARP 프로드캐스팅하기 전에 시스템 내에 ARP Cache 테이블을 참조하여 매칭되는 IP주소가 있을 경우에는 ARP 브로드캐스팅을 하지 않습니다. 이는 불필요한 네트워크 트래픽을 줄여주는 기능을 합니다. 만약 시스템 A에서 시스템 B의 MAC 주소를 얻기 위하여 ARP 브로드캐스팅을 하면 시스템 B는 시스템 A의 MAC 주소를 얻어서 자신의 ARP Cache 테이블에 저장하게 되는 것입니다. 시스코 라우터의 경우 디폴트 캐시 아웃 시간이 3시간입니다.

요약

여기까지 ARP 프로토콜 및 구조에 대해 알아보았습니다. 이 뿐만 아니라 리눅스에서 ARP 테이블을 확인하는 방법이나 다양한 리눅스 명령어를 통해 데이터를 조회하고 삭제할 수 있습니다. 일전에도 말씀드렸듯이 보안에 있어서 다양한 프로토콜과 프로토콜의 특성을 익히는 것은 매우 중요합니다. 포스팅 내용을 숙지하시고 익히시면 많은 도움이 될 것입니다.

 

댓글