一、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, itertools模块

    通过itertools模块,可以用各种方式对数据进行循环操作 1, chain() from intertools import chain for i in chain([1,2,3], ('a', ...

  2. How to use liftover

    First step, installation: download from UCSC genome browser chmod + x Second, very important: to dow ...

  3. Boot Repair-能一键修复ubuntu启动/引导项的软件(告别命令行)

    如果你是windows+ubuntu的双系统,那么重装windows之后(非ghost 方式),是会直接进入windows的,之前的grub引导菜单会被抹掉,想要修复ubuntu的启动菜单的话,通常需 ...

  4. 矩阵卷积Matlab(转载)

    转载自:http://blog.csdn.net/anan1205/article/details/12313593 两个矩阵卷积转化为矩阵相乘形式--Matlab应用(这里考虑二维矩阵,在图像中对应 ...

  5. 解决Volley请求网络数据返回的数据乱码

    本人可参考http://tieba.baidu.com/p/4039693566 以往一般我们如下写就可以了 StringRequest request=new StringRequest(url, ...

  6. HTML---常见标签与插入背景音乐;

     插入背景音乐 (一).基本语法: embed src=url 说明:embed可以用来插入各种多媒体,格式可以是 Midi.Wav.AIFF.AU.MP3等等, Netscape及新版的IE 都支持 ...

  7. 三星Mega 6.3(i9200)删除kingroot

    关于kingroot实际效果怎么样,是不是流氓软件,我不做评论. 手机型号,三星galaxy mega 6.3(i9200)水货,更详细的机型不知道怎么看. 刷了官方的rom以后,下载了kingroo ...

  8. 由<a>标签的onclick影出来的问题

    今天做了一个 通过 document.getElementByName()的方法获得一个标签a的集合.tag_a=window.docu..... 接着需要给每个标签都加一个onclick事件. fo ...

  9. Compiler ,Interpreter, Linker

    https://en.wikipedia.org/wiki/Interpreter_(computing) https://en.wikipedia.org/wiki/Compiler https:/ ...

  10. UserDefault的使用,保存小数据到本地-iOS

    //保持到本地数据 NSArray *array=@[@"234",@"sdfe"]; NSUserDefaults *userDefault=[NSUserD ...