网络: DHCP 协议简介

news2024/11/24 22:57:07

文章目录

  • 1. 前言
  • 2. DHCP 协议简介
    • 2.1 DHCP 客户端广播 `DHCPDISCOVER` 消息
    • 2.2 DHCP 服务器回复 `DHCPOFFER` 消息
    • 2.3 DHCP 客户端广播 `DHCPREQUEST` 消息
    • 2.4 DHCP 服务器回复 `DHCPACK` 消息
    • 2.5 剩余的工作
  • 3. 参考资料

1. 前言

限于作者能力水平,本文可能存在谬误,因此而给读者带来的损失,作者不做任何承诺。

2. DHCP 协议简介

DHCP,是 Dynamic Host Configuration Protocol 的缩写,译称 动态主机配置协议DHCP 是一个局域网协议,前身为 BOOTP 协议,用来为局域网主机动态管理、分配 IP 地址DHCP 协议位于OSI 7层协议模型应用层,向下调用 UDP 协议工作。
DHCP 的具体实现为 C/S 模式(客户端/服务端 模式)DHCP 请求、分配 IP 地址的过程,可以简单概括为:客户端向服务端发起 IP 地址分配请求,服务端响应该请求返回分配的 IP 地址等信息给客户端,之后客户端使用返回的 IP 地址工作,使用完毕(租期到期、或下线)后释放该地址给 DHCP 服务器。典型的 DHCP 客户端有 dhcpcd 。
接下来细化上述DHCP 请求、分配 IP 地址的过程,先上一张图:
在这里插入图片描述
上图是一个典型的 DHCP 分配地址的过程,下面以每一小节一个消息的组织形式,来细化这一过程。在此之前,有必要把 DHCP 消息的格式做个简要介绍:
在这里插入图片描述
下图为协议对消息字段的解释:
在这里插入图片描述
这里只挑我们重点关注的2个字段进行说明:

yiaddr: DHCP 服务器分配给客户端的 IP 地址,4字节长。
chaddr: 网络设备地址(如以太网卡 MAC 地址),16字节长。像以太网卡 MAC 地址只需6字节,剩余部分填 0

2.1 DHCP 客户端广播 DHCPDISCOVER 消息

DHCP 客户端通过在局域网广播 DHCPDISCOVER 消息,向局域网的所有 DHCP 服务器发起 IP 地址分配请求。我们以找工作的过程,来进行类比:我们(找工作的人),就是 DHCP 客户端;找工作要投递简历,投递简历的过程,就是发送 DHCPDISCOVER 消息,我们找工作通常会投多家公司,这就是广播了;而接收我们简历投递的公司,就是 DHCP 服务器。看一下 DHCP 客户端 DHCPDISCOVER 消息的抓包:
在这里插入图片描述

2.2 DHCP 服务器回复 DHCPOFFER 消息

局域网内的 DHCP 服务器收到 DHCP 客户端广播的 DHCPDISCOVER 消息后,从自身管理的 IP 地址池挑选一个空闲 IP,单播回复一个带可用 IP 地址的 DHCPOFFER 消息给请求 IP 的 DHCP 客户端。还是类比于找工作的过程,我们投递了简历的公司,经过面试后(发现可用 IP),如果发现你合适(有可用 IP),则会给你发一个 Offer (单播 DHCPOFFER 消息给 DHCP 客户端)。当然,如果面试发现你不合适(没有可用 IP 或 其它可能的问题),自然也不会发 Offer 给你(没有 DHCPOFFER 从这些 DHCP 服务器发出)。看一下 DHCP 客户端 DHCPOFFER 消息的抓包:
在这里插入图片描述

2.3 DHCP 客户端广播 DHCPREQUEST 消息

DHCP 客户端在收到 DHCP 服务器DHCPOFFER 消息后,再次向 DHCP 服务器 广播 DHCPREQUEST 消息,告知自己准备要使用 DHCPOFFER 消息给出 IP 地址。之所以是广播,因为还有完全确立使用该 IP。当然,DHCP 客户端 可能收到多个来自 DHCP 服务器的 DHCPOFFER 消息,它回挑选其中一个,通常是挑选最先收到的。还是类比于找工作的过程,在收到公司发给我们的 Offer 后(收到 DHCPOFFER 消息后),我们从中挑选一封 Offer 接受(毕竟烈女不嫁二夫^ - ^),然后告知公司我接受你家的 Offer(向 DHCP 服务器 广播 DHCPREQUEST 消息)。看一下 DHCP 客户端 DHCPREQUEST 消息的抓包:
在这里插入图片描述

2.4 DHCP 服务器回复 DHCPACK 消息

DHCP 服务器接收到 DHCP 客户端的 IP 请求消息 DHCPREQUEST 后,单播回复一个 DHCPACK 告知 DHCP 客户端,你申请的 IP 成功了,DHCP 服务端会将之记录在案:该 IP 已经分配出去了。当然,也可能回复 DHCPNAK 消息,告知 DHCP 客户端 你申请的 IP 不批准:毕竟消息中间存在间隙,别的客户端也可能已经将这个 IP 拿走了。再类比到找工作,即使你拿到 Offer 了,入职前还是要跟公司再次确认(收取 DHCPACK 消息确认),因为有可能别人抢了你的职位(别的客户端捷足先登拿走了你申请的 IP)。会有公司这么干,发了 Offer 也不给你入职,公司可能找了一个性价比更优的。虽然无耻,但很现实 ^ - ^ 。看一下 DHCP 客户端 DHCPACK 消息的抓包:
在这里插入图片描述

2.5 剩余的工作

看起来一切都已经完成了,是这样吗?对于 DHCP 协议来讲,确实工作已经结束了。但是,如果局域网内,有其它的设备静态配置了 DHCP 客户端申请的 IP ,而 DHCP 服务端不会知道这一点,所以可能分配了一个和局域网内设备冲突的 IP 给客户端,这是 DHCP 客户端拿到 DHCPACK 消息确认的 IP 后,通过发送一个 ARP 广播,来确认是不是局域网内有和自己刚申请到的 IP 冲突的设备,看下 DHCP 客户端在拿到申请的 IP 后,在局域网内发 ARP 广播来确认是否存在冲突 IP 的抓包:
在这里插入图片描述
DHCP 客户端 发几个 ARP 广播,没设备回应的话,就认为没人使用申请的 IP,接下来就使用该 IP 愉快的玩耍了。这一部分内容,已经不属于 DHCP 协议的内容了。

3. 参考资料

[1] DHCP协议详解
[2] DHCP协议: RFC 2131

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Linux】shell命令运行原理---认识Linux基本指令

主页:醋溜马桶圈-CSDN博客 专栏:Linux_醋溜马桶圈的博客-CSDN博客 gitee:mnxcc (mnxcc) - Gitee.com 目录 1.shell命令以及运行原理 1.1 shell命令 1.2 Linux内核权限 1.3 图示Linux shell和bash的区别 2.认识Linux基本指令 2.1 指令的…

Vue.js前端开发零基础教学(一)

目录 第一章 初识Vue.js 前言 开发的好处 一.前端技术的发展 什么是单页Web应用? 二. Vue的简介 三. Vue的特性 四. Vue的版本 五.常见的包管理 六.安装node环境 第一章 初识Vue.js 学习目标: 了解前端技术的发展 了解什么是Vue掌握使用方…

Zero-Shot Learning with Joint Generative Adversarial Networks 中文版

目录 摘要介绍1.研究背景和意义2.先前的模型提出了什么方法?解决了什么问题?有什么不足?3.最近的研究提出了什么方法?解决了什么问题?4.最新的研究提出了什么方法?解决了什么问题?有什么不足&am…

关于自己Nginx的使用(ant design pro 部署)

一 原因 工作需要部署 ant design pro 框架开发的前端程序,并且需要有用到代理。就选择了nginx部署。 二 使用nginx部署 ant design pro 框架程序 1. 前端项目打包 (1)打包命令:npm run build 或者 yarn bulid &#…

SAP STMS请求重复传输

STMS 在接请求的导入的时候,第一次发生了错误,在修复了错误之后, 该请求二次导入显示已经该请求已全部导入 可以按如下操作进行再次导入 附加--》其他请求--》添加 输入请求号并勾选再次导入 然后点选需要重复导入的请求号即可再次导入

Redisinsight默认端口改成5540了!网上的8001都是错误的

Redisinsight 打开白屏解决方法 最近发现一个很讨厌的bug,就是redisinsight运行之后,不行了,在网上找到的所有资料里面,redis insight都是运行在8001端口,但是我现在发现,变成了5540 所以对应的docker-com…

华为ensp中rip动态路由协议原理及配置命令(详解)

CSDN 成就一亿技术人! 作者主页:点击! ENSP专栏:点击! CSDN 成就一亿技术人! ————前言————— RIP(Routing Information Protocol,路由信息协议)是一种距离矢…

什么样才叫计算机?

我和小宇早恋了,我们家住隔壁。 一、编码与电路——信号的转换 晚上父母会把手机没收,但我们还想继续聊天,又不敢发出声音,于是我们想到了这个办法... 我们把所有的中文都用灯泡的亮灭组合来表示,同时约定好每隔一秒读…

IDA反汇编工具详解之工程和窗口

文章目录 什么是反汇编反汇编的目的ID介绍打开创建工程IDA的基本规则窗口介绍反汇编窗口Names窗口Strings窗口十六进制窗口导出窗口导入窗口函数窗口结构体窗口枚举窗口段窗口签名窗口类型库窗口函数调用窗口问题窗口 什么是反汇编 程序员使用编译器、汇编器和链接器中的一个或…

位图与布隆过滤器

目录 一、位图 1、问题用位图来解决: 二、 布隆过滤器 1、将哈希与位图结合,即布隆过滤器 2.布隆过滤器的查找 3.布隆过滤器的删除 4.布隆过滤器优点 5、布隆过滤器缺陷 三、海量数据处理问题: 一、位图 问题1:给40亿个不…

【C++】详解 INT_MAX 和 INT_MIN(INT_MAX 和 INT_MIN是什么?它们的用途是什么?如何防止溢出?)

目录 一、前言 二、什么是 INT_MAX 和 INT_MIN ? 三、INT_MAX 和 INT_MIN 的用途 四、如何避免溢出问题出现 ? 五、 INT_MAX 和 INT_MIN 的运算 六、leetcode 常考面试题 七、共勉 一、前言 大家在平时刷 leetcode 的时候,肯定会碰到 溢出…

谷歌seo网络营销哪家好?

对于一个好的服务商的评判标准其实不难,保证结果,服务透明化,专业的服务,专业的指导,但怕就怕在你什么都不懂,只看重短期的结果,不懂谷歌seo的基础 一些做谷歌seo的反面例子也是需要了解的&…

上位机图像处理和嵌入式模块部署(qmacvisual三维测量)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 在qmacvisual软件里面,关于三维测量方面的内容讲的比较少。目前来说只有一个插件完成这个功能。这可能也和作者自己当时的开发环境有关…

springcloud-Nacos 更强大的注册中心组件

Nacos 实际上从设计思想来说 Eureka 和 nacos 是一样的。 后者是Alibaba推出的 一款更强大 功能更丰富的注册中心 你可以理解为Eureka的高配版 技多不压身既然了解了 Eureka, nacos也来学习一下吧! 安装 首先nacos不像eureka 直接pom里面引个依赖就搞定了&#…

查看angular版本的问题The Angular CLI requires a minimum Node.js version of v18.13.

angular版本与node.js版本不匹配的问题 下载安装angular 查看版本,发现不匹配 安装指定版本即可 查看版本并运行

diandian数据聚合平台参数分析(水)

diandian数据聚合平台参数分析(水) 链接地址:‘暂无’(懂的都懂) 1. 打开网页链接,f12 打开控制台,任意搜索。 2 经过对比分析 需要分析参数key 3 通过debugger分析回溯 发现以下参数生成位置 …

许战海战略文库|向宗老致敬!祝娃哈哈未来三十年行稳致远

摘要:许战海咨询对宗老先生的崇高敬意与对民族品牌的坚定支持,许战海咨询运用其独特的战略视角深入剖析产品战略,旨在帮助娃哈哈有效利用自身的竞争优势,打造爆品,实现进一步的高速增长。 娃哈哈品牌当前所面临的种种挑战,其根源在于缺乏明确和有力的主…

智慧公厕:卫生、便捷、安全的新时代厕所变革

在城市快速发展的背景下,公共厕所的建设和管理变得越来越重要。智慧公厕作为厕所变革的一项全新举措,通过建立公共厕所全面感知监测系统,以物联网、互联网、大数据、云计算、自动化控制技术为支撑,实现对公共厕所的智能化管理和运…

论文阅读之AN IMAGE IS WORTH 16X16 WORDS: TRANSFORMERS FOR IMAGE RECOGNITION AT SCALE

文章目录 原文链接主要内容模型图技术细节实验结果 原文链接 AN IMAGE IS WORTH 16X16 WORDS: TRANSFORMERS FOR IMAGE RECOGNITION AT SCALE 主要内容 这篇文章的主要内容是介绍了一种新的计算机视觉模型——Vision Transformer(ViT),这是…