IP는 혼자서 작동할 수 없음! ⇒ 결국 Datalink layer(+Physical Layer)의 도움으로 네트워크에서 이동
Datalink layer (ex: Ethernet)은 MAC을 사용할텐데, 만약 MAC을 모른다면? (Next hop MAC)
+) IP는 다음 hop의 IP 주소는 알아도 MAC 주소는 모르기 때문.
⇒ ARP의 필요성!! : TO GET NEXT HOP MAC ADDRESS!!
<aside> 💡
ARP in IPv6?
ARP는 IPv6에서 사용되지 않음. 단순히 Next hop IP를 next hop MAC으로 변환하는 아주 단순한 방식. IPv6에서는 다른 역할들과 합쳐서 NDP라는 프로토콜로 바뀜. (Neighbor Discovery Protocol)
</aside>

ARP 역할에 대한 간단한 그림 표현 **Ethernet, ARP를 하나의 객체처럼 표현했지만, 프로토콜임에 유의!!
공유형 링크(Shared medium)에 연결된 모든 컴퓨터 kernel에 구현되어 있음.
다음 hop IP 주소로 가는 datagram이 도착했는데, 이 MAC 주소를 모르면 ⇒ ARP Request!!
그리고, 일단 MAC 주소를 몰라서 묻는 것이니, 당연히 Unicast 불가! ⇒ ARP Request is Broadcast (Unicast는 MAC 주소를 알아야 콕 집어 가능한 것인데, 애초에 그게 가능하다는 것은 MAC 주소를 안다는 것)
(++: Unicast로 ARP request를 하는 경우가 없는건 아님 ⇒ Directed ARP (특수 case ARP에서 다룸)
Datalink layer (ex. Ethernet)가 이 IP datagram을 보낼 수 없음. ARP는 이 next hop IP 주소를 MAC 주소로 바꿔줌.
+) ARP는 한 IP datagram에 대해 최대 1회 동작.