设为首页收藏本站language→→ 语言切换

鸿鹄论坛

 找回密码
 论坛注册

QQ登录

先注册再绑定QQ

查看: 1662|回复: 4
收起左侧

[分享] DHCP报文格式

[复制链接]
 成长值: 59560
发表于 2017-11-24 16:08:19 | 显示全部楼层 |阅读模式
网络协议报文格式大全
http://bbs.hh010.com/thread-531884-1-1.html
(出处: 鸿鹄论坛)


DHCP报文格式报文格式
DHCP报文是承载于UDP上的高层协议报文,采用67(DHCP服务器)和68(DHCP客户端)两个端口号。
DHCP的报文格式如下图所示。
图1 DHCP报文格式

                               
登录/注册后可看大图

DHCP报文中各字段的含义:

字段长度含义
OP1字节
表示报文的类型:
  • 1:客户端请求报文
  • 2:服务器响应报文
htype1字节表示硬件地址的类型。对于以太网,该类型的值为“1”。
hlen1字节表示硬件地址的长度,单位是字节。对于以太网,该值为6。
Hops1字节跳数。客户端设置为0,也能被一个代理服务器设置。
xid4字节事务ID,由客户端选择的一个随机数,被服务器和客户端用来在它们之间交流请求和响应,客户端用它对请求和应答进行匹配。该ID由客户端设置并由服务器返回,为32位整数。
secs2字节由客户端填充,表示从客户端开始获得IP地址或IP地址续借后所使用了的秒数。
flags2字节
此字段在BOOTP中保留未用,在DHCP中表示标志字段。
图2 Flags字段格式

                               
登录/注册后可看大图

只有标志字段的最高位才有意义,其余的位均被置为0。
最左边的字段被解释为广播响应标志位,内容如下所示:
  • 0:客户端请求服务器以单播形式发送响应报文
  • 1:客户端请求服务器以广播形式发送响应报文
ciaddr4字节客户端的IP地址。只有客户端是Bound、Renew、Rebinding状态,并且能响应ARP请求时,才能被填充。
yiaddr4字节"你自己的"或客户端的IP地址。
siaddr4字节表明DHCP协议流程的下一个阶段要使用的服务器的IP地址。
giaddr4字节该字段表示第一个DHCP中继的IP地址(注意:不是地址池中定义的网关)。当客户端发出DHCP请求时,如果服务器和客户端不在同一个网络中,那么第一个DHCP中继在转发这个DHCP请求报文时会把自己的IP地址填入此字段。服务器会根据此字段来判断出网段地址,从而选择为用户分配地址的地址池。服务器还会根据此地址将响应报文发送给此DHCP中继,再由DHCP中继将此报文转发给客户端。
若在到达DHCP服务器前经过了不止一个DHCP中继,那么第一个DHCP中继后的中继不会改变此字段,只是把Hops的数目加1。
chaddr16字节该字段表示客户端的MAC地址,此字段与前面的“Hardware Type”和“Hardware Length”保持一致。当客户端发出DHCP请求时,将自己的硬件地址填入此字段。对于以太网,当“Hardware Type”和“Hardware Length”分别为“1”和“6”时,此字段必须填入6字节的以太网MAC地址。
sname64字节该字段表示客户端获取配置信息的服务器名字。此字段由DHCP Server填写,是可选的。如果填写,必须是一个以0结尾的字符串。
file128字节该字段表示客户端的启动配置文件名。此字段由DHCP Server填写,是可选的,如果填写,必须是一个以0结尾的字符串。
options可变该字段表示DHCP的选项字段,至少为312字节,格式为"代码+长度+数据"。DHCP通过此字段包含了服务器分配给终端的配置信息,如网关IP地址,DNS服务器的IP地址,客户端可以使用IP地址的有效租期等信息。


DHCP Options
Option id长度(字节)描述
14Subnet Mask
3n*4Router(网关)
6n*4DNS Server
7n*4Log Server
262Interface MTU
33n*8Static route
354ARP cache timeout
42n*4NTP servers
514IP address lease time
531Message type:
  • 1-DHCPDISCOVER
  • 2-DHCPOFFER
  • 3-DHCPREQUEST
  • 4-DHCPDECLINE
  • 5-DHCPACK
  • 6-DHCPNAK
  • 7-DHCPRELEASE
  • 8-DHCPINFORM
544DHCP Server Identifier
60n华为自定义:可配置该终端设备在发起DHCP请求时,通过Option 60携带域信息。收到DHCP报文时,可根据Option 60中携带的域信息来分配IP地址。
82n华为自定义:作为DHCP Relay,在中继用户DHCP报文时,可在Option 82中填写用户的物理位置信息,通知DHCP服务器按物理位置信息对为用户分配IP地址。


报文示例图3 DHCP报文格式(discover阶段)

                               
登录/注册后可看大图

图4 DHCP报文格式(offer阶段)

                               
登录/注册后可看大图

图5 DHCP报文格式(request阶段)

                               
登录/注册后可看大图

图6 DHCP报文格式(ACK阶段)

                               
登录/注册后可看大图


参考标准
标准描述
RFC 951Bootstrap Protocol (BOOTP)
RFC 1542Clarifications and Extensions for the Bootstrap Protocol
RFC 2131Dynamic Host Configuration Protocol
RFC 2132DHCP Options and BOOTP Vendor Extensions





评分

参与人数 1好评度 +1 收起 理由
xqlz + 1 很给力!

查看全部评分

发表于 2020-2-2 21:20:13 | 显示全部楼层
ddddddddddddddd
板凳 2020-2-2 21:20:13 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2022-10-18 19:32:05 | 显示全部楼层
感謝您的分享
地板 2022-10-18 19:32:05 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2022-10-18 19:32:39 | 显示全部楼层
感謝您的分享
5# 2022-10-18 19:32:39 回复 收起回复
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 论坛注册

本版积分规则

QQ|Archiver|手机版|小黑屋|sitemap|鸿鹄论坛 ( 京ICP备14027439号 )  

GMT+8, 2024-5-22 13:08 , Processed in 0.058711 second(s), 10 queries , Redis On.  

  Powered by Discuz!

  © 2001-2024 HH010.COM

快速回复 返回顶部 返回列表