DHCP技术原理详解

2023-11-10

今天给大家讲解一下DHCP的原理和技术细节。本文从DHCP基本原理、实现流程和DHCP重启后的流程和租约和续约机制三个方面对DHCP进行了全方位的讲解,基本上涵盖了DHCP的全方面。

一、DHCP基本原理

DHCP,Dynamic Host Configuration Protocol,动态主机配置协议,是一种可以使主机开机后自动获取IP地址、子网掩码、DNS等信息的技术手段。应用DHCP技术,不仅可以简化用户的上网流程,方便用户上网,如果从企业的角度来说,还可以实现对公司内部网络用户的管理。
DHCP是一种C/S模式的网络协议,要想实现DHCP功能,首先主机必须支持DHCP Client功能,其次网络中还必须拥有一台DHCP服务器,并且主机和该服务器之间必须能够正常通信。因为DHCP中有些报文时以广播的形式,因此DHCP Server和DHCP Client一般必须要在一个子网内。(后面我们会讲到,如果确实不在一个网段,还可以配置DHCP中继来解决这个问题)
DHCP服务器,既可以是一台主机,华为和思科系列路由交换设备也可以实现DHCP服务器功能。
DHCP使用UDP协议实现通信,网络层协议号字段为0x11,DHCP Client端口号68,DHCP Server端口67。

二、DHCP实现流程

DHCP实现流程一共有4个阶段,具体如下图所示:
在这里插入图片描述

(一)发现阶段

当主机刚刚开机运行,此时他不知道此时网络中是否存在DHCP服务器,DHCP服务器是谁,因此它必须首先确定网络中的DHCP服务器身份。因此,新上线主机会发送DHCP Discover报文, 该报文是一个广播报文,源IP地址为0.0.0.0,目的IP地址为255.255.255.255。源MAC地址为自己的MAC地址,目的MAC地址为ffff-ffff-ffff。该报文会在二层网络中洪泛,因此如果网络中存在DHCP服务器,则DHCP服务器会收到该报文。

(二)提供阶段

当网络中的DHCP服务器收到了DHCP Client发送的DHCP报文后,DHCP就进入了提供阶段。在这个阶段,DHCP Server会根据管理员的相关配置,给DHCP Client提供一个可用的IP地址,同时给其提供DNS、子网掩码等信息。
DHCP Server会发送DHCP Offer信息给DHCP Client提供上述信息,该报文也是一个广播报文,源IP地址为DHCP Server的IP地址,目的IP地址为DHCP Server给该DHCP Client分配的IP地址,源MAC地址为DHCP Server的MAC地址,目的MAC地址为DHCP Client的MAC地址。(注,在这里有的设备上DHCP Offer报文也是广播,其实也能够实现DHCP的功能)

(三)请求阶段

在DHCP Client收到DHCP Server发送的DHCP Offer报文后,就进入了DHCP请求阶段,在DHCP请求阶段,DHCP已经得到了DHCP Server分配给它的IP地址,DHCP Client在得到该IP地址后,却不会马上使用,DHCP Client会向DHCP Server发送DHCP Request报文,正式向DHCP Server申请使用该IP地址。
DHCP Request报文,源IP地址为0.0.0.0(因为这时还没有得到DHCP服务器的回应,因此此时这个IP地址还不能正常使用,因此在这里源IP地址还是0.0.0.0)。目的地址为255.255.255.255。(注:在这里其实DHCP Client其实已经知道了DHCP Server的IP地址,因此其实这里使用DHCP Server的IP地址其实也是可以的,因此,有些设备对此做了优化,因为这样可以减少网络中的广播洪范流量)源MAC和目的MAC地址分别是DHCP Client的和DHCP Server的MAC地址。

(四)确认阶段

当DHCP Server收到DHCP Client发送的DHCP Request报文后,DHCP进入确认阶段。DHCP Server会向DHCP Client发送DHCP Reply报文,表示同意DHCP Client使用该IP地址。
DHCP Reply报文(有时也被称为DHCP ACK报文),源IP地址为DHCP Server的IP地址,目的IP地址为DHCP Client的IP地址,源目MAC为DHCP Server和Client的MAC地址。

三、重启PC后的DHCP过程及DHCP续约机制

(一)重启PC后的DHCP过程

目前,PC机对于DHCP有记忆功能,会记住当前网络中DHCP服务器的IP地址和上次分配给自己的IP地址。因此,当PC重启后,通常不会按照上述的4个步骤按部就班的申请IP地址,而是通常会直接进入第三个阶段,直接向DHCP Server发送DHCP Request报文,请求自己上一次获得的IP地址。如果DHCP同意,则会回应DHCP Reply报文,如果该IP地址已经被占用,或者其他情况造成DHCP Server不把该IP地址分配给DHCP Client,则DCHP Server会回应DHCP NACK报文,表示拒绝。这时,PC就必须重新进行DHCP四个阶段。

(二)DHCP续约机制

DHCP存在租约和续约机制,在默认情况下,当PC机申请到一个DHCP地址后,使用时间为一天,管理员也可以手动修改该时间,最短为1小时。当PC申请的DHCP IP地址到达租约时间后,该IP地址就不可以继续使用,因此PC会在租约到期之前进行续约。
通常情况下,DHCP Client会进行两次续约,一次是在租约期的50%时候,DHCP Cient会向DHCP Server发送DHCP Reqruest报文,如果收到DHCP Server的回应,则续约成功。第二次续约是在租约期的87.5%的时候,DHCP会再次向DHCP Server发送DHCP Request报文,申请租约。如果此时仍为收到DHCP响应的DCHP ACK报文,则就必须要重新进行DHCP的四个阶段,重新申请IP地址。
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200/article/details/118858510

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

DHCP技术原理详解 的相关文章

  • 【网络是怎样连接的】—— 向 DNS 服务器查询 IP 地址

    IP 1 基本知识 互联网和公司内部的局域网都是基于 TCP IP 的思路来设计的 由一些小的子网 通过路由器连接起来组成一个大的网络 这里的子网可以理解为用集线器连接起来的几台计算机 在网络中 所有的设备都会被分配一个地址 这个地址就相当
  • IP数据报的发送和转发过程

    IP数据报的发送和转发过程 源主机如何知道目的主机是否与自己在同一网络中 同一个网络中的主机可以直接通信 这属于直接交付 不同网络中的主机不能直接通信 需要路由器的中转 这属于间接交付 现假设主机C给主机F发送ip数据报 主机C将自己的IP
  • 交换机自学习和转发帧

    交换机自学习和转发帧 主机A给主机B发送帧 首先假设已经通过arp协议得到主机B的MAC地址 当交换机1收到该帧后将源MAC地址和接口登记 然后在帧交换表中查到目的MAC地址 没有找到就进行盲目转发 泛洪 交换机2收该帧后 做相同的动作 主
  • 计算机网络--绪论

    一 计网的体系结构 1 概念和功能 2 组成和分类 3 标准化工作及相关组织 二 性能指标 1 速率 2 带宽 3 吞吐量 4 时延 5 时延带宽积 6 往返时间RTT利用率 7 利用率 三 分层结构 1 分层 四 OSI参考模型 1 OS
  • 2.6.1 ADSL技术

    ADSL技术 即 非对称数字用户线技术 利用 数字技术 对 现有的 模拟电话用户线 进行改造 使其能够承载宽带数字业务 标准模拟电话信号的 频带 被限制在 300 3400 Hz 的范围内 无法承载宽带数字业务 但 用户线本身 可通过的 信
  • 什么是protocol分层,垂直service??计算机网络详解【计算机网络养成】

    内容导航 分组丢失和延时 发生原因 四种分组延时 节点处理延迟 排队延迟 传输延时 Transmission 传播延时 Propagation 使用cmd命令tracert 和 tracerert 来检查延迟 分组丢失 吞吐量 有效的数据量
  • 网络基础知识

    网络编程 2 网络的体系结构 七层模型 四层模型 因为网络通信比较麻烦 所以网络采用分层思想 OSI开放系统互联网模型 七层模型 高层 应用层 表示层 会话层 低层 传输层 网络层 数据链路层 物理层 驱动 网卡 仅仅是一种理想状态 现实中
  • DHCP原理与配置+DHCP中继

    一 DHCP服务的简介 DHCP基于客户 服务器模式 当DHCP客户端启动时 它会自动与DHCP服务器通信 由DHCP服务器为DHCP客户端提供自动分配IP地址的服务 安装了DHCP服务软件的服务器称为DHCP服务器 而启用了DHCP功能的
  • 现阶段计算机网络技术专业人才培养的发展对策

    确立具有高职特色的人才培养目标 在市场经济的条件下 人才培养首先要适应市场需求 以市场行业的需求为导 向制定人才培养目标 学校人才培养是否能满足社会需求 可以通过学生在对口行 业及相关领域的就业情况来衡量 高职教育培养高技能应用型人才 与研
  • 计算机网络学习笔记第四章(网络层)超详细整理

    目录 4 1 网络层概述 1 简介 2 总结 4 2 网络层提供的两种服务 1 面向连接的虚电路服务 2 无连接的数据报服务 3 虚电路服务与数据报服务的对比 4 3 IPv4 1 概述 2 分类编制的IPv4地址 2 1 简介 2 2 总
  • 2023面试问答-计算机网络

    OSI 的七层模型分别是 各自的功能是什么 简要概括 物理层 底层数据传输 如网线 网卡标准 数据链路层 定义数据的基本格式 如何传输 如何标识 如网卡MAC地址 网络层 定义IP编址 定义路由功能 如不同设备的数据转发 传输层 端到端传输
  • 【Linux 应用】网络相关开发---ip、网关、掩码、dns、mac的获取和设置,以及dhcp动态获取

    最近开始调试Linux 的测试版 需要开发网络设置相关功能 其实这一块以前也做过 但是都忘记了 可见沉淀的重要性 1 ip 掩码设置和获取 通过int ioctl int d int request 这个函数可以获取到 其中 IP设置 SI
  • 计算机网络,用Excel画3种编码方式图(非归零编码,曼彻斯特编码,差分曼彻斯特编码)

    计算机网络 用Excel画3种编码方式图 非归零编码 曼彻斯特编码 差分曼彻斯特编码
  • 计算机网络那些事之 MTU 篇

    哈喽大家好 我是咸鱼 今天我们来聊聊计算机网络中的 MTU Maximum Transmission Unit 什么是 MTU MTU Maximum Transmission Unit 是指数据链路层中的最大传输单元 通俗点来讲 MTU
  • 计算机网络重点知识(期末考研复习)

    点个关注 更多精彩持续更新为考研和期末助力 一起加油 计算机网络 第一章 思维导图 概述 计算机网络的主要性能指标 计算机网络的体系结构 OSI RM模型 TCP IP 两种模型对比 第二章 思维导图 数据通信主要指标与信道极限容量 多路通
  • Arduino DHCP 配置失败

    我正在使用与 Arduino 软件捆绑在一起的 Web 客户端的以太网草图示例 除了固件地址 我将其更改为印在以太网扩展板背面的地址 之外 无需更改其他任何内容 每当我将 Arduino 连接到网络并查看串行监视器时 我收到的唯一消息是 无
  • 【常识系列】Java程序员需要了解的网络常识之计算机网络性能指标

    作为一个Java程序员 我们也需要对计算机的网络知识有一定的了解 本系列就是针对非运维小伙伴的网络常识介绍 不费脑子可以无聊的时候瞅一瞅 希望可以帮助到大家 计算机网络性能指标 速率 计算机发送的信号是以 二进制数字 形式的 一个二进制数字
  • 【计算机网络概述】第一章:概论 1.2什么是网络边缘

    学习目标 网络结构 端系统的客户 服务器模式与对等模式 两种面向网络实施的服务 前言 在第一章 我们学习了什么是 Internet 网络 计算机网络和互联网的知识点 但是由于计算机网络的知识点非常的抽象 内容又多 所以我们要反复的练习 记忆
  • 期末备考 |《计算机网络》期末备考资料包来啦!

    写在前面 不知不觉又到了学期的末尾 不知道各位计算机er的 专业课复习得怎么样了呢 为了帮助大家更好地 备战期末 从今天开始 岛主将持续为大家更新 计算机期末备考资料 为同学们的绩点护航 今天岛主为大家带来的是 计算机网络 期末备考资料包
  • 计算机网络基础——光模块(Optical Modules)基础知识介绍

    一 光模块的工作原理 光模块 Optical Modules 的工作原理是将电信号转换为光信号 或者将光信号转换为电信号 实现光纤通信中的光电转换和电光转换功能 具体来说 光模块主要由光电子器件 光发射器和光接收器 功能电路和光接口等部分组

随机推荐

  • 5种创建Dataframe方法

    下面将简要介绍Dataframe的5种创建方法 由于输出结果比较冗余 这里将不会展示输出结果 读者可以自行赋值粘贴 最好使用jupyter运行 并查看结果 另外的 代码中有非常详细的注释 Dataframe创建方法一 import nump
  • 【网络】UDP协议详解

    目录 UDP的感性理解 UDP协议格式 UDP协议格式感性理解 UDP特点 UDP的缓冲区 UDP的感性理解 UDP的传输过程类似于寄信 假设你要写一封家书寄回家里 首先你要在信封上填写好寄件人和收件人的地址 其次在贴好邮票 最后将信件投放
  • java深拷贝循环单链表,JZ25-复杂链表的复制

    题目描述 输入一个复杂链表 每个节点中有节点值 以及两个指针 一个指向下一个节点 另一个特殊指针random指向一个随机节点 请对此链表进行深拷贝 并返回拷贝后的头结点 注意 输出结果中请不要返回参数中的节点引用 否则判题程序会直接返回空
  • 由栈和队列完成数组的逆置操作(C语言)

    将数组a 11 1 3 6 10 15 16 17 18 19 20 通过栈和队列实现元素逆置的算法 入栈 gt 出栈 gt 入队 gt 出队 include stdio h include stdlib h typedef int dat
  • LangChain 中的嵌入

    在自然语言处理 NLP 领域 嵌入已经成为游戏规则的改变者 它们使我们能够将单词和文档转换为计算机可以理解的数字 这些数字表示 称为嵌入 对于理解文本 分析情感和翻译语言等任务至关重要 本文探讨了LangChain中的嵌入 这是一个用于创建
  • windows上bug崩溃定位分析(Qt或者VS)

    任何情况下 都不能保证自己写的代码不会发生崩溃 崩溃不可怕 可怕的是无法定位哪里崩溃 特别是客户那边崩溃 开发者这边不崩溃 问题陷入僵局 自从有了下面这个神奇的代码 再也不怕了 以下代码亲自测试没问题 1 如果是在VC 中 那么只需要将下列
  • 干货系列三:一台服务器能承载多少人同时访问?

    有很多人都会问这个问题 服务器能承载多少人同时访问 这个问题其实是很难有一个非常准确的答案的 因为服务器能同时承载的在线人数是受到多方面因素共同影响的结果 比如带宽 服务器处理速度以及访问页面的大小等等因素 虽然很难有一个精确的答案 但是服
  • 60秒轻松计算出任意一年任意一天星期几?

    60秒轻松计算出任意一年任意一天星期几 一 提出问题 60秒就可以轻松计算出任意一年任意一天星期几吗 你相信吗 如果能算出 连脑神经专家都认为是神童 大家可以通过度娘搜索 张戈 自闭症 连人民网都有报道 有图为证 如何快速计算出任意一年任意
  • Spring Security详解

    第一节 Spring Security 简介 Spring 是一个非常流行和成功的 Java 应用开发框架 Spring Security 基于 Spring 框架 提供了一套 Web 应用安全性的完整解决方案 一般来说 Web 应用的安全
  • maven高级学习

    maven高级 一 idea创建maven项目 1 1 idea中创建maven web项目 1 2 idea中使用tomcat 1 3 插件和依赖的区别 二 依赖管理 2 1 依赖配置 2 2 依赖传递 2 2 1 依赖传递中的冲突问题
  • Yii Framework 开发教程(14) UI 组件 MaskedTextField示例

    CMaskedTextField为格式输入框 可以为文本框指定Mask限制用户可以出入的文本格式 如本例使用99 99 9999 可以只允许输入类似日期的文本 修改View 添加CMaskedTextField 组件 php view pl
  • java比较mysql两个数据库_用java实现操作两个数据库的数据

    1 首先需要在jdbc的配置文件里面配置两个数据库的连接 数据库1的配置 driverClassName com mysql jdbc Driver url jdbc mysql 地址 3306 数据库名 useUnicode true c
  • 【SQL入门系列二】SQLZOO 分组

    分组 5 SUM and COUNT 5 SUM and COUNT Aggregate functions SUM COUNT MAX AVG SUM 世界总人口 SELECT SUM population FROM world Afri
  • springboot整合ehcache

    springboot整合ehcache springboot版本 2 5 1 1 pom文件
  • 12、计算机图形学——几何(网格细分与网格简化)

    一 网格细分 1 1 概念 网格细分指的是将原有模型上的网格分成更多个网格 从而将模型变得更加精细 提高渲染出来的效果 让画面更加漂亮 下图就是一个网格细分的示意 左图是细分前的效果 右图是细分后的效果 可见 细分后的面数更多 模型更加精细
  • java将网络图片下载并压缩导出到本地

    java将网络图片下载并压缩导出到本地 package com example demo ChartGraphics test import org apache tools zip ZipEntry import org apache t
  • 使用VsCode搭建Node.js服务器开发环境

    使用VsCode搭建Node js服务器开发环境 在进行Node js服务器开发时 一个好的集成开发环境可以帮助您更快地编写代码 并且提高程序的效率 在此推荐安装配置VSCode作为Node js服务器开发环境 下面介绍安装配置过程 Ste
  • ZYNQ ARM核之SCU

    Snoop Control Unit 窥探控制单元 详情见UG585 SCU主要是解决ARM的L1和L2的缓存协调 因为两个processor的缓存是共用的 和AXI总线的ACP存取的 也就是DMA等高速中断需求的外设 SCU 块将两个 C
  • javascript 基础知识之derfer 妙用

    javascript 一般是加载完后立即执行 但是有些时候并不想立即执行 而是等到页面装载完毕时再执行 怎么实现这样的需求呢 答案就是使用
  • DHCP技术原理详解

    今天给大家讲解一下DHCP的原理和技术细节 本文从DHCP基本原理 实现流程和DHCP重启后的流程和租约和续约机制三个方面对DHCP进行了全方位的讲解 基本上涵盖了DHCP的全方面 一 DHCP基本原理 DHCP Dynamic Host