# 2.4.1 ARP, RARP

### ARP와 RARP

#### ARP (Address Resolution Protocol)

ARP(Address Resolution Protocol)는 IP 주소를 물리적 MAC 주소로 변환하는 프로토콜입니다. 네트워크에서 데이터 패킷을 전송할 때, IP 주소만으로는 데이터가 정확히 어느 장치로 가야 할지 알 수 없습니다. 따라서 ARP를 사용하여 IP 주소를 MAC 주소로 변환하여 데이터 패킷이 올바른 장치에 도달할 수 있도록 합니다.

**ARP의 작동 원리**

1. **ARP 요청 (ARP Request)**:
   * 송신 장치가 대상 장치의 MAC 주소를 알지 못할 때, 네트워크에 ARP 요청 메시지를 브로드캐스트합니다.
   * 이 메시지에는 송신 장치의 IP 주소와 MAC 주소, 대상 장치의 IP 주소가 포함됩니다.
2. **ARP 응답 (ARP Reply)**:
   * 네트워크 내의 모든 장치가 ARP 요청을 수신하고, 요청된 IP 주소를 가진 장치가 자신의 MAC 주소를 포함한 ARP 응답 메시지를 송신 장치에 유니캐스트로 보냅니다.
   * 송신 장치는 ARP 응답 메시지를 수신하여 대상 장치의 MAC 주소를 확인하고 이를 자신의 ARP 캐시에 저장합니다.

**ARP 요청과 응답 예시**

* **ARP 요청**:
  * 송신 장치 A (IP: 192.168.1.1, MAC: AA:AA:AA:AA:AA)가 대상 장치 B (IP: 192.168.1.2)의 MAC 주소를 모르기 때문에 네트워크에 ARP 요청을 브로드캐스트합니다.
  * "192.168.1.2의 MAC 주소를 알려주세요."
* **ARP 응답**:
  * 대상 장치 B (IP: 192.168.1.2, MAC: BB:BB:BB:BB:BB)는 자신의 MAC 주소를 포함한 ARP 응답을 송신 장치 A에게 유니캐스트로 보냅니다.
  * "192.168.1.2의 MAC 주소는 BB:BB:BB:BB:BB입니다."

**ARP 캐시**

송신 장치는 자주 사용하는 IP 주소와 MAC 주소의 매핑 정보를 ARP 캐시에 저장하여 네트워크 성능을 향상시킵니다. ARP 캐시에 저장된 정보는 일정 시간 후 만료되며, 필요 시 다시 ARP 요청을 통해 갱신됩니다.

#### RARP (Reverse Address Resolution Protocol)

RARP(Reverse Address Resolution Protocol)는 MAC 주소를 IP 주소로 변환하는 프로토콜입니다. 이는 주로 디스크가 없는 워크스테이션이나 초기 네트워크 장치에서 사용됩니다. 이러한 장치는 부팅 시 자신의 IP 주소를 알지 못하기 때문에 RARP를 통해 네트워크 상의 RARP 서버로부터 IP 주소를 할당받습니다.

**RARP의 작동 원리**

1. **RARP 요청 (RARP Request)**:
   * 장치가 부팅되면, 자신의 MAC 주소를 포함한 RARP 요청 메시지를 네트워크에 브로드캐스트합니다.
   * "내 MAC 주소는 AA:AA:AA:AA:AA입니다. 나에게 IP 주소를 할당해 주세요."
2. **RARP 응답 (RARP Reply)**:
   * 네트워크 상의 RARP 서버는 RARP 요청을 수신하고, 해당 MAC 주소에 매핑된 IP 주소를 확인하여 RARP 응답 메시지를 유니캐스트로 보냅니다.
   * "MAC 주소 AA:AA:AA:AA:AA에 할당된 IP 주소는 192.168.1.1입니다."

#### ARP와 RARP의 비교

| 기능       | ARP                                  | RARP                              |
| -------- | ------------------------------------ | --------------------------------- |
| 목적       | IP 주소를 MAC 주소로 변환                    | MAC 주소를 IP 주소로 변환                 |
| 사용 시기    | 데이터 전송 시 IP 주소에 해당하는 MAC 주소를 알아야 할 때 | 디스크가 없는 장치가 부팅 시 IP 주소를 할당받아야 할 때 |
| 요청 방식    | 네트워크에 브로드캐스트                         | 네트워크에 브로드캐스트                      |
| 응답 방식    | 대상 장치가 유니캐스트로 응답                     | RARP 서버가 유니캐스트로 응답                |
| 사용 프로토콜  | IP, MAC                              | MAC, IP                           |
| 주요 사용 사례 | 네트워크에서 데이터 전송                        | 초기 부팅 시 IP 주소 할당                  |

이와 같이 ARP와 RARP는 각각 IP 주소와 MAC 주소 간의 변환을 통해 네트워크 통신을 원활하게 하는 중요한 프로토콜입니다. ARP는 주로 IP 주소를 MAC 주소로 변환하여 데이터 전송 시 사용되며, RARP는 초기 네트워크 장치가 부팅 시 자신의 IP 주소를 할당받기 위해 사용됩니다. 이를 통해 네트워크 장치는 상호 간에 원활하게 통신할 수 있습니다.
