1. DHCPv4 메세지 포멧
ㅇ DHCP 와 관련된 패킷 구성은 BOOTP와 거의 동일
- 주로 옵션 부분에서 차이가 남
ㅇ 전체 길이는 최대 576 바이트
- 더 큰 바이트 전송시에는 사전에 약속 필요
2. DHCPv4 메세지 패킷의 구성
3. DHCPv4 메세지의 각 필드별 의미
ㅇ op : Operation Code (1 바이트)
- 메세지 유형(요청/응답)을 구분하는 코드.
. 요청(BOOTREQUEST or DHCPREQUEST) : 1 (clinet -> server)
. 응답(BOOTREPLY or DHCPREPLY) : 2 (server -> client)
ㅇ htype : Hardware Type (1 바이트)
- 물리적 네트워크 유형을 나타냄
. 1 (10 Mbps 이더넷) 등 ARP에서 사용된 값에 기초함 ☞ ARP 패킷
ㅇ hlen : Hardware Length (1 바이트)
- 하드웨어 주소의 길이
. 이더넷(Ethernet)은 6
ㅇ hops : Hop Count (1 바이트)
- 서버와 클라이언트가 다른 망에 있을 때, 중계 에이전트(Relay Agent)가 패킷 중계
. 요청 클라이언트가 0 셋팅하여 발송, 경유 중계 수 마다 증가
ㅇ xid : Transaction ID (4 바이트)
- 클라이언트가 선택하는 랜덤한 32 비트짜리 수
. 요청 및 응답을 짝짓는데 사용
ㅇ secs : Number of Seconds (2 바이트)
- BOOTP : 부팅한 이후 경과된 초의 수
- DHCP : 임대 획득 또는 갱신 이후 경과한 초의 수
ㅇ flags (2 바이트)
- 요청 클라이언트가 서버 응답을 유니캐스트/브로드캐스트인지를 구분시켜 응답 희망
ㅇ ciaddr : Client IP Address (4 바이트)
- 클라이언트 IP 주소
. 최초 요청시에는, 할당받기 전이므로 Zero IP Address(0.0.0.0)으로 셋팅됨.
ㅇ yiaddr : Your IP Address (4 바이트)
- 클라이언트에 할당되는 IP 주소로써, 응답메세지에 포함됨
ㅇ siaddr : Server IP Address (4 바이트)
- Bootstap에서 사용하기 위한 서버의 IP 주소
. DHCP 서버는 DHCPOFFER, DHCPACK에서 자신의 IP 주소를 돌려주게 됨
ㅇ giaddr : Gateway IP Address (4 바이트)
- 디폴트 게이트웨이 IP 주소
- 또는, DHCP Relay Agent IP 주소
ㅇ chaddr : Client H/W Address (16 바이트)
- 요청한 클라이언트의 MAC 주소를 지칭
ㅇ sname : Server Name String (64 바이트)
- 서버 호스트 이름 (널 문자열로 끝나게됨)
ㅇ file : Boot File Name (128 바이트)
- 부트 화일 경로명 및 화일명 (널 문자열로 끝나게됨)
ㅇ options (가변 바이트) ☞ DHCP 옵션 참조
- DHCP 확장 대부분이 이 옵션을 통해서 구현됨
- 주로, DHCP 응답 메세지에 만 사용되는 추가적 정보
- 그 크기는 옵션에 따라 가변 길이임
. 실제적으로 크기를 한정짓는 것은 상위 UDP에서 담당함