[杂学笔记]OSI七层模型作用、HTTP协议中的各种方法、HTTP的头部字段、TLS握手、指针与引用的使用场景、零拷贝技术

news/2025/2/26 9:02:17

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操作:在用户层创建多个缓冲区,并允许内核一次将数据从多个缓冲区的数据聚集在一起发送,相当于将多次拷贝转化为了一次拷贝操作。或者将数据一次拷贝分散到多个缓冲区当中。


http://www.niftyadmin.cn/n/5868438.html

相关文章

安宝特科技 | Vuzix Z100智能眼镜+AugmentOS:重新定义AI可穿戴设备的未来——从操作系统到硬件生态,如何掀起无感智能革命?

一、AugmentOS:AI可穿戴的“操作系统革命” 2025年2月3日,Vuzix与AI人机交互团队Mentra联合推出的AugmentOS,被业内视为智能眼镜领域的“iOS时刻”。这款全球首个专为智能眼镜设计的通用操作系统,通过三大突破重新定义了AI可穿戴…

使用内置命令查看笔记本电池健康状态

如何使用powercfg /batteryreport命令查看笔记本电池健康状态 在Windows系统中,了解笔记本电池的健康状态对于维护电脑性能和预测电池寿命至关重要。Windows 10和Windows 11系统提供了一个内置命令powercfg /batteryreport,可以生成一份详细的电池使用情…

计算机网络:应用层 —— 电子邮件

文章目录 电子邮件的起源与发展电子邮件的组成电子邮件协议邮件发送和接收过程邮件发送协议SMTP协议多用途因特网邮件扩展MIME 电子邮件的信息格式 邮件读取协议邮局协议POP因特网邮件访问协议IMAP 基于万维网的电子邮件 电子邮件(E-mail)是因特网上最早…

SSL/TLS 协议、SSL证书 和 SSH协议 的区别和联系

下面是 SSL/TLS 协议、SSL证书 和 SSH协议 的区别和联系,包含它们的英文全称和中文全称: 属性SSL/TLS 协议SSL证书SSH 协议英文全称Secure Sockets Layer / Transport Layer SecuritySecure Sockets Layer CertificateSecure Shell Protocol中文全称安全…

UE5 Computer Shader学习笔记

首先这里是绑定.usf文件的路径,并声明是用声明着色器 上面就是对应的usf文件路径,在第一张图进行链接 Shader Frequency 的作用 Shader Frequency 是 Unreal Engine 中用于描述着色器类型和其执行阶段的分类。常见的 Shader Frequency 包括&#xff1a…

Spring 原始注解详解与实战指南

📝 1. 前言 在 Spring 框架的发展过程中,注解的引入大大简化了配置,提升了开发效率 本文将详细介绍 Spring 最初引入的核心注解,包括 Component、Controller、Service、Repository、Autowired、Qualifier 和 Value 等,…

面试之《react近几个版本的更新要点》

React 16.x 系列 React 16.0 Fiber 架构:引入了全新的 Fiber 协调器,解决了旧版同步渲染长时间阻塞主线程的问题,实现了异步可中断渲染、优先级调度、时间分片等特性,大大提升了大型应用的性能和响应能力。 新的错误边界&#x…

【愚公系列】《Python网络爬虫从入门到精通》033-DataFrame的数据排序

标题详情作者简介愚公搬代码头衔华为云特约编辑,华为云云享专家,华为开发者专家,华为产品云测专家,CSDN博客专家,CSDN商业化专家,阿里云专家博主,阿里云签约作者,腾讯云优秀博主,腾讯云内容共创官,掘金优秀博主,亚马逊技领云博主,51CTO博客专家等。近期荣誉2022年度…