DHCP客户端通过和DHCP服务器的交互通讯以获得IP地址租约。为了从DHCP服务器获得一个IP地址,在标准情况下DHCP客户端和DHCP服务器之间会进行四次通讯。DHCP协议通讯使用端口UDP 67(服务器端)和UDP 68(客户端)进行通讯,UDP68端口用于客户端请求,UDP67用于服务器响应,并且大部分DHCP协议通讯使用广播进行。

DHCP客户端和DHCP服务器的这四次通讯过程

1DHCP DISCOVER

当DHCP客户端计算机处于以下三种情况之一时,触发DHCPDISCOVER广播消息:

当TCP/IP协议作为DHCP客户端(自动获取IP地址)进行初始化(DHCP客户端启动计算机、启用网络适配器或者连接到网络时);

DHCP客户端请求某个IP地址被DHCP服务器拒绝,通常发生在已获得租约的DHCP客户端连接到不同的网络中;

DHCP客户端释放已有租约并请求新的租约。

此时,DHCP客户端发起DHCPDISCOVER广播消息,向所有DHCP服务器获取IP地址租约。此时由于DHCP客户端没有IP地址,因此在数据包中,使用0.0.0.0作为源IP地址,然后广播地址255.255.255.255作为目的地址。在此请求数据包中同样会包含客户端的MAC地址和计算机名,以便DHCP服务器进行区分。

如果没有DHCP服务器答复DHCP客户端的请求,DHCP客户端在等待1秒后会再次发送DHCPDISCOVER广播消息。除了第一个DHCPDISCOVER广播消息外,DHCP客户端还会发出三个DHCPDISCOVER广播消息,等待时延分别为9秒、13秒和16秒加上一个长度为0~1000毫秒之间的随机时延。如果仍然无法联系DHCP服务器,则认为自动获取IP地址失败,默认情况下将随机使用APIPA(自动专有IP地址,169.254.0.0/16)中定义的未被其他客户使用的IP地址,子网掩码为255.255.0.0,但是不会配置默认网关和其他TCP/IP选项,因此只能和同子网的使用APIPA地址的客户端计算机进行通讯。你可以通过注册表中的DWORD键值IPAutoconfigurationEnabled来禁止客户端计算机使用APIPA地址进行自动配置,此键值位于

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters

当其值设置为0时,则不使用APIPA地址进行自动配置。

在Windows XP和Windows Server 2003中,针对客户端计算机的TCP/IP选项中有一个备用配置选项,只有当客户端计算机配置为DHCP客户端(自动获取IP地址)时才有此备用配置。你可以通过备用配置来为DHCP客户端在无法联系DHCP服务器时为DHCP客户端指定静态IP地址,如下图所示:

如果没有配置APIPA地址和备用IP地址,则DHCP客户端会每隔5分钟再发送DHCPDISCOVER广播消息,直到从DHCP服务器获取IP地址为止。

2DHCP OFFER

所有接收到DHCP客户端发送的DHCPDISCOVER广播消息的DHCP服务器会检查自己的配置,如果具有有效的DHCP作用域和富余的IP地址,则DHCP服务器发起DHCPOFFER广播消息来应答发起DHCPDISCOVER广播的DHCP客户端,此消息包含以下内容:

客户端MAC地址;

DHCP服务器提供的客户端IP地址;

DHCP服务器的IP地址;

DHCP服务器提供的客户端子网掩码;

其他作用域选项,例如DNS服务器、网关、WINS服务器等;

租约期限等。

因此DHCP客户端没有IP地址,所以DHCP服务器同样使用广播进行通讯:源IP地址为DHCP服务器的IP地址,而目的IP地址为255.255.255.255。同时,DHCP服务器为此客户保留它提供的IP地址,从而不会为其他DHCP客户分配此IP地址。如果有多个DHCP服务器给予此DHCP客户端回复DHCPOFFER消息,则DHCP客户端接受它接收到的第一个DHCPOFFER消息中的IP地址。

3DHCP REQUEST

当DHCP客户端接受DHCP服务器的租约时,它将发起DHCPREQUEST广播消息,告诉所有DHCP服务器自己已经做出选择,接受了某个DHCP服务器的租约。

在此DHCPREQUEST广播消息中包含了DHCP客户端的MAC地址、接受的租约中的IP地址、提供此租约的DHCP服务器地址等,所有其他的DHCP服务器将收回它们为此DHCP客户端所保留的IP地址租约,以给其他DHCP客户端使用。

此时由于没有得到DHCP服务器最后确认,DHCP客户端仍然不能使用租约中提供的IP地址,所以在数据包中仍然使用0.0.0.0作为源IP地址,广播地址255.255.255.255作为目的地址。

4DHCP ACK

提供的租约被接受的DHCP服务器在接收到DHCP客户端发起的DHCPREQUEST广播消息后,会发送DHCPACK广播消息进行最后的确认,在这个消息中同样包含了租约期限及其他TCP/IP选项信息。

如果DHCP客户端的操作系统为Windows 2000及其后版本,当DHCP客户端接收到DHCPACK广播消息后,会向网络发出三个针对此IP地址的ARP解析请求以执行冲突检测,确认网络上没有其他主机使用DHCP服务器提供的IP地址,从而避免IP地址冲突。如果发现该IP已经被其他主机所使用(有其他主机应答此ARP解析请求),则DHCP客户端则会广播发送(因为它仍然没有有效的IP地址)DHCPDECLINE消息给DHCP服务器拒绝此IP地址租约,然后重新发起DHCP DISCOVER进程。此时,在DHCP服务器管理控制台中,会显示此IP地址为BAD_ADDRESS。

如果没有其他主机使用此IP地址,则DHCP客户端的TCP/IP使用租约中提供的IP地址完成初始化,从而可以和其他网络中的主机进行通讯。至于其他TCP/IP选项,如DNS服务器和WINS服务器等,本地手动配置将覆盖从DHCP服务器获得的值。

租约续约

DHCP服务器将IP地址提供给DHCP客户端时,会包含租约的有效期,默认租约期限为8天(691200秒)。除了租约期限外,还具有两个时间值T1和T2,其中T1定义为租约期限的一半,默认情况下是四天(345600秒),而T2定义为租约期限的的7/8,默认情况下为7天(604800秒)。当到达T1定义的时间期限时,DHCP客户端会向提供租约的原始DHCP服务器发起DHCP REQUEST请求对租约进行更新,如果DHCP服务器接受此请求则回复DHCP ACK消息,包含更新后的租约期限;如果DHCP服务器不接受DCHP客户端的租约更新请求(例如此IP已经从作用域中去除),则向DHCP客户端位于回复DHCP NACK消息,此时DHCP客户端立即发起DHCP DISCOVER进程以寻求IP地址。如果DHCP客户端没有从DHCP服务器得到任何回复,则继续使用此IP地址直到到达T2定义的时间限制。此时,DHCP客户端再次向提供租约的原始DHCP服务器发起DHCP REQUEST请求对租约进行更新,如果仍然没有得到DHCP服务器的回复则发起DHCP DISCOVER进程以寻求IP地址。在Windows 2000中微软官方说明到

转载于:https://www.cnblogs.com/hwl1023/p/3483886.html

DHCP详细工作过程(转)相关推荐

  1. DHCP详细工作过程

    DHCP客户端通过和DHCP服务器的交互通讯以获得IP地址租约.为了从DHCP服务器获得一个IP地址,在标准情况下DHCP客户端和DHCP服务器之间会进行四次通讯.DHCP协议通讯使用端口UDP 67 ...

  2. 主动模式下FTP的详细工作过程

    文中有不对或者有不清楚的地方,请大家告诉我,谢谢!   主动模式下FTP的详细工作过程   PORT FTP是常用的FTP工作方式,当客户端的连接请求到来时,FTP服务器会利用默认的21端口与客户端建 ...

  3. LLC开关电源详细工作过程

    LLC工作过程详述 1 简述 2 主拓扑 3 具体工作过程 3.1 fsf_{s}fs​>frf_{r}fr​时工作过程 3.1 fr1<fs<frf_{r1}<f_{s}&l ...

  4. 【转】DHCP工作过程详解

    DHCP动态主机配置协议的作用我想作为网管的兄弟们都应该知道了,这里我就不多废话了,今天我要谈的是DHCP的工作过程,了解了工作过程,要排除故障就容易了. 一.DHCP客户机初始化: 1. 寻找DHC ...

  5. 理解并取证:DHCP的工作原理、怎么检测IP地址冲突

    动态主机配置协议(Dynamic Host Configuration Protocol, DHCP)被设计用于动态的为网络中的主机分配IP地址及其它相关的TCP/IP属性,它属于客户/服务模式的应用 ...

  6. DHCP的工作原理、怎么检测IP地址冲突

    原帖地址:http://7658423.blog.51cto.com/7648423/1270601 理解DHCP的雏形BOOTP(Bootstrap Protocol) DHCP的为什么要替代BOO ...

  7. DHCP详细配置实验总结

      DHCP(Dynamic Host Configuration Protocol)动态主机配置协议,安装了该服务的服务器就是DHCP服务器,在DHCP服务器端,设定一个地址池,为本网段内那些开机前 ...

  8. DCHP详细工作流程及分析

    原文链接:https://blog.csdn.net/Andy_93/article/details/78238931 DHCP的作用: DHCP 全称Dynamic Host configurati ...

  9. DHCP relay的工作过程以及DHCP option82的作用

    DHCP一家子(不包括DHCPv6)包括DHCP Client.DHCP Server.DHCP Relay以及DHCP Snooping,之后我会一个个详细学习之后发出来.今天讲述一下DHCP re ...

  10. DHCP工作过程及DHCP中继

    DHCP(Dynamic Host Configuration Protocol) 动态主机配置协议 常见的配置参数:IP.掩码.网关.DNS.域名 其他:ftp地址.IP电话的电话号码.无线当中的一 ...

最新文章

  1. 数字图像处理笔记二 - 图片缩放(最近邻插值(Nearest Neighbor interpolation))
  2. 如何设置网站标题更有利于网站SEO优化?
  3. freetype-go学习
  4. linux c 文件映射,linuxc-共享内存
  5. PHP以指定字段为索引返回数组数据
  6. 项目实例:模十状态机与7段译码器显示系统,Quartus环境(文末附程序,百度文库里的)
  7. SpringBoot-配置文件创建Bean的过程
  8. python库-密码学库pynacl
  9. 海尔计算机天越Y3的配置,海尔天越Y3S 拉近你与梦想的距离!
  10. 斯蒂夫乔布斯传札记:第八波
  11. Linux 下恢复误删文件
  12. java中abstract什么意思中文,abstraction(abstraction什么意思中文)
  13. 【建站教程】网站引用三方图片遇到简单防盗链referer的处理办法
  14. 一张图带你了解游戏程序员的学习之路
  15. android 设备注册,Android平台上PMEM的使用及Platform设备注册(二)
  16. 世界杯ing~这不来个实时数据可视化?(结尾附源码)
  17. UGUI源码分析:开关组件Toggle与ToggleGroup
  18. TemporalType
  19. 微软100题(44)几道腾讯面试题
  20. windows CMD清空文件

热门文章

  1. 【论文阅读】Network In Network
  2. 中文NER的正确打开方式: 词汇增强方法总结 (从Lattice LSTM到FLAT)
  3. 图神经网络中的Graph Pooling
  4. TreeLSTM Sentiment Classification
  5. 笔记_pytorch
  6. Mesos和Docker的集成
  7. 让Oracle跑得更快 ——博文视点大讲堂34期活动圆满结束
  8. 张亚勤新作《变革中的思索》谈高科技人才管理
  9. 解密Google、百度搜索引擎揭秘
  10. 二十一天学通VC++之创建工作者线程