Logical address: IP 주소
Physical address: Ethernet MAC 주소
Data link layer에서의 데이터 포워딩
송신자가 목적지 IP주소는 알지만 MAC주소를 모를 때 사용
ARP 요청을 망 전체에 브로드캐스트 (broadcast address 사용)
대응되는 물리주소를 가진 호스트가 ARP 응답을 보냄
송신자는 해당 물리주소를 ARP 테이블에 기록하여, 일정 시간동안 유지함
ARP는 Data link layer(layer 2)과 Network layer(layer 3) 사이의 중간적인 역할을 하는 프로토콜이다.

송신자가 목적지 IP주소 가진 호스트의 MAC주소를 알고 싶을 때, ARP 요청을 broadcast한다. 해당 IP주소를 가진 호스트가 자신의 MAC주소를 담은 ARP reply를 unicast 한다.


Source(출발지, host)는 목적지의 IP 주소는 알고 있지만, 물리적 주소(MAC 주소)는 모른다. 따라서 패킷을 보낼 수 없다.
Source는 ARP 요청을 생성한다. 이 요청에는 출발지의 IP 주소와 물리적 주소, 그리고 목적지의 IP 주소가 포함된다.
ARP 요청은 네트워크 전체에 브로드캐스트된다.
네트워크의 모든 호스트는 ARP 요청을 수신한다.
목적지 IP 주소를 가진 호스트만이 패킷에 응답한다. 그 외의 모든 호스트는 패킷을 폐기한다.
목적지 노드는 ARP 요청을 수신한 후 자신의 MAC 주소를 포함하여 ARP 응답을 보낸다. 목적지 노드는 이미 출발지의 물리적 주소(MAC 주소)를 알고 있기 때문에, 응답 패킷은 출발지 노드에게만 유니캐스트(unicast)로 전송된다.
출발지 노드는 ARP 응답을 수신하여 목적지의 물리적 주소(MAC 주소)를 알게 된다. 목적지 MAC 주소를 자신의 ARP 캐시 테이블에 저장하며, ARP 테이블은 일정 시간동안 유효하다.
이제 출발지 장치는 목적지 장치의 IP 주소와 MAC 주소를 모두 알고 있으므로, 데이터 패킷을 장치 B로 전송할 수 있다.
호스트의 IP 주소: 130.23.43.20
호스트의 물리 주소: B2:34:55:10:22:10
호스트는 IP 주소가 130.23.43.25이고, 물리주소가 A4:6E:F4:59:83:AB인 목적지에 보내려고 한다. 그러나 출발지 호스트는 목적지 호스트의 물리주소를 몰라서, ARP를 사용해야 한다.
ARP request와 reply의 내용은 무엇일까?

ARP request
하드웨어 타입 이더넷, 프로토콜 타입 IPv4
MAC주소 길이 6바이트, IP주소 길이 4바이트, Operation은 요청 (1)
출발지 MAC주소
출발지 IP주소
목적지 MAC주소 (알수 없어서 00으로 보낸다)
목적지 IP주소
ARP reply
하드웨어 타입 이더넷, 프로토콜 타입 IPv4
MAC주소 길이 6바이트, IP주소 길이 4바이트, Operation은 응답 (2)
송신자 MAC주소 (알고 싶었던 MAC주소)
송신자 IP주소
수신자 MAC주소 (ARP request에서 받은 출발지의 MAC주소)
수신자 IP주소