[Network] ARP (Address Resolution Protocol)
⚪ARP란
- Address Resolution Protocol을 의미함
- IP주소를 MAC주소로 대응시키기 위해 사용되는 프로토콜
- IP주소와 MAC 주소를 일대일 대응하여 정리한 테이블을 ARP Table이라고 함
⚪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 과정
[기본 개념]
- 송신자는 목적지 MAC주소가 필요하므로, MAC주소 요청을 위한 ARP요청 패킷을 브로드캐스트로 전송
(목적지의 물리주소를 모르므로 브로드캐스트를 함)
(요청 패킷에는 본인 주소가 포함되어 있음)
- 모든 호스트와 라우터는 송신자가 보낸 ARP 요청 패킷을 수신함
- 해당되는 수신자만 자신의 논리주소와 물리주소를 넣어 응답 패킷을 유니캐스트로 전송
-
송신자는 목적지 IP Address를 지정해 패킷 송신
-
IP 프로토콜이 ARP 프로토콜에게 ARP Request 메시지를 생성하도록 요청
= ARP 요청 메시지 (송신자 물리주소, 송신자 IP주소, 00-00-00-00-00, 수신자 IP주소) -
메시지는 2계층으로 전달되고 이더넷 프레임으로 Encapsulation 됨
= 송신자 물리주소를 발신지 주소, 수신자 물리주소를 브로드캐스트 주소로 지정 -
모든 호스트와 라우터는 프레임을 수신 후 자신의 ARP 프로토콜에게 전달
-
목적지 IP Address가 일치하는 시스템은 자신의 물리주소를 포함하고 있는 ARP Reply 메시지를 보냄
= 자신의 물리주소를 포함하는 응답 메시지 -
최초 송신 측은 지정한 IP Address에 대응하는 물리주소를 획득
cf) ARP 요청은 브로드캐스트, ARP 응답은 유니캐스트
댓글남기기