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

计算机网络概述--自我学习用

计算网络体系概述

相关问题
  • 计算机网络为什么要分层?
  • 计算机网络是怎么分层的?
  • 三种计算机网络模型的关系是什么?每一层分别包含哪些协议?
  • 计算机网络中,数据如何在各层中传播?数据在网络各层中的存在形式是怎么样的?
OSI七层模型

OSI(Open Systems Interconnection)是开放系统互连参考模型的缩写,它是一个定义得非常好的协议规范集,它为各种系统定义了一个层次结构和一套用于协调与控制各层活动的规则,模型有七层结构。OSI模型的七层结构及其简要描述:

层次名称简要描述
1物理层 (Physical Layer)定义了物理设备标准,如网络接口、传输介质等,负责传输原始比特流。
2数据链路层 (Data Link Layer)在物理层提供的服务基础上,建立相邻节点之间的数据链路,进行差错控制和流量控制。
3网络层 (Network Layer)负责为分组交换网上的不同主机提供通信服务,实现路由选择和分组转发。
4传输层 (Transport Layer)提供端到端的通信服务,负责数据的分段、重组和差错控制,确保数据的可靠传输。
5会话层 (Session Layer)负责建立、管理和终止会话过程,同步不同设备上的各种表示层实体。
6表示层 (Presentation Layer)对应用层数据进行表示和转换,如数据压缩、加密和解密、数据格式转换等。
7应用层 (Application Layer)为网络应用提供访问OSI环境的手段,定义应用进程间通信和交互的规则。

这个表格简洁地概述了OSI模型的每一层及其主要功能。需要注意的是,虽然OSI模型在理论上是一个完善的参考模型,但在实际应用中,TCP/IP协议族由于其简洁性和高效性而被广泛采用。

TCP/IP五层协议

五层体系的协议结构是综合了 OSI 和 TCP/IP 优点的一种协议,包括应用层、传输层、网络层、数据链路层和物理层。其中应用层对应 OSI 的上三层,下四层和 OSI 相同。五层协议的体系结构只是为介绍网络原理而设计的,实际应用还是 TCP/IP 四层体系结构。TCP/IP五层协议栈:

名称主要功能主要协议/技术
物理层负责物理传输介质上比特流的传输无(依赖于物理介质)
数据链路层负责将数据封装成帧,进行差错控制和流量控制以太网、PPP
网络层负责数据包的路由和转发,实现不同网络之间的通信IP、ICMP、IGMP、ARP、RARP
传输层负责端到端的数据传输,提供可靠或不可靠的数据传输服务TCP、UDP
应用层提供网络应用服务,处理特定应用的数据格式HTTP、FTP、SMTP、DNS、SSH

这个表格简要地概括了TCP/IP五层协议栈中每一层的主要功能以及该层使用的主要协议或技术。这些协议共同协作,确保数据能够正确、高效地从源地址传输到目标地址。

数据在各层之间的传输

在TCP/IP五层协议栈中,数据并不是直接在各层之间传输的,而是经历了一个封装和解封装的过程。这个过程确保了数据从源地址到目标地址的可靠传输。以下是数据在各层之间传输的详细步骤:

层次物理层数据链路层网络层传输层应用层
数据类型比特流帧、数据帧数据报、数据包报文段、数据段报文
添加部分前导码MAC头部IP头部TCP头部数据
应用层:
  • 应用层是TCP/IP模型的最上层,直接为用户的应用程序(如浏览器、电子邮件客户端等)提供服务。
  • 在应用层,应用程序(如HTTP服务器或FTP客户端)生成数据,这些数据可能是文本、图片、音频或视频等。
  • 应用层将数据封装成应用层协议所能理解的数据格式,如HTTP请求或FTP命令。
传输层:
  • 传输层负责提供端到端的数据传输服务,包括可靠性和流量控制。
  • 在传输层,数据被封装成传输层协议的数据单元,对于TCP来说是TCP段(segment),对于UDP来说是UDP数据报(datagram)。
  • 封装过程中,传输层会添加源端口号和目的端口号等信息,以便在接收端能够正确地将数据交付给相应的应用程序。
网络层:
  • 网络层负责网络间的通信,主要处理路由和转发。
  • 在网络层,数据被封装成IP数据报(datagram)。封装过程中,会添加源IP地址和目的IP地址等信息。
  • 网络层根据路由选择算法,将数据报从源主机发送到目的主机。
数据链路层:
  • 数据链路层负责处理本地网络的通信,包括帧的构造和解析。
  • 在数据链路层,IP数据报被封装成帧(frame)。封装过程中,会添加帧头(包含源MAC地址和目的MAC地址)和帧尾(包含校验信息)。
  • 数据链路层通过物理层提供的服务,将数据帧从一个节点传输到下一个节点。
物理层:
  • 物理层是TCP/IP模型的最底层,负责将比特流转换成物理信号,并在物理介质上进行传输。
  • 物理层将数据帧转换成适合在物理介质上传输的比特流,如电信号或光信号。
  • 比特流通过物理介质(如电缆、光纤等)传输到目的主机。

应用层

相关问题
  • uri 和 url 的区别 ?
  • dns 是啥工作原理,主要解析过程是啥?
  • 用户输入网址到显示对应页面的全过程是啥?
  • http 头部包含哪些信息?
  • http 方法了解哪些?
  • http 状态码了解哪些?
  • get 和 post 的区别?
  • https 和 https 的区别?
  • https 的加密方式?
  • http 是不保存状态的协议,如何保存用户状态?
  • http 不同版本的区别?
万维网和域名系统

万维网(简称WWW或Web)和域名系统(简称DNS)是互联网中两个重要的组成部分,它们各自在互联网的运作中扮演着关键角色。

P2P和C/S

P2P(Peer-to-Peer)与C/S(Client/Server)是计算机网络中两种常见的通信模式,P2P是一种去中心化的网络架构,适用于资源共享和实时通信;而C/S是一种中心化的架构,适用于需要集中管理和控制的应用场景。

P2P(Peer-to-Peer)

定义:P2P是一种网络架构,其中每个设备(称为“对等点”或“节点”)都可以直接与其他设备通信,而不需要通过中央服务器。

特点:

  • 去中心化:没有中央控制点,每个节点都可以相互通信。
  • 资源共享:节点可以共享文件、带宽等资源。
  • 灵活:节点可以动态地加入或离开网络。

应用场景:文件共享(如BitTorrent)、即时通讯(如Skype或某些在线游戏)。

C/S(Client/Server)

定义:C/S架构中,有一个或多个服务器负责存储数据和处理请求,而客户端设备(如电脑、手机等)则发送请求给服务器并接收响应。

特点:

  • 集中管理:数据和服务由服务器集中提供。
  • 安全性:服务器可以提供安全控制和数据完整性检查。
  • 响应速度快:客户端与服务器直接通信,响应通常较快。

应用场景:Web应用(如网站)、数据库系统、电子邮件服务等。

Web结构组件

web结构组件指的是构成Web系统的基础元素,这些组件共同协作,使得Web应用能够正常运行并提供服务,以下是一些Web结构组件:

组件名称定义作用
代理(Proxy)中间服务器,用于转发客户端和服务器之间的请求和响应提高性能、安全性或进行内容过滤
缓存(Cache)存储常用页面副本的地方,以减少网络带宽使用和加快页面加载速度提高Web应用的响应速度
网关(Gateway)连接其他应用或服务的服务器,例如连接Web服务器到FTP服务器的中间件协议转换和服务集成
Agent代理发起HTTP请求的Web客户端,如浏览器、网络爬虫等代表用户或系统发送HTTP请求
Web组件(Web Components)封装好的可复用的自定义元素,用于构建Web应用提高Web开发的效率和可维护性
网络协议(Network Protocols)计算机之间通信的规则,如HTTP和HTTPS确保客户端和服务器之间能够正确通信
域名系统(DNS)将域名转换为IP地址的系统使人们可以通过易记的域名来访问网站
DNS

域名服务器(Domain Name Server,简称DNS)是互联网中至关重要的基础设施之一,它负责将人类可读的域名(如example.com)映射到与之对应的IP地址(如192.0.2.1)。

工作原理

假设一个客户端 A,想要查询 a.leetcode.cn 的 ip 地址,考虑缓存的情况。

  • 客户端 A 首先查询本地的 hosts 文件,查询是否有网址映射关系,如果没有,进行下一步查找。
  • 查找本地的 dns 解析器缓存,如果没有进行下一步。
  • 根据 tcp/ip 参数查找设置好的首选 dns 服务器 ip 地址,一般叫做本地 dns 服务器,查询本地 dns 服务器。本地 dns 服务器如果没有,它就会进行下一步操作。
  • 本地dns会访问根服务器 ,然后根据后缀名,从根服务器中查找对应的顶级域名服务器的 ip ,然后以此向下查找域名服务器的 ip ,然后查找网址映射关系,直到找到为止。
http

http(超文本传输协议)是互联网上应用最为广泛的一种网络协议。HTTP 协议是用于从 Web 服务器传输超文本到本地浏览器的传送协议。它可以使浏览器更加高效,使网络传输减少。它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先显示(如文本先于图形)等。

HTTP 的工作原理是基于客户端-服务器架构。客户端(例如,Web 浏览器)向服务器(例如,Web 服务器)发送 HTTP 请求以获取资源(如 HTML 页面、图片、CSS 样式表、JavaScript 脚本等)。服务器响应这些请求,通过发送 HTTP 响应来提供所需的资源。

HTTPS(HTTP Secure)是在 HTTP 基础上加入了 SSL/TLS 加密技术,提供了安全的数据传输方式。

主要特点包括:
  • 无连接:HTTP 协议是无连接的,即每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。

  • 无状态:HTTP 协议是无状态的,协议对于事务处理没有记忆能力。服务器不知道客户端之前发送过什么请求,也不知道客户端下一次会发送什么请求。

  • 简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有 GET、POST、PUT、DELETE 等。每种方法规定了客户端与服务器联系的类型不同。由于 HTTP 协议简单,使得 HTTP 服务器的程序规模小,因而通信速度很快。

  • 支持 B/S 模式:HTTP 支持客户端/服务器模式,客户端可以通过 HTTP 协议向服务器发送请求,服务器也可以通过 HTTP 协议将请求的内容返回给客户端。

网络编程socket

网络编程中的 socket 是一种抽象层,它允许应用程序(通常称为“客户端”和“服务器”)通过计算机网络进行通信。socket 提供了一种跨平台、跨语言的网络编程接口,使得在不同的操作系统和编程语言中都可以使用类似的方式进行网络通信。

基本概念
  1. IP 地址:用于唯一标识网络中的设备。
  2. 端口号:用于标识运行在同一台设备上的不同应用程序。每个端口号对应一个特定的服务或应用程序。
  3. TCP/UDP:两种主要的传输层协议。TCP 是面向连接的协议,提供可靠的数据传输服务;UDP 是无连接的协议,提供不可靠的数据传输服务,但速度更快。
工作原理
  1. 创建 socket:应用程序首先创建一个 socket 对象,指定使用的协议(TCP 或 UDP)和本地端口号(如果需要)。
  2. 绑定 socket:对于服务器端的 socket,需要将其绑定到一个特定的 IP 地址和端口号上,以便客户端能够找到并连接到它。
  3. 监听和接受连接(仅适用于 TCP):服务器端的 socket 开始监听来自客户端的连接请求。当有客户端连接时,服务器接受连接并创建一个新的 socket 对象来处理与该客户端的通信。
  4. 发送和接收数据:通过 socket 对象,应用程序可以发送和接收数据。对于 TCP,数据以字节流的形式传输;对于 UDP,数据以数据报的形式传输。
  5. 关闭 socket:当通信完成后,应用程序关闭 socket 对象以释放资源。
示例(基于 Python)
服务器端
import socket# 创建一个 TCP socket 对象
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)# 绑定到 IP 地址和端口号
server_address = ('localhost', 12345)
server_socket.bind(server_address)# 开始监听连接请求
server_socket.listen(1)while True:# 接受连接请求并返回一个新的 socket 对象和客户端地址client_socket, client_address = server_socket.accept()print(f"Accepted connection from {client_address}")# 接收并处理数据(这里只是简单地回显数据)data = client_socket.recv(1024)if data:print(f"Received: {data.decode()}")client_socket.sendall(data)  # 回显数据给客户端# 关闭连接client_socket.close()
客户端
import socket# 创建一个 TCP socket 对象
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)# 连接到服务器
server_address = ('localhost', 12345)
client_socket.connect(server_address)try:# 发送数据message = b'Hello, server!'client_socket.sendall(message)# 接收数据data = client_socket.recv(1024)print(f"Received: {data.decode()}")
finally:# 关闭连接client_socket.close()

在这个示例中,服务器端创建一个 TCP socket 对象并绑定到本地地址和端口号上,然后开始监听连接请求。客户端也创建一个 TCP socket 对象并连接到服务器。一旦连接建立,客户端发送数据给服务器,服务器接收数据并回显给客户端。最后,双方关闭连接以释放资源。

传输层

传输层(Transport Layer)是计算机网络体系结构中的关键层次之一,主要负责两台计算机之间(或更准确地说,是两个主机中进程之间)的数据通信服务。

  • 为什么要进行三次握手?两次握手可以吗?
  • 为什么要四次挥手?
  • CTIME-WAIT 为什么是 2MSL?
  • TCP 和 UDP 的区别?
  • TCP 是如何保证可靠性的,UDP 为什么是不可靠的 ?
  • TCP 报文包含哪些信息 ?
  • UDP 包含哪些信息
  • 三次握手和四次挥手过程中,网络断开会发生什么?
端口号的使用
  • 传输层使用端口号来区分不同的应用进程。端口号是一个16位的整数,范围从0到65535。其中,0到1023为知名端口(Well-Known Ports),由IANA注册,用于特定的服务;1024到65535为动态/私有端口,可由用户自由分配。
  • 通过“IP地址+端口号”的组合,传输层能够唯一标识网络中的一个通信端口,从而实现数据的准确传输。
UDP协议

UDP(User Datagram Protocol,用户数据报协议)是一种无连接的、不可靠的、面向数据报的传输层协议。它工作在OSI模型的传输层,为应用层提供了一种简单的、直接的数据传输服务。

特点:
  1. 无连接
    • UDP在发送数据之前不需要建立连接。发送方和接收方之间不保持连接状态,每个数据报都是独立传输的。
  2. 不可靠
    • UDP不保证数据报的顺序、完整性或是否到达。如果数据报在传输过程中丢失或损坏,UDP不会进行重传或恢复。
  3. 面向数据报
    • UDP将应用层交下来的数据封装成一个个的数据报(Datagram),并添加UDP头部信息,然后交给网络层进行传输。每个数据报都是一个独立的单元,携带完整的源地址和目的地址信息。
  4. 开销小
    • UDP头部只有8个字节,相对于TCP的20字节头部来说更小,因此UDP的传输开销更低,传输效率更高。
  5. 支持多播和广播
    • UDP支持向多个目的地址发送相同的数据报,即多播(Multicast)。同时,它还可以将数据报发送给网络中的所有主机,即广播(Broadcast)。
注意事项
  • 由于UDP不提供可靠的数据传输服务,因此在使用UDP时,应用层需要自行处理数据的可靠性问题,如通过应用层协议来确认数据报的接收和重传等。
  • UDP不保证数据报的顺序性,因此接收方可能会以与发送方不同的顺序接收到数据报。如果应用需要保持数据的顺序性,那么应用层需要在发送和接收时进行相应的处理。
TCP协议

TCP(Transmission Control Protocol,传输控制协议)是计算机网络中一种基于连接的、可靠的传输层协议。它提供了一系列机制来确保数据在端到端之间的可靠传输。

特点
  1. 面向连接
    • TCP在数据传输之前需要先建立连接,通过三次握手过程来确保双方都已准备好进行数据传输。
  2. 可靠性
    • TCP通过序列号、确认应答、超时重传等机制来确保数据的完整性和顺序性。如果数据包在传输过程中丢失或损坏,TCP会负责重新发送。
  3. 流控制
    • TCP使用滑动窗口机制来防止发送方发送速度过快,确保接收方能够处理并消化数据。这有助于避免接收方被数据淹没,提高传输效率。
  4. 拥塞控制
    • TCP具有拥塞控制机制,用于适应网络的拥塞情况。当网络出现拥塞时,TCP会自动减少发送速率,以减轻网络负担,避免性能下降。
  5. 面向字节流
    • TCP将传输的数据视为无边界的字节流,而不是像UDP那样按照消息边界进行划分。这意味着发送方可以连续发送数据,而接收方也可以连续接收数据,无需关心数据的原始边界。
  6. 全双工通信
    • TCP连接允许双方在同一时间既能发送数据又能接收数据,提高了通信效率。
工作机制
  1. 三次握手
    • 客户端发送SYN报文给服务器,请求建立连接。
    • 服务器收到SYN报文后,回复SYN+ACK报文给客户端,表示同意建立连接。
    • 客户端收到服务器的SYN+ACK报文后,回复ACK报文给服务器,完成三次握手过程,建立连接。
    • SYN表示标志位,seq表示序列号,ACK表示标志位,Ack表示确认号。
客户端 服务器 请求建立链接:SYN=1,seq=x 同意建立链接:SYN=1,ACK=1,seq=y,Ack=x+1 表示建立链接:ACK=1,Seq=x+1,Ack=y+1 发送数据 发送数据 loop [传输信息] 客户端 服务器
  1. 数据传输
    • 连接建立后,双方可以开始传输数据。TCP通过序列号来标识每个数据包的顺序,并通过确认应答机制来确认数据包的接收情况。
  2. 超时重传
    • 如果客户端在规定时间内没有收到服务器的确认应答,则认为数据包丢失,会重新发送该数据包。
  3. 四次挥手
    • 当一方想要关闭连接时,会发送FIN报文给对方,表示没有数据要发送了。对方收到FIN报文后,会回复ACK报文确认收到,并继续发送完剩余的数据(如果有的话)。当对方也发送完所有数据并想要关闭连接时,也会发送FIN报文给对方。最后,双方通过ACK报文确认连接的关闭。
    • FIN:表示标志位,seq:表示序列号,ACK表示标志位,Ack表示确认号
客户端 服务器 请求关闭链接:FIN=1,seq=x 同意关闭链接:ACK=1,seq=y,Ack=x+1 结束发送,关闭链接:FIN=1,ACK=1,seq=z,Ack=x+1 结束接受,关闭链接:ACK=1,seq=x+1,Ack=z+1 客户端 服务器
三次握手与四次挥手
三次握手:确认双方收发能力
  • 第一次握手(SYN):客户端发送一个SYN报文给服务器,表示客户端想要建立连接,并包含一个初始序列号seq=x。这个报文告诉服务器:“我想要连接你,这是我的初始序列号”。
  • 第二次握手(SYN+ACK):服务器收到客户端的SYN报文后,会回复一个SYN+ACK报文给客户端。这个报文包含服务器的初始序列号seq=y,以及对客户端SYN报文的确认号ack=x+1。这个报文告诉客户端:“我收到了你的请求,我想要连接你,这是我的初始序列号,并且我已经确认了你的序列号”。
  • 第三次握手(ACK):客户端收到服务器的SYN+ACK报文后,会回复一个ACK报文给服务器。这个报文包含对服务器SYN报文的确认号ack=y+1,但不包含序列号(因为这是一个纯确认报文)。这个报文告诉服务器:“我收到了你的回复,我已经准备好开始传输数据了”。
四次挥手:确保数据完整传输
  • 当一方想要关闭连接时,它不能直接断开连接,因为可能还有未发送或未接收的数据。因此,它需要发送一个FIN报文给对方,告诉对方:“我已经没有数据要发送了,但请允许我接收你的数据”。
  • 对方收到FIN报文后,会回复一个ACK报文,表示已经收到对方的关闭请求,但自己可能还有数据要发送。此时,连接处于半关闭状态,即一方已经关闭发送通道,但另一方仍然可以发送数据。
  • 当没有数据要发送时,另一方也会发送一个FIN报文给对方,表示自己也想要关闭连接。
  • 最后,对方回复一个ACK报文,确认已经收到对方的FIN报文,此时连接才真正关闭。
确保可靠的机制

TCP(传输控制协议)通过一系列复杂的机制来确保数据的可靠传输。校验和、序列号和确认应答机制保证了数据的完整性和顺序性;超时重传机制避免了因网络原因导致的数据丢失;连接管理(三次握手与四次挥手)确保了连接的可靠建立和正确关闭;流量控制和拥塞控制机制则保证了网络的稳定性和高效性。以下是对这些机制的详细归纳:

1. 校验和
  • 计算方式:在数据传输过程中,TCP将发送的数据段当做一个16位的整数进行累加(进位不丢弃,补在后面),最后取反得到校验和。
  • 作用:发送方在发送数据前计算校验和并填充在报文头中,接收方收到数据后同样计算校验和并与发送方的校验和进行比对。如果比对不一致,则数据一定传输有误。
2. 序列号
  • 作用:TCP为每个字节的数据都进行了编号,这就是序列号。序列号用于确保数据的顺序性和去除重复数据。
  • 确认应答:接收方收到数据后,会向发送方发送ACK报文,其中带有对应的确认序列号,告诉发送方哪些数据已经被成功接收。
3. 确认应答与超时重传
  • 确认应答:TCP传输过程中,每次接收方收到数据后都会发送ACK报文进行确认。
  • 超时重传:如果发送方在发送数据后等待一定时间(如Linux中以500ms为单位,超时时间呈指数增长)仍未收到ACK报文,则会重新发送该数据。这避免了因网络原因导致的数据丢失。
4. 连接管理(三次握手与四次挥手)
  • 三次握手:用于建立连接,确保双方都已准备好进行数据传输。
    1. 客户端发送SYN报文给服务器。
    2. 服务器回复SYN+ACK报文给客户端。
    3. 客户端回复ACK报文给服务器,连接建立成功。
  • 四次挥手:用于关闭连接,确保双方都已正确处理完所有数据。
    1. 客户端发送FIN报文给服务器,表示不再发送数据。
    2. 服务器回复ACK报文给客户端,表示收到FIN报文。
    3. 服务器发送FIN报文给客户端,表示也不再发送数据。
    4. 客户端回复ACK报文给服务器,连接关闭成功。
5. 流量控制
  • 滑动窗口机制:TCP利用滑动窗口机制实现流量控制,通过限制发送方窗口大小来防止发送速度过快导致接收方处理不及时而丢包。

    窗口大小:TCP报头中有一个16位的窗口大小字段,表示接收端接收数据缓冲区的剩余大小。发送方根据接收方发送的窗口大小来调整自己的发送速度。

6. 拥塞控制
  • 慢启动:TCP连接刚建立时,发送方限制自己的初始发送窗口大小,避免发送过多数据导致网络拥塞。窗口大小以指数级别增加,直到达到一个阈值。
  • 拥塞避免:在拥塞避免状态下,TCP发送方每经过一轮传输就增加一个MSS(最大报文段长度)的窗口大小。
  • 拥塞检测与快速恢复:当TCP发送方收到超时重传或失序的确认消息时,会认为网络中出现拥塞,并采取相应的措施(如减小窗口大小、进入慢启动状态或快速恢复状态)来避免拥塞加剧。

相关文章:

计算机网络概述--自我学习用

计算网络体系概述 相关问题 计算机网络为什么要分层?计算机网络是怎么分层的?三种计算机网络模型的关系是什么?每一层分别包含哪些协议?计算机网络中,数据如何在各层中传播?数据在网络各层中的存在形式是…...

超级好用的java http请求工具

kong-http 基于okhttp封装的轻量级http客户端 使用方式 Maven <dependency><groupId>io.github.kongweiguang</groupId><artifactId>kong-http</artifactId><version>0.1</version> </dependency>Gradle implementation …...

在原有的iconfont.css文件中加入新的字体图标

前言&#xff1a;在阿里图标库中&#xff0c;如果你没有这个字体图标的线上项目&#xff0c;那么你怎么在本地项目中的原始图标文件中添加新的图标呢&#xff1f; 背景&#xff1a;现有一个vue项目&#xff0c;下面是这个前端项目的字体图标文件。现在需要新开发功能页&#x…...

使用 ESP32-WROOM + DHT11 做个无屏温湿度计

最近梅雨天&#xff0c;有个房间湿度很大&#xff0c;而我需要远程查看温湿度&#xff0c;所以无所谓有没有显示屏&#xff0c;某宝上的温湿度计都是带屏的&#xff0c;如果连WIFI查看温湿度操作也比较麻烦&#xff0c;还需要换电池&#xff0c;实在不能满足我的需求&#xff0…...

如何使用 SwiftUI 构建 visionOS 应用

文章目录 前言WindowsVolumes沉浸式空间结论 前言 Apple Vision Pro 即将推出&#xff0c;现在是看看 SwiftUI API 的完美时机&#xff0c;这使我们能够将我们的应用程序适应 visionOS 提供的沉浸式世界。苹果表示&#xff0c;构建应用程序的最佳方式是使用 Swift 和 SwiftUI。…...

InspireFace-商用级的跨平台开源人脸分析SDK

InspireFace-商用级的跨平台开源人脸分析SDK InspireFaceSDK是由insightface开发的⼀款⼈脸识别软件开发⼯具包&#xff08;SDK&#xff09;。它提供了⼀系列功能&#xff0c;可以满⾜各种应⽤场景下的⼈脸识别需求&#xff0c;包括但不限于闸机、⼈脸⻔禁、⼈脸验证等。 该S…...

华为HCIP Datacom H12-821 卷24

1.单选题 企业大楼有大量员工通常都在上班时在大厅开始接入到公司的WLAN网络,随着每位员工走到各自的工位过程中,每个人的移动端叶通过漫游的方式漫游到各自的网络覆盖区域。为了尽量保证每个终端的IP地址是固定的,建议的做法是? A、配置VLAN Pool并配置顺序算法 B、…...

TikTok马来西亚直播网络怎么配置?

TikTok是一款全球流行的社交媒体应用&#xff0c;在东南亚地区拥有大量用户。在马来西亚这个多元化的国家&#xff0c;配置高效稳定的直播网络对TikTok的运营至关重要。 配置马来西亚直播网络的必要性 广泛的地理覆盖&#xff1a;马来西亚包括大片陆地和众多岛屿&#xff0c;网…...

基于若依的文件上传、下载

基于若依实现文件上传、下载 文章目录 基于若依实现文件上传、下载1、前端实现-文件上传1.1 通用上传分析1.2 修改实现上传接口 2、后端实现-文件上传3、后端实现-文件下载4、前端实现-文件下载 官网其实也写了&#xff0c;但是我是自己改造封装了一下&#xff0c;再次迈向全栈…...

论文回顾 | CVPR 2021 | How to Calibrate Your Event Camera | 基于图像重建的事件相机校准新方法

论文速览 | CVPR 2021 | How to Calibrate Your Event Camera | 基于图像重建的事件相机校准新方法 1 引言 在计算机视觉和机器人领域,相机校准一直是一个基础而又重要的问题。传统的相机校准方法主要依赖于从已知校准图案中提取角点,然后通过优化算法求解相机的内参和外参。这…...

高级java每日一道面试题-2024年7月1日

题目&#xff1a;请解释 Java 中的内存泄漏&#xff0c;并说明如何检测和避免内存泄漏。 答案&#xff1a; 内存泄漏指的是程序中不再使用的对象&#xff0c;由于某些原因没有被垃圾回收器回收&#xff0c;仍然占据着内存空间&#xff0c;导致可用内存逐渐减少&#xff0c;最…...

当需要对多个表进行联合更新操作时,怎样确保数据的一致性?

文章目录 一、问题分析二、解决方案三、示例代码&#xff08;以 MySQL 为例&#xff09;四、加锁机制示例五、测试和验证六、总结 在数据库管理中&#xff0c;经常会遇到需要对多个表进行联合更新的情况。这种操作带来了一定的复杂性&#xff0c;因为要确保在整个更新过程中数据…...

数据结构-线性表的应用

目录 前言一、有序表的合并1.1 顺序表实现1.2 单链表实现 二、稀疏多项式的相加和相乘2.1 稀疏多项式的相加2.2 稀疏多项式的相乘 总结 前言 本篇文章介绍线性表的应用&#xff0c;分别使用顺序表和单链表实现有序表的合并&#xff0c;最后介绍如何使用单链表实现两个稀疏多项…...

cpp http server/client

httplib 使用httplib库 basedemo server.cpp #include "httplib.h" #include <iostream> using namespace httplib;int main(void) {Server svr;svr.Get("/hello", [](const Request& req, Response& res) {std::cout << "lo…...

昇思25天学习打卡营第2天|MindSpore快速入门

打卡 目录 打卡 快速入门案例&#xff1a;minist图像数据识别任务 案例任务说明 流程 1 加载并处理数据集 2 模型网络构建与定义 3 模型约束定义 4 模型训练 5 模型保存 6 模型推理 相关参考文档入门理解 MindSpore数据处理引擎 模型网络参数初始化 模型优化器 …...

django之url路径

方式一&#xff1a;path 语法&#xff1a;<<转换器类型:自定义>> 作用&#xff1a;若转换器类型匹配到对应类型的数据&#xff0c;则将数据按照关键字传参的方式传递给视图函数 类型&#xff1a; str: 匹配除了”/“之外的非空字符串。 /test/zvxint: 匹配0或任何…...

【OnlyOffice】桌面应用编辑器,插件开发大赛,等你来挑战

OnlyOffice&#xff0c;桌面应用编辑器&#xff0c;最近版本已从8.0升级到了8.1 从PDF、Word、Excel、PPT等全面进行了升级。随着AI应用持续的火热&#xff0c;OnlyOffice也在不断推出AI相关插件。 因此&#xff0c;在此给大家推荐一下OnlyOffice本次的插件开发大赛。 详细信息…...

[学习笔记]SQL学习笔记(连载中。。。)

学习视频&#xff1a;【数据库】SQL 3小时快速入门 #数据库教程 #SQL教程 #MySQL教程 #database#Python连接数据库 目录 1.SQL的基础知识1.1.表(table)和键(key)1.2.外键、联合主键 2.MySQL安装&#xff08;略&#xff0c;请自行参考视频&#xff09;3.基本的MySQL语法3.1.规…...

Buuctf之SimpleRev做法

首先&#xff0c;查个壳&#xff0c;64bit&#xff0c;那就丢进ida64中进行反编译进来之后&#xff0c;我们进入main函数&#xff0c;发现里面没什么东西&#xff0c;那就shiftf12搜索字符串&#xff0c;找到关键字符串&#xff0c;双击进入然后再选中该字符串&#xff0c;ctrl…...

【云原生监控】Prometheus 普罗米修斯从搭建到使用详解

目录 一、前言 二、服务监控概述 2.1 什么是微服务监控 2.2 微服务监控指标 2.3 微服务监控工具 三、Prometheus概述 3.1 Prometheus是什么 3.2 Prometheus 特点 3.3 Prometheus 架构图 3.3.1 Prometheus核心组件 3.3.2 Prometheus 工作流程 3.4 Prometheus 应用场景…...

React Native 导航系统实战(React Navigation)

导航系统实战&#xff08;React Navigation&#xff09; React Navigation 是 React Native 应用中最常用的导航库之一&#xff0c;它提供了多种导航模式&#xff0c;如堆栈导航&#xff08;Stack Navigator&#xff09;、标签导航&#xff08;Tab Navigator&#xff09;和抽屉…...

UE5 学习系列(三)创建和移动物体

这篇博客是该系列的第三篇&#xff0c;是在之前两篇博客的基础上展开&#xff0c;主要介绍如何在操作界面中创建和拖动物体&#xff0c;这篇博客跟随的视频链接如下&#xff1a; B 站视频&#xff1a;s03-创建和移动物体 如果你不打算开之前的博客并且对UE5 比较熟的话按照以…...

为什么需要建设工程项目管理?工程项目管理有哪些亮点功能?

在建筑行业&#xff0c;项目管理的重要性不言而喻。随着工程规模的扩大、技术复杂度的提升&#xff0c;传统的管理模式已经难以满足现代工程的需求。过去&#xff0c;许多企业依赖手工记录、口头沟通和分散的信息管理&#xff0c;导致效率低下、成本失控、风险频发。例如&#…...

【机器视觉】单目测距——运动结构恢复

ps&#xff1a;图是随便找的&#xff0c;为了凑个封面 前言 在前面对光流法进行进一步改进&#xff0c;希望将2D光流推广至3D场景流时&#xff0c;发现2D转3D过程中存在尺度歧义问题&#xff0c;需要补全摄像头拍摄图像中缺失的深度信息&#xff0c;否则解空间不收敛&#xf…...

1.3 VSCode安装与环境配置

进入网址Visual Studio Code - Code Editing. Redefined下载.deb文件&#xff0c;然后打开终端&#xff0c;进入下载文件夹&#xff0c;键入命令 sudo dpkg -i code_1.100.3-1748872405_amd64.deb 在终端键入命令code即启动vscode 需要安装插件列表 1.Chinese简化 2.ros …...

高等数学(下)题型笔记(八)空间解析几何与向量代数

目录 0 前言 1 向量的点乘 1.1 基本公式 1.2 例题 2 向量的叉乘 2.1 基础知识 2.2 例题 3 空间平面方程 3.1 基础知识 3.2 例题 4 空间直线方程 4.1 基础知识 4.2 例题 5 旋转曲面及其方程 5.1 基础知识 5.2 例题 6 空间曲面的法线与切平面 6.1 基础知识 6.2…...

WordPress插件:AI多语言写作与智能配图、免费AI模型、SEO文章生成

厌倦手动写WordPress文章&#xff1f;AI自动生成&#xff0c;效率提升10倍&#xff01; 支持多语言、自动配图、定时发布&#xff0c;让内容创作更轻松&#xff01; AI内容生成 → 不想每天写文章&#xff1f;AI一键生成高质量内容&#xff01;多语言支持 → 跨境电商必备&am…...

工业自动化时代的精准装配革新:迁移科技3D视觉系统如何重塑机器人定位装配

AI3D视觉的工业赋能者 迁移科技成立于2017年&#xff0c;作为行业领先的3D工业相机及视觉系统供应商&#xff0c;累计完成数亿元融资。其核心技术覆盖硬件设计、算法优化及软件集成&#xff0c;通过稳定、易用、高回报的AI3D视觉系统&#xff0c;为汽车、新能源、金属制造等行…...

css3笔记 (1) 自用

outline: none 用于移除元素获得焦点时默认的轮廓线 broder:0 用于移除边框 font-size&#xff1a;0 用于设置字体不显示 list-style: none 消除<li> 标签默认样式 margin: xx auto 版心居中 width:100% 通栏 vertical-align 作用于行内元素 / 表格单元格&#xff…...

网络编程(UDP编程)

思维导图 UDP基础编程&#xff08;单播&#xff09; 1.流程图 服务器&#xff1a;短信的接收方 创建套接字 (socket)-----------------------------------------》有手机指定网络信息-----------------------------------------------》有号码绑定套接字 (bind)--------------…...