본문 바로가기

개념정리/네트워크

[네트워크] 03-2. ARP 프로토콜


 

03-2. ARP 프로토콜

 

[기능]

 - 주소 결정 프로토콜 Address Resolution Protocol 

 - IP 주소를 이용해 통신 대상의 MAC주소를 알아오는 프로토콜

 

 

[구조]

1 2 3 4 Byte
Hardware type Protocol type 4
Hardware Address Length Protocol Address Length Opcode 8
Source Hardware Address 12
Source Hardware Address Source Protocol Address 16
Source Protocol Address Destination Hardware Address 20
Destination Hardware Address 24
Destination Protocol Address 28

 - 28바이트

 - Hardware type : 2계층 프로토콜 타입

   * 보통 APR 프로토콜에서 이더넷 프토토콜을 사용 (0x0001)

 - Protocol type : 3계층 프로토콜 타입

   * 보통 ARP 프로토콜에서 IPv4 프로토콜 사용 (0x0800)

 - Hardware Address Length : MAC주소 길이 6바이트 (0x06)

 - Protocol Address Length : IPv4주소 길이 4바이트 (0x04)

 - Opcode : Operation Code 동작을 규정하는 코드 2종류 (요청 0x0001응답 0x0002)

∴ 첫 7바이트 기본 형태 

    0x00010800

    0x0604000?

 - Source/Destination Hardware Address : 출발지/도착지 MAC주소

 - Source/Destination Protocol Address : 출발지/도착지 IPv4 주소 

 

 

[통신과정]

 1. 처음 ARP 요청시 목적지 MAC주소를 모르기 때문에 0으로 채움 (요청이므로 Opcode는 0x0001)

 2. Ethernet 헤더는 목적지 MAC주소를 FF로 채움 

 3. 브로드캐스팅! 동일 네트워크 대역에 있는 모두에게 보내버려! 

 4. 수신한 모든 장비는 패킷을 열어보고(Decapsulation) 목적지 IP주소가 자신의 IP주소와 같지 않다면 버림

 5. 목적지 IP주소가 자기 자신인 장비는 ARP 패킷의 목적지 MAC주소를 자신의 MAC주소로 바꾼 후 응답

 6. ARP 캐시 테이블에 IP주소와 MAC주소를 매핑한 정보를 등록

 7. 향후 통신에 ARP 테이블을 참조한다

 

 

[ARP 테이블]

 - 통신했던 IP주소와 MAC주소를 자동으로 캐싱

 - 일정 시간이 지나면 사라짐

 - 직접 수동으로 등록한 정보는 휘발되지 않는다

 

 

[ARP 패킷 예시]