ARP(Address Resolution Protocol)란?
- IP주소(OSI Layer 3)를 MAC주소(OSI Layer 2)로 변환해주는 프로토콜
- 동일 네트워크(LAN)에서 통신하기 위해 IP주소를 이용해서 MAC주소를 알아온다.
ARP 헤더 구조
1. 하드웨어 타입 (Hardware type) - 2byte
- 사용중인 하드웨어 주소의 타입을 나타내는 필드이다.
- ethernet : 1 / IEEE 802(Wi-fi) : 6 / HDLC : 17
2. 프로토콜 타입 (Protocol type) - 2byte
- 상위 프로토콜을 정의 한다. (IPv4 : 0x0800)
3. 하드웨어 주소 길이 (Hardware Address Length) - 1byte
- MAC 주소의 크기를 나타낸다. (MAC 주소의 길이 : 6)
4. 프로토콜 주소 길이 (Protocol Address Length) - 1byte
- 프로토콜의 길이를 정의한다. (IPv4 : 4 / IPv6 : 6)
5. Operation (OPcode) - 2byte
- 요청 패킷인지, 응답 패킷인지 확인한다.
- ARP 요청(request) : 1 / ARP 응답(reply) : 2 / RARP 요청(request) : 3 / RARP 응답(reply) : 4
6. 출발지 하드웨어 주소 (Source Hardware Address) - 6byte
- 송신자의 MAC 주소 나타낸다.
7. 출발지 프로토콜 주소 (Source Protocol Address) - 4byte
- 송신자의 IP 주소를 나타낸다.
8. 목적지 하드웨어 주소 (Source Hardware Address) - 6byte
- 수신자의 MAC 주소 나타낸다.
9. 목적지 프로토콜 주소 (Source Protocol Address) - 4byte
- 수신자의 IP 주소를 나타낸다.
ARP 헤더 C언어 구조체 구현