[Computer Network] - RARP & DHCP

오현석·2024년 10월 3일
1

Computer Network

목록 보기
7/25

RARP

RARP는 Host가 자신의 IP주소를 알지 못할 때, 자신이 사용할 수 있는 IP주소를 할당받으려고 사용한다.

예를 들어, 우리가 컴퓨터에서 IP 주소를 직접 적는 것이 아닌 이상 자동으로 컴퓨터가 IP를 할당받아 사용하게 되는데, 이때 RARP를 사용해서 자신의 IP주소를 받을 수 있다.
RARP 패킷의 형식과 프로토콜 순서는 다음과 같다.

프로토콜 진행 순서

  1. IP를 할당받고자 하는 Sender가 자신의 MAC 주소를 기입하여 접속된 네트워크에 Broadcast하게 RARP Request를 보낸다.
  2. RARP 서버는 이 Request를 받아 해당 Host가 사용할 수 있는 IP주소를 다시 보내주게 된다.

패킷 구조

형식은 ARP 패킷과 거의 동일하지만, Request에서 Sender의 Protocol address를 공란으로 비워두고 Target은 Broadcast 해야하므로 공란으로 비워서 Request하는 것이 특징이다.

역시 이 RARP 패킷도 Datalink의 Frame으로 들어가면 ARP처럼 캡슐화되어 들어가게 되고, Frame의 Type 부분에서 이 프레임이 RARP 프레임이라는 것을 명시해줄 수 있다.


그러나 이렇게 RARP를 통해 IP주소를 할당받아도 Host는 인터넷에 접속할 수 없다. RARP는 IP주소만 제공해주기 때문에 Subnet Mask값과 Default Gateway 정보를 Host는 알 수가 없어서 인터넷에 접속할 수 없다.
물론 RARP를 사용하고 다른 것들도 사용해서 다른 정보들을 가져올 수 있겠지만 이것 자체가 이미 오버헤드가 늘어나는 것이기 때문에 성능이 떨어진다.

그래서 이러한 필수적인 정보들을 한번에 줄 수 있는 방식을 사용하는 데 대표적인 방식이 바로 DHCP이다.

DHCP

DHCP도 RARP처럼 DHCP Server를 두어 Host들이 동적으로 IP주소를 할당받을 수 있도록 한다. DHCP 프로토콜에 해당하는 메세지들은 다음과 같다.

  • DHCP discover(optional) : DHCP 서버가 존재하는 지 확인
  • DHCP offer(optional) : DHCP 서버가 존재함을 알림과 동시에 사용 가능한 주소들과 값을 보냄.
  • DHCP request : 어떤 값을 사용하겠다고 선택.
  • DHCP ACK : 그 주소를 잘 쓰라고 확인해줌.

여기 optional한 부분은 안 쓸 수도 있다. 예를 들어, host가 DHCP 서버의 주소를 알고 있고, 예전에 썼던 IP값을 그대로 쓰겠다고 요청하는 경우는 위에서 언급한 optional 요청들을 사용하지 않을 수 있다.

이런 DHCP는 RARP와 달리 IP주소, Mask값, first-hop router address(=Default gateway), DNS 주소 등을 한번에 알려줄 수 있다. 참고로 이 DHCP는 Application layer에서 사용하는 프로토콜이다.

profile
다함께 성장하는 개발자 세상을 꿈꾸는 MLOps 엔지니어입니다😁 작성 당시 제 생각의 흐름을 독자 모두가 공감하고 이해할 수 있게 적으려고 노력합니다. 조언이나 질문은 언제든 환영입니다!

0개의 댓글