【计算机网络】14、DHCP
文章目录
- 一、概述
- 1.1 好处
- 二、概念
- 2.1 分配 IP
- 2.2 控制租赁时间
- 2.3 DHCP 的其他网络功能
- 2.4 IP地址范围和用户类别
- 2.5 安全
- 三、DHCP 消息
- 3.1 DHCP discover message
- 3.2 DHCP offers a message
如果没有 DHCP,IT管理者必须手动选出可用的 ip,这太耗时了,幸好有 DHCP。
一、概述
DHCP是一种协议,可自动为有线或无线连接的固定和移动主机分配IP地址。
当 device 使用 DHCP 时,其向 DHCP server 发请求,server 返回 ip 地址, 然后 server 不断监控此 ip 地址的使用,当此 ip 已超过一定时间不再被使用 或 device 关机时,则回收此 ip 以便后续分配给别的 device。
虽然IP地址的委派是 DHCP 协议的核心功能,但DHCP也会分配各种相关的网络参数,包括子网掩码、默认网关地址和域名服务器(DNS)。DHCP是建立在旧的BOOTP(引导协议)之上的IEEE标准,BOOTP已经过时,因为它只能在IPv4网络上工作。
1.1 好处
-
可靠的 ip 地址配置
您不能让两个用户使用相同的IP地址,因为这会造成一个或两个设备无法连接到网络的冲突。DHCP消除了人为错误,从而最大限度地减少了地址冲突、配置错误或简单的打字错误。 -
减少网络管理
DHCP 协议提供集中化和自动化的TCP/IP配置。通过部署DHCP中继代理,不需要在每个子网上都有一台DHCP server。 -
移动性
对于在有线或无线网络上移动到不同位置的便携设备上的用户,DHCP可有效地处理IP地址更改。 -
回收
DHCP不仅会分配地址,还会在不再使用地址时自动将其取回并返回到池中。 -
改变网络地址范围
通过使用DHCP,组织可以轻松地将IP地址方案从一个地址范围更改为另一个地址范围。利用DHCP,网络管理员可以在不中断最终用户的情况下进行这些更改。
二、概念
-
DHCP server
这是运行DCHP服务的联网设备,用于保存IP地址和相关配置信息。这通常是一台服务器或路由器,但也可以是充当主机的任何设备,例如SD-WAN设备。 -
DHCP client
此终端终端软件从DHCP server请求和接收配置信息。它可以安装在计算机、移动设备、物联网终端或任何其他需要连接到网络的设备上。默认情况下,大多数路由器都配置为接收DHCP信息。 -
IP address pool
可供DHCP client 使用的IP地址范围是IP地址。地址通常按从低到高的顺序分配。 -
subnet
IP网络可以划分为称为子网的网段。子网有助于保持网络的可管理性。 -
lease 租赁
DHCP client 保留IP地址信息的时间长度称为租用。租约到期时,客户端必须续订租约。 -
DHCP relay 中继器
侦听该网络上正在广播的客户端消息,然后将其转发到已配置的服务器的路由器或主机称为DHCP中继。然后,服务器将响应发送回中继代理,中继代理将响应传递给客户端。这可用于集中DHCP server,而不是在每个子网上都有一台服务器。
2.1 分配 IP
与DHCP相关的存在问题是,终端用户如何在没有IP地址的情况下首先连接到网络?
答案是,有一个复杂的来回请求和确认系统。首先,所有现代设备操作系统都包括一个默认启用的 DHCP client。为了请求IP地址,客户端设备发送广播消息–DHCPDISCOVER。网络将该请求定向到适当的 DHCP server。
通常将DHCP server功能分配给物理服务器和备份。其他设备也可以充当DHCP server,例如SD-广域网设备或无线接入点。
然后,服务器确定适当的IP地址,并将提供包发送到客户端,客户端使用请求包进行响应。在该过程的最后一步,服务器发送ACK数据包,确认已为客户端分配了IP地址。
这一切都是快速、自动完成的,最终用户无需采取任何操作。问题是,IP地址不是永久性的。它只在一段特定的时间内有效,也就是所谓的lease time(租赁时间)。
2.2 控制租赁时间
在DHCP协议下,每次DHCP server分配地址时,都会有一个相关的租用时间。当租约到期时,客户端不能再使用该IP地址,基本上会被踢出网络。
该协议旨在使活动客户端在租赁期中途自动联系DHCP server以续订租约。如果服务器没有立即响应,客户端将继续请求DHCP server续订租约,直到获得批准。
通常,当主机关闭时,租约会自动终止,以便释放其IP地址,以便网络上的另一个客户端可以使用该地址。
2.3 DHCP 的其他网络功能
除了为客户端提供通过IP地址连接到网络和Internet资源的能力外,DHCP server还会分配额外的网络参数,以提高效率和安全性。这些措施包括:
-
Default gateway
该网关负责在本地网络和Internet之间或本地子网之间来回传输数据。 -
Subnet mask
IP网络使用子网掩码来分隔IP地址的主机地址和网络地址部分。 -
DNS server
将域名(NetworkWorld.com)转换为IP地址,IP地址由长串数字表示。
2.4 IP地址范围和用户类别
DHCP动态分配地址,但不是随机分配。由于DHCP将主机连接到网络并分配网络参数,因此在某些情况下,网络管理员可能希望将特定的子网参数集分配给特定的用户组。
scope(作用域)是一个连续的IP地址范围,DHCP server 可以利用它来满足来自 DHCP client 的IP地址请求。通过在 DHCP server 上定义一个或多个作用域,server 可以管理IP地址的分配和分配给 DHCP client 。在 DHCP 协议下,网络管理员可以根据需要设置无限数量的作用域。
Class A 是作用域的子集。如果网络管理员想要将设备组划分到更大范围的一个网段中,则 Class 非常有用。例如为远程工作的员工提供SD-WAN clients。
2.5 安全
通过使用DHCP,IP地址的初始分配设计为快速高效。权衡之处在于,DHCP协议不需要身份验证。当然,企业已经为用户设置了强大的身份验证要求,要求他们一旦进入网络就可以访问资源,但这仍然使DHCP服务器本身成为安全链中的薄弱环节。
攻击者可以接管或欺骗DHCP服务器,并将错误信息分发给合法的最终用户,将他们发送到虚假站点。或者,它可以将合法的IP地址分发给未经授权的用户。这可能导致中间人攻击和拒绝服务攻击。
DHCP规范确实解决了其中的一些问题。有一个中继代理信息选项,网络工程师可以在消息到达时对其进行标记。此标签可用于控制网络访问。此外,网络管理员可以使用802.1x身份验证(网络访问控制)来帮助保护DHCP。
三、DHCP 消息
3.1 DHCP discover message
This is the first message generated in the communication process between the server and the client. This message is generated by the Client host in order to discover if there is any DHCP server/servers are present in a network or not. This message is broadcasted to all devices present in a network to find the DHCP server. This message is 342 or 576 bytes long
As shown in the figure, the source MAC address (client PC) is 08002B2EAF2A, the destination MAC address(server) is FFFFFFFFFFFF, the source IP address is 0.0.0.0(because the PC has had no IP address till now) and the destination IP address is 255.255.255.255 (IP address used for broadcasting).
因为广播报文来查找网络中的一个或多个DHCP服务器,所以用广播IP地址和MAC地址。
3.2 DHCP offers a message
The server will respond to the host in this message specifying the unleased IP address and other TCP configuration information. This message is broadcasted by the server. The size of the message is 342 bytes. If there is more than one DHCP server present in the network then the client host will accept the first DHCP OFFER message it receives. Also, a server ID is specified in the packet in order to identify the server.
大致介绍
技术细节
相关文章:

【计算机网络】14、DHCP
文章目录 一、概述1.1 好处 二、概念2.1 分配 IP2.2 控制租赁时间2.3 DHCP 的其他网络功能2.4 IP地址范围和用户类别2.5 安全 三、DHCP 消息3.1 DHCP discover message3.2 DHCP offers a message 如果没有 DHCP,IT管理者必须手动选出可用的 ip,这太耗时了…...

【FPGA】Verilog:计数器 | 异步计数器 | 同步计数器 | 2位二进制计数器的实现 | 4位十进制计数器的实现
目录 Ⅰ. 实践说明 0x00 计数器(Counter) 0x01 异步计数器(Asynchronous Counter)...

IDEA常用快捷键
快捷键功能tab接受选择–选择的名称将覆盖带插入符号右侧的其它名称–而如果按shift或者enter,光标右边的内容会保留Ctrlshift空格智能匹配–查找当前上下文的方法和变量Ctrld对比文件–选中需要对比的文件shift滚动水平滚动Ctrlaltl格式化Ctrlk提交Ctrlaltz回滚类C…...

【2024秋招】2023-10-17 金山云文档服务端二面
1 实习 1.1 讲解一下curd启动器 1.2 数据同步的过程是怎么实现的,同步过程中的数据一致性怎么保证的 答:同步过程中会记录断点,表示每一批同步成功时的位置,如果对端出现问题,则下一次同步会继续从这个断点后开始同…...

一种excel多线程并发写sheet的方案
一、背景 有一次项目的需求要求导出excel,并且将不同的数据分别写到不同的sheet中。 二、 方案概述 首先一开始使用easyexcel去导出excel,结果发现导出时间需要3秒左右。于是想着能不能缩短excel导出时间,于是第一次尝试使用异步线程去查询数…...

深入了解接口测试:揭秘网络分层和数据处理!
网络分层和数据 上一小节中介绍了接口测试中一些必要重要的定义,这一节我们来讨论一下在学习接口测试过程中我们要关注的最重要的东西:网络分层和数据。 首先,我们来尝试理解一下,为什么网络是要分层的呢? 我们可以…...

Java并发编程
进程和线程 进程即程序的一次执行过程,各个进程之间是独立的。线程是更小的单位,一次进程中,可能会有多个线程,可能会相互影响,各个线程有自己的程序计数器,虚拟机栈和本地方法栈,同时共同使用…...

vue+echarts实现依赖关系无向网络拓扑结图节点折叠展开策略
目录 引言 一、设计 1. 树状图(不方便呈现节点之间的关系,次要考虑) 2. 力引导依赖关系图 二、力引导关系图 三、如何实现节点的Open Or Fold 1. 设计逻辑 节点展开细节 节点收缩细节 代码实现 四、结果呈现 五、完整代码 引言 我…...

Unity3d 灯光阴影开启,法线贴图出现BUG
URP项目打开灯光的阴影后,法线贴图出现BUG 解决方案:按照下图所示调整材质的选项即可...

c语言:模拟实现atoi函数
atoi函数的功能和用法: 主要功能:将字符串转换为整数。例如,将字符类型的“123”转换为整数123. #include <stdio.h> #include <stdlib.h>int main() {char str[] "123";int num atoi(str);printf("Converted …...

Docker 使用心得
创建一个docker 镜像,相关运行代码,放在docker镜像文件同级, pm2 不能与 docker一起使用() # node 服务docker FROM node:10.16.3LABEL author"sj"RUN mkdir -p /var/nodeCOPY ./node /var/nodeWORKDIR /va…...

Nacos 架构原理
基本架构及概念 服务 (Service) 服务是指一个或一组软件功能(例如特定信息的检索或一组操作的执行),其目的是不同的客户端可以为不同的目的重用(例如通过跨进程的网络调用)。Nacos 支持主流的服务生态,…...

尝试修改vim光标的思路
尝试修改vim光标,失败 想让vim的光标在不同模式下显示不同样式 尝试了很多方法,但是没有作用 " Set cursor shape and color if &term ~ "xterm"" INSERT modelet &t_SI "\<Esc>[6 q" . "\<Esc&…...

SpringBoot整合Activiti7——消息事件(十)
文章目录 消息事件开始事件中间事件边界事件代码实现xml文件测试流程流程执行步骤 消息事件 消息事件只有一个接收者,消息具有名字与载荷。 信息会储存在 act_ru_event_subscr 表中。 <!-- 定义消息 --> <message id"msgId1" name"msgName…...

高翔:《自动驾驶与机器人中的SLAM技术 》-Slam_in_autonomous_driving 编译过程中遇到的问题
使用的环境是ubuntu20.04 问题1.安装g2o没有问题,不过在编译整个项目工程时候报错: ”openmp_mutex.h: 30:10: fatal error: g2o/config.h: No such file or directory“: 解决办法: 只需要将/thirdparty/g2o/build/g2o下的config.h放到/…...

org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder 实现密码加密 验证 代码示例
BCryptPasswordEncoder 是 Spring Security 提供的用于加密和验证密码的实现类。它使用强大的 BCrypt 散列函数来存储密码的散列值,提供了一种安全的密码存储方法。以下是一个简单的示例代码,演示如何使用 BCryptPasswordEncoder 进行密码加密和验证&…...

《微信小程序开发从入门到实战》学习三十八
4.2 云开发JSON数据库 4.2.9 条件查询与查询指令 在查询数据时,有时需要对查找的数据添加一些限定条件,只获取满足给定条件的数据,这样的查询称为条件查询。 可以在集合引用上使用where方法指定查询条件,再用get方法࿰…...

云服务器哪家便宜?亚马逊AWS等免费云服务器推荐
在这数字化的时代,云计算技术越来越广泛应用于各种场景,尤其是云服务器,作为一种全新的服务器架构正在逐渐取代传统的物理服务器,“云服务器哪家便宜”等用户相关问题也受到越来越多的关注。自从亚马逊最早推出了首个云计算服务—…...

Linux删除了大文件为什么磁盘空间没有释放?
某天,收到监控系统的告警信息,说磁盘空间占用过高,登上服务器,使用 df -h 一看,发现磁盘占用率已经 96%了: 通过查看 /usr/local/nginx/conf/vhost/xxx.conf 找到 access_log 和 error_log 的路径&#x…...

编写bat脚本执行msyql建库sql
使用cmd命令执行(windows下) 【MySQL的bin目录】\mysql –u用户名 –p密码 –D数据库<【sql脚本文件路径全名】,示例: D:\mysql\bin\mysql –uroot –p123456 -Dtest<d:\test\ss.sql 注意: A、如果在sql脚本文件中使用了use 数据库&…...

【JavaSE学习专栏】第04篇 Java面向对象
文章目录 1 面向过程&面向对象2 类和对象2.1 对象的特征2.2 java类及类的成员2.3 类的语法格式 3 创建与初始化对象3.1 类的成员之一:属性3.2 类的成员之二:方法3.3 类的成员之三:构造器(构造方法)3.3.1 无参构造方…...

sCrypt 在英国伦敦 Exeter 大学讲学
6月5日,sCrypt CEO晓晖和他的两位同事在英国伦敦Exeter大学举行了一场精彩的讲座。刘晓晖向听众们详细介绍了sCrypt智能合约开平台,并演示了如何使用sCrypt来开发基于比特币的智能合约。他用生动形象的语言,深入浅出地解释了这个领域复杂而又…...

人工智能基础创新的第二增长曲线
编者按:2023年是微软亚洲研究院建院25周年。借此机会,我们特别策划了“智启未来”系列文章,邀请到微软亚洲研究院不同研究领域的领军人物,以署名文章的形式分享他们对人工智能、计算机及其交叉学科领域的观点洞察及前沿展望。希望…...

华为OD机试真题-分割均衡字符串-2023年OD统一考试(C卷)
题目描述: 均衡串定义:字符串只包含两种字符,且两种字符的个数相同。 给定一个均衡字符串,请给出可分割成新的均衡子串的最大个数。 约定字符串中只包含大写的X和Y两种字符。 输入描述: 均衡串:XXYYXY 字符…...

基于SpringBoot的图书推荐系统的
摘 要 网络信息技术的高速发展,使得高校图书馆的服务空间日益扩大,依据个人特点的针对性服务逐渐成为新服务模式的主导趋势。对于大多数用户而言,很难在大量的学术图书馆中快速找到他们想要的材料。另外,随着时代的不断发展&…...

02_学习使用javax_ws_rs_下载文件
文章目录 1 前言2 Maven 依赖3 下载接口4 如何返回文件?5 感谢 1 前言 专栏上一篇,写了如何使用 javax.ws.rs 上传文件,那么必然的,我们得再学习学习如何下载文件😀 2 Maven 依赖 这个就不赘述了,和上一篇…...

js校验多个时间段的时间是否有交叉
参考博客: Java日期时间API系列37-----时间段是否有重叠(交集)的计算方法 Java 最优雅方式校验时间段重叠 判断是否有交叉数据 let timePeriod [{start: dateList[0].value, //时间段1的开始时间 时间格式为1130(代表11…...

Python Spyder开发的应用项目
Python是一种功能强大且受欢迎的编程语言,被广泛应用于科学计算、数据分析和机器学习等领域。而Spyder则是一款专为科学计算和数据分析而设计的Python集成开发环境(IDE)。本文将介绍Spyder的特点、功能以及如何使用。 特点 Spyder具有以下主…...

ES6知识点
ES6 知识点及常考面试题 var、let 及 const 区别 涉及面试题:什么是提升?什么是暂时性死区?var、let 及 const 区别?对于这个问题,我们应该先来了解提升(hoisting)这个概念。 console.log(a)…...

数据结构详解各种算法
1、设有两个整型顺序表L1,L2,其元素值递增有序存放,请定义该顺序表的元素类型及表类型,设计以下自定义函数: (1)录入顺序表中所有元素的值。 (2)将顺序表L1,L2合并为到…...