DHCP协议
-
1.DHCP的作用:动态主机配置协议
-
可以人工给主机配置参数,但是当网络中的主机太多时,一个个的人工配置代价未免太大了,所以就出现了DHCP协议实现动态主机配置
-
配置那些参数呢:
IP地址
子网掩码
默认网关
域名
-
DHCP客户端程序在主机中开机联网自启动,请求DHCP服务器得到配置
-
DHCP客户端程序是向局域网中广播的,那个DHCP服务器收到了DHCP发现报文,就回送响应
- DHCP服务器和主机在一个局域网内,通过广播,DHCP服务器收到DHCPDISCOVER报文,可以配置
- 在1个局域网内部设置1个DHCP服务器成本太高,但是在不同局域网内,广播又不能到达,因为路由器屏蔽广播,这个时候DHCP中继就有用了:在路由器中设1个DHCP服务器的IP,当路由器收到广播时间,就替这个主机向DHCP服务器发送DHCPDISCOVER报文
-
-
DHCP的工作过程
-
细节注意
-
寻找DHCP服务器:主机向DHCP服务器发送DHCP DISCOVER报文,广播方式(源地址:0.0.0.0,目的地址:255.255.255.255),主机的UDP端口号为68,DHCP的UDP端口号为68
如果别的客户机收到了这个广播的报文,因为他们的端口号是67,所以丢弃;
只有DHCP服务器收到了这个广播的报文,端口号是68,才可以接受
DHCP DISCOVER报文格式,包含2个主要内容:事务ID(可以在接下来的步骤中识别是不是这个主机),主机的mac地址
DHCP服务器在收到DHCP DISCOVER后,根据MAC地址查找数据库,看是否有针对MAC地址的配置信息,yes:使用这些配置信息构建DHCP OFFER,no:默认配置信息构建DHCP OFFER
-
提供IP地址租用:依然是广播方式(源地址:DHCP服务器IP,目的地址:255.255.255.255,因为主机目前还没有配置IP地址)
如果别的客户机收到了这个广播的报文,因为他们的端口号是67,可以先接受;
只有DHCP服务器收到了这个广播的报文,端口号是68,所以丢弃
DHCP OFFER报文中包含了事务ID,如果这个事务ID和主机发送出去的DHCP DISCOVER报文中的事务ID相同,就接受,否则丢弃
DHCP OFFER报文中包含了一系列的配置信息
从自己的DHCP地址池中选取IP分配给主机需要注意:这个IP在本网络中不能被其他主机已占用,ARP检测即可
-
接受IP地址租约:为什么要采取向所有DHCP服务器广播的方式,而且这个时候的源地址还是0.0.0.0(而不是DHCP OFFER中的分配的IP地址)?提供IP地址租用时发给主机的DHCP OFFER报文不是已经给出了一系列配置信息(包括分配给主机的IP)吗 ?
DHCP REQUEST格式:事务ID,DHCP客户端的MAC地址,接受租约中的IP地址,提供此租约的DHCP服务器端的IP地址
所以原因就是:根据提供此租约的DHCP服务器端的IP地址,其他DHCP服务器收到这个报文查看这个字段发现自己的IP不是这个,就past了,IP等于这个就说明这个租约是这个DHCP服务器提供的,所以就是告诉不提供此租约的所有DHCP服务器,我已经找到了为我提供IP地址的DHCP服务器了,你们走吧!
-
确认IP地址租约:DHCP ACK,广播(这个时候主机的IP仍然没有分配好,所以广播)
使用ARP检测分配的IP地址是否已经被网络中的其他主机占用,被占用:发送DHCP谢绝报文,并且重新发送DHCP DISCOVER报文,没被占用:可以使用租约中的IP地址与网络中其他主机通信了
-
IP地址续约
T1:租约1半时间到达:DHCP REQUEST请求新租约:if(DHCP ACK)-->新的IP地址租约;
if(DHCP NACK)-->立即停止使用的IP地址租约,并且重发DHCP DISCOVER报文;
if(不响应)-->T2:到达租用期的87.5%时,再次重发DHCP REQUEST
租用期到达:立即停止租用的IP地址,重发DHCP DISCOVER
-
IP地址解约:DHCP RELEASE,随时解除IP地址租约
-
-
最后用一个小故事来描述DHCP的工作过程
李华在网上向很多家公司投了C++开发的工作的求职书,有一些公司向李华返回了一些回馈(包括工资,C++开发相关事项,以及C++开发的应聘书),然后李华在这些公司里面选了一家满意的公司,并且告诉所有投过简历的这些公司,我已经找到了合适的公司了,你们就不要再等着我了。第二天李华去那个他满意的公司面试,面试通过之后面试官正式向李华发出应聘,并且告诉李华我们是有试用期的,1段时间后你还需要再次面试,再次申请C++开发职位,当然你也可以选择随时终止与我们公司的合作
标签:协议,主机,报文,服务器,IP地址,DHCP,租约 From: https://www.cnblogs.com/yxlgg/p/18255451