DHCP动态主机配置协议的作用我想作为网管的兄弟们都应该知道了,这里我就不多废话了,今天我要谈的是DHCP的工作过程,了解了工作过程,要排除故障就容易了。
一、DHCP客户机初始化:
1. 寻找DHCP Server
当DHCP客户机第一次登录网络的时候(也就是客户机上没有任何IP地址数据时),它会通过UDP 67端口向网络上发出一个DHCPDISCOVER数据包(包中包含客户机的MAC地址和计算机名等信息)。因为客户机还不知道自己属于哪一个网络,所以封包的源地址为0.0.0.0,目标地址为255.255.255.255,然后再附上DHCP discover的信息,向网络进行广播。
DHCP discover的等待时间预设为1秒,也就是当客户机将第一个DHCP discover封包送出去之后,在1秒之内没有得到回应的话,就会进行第二次DHCP discover广播。若一直没有得到回应,客户机会将这一广播包重新发送四次(以2,4,8,16秒为间隔,加上1-1000毫秒之间随机长度的时间)。如果都没有得到DHCP Server的回应,客户机会从169.254.0.0/16这个自动保留的私有IP地址中选用一个IP地址。并且每隔5分钟重新广播一次,如果收到某个服务器的响应,则继续IP租用过程。
2. 提供IP地址租用
当DHCP Server监听到客户机发出的DHCP discover广播后,它会从那些还没有租出去的地址中,选择最前面的空置IP,连同其它TCP/IP设定,通过UDP 68端口响应给客户机一个DHCP OFFER数据包(包中包含IP地址、子网掩码、地址租期等信息)。此时还是使用广播进行通讯,源IP地址为DHCP Server的IP地址,目标地址为255.255.255.255。同时,DHCP Server为此客户保留它提供的IP地址,从而不会为其他DHCP客户分配此IP地址。
由于客户机在开始的时候还没有IP地址,所以在其DHCP discover封包内会带有其MAC地址信息,并且有一个XID编号来辨别该封包,DHCP Server响应的DHCP OFFER封包则会根据这些资料传递给要求租约的客户。
3. 接受IP租约
如果客户机收到网络上多台DHCP服务器的响应,只会挑选其中一个DHCP OFFER(一般是最先到达的那个),并且会向网络发送一个DHCP REQUEST广播数据包(包中包含客户端的MAC地址、接受的租约中的IP地址、提供此租约的DHCP服务器地址等),告诉所有DHCP Server它将接受哪一台服务器提供的IP地址,所有其他的DHCP服务器撤销它们的提供以便将IP地址提供给下一次IP租用请求。此时,由于还没有得到DHCP Server的最后确认,客户端仍然使用0.0.0.0为源IP地址,255.255.255.255为目标地址进行广播。
事实上,并不是所有DHCP客户机都会无条件接受DHCP Server的OFFER,特别是如果这些主机上安装有其它TCP/IP相关的客户机软件。客户机也可以用DHCP REQUEST向服务器提出DHCP选择,这些选择会以不同的号码填写在DHCP Option Field里面。客户机可以保留自己的一些TCP/IP设定。
4. 租约确认
当DHCP Server接收到客户机的DHCP REQUEST之后,会广播返回给客户机一个DHCP ACK消息包,表明已经接受客户机的选择,并将这一IP地址的合法租用以及其他的配置信息都放入该广播包发给客户机。
客户机在接收到DHCP ACK广播后,会向网络发送三个针对此IP地址的ARP解析请求以执行冲突检测,查询网络上有没有其它机器使用该IP地址;如果发现该IP地址已经被使用,客户机会发出一个DHCP DECLINE数据包给DHCP Server,拒绝此IP地址租约,并重新发送DHCP discover信息。此时,在DHCP服务器管理控制台中,会显示此IP地址为BAD_ADDRESS。
如果网络上没有其它主机使用此IP地址,则客户机的TCP/IP使用租约中提供的IP地址完成初始化,从而可以和其他网络中的主机进行通讯。
二、DHCP客户机租期续约:
客户机会在租期过去50%的时候,直接向为其提供IP地址的DHCP Server发送DHCP REQUEST消息包。如果客户机接收到该服务器回应的DHCP ACK消息包,客户机就根据包中所提供的新的租期以及其它已经更新的TCP/IP参数,更新自己的配置,IP租用更新完成。如果没有收到该服务器的回复,则客户机继续使用现有的IP地址,因为当前租期还有50%。
如果在租期过去50%的时候没有更新,则客户机将在租期过去87.5%的时候再次向为其提供IP地址的DHCP联系。如果还不成功,到租约的100%时候,客户机必须放弃这个IP地址,重新申请。如果此时无DHCP可用,客户机会使用169.254.0.0/16中随机的一个地址,并且每隔5分钟再进行尝试。
from:http://tonyguo.blog.51cto.com/379574/163475

【转】DHCP工作过程详解相关推荐

  1. python程序间通信_python进程间通信Queue工作过程详解

    Process之间有时需要通信,操作系统提供了很多机制来实现进程间的通信. 1. Queue的使用 可以使用multiprocessing模块的Queue实现多进程之间的数据传递,Queue本身是一个 ...

  2. POE供电交换机技术分析及工作过程详解

    PoE供电是指在以太网中透过双绞线来将电力传输到设备的技术,它无需改动现有的以太网布线基础架构,在为一些基于IP的终端传输数据信号的同时,还能为此类设备提供直流供电.透过这项技术,可以供电给网路电话. ...

  3. openwrt dhcp不分配_【装维技巧】DHCP工作原理详解(上)

    各位小伙伴们,又是元寒气满满的一天,最近在后台听到不少人对静态配置IP地址的种种抱怨: 以上问题,各位兄弟们有遇到过吗 莫急,小维来为各位小伙伴们支招 其实吧,有了动态主机配置协议DHCP(Dynam ...

  4. EIGRP实验--协议工作过程详解(一)

    实验目的: 了解五种报文的格式及工作过程:初步学习,不妥当的地方还请大牛指教! Hello: 我们现在R1路由器上面开启EIGRP进程,R2上暂时不开启,然后使用wireshark进行抓包分析: 由此 ...

  5. (计算机组成原理)第一章计算机系统概述-第二节:计算机硬件组成(存储器、运算器和控制器概述及计算机工作过程详解)

    文章目录 一:计算机层次结构 (1)早期的冯诺依曼机 (2)现代计算机的组织结构 二:计算机硬件概述 (1)存储器 A:存储元.存储单元.存储体.存储字和存储字长 B:存储器的基本结构 (2)运算器 ...

  6. (王道计算机组成原理)第一章计算机系统概述-第二节:计算机硬件组成(存储器、运算器和控制器概述及计算机工作过程详解)

    王道考研复习指导获取:密码7281 专栏目录首页:[专栏必读]王道考研408计算机组成原理万字笔记.题目题型总结.注意事项.目录导航和思维导图 文章目录 本节思维导图 一:计算机层次结构 (1)冯诺依 ...

  7. DNS的工作过程详解

    文章目录 什么是DNS DNS的作用 DNS解析的过程 递归查询和迭代查询 什么是DNS DNS(DOMAIN NAME SYSTEM)是一个域名系统,是万维网上作为域名和IP地址相互映射的一个分布式 ...

  8. 对称加密和非对称加密算法工作过程详解

    非对称加密算法: 加密和解密使用不同的密钥.公钥只能用来加密,而私钥只能用来解密.私钥由用户自己拥有.公钥公开配送,只要有需求即可获得. 优点: 算法安全性高,公钥公开,私钥自己保存 缺点: 加密和解 ...

  9. hadoop作业初始化过程详解(源码分析第三篇)

    (一)概述 我们在上一篇blog已经详细的分析了一个作业从用户输入提交命令到到达JobTracker之前的各个过程.在作业到达JobTracker之后初始化之前,JobTracker会通过submit ...

最新文章

  1. 利用fnd_conc_global.set_req_globals设置子请求的Parent Request ID
  2. 019_with语句
  3. Java I/O不迷茫,一文为你导航!
  4. STL中算法锦集(三)
  5. Linux平台gcc和动态共享库的基础知识
  6. 项目管理系列之项目范围时间及资源管理(一)
  7. [Git]Git远程仓库
  8. android 录像 源代码,android安卓视频录制摄像拍摄源码(测试可用)
  9. 2017级C语言大作业 - 密室逃生
  10. 二叉树翻转(递归 + 非递归)
  11. zend反编译-dezender 使用
  12. mysql binary-mode=1_Mysql 性能调优 二 1
  13. python 给定n,返回n以内的斐波那契数列
  14. 全源最短路径 - floyd算法 - O(N ^ 3)
  15. 中标麒麟7.0+linux内核版本,中标麒麟7.0下载
  16. 边界值分析法用例设计
  17. 天猫精灵 python_天猫精灵控制esp8266点led灯
  18. 关于裁剪CSV文件中的各类数据的代码
  19. 如何做一个讨厌的女人
  20. 你是工作狂?也许你只是”工作上瘾“了

热门文章

  1. 再见,FastJson...
  2. 学 Redis ,至少要看看这篇!7000 字小结
  3. Docker怎么修改hosts
  4. 【图解】算法原理!通俗理解机器学习算法
  5. B站崩了上热搜,A站跟着躺枪!微信、支付宝:跟我们比起来这是小问题
  6. 最新视觉Transformer综述(2017-2020年)
  7. 详解Pytorch的nn.DataParallel
  8. 9大项目实战!tensorflow2.0框架实战(免费资料+干货合集)
  9. 一文看懂 Bahdanau 和 Luong 两种 Attention 机制的区别
  10. 哈佛大学校长: 教育是培养你辨别有人在胡说八道的能力