一、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. R编程感悟

    虽然大学阶段曾经学过C++, matlab等编程,但是真的几乎完全还给了老师- 所以,我一直将R 作为自己真正学习的第一门语言.我从2012年初在来美国的第二个rotation中开始接触到了R.当时不 ...

  2. Linux的服务器初始优化脚本。

    #!/bin/bash #优化服务器启动的脚本.禁用无关账号.无关服务 #Lock User Account passwd -l xfs passwd -l news passwd -l nscd p ...

  3. 让Grub 2来拯救你的 bootloader

    没有什么事情比 bootloader 坏掉更气人的了,充分发挥 Grub 2 的作用,让 bootloader 安分工作吧.为什么这么说? Grub 2 是最受欢迎的 bootloader ,几乎用在 ...

  4. nginx服务配置---php服务接入

    前言: 最近要搭建一个内部的wiki系统, 网上搜了一圈, 也从知乎上搜集了一些大神的评价和推荐. 重点找了几个开源的wiki系统, 不过发现他们都是采用php来实现的. 于是乎需要配置php环境, ...

  5. ES6 — 数组Array

    ES6对数组引入了几个新函数: (1) Array.of() 作用是将一组数值,转换为数组. Array.of(1,2,3,4); //[1,2,3,4] (2) Array.from() 作用是把类 ...

  6. boot/bootsect.S

    !! SYS_SIZE is the number of clicks (16 bytes) to be loaded.! 0x7F00 is 0x7F000 bytes = 508kB, more ...

  7. JavaWeb学习记录(十五)——浏览器Cookie禁用后的处理

    IE禁用Cookie方式:

  8. Android——多线程编程练习题

    随便选择两个城市作为预选旅游目标.实现两个独立的线程分别显示10次城市名,每次显示后休眠一段随机时间(1000ms以内),哪个先显示完毕,就决定去哪个城市.分别用Runnable接口和Thread类实 ...

  9. 布局转换:文档流->绝对定位

    布局转换:文档流->绝对定位(详见妙味JS高级教程,运动课程第6课20分钟起)比如一个DIV中有三张图片并排,个数不确定的布局.需要鼠标移上去图片从中心放大,只使用float:left布局在放大 ...

  10. 【BZOJ1007】【HNOI2008】水平可见直线

    依旧看黄学长代码,不过这回是看完后自己写的 原题: 在xoy直角坐标平面上有n条直线L1,L2,...Ln,若在y值为正无穷大处往下看,能见到Li的某个子线段,则称Li为可见的,否则Li为被覆盖的.例 ...