网络协议 - DHCP

DHCP(动态主机配置协议)用于自动分配IP地址给网络中的设备。交互流程包括Discover、Offer、Request和ACK四个阶段。客户端通过广播DHCPDiscover请求,服务器回应DHCPOffer,客户端选择并广播DHCPRequest,最后服务器确认分配IP地址。DHCP报文包含OP、htype、hlen等字段,用于标识报文类型、硬件地址等信息。

DHCP简介

DHCP(Dynamic Host Configuration Protocol),动态主机配置协议,是一个应用层协议。当我们将客户主机ip地址设置为动态获取方式时,DHCP服务器就会根据DHCP协议给客户端分配IP,使得客户机能够利用这个IP上网。

DHCP交互流程

先来看wireshark的抓包截图
在这里插入图片描述
可以看到大致交互流程为Discover ->Offer -> Request -> ACK。实际交互流程如下:
在这里插入图片描述

  1. DHCP Client以广播的方式发出DHCP Discover报文。

  2. 网内所有的DHCP Server都能够接收到DHCP Client发送的DHCP Discover报文,所有的DHCP Server都会向DHCP Client发送一个DHCP Offer的相应报文。

  3. DHCP Client只能处理其中的一个DHCP Offer报文,一般的原则是DHCP Client处理最先收到的DHCP Offer报文。DHCP Client会发出一个广播的DHCP Request报文,在选项字段中会加入选中的DHCP Server的IP地址和需要的IP地址。
    在这里插入图片描述

  4. DHCP Server收到DHCP Request报文后,判断选项字段中的IP地址是否与自己的地址相同。如果不相同,DHCP Server不做任何处理只清除相应IP地址分配记录;如果相同,DHCP Server就会向DHCP Client响应一个DHCP ACK报文,并在选项字段中增加IP地址的使用租期信息。
    在这里插入图片描述

  5. DHCP Client接收到DHCP ACK报文后,检查DHCP Server分配的IP地址是否能够使用。如果可以使用,则DHCP Client成功获得IP地址并根据IP地址使用租期自动启动续延过程;如果DHCP Client发现分配的IP地址已经被使用,则DHCP Client向DHCPServer发出DHCP Decline报文,通知DHCP Server禁用这个IP地址,然后DHCP Client开始新的地址申请过程。

DHCP报文格式

在这里插入图片描述

字段长度含义
OP1字节表示报文的类型:
1:客户端请求报文
2:服务器响应报文
htype1字节表示硬件地址的类型。对于以太网,该类型的值为“1”
hlen1字节表示硬件地址的长度,单位是字节。对于以太网,该值为6
Hops1字节跳数。客户端设置为0,也能被一个代理服务器设置
xid4字节事务ID,由客户端选择的一个随机数,被服务器和客户端用来在它们之间交流请求和响应,客户端用它对请求和应答进行匹配。该ID由客户端设置并由服务器返回,为32位整数
secs2字节由客户端填充,表示从客户端开始获得IP地址或IP地址续借后所使用了的秒数
flags2字节此字段在BOOTP中保留未用,在DHCP中表示标志字段。
只有标志字段的最高位才有意义,其余的位均被置为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地址的有效租期等信息
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值