DHCP工作过程

DHCP工作过程:
     说到DHCP的工作过程实质来说挺简单的,下面我想用通俗的语言来简单的阐述一下DHCP的工作过程。
     首先我们想要上网就必须要有一个IP地址,那么我们的pc上的ip地址是怎么来的呢?这时我们因该会先想到去向别人要一个可以能用的ip地址,但是呢pc不知道去向谁要一个,它就会以广播的方式发送DHCP discover发现信息来寻找DHCP服务器,发送广播后谁都可以收的到吗?答案是肯定的!只要网络上每一台安装了TCP/IP协议的主机都会接收到这个广播信息,但是只有DHCP服务器才会给出应答,它就像管理员一样管理着ip地址,谁需要,谁就要到它这儿来领取。当服务器收到电脑发送的DHCPdiscover信息并给出应答后,它就会从尚未分配的IP地址池中挑出一个能用的地址给你的电脑用,但是给你电脑发送的这个信息里会包含分配的IP地址和其他设置的DHCP offer提供信息。电脑收到了信息后它会选择所有服务器发来的消息吗?答案是否定的,我们的电脑这时会选择第一个接收到信息,然后以广播的方式回答一个DHCP request请求信息,该信息包含所选定的DHCP服务器请求的ip地址内容。当DHCP服务器收到DHCP request请求信息后,便向我们的电脑发送一个包含它所提供的IP地址和其他设置的DHCP ack确认信息,告诉我们的电脑可以使用它提供的ip地址。然后我们的电脑边便将TCP/IP协议与网卡绑定,我们提到过当电脑请求向服务器请求ip地址时会有很多服务器给出应答,所以我们的电脑选中了一台DHCP服务器后,其他的服务器提供的ip地址就会在这个时候收回,给其他电脑用。以后DHCP客户端每次重新登录网络时,就不需要再发送DHCP discover发现信息了,而是直接发送包含前一次所分配的IP地址的DHCP request请求信息。当DHCP服务器收到这一信息后,它会尝试让DHCP客户机继续使用原来的IP地址,并回答一个DHCP ack确认信息。如果此IP地址已无法再分配给原来的DHCP客户机使用时,则DHCP服务器给DHCP客户机回答一个DHCP nack否认信息。当原来的DHCP客户机收到此DHCP nack否认信息后,它就必须重新发送DHCP discover发现信息来请求新的IP地址。问题又出现了,我们的电脑在DHCP服务器那儿请求到的ip地址你能够一直使用吗?这当然是不可能的,它就行借钱一样会有一个期限限制,这也就是租约,DHCP服务器向我们的电脑出租的IP地址一般都有一个租借期限,期满后DHCP服务器便会收回出租的IP地址。如果我们的电脑要延长其IP租约,则必须更新其IP租约。我们的电脑启动时和IP租约期限到达租约的50%时,电脑都会自动向DHCP服务器发送更新其IP租约的信息。以上就是DHCP工作的整个大致过程。我们可以结合图来大致总结一下:

1、客户端发送DHCP discover包,请求DHCP服务器,就是查找网络上的DHCP服务器。
2、服务器向客户端回应DHCP offer包,目的是告诉客户端,我能为你提供IP地址。
3、客户端接受到DHCP offer提供信息之后,选择第一个接收到的提供信息,然后以广播的方式回答一个DHCP request请求信息,相当于广播:我接受了这个包。

4、提供IP的那个服务器向DHCP客户端发送一个DHCP ack确认信息包,告诉DHCP客户端可以使用它提供的IP地址。然后,DHCP客户机便将其TCP/IP协议与网卡绑定。其他的DHCP服务器将收回曾经提供的IP地址。

### DHCP协议工作原理 DHCP(动态主机配置协议)用于自动分配IP地址和其他网络参数给网络中的设备。这一过程简化了网络管理,特别是对于大型网络环境。 #### 广播机制与唯一性 在一个网络环境中,DHCP通过广播方式进行通信,确保同一网段内的所有设备都能接收到消息。值得注意的是,在一个特定的局域网中通常只存在一台DHCP服务器来避免冲突和资源浪费[^1]。 #### 租约概念 为了提高效率并合理利用有限的IPv4地址空间,DHCP引入了租约的概念。这意味着分配给客户端的IP地址并非永久有效而是有一定期限的。当租期结束前,客户机会尝试续订其现有的IP地址以继续使用相同的网络设置。 #### 工作流程详述 常见的DHCP工作过程可以分为四个主要阶段: - **Discover (发现)** 客户端发送广播形式的`DHCP Discover`报文寻找可用的服务提供者;此时并不知道具体哪台机器能够满足需求所以采用广撒网的方式通知整个子网内的潜在供应方[^3]。 - **Offer (提议)** 接收到上述请求之后的一台或多台DHCP服务器会回应带有可选配置信息(如未被占用的有效IP地址) 的 `DHCP Offer` 报文作为初步答复。这一步骤表明某台服务器愿意向发起查询的那个节点授予指定条件下的连接权限。 - **Request (请求)** 收到来自不同源头提供的多个选项时, 终端会选择其中一个最合适的方案并向选定的目标发出正式申请——即`DHCP Request` 。此操作同样是以广播的形式完成以便让其他竞争性的供给源知晓最终决定从而停止进一步处理相同事务。 - **ACKnowledge (确认)** 如果一切顺利的话,DHCP服务器将回复一条包含所同意条款细节在内的肯定应答(`DHCP ACK`) ,告知对方现在可以安全地按照所提供的设定接入互联网;反之则可能因为某些原因而拒绝该次交易并发回否定的通知(NAK)。 ```python def dhcp_process(): discover = "Client sends a broadcast message to find available servers" offer = "One or more servers respond with an IP address and configuration options" request = "The client selects one server's offer and requests the offered parameters" ack = "Selected server confirms agreement by sending acknowledgment" process_steps = [discover, offer, request, ack] return process_steps ```
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值