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

计算机网络 应用层 笔记1(C/S模型,P2P模型,FTP协议)

应用层概述:

功能:

常见协议

应用层与其他层的关系

网络应用模型

C/S模型:

优点

缺点

P2P模型:

优点

缺点

DNS系统:

基本功能

系统架构

域名空间:

DNS 服务器

根服务器:

顶级域名服务器:

权限域名服务器:

递归/迭代(本地)域名服务器:

FTP协议:

基本概念

工作原理

连接建立

控制连接:

数据连接:

文件传输

上传:

下载:

命令与响应

传输模式

优点

缺点


应用层概述:

应用层是计算机网络体系结构中的最高层,它直接面向用户,为用户提供各种网络应用服务,是网络与用户之间的接口。

功能:

提供网络应用接口:为用户和应用程序提供与网络交互的接口,使用户无需了解网络的底层细节,就能方便地使用各种网络服务,如通过浏览器访问网页、使用电子邮件客户端收发邮件等。

数据处理与表示:对应用程序产生或需要的数据进行处理和表示,包括数据的编码、加密、压缩等操作,以确保数据在网络传输中的安全性、完整性和高效性。例如,将图像数据进行压缩后再通过网络传输,以减少传输带宽和时间。

应用协议处理:负责处理各种应用层协议,根据不同的应用需求,按照特定的协议规则进行数据的封装、解析和交互。如 HTTP 协议用于网页的请求和响应,SMTP 协议用于电子邮件的发送等。

常见协议

HTTP(超文本传输协议):用于在 Web 浏览器Web 服务器之间传输超文本信息,是万维网的核心协议。它定义了客户端如何向服务器发送请求以及服务器如何向客户端返回响应,支持获取网页、图片、视频等各种资源。

SMTP(简单邮件传输协议):主要用于发送电子邮件,负责将邮件从发件人的邮件服务器传输到收件人的邮件服务器。与之相关的还有 POP3(邮局协议版本 3)和 IMAP(互联网消息访问协议),用于接收和管理电子邮件。

FTP(文件传输协议):用于在网络上进行文件的传输,允许用户在不同的计算机之间上传和下载文件,提供了可靠的文件传输服务,常用于文件共享、软件分发等场景。

DNS(域名系统):将人类易于记忆的域名转换为计算机能够识别的 IP 地址,实现了网络资源的方便访问。用户只需输入域名,如www.example.com,DNS 系统就能将其解析为对应的 IP 地址,使得计算机能够在网络中找到目标服务器。

DHCP(动态主机配置协议):用于自动为网络中的设备分配 IP 地址等网络配置信息,简化了网络管理,使得设备能够快速、方便地接入网络,无需用户手动进行复杂的网络配置。

应用层与其他层的关系

与传输层的关系:应用层依赖传输层提供的端到端通信服务来传输数据。传输层为应用层提供了 TCP 和 UDP 两种不同的传输协议,应用层根据自身的需求选择合适的传输协议。例如,HTTP 协议通常使用 TCP 协议来保证数据的可靠传输,而实时视频流应用可能会选择 UDP 协议以追求低延迟。

与网络层的关系:应用层的数据需要通过网络层进行路由和转发,网络层负责将数据从源主机传输到目标主机。应用层并不关心网络层的具体路由过程,只需要将数据交给传输层,由传输层再交给网络层进行处理。

与链路层和物理层的关系:应用层数据最终要通过链路层和物理层在物理介质上进行传输。链路层负责将数据帧在本地网络中进行传输,物理层则负责将数据转换为物理信号在物理介质上传输,如光纤、电缆等。应用层数据经过层层封装后,最终在物理介质上进行传输,到达目标主机后再进行层层解封装,最终被应用层接收和处理。

网络应用模型

C/S模型:

一种常用的计算机网络架构模式,用于在网络环境中实现客户端和服务器之间的信息交互和资源共享。

客户端是用户与系统交互的接口,通常安装在用户的本地设备上,如个人电脑、手机等。它的主要功能是向服务器发送请求,并接收服务器返回的响应结果,然后将结果呈现给用户。客户端可以是各种应用程序,如浏览器、电子邮件客户端、游戏客户端等。(和服务器通信并用其的服务,间歇接入网络,使用动态IP地址)

服务器:是为客户端提供服务和资源的设备或程序,通常具有强大的计算能力、存储能力和网络通信能力。服务器负责接收客户端发送的请求,根据请求的内容进行相应的处理,如查询数据库、执行计算任务等,然后将处理结果返回给客户端。服务器可以是物理服务器,也可以是虚拟服务器,常见的服务器软件有 Apache、IIS 等。(永久提供服务,永久性访问地址)

优点

强大的交互能力:客户端和服务器之间可以进行频繁的交互,客户端能够实时向服务器发送请求,服务器也能及时响应客户端的请求,实现了高效的信息交互和业务处理。

良好的安全性:客户端和服务器之间的通信可以进行加密处理,保证数据在传输过程中的安全性。同时,服务器可以对客户端的访问进行严格的权限控制,只有经过授权的客户端才能访问服务器上的资源,提高了系统的安全性。

可扩展性强:C/S 模型可以方便地进行扩展,当系统的业务需求增加或用户数量增多时,可以通过增加服务器的数量或升级服务器的硬件配置来提高系统的处理能力和性能。

缺点

客户端维护成本高:由于客户端需要安装在用户的本地设备上,当客户端软件需要升级或更新时,需要用户手动下载和安装更新包,这给用户带来了不便,也增加了软件维护的成本。

跨平台兼容性差:不同操作系统和设备上的客户端可能需要进行专门的开发和适配,以确保客户端能够在各种平台上正常运行。这增加了开发的难度和成本,也限制了系统的应用范围。

服务器压力较大:随着用户数量的增加,服务器需要处理大量的客户端请求,这可能会导致服务器的负载过高,影响系统的性能和响应速度。

P2P模型:

网络中的节点(Peer)既可以作为客户端向其他节点请求服务,也可以作为服务器为其他节点提供服务,各节点地位平等,没有中心服务器的控制。

节点P2P 网络中的每个参与者都被称为节点,这些节点具有相同的功能和地位,没有主从之分。每个节点都可以同时扮演客户端和服务器的角色,既可以发起请求获取其他节点的资源或服务,也可以响应其他节点的请求,提供自己的资源或服务。节点可以是个人电脑、服务器、移动设备等各种联网设备。

网络连接:节点之间通过网络相互连接,形成一个分布式的网络结构。这些连接可以是基于互联网的有线网络连接,也可以是无线网络连接。节点之间通过特定的协议和算法来发现彼此、建立连接并进行数据传输和交互。

优点

去中心化:没有中心服务器来控制整个网络,避免了单点故障和性能瓶颈问题。即使部分节点出现故障或离线,也不会影响整个网络的正常运行。

可扩展性强:随着节点数量的增加,P2P 网络的性能和资源容量也会相应增加。新节点可以随时加入网络,为网络带来更多的资源和计算能力,而无需对整个系统进行大规模的改造。

资源共享高效:节点可以直接从其他节点获取所需资源,无需通过中间服务器进行转发,大大提高了资源的传输效率。特别是在大规模文件共享等场景下,P2P 网络能够充分利用节点的带宽资源,实现快速的数据传输。

缺点

安全性挑战:由于没有中心服务器进行统一的管理和认证,P2P 网络中的节点身份难以严格验证,容易受到恶意攻击,如病毒传播、黑客入侵、数据篡改等。

网络管理复杂:节点的动态加入和离开使得网络拓扑结构不断变化,难以进行有效的网络管理和监控。同时,由于节点之间的协作和数据传输依赖于分布式的协议和算法,网络中的数据流量和资源使用情况难以准确统计和控制。

知识产权问题:在一些 P2P 文件共享网络中,可能存在大量未经授权的版权内容传播,这给知识产权保护带来了很大的挑战。

DNS系统:

DNS 系统即域名系统(Domain Name System),是互联网的一项核心服务,它作为将域名和 IP 地址相互映射的一个分布式数据库,能够使人更方便地访问互联网,而不用去记住能够被机器直接读取的 IP 地址数串。

基本功能

域名解析:这是 DNS 系统最主要的功能,即将域名转换为对应的 IP 地址。当用户在浏览器中输入一个域名时,如www.example.com,DNS 系统会根据域名查找对应的 IP 地址,如 192.0.2.1,然后浏览器才能通过该 IP 地址与服务器建立连接,获取相应的网页内容。

反向解析:与域名解析相反,是将 IP 地址转换为域名。这在一些需要根据 IP 地址查找域名的场景中非常有用,比如服务器在记录访问日志时,可能会根据访问者的 IP 地址反向解析出域名,以便更好地分析访问来源。

负载均衡:通过将多个服务器的 IP 地址与一个域名关联,DNS 系统可以根据一定的算法,如轮询、加权轮询等,将用户的请求分配到不同的服务器上,实现负载均衡,提高系统的性能和可靠性。

域名管理:DNS 系统还负责管理域名的注册、更新、删除等操作,确保域名的唯一性和合法性,维护域名系统的正常运行。

系统架构

域名空间:

是一个树形结构,根在最顶层,向下分支为各个顶级域名(TLD),如.com、.org、.net 等,顶级域名下又可以有二级域名、三级域名等。每个域名在这个树形结构中都有唯一的位置,形成了一个层次化的命名空间。

www(三级).example(二级).com(顶级)

DNS 服务器

根服务器:

是 DNS 系统的核心,全球共有 13 组根服务器,以字母 A 到 M 命名。根服务器知道所有顶级域名服务器的地址,当 DNS 服务器在本地无法解析域名时,会向根服务器查询,根服务器会返回相应顶级域名服务器的地址,引导查询进一步进行。

顶级域名服务器:

负责管理顶级域名,如.com 域名服务器负责解析所有以.com 为后缀的域名。它知道该顶级域名下所有二级域名服务器的地址信息。

权限域名服务器:

由域名所有者自行管理或委托管理,负责存储和提供特定域名的权威解析记录,如某个企业的域名example.com的权威域名服务器,会保存该域名对应的 IP 地址等解析信息。

递归/迭代(本地)域名服务器:

通常由互联网服务提供商(ISP)或企业内部网络部署,它接受用户的域名解析请求并将最终结果返回给用户。本地域名服务器会缓存已经解析过的域名信息,以提高后续查询的效率。

递归查询和迭代查询

递归是本地作为客户把任务交给别人让别人告诉答案,迭代是让别人指路,自己去找

FTP协议:

文件传输协议(File Transfer Protocol),是用于在网络上进行文件传输的标准协议
 

基本概念

FTP 协议属于应用层协议,它基于客户 / 服务器(C/S)模型,使用 TCP 可靠的运输服务,允许用户从一个主机向另一个主机传输文件,并且能够保证文件传输的可靠性和完整性,广泛应用于网站维护、文件共享等场景。

工作原理

连接建立

控制连接

FTP 客户端与服务器之间首先建立控制连接(登录, ftp地址 + 用户名&密码),默认使用 TCP 的 21 端口。客户端通过该连接向服务器发(进程包括1个主进程和n个从属进程)送命令,服务器则通过此连接返回响应信息,如用户登录验证、文件操作指令等。

数据连接:

在需要传输数据时,客户端和服务器之间会建立数据连接。数据连接可以使用主动模式或被动模式。在主动模式下,服务器会主动连接客户端指定的数据端口(通常为 20 端口)来传输数据;在被动模式下,服务器会监听一个临时端口,并将该端口号告知客户端,由客户端主动连接服务器的这个临时端口进行数据传输。

文件传输

上传:

当客户端要向服务器上传文件时,通过控制连接发送上传文件的命令,然后在数据连接上按照规定的格式和顺序将文件数据发送给服务器,服务器接收并存储文件。

下载:

客户端通过控制连接发送下载文件的命令,服务器在数据连接上把文件数据传输给客户端,客户端接收并保存文件。

(控制链接一直打开,数据连接用时打开,同时如果主动传输,链接端口为20,被动的由客户端决定)

命令与响应

命令:FTP 协议定义了一系列命令,用于实现各种文件操作和连接管理功能。常见的命令有:

USER:用于向服务器发送用户名,进行登录验证的第一步。

PASS:在发送用户名后,用于发送密码完成登录。

LIST:请求服务器返回当前目录下的文件和目录列表。

RETR:用于从服务器下载文件,后面跟随要下载的文件名。

STOR:用于向服务器上传文件,后面跟随要上传的文件名。

响应:服务器接收到客户端的命令后,会返回相应的响应代码和信息。例如:

200:表示命令执行成功。

331:表示用户名正确,需要输入密码。

425:表示无法打开数据连接。

550:表示文件操作失败,如文件不存在等。

传输模式

文本模式:主要用于传输文本文件,在传输过程中,会根据不同的操作系统对文本文件的格式进行转换,例如将 Windows 系统中的回车换行符(CRLF)转换为 Unix 系统中的换行符(LF)等,以确保文件在不同系统上的可读性。

二进制模式:用于传输非文本文件,如图像、音频、视频等。在二进制模式下,文件以字节流的形式进行传输,不会对文件内容进行任何转换,保证文件的原始数据完整无误地传输到目标主机。

优点

简单易用:FTP 协议的操作相对简单,用户只需要掌握一些基本的命令,就可以方便地进行文件传输操作。

高效传输:能够支持大文件的传输,并且在传输过程中可以保证数据的完整性和准确性,传输效率较高。

跨平台性好:可以在不同操作系统的主机之间进行文件传输,如 Windows 与 Linux 系统之间,具有良好的兼容性。

缺点

安全性问题:FTP 协议在默认情况下,数据传输是明文的,包括用户名、密码和文件内容等,容易被黑客窃取和篡改,存在较大的安全风险。

被动模式下的防火墙问题:在使用被动模式时,由于服务器会监听一个临时端口用于数据连接,这可能会导致防火墙配置的复杂性增加,需要对防火墙进行特殊配置才能允许数据通过。

相关文章:

计算机网络 应用层 笔记1(C/S模型,P2P模型,FTP协议)

应用层概述: 功能: 常见协议 应用层与其他层的关系 网络应用模型 C/S模型: 优点 缺点 P2P模型: 优点 缺点 DNS系统: 基本功能 系统架构 域名空间: DNS 服务器 根服务器: 顶级域…...

Node.js下载安装及环境配置

目录 一、下载 1. 查看电脑版本,下载对应的安装包 2. 下载路径下载 | Node.js 中文网 二、安装步骤 1. 双击安装包 2. 点击Next下一步 3. 选择安装路径 4. 这里我选择默认配置,继续Next下一步(大家按需选择) 5. 最后inst…...

LeetCode题练习与总结:任务调度器--621

一、题目描述 给你一个用字符数组 tasks 表示的 CPU 需要执行的任务列表,用字母 A 到 Z 表示,以及一个冷却时间 n。每个周期或时间间隔允许完成一项任务。任务可以按任何顺序完成,但有一个限制:两个 相同种类 的任务之间必须有长…...

动手学深度学习-3.2 线性回归的从0开始

以下是代码的逐段解析及其实际作用: 1. 环境设置与库导入 %matplotlib inline import random import torch from d2l import torch as d2l作用: %matplotlib inline:在 Jupyter Notebook 中内嵌显示 matplotlib 图形。random:生成…...

鸿蒙HarmonyOS Next 视频边播放边缓存- OhosVideoCache

OhosVideoCache 是一个专为OpenHarmony开发(HarmonyOS也可以用)的音视频缓存库,旨在帮助开发者轻松实现音视频的边播放边缓存功能。以下是关于 OhosVideoCache 的详细介绍: 1. 核心功能 边播放边缓存:将音视频URL传递给 OhosVideoCache 处理后…...

#systemverilog# Verilog与SystemVerilog发展历程及关系

1. Verilog的发展历史 1984年:Gateway Design Automation公司开发了Verilog,最初作为专有语言,用于逻辑仿真和数字电路设计。 1990年:Cadence收购Gateway,Verilog逐步开放,成为行业标准。 1995年(IEEE 1364-1995):首个IEEE标准,即Verilog-1995,定义基础语法和仿真语…...

【集成Element Plus】

集成Element Plus 安装main.ts中全局引入安装图标库 安装 pnpm add element-plusmain.ts中全局引入 import ElementPlus from element-plus; import element-plus/dist/index.css;app.use(ElementPlus);安装图标库 pnpm install element-plus/icons-vue...

基于微信小程序的电子商城购物系统设计与实现(LW+源码+讲解)

专注于大学生项目实战开发,讲解,毕业答疑辅导,欢迎高校老师/同行前辈交流合作✌。 技术范围:SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容:…...

进阶数据结构——双向循环链表

目录 前言一、定义与结构二、特点与优势三、基本操作四、应用场景五、实现复杂度六、动态图解七、代码模版(c)八、经典例题九、总结结语 前言 这一期我们学习双向循环链表。双向循环链表不同于单链表,双向循环链表是一种特殊的数据结构&…...

Kafka分区策略实现

引言 Kafka 的分区策略决定了生产者发送的消息会被分配到哪个分区中,合理的分区策略有助于实现负载均衡、提高消息处理效率以及满足特定的业务需求。 轮询策略(默认) 轮询策略是 Kafka 默认的分区策略(当消息没有指定键时&…...

【hot100】560和为K的子数组

一、思路 初步思路就是采用双循环以每个节点为头节点,然后向后遍历是否有满足和为K的子数组。 然后我们可以采用另一个新的思路,就是可以采用“前缀和的思路”,具体就是如果hashmap中存在sum-k的值,那就可以说明存在一个何为k的…...

【01】共识机制

BTF共识 拜占庭将军问题 拜占庭将军问题是一个共识问题 起源 Leslie Lamport在论文《The Byzantine Generals Problem》提出拜占庭将军问题。 核心描述 军中可能有叛徒,却要保证进攻一致,由此引申到计算领域,发展成了一种容错理论。随着…...

树莓派pico入坑笔记,故障解决:请求 USB 设备描述符失败,故障码(43)

今天心血来潮,拿出吃灰的pico把玩一下,打开thonny,上电,然后...... 上电识别不到端口,windows报错,请求 USB 设备描述符失败,故障码(43) 一开始以为是坏了(磕…...

大语言模型的个性化综述 ——《Personalization of Large Language Models: A Survey》

摘要: 本文深入解读了论文“Personalization of Large Language Models: A Survey”,对大语言模型(LLMs)的个性化领域进行了全面剖析。通过详细阐述个性化的基础概念、分类体系、技术方法、评估指标以及应用实践,揭示了…...

线程互斥同步

前言: 简单回顾一下上文所学,上文我们最重要核心的工作就是介绍了我们线程自己的LWP和tid究竟是个什么,总结一句话,就是tid是用户视角下所认为的概念,因为在Linux系统中,从来没有线程这一说法,…...

高效接口限流:基于自定义注解与RateLimiter的实践

在高并发场景下,接口的流量控制是保证系统稳定性和提升性能的关键之一。通过实现接口限流,我们可以有效避免系统在访问高峰时发生崩溃。本文将详细介绍如何通过自定义注解和切面编程结合RateLimiter来实现接口的限流功能,以应对高并发请求。 …...

嵌入式硬件篇---HAL库内外部时钟主频锁相环分频器

文章目录 前言第一部分:STM32-HAL库HAL库编程优势1.抽象层2.易于上手3.代码可读性4.跨平台性5.维护和升级6.中间件支持 劣势1.性能2.灵活性3.代码大小4.复杂性 直接寄存器操作编程优势1.性能2.灵活性3.代码大小4.学习深度 劣势1.复杂性2.可读性3.可维护性4.跨平台性…...

万字长文深入浅出负载均衡器

前言 本篇博客主要分享Load Balancing(负载均衡),将从以下方面循序渐进地全面展开阐述: 介绍什么是负载均衡介绍常见的负载均衡算法 负载均衡简介 初识负载均衡 负载均衡是系统设计中的一个关键组成部分,它有助于…...

使用递归解决编程题

题目:递归实现组合型枚举 从 1−n 这 n 个整数中随机选取 m 个,每种方案里的数从小到大排列,按字典序输出所有可能的选择方案。 输入 ​输入两个整数 n,m。(1≤m≤n≤10) 输出 每行一组方案,每组方案中…...

Nginx 中文文档

文章来源:nginx 文档 -- nginx中文文档|nginx中文教程 nginx 文档 介绍 安装 nginx从源构建 nginx新手指南管理员指南控制 nginx连接处理方法设置哈希调试日志记录到 syslog配置文件测量单位命令行参数适用于 Windows 的 nginx支持 QUIC 和 HTTP/3 nginx 如何处理…...

2.策略模式(Strategy)

定义 定义一系列算法,把它们一个个封装起来,并且使他们可互相替换(变化)。该模式使算法可独立于使用它的客户程序(稳定)而变化(拓展,子类化)。 动机(Motiva…...

浔川AI翻译v6.0延迟上线说明

浔川社团官方联合会关于浔川AI翻译v6.0版本的说明 尊敬的各位用户: 大家好! 首先,衷心感谢大家一直以来对浔川社团官方联合会以及浔川AI翻译的关注与支持。在此,我们怀着十分遗憾的心情向大家发布一则重要通知:原计划推…...

git基础使用--4---git分支和使用

文章目录 git基础使用--4---git分支和使用1. 按顺序看2. 什么是分支3. 分支的基本操作4. 分支的基本操作4.1 查看分支4.2 创建分支4.3 切换分支4.4 合并冲突 git基础使用–4—git分支和使用 1. 按顺序看 -git基础使用–1–版本控制的基本概念 -git基础使用–2–gti的基本概念…...

[paddle] 矩阵相关的指标

行列式 det 行列式定义参考 d e t ( A ) ∑ i 1 , i 2 , ⋯ , i n ( − 1 ) σ ( i 1 , ⋯ , i n ) a 1 , i 1 a 2 , i 2 , ⋯ , a n , i n det(A) \sum_{i_1,i_2,\cdots,i_n } (-1)^{\sigma(i_1,\cdots,i_n)} a_{1,i_1}a_{2,i_2},\cdots, a_{n,i_n} det(A)i1​,i2​,⋯,in​…...

CH340G上传程序到ESP8266-01(S)模块

文章目录 概要ESP8266模块外形尺寸模块原理图模块引脚功能 CH340G模块外形及其引脚模块引脚功能USB TO TTL引脚 程序上传接线Arduino IDE 安装ESP8266开发板Arduino IDE 开发板上传失败上传成功 正常工作 概要 使用USB TO TTL(CH340G)将Arduino将程序上传…...

CMake的QML项目中使用资源文件

Qt6.5的QML项目中,我发现QML引用资源文件并不像QtWidgets项目那样直接。 在QtWidgets的项目中,我们一般是创建.qrc​资源文件,然后创建前缀/new/prefix​,再往该前缀中添加一个图片文件,比如:test.png​。…...

FBX SDK的使用:读取Mesh

读取顶点数据 要将一个Mesh渲染出来,必须要有顶点的位置,法线,UV等顶点属性,和三角面的顶点索引数组。在提取这些数据之前,先理解FBX SDK里面的几个概念: Control Point 顶点的位置,就是x,y,z…...

无人机PX4飞控 | PX4源码添加自定义uORB消息并保存到日志

PX4源码添加自定义uORB消息并保存到日志 0 前言 PX4的内部通信机制主要依赖于uORB(Micro Object Request Broker),这是一种跨进程的通信机制,一种轻量级的中间件,用于在PX4飞控系统的各个模块之间进行高效的数据交换…...

在C#中,什么是多态如何实现

在C#中,什么是多态?如何实现? C#中的多态性 多态性是面向对象编程的一个核心概念,他允许对象以多种形式表现.在C#中,多态主要通过虚方法,抽象方法和接口来实现. 多态性的存在使得同一个行为可以有多个不同的表达形式 即同一个接口可以使用不同的实例来执行不同的操作 虚方…...

Vue指令v-text

目录 一、Vue中的v-text指令是什么?二、v-text指令内部支持写表达式。 一、Vue中的v-text指令是什么? v-text指令用于设置标签的文本值(textContent)。 二、v-text指令内部支持写表达式。 注意:v-text指令的默认写法会替换全部内容&#x…...

基于springboot+vue的航空散货调度系统

开发语言:Java框架:springbootJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包:…...

FFmpeg(7.1版本)在Ubuntu18.04上的编译

一、从官网上下载FFmpeg源码 官网地址:Download FFmpeg 点击Download Source Code 下载源码到本地电脑上 二、解压包 tar -xvf ffmpeg-7.1.tar.xz 三、配置configure 1.准备工作 安装编译支持的软件 ① sudo apt-get install nasm //常用的汇编器,用于编译某些需要汇编…...

ZK-ALU-在有限域上实现左移

先看在实数域上实现左移, 再看在有限域上的实现 左移-整数 计算机中的左移计算&#xff08;<< 操作&#xff09;通常由处理器的硬件电路直接支持&#xff0c;因此效率非常高。在编程语言中&#xff0c;左移操作可以通过位移运算符&#xff08;例如 C/C 中的 <<&a…...

建表注意事项(2):表约束,主键自增,序列[oracle]

没有明确写明数据库时,默认基于oracle 约束的分类 用于确保数据的完整性和一致性。约束可以分为 表级约束 和 列级约束&#xff0c;区别在于定义的位置和作用范围 复合主键约束: 主键约束中有2个或以上的字段 复合主键的列顺序会影响索引的使用&#xff0c;需谨慎设计 添加…...

PyTorch生态系统中的连续深度学习:使用Torchdyn实现连续时间神经网络

神经常微分方程&#xff08;Neural ODEs&#xff09;是深度学习领域的创新性模型架构&#xff0c;它将神经网络的离散变换扩展为连续时间动力系统。与传统神经网络将层表示为离散变换不同&#xff0c;Neural ODEs将变换过程视为深度&#xff08;或时间&#xff09;的连续函数。…...

【PyQt】keyPressEvent键盘按压事件无响应

问题描述 通过load ui 文件加载程序时&#xff0c;keyPressEvent键盘按压事件无响应 原因 主要是由于事件处理的方式和窗口的显示方式不正确所导致的。 解决代码 self&#xff1a;这里的self作为loadUi函数的第二个参数&#xff0c;意味着加载的界面将被设置为当前类实例&…...

redis的分片集群模式

redis的分片集群模式 1 主从哨兵集群的问题和分片集群特点 主从哨兵集群可应对高并发写和高可用性&#xff0c;但是还有2个问题没有解决&#xff1a; &#xff08;1&#xff09;海量数据存储 &#xff08;2&#xff09;高并发写的问题 使用分片集群可解决&#xff0c;分片集群…...

PHP Composer:高效依赖管理工具详解

PHP Composer:高效依赖管理工具详解 引言 在PHP开发领域,依赖管理是项目构建过程中的重要环节。Composer的出现,极大地简化了PHP项目的依赖管理,使得开发者可以更加高效地构建和维护PHP应用程序。本文将深入探讨PHP Composer的使用方法、功能特点以及它在项目开发中的应用…...

【VUE案例练习】前端vue2+element-ui,后端nodo+express实现‘‘文件上传/删除‘‘功能

近期在做跟毕业设计相关的数据后台管理系统&#xff0c;其中的列表项展示有图片展示&#xff0c;添加/编辑功能有文件上传。 “文件上传/删除”也是我们平时开发会遇到的一个功能&#xff0c;这里分享个人的实现过程&#xff0c;与大家交流谈论~ 一、准备工作 本次案例使用的…...

【B站保姆级视频教程:Jetson配置YOLOv11环境(六)PyTorchTorchvision安装】

Jetson配置YOLOv11环境&#xff08;6&#xff09;PyTorch&Torchvision安装 文章目录 1. 安装PyTorch1.1安装依赖项1.2 下载torch wheel 安装包1.3 安装 2. 安装torchvisiion2.1 安装依赖2.2 编译安装torchvision2.2.1 Torchvisiion版本选择2.2.2 下载torchvisiion到Downloa…...

relational DB与NoSQL DB有什么区别?该如何选型?

Relational Database(关系型数据库,简称RDB)与NoSQL Database(非关系型数据库)是两类常见的数据库类型。它们在设计理念、数据存储方式、性能优化、扩展性等方面有许多差异。下面我们将会详细分析它们的区别,以及如何根据应用场景进行选型。 一、数据模型的区别 关系型…...

解决对axios请求返回对象进行json化时报“TypeError Converting circular structure to JSON“错误的问题

发现直接对axios请求返回对象进行json化会报"TypeError: Converting circular structure to JSON"错误&#xff0c;而对返回对象下的data属性进行json化就没问题 如果想对循环引用的对象进行json化&#xff0c;解决方案可参考&#xff1a; TypeError: Converting c…...

优化代码性能:利用CPU缓存原理

在计算机的世界里&#xff0c;有一场如同龟兔赛跑般的速度较量&#xff0c;主角便是 CPU 和内存 。龟兔赛跑的故事大家都耳熟能详&#xff0c;兔子速度飞快&#xff0c;乌龟则慢吞吞的。在计算机中&#xff0c;CPU 就如同那敏捷的兔子&#xff0c;拥有超高的运算速度&#xff0…...

Rust场景示例:为什么要使用切片类型

通过对比 不用切片 和 使用切片 的场景&#xff0c;说明切片类型在 Rust 中的必要性&#xff1a; 场景&#xff1a;提取字符串中的单词 假设我们需要编写一个函数&#xff0c;从一个句子中提取第一个单词。我们将分别展示 不用切片 和 使用切片 的实现&#xff0c;并对比二者的…...

ubuntu直接运行arm环境qemu-arm-static

qemu-arm-static 嵌入式开发有时会在ARM设备上使用ubuntu文件系统。开发者常常会面临这样一个问题&#xff0c;想预先交叉编译并安装一些应用程序&#xff0c;但是交叉编译的环境配置以及依赖包的安装十分繁琐&#xff0c;并且容易出错。想直接在目标板上进行编译和安装&#x…...

HTTP 黑科技

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家&#xff0c;历代文学网&#xff08;PC端可以访问&#xff1a;https://literature.sinhy.com/#/literature?__c1000&#xff0c;移动端可微信小程序搜索“历代文学”&#xff09;总架构师&#xff0c;15年工作经验&#xff0c;…...

【Vite + Vue + Ts 项目三个 tsconfig 文件】

Vite Vue Ts 项目三个 tsconfig 文件 为什么 Vite Vue Ts 项目会有三个 tsconfig 文件&#xff1f;首先我们先了解什么是 tsconfig.json ? 为什么 Vite Vue Ts 项目会有三个 tsconfig 文件&#xff1f; 在使用 Vite 创建 vue-ts 模板的项目时&#xff0c;会发现除了 ts…...

Mac怎么彻底卸载软件,简单彻底的卸载方式

一个阳光明媚的下午&#xff0c;咖啡厅里&#xff0c;珂珂正在和他的好友帅帅讨论如何优化他们的Mac电脑&#xff0c;特别是谈到Mac怎么彻底卸载软件的时候&#xff0c;帅帅就特别感同身受&#xff0c;因为他近期就遇到了这个的麻烦&#xff0c;并且找了很久才找到号的解决方案…...

15 刚体变换模块(rigid.rs)

rigid.rs是一个表示三维刚体变换&#xff08;Rigid Transformation&#xff09;的结构体定义&#xff0c;用于在计算机图形学、机器人学以及物理模拟等领域中表示物体在三维空间中的旋转和平移。在这个定义中&#xff0c;所有长度在变换后都保持不变&#xff0c;这是刚体变换的…...

springboot使用rabbitmq

使用springboot创建rabbitMQ的链接。 整个项目结构如下&#xff1a; 1.maven依赖 <dependency><groupId>com.rabbitmq</groupId><artifactId>amqp-client</artifactId><version>3.4.1</version> </dependency>application.y…...