하마롱크의 블로그
ARP(Adress Resolution Protocool) 본문
데이터 통신을 위해서는 2계층의 물리적 주소인 MAC 주소와 3계층의 논리적 IP 주소 2가지가 사용됩니다. IP 주소 체계는 물리적 MAC 주소와 전혀 연관성이 없으므로 두 주소를 연계하기 위한 매커니즘이 필요합니다. 이 때 사용되는 프로토콜이 ARP(Address Resolution Protocol)입니다.

ARP 프로토콜은 TCP/IP 프로토콜 스택을 위해서만 동작하는 것은 아닙니다.
TCP -> 이더넷 프로토콜과 같이 3계층 논리적 주소와 2계층 물리적 주소 사이에 관계가 없는 프로토콜에서 ARP 프로토콜과 같은 매커니즘을 사용해 물맂거 주소와 논리적 주소를 연결합니다.
호스트에서 처음 통신을 시도하면 바로 패킷을 캡슐화(Encapsulation)할 수 없습니다.
호스트에서 출발지와 목적지 IP주소는 미리 파악이 가능하지만 상대방의 MAC주소를 알 수 없기 때문입니다. 상대방의 MAC 주소를 알아내기 위해서는 ARP 브로드캐스트를 이용해서 네트워크 전체에 상대방의 MAC 주소를 질의해야합니다.
ARP 브로드캐스트를 받은 목적지는 ARP 프로토콜로 자신의 MAC 주소를 응답합니다.
이 작업이 완료되면 출발지, 목적지의 둘 다 상대방에 대한 MAC 주소를 알기에 패킷은 정상적으로 인캡슐레이션되어 상대방에게 전달 될 수 있습니다.
패킷 네트워크에서는 큰 데이터를 잘라 전송하므로 여러 개의 패킷을 전송해야 합니다. 그런데 패킷을 보낼 때마다 ARP 브로드캐스트를 수행하면 네트워크 통신의 효율성이 저하되므로 메모리에 이 정보를 저장하고 재사용합니다. 이를 ARP Table이라고 합니다.
ARP Table
- 성능을 위해서는 ARP 테이블이 한 번 생성되면 오래 유지될수록 좋다.
- 논리 주소는 언제든지 바뀔 수 있기 때문에 일정 시간 이상 통신이 없으면 이 테이블은 삭제된다.
- 네트워크 장비에서 ARP 작업은 CPU에서 직접수행하기에 짧은 시간에 많은 ARP요청이 들어오면 네트워크 장비에는 큰 부하가 걸린다. 이를 해결하기 위해 다음과 같은 방법들을 사용한다.
-> ARP 테이블 저장 기간을 일반 PC보다 길게 설정
-> 많은 ARP 요청이 들어오면 필터링하거나 천천히 처리한다.
-> ARP 테이블을 수동으로만 갱신하도록 설정해 운영한다.
- 이외에도 DNS캐시나 라우팅 캐시와 같이 다양한 계층에서 네트워크의 성능을 높이기 위한 캐시 테이블을 가지고 있다.