|    DHCP Message Format   DHCP 메세지 포멧 | (2018-07-05) | 
| DHCPv4 메세지 포멧 | 
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 바이트)
     - 요청 클라이언트가 서버 응답을 유니캐스트/브로드캐스트인지를 구분시켜 응답 희망
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에서 담당함
  ㅇ 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에서 담당함
"본 웹사이트 내 모든 저작물은 원출처를 밝히는 한 자유롭게 사용(상업화포함) 가능합니다"
     
[정보통신기술용어해설]          
Copyrightⓒ 차재복