当前位置: 首页 > 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协议。

http://www.lryc.cn/news/93594.html

相关文章:

  • 新买的电脑怎么用U盘重装系统?新买的电脑用U盘重装系统教程
  • 图像边缘检测原理
  • 爬虫利器 Beautiful Soup 之遍历文档
  • 12、Nginx高级之高级模块(secure_link/secure_link_md5)
  • 【python】数据可视化,使用pandas.merge()对dataframe和geopandas类型数据进行数据对齐
  • 大模型入门(三)—— 大模型的训练方法
  • 人机交互学习-4 交互设计过程
  • 大话Stable-Diffusion-Webui之kohya-ss主题更改
  • 搜索在计算机中的地位十分重要
  • 多模态深度学习:定义、示例、应用
  • 基于ZCU106平台部署Vitis AI 1.2/2.5开发套件【Vivado+Vitis+Petalinux2020/2022】
  • ChatGPT原理简介
  • 从0搭建Hyperledger Fabric2.5环境
  • Rust每日一练(Leetday0026) 最小覆盖子串、组合、子集
  • c# 从零到精通-ArrayList-Hashtable的操作
  • pnpm带来了什么
  • 图像分类模型嵌入flask中开发PythonWeb项目
  • GIT安装教程(入门)
  • 全志V3S嵌入式驱动开发(触摸屏驱动)
  • 死信队列详解
  • 我用ChatGPT写2023高考语文作文(五):北京卷I
  • 《微服务实战》 第二十八章 分布式锁框架-Redisson
  • 局部搜索,变邻域搜索算法
  • 软件工程实训——第一天
  • 嵌入式C语言中if/else如何优化详解
  • 【LSTM】读取时间序列数据 | 时间序列数据的小批量划分方法
  • K8s in Action 阅读笔记——【12】Securing the Kubernetes API server
  • 爆肝整理,3个月从功能进阶自动化测试,一跃成测试卷王...
  • 人生这场概率游戏,怎么玩
  • Redis笔记