DHCP是什么
DHCP
1. DHCP是什么
协议,一种应用层的网络协议,他可以动态地分配网络中的IP地址和其他网络配置的参数以及网络设备,通俗一点讲,每台设备的IP地址,子网掩码,网关等网络参数信息都是由他来完成的。
1.1DHCP服务器和DHCP的关系
DHCP服务器是实现DHCP协议的网络设备或软件,它负责为客户端设备分配IP地址和其他网络配置参数。
1.2DHCP服务器一般位于生活中的何处
通常情况下,个人设备不具备独立的DHCP服务器,一般现代路由器中集成了DHCP服务器,也有专门的服务器去实现DHCP.
2.DHCP的实现过程
- DHCP发现(DHCP Discover):客户端在网络中启动时,发送一个广播消息(DHCP Discover),以寻找可用的DHCP服务器。
- DHCP提供(DHCP Offer):DHCP服务器接收到DHCP Discover消息后,会向客户端发送一个DHCP提供消息,其中包含一个可用的IP地址以及其他网络配置参数。
- DHCP请求(DHCP Request):客户端收到DHCP Offer消息后,可以选择接受其中的一个DHCP服务器提供的配置。客户端发送一个DHCP请求消息,确认接受该DHCP服务器的配置。
- DHCP确认(DHCP Acknowledgment):DHCP服务器收到DHCP请求消息后,会发送一个DHCP确认消息(DHCP Acknowledgment),确认向客户端提供网络配置。
- DHCP配置更新:客户端收到DHCP确认消息后,会将接收到的网络配置应用于自身,并更新自己的IP地址、子网掩码、网关、DNS服务器等配置
如下图所示,是DHCP过程的大致实现:

其一:在源客户端发送DHCP请求报文的时候,由于自身IP没有得到分配,于是使用0.0.0.0作为源地址,利用255.255.255.255进行广播传发,所以使用到了UDP广播通信.
其二:DHCP服务器发送offer时,包含了什么信息,IP地址,默认网关,DNS服务器,子网掩码,IP地址租期
地址租期是什么?
IP地址由DHCP分配成功后,意味着每一个客户端所拥有的IP地址都具备一个生命周期,这个时间长度的具体单位便是地址租期,一旦地址租期超过,DHCP则会重新分配一个IP地址,通常而言,这个地址租期是可以设置的,其实也可以想明白,存在个人设备不使用的情况下,这样就可以等使用时再分配地址,而不是一次性分配后,便不管这个地址的存活时间了.
地址租期快过期了,客户端如何去做?
重复3,4过程,只不过此时DHCP服务器发送ACK请求报文中包含了新的地址租期时间,这一过程也叫DHCP Renewal
DHCP服务器如何知道客户端的位置?
通过数据链路层,通过MAC地址确认主机.
- 其三:DHCP通信的所有通信,都是通过UDP广播通信
下面让我们看一下DHCP具体的实现过程:

- 红框框出的即为DHCP的基本四个流程
Transaction:是事务的意思,在每次传送数据的时候都会有一个事务ID去记录,这个记录也也用来判断是不是我所需要的数据,而不仅仅局限于Mac地址,所以在四次传输过程了,事务ID一致且不变。
2.1客户端发送Discover

2.2DHCP服务器发送offer


2.3客户端发送Request

2.4DHCP服务器发送ACK

由此,客户端便会配置相关的网络信息
为此,我们来观察一下DHCP服务器的IP地址:192.168.0.1,这个IP地址看的十分眼熟,于是我查询了路由器管理设备信息,发现了这个IP地址同时也是默认网关的地址,于是根据我的查询结果得出,这是网络设备默认设置也是DHCP服务器的一种设置,在家庭学校中比较常见
DHCP是什么的更多相关文章
- 协议森林16 小美的桌号(DHCP协议)
作者:Vamei 出处:http://www.cnblogs.com/vamei 转载请先与我联系. DHCP协议用于动态的配置电脑的网络相关参数,如主机的IP地址,路由器出口地址.DNS域名服务器地 ...
- 获取 dhcp IP 过程分析 - 每天5分钟玩转 OpenStack(91)
前面我们已经讨论了 DHCP agent 的配置以及 namespace 如何隔离 dnsmasq 服务,本节将以 cirros-vm1 为例分析获取 DHCP IP 的详细过程. 在创建 insta ...
- dhcp协议交互报文
DHCP共有八种报文,分别为DHCP Discover.DHCP Offer.DHCP Request.DHCP ACK.DHCP NAK.DHCP Release.DHCP Decline.DHCP ...
- 7、二种 为二个不同的子网配置DHCP服务器(中继代理服务器)
环境如下: (参考之前,保证二个子网可以互相ping通) 虚拟机vm1 192.168.170.3 VMnet8 (NAT模式) 虚拟 ...
- DHCP
安装 yum install -y dhcp 配置文件 默认配置为/etc/dhcpd.conf [root@samba ~]# [root@samba ~]# rpm -ql dhcp | grep ...
- PXE+Kickstart+DHCP+TFTP实现无人值守安装操作系统
PXE+Kickstart+DHCP+TFTP实现无人值守安装操作系统 PXE + Kickstart PXE的工作流程及配置文件 Kickstart的配置文件 Linux安装大致可以分为2个阶段 第 ...
- 思科交换机配置DHCP的四个方面
这里我们主要讲解了思科交换机配置DHCP的相关内容.我们对网络拓扑先进行一下了解,然后对于其在进行一下说明,之后对于配置的代码和命令再进行一下解析. 思科交换机配置DHCP一.网络拓扑 思科交换机配置 ...
- 协议分析 - DHCP协议解码详解
协议分析 - DHCP协议解码详解 [DHCP协议简介] DHCP,全称是 Dynamic Host Configuration Protocol﹐中文名为动态主机配置协议,它的前身是 ...
- 用 namspace 隔离 DHCP 服务 - 每天5分钟玩转 OpenStack(90)
Neutron 通过 dnsmasq 提供 DHCP 服务,而 dnsmasq 如何独立的为每个 network 服务呢? 答案是通过 Linux Network Namespace 隔离,本节将详细 ...
- 配置 DHCP 服务 - 每天5分钟玩转 OpenStack(89)
前面章节我们看到 instance 在启动过程中能够从 Neutron 的 DHCP 服务获得 IP,本节将详细讨论其内部实现机制. Neutron 提供 DHCP 服务的组件是 DHCP agent ...
随机推荐
- Spark架构与运行流程
1. 阐述Hadoop生态系统中,HDFS, MapReduce, Yarn, Hbase及Spark的相互关系. 2. Spark已打造出结构一体化.功能多样化的大数据生态系统,请简述Spark生态 ...
- oracle 19c rpm 个性化配置安装
简单来说就是: 1.安装preinstall : oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm 2.安装 ee : oracl ...
- Maven进阶
前言 在项目开发的过程中,我们通常要使用到外部依赖的组件,同时也会使用某些插件来帮助我们管理项目.例如,我们访问数据库的时候需要使用到jdbc组件,我们可以下载对应的jar包去加载到我们的应用中.在我 ...
- Collection 接口及其常用方法
Collection 接口的特点 Collection接口没有直接实现类,提供了更具体的子接口(如Set和List)的实现.Collection实现类(通常通过其中一个子接口间接实现Collectio ...
- 【Azure Event Hub】自定义告警(Alert Rule)用来提示Event Hub的消息incoming(生产)与outgoing(消费)的异常情况
问题描述 在使用Azure Service Bus的时候,我们可以根据Queue中目前存在的消息数来判断当前消息是否有积压的情况. 但是,在Event Hub中,因为所有消息都会被存留到预先设定的保留 ...
- ISP-AF相关-聚焦区域选择-清晰度评价
1.镜头相关 镜头类型 变焦类型: 定焦.手动变焦.自动变焦 光圈: 固定光圈.手动光圈.自动光圈 视场角: 鱼眼镜头.超广角镜头.广角镜头.标准镜头.长焦镜头.超长焦镜头(由大至小) 光圈: 超星光 ...
- Mysql基础7-约束
一.约束的基本概念 1.概念:约束是作用于表中字段上的规则,用于限制储存在表中的数据 2.目的:保证数据库中的数据的正确性,有效性和完整性 3.分类 非空约束(not null):限制该字段的数据不能 ...
- Object.equals 和 String.equals的区别
一. 源码展示: 1. Object.equals: ①引用类型地址值比较,直接返回结果:true || false public class Object { public boolean equ ...
- ls 和 du显示文件大小不一样
查看当前文件系统的磁盘使用 df -k / Filesystem 1K-blocks Used Available Use% Mounted on /dev/nvme0n1p2 97844508 37 ...
- 并发编程-CompletableFuture解析
1.CompletableFuture介绍 CompletableFuture对象是JDK1.8版本新引入的类,这个类实现了两个接口,一个是Future接口,一个是CompletionStage接口. ...