?
协议结构
8 bits 16 bits 24 bits 32 bits
Op
Htype Hlen
Hops
Xid
Secs
Flags
Ciaddr
Yiaddr
Siaddr
Giaddr
Chaddr (16 bytes) Sname (64 bytes) File (128 bytes)
Option (variable)
Op – 消息操作代码,既可以是引导请求(BOOTREQUEST)也可以是引导答复(BOOTREPLY)
? ? ?
Htype – 硬件地址类型 Hlen – 硬件地址长度 Xid –处理ID
? ? ? ? ? ? ? ? ? ?
Secs –从获取到IP地址或者续约过程开始到现在所消耗的时间 Flags –标记
Ciaddr –客户机 IP地址
Yiaddr –“你的”(客户机)IP 地址
Siaddr –在 bootstrap 中使用的下一台服务器的IP地址 Giaddr –用于导入的接替代理IP地址 Chaddr –客户机硬件
Sname –任意服务器主机名称,空终止符
File –DHCP 发现协议中的引导文件名、空终止符、属名或者空,DHCP供应协议中的受限目录路径名
Options –可选参数字段。参考定义选择列表中的选择文件
? DHCP统一使用两个IANA分配的端口作为BOOTP:服务器端使用67/udp,客户端使用68/udp。 DHCP运行分为四个基本过程,分别为请求IP租约、提供IP租约、选择IP租约和确认IP租约。 客户在获得了一个IP地址以后,就可以发送一个ARP请求来避免由于DHCP服务器地址池重叠而引发的IP冲突。 ? ? DHCP 工作过程:
DHCPDISCOVER DHCPOFFER DHCPREQUEST DHCPACK UDP Src=0.0.0.0 UDP UDP Src=0.0.0.0 UDP Src=192.168.1.1 sPort=68 Src=192.168.1.1 sPort=68 sPort=67 Dest=255.255.255sPort=67 Dest=255.255.255Dest=255.255.255.2Dest=255.255.255.255 dPort=67 .255 dPort=68 .255 dPort=67 55 dPort=68 OP HTYPHLEHOPE N S OP HTYPHLEHOPE N S OP HTYPHLEHOPE N S OP HTYPHLEHOPE N S 0x00x00x00x00x00x00x00x00x00x00x00x00x01 0x01 0x01 0x01 1 6 0 2 6 0 1 6 0 2 6 0 XID XID XID XID 0x3903F326 0x3903F326 0x3903F326 0x3903F326 SECS FLAGS SECS FLAGS SECS FLAGS SECS FLAGS 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000 CIADDR CIADDR CIADDR CIADDR (Client IP Address) 0x00000000 0x00000000 0x00000000 0x00000000 YIADDR YIADDR YIADDR YIADDR (Your IP Address) 0x00000000 0xC0A80164 0x00000000 0xC0A80164 SIADDR SIADDR SIADDR SIADDR (Server IP Address) 0x00000000 0x00000000 0x00000000 GIADDR GIADDR GIADDR 0x00000000 GIADDR (Gateway IP 0x00000000 0x00000000 0x00000000 Address switched by relay) CHADDR CHADDR CHADDR 0x00000000 0x00053C04 0x00053C04 0x00053C04 CHADDR (Client Hardware Address) 0x8D590000 0x8D590000 0x8D590000 0x00053C04 0x00000000 0x00000000 0x00000000 0x8D590000 0x00000000 0x00000000 0x00000000 0x00000000 192 octets of 192 octets of 192 octets of 0's.BOOTP legacy 0's.BOOTP legacy 0's. BOOTPlegacy 0x00000000 Magic Cookie Magic Cookie Magic Cookie 192 octets of 0's.BOOTP legacy 0x63825363 0x63825363 0x63825363 Magic Cookie DHCP Options DHCP Options DHCP Options 0x63825363 DHCP option 53: DHCP option 53: DHCP option 53: DHCP Discover DHCP Offer DHCP Request DHCP Options DHCP option 50: DHCP option 1: 192.168.1.100 255.255.255.0 requested subnet mask [编辑]DHCP 发DHCP option 3: 192.168.1.1 现 router DHCP option 50: DHCP option 53: DHCP 192.168.1.100 ACK requested DHCP option 1: DHCP option 54: 255.255.255.0 192.168.1.1 DHCP subnet mask server. (DISCOVER) 客户在物理子网上
[编辑]DHCPDHCP option 51: 1
发送广播来寻找可
day IP lease time
用的服务器。网络管求 理员可以配置一个本地路由来转发
请
DHCP option 3:
192.168.1.1 router
DHCP option 54: (REQUEST) DHCP option 51: 1
day IP lease time DHCP包给另一个192.168.1.1 DHCP
当客户PC收到一
server 子网上的DHCP服
个IP租约提供时,
务器。该客户实现生
它必须告诉所有其DHCP option 54:
成一个目的地址为[编辑]DHCP提他的DHCP服务器192.168.1.1 DHCP 255.255.255.255server 它已经接受了一个供 (OFFER) 或者一个子网广播
租约提供。因此,该
地址的UDP包。 当DHCP服务器收[编辑]DHCP确认 客户会发送一个客户也可以申请它到一个来自客户的DHCPREQUEST
(Acknowledge,使用的最后一个IPIP租约请求时,它消息,其中包含提供
地址(在下面的例子会提供一个IP租租约的服务器的约。DHCP为客户IP。当其他DHCP
192.168.1.100)。保留一个IP地址,服务器收到了该消当DHCP服务器收到如果该客户所在的然后通过网络发送息后,它们会收回所来自客户的里为
网络中此IP仍然可一个DHCPOFFER有可能已提供给客REQUEST消息后,它
该消息户的租约。用,服务器就可以准消息给客户。然后它们就开始了配置过程的许该申请。否则,就包含客户的MAC地把曾经给客户保留最后阶段。这个响应阶
要看该服务器是授址、服务器提供的的那个地址重新放段包括发送一个权的还是非授权的。 IP地址、子网掩码、回到可用地址池中,DHCPACK包给客户。授权服务器会拒绝租期以及提供IP的这样,它们就可以为这个包包含租期和客请求,使得客户立刻DHCP服务器的其他计算机分配这户可能请求的其他所申请一个新的IP。IP。 非授权服务器仅仅忽略掉请求,导致一
服务器基于在
个地址。任意数量的有配置信息。这时候,DHCP服务器都可TCP/IP配置过程就完
ACK)
CHADDR字段指定以响应同一个IP租成了。 个客户端请求的超但是每一个的客户硬件地址来约请求,该服务器响应请求并时,于是客户端就会
检查配置。这里的服客户网卡只能接受发送响应给客户。整个
放弃此请求而去申务器,一个租约提供。 192.168.1.1,系统期望客户来根据请一个新的IP地将IP地址指定于
选项来配置其网卡。
址。 YIADDR字段。