以太网DHCP协议(十)

 

目录

一、工作原理

二、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.mzph.cn/news/27013.shtml

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

相关文章

Go语言基础: Switch语句、Arrays数组、Slices切片 详细教程案例

文章目录 一. Switch语句1. Default case2. Multiple expressions in case3. Expressionless switch4. Fallthrough5. break6. break for loop 二. Arrays数组1. when arrays are passed to functions as parameters2. Iterating arrays using range3.Multidimensional arrays …

通向架构师的道路之weblogic与apache的整合与调优

一、BEAWeblogic的历史 BEA WebLogic是用于开发、集成、部署和管理大型分布式Web应用、 网络应用和数据库应 用的Java应用服务器。将Java的动态功能和Java Enterprise标准的安全性引入大型网络应用的 开发、集成、部署和管理之中。 BEA WebLogic Server拥有处理关键Web应…

title和h1、b与strong、i和em的区别

title 与 h1 的区别、b 与 strong 的区别、i 与 em 的区别? title 与 h1:h1 标签写在网页的 body 中,title 标签写在网页的 head 中,h1 标签控制一段文字的大小(从 h1~h6),title 是网页标题的意…

pytorch求导

pytorch求导的初步认识 requires_grad tensor(data, dtypeNone, deviceNone, requires_gradFalse)requires_grad是torch.tensor类的一个属性。如果设置为True,它会告诉PyTorch跟踪对该张量的操作,允许在反向传播期间计算梯度。 x.requires_grad 判…

TM4C123库函数学习(1)--- 点亮LED+TM4C123的ROM函数简介+keil开发环境搭建

前言 (1) 首先,我们需要知道TM4C123是M4的内核。对于绝大多数人而言,入门都是学习STM32F103,这款芯片是采用的M3的内核。所以想必各位对M3内核还是有一定的了解。M4内核就是M3内核的升级版本,他继承了M3的的…

【力扣每日一题】2023.8.5 合并两个有序链表

目录 题目: 示例: 分析: 代码: 题目: 示例: 分析: 题目给我们两个有序的链表,要我们保持升序的状态合并它们。 我们可以马上想要把两个链表都遍历一遍,把所有节点的…

扫地机器人(dfs基础)

题面 Mike同学在为扫地机器人设计一个在矩形区域中行走的算法,Mike是这样设计的:先把机器人放在出发点 (1,1)(1,1) 点上,机器人在每个点上都会沿用如下的规则来判断下一个该去的点是哪里。规则:优先向右,如果向右不能走…

1-搭建一个最简单的验证平台UVM,已用Questasim实现波形!

UVM-搭建一个最简单的验证平台,已用Questasim实现波形 1,背景知识2,".sv"文件搭建的UVM验证平台,包括代码块分享3,Questasim仿真输出(1)compile all,成功!&…

基于 CentOS 7 构建 LVS-DR 集群 及 配置nginx负载均衡

一、构建LVS-DR集群 1、主机规划 Node01:PC Node02:LVS Node03、Node04:Webserver 2、部署环境 2.1 在Node02上配置 2.1.1 安装ipvsadm管理软件按 [rootlocalhost ~]# yum install -y ipvsadm 2.1.2 配置VIP [rootlocalhost ~]# if…

【力扣每日一题】2023.8.8 任意子数组和的绝对值的最大值

目录 题目: 示例: 分析: 代码: 题目: 示例: 分析: 题目给我们一个数组,让我们找出它的绝对值最大的子数组的和。 这边的子数组是要求连续的,让我们找出一个元素之和…

GG修改器安装与Root环境的安装

关于GG修改器大家应该都有一定的了解吧,就是类似于电脑端CE的一个软件。 GG修改器在百度云盘里请自行下载! 百度网盘链接:https://pan.baidu.com/s/1p3KJRg9oq4s0XzRuEIBH4Q 提取码:vuwj 那我要开始了! 本来不想讲GG…

Spring Boot集成EasyPoi实现导入导出操作

文章目录 Spring Boot集成EasyPoi实现导入导出操作0 简要说明1 环境搭建1.1 项目目录1.2 依赖管理2.3 关于swagger处理2.4 关于切面处理耗时1 自定义注解2 定义切面类3 如何使用 2.5 核心导入操作2.6 核心导出操作 2 最佳实线2.1 导入操作1 实体类说明2 业务层3 效果3 控制层 2…

常用抓包工具

Fiddler Fiddler 是一个很好用的抓包工具,可以用于抓取http/https的数据包,常用于Windows系统的抓包,它有个优势就是免费 Charles Charles是由JAVA开发的,可以运行在window Linux MacOS,但它是收费的,和…

.Net Framework请求外部Api

要在.NET Framework 4.5中进行外部API的POST请求,你可以使用HttpClient类。 1. Post请求 using System; using System.Net.Http; using System.Threading.Tasks;class Program {static async Task Main(string[] args){// 创建一个HttpClient实例using (HttpClien…

Python取得系统进程列表

Python取得系统进程列表 上代码 上代码 import psutilfor proc in psutil.process_iter():try:pinfo proc.as_dict(attrs[pid, name])except psutil.NoSuchProcess:passelse:print(pinfo)

httpd+Tomcat(jk)的Web动静分离搭建

动静分离是指将动态请求和静态请求分别交给不同的服务器来处理,可以提高服务器的效率和性能。在Java Web开发中,常见的动态请求处理方式是通过Tomcat来处理,而静态请求则可以通过Apache服务器来处理。本文将详细讲解如何结合Apache和Tomcat来…

Logback ThresholdFilter LevelFilter

当我们需要对日志的打印要做一些范围的控制的时候,通常都是通过为各个Appender设置不同的Filter配置来实现。在Logback中自带了两个过滤器实现: ch.qos.logback.classic.filter.LevelFilter和 ch.qos.logback.classic.filter.ThresholdFilter&#xff0c…

面试热题(翻转k个链表)

给你链表的头节点 head ,每 k 个节点一组进行翻转,请你返回修改后的链表。 k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序。 你不能只是单纯的改变节点内部的值&a…

使用Feign 的远程调用,把mysql数据导入es

要把数据库数据导入到elasticsearch中,包括下面几步: 1)将商品微服务中的分页查询商品接口定义为一个FeignClient,放到feign-api模块中 2)搜索服务编写一个测试业务,实现下面功能: 调用item-ser…

ctfshow-web7

0x00 前言 CTF 加解密合集 CTF Web合集 0x01 题目 0x02 Write Up 通过尝试,发现是数字型的注入,并且同样是过滤了空格 判断字段 获取一下flag即可 1/**/union/**/select/**/1,flag,3/**/from/**/web7.flag#&passworda以上