ARP(Address Resolution Protocol)란?_개념
주소 결정 프로토콜(Address Resolution Protocol)란?
해당 IP를 그 IP주소에 맞는 물리적인 주소 즉, MAC주소를 가지고 오는 프로토콜입니다.
RARP :
역순 주소 결정 프로토콜 (Reverse Address Resolution Protocol)
ARP와 반대로 해당 MAC주소에 맞는 IP값을 알아오는 프로토콜 입니다.
ARP 패킷 구조
1) Hardware Type
- 16bit로 ARP가 수행되고 있는 네트워크 유형을 정의
- 이더넷인 경우 값은 1로 설정됨
2) Protocol Type
- 16bit로 상위 프로토콜을 정의
- 상위 프로토콜이 IP일경우 0x0800으로 설정됨
3) Hardware Length
- 8bit로 물리주소의 길이를 바이트 단위로 정의
- 이더넷인 경우 6으로 설정
4) Protocol Length
- 8bit로 논리주소의 길이를 바이트단위로 정의
- 이더넷인 경우 4로 설정
5) Operation
- 16bit로 패킷의 유형을 정의
- ARP Request : 1, ARP Reply : 2
6) Sender Hardware Address
- 송신자의 물리주소를 나타내는 필드
- 이더넷의 경우 이필드는 6byte값
7) Sender IP Address
- 송신자의 논리주소를 나타내는 필드
- IP프로토콜인 경우 4byte값
8) Target Hardware Address
- 목적지 시스템의 물리주소를 정의
- 이더넷의 경우 6byte값
- ARP Request인 경우 송신자는 목적지 시스템의 물리주소를 알 수 없어, 모두 0으로 설정
9) Target IP Address
- 목적지 시스템의 논리주소를 정의
- IP 프로토콜의 경우 4byte값
ARP 동작 원리
- 송신자는 목적지 물리주소가 필요하므로, 물리주소 요청을 위한 ARP요청 패킷을 브로드캐스트로 전송.
(브로드캐스트를 하는 이유는 목적지의 물리주소를 모르므로 모두에게 요청함.)
(요청 패킷에는 수신자가 수신자 주소를 응답할 때 필요한 송신자 주소가 포함)
- 모든 호스트와 라우터는 송신자가 보낸 ARP 요청 패킷을 수신함.
- 해당되는 수신자만 자신의 논리주소와 물리주소를 넣어 응답 패킷을 유니캐스트로 전송.
ARP 동작 과정
1) 송신자는 목적지 IP Address를 지정해 패킷 송신
2) IP 프로토콜이 ARP 프로토콜에게 ARP Request 메시지를 생성하도록 요청
= ARP 요청 메시지 (송신자 물리주소, 송신자 IP주소, 00-00-00-00-00, 수신자 IP주소)
3) 메시지는 2계층으로 전달되고 이더넷 프레임으로 Encapsulation 됨
= 송신자 물리주소를 발신지 주소, 수신자 물리주소를 브로드캐스트 주소로 지정
4) 모든 호스트와 라우터는 프레임을 수신 후 자신의 ARP 프로토콜에게 전달
5) 목적지 IP Address가 일치하는 시스템은 자신의 물리주소를 포함하고 있는 ARP Reply 메시지를 보냄
= 자신의 물리주소를 포함하는 응답 메시지
6) 최초 송신 측은 지정한 IP Address에 대응하는 물리주소를 획득
cf) ARP 요청은 브로드캐스트, ARP 응답은 유니캐스트
참고 :
https://www.geeksforgeeks.org/how-address-resolution-protocol-arp-works/