ARP
[NDP](https://texonom.com/ndp-4b1143ad96b14469be815ae90cd4f1f9) 


## Address Resolution Protocol
**MAC 주소가 어떻게 IP주소를 알까? 이것을 해결해주는 프로토콜**
논리적 주소(IP Address)를 기반으로 물리적 주소(MAC Address)를 알아오는 프로토콜
ARP는 Layer 2계층 이더넷 환경에서 목적지 IP주소에 대한 MAC주소 변환 동작을 담당함
ARP packet이 필요한 이유
L2 스위치는 이더넷 프레임(MAC 기반)을, L3 스위치는 패킷(IP 주소 기반) 를 기준으로 동작함
따라서, 결론을 먼저 이야기 하면 inter networking 환경에서 MAC 주소와 IP 주소를 알아야 스위치, 라우터 조합의 네트워크 망에서 통신이 가능함.
간단하게 생각해보면 TCP/IP 스택을 생각하면 이해가 빠름
(ETH | IP | TCP | socket Buffer)
인터넷에 접속을 위하여 스위치를 만나게 되는데 이놈은 ETH MAC address 를 기반으로 장비의 경로를 파악함. 라우터는 IP address 를 이용하여 네트워크 경로를 파악함.
결국, 자신이 통신을 하려는 의도가 있는 장비라면 ARP packet 을 전송하여 목적지의 MAC 주소를 파악해야함
ARP 동작원리
- ARP request : 송신자는 목적지와 통신을 할 의도가 있다면 목적지의 물리적인 주소가 필요하므로, 물리주소 요청을 위한 ARP 요청 패킷을 브로드캐스트로 전송(목적지의 물리 주소를 모르므)
-ARP reply : 모든 호스트와 라우터는 송신자가 보낸 ARP 요청 패킷을 수신하여 해당되는 수신자 (송신자가 요청한 IP를 확인하여)는자신의 IP와 MAC 을 넣어 응답패킷을 보냄.
-ARP Gratuitous ARP : IP 주소 충돌감지를 위해 사용하는 packet. 나와 동일 subnet 상에 존재하는 호스트/라우터가 누군가 GARP 를 보내면 자신의 ARP table 을 갱신함.
wireshark 를 통해 패킷을 캡쳐해보면 arp 가 송/수신되는 과정을 확인할 수 있음.(filter : arp)
ARP는 이더넷 통신의 꽃
ARP의 핵심은 뭘까요? ARP request가 boardcast 된다는 것이 핵심
LAN 통신을 하고자 하는 상대방 PC나 서버의 IP는 아는데 MAC address를 모를때, ARP request를 패킷을 보내고, ARP reply를 받아서 MAC address를 알아내서 패킷을 상대방에게 보낼 수 있게 되는 것
ARP request는 브로드캐스트 됩니다. LAN의 정의가 "ARP 패킷이 미치는(도달하는) 범위의 네트워크다


> [arp 패킷의 원리와 이해](https://sjlim5092.tistory.com/entry/arp-%ED%8C%A8%ED%82%B7%EC%9D%98-%EC%9B%90%EB%A6%AC%EC%99%80-%EC%9D%B4%ED%95%B4)

> [: PPeum 쁨 클리닉 이야기 : 네이버 블로그](https://blog.naver.com/goduck2/220138802591)





