以太网DHCP协议(十)

news2024/12/25 12:46:49

 

目录

一、工作原理

二、DHCP报文

2.1 DHCP报文类型

2.2 DHCP报文格式


       当网络内部的主机设备数量过多是,IP地址的手动设置是一件非常繁琐的事情。为了实现自动设置IP地址、统一管理IP地址分配,TCPIP协议栈中引入了DHCP协议。

一、工作原理

        使用DHCP之前,首先要架设一台DHCP服务器,并将DHCP所要分配的IP地址设置到服务器上。一般来说,都是由路由器充当该网段的DHCP服务器。

        DHCP中获取IP地址的流程主要分为4个步骤:

①客户端发送DHCP发现包:要求设置IP地址和子网掩码(广播)

②服务端返回DHCP提供包:提供网络设置参数

③客户端发送DHCP请求包:请求使用获取到的网络配置参数(广播)

④服务端返回DHCP提供包:同意该配置参数的使用(主要是避免同一参数被重复使用)

        备注:DHCP协议主要使用UDP协议实现,DHCP客户端使用的端口68,服务端使用端口67,可以实现自动分配IP、子网掩码、网关、DNS。

二、DHCP报文

2.1 DHCP报文类型

帧类型

说明

DHCP Discover

DHCP 客户端会在本地网络内以 广播方式发送 Discover 请求报文,以发现网络中的 DHCP 服务器。

DHCP Offer

DHCP Server都能够接收到DHCP Client发送的DHCP Discover报文回复的响应报文。

DHCP Request

响应DHCP Offe报文之后广播发送Request 请求报文,请求获取 IP 地址;当租期到达50%、87.5%时,会分别单播、广播Request请求续延租约。

DHCP ACK

DHCP 服务器收到 Request 请求报文后,根据客户端MAC地址查找到租约记录后响应ACK,通信用户可以使用分配的 IP 地址。

DHCP NACK

DHCP 服务器收到 Request 请求报文后,根据客户端MAC地址查未找到租约记录后响应ACK,通信用户不可以使用分配的 IP 地址。

DHCP Release

DHCP 客户端不再需要使用分配 IP 地址时主动请求释放申请的IP

DHCP Decline

使用IP时,发现请求IP检测不可用,通知服务端以重新分配IP

DHCP Inform

想DHCP服务端获取更详细的配置信息,目前基本不用

2.2 DHCP报文格式

字段

说明

OP

报文的操作类型,1请求,2响应

Htype

客户端的MAC地址类型

Hlen

客户端的MAC地址类型,以太网为6

Hops

DHCP中继数,默认为0

Xid

客户端请求标识,随机数且同一次请求中标识都一样

Secs

客户端从获取到IP地址或者续约过程开始到现在所消耗的时间,以秒为单位

Flags

标志位,只使用第0比特位,是广播应答标识位,0单播,1广播

Ciaddr

客户端的IP地址

Yiaddr

服务器分别的IP地址

Siaddr

下一个为客户端分配IP地址等信息的服务器IP地址

Giaddr

客户端的MAC地址

Sname

DHCP服务器名称

File

DHCP服务器为客户端指定的启动配置文件路径信息

备注:上述信息并不是每个字段咋每条报文中都会使用到

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

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

相关文章

2022 robocom 世界机器人开发者大赛-本科组(国赛)

RC-u1 智能红绿灯 题目描述: RC-u1 智能红绿灯 为了最大化通行效率同时照顾老年人穿行马路,在某养老社区前,某科技公司设置了一个智能红绿灯。 这个红绿灯是这样设计的: 路的两旁设置了一个按钮,老年人希望通行马路时会…

C语言预处理命令 #error 学习

#error命令是C/C语言的预处理命令之一,当预处理器预处理到#error命令时将停止编译并输出用户自定义的错误消息。 如下代码输出数字1000,如果加了 #error,构建时不会通过,提示出错如下; 这可能在大型项目中比较有用&am…

前端小练--社区主页

文章目录 前言首页结构固定导航栏左侧导航itemitem标志 头部推荐文章展示ITEM实现ToolTip完整实现 首页完整实现 前言 废话不多说,直接看到效果: 是的也许你已经发现了这个页面和某个网站长得贼像。没错是这样的,这个布局我确实看起来很舒服…

【Rust】Rust学习 第五章使用结构体组织相关联的数据

5.1 定义结构体并实例化结构体 定义结构体,需要使用 struct 关键字并为整个结构体提供一个名字。结构体的名字需要描述它所组合的数据的意义。接着,在大括号中,定义每一部分数据的名字和类型,我们称为 字段(field&…

从进程pid反推获得该进程所属容器

参考链接 https://cloud-atlas.readthedocs.io/zh_CN/latest/docker/debug/get_container_by_pid.html

基于Java+SpringBoot+Vue的生鲜交易系统设计与实现(源码+LW+部署文档等)

博主介绍: 大家好,我是一名在Java圈混迹十余年的程序员,精通Java编程语言,同时也熟练掌握微信小程序、Python和Android等技术,能够为大家提供全方位的技术支持和交流。 我擅长在JavaWeb、SSH、SSM、SpringBoot等框架…

Idea使用Docker插件实现maven打包自动构建镜像

Docker 开启TCP 服务 vi /lib/systemd/system/docker.service改写以下内容 ExecStart/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock重启服务 #重新加载配置文件 systemctl daemon-reload #重启服务 systemctl restart docker.service此时docker已…

支付模块功能实现(小兔鲜儿)【Vue3】

支付 渲染基础数据 支付页有俩个关键数据,一个是要支付的钱数,一个是倒计时数据(超时不支付商品释放) 准备接口 import request from /utils/httpexport const getOrderAPI (id) > {return request({url: /member/order/$…

Redis实战案例27-UV统计

1. Redis的HyperLogLog的统计功能 示例: 表明HyperLogLog不管加入重复元素多少次都不会让count,不会计数重复元素,所以适合做UV计数 2. 简单实现UV测试 通过单元测试,向 HyperLogLog 中添加 100 万条数据,看看内存占…

小鼠是否使用分布性RL?DeepMind说是的

DeepMind的研究人员发现了大脑对多巴胺的反应与分布强化学习的趋势AI理论之间的相似之处。这些发现验证了分布强化学习的潜力,并促使DeepMind研究人员自豪地宣称“现在人工智能研究走在正确的道路上”。 在这项新研究中,来自DeepMind和哈佛大学的研究人…

C# 完成串口通信RS485

C# 完成串口通信RS485|RS232上下位机交互 第零步: 我用的是电脑usb 转串口的所以首先是驱动程序下载,我们用的是CH341 下载地址:https://www.wch.cn/downloads/CH341SER_EXE.html 第一步:连接机器 RS485 上面有三个端子&#xf…

LangChain手记 Overview

整理并翻译自DeepLearning.AILangChain的官方课程:Overview 综述(Overview) LangChain是为大模型应用开发设计的开源框架 LangChain目前提供Python和JavaScript(TypeScript)两种语言的包 LangChain的主攻方向是聚合和…

若依form中点击重置按钮,select2选中项不会被重置

若依form中点击重置按钮,select2选中项不会被重置问题,下面提供解决办法。 如图所示,点击重置按钮后, 值被重置为初始状态, 而select2仍然选中之前的选项。 解决办法 在 ry-ui.js文件中 625行增加 下边的代码即可 $("#" currentId).find(select).val…

Parquet存储的数据模型以及文件格式

文章目录 数据模型Parquet 的原子类型Parquet 的逻辑类型嵌套编码 Parquet文件格式 本文主要参考文献:Tom White. Hadoop权威指南. 第4版. 清华大学出版社, 2017.pages 363. Aapche Parquet是一种能有效存储嵌套数据的列式存储格式,在Spark中应用较多。 …

【框架篇】MyBatis 介绍及使用(详细教程)

一,MyBatis 介绍 MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO&#xff…

亚马逊积极布局金融科技业务,将在巴西推出信用卡服务

据外媒报道,近日亚马逊表示,其将与巴西布拉德斯科银行(Banco Bradesco)合作,在巴西推出信用卡服务。 Banco Bradesco执行长Octavio de Lazari Junior表示,双方合作的信用卡将于8月8日推出,该卡…

pinctrl_desc函数操作集

pinctrl_desc函数操作集 文章目录 pinctrl_desc函数操作集操作集原型struct pinctrl_opsstruct pinctrl_opsstruct pinconf_ops 操作集原型 pinctrl_desc结构体中包含下列函数操作集 /* 引脚控制操作的虚拟函数表,用于支持引脚分组等全局概念,这是可选的…

分布式异步任务组件(八)

分布式异步任务组件网络通信线程模型设计-- 大概说一下功能场景: 从节点和主节点建立连接,负责和主节点的网络IO通信,通信动作包括投票,心跳,举证等,步骤为读取主节点的信息,写入IO队列中&…

Kotlin基础(十一):反射和注解

前言 本文主要讲解kotlin反射和注解。 Kotlin文章列表 Kotlin文章列表: 点击此处跳转查看 目录 1.1 kotlin反射 1.1.1 kotlin反射概念和常见使用场景 在Kotlin中,反射是一种能够在运行时动态地获取、检查和操作类、属性、方法等结构的能力。Kotlin为反射提供了一…

vue新学习 05vue的创建运行原理

01.vue的创建过程 Vue的生命周期是指Vue实例从创建到销毁的整个过程中经历的一系列阶段。Vue的生命周期分为8个阶段,分别是: beforeCreate(创建前):在实例初始化之后,数据观测和事件配置之前被调用。此时…