반응형
DHCP(Dynamic Host Configuration Protocol)
DHCP는 Host IP 구성 관리를 단순화하는 IP 표준이다.
- 동적 호스트 구성 프로토콜 표준에서는 DHCP 서버를 사용하여 IP 주소 및 관련된 기타 구성 세부 정보를 네트워크의 DHCP 사용 클라이언트에게 동적으로 할당하는 방법을 제공한다.
- 쉽게 말해서 DHCP 서버가 클라이언트의 IP주소, 서브넷 마스크, DNS 서버 IP주소, 임대 기간 등 다양한 네트워크 정보를 자동으로 할당해주는 프로토콜이다.
- OSI Layer 7계층 중 Application Layer에 속한다.
- “Plug and Play(PnP) protocol”이라고 불린다.
- 꽂기만 하면 사용할 수 있는 ‘즉시 시작’이라는 뜻이다.
- 연결 후 작동하는 프로토콜이다.
DHCP는 UDP를 사용한다. UDP는 TCP와 달리 연결 설정 과정이 없고, 간단한 패킷 조와 높은 전송 속도를 가지고 있다. DHCP는 신뢰성보다 빠른 속도를 중요시하기에 UDP를 사용한다.
장점
- 이용자가 네트워크 정보를 직접 설정할 필요 없이 자동으로 그 설정이 가능하기 때문에 네트워크 관리가 용이해진다.
- 높은 이동성: DHCP는 높은 이동성을 보장하며 사용자는 네트워크 범위 내에서 어디서든지 모바일 장치를 이용할 수 있다.
- 효율적인 네트워크 관리: DHCP를 사용하면 별도의 IP 할당 서버가 필요하지 않아 네트워크 관리 효율성이 개선된다.
- IP 체계의 유연성: DHCP를 이용하면 최종 사용자에게 지장을 주지 않으면서 IP 주소 체계를 손쉽게 변경할 수 있다.
단점
- 이용자가 DHCP 서버에 의존하게 되므로 DHCP 서버가 다운되면 IP 할당이 제대로 이루어지지 않을 수 있다.
- 승인받지 않은 DHCP 서버가 잘못된 정보를 클라이언트에게 제공할 수 있다.
- 승인받지 않은 클라이언트가 DHCP 서버를 가로채 리소스에 대한 접근 권한을 얻을 수도 있다.
- 악성 클라이언트가 DHCP 리소스를 소모시킬 수 있다.
DHCP 작동 방식
DHCP를 통한 IP 주소 할당은 "임대" 개념이다.
“임대 - 연장(or not) - 반납” 의 방식으로 이루어진다.
- 영구적으로 IP 주소를 할당하는 것이 아니다.
- 임대 기간(IP Lease Time)을 정하여 그 기간 동안 클라이언트가 해당 IP 주소를 사용하게 된다.
- 임대기간 이후에도 해당 IP 주소를 사용하려면 임대기간 연장을 요청해야 한다.
- 더 이상 해당 IP 주소가 필요하지 않다면 IP 주소 반납 절차를 수행하게 된다.
1. IP 주소 할당 절차(IP Address Allocation Procedure)
- DHCP discover (broadcast)
- Client가 DHCP 연결을 요청한다.
- DHCP offer (broadcast)
- DHCP Server가 IP 목록을 제공한다.
- DHCP request (broadcast)
- Client가 IP 목록 중에서 선택한다.
- DHCP ACK (broadcast)
- DHCP Server가 확인 메시지와 다양한 네트워크 정보(IP, Subnet, Gateway, DNS, Lease Time 등)를 전송한다.
2. 주소 임대기간 연장 절차(IP Address Renewal Procedure)
- DHCP request (Unicast)
- Client가 DHCP 서버에게 연장을 요청한다.
- 서로의 IP주소를 이미 알고 있기 때문에 Unicast 방식으로 보낸다.
- DHCP ACK (Unicast)
- 응답(수락) 패킷과 데이터를 보낸다.
3. IP 주소 반납 절차(IP Address Release Procedure)
- DHCP release (Unicast)
- Client가 DHCP 서버에게 IP주소와 자원을 반납을 한다.
그 외의 메세지
DHCP NAK
- 서버가 요청을 거부했을 때 보내는 메세지다.
DHCP inform
- 클라이언트가 IP 주소 이외의 설정 정보를 요청할 때 보내는 메세지다.
참고 자료
반응형
'코딩기록 > CS' 카테고리의 다른 글
[Java] Final 키워드 (0) | 2023.05.25 |
---|---|
[운영체제] 메모리의 연속 할당 방식 (0) | 2023.04.13 |
[네트워크] [모든 개발자를 위한 HTTP 웹 기본 지식(김영한)] 1 (0) | 2023.03.22 |
[OS] 프로세스 스케줄링 알고리즘 (1) | 2023.03.13 |
[OS] 단기, 중기, 장기 스케줄러 (0) | 2023.03.09 |