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

计算机网络复习

目录

1. 前言

2.五层模型

1.应用层

2 传输层

3.网络层

4. 数据链路层

​编辑5. 物理层

3.UDP/TCP协议

UDP协议

TCP协议

4. HTTP/HTTPS协议


1. 前言

  博主目前大四, 备战春招, 复习一下计网, 大家也可以看看我的文章. 共同学习, 如有不足之处欢迎指正.

2.五层模型

  在计网中, 有一个很重要的概念就是协议分层, 上层协议无需关注下层做了什么工作, 只需要调用下层提供的接口即可(一般在程序猿的视角里, 大部分调用的是应用层协议,来完成相对应的工作, 这层协议也是平时打交道最多的一层协议)

 下图是OSI七层网络模型, 是最初的大佬们设计出来的方案, 后面由于太过于复杂, 所以舍弃了这种设计, 把应用层, 表示层, 会话层合并为应用层. 

接下来, 我将从上到下给大家逐步介绍一下这些协议分别有什么作用,以及常见协议的特点. 并且用微信发送消息来举例, 描述一下各协议是如何工作的. 

1.应用层

常见协议: HTTP, HTTPS, WebSocket

应用层协议是平时程序员打交道最多的一层, 为应用程序之间的通信提供了规则, 它负责的是把数据进行封装成应用层数据包, 来发送给传输层, 用我们常见的微信发消息距离, 比如a要发送给b一个"你好", 应用层就会封装这个"你好" 成应用层数据包, 假如约定的格式如下: 

发送微信号; 接收方微信号; 发送时间;消息正文

11111; 22222; 2025-2-22 20:28:00; 你好

应用程序就会调用操作系统的api, 把这个数据包交给传输层, 至于传输层怎么做的, 应用层无需关心. 只需要调用api并发送过去即可

2 传输层

常见协议: TCP/UDP

TCP和UDP协议是两种常见的, 不同传输层协议

其中: TCP协议是可靠的, 有连接的, 面向字节流, 全双工的

         UDP协议是不可靠的, 无连接, 面向数据报, 全双工的

  传输层的主要职责是确保数据能够在网络中从源端传输到目的端,并且保证数据的完整性和可靠性。它提供了端到端的数据传输服务,并且对数据进行分段和重组,以适应不同网络环境的传输需求.

如果是TCP协议并且之前没有建立连接, 在这一层还需要做的工作就是通过三次握手建立连接.

此时这个微信消息在传输层这里, 会进行一次封装, 在这条数据前面加上报头

报头里面最主要存放的数据就是, 源端口号, 目的端口号

此时这个封装好的数据包就会继续调用网络层的api, 交给下层继续封装

3.网络层

常见协议: IP协议

  网络层的作用是, 通过目标IP地址,将数据从源主机经过多个网络和多段链路传输到目的主机,  在路由器的路由表中进行寻址, 和路由选择(会有一个字段,记录跳转了多少次路由器, Linux默认最大次数为64, windos默认最大为128, 如果超过64次还没有找到目标ip, 则把这个数据包丢失, 防止路由环路无法到达目的地, 并且消耗网络资源) ,并最终连接到目标IP对应的设备.

此时这个微信消息在网络层这里, 会进行一次封装, 在这条数据前面加上IP报头

这里也会包含一些辅助信息, 其中最关键的就是源IP地址和目标IP地址

构造完完整的IP数据包, 继续调用数据链路层的接口, 来完成下一层的传输

4. 数据链路层

 数据链路层协议: 以太网

以太网就是我们日常最常见的有线网络, 主要是交换机负责传输, 数据链路层主要负责的是mac地址寻址. 找到对应的mac设备

此时这个微信消息会被在这一层封装成帧, 确保数据能够传输下去 到达物理层

5. 物理层

物理层涉及到硬件设备, 提供了网络通信的硬件设施, 它的主要作用就说把数据链路层传来数据帧给转化为光信号/电信号

通过这样一系列操作, 最终可以把数据从家里发送出去

这时候如果到了接收方这里

假设接收方是b

1. b会把收到的光信号/电信号转化为数字信号(0和1) 得到一个以太网数据帧, 进一步把这个以太网数据帧较给数据链路层来处理

2. 数据链路层又会按照以太网数据帧的格式, 来解析出来, 取出载荷, 交给网络层

3.网络层按照IP协议格式进行解析, 取出载荷较给传输层

4.传输层按照UDP协议进行解析, 取出载荷交给应用层

5.到了应用层这里, 就会和对应的程序进行解析数据, 微信这个程序拿到这个数据以后, 就解析出然后弹出对方发送的消息. 发送时间, 然后显示到聊天窗口, 这些步骤其实就是把上述过程反过来, 称为分用.

3.UDP/TCP协议

UDP协议

UDP协议的数据报较为简单, 主要是8个字节的头部报头和载荷(最大为64kb)

其中报头部分包含 源端口, 目标端口, 数据长度, 校验和

由于数据长度采用两个字节来规定, 所以一个UDP数据报的最大就是65535个字节 - 64kb 无法更大了

而端口号也是16位的, 所以端口的取值范围是0-65535

校验和的目的主要是为了校验数据在传输过程中是否损坏, 如果损坏就丢掉, 避免将错就错

TCP协议

相比于UDP协议, TCP协议则更加的复杂, 为了保证可靠性, 牺牲了性能, 也做了很多的处理.

TCP协议的报头大小是20个字节

后面包含了选项(可选无或者有)

保留位(6) 方便后续扩展

标志位(6) TCP协议核心的部分

校验和(16位) 类似于UDP的校验和, 把报头和数据载荷放在一起计算校验和

序号和确认序号则是为了保证UDP协议的重要特性, 可靠传输

首先在发送数据的时候, 

  • 在 TCP 连接建立时,发送方会选择一个 初始序号,这是一个随机值(防止预测攻击)。

  • 每个 TCP 段的序号字段表示该段中 第一个字节的序号。

  • 例如,如果初始序号为 1000,且发送的数据长度为 100 字节,则下一个 TCP 段的序号为 1100

接收数据的一方

收到这个序号以后, 就会把这个序号+1 (确认序号) 发送给发送方

发送方再把这个+1后的确认序号数据, 放到发送方的序号里面发送过去, 来保证数据的可靠传输

TCP协议并没有对数据的大小做出限制, 理论上可以发送无限大的数据, 并且会自动带有分片,组合的功能, 所以如果大数据传输 且需要保证稳定性的话, 更推荐使用tcp协议

通过序号和确认序号, tcp可以在不可靠的网络中提供可靠的网络数据传输

这背后还有很多操作来兼顾可靠性和性能, 如超时重传, 滑动窗口, 拥塞控制, 延时应答, 捎带应答等

这里就不过多阐述了

4. HTTP/HTTPS协议

   HTTP协议又叫超文本 传输协议, 基于TCP协议的应用层协议, 如今被广泛使用, 最主要的应用场景就说网站, 游览器和服务器之间传输数据, 客户端(pc, 手机等)和服务器之间的数据传输, 也很可能是HTTP协议.

 客户端发送一个HTTP请求, 服务器回一个HTTP响应.  是典型的一问一答

而一个HTTP请求包含四个部分

分别为

1. 首行 方法/ url/ 版本号

分别是get, post等方法, 网站的url. 后面跟HTTP版本号

而在响应中 这一行是 版本号/ 状态码/ 状态码的描述

2. 请求头

属于key-value的键值对格式 里面包含了很多信息 如: 游览器类型等 cookie也存储在这里 还有host这种 请求的主机名

3. 空行 

请求头下面的空行, 可以作为请求头的结束标志

4. body 

HTTP的载荷部分

5.HTTPS

http属于明文传输, 不是很安全, 容易被黑客拦截到, 所以现在很多都在用https这种协议

https是基于http做的, 属于加密版本的http, 

至于加密的过程, 可以分为以下几点;

1. 引入对称加密

 将数据进行对称加密

 客户端和服务器使用同一个密钥, 不同的客户端要使用不同的密钥

2.引入非对称加密

 由于密钥非常重要, 而且如果密钥传输的过程中, 被黑客拿到了就很不安全, 所以密钥这一部分使用非对称加密确保密钥的安全性

完整的过程如下:

(1) 客户端连接上服务器以后, 从服务器拿到公钥(公开的 ,谁都可以拿到)

(2) 客户端生成对称密钥, 用公钥加密这个对称密钥 传输给服务器

(3) 服务器用私钥解密对称密钥出来 由于私钥只有服务器自己知道 , 所以相对安全

(4) 后续就可以使用对称加密的方法来进行加密传输数据了

即使是这样, 也存在着很大的安全漏洞

如果黑客使用中间人攻击, 即冒充服务器

此时, 客户端这边以为自己是在和服务器交流, 就用已经被黑客知道自己加密后的对称密钥来加密数据, 黑客自然知道你要发送什么数据, 然后在使用自己伪造客户端发送的对称密钥加密数据, 发送给服务器, 服务器的响应自然自己也都知道. 

黑客不需要关心服务器的公钥私钥是什么, 自己生成一对就行了, 生产公钥和私钥的算法是公开的, 服务器能生, 黑客也可以

黑客可以使用自己的私钥进行解密对称密钥, 拿到了key1

继续使用从服务器拿到的p1对key进行加密, 并且传输给服务器

 这种方式的攻击如何避免呢? 就要用到证书了, 一个证书的构成大概如下图所示: 

1 证书是一个结构化的数据 有很多属性

2 证书有一系列信息 如: 主机名, 公钥, 证书有效期, 公证机构信息, 证书的签名(公证机构使用自己的私钥对校验和进行加密, 就是签名了) 签名本质上就是一个经过加密的校验和

3 证书是搭建服务器的人, 从第三方公证机构申请

验证证书的过程:

 客户端拿到证书以后, 主要做两件事

1. 用一样的校验算法, 把证书的其他字段都算一遍 得到校验和1

2.用系统内置的公证机构公钥, 对证书的签名解密, 得到校验和2

对比一下 ,就可以判断是不是原版证书

  服务器的私钥和第三方公证机构的私钥都只有自己知道. 并且证书里的签名,  是证书里除了签名以外的所有数据(域名, 证书过期时间, 公证机构信息等)进行哈希计算后, 在用私钥进行加密后得到的.  有以下情况:

1. 如果黑客企图篡改公钥, 那么篡改后的证书到了客户端这里, 通过本地的哈希算法计算得到的校验和 与 签名通过公钥解密后得到的校验和并不一致, 所以行不通

2. 如果黑客企图篡改签名, 但是它并没有第三方公证机构的私钥, 所以也篡改不了

3. 如果黑客企图篡改公钥和签名, 用自己的私钥来构造签名, 那么到了用户这里, 通过公钥并不能解密出来这个签名, 自然也失败了

4. 如果黑客申请一个证书, 但是证书里包含了有域名, 客户端拿到了以后, 发现域名都不一致, 所以也行不通, 

所以基于以上的情况, 证书基本上能够杜绝中间人篡改数据.

相关文章:

计算机网络复习

目录 1. 前言 2.五层模型 1.应用层 2 传输层 3.网络层 4. 数据链路层 ​编辑5. 物理层 3.UDP/TCP协议 UDP协议 TCP协议 4. HTTP/HTTPS协议 1. 前言 博主目前大四, 备战春招, 复习一下计网, 大家也可以看看我的文章. 共同学习, 如有不足之处欢迎指正. 2.五层模型 在计…...

应用层的协议-http/https的状态码

1xx:表示临时响应,需要操作者继续操作 2xx:成功,操作被成功接受并处理 3xx:一般是重定向问题 4xx:客户端的问题 5xx:服务端的问题 1xx: 100: 表示服务器收到客户端的第一部分请…...

文字语音相互转换

目录 1.介绍 2.思路 3.安装python包 3.程序: 4.运行结果 1.介绍 当我们使用一些本地部署的语言模型的时候,往往只能进行文字对话,这一片博客教大家如何实现语音转文字和文字转语音,之后接入ollama的模型就能进行语音对话了。…...

C++之类型转换

目录 C语言中的类型转换 隐式类型转换 强制类型转换 C中的类型转换 static_cast reinterpret_cast const_cast dynamic_cast 本期我们将学习C中类型转换的相关知识点。 C语言中的类型转换 在C语言中,也有过类型转换的情景。 隐式类型转换 隐式类型转换…...

【WSL2】 Ubuntu20.04 GUI图形化界面 VcXsrv ROS noetic Vscode 主机代理 配置

【WSL2】 Ubuntu20.04 GUI图形化界面 VcXsrv ROS noetic Vscode 主机代理 配置 前言整体思路安装 WSL2Windows 环境升级为 WIN11 专业版启用window子系统及虚拟化 安装WSL2通过 Windows 命令提示符安装 WSL安装所需的 Linux 发行版(如 Ubuntu 20.04)查看…...

【数据库】【MySQL】索引

MySQL中索引的概念 索引(MySQL中也叫做"键(key)")是一种数据结构,用于存储引擎快速定找到记录。 简单来说,它类似于书籍的目录,通过索引可以快速找到对应的数据行,而无需…...

大语言模型(LLM)提示词(Prompt)高阶撰写指南

——结构化思维与工程化实践 一、LLM提示词设计的核心逻辑 1. 本质认知 LLM是「超强模式识别器概率生成器」,提示词的本质是构建数据分布约束,通过语义信号引导模型激活特定知识路径。优秀提示词需实现: 精准性:消除歧义&#…...

LabVIEW C编译支持工具库CCompileSupp.llb

路径:C:\Program Files (x86)\National Instruments\LabVIEW 2019\vi.lib\Platform\CCompileSupp.llb ​ 1. 工具库概述 定位:LabVIEW内置的C语言编译支持工具库,用于处理LabVIEW与C/C代码的混合编程接口,涵盖编译器配置、代码生成…...

【安装及调试旧版Chrome + 多版本环境测试全攻略】

👨💻 安装及调试旧版Chrome 多版本环境测试全攻略 🌐 (新手友好版 | 覆盖安装/运行/调试全流程) 🕰️ 【背景篇】为什么我们需要旧版浏览器测试? 🌍 🌐 浏览器世界的“…...

整数二分算法

例题: 给定一个按照升序排列的长度为 n 的整数数组,以及 q个查询。 对于每个查询,返回一个元素 k 的起始位置和终止位置(位置从 0开始计数)。 如果数组中不存在该元素,则返回 -1 -1。 输入格式 第一行…...

【java】this关键字

在 Java 中,this 是一个特殊的关键字,它代表当前对象的引用。简单来说,this 指向当前正在调用方法或构造函数的对象。this 关键字的主要作用是解决变量名冲突、访问当前对象的成员变量或方法,以及在构造函数中调用其他构造函数。 …...

LD_PRELOAD 绕过 disable_function 学习

借助这位师傅的文章来学习通过LD_PRELOAD来绕过disable_function的原理 【PHP绕过】LD_PRELOAD bypass disable_functions_phpid绕过-CSDN博客 感谢这位师傅的贡献 介绍 静态链接: (1)举个情景来帮助理解: 假设你要搬家&#x…...

计算机毕业设计Hadoop+Spark+DeepSeek-R1大模型民宿推荐系统 hive民宿可视化 民宿爬虫 大数据毕业设计(源码+文档+PPT+讲解)

温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…...

MySQL后端返回给前端的时间变了(时区问题)

问题:MySQL里的时间例如为2025-01-10 21:19:30,但是返回到前端就变成了2025-01-10 13:19:30,会出现小时不一样或日期变成隔日的问题 一般来说设计字段时会使用datetime字段类型,这是一种用于时间的字段类型,而这个类型…...

Apache Doris:一款高性能的实时数据仓库

Apache Doris 是一款基于 MPP 架构的高性能、实时分析型数据库。它以高效、简单和统一的特性著称,能够在亚秒级的时间内返回海量数据的查询结果。Doris 既能支持高并发的点查询场景,也能支持高吞吐的复杂分析场景。 Apache Doris 最初是百度广告报表业务…...

【量化-什么是信息?怎么有效的学习?关键字摘取】

到底什么是信息呢?我们怎么衡量信息的价值与多少呢?今天,我们就来说说这个问题。 怎么量化信息? 信息,只有量化了才能被准确地讨论,而量化的方法就和事件发生的概率密切相关。或者说得直白一些&#xff0…...

Java之异常体系

异常:异常就是代表程序出现问题 异常的继承体系: Error:严重异常,内存溢出等 其他异常:编译时异常:编译阶段就要进行处理的异常(提醒程序员检查本地信息) RuntimeException&#…...

网络运维学习笔记(DeepSeek优化版)002网工初级(HCIA-Datacom与CCNA-EI)子网划分与协议解析

文章目录 子网划分与协议解析1. VLSM与CIDR技术解析1.1 VLSM(Variable Length Subnetwork Mask,可变长子网掩码)1.2 CIDR(Classless Inter-Domain Routing,无类域间路由) 2. 子网划分方法与计算2.1 常规划分…...

【Linux知识】Linux上从源码编译到软件安装全过程详细说明

文章目录 **1. 下载源码****(1) 使用 wget 或 curl 下载****(2) 解压源码** **2. 配置编译环境****(1) 执行 ./configure 脚本**常见参数说明: **3. 编译源码****(1) 执行 make** **4. 安装软件****(1) 执行 make install****(2) 自定义安装路径** **5. 验证安装***…...

【尝试使用python调用Seismic unix】

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、代码总结 前言 提示:这里可以添加本文要记录的大概内容: 使用seismic unix尝试建立界面,首先想到使用pyqt&#xff0c…...

JSON Web Token在登陆中的使用

JWT(JSON Web Token)是一种开放标准(RFC 7519),用于在网络应用环境间安全地传递声明。它的主要用途是身份验证和信息交换。在微服务架构中,JWT 作为认证机制非常常见,特别是与 API 网关结合使用…...

CSS滚动条原理与自定义样式指南,CSS滚动条样式失效,滚动条样式无效,-webkit-scrollbar无效,overflow不显示滚动条

滚动内容形成的必要条件 CSS Overflow属性解析 MDN官方文档-Overflow属性 菜鸟教程-Overflow属性 overflow 属性控制内容溢出元素框时在对应的元素区间内是否添加滚动条。 值描述visible默认值。内容不会被修剪,会呈现在元素框之外。hidden内容会被修剪&#xf…...

陀螺匠·企业助手v1.8 产品介绍

陀螺匠企业助手是一套采用Laravel 9框架结合Swoole高性能协程服务与Vue.js前端技术栈构建的新型智慧企业管理与运营系统。该系统深度融合了客户管理、项目管理、审批流程自动化以及低代码开发平台,旨在为企业提供一站式、数字化转型的全方位解决方案,助力…...

【数据结构】(11) Map 和 Set

一、Map 和 Set 的简介 1、Set 和 Map Map 和 Set 是集合类框架学习的最后一部分。Map 和 Set 都是接口,需要通过 TreeSet、HashSet 和 TreeMap、HashMap 实例化。注意,Set 实现了 Collection,Map 并没有。 Set 存放的是键(Key&a…...

DeepSeek 提示词:高效的提示词设计

🧑 博主简介:CSDN博客专家,历代文学网(PC端可以访问:https://literature.sinhy.com/#/?__c1000,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,精通Java编…...

【Redis】在Java中以及Spring环境下操作Redis

Java环境下&#xff1a; 1.创建maven 项目 2.导入依赖 <!-- redis --><dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId><version>4.3.2</version></dependency> 此处使用的是Jedis&…...

Linux红帽:RHCSA认证知识讲解(二)配置网络与登录本地远程Linux主机

Linux红帽&#xff1a;RHCSA认证知识讲解&#xff08;二&#xff09;配置网络与登录本地远程Linux主机 前言一、使用命令行&#xff08;nmcli 命令&#xff09;配置网络&#xff0c;配置主机名第一步第二步修改主机名称 二、使用图形化界面&#xff08;nmtui 命令&#xff09;配…...

新数据结构(13)——I/O

字符流 字符输入流&#xff08;Reader&#xff09; 字符输入流用于从数据源&#xff08;如文件、字符串等&#xff09;读取字符数据。Reader 是所有字符输入流的抽象基类。 常用实现类 FileReader 用于从文件中读取字符数据。 InputStreamReader 将字节流转换为字符流&…...

C语言学习,希尔排序

C语言&#xff0c;希尔排序是插入排序的一种&#xff0c;也称为递减增量排序。通过比较距离较远的元素&#xff0c;然后逐渐缩小间隔&#xff0c;直到整个数组变成有序的。这种排序方法减少了插入排序&#xff0c;大数据集的移动次数&#xff0c;提高了效率。 示例&#xff1a…...

Powershell Install deepseek

前言 deepseekAI助手。它具有聊天机器人功能&#xff0c;可以与用户进行自然语言交互&#xff0c;回答问题、提供建议和帮助解决问题。DeepSeek 的特点包括&#xff1a; 强大的语言理解能力&#xff1a;能够理解和生成自然语言&#xff0c;与用户进行流畅的对话。多领域知识&…...

22、《Spring Boot消息队列:RabbitMQ延迟队列与死信队列深度解析》

Spring Boot消息队列实战&#xff1a;RabbitMQ延迟队列与死信队列深度解析 引言 在现代分布式系统中&#xff0c;消息队列承担着解耦、削峰填谷和异步通信的重要职责。本文将深入探讨Spring Boot与RabbitMQ的整合应用&#xff0c;重点解析延迟队列与死信队列的实现原理及实战…...

性能测试项目实战

项目介绍和部署 项目背景 轻商城项目是一个现在流行的电商项目。我们需要综合评估该项目中各个关键接口的性能&#xff0c;并给出优化建议&#xff0c;以满足项目上线后的性能需要。 项目功能架构 前台商城&#xff1a;购物车、订单、支付、优惠券等 后台管理系统&#xff1a;商…...

LabVIEW中显微镜下位移误差的畸变

在显微实验中&#xff0c;位移台通过电机驱动探针进行微米级精确移动&#xff0c;配合显微镜和相机实时观察探针的位置。然而&#xff0c;实验中发现&#xff0c;当电机移动相同的物理距离时&#xff0c;图像中探针的像素位移量存在显著的非线性偏差。经测试&#xff0c;电机的…...

Spark MLlib中的机器学习算法及其应用场景

Spark MLlib是Apache Spark框架中的一个机器学习库&#xff0c;提供了丰富的机器学习算法和工具&#xff0c;用于处理和分析大规模数据。以下是Spark MLlib中的机器学习算法及其应用场景的详细描述&#xff1a; 一、Spark MLlib中的机器学习算法 分类算法&#xff1a; 逻辑回…...

Angular 中获取 DOM 节点的几种方法

文章目录 1. 使用ViewChild获取单个 DOM 节点2. 使用ViewChildren获取多个 DOM 节点3. 使用ElementRef直接访问 DOM4. 使用Renderer2操作 DOM5. 总结 在 Angular 开发中&#xff0c;虽然框架鼓励我们通过组件和模板来操作 DOM&#xff0c;但在某些情况下&#xff0c;直接访问和…...

R Excel 文件:高效数据处理的利器

R Excel 文件:高效数据处理的利器 在数据分析领域,R语言因其强大的统计分析和可视化功能而备受推崇。而R Excel文件,作为R语言与Excel的桥梁,使得数据在R和Excel之间的高效转换成为可能。本文将详细介绍R Excel文件的概念、应用场景以及操作方法。 一、R Excel文件的概念…...

手撕跳表/数据结构

昨天leetcode每日一题是跳表&#xff0c;之前学redis就没去写跳表&#xff0c;这次就逃不过了。 这里使用了len数组&#xff0c;来表示每个数字之间的间隔&#xff0c;方便复杂的查询功能。 主要问题有 为什么len数组记录的是数字之间的间隔&#xff0c;不是每一层从头到尾…...

在 Vue 中处理跨域请求:全面解析与实践指南

在 Vue 中处理跨域请求&#xff1a;全面解析与实践指南 在现代 Web 开发的复杂生态中&#xff0c;跨域请求&#xff08;CORS&#xff09;如同一个无处不在的难题&#xff0c;时刻考验着开发者的技术能力。当我们构建基于 Vue.js 的前端应用时&#xff0c;这一问题尤为凸显。因为…...

爬虫与反爬-Ja3指纹风控(Just a moment...)处理方案及参数说明

概述&#xff1a;本文将针对Ja3 指纹检测风控进行处理&#xff0c;举例了一个案例并使用两种不同的破解方案进行突破&#xff0c;同时深入了解指纹间不同字符所代表的含义 指纹检测背景&#xff1a; 1、每一个设备、软件都有独属于自己的设备信息、版本号、加密算法、椭圆算法…...

WPF-Avalonia实践一两个页面的相关传递

文章目录 注册两个ViewModel关联-Interaction在 Avalonia 框架中的 Interaction作用目的典型的使用场景显示对话框:文件操作:定义交互属性示例代码视图层处理交互总结例子-实现两个界面信息传递Interaction注册在主VIEWModel中注册异步方法按钮主viewModel对应的显示xaml-使用…...

无人机实战系列(三)本地摄像头+远程GPU转换深度图

这篇文章将结合之前写的两篇文章 无人机实战系列&#xff08;一&#xff09;在局域网内传输数据 和 无人机实战系列&#xff08;二&#xff09;本地摄像头 Depth-Anything V2 实现了以下功能&#xff1a; 本地笔记本摄像头发布图像 远程GPU实时处理&#xff08;无回传&#…...

LeetCode:数组异或操作

数组异或操作 描述 给你两个整数&#xff0c;n 和 start 。 数组 nums 定义为&#xff1a;nums[i] start 2*i&#xff08;下标从 0 开始&#xff09;且 n nums.length 。 请返回 nums 中所有元素按位异或&#xff08;XOR&#xff09;后得到的结果。 示例 1&#xff1a;…...

【前端】Axios AJAX Fetch

不定期更新&#xff0c;建议关注收藏点赞。 目录 AxiosAJAXCORS 允许跨域请求 Fetch Axios axios 是一个基于 Promise 的 JavaScript HTTP 客户端&#xff0c;用于浏览器和 Node.js 中发送 HTTP 请求。它提供了一个简单的 API 来发起请求&#xff0c;并处理请求的结果。axios …...

C++ 继承与运算符重载的简单练习

1.长方形的继承类 #include <iostream> #include <cstring> #include <cstdlib> #include <unistd.h> #include <sstream> #include <vector> #include <memory>using namespace std; class AB{ private:int a;int …...

pycharm技巧--鼠标滚轮放大或缩小 Pycharm 字体大小

1、鼠标滚轮调整字体 设置 Ctrl 鼠标滚轮调整字体大小 备注&#xff1a; 第一个是活动窗口&#xff0c;即缩放当前窗口 第二个是所有编辑器窗口&#xff0c;即缩放所有窗口的字体 2、插件 汉化包&#xff1a; Chinese Simplified 包...

deepseek 导出导入模型(docker)

前言 实现导出导入deepseek 模型。deepseek 安装docker下参考 docker 导出模型 实际生产环境建议使用docker-compose.yml进行布局&#xff0c;然后持久化ollama模型数据到本地参考 echo "start ollama" docker start ollama#压缩容器内文件夹&#xff0c;然后拷贝…...

STM32——HAL库开发笔记21(定时器2—输出比较)(参考来源:b站铁头山羊)

本文主要讲述输出比较及PWM信号相关知识。 一、概念 所谓输出比较&#xff0c;就是通过单片机的定时器向外输出精确定时的方波信号。 1.1 PWM信号 PWM信号即脉冲宽度调制信号。PWM信号的占空比 &#xff08;高电压 所占周期 / 整个周期&#xff09; * 100% 。所以PWM信号…...

【报错解决】vue打开界面报错Uncaught SecurityError: Failed to construct ‘WebSocket‘

问题描述&#xff1a; vue运行时正常&#xff0c;但是打开页面后报错 Uncaught SecurityError: Failed to construct WebSocket: An insecure WebSocket connection may not be initiated from a page loaded over HTTPS. 解决方案&#xff1a; 在项目列表中的public下的ind…...

【初探数据结构】时间复杂度和空间复杂度

&#x1f4ac; 欢迎讨论&#xff1a;在阅读过程中有任何疑问&#xff0c;欢迎在评论区留言&#xff0c;我们一起交流学习&#xff01; &#x1f44d; 点赞、收藏与分享&#xff1a;如果你觉得这篇文章对你有帮助&#xff0c;记得点赞、收藏&#xff0c;并分享给更多对数据结构感…...

将DeepSeek接入vscode的N种方法

接入deepseek方法一:cline 步骤1:安装 Visual Studio Code 后,左侧导航栏上点击扩展。 步骤2:搜索 cline,找到插件后点击安装。 步骤3:在大模型下拉菜单中找到deep seek,然后下面的输入框输入你在deepseek申请的api key,就可以用了 让deepseek给我写了一首关于天气的…...