DHCP—动态主机配置协议

动态主机配置协议DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是RFC 1541(已被RFC 2131取代)定义的标准协议,该协议允许服务器向客户端动态分配IP地址和配置信息。
DHCP协议支持C/S(客户端/服务器)结构,主要分为两部分:
1、DHCP客户端:通常为网络中的PC、打印机等终端设备,使用从DHCP服务器分配下来的IP信息,包括IP地址、DNS等。
2、DHCP服务器:所有的IP网络设定信息都由DHCP服务器集中管理,并处理客户端的DHCP请求。
DHCP采用UDP作为传输协议,客户端发送消息到DHCP服务器的的67号端口,服务器返回消息给客户端的68号端口。

DHCP的报文种类及其作用

DHCP在工作过程中涉及到的报文种类及其作用如下:
1、DHCP DISCOVER:客户端开始DHCP过程的第一个报文,是请求IP地址和其它配置参数的广播报文。
2、DHCP OFFER:服务器对DHCP DISCOVER报文的响应,是包含有效IP地址及配置的单播(或广播)报文。
3、DHCP REQUEST:客户端对DHCP OFFER报文的响应,表示接受相关配置。客户端续延IP地址租期时也会发出该报文。
4、DHCP DECLINE:当客户端发现服务器分配的IP地址无法使用(如IP地址冲突时),将发出此报文,通知服务器禁止使用该IP地址。
5、DHCP ACK :服务器对客户端的DHCP REQUEST报文的确认响应报文。客户端收到此报文后,才真正获得了IP地址和相关的配置信息。
6、DHCP NAK:服务器对客户端的DHCP REQUEST报文的拒绝响应报文。客户端收到此报文后,会重新开始新的DHCP过程。
7、DHCP RELEASE:客户端主动释放服务器分配的IP地址。当服务器收到此报文后,则回收该IP地址,并可以将其分配给其它的客户端。
8、DHCP INFORM:客户端获得IP地址后,发送此报文请求获取服务器的其它一些网络配置信息,如DNS等。

DHCP一般工作流程


向DHCP服务器申请一个IP地址的基本操作步骤:
(1)当DHCP客户机第一次登录网络的时候,该客户机没有任何IP数据设定,它将向网络发出一个DHCP Discover封包。由于客户端还不知道自己属于哪一个网络,所以封包的源地址为0.0.0.0,其目的地址则为255.255.255.255,向网络进行广播。
(2)一般默认DHCP Discover的等待时间为1s,当客户机将第一个DHCP Discover封包送出去之后,在1s之内没有得到响应的话,它就会进行第二次DHCP Discover广播。客户端最多有4次广播,除了第一次会等待1s之外,其余3次的等待时间分别是9s、13s、16s。如果都没有得到DHCP服务器的响应,客户端则会显示错误信息,宣告DHCP Discover失败。之后,系统会继续在5min之后再重复一次DHCP Discover过程。
(3)当DHCP服务器监听到客户端发出的DHCP Discover广播后,将会对客户机作出应答。它会通过UDP端口回应客户一个DHCP Offer广播包,提供一个IP地址。该广播包的源IP地址为DHCP服务器的IP地址,目标IP地址为255.255.255.255;包中还包含提供给客户机的IP地址、子网掩码及租期等信息。
(4)DHCP协议允许网络上配置多台DHCP服务器,客户机将会收到网络上多台DHCP服务器的响应,但它只会挑选其中一个DHCP Offer,通常都是最先抵达的那个,然后客户机向网络发送一个DHCP Request广播封包,告诉所有DHCP服务器它将接受哪一台服务器提供的IP地址。同时,客户端还会向网络发送一个ARP封包,确认网络上是否有其他机器在使用该IP地址;如果发现该IP已经被占用,客户机则会发出一个DHCP Decline封包给DHCP服务器,拒绝接受其DHCP Offer并重新发送DHCP Discover信息。
(5)当DHCP服务器接收到客户端的DHCP Request封包之后,向客户端发出一个DHCP ACK 响应,确认该IP租约的正式生效。
(6)客户在收到DHCP ACK包后,会使用该广播包中的信息来配置自己的TCP/IP,至此租用申请过程结束,客户机可以在网络中通信。

DHCP续约


续约一客户机直接执行第3步==(执行ipconfig/renew)==
DHCP续租的工作流程描述如下:

  1. 在使用租期过去50%时刻处, 客户端向服务器发送单播DHCP REQUEST报文续延租期。
  2. 如果收到服务器的DHCP ACK报文,则租期相应向前延长,续租成功。如果没有收到DHCP ACK报文,则客户端继续使用这个IP地址。在使用租期过去87.5%时刻处,向服务器发送广播DHCP REQUEST报文续延租期。
  3. 如果收到服务器的DHCP ACK报文,则租期相应向前延长,续租成功。如果没有收到DHCP ACK报文,则客户端继续使用这个IP地址。在使用租期到期时,客户端自动放弃使用这个IP地址,并开始新的DHCP过程。

DHCP释放后重获地址


执行ipconfig/release和ipconfig/renew
当Windows计算机在 DHCP(动态主机配置协议)模式下发生IP地址冲突、无法访问网络等情况时,可以使用以下步骤重新获取 IP 地址:

打开命令提示符:按下Windows+R键打开运行窗口,输入cmd并按下回车键,即可打开命令提示符窗口。
输入ipconfig /release命令,按下回车键,释放当前分配的IP地址。
输入ipconfig /renew命令,按下回车键,重新获取IP地址。
如果成功获取到新的IP地址,系统会显示IP地址、子网掩码、默认网关等信息。
需要注意的是,在使用ipconfig /release命令释放IP地址后,计算机将无法访问网络,直到使用ipconfig /renew命令重新获取IP地址。

DHCP相关的配置命令

路由器上DHCP服务器的配置
(1)IP地址池的建立
配置方法在全局模式下使用“ip dhcp pool <name>”命令为地址池赋予一个名称,其中<name>是为所建的地址池提供的名称,可以是一组字符串或数字。一台路由器上可以建立多个地址池。
(2)IP地址池的子网地址与子网掩码的配置。
IP地址池建立后,便进入地址池配置模式,在该模式下可进行IP子网地址和子网掩码的配置,用于设定DHCP服务器可以分配的IP地址的范围。配置的方法是在IP地址池配置模式下,执行“network <网络地址> <子网掩码>”命令,其中,<子网掩码>可采用标准的子网掩码表示(如255.255.255.0)或使用掩码前缀长度表示(如/24)。
(3)排除不用于动态分配的IP地址。
实际应用中,在所配置的子网中,可能会有一些特殊地址需要保留,不用于动态分配,此时就需要在DHCP服务中进行相应配置,配置方法为在全局配置模式下,使用“ip dhcp excluded-address low-adress [high-address]"命令,其中“low-address [high-address]”表示要排除的IP地址的范围,若只排除一个地址,则可直接在命令后输入这个地址便可。
(4)配置默认网关。
动态分配IP地址时,还需要同时为客户端指定默认网关,以便客户端TCP/IP协议正常工作。配置方法为在地址池配置模式下,执行“default-rouler address [address2…address8]”命令,其中默认网关的地址,最多可以设置8个,而客户端一般只使用一个在同一子网中的路由器的端口地址。
(5)配置IP地址池的域名系统。
如同我们在客户端机器手动配置IP地址一样,要访问外部网络,通常还需指定用于域名解析的域名服务器(DNS),另外在路由器DHCP服务器中还可以设置客户端域名,为动态地址的客户端指定所属的域的名称。域名服务器的配置方法为在地址池配置模式下使用“dns-server address”命令,该命令允许最多配置8个域名服务器地址,但是在实际应用中,域名服务器一般只有两个或三个;IP地址池中客户端域名的配置方法为在DHCP地址池配置模式下,使用“domain-name <name >"命令,其中<name>为指定的域名名称。
(6)IP地址租用时间。
IP地址租用时间是指用户端在获得一个IP地址后,可以占用这个地址的最长时间,若需要的话可以对其进行更改。配制方法为在DHCP地址池配置模式下,使用“lease {day [hours] [minutes]|[infinite]}”命令,其参数可以包含天数、小时数以及分秒数,还可以设置为永不过期。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/252899.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【数据分享】2019-2023年我国地级市逐月新房房价数据(Excel/Shp格式)

房价是一个城市发展程度的重要体现&#xff0c;一个城市的房价越高通常代表这个城市越发达&#xff0c;对于人口的吸引力越大&#xff01;因此&#xff0c;房价数据是我们在各项城市研究中都非常常用的数据&#xff01;之前我们分享过2015-2023年我国区县逐月新房房价数据&…

倚力未来:人工智能智能辅助医疗的前景与挑战

导言 人工智能在医疗领域的应用正迅速发展&#xff0c;为医疗行业带来了新的可能性。本文将深入探讨人工智能在医疗中的智能辅助应用&#xff0c;以及这一趋势面临的前景和挑战。智慧医疗是指通过先进的信息技术&#xff0c;如人工智能、物联网、大数据等&#xff0c;实现医疗数…

Javaweb考前复习冲刺(不断更新版)

Javaweb考前复习冲刺 第一章&#xff1a; JavaWeb 入门 JavaWeb是指&#xff1a;以Java作为后台语言的项目工程。 javaweb项目创建的过程&#xff1a; 首先集成Tomcat服务器环境新建dynamic web project部署工程运行 路由含义&#xff1a; ​ http://localhost:8080/工程…

[NCTF2019]Fake XML cookbook1

提示 xml注入 一般遇到像登录页之类的就因该想到sql注入、弱口令或者xml等 随便输入抓包 这里明显就是xml注入 这里我们来简单了解一下xml注入 这里是普通的xml注入 xml注入其实和sql注入类似&#xff0c;利用了xml的解析机制如果系统没有将‘<’‘>’进行转义&#xff0…

Autosar CAN报文周期抖动可能的原因分析+解决方法(总结)

一、背景 在Autosar项目中我们经常会遇到各种CAN报文在CANOE上抓取的图形周期抖动,因此需要通过一些可能的原因分析解决报文周期不准的问题。 那么下面就我根据实际项目中遇到的一些可能的原因做一些总结(后续持续完善)。 二、可能的原因及解决方案 1、可能原因:CPU idl…

《ThreadLocal使用与学习总结:2023-12-15》由浅入深全面解析ThreadLocal

由浅入深全面解析ThreadLocal 目录 由浅入深全面解析ThreadLocal简介基本使用ThreadLocal与synchronized的区别ThreadLocal现在的设计&#xff08;JDK1.8&#xff09;ThreadLocal核心方法源码分析ThreadLocalMap源码分析弱引用与内存泄露&#xff08;内存泄漏和弱引用没有直接关…

python排序算法 直接插入排序法和折半插入排序法

最近需要使用到一些排序算法&#xff0c;今天主要使针对直接插入排序和折半插入排序进行讲解。 首先是直接插入排序&#xff0c;其排序过程主要是&#xff0c;针对A[a1,a2,a3,a4,a5....an]&#xff0c;从排序的序列头部起始位置开始&#xff0c;将其也就是a1视为只有一个元素的…

Android编译优化之Jetifier优化

本文字数&#xff1a;9048字 预计阅读时间&#xff1a;40分钟 在狐友项目的编译优化中&#xff0c;我们发现在 BuildAnalyzer 中有明确的 Warnings 提示&#xff0c;告知项目可以进行 Jetifier 优化。 Jetifier 是之前项目进行 AndroidX 迁移时引入的插件&#xff0c;它能辅助迁…

Azure Machine Learning - 提示工程简介

OpenAI的GPT-3、GPT-3.5和GPT-4模型基于用户输入的文本提示工作。有效的提示构造是使用这些模型的关键技能&#xff0c;涉及到配置模型权重以执行特定任务。这不仅是技术操作&#xff0c;更像是一种艺术&#xff0c;需要经验和直觉。本文旨在介绍适用于所有GPT模型的提示概念和…

diffuser为pipeline设置不用的scheduler

查看默认的schedulers&#xff1a; 使用默认的schedulers生成数据 查看默认scheduler的默认配置&#xff0c;定义了采样器中的相关参数&#xff0c;网上关于DDPM和DDIM的文章较多&#xff0c;可以先去看看这两种schedulers&#xff1a; 修改scheduler&#xff0c;可以用于…

13.二进制枚举练习题

文章目录 二进制枚举练习题[78. 子集](https://leetcode.cn/problems/subsets/)[77. 组合](https://leetcode.cn/problems/combinations/)[1286. 字母组合迭代器](https://leetcode.cn/problems/iterator-for-combination/)[2397. 被列覆盖的最多行数](https://leetcode.cn/pro…

CSS3 2D变形 过渡 动画

​​​​​ transform(2D变形)概述translate()平移scale()缩放skew()倾斜rotate()旋转transform-origin中心原点 CSS3 2D变形 3D变形 过渡 动画 在CSS3中&#xff0c;动画效果包括4个部分&#xff1a;变形&#xff08;transform&#xff09;、3D变形、过渡&#xff08;transit…

【Linux】cp问题,生产者消费者问题代码实现

文章目录 前言一、 BlockQueue.hpp&#xff08;阻塞队列&#xff09;二、main.cpp 前言 生产者消费者模式就是通过一个容器来解决生产者和消费者的强耦合问题。生产者和消费者彼此之间不直接通讯&#xff0c;而通过阻塞队列来进行通讯&#xff0c;所以生产者生产完数据之后不用…

计算机网络:网络层(无分类编址CIDR、计算题讲解)

带你快速通关期末 文章目录 前言一、无分类编址CIDR简介二、构成超网三、最长前缀匹配总结 前言 我们在前面知道了分类地址&#xff0c;但是分类地址又有很多缺陷&#xff1a; B类地址很快将分配完毕!路由表中的项目急剧增长! 一、无分类编址CIDR简介 无分类域间路由选择CI…

计算机网络:数据链路层(VLAN)

今天又学到一个知识&#xff0c;加油&#xff01; 目录 一、传统局域网的局限&#xff08;促进VLAN的诞生&#xff09; 二、VLAN简介 三、VLAN的实现 总结 一、传统局域网的局限&#xff08;促进VLAN的诞生&#xff09; 缺乏流量隔离:即使把组流量局域化道一个单一交换机中…

【Linux】初识命令行

为什么使用命令行&#xff1f; 大多数的计算机用户只是熟悉图形用户界面(GUI)&#xff0c;采用图形方式显示的用户操作界面。命令行界面(CLI)是一种通过文本输入来与计算机进行交互的方式&#xff0c;用来和计算机进行交流沟通的非常有效的方式&#xff0c;正像人类社会使用文…

【Windows】windows11右键默认显示更多选项的办法

Windows11系统的右键菜单显示&#xff0c;需要多点一次“显示更多选项”才能看到所有菜单内容&#xff0c;按下面步骤简单设置一下就能恢复成Windows经典的右键菜单显示。 1. 2.输入命令【reg.exe add "HKCU\Software\Classes\CLSID\{86ca1aa0-34aa-4e8b-a509-50c905bae2a…

熬了一个通宵,把国内外的大模型都梳理完了!

大家好&#xff0c;大模型越来越多了&#xff0c;真的有点让人眼花缭乱。 为了让大家清晰地了解大模型&#xff0c;我熬了一个通宵把国内和国外的大模型进行了全面梳理&#xff0c;国内有189个&#xff0c;国外有20&#xff0c;同时包括大模型的来源机构、来源信息和分类等。 …

vue3+leaflet天地图开发

<script setup> import { onMounted, onUnmounted, ref } from "vue"; // todo 项目使用请放开 leaflet 引入 // import L from leaflet;const emit defineEmits(["mapLoad"]);var markers ref([]); const mapRef ref(); const marker ref(); co…

linux环境安装可操作图库语言Gremlin的图框架HugeGraph

原创/朱季谦 若你还没接触过图数据库&#xff0c;可能看到这个概念时&#xff0c;会比较蒙蔽。 图是什么&#xff1f;图数据库又是什么&#xff1f; 首先&#xff0c;在数据结构中&#xff0c;图是一种由顶点&#xff08;vertex&#xff09;集合及顶点间关系集合组成的一种非…