文章目录

  • 一、应用层概述
    • 1.1、C/S架构
    • 1.2、P2P架构
  • 二、动态主机配置协议DHCP
    • 2.1、DHCP发现报文
    • 2.2、DHCP提供报文
    • 2.3、DHCP请求报文
    • 2.4、DHCP确认报文
    • 2.5、DHCP的续约与终止
  • 总结


一、应用层概述

  应用层位于计算机网络结构的最上层,用于解决应用进程的交互以实现特定网络应用的问题。万维网WWW,域名系统DNS,
动态主机配置协议DHCP,电子邮件,文件传送FTP和P2P文件共享,多媒体网络应用,都是属于应用层的范畴。在这里插入图片描述
  目前应用层流行的两种架构:C/S和P2P。

1.1、C/S架构

  C/S架构的全称是服务器/客户端架构,即将网络中的应用划分为两大类,一类是服务器,一类是客户端。客户端向服务器请求,服务器给予客户端响应。
  服务端具有固定的IP和端口,并且应该长期处于运行状态。C/S架构是服务集中型的,体现在一台服务器要接受N个客户端的请求并处理,客户端必须知道服务器的地址,而服务器不关心客户端的地址。
在这里插入图片描述

1.2、P2P架构

  相比较于C/S架构,P2P架构中的每一个应用是对等的,体现在每个应用既有可能是服务方,也有可能是客户方。例如E从D下载文件,同时F又从E下载文件。
  系统增加对等方,不会造成资源的紧张,因为增加一个服务请求者的同时,也是增加了一个服务的提供者。
在这里插入图片描述

二、动态主机配置协议DHCP

  在网络中,用户主机如果需要访问Web服务器,需要进行IP地址,子网掩码,默认网关,DNS服务器地址等一系列的设置。如果手动地去配置,在现有的网络规模中是不现实的。
  解决手动配置的问题,可以引入DHCP服务器。在其中设置好其他主机的配置信息,网络中的各个主机启动后访问DHCP服务器,向服务器请求自己的配置信息,而不用手动配置。
在这里插入图片描述

  DHCP服务进程,运行在DHCP服务器上。DHCP客户进程,运行在用户主机上。为了简化,本笔记中后续的DHCP服务进程DHCP客户进程,都简称为客户进程和服务进程,DHCP服务器用户主机,都简称为服务和客户。
  DHCP是应用层的协议,使用的是运输层的UDP协议作为支持,在运输层会被封装为UDP数据报,服务使用的端口是67,客户使用的端口是68

2.1、DHCP发现报文

  客户广播发送DHCP发现报文,源IP地址为0.0.0.0。因为目前用户主机还没有被分配IP地址。目标地址为255.255.255.255。因为目前主机并不知道网络中有哪些具体的服务
  网络中的所有设备都会收到该IP数据报。并对其层层解封出有DHCP发送报文的UDP数据报:

  • 如果是其他客户进程监听到了,丢弃该报文,因为客户进程没有监听67端口。
  • 如果是服务进程监听到了,会接受该报文,并作出响应。

  DHCP发现报文中,还带有事务ID和客户的MAC地址。
在这里插入图片描述

2.2、DHCP提供报文

  服务接收到报文后,根据其中封装的客户的MAC地址,查找自己的数据库,查询是否有针对该MAC地址的配置信息。

  • 如果有,使用配置信息构建并发送DHCP提供报文。
  • 如果没有,就使用默认的配置信息构建并发送DHCP提供报文。

  然后发送DHCP提供报文,该报文的源IP地址为服务的地址,目标IP地址为广播地址。(因为此时客户还没有获取IP地址,为了使客户收到只能使用广播)
  同样地网络中的所有设备都会收到该IP数据报。并对其层层解封出有DHCP提供报文的UDP数据报。

  • 如果是其他客户进程监听到了,会接受该报文,并作出响应。
  • 如果是服务进程监听到了,会丢弃该报文,因为服务进程没有监听68端口。
      客户还会根据事务ID,判断该报文是否是自己发送的请求报文的响应,除了事务ID,DHCP提供报文还有其他信息:
    在这里插入图片描述
      客户如果收到了多个服务的响应报文,则会从其中选择一个。(通常选择先到达的。)并向选择的服务发送DHCP请求报文

2.3、DHCP请求报文

  源地址依旧是0.0.0.0,此时客户还不能使用服务DHCP提供报文中配置信息的IP地址,因为要再次向选择的服务发起确认。
在这里插入图片描述

这时客户不是已经知道具体选择了哪一台DHCP服务了吗,为什么还需要通过广播的方式?
此时的客户端无有效 IP,无法用单播发起定向通信,只能广播。这一点,RFC 2131 明确规定:客户端 在未完成 DHCP 过程前,不能单播通信。)(并且需要通知所有服务器,告诉所有 DHCP Server:我选定了谁,其他人请释放资源。有些网络拓扑中,中继或交换机需要广播才能正确处理

2.4、DHCP确认报文

  假设客户选择服务1作为自己的服务。并且服务1接受该请求,则服务1会向客户发送请求的DHCP确认报文,源IP地址为自身的IP,目的IP地址依旧是广播地址, 这时客户才可以使用租用的IP地址。
  如果客户通过ARP检测发现有占用的情况,客户就会给服务发送撤销报文,然后重新走DHCP发现报文的步骤:
在这里插入图片描述

2.5、DHCP的续约与终止

  当租用期限过了一半时客户会向服务发送DHCP请求报文,请求更新租用期。这时的源IP地址为客户租用到的IP地址,目的IP地址为服务IP地址。

  • 如果服务同意续约,则发送DHCP确认报文客户得到新的租用期。
  • 如果服务不同意续约,则发送DHCP否认报文客户立即停止租用该IP,走DHCP发现报文的步骤。
  • 如果服务不响应,则在0.85的租用期时间,客户发送DHCP请求报文
    • 租用期满,服务依旧不响应,客户立即停止租用该IP,走DHCP发现报文的步骤。

在这里插入图片描述
  并且客户可以随时停止DHCP的租用,需要发送DHCP释放报文
在这里插入图片描述
  服务给客户挑选IP地址时,使用ARP保证地址不被占用。客户在使用该IP之前,也会再次使用ARP进行检查

总结

在这里插入图片描述

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

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

相关文章

为服务器SSH登录增加2FA验证

安装NTP模块并设置时区 安装NTP模块 一般的服务器NTP服务默认是不安装的,需要安装NTP模块【7】并启用。 运行以下指令检查你的NTP模块是否已启用,已启用则忽略安装NTP模块的内容 timedatectl 如果你的返回内容和以下图片一样,则表示NTP未…

AI大模型提示词工程研究报告:长度与效果的辩证分析

一、核心问题:提示词长度与模型性能的平衡 核心矛盾:提示词长度增加 → 信息丰富度↑ & 准确性↑ ↔ 计算成本↑ & 响应延迟↑ 二、详细机制分析 (一)长提示词的优势(实证数据支持) 案例类型短提…

HttpServletResponse源码解析

Java Servlet API 中 HttpServletResponse 接口的源码,这是 Java Web 开发中非常核心的一个接口,用于向客户端(通常是浏览器)发送 HTTP 响应。 public interface HttpServletResponse extends ServletResponse {int SC_CONTINUE …

AI基础概念

目录 1、ASR和STT区别 2、流式输出 定义 原理 应用场景 优点 缺点 3、Ollama 4、mindspore和deepseek r1 v3 5、DeepSeek R1/V3 用的哪个底层AI框架 6、HAI-LLM比tensorflow、pytorch还强么 1. 核心优势对比 2. 性能表现 3. 适用场景 总结 7、openai用的什么底层…

ubuntu20.04速腾聚创airy驱动调试

1.下载相关资料 下载包括:速腾airy产品手册.pdf、RSView(用于显示激光雷达数据)、3d数模文件、 RS-LiDAR-16用户手册 以下链接进行下载 https://www.robosense.cn/resources 2.连接线路后通过Wireshark抓包后进行本地IP配置 2.1按照线路连…

Redis的大key和热key如何解决

文章目录 Redis大Key一、什么是Redis大Key二、大Key的产生原因三、大Key的影响四、大Key的解决方案1. 检测大Key2. 解决方案(1) 数据拆分(2) 使用压缩算法(3) 使用合适的数据结构(4) 设置合理的过期时间(5) 合理清理(6) 配置优化 五、预防措施总结 Redis热key一、热Key问题的本…

恒温晶振与温补晶振的区别

在电子设备领域,晶振如同精准的“心脏起搏器”,为电路提供稳定的时钟信号。恒温晶振(OCXO)和温补晶振(TCXO)作为两类重要的晶体振荡器,在不同的应用场景中发挥着关键作用,它们的区别…

基于SpringBoot的在线考试智能监控系统设计与实现

目录 一.🦁前言二.🦁开源代码与组件使用情况说明三.🦁核心功能1. ✅算法设计2. ✅Java开发语言3. ✅Vue.js框架4. ✅部署项目 四.🦁演示效果1. 管理员模块1.1 用户管理 2. 教师模块2.1 考试管理2.2 浏览试题列表2.3 添加试题2.4 成…

0基础学Python系列【16】自动化邮件发送的终极教程:Python库smtplib与email详解

大家好,欢迎来到Python学习的第二站!🎉 Python自带了一些超好用的模块,可以让你不必从头写代码就能实现很多功能。比如数学计算、文件操作、网络通信等。花姐会挑选常用的一些模块来讲解,确保你能在实际项目中用到。🎉 本章要学什么? 接下来花姐会深入浅出的讲解下面…

环卫车辆定位与监管:安心联车辆监控管理平台--科技赋能城市环境卫生管理

一、 引言 城市环境卫生是城市文明的重要标志,也是城市管理的重要内容。随着城市化进程的加快,环卫作业范围不断扩大,环卫车辆数量不断增加,传统的管理模式已难以满足现代化城市管理的需求。为提高环卫作业效率,加强环…

GIS 数据质检:验证 Geometry 有效性

前言 在GIS开发中,数据的几何有效性直接影响分析结果的准确性。无效的几何(如自相交、空洞或坐标错误)可能导致空间计算失败或输出偏差。无论是Shapefile、GeoJSON还是数据库中的空间数据,几何质检都是数据处理中不可忽视的关键步…

AI大模型学习之基础数学:高斯分布-AI大模型概率统计的基石

🧑 博主简介:CSDN博客专家、CSDN平台优质创作者,高级开发工程师,数学专业,10年以上C/C, C#, Java等多种编程语言开发经验,拥有高级工程师证书;擅长C/C、C#等开发语言,熟悉Java常用开…

HarmonyOS性能优化——耗时操作减少

耗时操作减少 在应用开发中,避免主线程执行冗余和耗时操作至关重要。这可以降低主线程负载,提升UI响应速度。 避免主线程冗余操作 冗余操作是不必要的、重复执行且对程序功能无实质性贡献的操作。这些操作浪费计算资源,降低程序运行效率&a…

emscripten 编译 wasm 版本的 openssl

搭建emscripten环境【参考:https://emscripten.org/docs/getting_started/downloads.html】 下载openssl解压复制到emsdk目录 依次执行下列命令: cd emsdk #激活emsdk source ./emsdk_env.shcd opensslemconfigure ./Configure linux-x32 -no-asm -sta…

uniapp 实战新闻页面(一)

新闻系统 一、 创建项目 创建个人中心 page.json 配置 tabar "tabBar": {"color":"#666","selectedColor": "#31C27C","list": [{"text": "首页","pagePath": "pages/inde…

JAVA锁机制:对象锁与类锁

JAVA锁机制:对象锁与类锁 在多线程编程中,合理使用锁机制是保证数据一致性和线程安全的关键。本文将通过示例详细讲解 Java 中的对象锁和类锁的原理、用法及区别。 一、未加锁的并发问题 先看一段未加锁的代码: public class Synchronize…

maxcomputer 和 hologres中的EXTERNAL TABLE 和 FOREIGN TABLE

在阿里云的大数据和实时数仓产品中,MaxCompute 和 Hologres 都支持类似于 EXTERNAL TABLE 和 FOREIGN TABLE 的机制,但它们的实现和语义有所不同。 下面分别说明: ☁️ 一、MaxCompute 中的 EXTERNAL TABLE 和 FOREIGN TABLE 1. EXTERNAL T…

稳定币:从支付工具到金融基础设施的技术演进与全球竞争新格局

引言:稳定币的崛起与金融体系重构 2025年6月,全球稳定币市值突破2500亿美元历史大关,单年链上交易额高达35万亿美元——这一数字已超越Visa和万事达卡交易总和。这一里程碑事件标志着稳定币已从加密货币市场的边缘实验,蜕变为重构…

用 HTML、CSS 和 jQuery 打造多页输入框验证功能

多页输入框验证功能总结:使用 HTML、CSS 和 jQuery 实现 一、多页表单验证的核心概念与应用场景 多页输入框验证是指将复杂表单拆分为多个页面或步骤,逐步引导用户完成输入,并在每一步对用户输入进行验证的功能。这种设计具有以下优势: 提升用户体验:避免长表单带来的心…

DeepSpeed 深度学习学习笔记:高效训练大型模型

主要参考官网文档,对于具体内容还需参考官方文档 1. 引言:为什么需要 DeepSpeed? 大型模型训练的挑战 随着深度学习模型规模的爆炸式增长(从 BERT 的几亿参数到 GPT-3 的千亿参数,再到现在的万亿参数模型&#xff09…