ARP(Address Resolution Protocol)는 같은 네트워크 안에서 상대의 프로토콜 주소(예: IP 주소)를 실제 프레임 전달에 필요한 하드웨어 주소(예: Ethernet MAC 주소)로 변환하는 프로토콜이다[1]. IP가 목적지까지의 경로를 주소로 표현하는 것과 별개로, 그 경로의 매 구간에서 실제로 프레임을 실어 보내려면 다음 홉의 하드웨어 주소가 필요한데 이를 채워주는 역할을 ARP가 맡는다.
요청은 브로드캐스트, 응답은 유니캐스트
ARP는 알고 있는 IP 주소에 대응하는 하드웨어 주소를 묻는 ARP request를 네트워크의 모든 노드에게 브로드캐스트로 전송한다. 요청받은 주소를 가진 노드만 자신의 하드웨어 주소를 담은 ARP reply를 요청을 보낸 노드에게 다시 유니캐스트로 돌려보낸다[1] — 질의는 누가 응답할지 몰라 전체에 물어야 하지만, 응답은 상대가 이미 정해져 있어 그 노드에게만 보내면 되기 때문이다.
IP·이더넷과의 관계
Internet Protocol Suite에서 IP가 출발지에서 목적지까지 경로를 정하면, 그 경로의 각 홉으로 실제 프레임을 내보내는 Ethernet 같은 링크 계층은 IP 주소가 아니라 하드웨어 주소로 프레임의 목적지를 지정한다. ARP는 이 둘 사이의 간극을 메워, 라우터나 호스트가 알아낸 다음 홉의 IP 주소를 그 구간에서 실제로 쓸 하드웨어 주소로 바꿔준다.
참고문헌
[1]
D. C. Plummer, “RFC 826 — An Ethernet Address Resolution Protocol”. 1982. [Online]. Available at: https://www.rfc-editor.org/rfc/rfc826