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 ...
随机推荐
- Python-PyQt5的安装与简单使用
一.安装 1.安装 PyQt5 和 PyQt5-tools pip install PyQt5 -i https://pypi.douban.com/simple pip install PyQt5- ...
- boot 项目启动:Error starting ApplicationContext. To display the conditions report re-run
Error starting ApplicationContext. To display the conditions report re-run 问题描述 boot 工程启动不了 原因分析: 以后 ...
- EnhancingDecisionTreeswithGeographicInformationSystemsa
目录 引言 在计算机科学领域,地理信息系统和( geographical information systems, GIS)已经成为了一个非常受欢迎的工具.GIS 可以用来处理和存储大量的地理数据,支 ...
- h2database BTree 设计实现与查询优化思考
h2database 是使用Java 编写的开源数据库,兼容ANSI-SQL89. 即实现了常规基于 BTree 的存储引擎,又支持日志结构存储引擎.功能非常丰富(死锁检测机制.事务特性.MVCC.运 ...
- JS逆向实战19——通杀webpack逆向
声明 本文章中所有内容仅供学习交流,抓包内容.敏感网址.数据接口均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请联系我立即删除! 网站 aHR0cHM6Ly ...
- 2023-07-04:给定一个数组A, 把它分成两个数组B和C 对于数组A每个i位置的数来说, A[i] = B[i] + C[i] 也就是一个数字分成两份,然后各自进入B和C 要求B[i], C[i
2023-07-04:给定一个数组A, 把它分成两个数组B和C 对于数组A每个i位置的数来说, A[i] = B[i] + C[i] 也就是一个数字分成两份,然后各自进入B和C 要求B[i], C[i ...
- 文盘Rust -- FFI 浅尝
rust FFI 是rust与其他语言互调的桥梁,通过FFI rust 可以有效继承 C 语言的历史资产.本期通过几个例子来聊聊rust与C 语言交互的具体步骤. 场景一 调用C代码 创建工程 car ...
- Redis数据类型之Stream系列一
一:Stream简介 Redis Stream是5.0版本之后新增的一种数据结构,其结构类似于'仅追加日志'.但也实现了多种操作来克服'仅追加日志'的一些限制,如读取策略(xread,xrange ...
- 高通个别驱动创建Buffer耗时高问题的解决
前言 最近在优化游戏的时候,发现在在高通特定驱动版本的机器上(855,855+等),创建VB的耗时跟VB的数量成正比,这个应该是驱动的bug.跟官方人员确认过,确实是有这个问题,他们给的解决方案是减少 ...
- async-await Rust: 200 多行代码实现一个极简 runtime
What I cannot create, I do not understand Rust 中的 runtime 到底是咋回事, 为了彻底搞懂它, 我在尽量不借助第三方 crate 的情况下实现了一 ...