ARP(Address Resolution Protocol)

ARP는 논리적인 주소(Logical Address)를 물리적 주소(Physical Address)로 변환하는 프로토콜을 의미합니다. 논리적인 주소라함은 IP주소, 물리적 주소는 MAC 주소(하드웨어 주소)라고 생각하면 훨씬 편합니다. IP주소는 어떻게 생겼죠?

예를 들어 저의 IP는 192.168.35.10이라고 해봅시다. 그리고 저희 MAC주소는 AA:BB:CC:DD:EE:FF라고 해볼게요. 저의 IP주소는 저 말고도 다른 사람도 쓸 수 있습니다. 왜냐면 네트워크는 특정 구역마다 나누어져 있으니까요. 쉽게 라우터를 기준으로 나누어져 있다고 생각하시면 됩니다. 그래서 논리적인 주소라 칭합니다. 저의 MAC주소는 이 세상에 단 하나밖에 없습니다. 하드웨어 고유한 주소이기 때문에 물리적 주소라고 합니다.

같은 네트워크에서는 IP주소로 통신하지 않고 물리적 주소를 가지고 통신합니다. 즉, MAC주소를 사용하여 통신한다는 것이죠. 스위치가 왜 2계층에 동작하는 것이 그 이유입니다. 2계층에서 MAC주소만 보아 정보 전송을 하면 되니까요.

어쨌든, IP주소를 MAC주소로 변환하는 프로토콜이 ARP라고 하는 거죠. ARP의 동작 방식을 보도록 합시다.

  1. 초기 Host A는 192.168.30.6에 MAC주소를 모르니까 네트워크 전체에 192.168.30.6에 대한 MAC주소를 물어보는 요청을 보냅니다.

    ARP Request

    ARP Request

  2. 이 IP주소에 맞는 다른 호스트는 자신의 MAC주소를 담아 응답을 보냅니다. 요청 메시지에 자신의 MAC주소를 요청한 호스트 A의 IP주소가 있기 때문에 A에게 응답을 곧장 보낼 수 있습니다.

    ARP Reply

    ARP Reply

  3. MAC주소를 알아낸 호스트 A는 ARP의 정보를 담고 있는 저장소에 192.168.30.6의 MAC주소를 업데이트 합니다. 이 저장소를 ARP Cache라고 하며 일정 시간 후에 이 정보를 삭제합니다.

RARP(Reverse ARP)

반대로 MAC주소를 IP주소로 변환하는 프로토콜은 무엇일까요? ARP의 반대 과정을 거친다고 하여 RARP(Reverse ARP)라고 합니다. RARP 동작이 되려면 따로 RARP 서버가 존재하여야합니다. 자신의 IP를 모를때 이 프로토콜을 사용합니다. 동작방식은 아래의 순서와 같습니다.

  1. 최초 호스트 A는 자신의 IP를 모르는 상태이기 때문에 IP를 요청하는 RARP Request를 Broadcasting으로 보냅니다. 이때 요청에는 자신의 MAC주소가 기재되어있습니다.

    RARP Request

    RARP Request

  2. RARP 서버는 요청한 호스트 A의 IP 주소를 담은 RARP 응답 메시지를 만들어 Host A에게 전송합니다.

    RARP Reply

    RARP Reply

https://tm-csc.tistory.com/891

https://reakwon.tistory.com/139

https://velog.io/@hayeon/ARP와-RARP-protocol-차이점