问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

DHCP与BOOTP有什么区别

发布网友 发布时间:2022-04-02 12:54

我来回答

2个回答

热心网友 时间:2022-04-02 14:23

什么是 DHCP?

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 里面:

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

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

DHCP 发放流程

第一次登录之后:

一旦 DHCP 客户端成功地从服务器哪里取得 DHCP 租约之后,除非其租约已经失效并且 IP 地址也重新设定回 0.0.0.0 ,否则就无需再发送 DHCP discover 信息了,而会直接使用已经租用到的 IP 地址向之前之 DHCP 服务器发出 DHCP request 信息,DHCP 服务器会尽量让客户端使用原来的 IP 地址,如果没问题的话,直接响应 DHCPack 来确认则可。如果该地址已经失效或已经被其它机器使用了,服务器则会响应一个 DHCPNACK 封包给客户端,要求其从新执行 DHCP discover。

至于 IP 的租约期限却是非常考究的,并非如我们租房子那样简单, 以 NT 为例子:DHCP 工作站除了在开机的时候发出 DHCP request 请求之外,在租约期限一半的时候也会发出 DHCP request ,如果此时得不到 DHCP 服务器的确认的话,工作站还可以继续使用该 IP ;然后在剩下的租约期限的再一半的时候(即租约的75%),还得不到确认的话,那么工作站就不能拥有这个 IP 了。至于为什么不是到租约期限完全结束才放弃 IP 呢?,对不起,小弟也是不学无术之人,没有去深究了,只知道要回答 MCSE 题目的时候,您一定要记得 NT 是这么工作的就是了。

要是您想退租,可以随时送出 DHCPLEREASE 命令解约,就算您的租约在前一秒钟才获得的。

跨网络的 DHCP 运作

从前面描述的过程中,我们不难发现:DHCDISCOVER 是以广播方式进行的,其情形只能在同一网络之内进行,因为 router 是不会将广播传送出去的。但如果 DHCP 服务器安设在其它的网络上面呢?由于 DHCP 客户端还没有 IP 环境设定,所以也不知道 Router 地址,而且有些 Router 也不会将 DHCP 广播封包传递出去,因此这情形下 DHCP DISCOVER 是永远没办法抵达 DHCP 服务器那端的,当然也不会发生 OFFER 及其它动作了。要解决这个问题,我们可以用 DHCP Agent (或 DHCP Proxy )主机来接管客户的 DHCP 请求,然后将此请求传递给真正的 DHCP 服务器,然后将服务器的回复传给客户。这里,Proxy 主机必须自己具有路由能力,且能将双方的封包互传对方。

若不使用 Proxy,您也可以在每一个网络之中安装 DHCP 服务器,但这样的话,一来设备成本会增加,而且,管理上面也比较分散。当然喽,如果在一个十分大型的网络中,这样的均衡式架构还是可取的。端视您的实际情况而定了。

DHCP封包格式

以下为各字段的简要说明:

OP
若是 client 送给 server 的封包,设为 1 ,反向为 2 。

HTYPE
硬件类别,Ethernet 为 1 。

HLEN
硬件地址长度, Ethernet 为 6 。

HOPS
若封包需经过 router 传送,每站加 1 ,若在同一网内,为 0 。

TRANSACTION ID
DHCP REQUEST 时产生的数值,以作 DHCPREPLY 时的依据。

SECONDS
Client 端启动时间(秒)。

FLAGS
从 0 到 15 共 16 bits ,最左一 bit 为 1 时表示 server 将以广播方式传送封包给 client ,其余尚未使用。

ciaddr
要是 client 端想继续使用之前取得之 IP 地址,则列于这里。

yiaddr
从 server 送回 client 之 DHCP OFFER 与 DHCPACK 封包中,此栏填写分配给 client 的 IP 地址。

siaddr
若 client 需要透过网络开机,从 server 送出之 DHCP OFFER、DHCPACK、DHCPNACK 封包中,此栏填写开机程序代码所在 server 之地址。

giaddr
若需跨网域进行 DHCP 发放,此栏为 relay agent 的地址,否则为 0 。

chaddr
Client 之硬件地址。

sname
Server 之名称字符串,以 0x00 结尾。

file
若 client 需要透过网络开机,此栏将指出开机程序名称,稍后以 TFTP 传送。

options
允许厂商定议选项(Vendor-Specific Area),以提供更多的设定信息(如:Netmask、Gateway、DNS、等等)。其长度可变,同时可携带多个选项,每一选项之第一个 byte 为信息代码,其后一个 byte 为该项数据长度,最后为项目内容。

CODE LEN VALUE

此字段完全兼容 BOOTP ,同时扩充了更多选项。其中,DHCP 封包可利用编码为 0x53 之选项来设定封包类别:

项值 类别
1 DHCP DISCOVER
2 DHCP OFFER
3 DHCP REQUEST
4 DHCPDECLINE
5 DHCPACK
6 DHCPNACK
7 DHCPRELEASE

DHCP 的选项非常多,有空请查阅 RFC 或相关文献,并好好理解,这里不再叙述了。

DHCP 协议之 RFC 文件

RFC-951、RFC-1084、RFC-1123、RFC-1533、RFC-1534、RFC-1497、RFC-1541

热心网友 时间:2022-04-02 15:41

什么是DHCP?
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第一次从DHCP服务器租用到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已经被占用,客户端则会送出一个DHCP decline封包给DHCP服务器,拒绝接受其DHCP offer,并重新发送DHCP discover信息。
事实上,并不是所有DHCP客户端都会无条件接受DHCP服务器的offer,尤其这些主机安装有其它TCP/IP相关的客户软件。客户端也可以用DHCP request向服务器提出DHCP选择,而这些选择会以不同的号码填写在DHCP Option Field里面:
换一句话说,在DHCP服务器上面的设定,未必是客户端全都接受,客户端可以保留自己的一些TCP/IP设定。而主动权永远在客户端这边。
租约确认。当DHCP服务器接收到客户端的DHCP request之后,会向客户端发出一个DHCP ack响应,以确认IP租约的正式生效,也就结束了一个完整的DHCP工作过程。
DHCP发放流程
第一次登录之后:
一旦DHCP客户端成功地从服务器那里取得DHCP租约之后,除非其租约已经失效并且IP地址也重新设定回0.0.0.0,否则就无需再发送DHCP discover信息了,而会直接使用已经租用到的IP地址向之前的DHCP服务器发出DHCP request信息,DHCP服务器会尽量让客户端使用原来的IP地址,如果没问题的话,直接响应DHCP ack来确认则可。如果该地址已经失效或已经被其他机器使用了,服务器则会响应一个DHCP nack封包给客户端,要求其重新执行DHCP discover。
至于IP的租约期限确实非常考究的,并非如我们租房子那样简单,以NT为例子:DHCP工作站除了在开机的时候发出DHCP request请求之外,在租约期限一半的时候也会发出DHCP request,如果此时得不到DHCP服务器确认的话,工作站还可以继续使用该IP;然后在剩下的租约期限的再一半的时候(即租约的75%),还得不到 确认的话,那么工作站就不能拥有这个IP了。至于为什么不是到租约期限完全结束才放弃IP呢?对不起,小弟也是不学无术之人,没有去深究了,只知道要回答 MCSE题目的时候,您一定要记得NT是这么工作就是了。
要是您想退租,可以随时送出DHCP release命令解约,就算您的租约在前一秒钟才获得的。
跨网络的DHCP运作
从前面描述的过程中,我们不难发现:DHCP discover是以广播方式进行的,其请求只能在同一网络之内进行,因为router是不会将广播传送出去的。但如果DHCP服务器安设在其它的网络上 面呢?由于DHCP客户端还没有IP环境设定,所以也不知道router地址,而且有些router也不会将DHCP广播封包传递出去,因此这情形下 DHCP discover是永远没办法抵达DHCP服务器那端的,当然也不会发生 ,offer及其它动作了。要解决这个问题,我们可以用DHCP Agent( 或 DHCP Proxy )主机来接管客户的DHCP请求,然后将此请求传递给真正的DHCP服务器,然后将服务器的回复传给客户。这里Proxy主机必须自己具有路由能力,且能将双方的封包互传对方。
若不使用Proxy,您也可以在每一个网络之中安装DHCP服务器,但这样的话,一来设备成本会增加,而且管理上面也比较分散。当然喽,如果在一个十分大型的网络中,正阳的均衡式构架还是可取的。视您的实际情况而定了。
http://tech.ddvip.com/2008-11/122691202092985.html
67和68 Bootp和DHCP
UDP上的Bootp/DHCP: 通常DSL和cable-modem的防火墙常会看见大量发送到广播地址255.255.255.255的数据。这些机器在向DHCP服务器请求一个地址 分配。Hacker常进入它们分配一个地址把自己作为局部路由器而发起大量的“中间人”(man-in-middle)攻击。客户端向68端口 (bootps)广播请求配置,服务器向67端口(bootpc)广播回应请求。这种回应使用广播是因为客户端还不知道可以发送的IP地址。
DHCP与Bootp的不同点在于,Bootp也可以完成给主机分配IP地址的任务,但它要求主机的硬件地址必须被手工输入到Bootp表中。可以讲 DHCP看成一个动态的Bootp。但是,要记住的是,Bootp还可以将用来引导主机的操作系统发送给主机。而DHCP不可以。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
谁告诉我一下,韩语中,“遵命”怎么说 想开个甜品店,不知道哪里可以学习呢 如何取消微信新号绑定的手机号? 翼支付-翼建钟情活动内容是什么? 怎么参加翼支付“翼建钟情”活动? 翼支付--翼建钟情立减10元-建行这次活动有具体名额限制吗? 西凤酒是哪里的 货车总重量不超过二十吨就不算超载吗? 自卸货车上装有二十多吨货已经有四五天了对货车能伤害哪个部位? 如何回复别人的"忙里偷闲"? 成都新东方川菜大师告诉你经典川菜——蒜泥白肉的做法,怎么做蒜泥白肉? 蒜泥白肉,怎样做蒜泥白肉好吃 蒜泥白肉没有放太多的调料,这样吃起来真的不会腻吗? 色香味俱全的蒜泥白肉,你学会了吗? 蒜泥白肉在制作的时候,都需要用到哪些材料? 爽口下酒菜蒜泥白肉,需要用到哪些调料? 富士X100F和XE3的区别? 富士X100的一些问题 富士X100F可以用64G卡吗 富士x100f 数码相机是什么画幅 富士X100T和PEN-F怎么选? x100f怎么样,画质好吗 富士x100f拍照会模糊吗,拍近景人像能达到放大数毛程度吗?全开光圈非近距离还肉吗? 富士x100f好吗 富士x100f如何拍星空? Visual Studio 2013 vb 怎么处理JSON数据 关于易语言的json数据处理 安卓 从网上获取的json数据如何处理 怎么处理一个html网页的json数据 jquery处理json数据 做家庭版蒜泥白肉时,应该提前准备什么食材? Microsoft Excel 工作表 怎样在下面做水印? lol为什么叫甩锅局?我感觉这局我不该背锅啊,我是小炮 描写人物的句子(百度文库) 与女生聊天的开场白怎么说? 跟女孩子聊天开场白怎么说? 和女生聊天技巧开场白哪些? 中午跟女生聊天开场白怎么说? 和女孩子聊天的时候,有什么好的开场白吗? 每天喝女孩聊天怎么开头 配音软件 一年一度低保照相重度残疾人不能去低保照相咋办 残障的四种模式 残联有哪些最新政策 关于BOOTP,RARP.DHCP的区别.... 肢体残疾分几级,级和级之间有什么区别?可以享受什么*?有什么好处 残疾人可享受哪些优惠政策? 国家有哪些专门为残疾人提供服务的机构 我单位安排伤残军人且超过1.5%,残联却认为只有残疾军人证,无残疾人证,还要交纳残疾人就业保障金,合理吗 残疾人可以享受哪些社会福利