`
阅读更多

DHCP 是 Dynamic Host Configuration Protocol(动态主机分配协议 )缩写﹐它的前身是 BOOTP。BOOTP 原本是用于无磁盘主机连接的网络上面的﹕网络主机使用 BOOT ROM 而不是磁盘起动并连接上网络﹐BOOTP 则可以自动地为那些主机设定 TCP /IP 环境。但 BOOTP 有一个缺点:您在设定前须事先获得客户端的硬件地址,而且,与 IP 的对应是静态的。换而言之,BOOTP 非常缺乏 "动态性" ,若在有限的 IP 资源环境中,BOOTP 的一对一对应会造成非常可观的浪费。
DHCP 可以说是 BOOTP 的增强版本﹐它分为两个部份﹕一个是服务器 端﹐而另一个是客户端。所有的 IP 网络设定数据都由 DHCP 服务器集中管理﹐并负责处理客户端的 DHCP 要求﹔而客户端则会使用从服务器分配下来的IP环境数据。比较起 BOOTP ,DHCP 透过 "租约" 的概念,有效且动态的分配客户端的 TCP /IP 设定,而且,作为兼容考虑,DHCP 也完全照顾了 BOOTP Client 的需求。

DHCP 的分配形式

  首先﹐必须至少有一台 DHCP 工作在网络上面﹐它会监听网络的 DHCP 请求﹐并与客户端搓商 TCP /IP 的设定环境。它提供两种 IP 定位方式﹕


Automatic Allocation
  自动分配﹐其情形是﹕一旦 DHCP 客户端第一次成功的从 DHCP 服务器 端租用到 IP 地址之后﹐就永远使用这个地址。


Dynamic Allocation
  动态分配﹐当 DHCP 第一次从 HDCP 服务器端租用到 IP 地址之后﹐并非永久的使用该地址﹐只要租约到期﹐客户端就得释放(release)这个 IP 地址﹐以给其它工作站 使用。当然﹐客户端可以比其它主机更优先的更新(renew)租约﹐或是租用其它的 IP 地址。

  动态分配显然比自动分配更加灵活﹐尤其是当您的实际 IP 地址不足的时候﹐例如﹕您是一家 ISP ﹐只能提供 200 个IP地址 用 来给拨接客户﹐但并不意味着您的客户最多只能有 200 个。因为要知道﹐您的客户们不可能全部同一时间上网的﹐除了他们各自的行为习惯的不同﹐也有可能是电话线路的限制。这样﹐您就可以将这 200 个地址﹐轮流的租用给拨接上来的客户使用了。这也是为什么当您查看 IP 地址的时候﹐会因每次拨接而不同的原因了(除非您申请的是一个固定 IP ﹐通常的 ISP 都可以满足这样的要求﹐这或许要另外收费)。当然﹐ISP 不一定使用 DHCP 来分配地址﹐但这个概念和使用 IP Pool 的原理是一样的。

  DHCP 除了能动态的设定 IP 地址之外﹐还可以将一些 IP 保留下来给一些特殊用途的机器使用﹐它可以按照硬件地址来固定的分配 IP 地址﹐这样可以给您更大的设计空间。同时﹐DHCP 还可以帮客户端指定 router﹑netmask﹑DNS Server﹑WINS Server﹑等等项目﹐您在客户端上面﹐除了将 DHCP 选项打勾之外﹐几乎无需做任何的 IP 环境设定。

DHCP 的工作原理

  根据客户端是否第一次登录网络﹐DHCP 的工作形式会有所不同。

第一次登录的时候﹕


  寻找 Server。当 DHCP 客户端第一次登录网络的时候﹐也就是客户发现本机上没有任何 IP 数据 设定﹐它会向网络发出一个 DHCP DISCOVER 封包。因为客户端还不知道自己属于哪一个网络﹐所以封包的来源地址会为 0.0.0.0 ﹐而目的地址则为 255.255.255.255 ﹐然后再附上 DHCP discover 的信息﹐向网络进行广播。

  在 Windows 的预设情形下,DHCP discover 的等待时间预设为 1 秒﹐也就是当客户端将第一个 DHCP discover 封包送出去之后,在 1 秒之内没有得到响应的话﹐就会进行第二次 DHCP discover 广播。若一直得不到响应的情况下﹐客户端一共会有四次 DHCP discover 广播(包括第一次在内)﹐除了第一次会等待 1 秒之外,其余三次的等待时间分别是 9﹑13﹑16 秒。如果都没有得到 DHCP 服务器 的响应﹐客户端则会显示错误信息﹐宣告 DHCP discover 的失败。之后,基于使用者的选择﹐系统会继续在 5 分钟之后再重复一次 DHCP discover 的过程


  提供 IP 租用地址。当 DHCP 服务器 监听到客户端发出的 DHCP discover 广播后﹐它会从那些还没有租出的地址范围内﹐选择最前面的空置 IP ,连同其它 TCP /IP 设定,响应给客户端一个 DHCP OFFER 封包。

  由于客户端在开始的时候还没有 IP 地址﹐所以在其 DHCP discover 封包内会带有其 MAC 地址信息﹐并且有一个 XID 编号来辨别该封包﹐DHCP 服务器 响应的 DHCP offer 封包则会根据这些资料传递给要求租约的客户。根据服务器端的设定﹐DHCP offer 封包会包含一个租约期限的信息。


  接受 IP 租约。如果客户端收到网络上多台 DHCP 服务器 的响应﹐只会挑选其中一个 DHCP offer 而已(通常是最先抵达的那个)﹐并且会向网络发送一个DHCP request广播封包﹐告诉所有 DHCP 服务器它将指定接受哪一台服务器提供的 IP 地址。

  同时﹐客户端还会向网络发送一个 ARP 封包﹐查询网络上面有没有其它机器使用该 IP 地址﹔如果发现该 IP 已经被占用﹐客户端则会送出一个 DHCPDECLINE 封包给 DHCP 服务器 ﹐拒绝接受其 DHCP offer ﹐并重新发送 DHCP discover 信息。

  事实上﹐并不是所有 DHCP 客户端都会无条件接受 DHCP 服务器 的 offer ﹐尤其这些主机安装有其它 TCP /IP 相关的客户软件 。客户端也可以用 DHCP request 向服务器提出 DHCP 选择﹐而这些选择会以不同的号码填写在 DHCP Option Field 里面﹕

滚动鼠标滚轮进行缩放,按此在新窗口浏览图片 00001.jpg


换一句话说﹐在 DHCP 服务器 上面的设定﹐未必是客户端全都接受﹐客户端可以保留自己的一些 TCP /IP 设定。而主动权永远在客户端这边。


  租约确认。当 DHCP 服务器 接收到客户端的 DHCP request 之后﹐会向客户端发出一个 DHCPACK 响应﹐以确认 IP 租约的正式生效﹐也就结束了一个完整的 DHCP 工作过程

如上的工作流程如下图:

滚动鼠标滚轮进行缩放,按此在新窗口浏览图片 00002.jpg

 

 

其它相关资料:

http://zh.wikipedia.org/zh/DHCP

http://www.networksorcery.com/enp/protocol/bootp/options.htm

http://www.bind9.net/rfc-dhcp

分享到:
评论

相关推荐

    华三DHCP及DHCP 中继实验配置

    华三DHCP及DHCP中继实验配置 华三DHCP技术是在计算机网络中的一种自动分配IP地址的协议,DHCP(Dynamic Host Configuration Protocol)是目前最流行的自动IP地址分配协议。DHCP服务器可以自动分配IP地址、子网掩码...

    BOOTP和DHCP协议.rar_BOOTP_dhcp_以太网的BOOTP和DHCP协议

    BOOTP(Bootstrap Protocol)和DHCP(Dynamic Host Configuration Protocol)是两种在局域网环境中用于自动分配IP地址和其他网络配置信息的重要协议。它们在以太网网络中扮演着至关重要的角色,确保了设备能快速、...

    DHCP.rar_W5500_DHCP_realnde_w5500_w5500 dhcp_w5500自动获取ip

    DHCP(Dynamic Host Configuration Protocol)是一种网络协议,用于在局域网中自动分配IP地址、子网掩码、默认网关、DNS服务器等网络参数。在嵌入式系统或者物联网设备中,W5500是一款常用的以太网控制器,它集成了...

    dhcp源码 dhcp源码 ,很不错的源码

    DHCP(Dynamic Host Configuration Protocol)是一种网络协议,用于自动分配IP地址和其他网络配置参数,如DNS服务器和子网掩码,使得网络设备可以快速便捷地接入网络。在深入理解DHCP源码之前,我们首先需要了解DHCP...

    DHCP配置(R2 DHCP服务器 R1 中继路由器 R4 DHCP客户端)

    DHCP(动态主机配置协议)是网络管理员广泛使用的协议,用于自动分配IP地址、子网掩码、默认网关、DNS服务器等网络参数给网络中的设备。在Cisco网络环境中,DHCP配置通常涉及多个组件,如DHCP服务器、中继路由器和...

    DHCP诊断修复工具

    DHCP(动态主机配置协议)是网络管理员广泛使用的协议,用于自动分配、管理和回收网络设备的IP地址。当网络中的DHCP出现问题时,可能导致客户端无法获取到正确的IP配置,从而影响网络连接。"DHCP诊断修复工具"就是...

    dhcp-4.4.1最新dhcp服务器源码

    DHCP(Dynamic Host Configuration Protocol)是一种网络协议,用于自动分配IP地址、子网掩码、默认网关等网络参数给客户端。在这个场景中,我们关注的是`dhcp-4.4.1`,这是一个最新的DHCP服务器的源码版本。源码...

    dhcp.rar_dhcp_dhcp c_vxworks DHCP代码_vxworks dhcp

    这份"dhcp.rar_dhcp_dhcp c_vxworks DHCP代码_vxworks dhcp"压缩包包含的应该是VxWorks操作系统中DHCP组件的源代码,可能涵盖了以下关键知识点: 1. **DHCP客户端**:VxWorks DHCP客户端的源代码可能包含了处理DHCP...

    dhcp server dhcp server

    在标题和描述中提到的"dhcp server dhcp client",指的是DHCP服务器与DHCP客户端之间的交互过程。 DHCP服务器是网络中的关键组件,它负责管理IP地址池,当一个新设备请求网络连接时,服务器会为其提供所需的网络...

    华三DHCP配置实验报告

    【华三DHCP配置实验报告】详细解析 本实验旨在深入理解动态主机配置协议(DHCP)的工作原理和配置方法,以及如何通过路由器实现DHCP服务。实验涉及的主要知识点包括DHCP的基本概念、工作流程、两种基本配置方式,...

    DHCP最小化工具

    DHCP(Dynamic Host Configuration Protocol)是一种网络协议,用于自动分配IP地址、子网掩码、默认网关等网络参数给网络中的设备。DHCP服务在各种规模的网络环境中都至关重要,因为它极大地简化了网络管理员的工作...

    isc dhcp 4.3.1 源代码

    《深入解析ISC DHCP 4.3.1源代码》 ISC DHCP(Internet Systems Consortium Dynamic Host Configuration Protocol)是一款广泛应用于Linux环境的开源DHCP服务器软件,它为网络中的设备自动分配IP地址、DNS服务器、...

    内网非法DHCP服务器查找

    ### 内网非法DHCP服务器查找 #### 一、背景介绍 在企业或组织机构的内部网络中,DHCP(动态主机配置协议)是极为重要的网络管理工具之一,它能够自动为连接到网络中的计算机或其他设备分配IP地址及相关的网络参数...

    DHCP的安装和配置

    DHCP 安装和配置 DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是一种网络协议,用于自动分配 IP 地址和其他相关网络参数给客户机。DHCP 服务器提供了一个集中管理网络设备的 IP 地址分配和管理...

    Win7 x64下实现DHCP Server功能

    ### Win7 x64下实现DHCP Server功能 在企业级网络环境中,DHCP (Dynamic Host Configuration Protocol) 服务器的功能非常重要,它能够自动为局域网内的设备分配IP地址和其他网络参数,极大地简化了网络管理的工作量...

    Linux下配置ipv6 dhcp

    根据提供的文件内容,我们可以深入探讨在Linux环境下配置IPv6 DHCP服务的相关知识点。 ### IPv6概述 IPv6(Internet Protocol Version 6)是互联网协议的第六版,旨在解决IPv4地址空间耗尽的问题,并且提供了更...

    Linux系统下dhcp源码

    Linux系统下的DHCP(Dynamic Host Configuration Protocol)源码解析 DHCP是一种网络协议,用于自动分配IP地址、子网掩码、默认网关等网络配置信息给网络中的设备。在Linux环境中,DHCP服务器通常使用isc-dhcp-...

    DHCP配置全局模式与接口模式

    DHCP配置全局模式与接口模式 DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是一种应用层协议,用于将IP地址和其他相关参数分配给网络设备。DHCP配置模式有两种:全局模式和接口模式。本文将详细...

    DHCP源代码-4.2.8

    DHCP(Dynamic Host Configuration Protocol)是一种网络协议,用于自动分配IP地址、子网掩码、默认网关等网络配置信息给客户端。这个压缩包“DHCP源代码-4.2.8”包含了2015年8月时的最新DHCP服务器的源代码,为...

Global site tag (gtag.js) - Google Analytics