当前位置: 首页 > news >正文

计算机网络笔记:动态主机配置协议(DHCP)

协议配置

  • 为了把协议软件做成通用和便于移植的,协议软件的编写者不会把所有的细节都固定在源代码中,相反,他们把协议软件参数化,这就使得在很多台计算机上有可能使用同一个经过编译的二进制代码。
  • 一台计算机和另一台计算机的很多区别,都可以通过一些不同的参数来体现。
  • 在协议软件运行之前,必须给每一个参数赋值。在协议软件中给这些参数赋值的动作被称为协议配置,一个协议软件在使用之前必须是已经正确配置的。

动态主机配置协议(DHCP)概述:动态主机配置协议是目前广泛使用的协议,提供了一种即插即用连网机制。这种机制允许一台计算机加入新的网络和获取IP地址而不用手工参与。

DHCP的适用情况

  • DHCP对运行客户软件和服务器软件的计算机都适用;
  • 当运行客户软件的计算机移到一个新的网络时,就可以使用DHCP获取其配置信息而不需要手工干预;
  • DHCP给运行服务器软件而位置固定的计算机指定一个永久地址,而当这计算机重新启动时其地址不改变。

DHCP协议简单过程

  • DHCP使用客户服务器方式。
  • 发现报文发出
    • 需要IP地址的主机在启动时就向DHP服务器广播发送发现报文(将目的IP地址设置为255.255.255.255),这时主机就成为DHCP客户。
    • 发送广播报文是因为现在还不知道DHCP服务器在什么地方,因此要发现DHCP服务器的IP地址。
    • 这台主机目前还没有自己的IP地址,因此将IP数据报的源IP地址设置为全0。
    • 本地网络中的所有主机都能收到这个广播报文,但是只有DHCP服务器才能对此广播报文进行回答。
  • 提供报文发出
    • DHCP服务器先在其数据库中查找该计算机的配置信息。如果找到,则返回找到的信息;如果找不到,则从服务器的IP地址池中取一个地址分配给该计算机。
    • DHCP服务器的回答报文叫做提供报文,表示提供了IP地址等配置信息。

DHCP中继代理

  • DHCP中继代理的存在背景:由于如果对每一个网络都配置一个DHCP服务器会使得DHCP服务器的数量太多,因此更加普遍的做法是为每一个网络至少配置一个DHCP中继代理(通常是一个路由器),该中继代理中配置了DHCP服务器的IP地址信息。
  • DHCP中继代理的工作过程
    • 当DHCP中继代理收到主机A以广播形式发送的发现报文后,就以单播的形式向DHCP服务器转发此报文并等待其回答。
    • 收到DHCP服务器回答的提供报文后,DCP中继代理再把此提供报文提供给主机A。

租用期

  • 概念:DHCP服务器分配给DHCP客户的IP地址是临时的,因此DHCP客户只能在一段有限的时间内使用分配到的IP地址,这段时间被称为租用期。
  • 时间长短:租用期的长短由DHCP服务器自行决定。可选的租用期时间范围是1秒到136年。

DHCP的端口

  • 客户端口:DHCP客户使用的UDP端口是68;
  • 服务端口:DHCP服务器使用的UDP端口是67。

DHCP的详细过程

  1. DCHP服务器被动打开UDP端口67,等待客户端发来的报文;
  2. DHCP客户从UDP端口68发送DHCP发现报文;
  3. 凡收到DHCP发现报文的DHCP服务器都发出DHCP提供报文,因此DHCP客户机可能受到多个DHCP提供报文;
  4. DHCP客户机从几个DHCP服务器中选择其中的一个,并向所选择的DHCP服务器发送DHCP请求报文;
  5. 被选择的DHCP服务器发送确认报文DHCPACK。从这时起,DHCP客户就可以使用这个IP地址了,这种状态被称为已绑定状态。此时DHCP客户端的IP地址和MAC地址已经完成绑定,并且可以开始使用得到的临时IP地址了。DHCP客户此时会根据提供的租用期T设置两个计时器,分别计时时间是0.5T和0.875T,当超时时间到了则请求更新租用期。
  6. 租用期过了一半时,DHCP客户发送请求报文DHCPREQUEST要求更新租用期。
  7. DHCP服务器若不同意,则发回否定报文DHCPPACK,这时DHCP客户必须立即停止使用原来的IP地址,而必须重新申请IP地址。
  8. DHCP服务器如果没有响应请求,则再第二个计时器到时间时,DHCP客户重新发送请求报文DHCPREQUEST,然后继续上面的步骤。
  9. DHCP客户可以随时提前终止服务器所提供的租用期,这时只需要向DHCP服务器发送释放报文DHCPRELEASE即可。

DHCP的实际使用:DHCP非常适合于经常移动位置的计算机。Windows计算机自动获得IP地址和自动获得DNS服务器地址选项,就是表示使用DHCP协议。

相关文章:

计算机网络笔记:动态主机配置协议(DHCP)

协议配置: 为了把协议软件做成通用和便于移植的,协议软件的编写者不会把所有的细节都固定在源代码中,相反,他们把协议软件参数化,这就使得在很多台计算机上有可能使用同一个经过编译的二进制代码。一台计算机和另一台…...

新买的电脑怎么用U盘重装系统?新买的电脑用U盘重装系统教程

新买的电脑怎么用U盘重装系统?用户新买了电脑,想知道怎么用U盘来重装新买的电脑,用U盘来重装电脑其实非常简单,用户需要准备一个U盘,然后完成U盘启动盘的安装,接着按照以下分享的新买的电脑用U盘重装系统教…...

图像边缘检测原理

文章目录 图像边缘检测原理1:2:3:基本边缘检测算子 图像边缘检测原理 1: 图像的边缘指的是图像中像素灰度值突然发生变化的区域,如果将图像的每一行像素和每一列像素都描述成一个关于灰度值的函数,那么图像的边缘对应在灰度值函数中是函数值突然变大的…...

爬虫利器 Beautiful Soup 之遍历文档

Beautiful Soup 简介 Beautiful Soup 是一个可以从 HTML 或 XML 文件中提取数据的 Python 库,它提供了一些简单的操作方式来帮助你处理文档导航,查找,修改文档等繁琐的工作。因为使用简单,所以 Beautiful Soup 会帮你节省不少的工…...

12、Nginx高级之高级模块(secure_link/secure_link_md5)

一、功能 防盗链; ngx_http_secure_link_module模块用于检查所请求链接的真实性,保护资源免受未经授权的访问,并限制链接寿命。 该模块提供两种可选的操作模式。 第一种模式由 secure_link_secret 指令启用,用于检查所请求链接的真…...

【python】数据可视化,使用pandas.merge()对dataframe和geopandas类型数据进行数据对齐

目录 0.环境 1.适用场景 2.pandas.merge()函数详细介绍 3.名词解释“数据对齐”(来自chatGPT3.5) 4.本文将给出两种数据对齐的例子 1)dataframe类型数据和dataframe类型数据对齐(对齐NAME列); 数据对…...

大模型入门(三)—— 大模型的训练方法

参考hugging face的文档介绍:https://huggingface.co/docs/transformers/perf_train_gpu_many#naive-model-parallelism-vertical-and-pipeline-parallelism,以下介绍聚焦在pytorch的实现上。 随着现在的模型越来越大,训练数据越来越多时&…...

人机交互学习-4 交互设计过程

交互设计过程 交互设计过程基本活动关键特征 设计过程中的问题如何选取用户?如何明确需求?如何提出候选方案?如何在候选方案中选择? 交互设计生命周期模型星型生命周期模型可用性工程生命周期模型 交互设计过程管理界面设计的4个支…...

大话Stable-Diffusion-Webui之kohya-ss主题更改

文章目录 kohya-sskohya-ss主题更改添加背景图片更改组件样式自定义主题规范更改主题的另一种方式kohya-ss kohya-ss是一个专门用于训练Dreambooth、LoRA等小模型的项目,本身没有GUI界面,需要通过python命令去调用使用,这对于不懂python的同学来说门槛稍微有点高,于是有人…...

搜索在计算机中的地位十分重要

无论是在内部系统还是在外部的互联网站上,都少不了检索系统。数据是为了用户而服务。计算机在采集数据,处理数据,存储数据之后,各种客户端的操作pc机或者是移动嵌入式设备都可以很好的获取数据,得到 想要的数据服务。 …...

多模态深度学习:定义、示例、应用

人类使用五种感官来体验和解读周围的世界。我们的五种感官从五个不同的来源和五种不同的方式捕捉信息。模态是指某事发生、经历或捕捉的方式。 人脑由可以同时处理多种模式的神经网络组成。想象一下进行对话——您大脑的神经网络处理多模式输入(音频、视觉、文本、…...

基于ZCU106平台部署Vitis AI 1.2/2.5开发套件【Vivado+Vitis+Petalinux2020/2022】

Vitis AI是 Xilinx 的开发平台,适用于在 Xilinx 硬件平台(包括边缘设备和 Alveo 卡)上进行人工智能算法推理部署。它由优化的IP、工具、库、模型和示例设计组成。Vitis AI以高效易用为设计理念,可在 Xilinx FPGA 和 ACAP 上充分发…...

ChatGPT原理简介

承接上文GPT前2代版本简介 GPT3的基本思想 GPT2没有引起多大轰动,真正改变NLP格局的是第三代版本。 GPT3训练的数据包罗万象,上通天文下知地理,所以它会胡说八道,会说的贼离谱,比如让你穿越到唐代跟李白对诗,不在一…...

从0搭建Hyperledger Fabric2.5环境

Hyperledger Fabric 2.5环境搭建 一.Linux环境准备 # root登录 yum -y install git curl docker docker-compose tree yum -y install autoconf autotools-dev automake m4 perl yum -y install libtool autoreconf -ivf # 安装jq相关包 cd /opt git clone --recursive https…...

Rust每日一练(Leetday0026) 最小覆盖子串、组合、子集

目录 76. 最小覆盖子串 Minimum Window Substring 🌟🌟🌟 77. 组合 Combinations 🌟🌟 78. 子集 Subsets 🌟🌟 🌟 每日一练刷题专栏 🌟 Rust每日一练 专栏 Gola…...

c# 从零到精通-ArrayList-Hashtable的操作

c# 从零到精通-ArrayList-Hashtable的操作 1、ArrayList的操作 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Collections; namespace Test11 { class Program { static void Main(string[] args) { ArrayList list …...

pnpm带来了什么

首先 pnpm 和 npm yarn 一样是包管理工具,他解决了npm 和 yarn 存在的一些问题 npm3之前每个依赖都是一层嵌套一层的,每个依赖里都有node_modules 用来存放依赖所需的依赖包导致重复下载的依赖包很多,一层层嵌套,嵌套很深&#x…...

图像分类模型嵌入flask中开发PythonWeb项目

图像分类模型嵌入flask中开发PythonWeb项目 图像分类是一种常见的计算机视觉任务,它的目的是将输入的图像分配到预定义的类别中,如猫、狗、花等。图像分类模型是一种基于深度学习的模型,它可以利用大量的图像数据来学习图像的特征和类别之间…...

GIT安装教程(入门)

目录 前言 Git作者 官网 GIT优点 GIT缺点 为什么要使用 Git 下载以及安装步骤 一、官网下载 二、GIT安装步骤 1、安装get程序 2、许可声明 3、选择安装路径 4、选择git组件 5、创建菜单名称 6、 git文件默认编辑器 7、设置新存储库中初始分支的名称 8、调整Pa…...

全志V3S嵌入式驱动开发(触摸屏驱动)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 所谓的触摸屏,其实就是在普通的lcd屏幕之上,再加一层屏而已。这个屏是透明的,这样客户就可以看到下面lcd屏幕的…...

死信队列详解

什么是死信队列? 在消息队列中,执行异步任务时,通常是将消息生产者发布的消息存储在队列中,由消费者从队列中获取并处理这些消息。但是,在某些情况下,消息可能无法正常地被处理和消耗,例如&…...

我用ChatGPT写2023高考语文作文(五):北京卷I

2023年 北京卷 I 适用地区:北京 “续航”一词,原指连续航行,今天在使用中被赋予了新的含义,如为青春续航、科技为经济发展续航等。 请以“续航”为题目,写一篇议论文。 要求:论点明确,论据充实&…...

《微服务实战》 第二十八章 分布式锁框架-Redisson

前言 Redisson 在基于 NIO 的 Netty 框架上,充分的利⽤了 Redis 键值数据库提供的⼀系列优势,在Java 实⽤⼯具包中常⽤接⼝的基础上,为使⽤者提供了⼀系列具有分布式特性的常⽤⼯具类。使得原本作为协调单机多线程并发程序的⼯具包获得了协调…...

局部搜索,变邻域搜索算法

目录 局部搜索 02 变邻域搜索算法 局部搜索 1.1 局部搜索是什么玩意儿? 官方一点:局部搜索是解决优化问题的一种启发式算法。对于某些计算起来非常复杂的优化问题,比如各种NP-难问题,要找到最优解需要的时间随问题规模呈指数增长,因此诞生了各种启发式算法来退而求其次…...

软件工程实训——第一天

第一天 前后分离 前端:android 后端:springbootmbatis-plus 高心星 软件工程的思维来开发项目 问题定义 可行性研究 需求分析 概要设计 详细设计 编码 测试 维护 需求分析 1.用户的信息管理 2.新增支出 3.新增收入 4.支出统计 5.收入…...

嵌入式C语言中if/else如何优化详解

观点一(灵剑): 前期迭代懒得优化,来一个需求,加一个if,久而久之,就串成了一座金字塔。 当代码已经复杂到难以维护的程度之后,只能狠下心重构优化。那,有什么方案可以优雅…...

【LSTM】读取时间序列数据 | 时间序列数据的小批量划分方法

由于序列数据本质上是连续的,因此我们在处理数据时需要解决这个问题。当序列过长而不能被模型一次性全部处理时,我们希望能拆分这样的序列以便模型方便读取。 Q:怎样随机生成一个具有n个时间步的mini batch的特征和标签? A&…...

K8s in Action 阅读笔记——【12】Securing the Kubernetes API server

K8s in Action 阅读笔记——【12】Securing the Kubernetes API server 12.1 Understanding authentication 在上一章中,我们提到API服务器可以配置一个或多个认证插件(授权插件也是同样的情况)。当API服务器接收到一个请求时,它…...

爆肝整理,3个月从功能进阶自动化测试,一跃成测试卷王...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 首先先了解自动化…...

人生这场概率游戏,怎么玩

只会标准答案,是不可救药的愚蠢 那么为了便于理解,我用一些典型的案例来讲解,什么是概率游戏,以及这个游戏,应该怎么玩。 比如典型的相亲,婚恋。人生大事,用标准答案来说,你的意中人…...

app模板/海淀区seo全面优化

一、timeit包(上接连载9)1.我们对于timeit函数,可采取如下例子:h def doTt(num1):for i in range(num1):print(i)t6 timeit.timeit("doTt(2)",setuph,number3)print(t6)释义:setup负责把环境变量准备好,实际上相当于在…...

优化网站搜索排名/百度大搜推广开户

目录一、互联网连接(需要联网)二、根据图片地址在app内加载一张图片一、互联网连接(需要联网) 代码 Button btn(Button) findViewById(R.id.button1);btn.setOnClickListener(new OnClickListener( ) {public void onClick(View…...

英文 科技网站/免费百度下载

路线:xx.pth -> xx.onnx -> xx.trt 实验版本:torch 1.10.0;tensorrt 7.2.3.4; onnx 1.8.1 1. pth2onnx.py # 将pytorch训练的模型xx.pth转为xx.onnx。 import torch from model import resnet50 # 导入模型结构 impo…...

wordpress制作xml/专业黑帽seo

C#与Javascript变量、函数之间的相互调用 问:1.如何在JavaScript访问C#函数?2.如何在JavaScript访问C#变量?3.如何在C#中访问JavaScript的已有变量?4.如何在C#中访问JavaScript函数?问题1答案如下:javaScript函数中执行C#代码中的函数:方…...

网站建设对数据库有何要求/如何做好网络营销

一、概述 taskdef是Ant内置任务,用于将任务定义添加到当前project中, 以便可以在当前project中使用此任务。taskdef是一种将adapter和adaptto属性分别设置为org.apache.tools.ant.TaskAdapter和org.apache.tools.ant.Task的typedef。typedef的特性同样适用于taskdef…...

河南省建设信息管理协会/seog

ORACLE下删除当前用户下所有对象的SQLSql代码--删除某个用户下的对象set heading off;set feedback off;spool c:\dropobj.sql;prompt --Drop constraintselect alter table ||table_name|| drop constraint ||constraint_name|| ; from user_constraints where constraint_typ…...