一、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. Android 2.3 不支持印度文

    Android 2.3 不支持印度文(hindi),即使你指定了相关的字符串也不行,它们一律显示为方格. 实际上,你在系统的语言设置界面也可以看到,印度文一行也是被显示为方格(既然是方格,如何知道它是 ...

  2. 解决spring-mvc @responseBody注解返回json 乱码问题

    在使用spring-mvc的mvc的时候既享受它带来的便捷,又头痛它的一些问题,比如经典的中文乱码问题.现在是用json作为客户端和服务端 的数据交换格式貌似很流行,但是在springmvc中有时候会 ...

  3. 博客引索 - imsoft.cnblogs

    Java C Delphi 日常工具 图片处理 视频处理 系统工具 知识经验 奇思妙想 网站推荐

  4. suse linux修改hostname

    SUSELinux中修改hostname需要修改以下两个文件 $vi /etc/HOSTNAME $vi /etc/hosts 然后重启系统即可.

  5. iOS学习笔记---oc语言第三天

    继承.初始化方法 一.继承 继承的上层:父类  继承的下层:子类 继承是单向的,不能相互继承 继承具有传递性:A继承于B,B继承于C,A具有B和C的特征和行为 子类能继承父类全部的特征和行为(私有变量 ...

  6. css selector

    文章一: http://www.jb51.net/css/68287.html 去年我学jQuery的时候,曾经做过一点选择器(selector)的笔记,今天是CSS的选择器,以后还有一部分xPath ...

  7. 网站不能访问(httperrLog【Timer_MinBytesPerSecond】【Timer_ConnectionIdle】)(转载)

    在\LogFiles\HTTPERR的日志(C:\Windows\System32\LogFiles\HTTPERR)中发现了大量Timer_MinBytesPerSecond,Timer_Conne ...

  8. 【POJ3904】【P1202】水晶密码

    说是莫比乌斯反演,其实只是玩儿玩儿内个miu函数而已…… 原题: wty  打算攻击 applepi  的用来存放机密数据的水晶系统. applepi 早有察觉,于是布置了一个密码系统来防备 wty ...

  9. 【LOI2005】【P1306】河流

    树归题,本来比较简单,但是因为几个思想搞错了,所以卡了两天 原题: 几乎整个Byteland 王国都被森林和河流所覆盖.小点的河汇聚到一起,形成了稍大点的河.就这样,所有的河水都汇聚并流进了一条大河, ...

  10. java的nio之:java的nio系列教程之FileChannel

    一:Java NIO的FileChannel===>Java NIO中的FileChannel是一个连接到文件的通道.可以通过文件通道读写文件. ===>FileChannel无法设置为非 ...