一、DHCP服务介绍:
  DHCP为动态主机配置协议,该协议能自动配置主机的IP地址、子网掩码、网关及DNS服务器等TCP/IP信息。DHCP可以降低客户机IP地址配置的复杂度和网络管理成本。
  DHCP协议在BOOTP基础上改进,提供了良好的动态IP地址配置功能,DHCP采用C/S结构,服务器集中式管理所有IP信息,并处理客户端发送的DHCP请求,动态分配地址;客户端从服务器获取指定IP地址及其他网络配置。且与BOOTP相比,DHCP引入IP地址使用期限的概念,分配给客户机的IP并非永久使用,在必要的情况下,服务器收回该地址,高效完成IP地址的分配。
  二、DHCP前身BOOTP操作原理:
  1、BOOTP服务器使用UDP端口67等待用户。
  2、用户发送BOOTP请求报文给服务器,报文封装为UDP用户数据报,使用UDP口68,UDP数据报再封装为IP数据报,在封装中用户用全0的源地址和全1的目标地址。
  3、服务器用广播或者单播响应用户,使用目的端口UDP68,单播回答优先使用,当服务器使用单播回答,则不能用ARP协议服务。
  三、DHCP工作原理:
  (1)当DHCP客户端第一次登录网络时,假定客户机上没有任何IP信息设置,它会使用UDP67端口向网络发出DHCP DISCOVER数据包。由于客户机还不知道DHCP服务器位置,为保证服务器可以接受到请求,数据包源地址设定为0.0.0.0,而目的地址为255.255.255.255,以广播形式发送DHCP DISCOVER的信息。
  (2)当DHCP服务器监听到客户端发送的DHCP DISCOVER广播后,它从那些还未租出的地址范围内,选择可用IP,连同其他TCP/IP设定,以DHCP OFFER数据包形式发送给客户机。且发送DHCP OFFER的服务器将已提供的IP地址上锁,使其对其他任何主机不可用,若用户没有收到DHCPOFFER报文,服务器重发4次,间隔2秒,若没有对这些DHCPOFFER提供任何回复,客户需要休眠5分钟后再发。
  (3)如果客户端收到网络上多台DHCP服务器的响应,会挑选响应嘴快的一个DHCP OFFER,并且会向网络发送一个DHCP REQUEST广播封包,告诉所有DHCP服务器它将选择使用哪台服务器提供的IP地址。同时,客户端还会向网络发送ARP广播数据包,查询网络上是否有其他机器使用该IP地址,如果发现IP地址被占用,客户端发送一个DHCP DECLINE数据包给DHCP服务器,拒绝接受DHCP OFFER,并重新发送DHCP REQUEST信息。
  (4)将地址分配给客户机,DHCP服务器发送一个DHCP ACK消息,以确认IP租约正式生效,以结束DHCP工作过程。
  (5)DHCP CLIENT成功从服务器获取IP后,一般不需要再发送DHCP DISCOVER信息,除非其租约失效或IP地址重新设定为0.0.0.0,而会直接用已经租约到的IP向发此IP的DHCP服务器发出DHCP REQUEST信息,DHCP服务器会尽量让客户端使用原IP,一般会直接响应DHCP ACK,允许客户端继续用该IP。若该地址失效了或者被其他机器获得,服务器则响应一个DHCP NACK数据包给客户端,要求其重新执行DHCP DISCOVER。
  (6)当达到50%的租约期之前,客户发送另一个DHCP REQUEST,请求更新。
  (7)若服务器响应DHCP ACK,则客户将得到新的租约协定,并将计时器复位,若服务器响应DHCP NACK,则客户必须停止使用该IP,并寻找一台服务器。
  (8)若服务器不响应,当达到87.5%租约期时发送另一个DHCP REQUEST,若在租约期结束前收到响应,则采取相应动作。若没有收到,则等待直到租约期结束重新开始第一步。
  当然也可以提前结束租约,命令IPCONFIG /RELEASE就可以了。
  (注:客户机执行DHCP DISCOVER后,若没有DHCP服务器响应客户机的请求,客户机会使用169.254.0.0/16网段中的一个IP地址配置本机。)
  四、DHCP地址租用角色:
  1、时间范围1~3周的租约通常用在机器基本不移动、员工总数也是稳定的网络上。
  2、租用周期平均在1~3天的情况用于大量临时用户有规律的进进出出网络的状况。
  3、租用周期在4~8小时常常用在ISP网络,它的客户端在不断的进进出出。
  五、DHCP租用的更多信息:
  即使客户端通常无限期的保持其地址,它们也能够随时取消其地址租用,从而将地址返回给DHCP服务器管理空闲的IP地址池。在WINDOWS计算机上,IPCONFIG /RELEASE和RENEW可任意释放它们之前的DHCP租用。
  DHCP与DNS集成:
  (1)服务器地址使用DNS公布,它将域名解析为IP地址或反解析。
  (2)DNS不是一个动态环境,因此所有地址更新都必须手工输入。
  (3)只有当user@domain.com的电子邮件地址必须被解析时,客户端地址通常才会发挥作用。
  六、DHCP协议分组格式:
  1、操作码:8BIT定义DHCP协议分组类型:请求为1,回答为2。
  2、硬件类型:8BIT定义物理网络类型,对于以太网为1。
  3、硬件长度:8BIT定义物理地址以字节为单位的长度。
  4、跳数:8BIT定义分组可以经过的最大跳数。
  5、事务标示符:是一个携带整数的4字节字段,由客户设置,用来匹配对请求的回答,服务器在回答时返回同样的值。
  6、秒数:16BIT表示客户从开始请求起共经历多长时间。
  7、标志:1BIT(还有1BIT未用)用来让客户指明一个从服务器的强制广播回答。若回答是单播的,则IP分组的目的IP地址就是指派给用户的地址,由于客户不知道地址,所以丢弃报文,但若数据报广播发送,则每个主机都接收/处理报文。
  8、客户IP地址:4字节,包含客户IP地址,若客户没有这个信息,该字段为0。
  9、你的IP地址:4字节,包含客户IP地址,这是服务器在客户请求下提供的。
  10、服务器IP地址:4字节,包含服务器IP地址,是服务器在回答报文中提供的。
  11、网关地址:4字节,包含一个路由器IP地址,是服务器回答时提供的。
  12、客户硬件地址:客户的硬件地址,一般由客户在请求报文中显示提供的这个地址。
  13、服务器名;可选64字节字段。由服务器在回答分组中提供,包含服务器的域名。
  14、引导文件名:可选128字节字段。由服务器在回答报文中提供,包含引导文件全路径名,客户可以根据路径读取其他引导信息。
  15、选项:在选项清单中增加了几个选项,其中标记为53的值定义客户与服务器之间的交互类型,其他选项定义租约时间。选项字段多达312字节。

DHCP协议讲解的更多相关文章

  1. 协议森林16 小美的桌号(DHCP协议)

    作者:Vamei 出处:http://www.cnblogs.com/vamei 转载请先与我联系. DHCP协议用于动态的配置电脑的网络相关参数,如主机的IP地址,路由器出口地址.DNS域名服务器地 ...

  2. 协议分析 - DHCP协议解码详解

    协议分析 - DHCP协议解码详解 [DHCP协议简介]         DHCP,全称是 Dynamic Host Configuration Protocol﹐中文名为动态主机配置协议,它的前身是 ...

  3. DHCP协议格式、DHCP服务搭建、DHCP协商交互过程入门学习

    相关学习资料 http://www.rfc-editor.org/rfc/rfc2131.txt http://baike.baidu.com/view/7992.htm?fromtitle=DHCP ...

  4. 一、SOAP简单对象访问协议讲解

    一.SOAP简单对象访问协议讲解 今天给大家讲讲SOAP的基本知识.下节给大家演示创建基于SOAP的Web Service. 更多SOA文章请查看我的个人博客. 首先,让我来简单一下入门SOAP所需的 ...

  5. DHCP协议

    来源摘取自百度百科 DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是一个局域网的网络协议,使用UDP协议工作, 主要有两个用途:给内部网络或网络服 ...

  6. 【转】DHCP协议详解

    协议分析 - DHCP协议解码详解 DHCP协议简介 DHCP,全称是 Dynamic Host Configuration Protocol﹐中文名为动态主机配置协议,它的前身是 BOOTP,它工作 ...

  7. BOOTPROTO=[none|static|bootp|dhcp](引导时不使用协议|静态分配|BOOTP协议|DHCP协议)

     BOOTPROTO=[none|static|bootp|dhcp](引导时不使用协议|静态分配|BOOTP协议|DHCP协议) 

  8. NFS服务和DHCP服务讲解(week3_day2)--技术流ken

    NFS服务端概述 NFS,是Network File System的简写,即网络文件系统.网络文件系统是FreeBSD支持的文件系统中的一种,也被称为NFS: NFS允许一个系统在网络上与他人共享目录 ...

  9. DHCP协议分析(Wireshark)

    一.说明 一是很多时候IP都是设置成通过dhcp动态获取的,但一直不太清楚dhcp的具体交互过程:二是加上前几天有同事问知不知道DHCP具体交互过程:三是这两天正好在分析协议.所以就顺道来看一下. 如 ...

随机推荐

  1. python 的一些小技巧

    赋值: a, b, c = 'xixi', 'haha', 'hehe' 连接字典: >>> s = {1:'a', 2:'b', 3:'c'} >>> s.key ...

  2. 跟开涛老师学shiro -- 身份验证

    身份验证,即在应用中谁能证明他就是他本人.一般提供如他们的身份ID一些标识信息来表明他就是他本人,如提供身份证,用户名/密码来证明. 在shiro中,用户需要提供principals (身份)和cre ...

  3. B3log部署文档

    https://github.com/b3log/solo/wiki/standalone_mode 独立模式 只要已经安装好了 Java 环境,一个命令就能启动! 不依赖 MySQL 数据库,而是使 ...

  4. archlinux安装图形界面

    安装xorg 检查显卡驱动 $ lspci | grep VGA install X server wiki Then use the $ startx to start the X server, ...

  5. Linux启动流程详解

    在BIOS阶段,计算机的行为基本上被写死了,可以做的事情并不多:一般就是通电.BIOS.主引导记录.操作系统这四步.所以我们一般认为加载内核是linux启动流程的第一步. 第一步.加载内核 操作系统接 ...

  6. HOG特征(Histogram of Gradient)总结(转载)

    整理一下我个人觉得比较好的HOG博文 博文1:OpenCV HOGDescriptor: 参数与图解 http://blog.csdn.NET/raodotcong/article/details/6 ...

  7. Sprint第二个冲刺(第五天)

    一.Sprint 计划会议: 容杰龙继续完善昨天的SQLite修改数据操作,待全部操作完善后交给炜杰进行布局规范和整合. 二.Sprint周期:   看板: 燃尽图:

  8. ES6-函数扩展

  9. PHP strrpos strpos strstr strrchr 区别

    1. strstr string strstr ( string $haystack , mixed $needle [, bool $before_needle = false ] ) $needl ...

  10. Iaas-cloudstack概念

    管理serverother high end ports     tomcat20400                     tomcat     server.xml               ...