ARP Protocol?
- 네트워크에서 통신을 하기 위해서는 IP주소와 MAC주소가 필요함
- 이 때 IP주소는 알지만 MAC주소는 모르는 경우가 생기는데, 이러한 경우에 3계층인 ARP Protocol을 사용해 MAC주소를 알아낼 수 있음
ARP Protocol의 구조
- Hardwate type: 2계층에서 사용하는 프로토콜을 지정하는 값, 보통 이더넷 프로토콜의 값인 0001이 들어감
- Protocol type: 프로토콜 주소로 어떤것을 사용했는지 지정하는 값, 보통 IPv4값인 0800이 들어감
- Opcode: 프로토콜의 요청 여부를 작성하는 부분, 프로토콜을 요청하는 경우 0001, 요청한 프로토콜에 응답하는 경우 0002가 들어감
- Hardware Address Length: 하드웨어 주소의 길이값, 그림에서는 06
- Protocol Address Length: 프로토콜 주소의 길이값, 그림에서는 04
- Source Hardware Adress: 출발지의 MAC 주소
- Destination Hardware Adress: 목적지의 MAC 주소
- Destination Protocol Adress: 목적지의 IP 주소
ARP Protocol의 작동 과정
- A에서 C로 통신을 한다 가정
- A에서 형식에 맞추어 ARP 프로토콜 작성, 이 때 상대방의 MAC주소를 모르기 때문에 MAC주소는 00:00:00:00:00:00으로 비워서 보냄
- ARP 프로토콜을 이더넷 프로토콜로 capsulization 시행, 목적지의 MAC주소 값은 브로드캐스트 주소(FF:FF:FF:FF:FF:FF)로 작성
- 작성한 패킷을 스위치를 통해 내부 네트워크 전체에 전달
- 호스트는 데이터를 확인해 IP주소가 일치하지 않으면 패킷을 버리고, 일치할 경우 요청에 응답하는 패킷을 보냄
ARP 캐시 테이블
- ARP Protocol을 통해 알게된 MAC Adress를 IP주소와 함께 별도의 캐시 테이블에 보관하게 됨
- 이후 같은 IP주소로 통신하게 되는 경우 MAC주소를 캐시 테이블에서 가져오게 됨