[杂学笔记]OSI七层模型作用、HTTP协议中的各种方法、HTTP的头部字段、TLS握手、指针与引用的使用场景、零拷贝技术
1.OSI七层模型作用
- 物理层:负责光电信号的传输,以及将光电信号转化为二进制数据
- 数据链路层:主要负责将收到的二进制数据进一步的封装为数据帧报文。同时因为数据在网络中传递的时候,每一个主机都能够收到报文数据,该层的MAC地址就阻止了并非传递给本主机的数据进一步向上交付。
- 网络层:主要负责地址管理和路由选择,通过IP地址和内部维护的路由表,可以将数据传输到指定的目标主机上。一个报文在网络中并非是直达目标主机的,中间会经历无数个路由器设备,那么如何知道报文该走哪一条路线呢?就是网络层完成的工作了。
- 传输层:主要负责两个主机进程的数据传输工作,确保数据可以以用户想要的方式进行传输。如果想要可靠的传输就采用TCP协议传输,如果想追求效率和实时性等就使用UDP协议进行网络传输。
- 会话层:负责管理不同主机之间的连接。一个主机同一时间会和多个主机进行网络通信,那么就需要将这些连接管理起来。
- 表示层:负责字符流数据的序列化和发序列化处理。
- 应用层:负责实现网络服务的功能。对于服务器来说,就需要实现对客户端发送请求的解析工作,并对不同请求提供不同的服务,对于客户端来说,就需要有发送请求和解析响应数据的能力了。这些都是在应用层实现的。
对于上三层主要的作用就是实现网络服务的,下面四层主要是负责两个主机之间的数据传递工作。
2.HTTP协议中的各种方法
- GET:用于从服务器获取资源。他的请求参数会附加在URL后面,以键值对的形式存在。
- POST:用于向服务器提交数据,通常服务器接收之后,会创建相应的实体,例如在数据库表中添加一条数据。他的请求参数会放在请求正文中。
- PUT:用于向服务器上传指定的资源,通常用于更新已经存在的资源。通常是整体性的更新。
- DELETE:用于请求服务器删除指定的资源。
3.HTTP的头部字段
- 请求报文:请求行 + 属性字段。请求行分为:方法、url以及HTTP协议版本。
- 响应报文:状态行 + 属性字段。状态行分为:HTTP协议版本、响应码以及响应码解释字段。
4.TLS握手
TLS握手就是HTTPS进行密钥协商的一个过程。HTTPS协议加密采用的是非对称加密、CA认证进行密钥协商,以及对称加密的方式进行数据加密。首先服务端会先生成一对非对称密钥,然后将公钥和一些域名、申请者等相关信息生成.csr文件之后,向CA机构申请证书,CA机构认证后,会将证书内置给服务端。
当有客户端想要进行连接的时候,服务端会先将带有公钥的CA认证证书发给客户端,客户端会使用CA机构的公钥解密签名,并将数据指纹与明文信息进行对比操作,防止中间人篡改公钥。之后生成一个对称密钥,并使用公钥进行加密操作,传递给服务器,服务器使用私钥进行解密,就完成了TLS握手的操作。
5.指针和引用的使用场景
指针就是一个地址,他内部存放了区域的起始地址。可以用于接收动态分配的内存,在处理字符串和数组的时候,可以使用指针的算术运算,快速的定位元素,在创建数据结构的时候尤其是树和链表结构会大量的使用指针。对于引用来说底层的原理也是一个指针,只不过上层看起来是一个变量的别名,可以起到简化代码的操作。两者在传参和函数返回值的场景下,可以减少数据的拷贝工作。
6.零拷贝技术
介绍
零拷贝技术是一种高效的数据传输技术,其核心目标就是减少在计算机系统在传输数据时的拷贝次数,从而降低CPU的使用率,提供数据传输效率,提供系统的性能。
例如在从磁盘中读取数据并通过网络发送的过程当中就涉及到至少四次的拷贝。第一次拷贝:操作系统将数据从磁盘读取到内核空间的缓冲区。第二次拷贝:将数据从内核空间缓冲区拷贝到用户空间的应用程序缓冲区。第三次拷贝:应用程序处理完数据后,将数据从用户空间缓冲区拷贝回内核空间的套接字缓冲区。第四次拷贝:最后将数据从套接字缓冲区拷贝到网卡设备,通过网络发送出去。
同时,在用户空间和内核空间之间的切换也会带来额外的开销,这种多次拷贝和上下文切换会消耗大量的 CPU 资源,降低系统的整体性能。
实现方式以及原理
- 内存映射:使用mmap系统调用接口,可以将磁盘文件映射到用户虚拟地址空间当中,这样用户空间和内核空间可以共享一块物理内存。所以程序也可以直接访问这块内存,避免了数据从内核空间到用户空间的一次拷贝。否则的话,需要进行系统调用,进行文件的读取,然后层层拷贝到用户缓冲区,这样的话就涉及到了操作系统的参与,就需要进行内核态与用户态的转化操作了。
- sendfile接口:允许内核直接将数据从磁盘文件传输到网络套接字文件中,无需将数据拷贝到用户空间了。相当于在内核空间完成数据的读取和发送。减少了两次拷贝。
- 分散/聚集I/O操作:在用户层创建多个缓冲区,并允许内核一次将数据从多个缓冲区的数据聚集在一起发送,相当于将多次拷贝转化为了一次拷贝操作。或者将数据一次拷贝分散到多个缓冲区当中。
相关文章:
[杂学笔记]OSI七层模型作用、HTTP协议中的各种方法、HTTP的头部字段、TLS握手、指针与引用的使用场景、零拷贝技术
1.OSI七层模型作用 物理层:负责光电信号的传输,以及将光电信号转化为二进制数据数据链路层:主要负责将收到的二进制数据进一步的封装为数据帧报文。同时因为数据在网络中传递的时候,每一个主机都能够收到报文数据,该层…...
Framework层JNI侧Binder
目录 一,Binder JNI在整个系统的位置 1.1 小结 二,代码分析 2.1 BBinder创建 2.2 Bpinder是在查找服务时候创建的 2.3 JNI实现 2.4 JNI层android_os_BinderProxy_transact 2.5 BPProxy实现 2)调用IPCThreadState发送数据到Binder驱动…...
Windows 图形显示驱动开发-WDDM 3.2-自动显示切换(九)
面板驱动程序 显示器驱动程序是根据从 EDID 生成的即插即用 (PnP) 硬件 ID 加载的。 由于 EDID 保持不变,当任何一个 GPU 控制内部面板时,都会加载面板驱动程序。 这两个驱动程序将显示相同的亮度功能。 因此,加载应该不会造成任何问题&…...
Excel大文件拆分
import pandas as pddef split_excel_file(input_file, output_prefix, num_parts10):# 读取Excel文件df pd.read_excel(input_file)# 计算每部分的行数total_rows len(df)rows_per_part total_rows // num_partsremaining_rows total_rows % num_partsstart_row 0for i i…...
OpenCV计算摄影学(7)HDR成像之多帧图像对齐的类cv::AlignMTB
操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 该算法将图像转换为中值阈值位图(Median Threshold Bitmap,MTB): 1.位图生成:…...
JWT+redis实现三大令牌管理方案深度解析
三种令牌管理方案对比与评估 1. 仅续期Redis(不生成新令牌) 实现原理 通过延长Redis中的令牌有效期维持会话,JWT本身不包含动态过期时间。 优点 ✅ 低开销:无需生成新令牌,减少JWT签名计算成本。 ✅ 简单实现&#x…...
北京大学DeepSeek提示词工程与落地场景(PDF无套路免费下载)
近年来,大模型技术飞速发展,但许多用户发现:即使使用同一款 AI 工具,效果也可能天差地别——有人能用 AI 快速生成精准方案,有人却只能得到笼统回答。这背后的关键差异,在于提示词工程的应用能力。 北京大…...
Axure PR 9 中继器 03 翻页控制
大家好,我是大明同学。 接着上期的内容,这期内容,我们来了解一下Axure中继器图表翻页控制。 预览地址:https://pvie5g.axshare.com 翻页控制 1.打开上期RP 文件,在元件库中拖入一个矩形,宽值根据业务实际…...
IO流(师从韩顺平)
文章目录 文件什么是文件文件流 常用的文件操作创建文件对象相关构造器和方法应用案例 获取文件的相关信息应用案例 目录的操作和文件删除应用案例 IO 流原理及流的分类Java IO 流原理IO流的分类 IO 流体系图-常用的类IO 流体系图(重要!!&…...
基于Javase的停车场收费管理系统
基于Javase的停车场收费管理系统 停车场管理系统开发文档 项目概述 1.1 项目背景 随着现代化城市的不断发展,车辆数量不断增加,停车难问题也日益突出。为了更好地管理停车场资 源,提升停车效率,需要一个基于Java SE的停车场管理…...
Exoplayer(MediaX)实现音频变调和变速播放
在K歌或录音类应用中变调是个常见需求,比如需要播出萝莉音/大叔音等。变速播放在影视播放类应用中普遍存在,在传统播放器Mediaplayer中这两个功能都比较难以实现,特别在低版本SDK中,而Exoplayer作为google官方推出的Mediaplayer替…...
Spring Boot集成Jetty、Tomcat或Undertow及支持HTTP/2协议
目录 一、常用Web服务器 1、Tomcat 2、Jetty 3、Undertow 二、什么是HTTP/2协议 1、定义 2、特性 3、优点 4、与HTTP/1.1的区别 三、集成Web服务器并开启HTTP/2协议 1、生成证书 2、新建springboot项目 3、集成Web服务器 3.1 集成Tomcat 3.2 集成Jetty 3.3 集成…...
《Python实战进阶》专栏 No 5:GraphQL vs RESTful API 对比与实现
《Python实战进阶》专栏包括68集,每一集聚焦一个中高级技术知识点,涵盖Python在Web开发、数据处理、自动化、机器学习、并发编程等领域的应用,系统梳理Python开发者的知识集。本集的主题为: No4 : GraphQL vs RESTful API 对比与实…...
类和对象——static修饰类的成员
static修饰类的成员 static成员1 static成员的概念2 特性 static成员 有时会有这样的需求:计算程序中创建出了多少个类的对象,以及多少个正在使用的对象。 因为构造函数和析构函数都只会调用一次,所以可以通过设置生命周期和main函数一致的…...
RabbitMQ系列(七)基本概念之Channel
RabbitMQ 中的 Channel(信道) 是客户端与 RabbitMQ 服务器通信的虚拟会话通道,其核心作用在于优化资源利用并提升消息处理效率。以下是其核心机制与功能的详细解析: 一、Channel 的核心定义 虚拟通信链路 Channel 是建立在 TCP 连…...
你对 Spring Cloud 的理解
Spring Cloud 是一个基于 Spring Boot 的微服务架构开发工具集,为开发者提供了快速构建分布式系统的一系列解决方案,涵盖了服务发现、配置管理、熔断器、智能路由、微代理、控制总线等多个方面。 从核心组件来看: 服务发现:以 Eu…...
MYSQL 5.7数据库,关于1067报错 invalid default value for,解决方法!
???作者: 米罗学长 ???个人简介:混迹java圈十余年,精通Java、小程序、数据库等。 ???各类成品java毕设 。javaweb,ssm,springboot,mysql等项目,源码丰富,欢迎咨询。 ???…...
C# Enumerable类 之 数据筛选
总目录 前言 在 C# 中,System.Linq.Enumerable 类是 LINQ(Language Integrated Query)的核心组成部分,它提供了一系列静态方法,用于操作实现了 IEnumerable 接口的集合。通过这些方法,我们可以轻松地对集合…...
运维基础知识(一)
一:SSH端口 首先SSH是什么? SSH(Secure Shell)是Linux、Unix、Mac及其他网络设备最常用的远程CLI管理协议,SSH使用秘钥对数据进行加密,保证了远程管理数据的安全性。 Secure Shell (SSH) 是一种网络协议,允许用户通过加密的通道安全地访问另一台计算机。SSH广泛用于远程…...
权重生成图像
简介 前面提到的许多生成模型都有保存了生成器的权重,本章主要介绍如何使用训练好的权重文件通过生成器生成图像。 但是如何使用权重生成图像呢? 一、参数配置 ima_size 为图像尺寸,这个需要跟你模型训练的时候resize的时候一样。 latent_dim为噪声维度,一般的设置都是…...
【Linux基础】Linux下的C编程指南
目录 一、前言 二、Vim的使用 2.1 普通模式 2.2 插入模式 2.3 命令行模式 2.4 可视模式 三、GCC编译器 3.1 预处理阶段 3.2 编译阶段 3.3 汇编阶段 3.4 链接阶段 3.5 静态库和动态库 四、Gdb调试器 五、总结 一、前言 在Linux环境下使用C语言进行编程是一项基础且…...
DeepSeek-OpenSourceWeek-第四天-Optimized Parallelism Strategies
DeepSeek 在 #OpenSourceWeek(开源周) 的第四天推出了两项新工具,旨在让深度学习更快、更高效:**DualPipe** 和 **EPLB**。 DualPipe 定义:DualPipe 是一种用于 V3/R1 训练中计算与通信重叠的双向pipline并行算法。 作用:它通过实现前向和后向计算-通信阶段的完全重叠,减…...
Python Cookbook-2.15 用类文件对象适配真实文件对象
任务 需要传递一个类似文件的对象(比如,调用urllib.urlopen 返回的结果)给一个函数或者方法,但这个函数或方法要求只接受真实的文件对象(比如,像marshalload 这样的函数)。 解决方案 为了过类型检查这一关,我们需要将类文件对象…...
浅谈HTTP及HTTPS协议
1.什么是HTTP? HTTP全称是超文本传输协议,是一种基于TCP协议的应用非常广泛的应用层协议。 1.1常见应用场景 一.浏览器与服务器之间的交互。 二.手机和服务器之间通信。 三。多个服务器之间的通信。 2.HTTP请求详解 2.1请求报文格式 我们首先看一下…...
Pytest自定义测试用例执行顺序
文章目录 1.前言2.pytest默认执行顺序3.pytest自定义执行顺序 1.前言 在pytest中,我们可能需要自定义测试用例的执行顺序,例如登陆前需要先注册,这个时候就需要先执行注册的测试用例再执行登录的测试用例。 本文主要讲解pytest的默认执行顺序…...
人大金仓KCA | 用户与角色
人大金仓KCA | 用户与角色 一、知识预备1. 用户和角色 二、具体实施1. 用户管理-命令行1.1 创建和修改用户1.2 修改用户密码1.3 修改用户的并发连接数1.4 修改用户的密码有效期 2.用户管理-EasyKStudio2.1 创建和修改用户2.2 修改用户密码2.3 修改用户的并发连接数2.4 修改用户…...
【Azure 架构师学习笔记】- Azure Databricks (12) -- Medallion Architecture简介
本文属于【Azure 架构师学习笔记】系列。 本文属于【Azure Databricks】系列。 接上文 【Azure 架构师学习笔记】- Azure Databricks (11) – UC搭建 前言 使用ADB 或者数据湖,基本上绕不开一个架构“Medallion”, 它使得数据管理更为简单有效。ADB 通过…...
什么是Ollama?什么是GGUF?二者之间有什么关系?
一、Ollama:本地化大模型运行框架 Ollama 是一款开源工具,专注于在本地环境中快速部署和运行大型语言模型(LLM)。它通过极简的命令行操作简化了模型管理流程,支持离线运行、多模型并行、私有化部署等场景。 核心特性 本地化运行:无需依赖云端API,用户可在个人电脑或服务…...
智能证件照处理器(深度学习)
功能说明:支持常见证件照尺寸(一寸、二寸、护照等) 智能背景去除(使用深度学习模型)自定义背景颜色选择自动调整尺寸并保持比例实时预览处理效果注意:整合rembg进行抠图,使用Pillow处理图像缩放和背景替换,定义常见证件照尺寸,并提供用户交互选项。首次运行时会自动下…...
【软考】【2025年系统分析师拿证之路】【啃书】第十五章 系统运行与维护(十六)
目录 运维技术指标系统运行管理系统用户管理网络资源管理软件资源管理 系统故障管理软件系统维护系统评价遗留系统处理遗留系统的评价遗留系统的演化 新旧系统转换数据转换和迁移 现有系统演进 运维技术指标 平均故障修复时间(MTTR)平均应答时间&#x…...
