DHCP(动态主机配置协议)是一个局域网的网络协议。指的是由服务器控制一段lP地址范围,客户机登录服务器时就可以自动获得服务器分配的lP地址和子网掩码。默认情况下,DHCP作为Windows Server的一个服务组件不会被系统自动安装,还需要管理员手动安装并进行必要的配置。
封包格式
DHCP封包在传输层( Transport Layer)是采用UDP协议,而当 Client传送给封包给 Server时,采用的是UDP 67 Port,从 Server传送给 Client则是使用UDP 68 Port。
DHCP的封包格式如右图所示,各字段定义如下:
DHCP报文格式
OP:
若是 client 送给 server 的封包,设为 1 ,反向为 2。HTYPE
硬件类别,Ethernet 为 1。
HLEN:
硬件地址长度, Ethernet 为 6。
HOPS:
若封包需经过 router 传送,每站加 1 ,若在同一网内,为 0。
TRANSACTION ID:
DHCP REQUEST 时产生的数值,以作 DHCPREPLY 时的依据。
SECONDS:
Client 端启动时间(秒)。
FLAGS:
从 0 到 15 共 16 bits ,最左一 bit 为 1 时表示 server 将以广播方式传送封包给 client ,其余尚未使用。
ciaddr:
要是 client 端想继续使用之前取得之 IP 地址,则列于这里。
yiaddr:
从 server 送回 client 之 DHCP OFFER 与 DHCPACK封包中,此栏填写分配给 client 的 IP 地址。
siaddr:
若 client 需要透过网络开机,从 server 送出之 DHCP OFFER、DHCPACK、DHCPNACK封包中,此栏填写开机程序代码所在 server 之地址。
giaddr:
若需跨网域进行 DHCP 发放,此栏为 relay agent 的地址,否则为 0。
chaddr:
Client 之硬件地址。
sname:
Server 之名称字符串,以 0x00 结尾。
file:
若 client 需要透过网络开机,此栏将指出开机程序名称,稍后以 TFTP 传送。
原文:https://www.cnblogs.com/jitianxuan/p/11924271.html