DHCP(Dynamic Host Configuration Protocol)는 네트워크에 연결된 기기(클라이언트)가 통신을 위해 필요한 IP 주소, 서브넷 마스크, 기본 게이트웨이, DNS 서버 주소 등의 네트워크 구성 파라미터를 자동으로 할당해 주는 프로토콜입니다.
자동으로 IP를 할당하고 회수하기 때문에 IP 충돌을 방지하고 네트워크 관리의 효율성을 크게 높여줍니다. 작동 원리의 핵심인 DORA (Discover-Offer-Request-Acknowledge) 프로세스와 주요 메시지들을 상세히 정리해 보겠습니다.
1. DHCP의 핵심 동작 방식 : DORA 프로세스
단말기가 네트워크에 연결되어 IP를 할당받는 과정은 4단계로 이루어지며, 각 단계의 앞 글자를 따서 DORA라고 부릅니다. DHCP 서버는 UDP 67번, 클라이언트는 UDP 68번 포트를 사용합니다.
① Discover (탐색)
- 메시지 : DHCPDISCOVER
- 방식 : 브로드캐스트 (Broadcast)
- 설명 : "이 네트워크에 DHCP 서버 있나요? 저 IP 주소가 필요해요!"
새로 연결된 클라이언트는 자신의 IP도, 서버의 IP도 모르는 상태입니다. 따라서 출발지 IP는 0.0.0.0, 목적지 IP는 255.255.255.255(브로드캐스트)로 설정하여 네트워크 전체에 메시지를 뿌립니다.
② Offer (제안)
- 메시지 : DHCPOFFER
- 방식 : 유니캐스트 또는 브로드캐스트 (클라이언트의 브로드캐스트 플래그 설정에 따라 다름)
- 설명 : "제가 DHCP 서버입니다. 이 IP 주소(예: 192.168.1.10)와 설정들을 사용하시겠어요?"
DHCPDISCOVER를 수신한 DHCP 서버는 IP 주소 풀(Pool)에서 사용 가능한 IP 하나를 골라 임대 시간(Lease Time), 서브넷 마스크 등과 함께 클라이언트에게 제안합니다.
③ Request (요청)
- 메시지 : DHCPREQUEST
- 방식 : 브로드캐스트 (Broadcast)
- 설명 : "감사합니다! 제안해주신 그 IP 주소를 제가 사용하겠습니다."
중요한 점 : 여기서 통신을 유니캐스트가 아닌 브로드캐스트로 하는 이유가 있습니다. 네트워크 상에 여러 대의 DHCP 서버가 있을 수 있는데, 클라이언트가 특정 서버의 제안을 수락했음을 다른 모든 서버에게도 알려주어 다른 서버들이 제안했던 IP를 다시 자신들의 풀(Pool)로 회수할 수 있도록 하기 위함입니다.
④ Acknowledge (확인 및 승인)
- 메시지 : DHCPACK
- 방식 : 유니캐스트 또는 브로드캐스트
- 설명 : "알겠습니다. 해당 IP 주소 사용을 최종 승인합니다."
서버가 최종적으로 단말기의 MAC 주소와 할당된 IP를 매핑하여 기록(Binding)하고, 클라이언트는 이때부터 네트워크 통신을 정상적으로 시작할 수 있습니다.

2. DORA 외의 주요 DHCP 메시지
DHCP는 최초 할당 외에도 임대 연장이나 반납 등의 상황을 관리하기 위해 여러 메시지를 사용합니다.
- DHCPNAK (Negative Acknowledge) : 서버가 클라이언트의 DHCPREQUEST를 거절할 때 사용합니다.
(예: 클라이언트가 요청한 IP가 이미 다른 기기에 할당되었거나, 클라이언트가 다른 서브넷으로 이동한 경우) - DHCPDECLINE : 클라이언트가 서버로부터 제안받은 IP가 이미 네트워크 상에서 사용 중임을 스스로 감지했을 때(ARP 요청 등을 통해), 서버에게 "이 IP는 충돌이 나니 못 쓰겠습니다"라고 알리는 메시지입니다.
- DHCPRELEASE : 클라이언트가 정상적으로 네트워크를 종료하거나 IP를 수동으로 해제할 때, "이제 이 IP는 안 씁니다. 반납할게요"라고 서버에 알립니다.
- DHCPINFORM : 클라이언트가 이미 IP 주소는 가지고 있지만, DNS 서버 주소 등 추가적인 네트워크 구성 정보만 서버에 요청할 때 사용합니다.
3. IP 임대 갱신 (Lease Renewal) 메커니즘
DHCP로 할당받은 IP는 영구적인 것이 아니라 임대 기간(Lease Time)이 존재합니다. 통신이 끊기지 않기 위해 클라이언트는 주기적으로 갱신을 요청합니다.
- T1 타이머 (임대 기간의 50% 경과 시) : 클라이언트는 자신에게 IP를 빌려준 그 DHCP 서버에게 유니캐스트로 DHCPREQUEST를 보내 임대 연장을 요청합니다. 서버가 DHCPACK을 주면 기간이 연장됩니다.
- T2 타이머 (임대 기간의 87.5% 경과 시) : 만약 기존 서버가 다운되어 T1 때 연장을 못 했다면, 클라이언트는 DHCPREQUEST를 브로드캐스트로 뿌려 네트워크 상의 아무 DHCP 서버에게나 연장을 도와달라고 요청합니다.

정답은 3번. DHCP Discover 메시지는 Client가 브로드캐스팅 메시지를 보내 DHCP 서버를 찾는 메시지이다.
