请尊重原作者 :http://blog.51cto.com/yuanbin/109574

DHCP租约过程就是DHCP客户机动态获取IP地址的过程。

DHCP租约过程分为4步:

客户机请求IP(客户机发DHCPDISCOVER广播包);

服务器响应(服务器发DHCPOFFER广播包);

客户机选择IP(客户机发DHCPREQUEST广播包);

服务器确定租约(服务器发DHCPACK/DHCPNAK广播包)。

详解4步租约过程:

第1步:客户机请求IP

客户机请求IP也称为DHCPDISCOVER。

当一个DHCP客户机启动时,会自动将自己的IP地址配置成0.0.0.0,由于使用0.0.0.0不能进行正常通信,所以客户机就必须通过DHCP服务器来获取一个合法的地址。由于客户机不知道DHCP服务器的IP地址,所以它使用0.0.0.0的地址作为源地址,使用UDP68端口作为源端口,使用255.255.255.255作为目标地址,使用UDP67端口作为目的端口来广播请求IP地址信息(见图一)。广播信息中包含了DHCP客户机的MAC地址和计算机名,以便使DHCP服务器能确定是哪个客户机发送的请求。

DHCP客户机总是试图重新租用它接收过的最后一个IP地址,这给网络带来一定的稳定性。

图一:客户机请求IP

第2步:服务器响应

服务器响应也称为DHCPOFFER。

当DHCP服务器接收到客户机请求IP地址的信息时,它就在自己的IP地址池中查找是否有合法的IP地址提供给客户机。如果有,DHCP服务器就将此IP地址做上标记,加入到DHCPOFFER的消息中,然后DHCP服务器就广播一则包括下列信息的DHCPOFFER消息:

DHCP客户机的MAC地址;DHCP服务器提供的合法IP地址;子网掩码;默认网关(路由);租约的期限;DHCP服务器的IP地址。

因为DHCP客户机还没有IP地址,所以DHCP服务器使用自己的IP地址作为源地址,使用UDP67端口作为源端口,使用255.255.255.255作为目标地址,使用UDP68端口作为目的端口来广播DHCPOFFER信息(见图二)。

图二:服务器响应

第3步:客户机选择IP

客户机选择IP,也称为DHCPREQUEST。

DHCP客户机从接收到的第一个DHCPOFFER消息中选择IP地址,发出IP地址的DHCP服务器将该地址保留,这样该地址就不能提供给另一个DHCP客户机。当客户机从第一个DHCP服务器接收DHCPOFFER并选择IP地址后,DHCP租约的第三过程发生。客户机将DHCPREQUEST消息广播到所有的DHCP服务器,表明它接受提供的内容。DHCPREQUEST消息包括为该客户机提供IP配置的服务器的服务标识符(IP地址)。DHCP服务器查看服务器标识符字段,以确定它自己是否被选择为指定的客户机提供IP地址,如果那些DHCPOFFER被拒绝,则DHCP服务器会取消提供并保留其IP地址以用于下一个IP租约请求。

在客户机选择IP的过程中,虽然客户机选择了IP地址,但是还没有配置IP地址,而在一个网络中可能有几个DHCP服务器,所以客户机仍然使用0.0.0.0的地址作为源地址,使用UDP68端口作为源端口,使用255.255.255.255作为目标地址,使用UDP67端口作为目的端口来广播DHCPREQUEST信息(见图三)。

图三:客户机选择IP

第4步:服务器确认租约

服务器确认租约,也称为DHCPACK/DHCPNAK。

DHCP服务器接收到DHCPREQUEST消息后,以DHCPACK消息的形式向客户机广播成功的确认,该消息包含有IP地址的有效租约和其他可能配置的信息。虽然服务器确认了客户机的租约请求,但是客户机还没有收到服务器的DHCPACK消息,所以服务器仍然使用自己的IP地址作为源地址,使用UDP67端口作为源端口,使用255.255.255.255作为目标地址,使用UDP68端口作为目的端口来广播DHCPACK信息(见图四)。当客户机收到DHCPACK消息时,它就配置了IP地址,完成了TCP/IP的初始化。

如果DHCPREQUEST不成功,例如客户机试图租约先前的IP地址,但该IP地址不再可用,或者因为客户机移到其他子网,该IP无效时,DHCP服务器将广播否定确认消息DHCPNAK。当客户机接收到不成功的确认时,它将重新开始DHCP租约过程。

 

如果DHCP客户机无法找到DHCP服务器,它将从TCP/IP的B类网段169.254.0.0中挑选一个IP地址作为自己的IP地址,继续每隔5分钟尝试与DHCP服务器进行通讯,一旦与DHCP服务器取得联系,则客户机放弃自动配置的IP地址,而使用DHCP服务器分配的IP地址。

如果一台DHCP客户机有两个或者多个网卡,则DHCP服务器会为每个网卡分配一个唯一而有效的IP地址。

图四:服务器确认租约

图五:DHCP服务器日志

注:因为是虚拟机,所以这个DHCP服务器的系统时间有些问题

图六:DHCP客户机IP信息

可以看到客户端获取的IP地址是192.168.1.34;默认网关是192.168.1.10;DHCP服务器IP是192.168.1.240;租约时间是6个小时。

DHCP消息类型
1 DHCPDISCOVER 
2 DHCPOFFER 
3 DHCPREQUEST 
4 DHCPDECLINE 
5 DHCPACK 
6 DHCPNACK 
7 DHCPRELEASE
8 DHCPINFORM

http://blog.51cto.com/yuanbin/109574

转载于:https://www.cnblogs.com/hello1123/p/9020288.html

DHCP的4步租约过程相关推荐

  1. 控制台 -网络管理之DHCP地址租约过程

    1.客户机请求IP租约 DHCP客户机在网络中广播一个DHCPDiscover包以请求IP地址,此过程也称为DHCPDiscover. DHCPDiscover包的源IP地址为0.0.0.0,目的地址 ...

  2. DHCP租约过程,如何使用DHCP

    一.DHCP服务 DHCP(Dynamic Host Configuration Protocal,即动态主机配置协议) 专门用于TCP/IP网络中的计算机自动分配TCP/IP参数的协议 使用DHCP ...

  3. SAS数据步与过程步,数据步语句

    SAS数据步与过程步,数据步语句 http://www.biostatistic.net/thread-2045-1-1.html  ---转载---原文作者:biostar (出处: 生物统计家园) ...

  4. 滴滴收购优步谈判过程_如何为未来安排优步

    滴滴收购优步谈判过程 If you're planning on being somewhere at a specific time and need to arrange transportati ...

  5. 滴滴收购优步谈判过程_大流行之后,优步正在为绿色业务做准备

    滴滴收购优步谈判过程 Uber has promised to zero out its carbon emissions by 2040 and claims that 100% of rides ...

  6. DHCP的工作原理及过程

    本篇博客是对DHCP的一些原理介绍,具体实验过程请查询 基于linux下的DHCP实验 一.什么是DHCP? DHCP,动态主机配置协议,前身是BOOTP协议,是一个局域网的网络协议,使用UDP协议工 ...

  7. DHCP服务器原理及搭建过程

    DHCP:Dynamic Host Configure Protocol 动态主机配置协议 广播地址:FF-FF-FF-FF-FF-FF 广播IP 地址:255.255.255.0 DHCP的作用: ...

  8. Android KK(4.4) 以太网和DHCP启动过程介绍

    Android KK(4.4) 以太网和DHCP启动过程介绍 1. ethernet启动流程 2. DHCP启动过程 2.1 JNI层接口 2.2 DHCP客户端(libnetutils) 2.3 D ...

  9. DHCP协议说明及报文分析

    DHCP几个概念: DHCP Client:DHCP客户端,通过DHCP协议请求IP地址的客户端.DHCP客户端是接口级的概念,如果一个主机有多个以太接口,则该主机上的每个接口都可以配置成一个DHCP ...

最新文章

  1. 国家队基金押注,国内商用车ADAS龙头进军乘用市场
  2. 程序员面试金典 - 面试题 10.10. 数字流的秩(map/树状数组)
  3. c语言case label,an enum switch case label must be the unqualified name of an enumeration constant
  4. wiki源码_一个轻量级的企业Wiki和团队知识分享平台:MM-Wiki搭建教程
  5. 微信小程序轮播中的current_开源 | 微信接龙小程序 wechatsolita 开源
  6. Scrapy框架——CrawlSpider爬取某招聘信息网站
  7. officescan 不输入密码卸载
  8. 手机计算机图标大全,我的电脑里我的手机图标怎么删除
  9. UltraEdit+Masm--打造自己的汇编IDE
  10. 利用随机数函数掷骰子
  11. 短视频开发,录制视频添加背景音乐功能实现
  12. 服务器的系统日志路径,DirectAdmin 日志路径各种系统中查看方法Windows服务器操作系统 -电脑资料...
  13. Excel表格转换为布尔表
  14. HTML期末作业,基于html实现中国脸谱传统文化网站设计(5个页面)
  15. 软件测试之BUG描述
  16. 工控通讯经历1:(C#)三菱FX5U-32M与上位机通讯(超详细!)
  17. 英文简历模板计算机专业,计算机专业个人英文简历模板
  18. [机器学习入门] 深度学习简介,GPU计算的原理,分布式机器学习原理
  19. matplotlib绘图
  20. kaggle maching learning笔记

热门文章

  1. linux用户及权限操作
  2. 【RK3399Pro学习笔记】六、ROS发布者Publisher的编程实现
  3. Windows PowerShell安装指定版本vue/cli脚手架失效解决办法;vue : 无法加载文件 C:\Users\Administrator\AppData\Roaming\npm\vue
  4. [react] useState和this.state的区别是什么?
  5. [html] 列举下哪些块元素里面不能放哪些块元素呢?
  6. [html] 字体图标加载出来成了小方块,是什么原因呢?如何解决?
  7. [软技能] 现如今面对如层出不穷的类库,说说你的感受
  8. [css] css图片缩放失真出现锯齿的如何解决呢?
  9. 工作243:name报错
  10. 工作203:实现预览效果