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

网络基础(一)

文章目录:

  • 计算机网络认识
  • 计算机网络背景
    • 网络发展
    • 认识 “协议”
  • 网络协议初识
    • 协议分层
    • OSI七层模型
    • TC/IP 五层(或四层)模型
  • 网络传输基本流程
    • 网络传输流程图
    • 同局域网的两台主机进行通信
    • 跨网络的两台主机进行通信
    • 数据包的封装和分用
  • 网络中的地址管理
    • 认识IP地址
    • 认识MAC地址

计算机网络认识

计算机网络由两台或多台计算机组成,这些计算机通过电缆(有线)或 WIFI(无线)连接起来,目的是传输、交换或共享数据和资源。通过使用硬件(例如:路由器、交换机、接入点和电缆)和软件(例如:操作系统或业务应用程序)构建计算机网络。

计算机网络的核心是数据通信,它通过将数据划分为小的数据包,并通过网络传输这些数据包来实现信息的传递。计算机网络通常由以下几个要素组成:

  • 网络设备:包括路由器、交换机、集线器等,用于连接和转发数据包。这些设备在网络中负责数据的转发、路由选择和信号放大等功能。
  • 数据链路:通信数据链路是连接计算机网络中设备的物理媒介,可以是有线媒介或者无线媒介。数据通过数据链路进行传输。
  • 协议:计算机网络使用一系列规定数据格式、传输方式和控制过程的协议来实现通信。常见的网络协议包括 TCP/IP 协议、HTTP 协议、FTP 协议等。协议规定了数据的封装格式、传输方式、错误检测和纠正等。
  • 网络拓扑:网络拓扑指计算机网络中各设备之间的物理或逻辑连接方式。

计算机网络背景

网络发展

独立模式:计算机之间相互独立

在计算机网络的早期阶段,计算机之间先相互独立运行,没有连接在一起,每台计算机独立完成自己的任务,数据共享和通信较为困难。

在这里插入图片描述
如上所示,如果多个计算机要协同完成某种任务,那么只能等其中一台计算机完成将数据传递给下一台,然后吓一跳计算机再进行相应的任务处理,这样效率是非常低的。

网络互联: 多台计算机连接在一起, 完成数据共享

随着计算机数量的增加,人们意识到将多台计算机连接在一起可以实现数据共享和协同工作。这促使了计算机网络的发展,通过网络连接,计算机可以相互通信和共享数据。

在这里插入图片描述

局域网LAN:计算机数量更多了,通过交换机和路由器连接在一起

随着计算机网络的普及,人们开始在局域范围内连接更多的计算机,形成局域网。局域网通常由交换机和路由器等网络设备连接起来,实现跨地域的数据通信和资源共享。

在这里插入图片描述

广域网WAN:将远隔千里的计算机都连在一起

连接不同地理位置的局域网,形成广域网。广域网通过路由器和其它网咯设备将多个局域网连接起来,实现跨地域的数据通信和资源共享。

在这里插入图片描述

所谓的 “局域网” 和 “广域网” 只是一个相对的概念。

认识 “协议”

“协议” 是一种约定或规范,用于定义通信双方在进行交互时必须遵守的规则和步骤。在计算机网络中,网络协议是指通信计算机之间必须共同遵守的一组约定,以确保数据的可靠传输和有效处理。

网络协议可以被视为一种语言,它规定了通信的格式、数据的编码方式、消息的传递顺序以及错误处理等细节。通过遵循相同的协议,通信双方能够理解和解释对方发送的数据,从而实现有效的数据交换和通信。

一个生活中关于 “协议” 的简单例子:

生活中的交通规则就是一种协议,用于规范道路上的车辆和行人如何行驶和交互。如红绿灯信号、交通标志等都是交通规则的一部分,它们确保了交通的有序和安全。

网络协议初识

协议分层

协议提供了一种通信服务,主要定义设备之间通信所使用的语言。当通信简单时,我们可以只使用一种简单的协议。当通信复杂时,我们必须将任务分解到不同的层次中,因为我们需要在每个层次上遵循一个协议,这种技术被称为协议分层。

这种分层使我们能够将服务与实现分离。每个层次需要从较低层次接收一组服务,并向较高层次提供服务。对任何一个层次的修改都不会影响其它层次。

为什么引入分层设计?

网络协议栈设计成层状结构,其目的就是为了解耦不同功能和任务,并提供更好的可维护性和可扩展性。

例如:在打电话的时候,真正的通话过程并不是直接将 A 所说的话直接传递给 B ,而是先将 A 所说的话记录下来,再将其进行编码,然后通过网络将其发送到 B 的手机上,然后 B 的手机中对应的器件对通话数据进行解码,然后得到 A 所通话的数据。

若 A 与 B 进行通过都是使用的汉语,我们将其称为语言层。手机与手机之间通信使用的是手机设备相关的一些接口,我们将其称为通信设备层。

在这里插入图片描述
随着科技全球化的发展,手机也不仅仅是在一个国家进行使用,手机售卖到其它国家之后,此时上层的通信语言变了,但是依旧可以正常使用。

在这里插入图片描述

分层的一个主要优势就是封装。分层架构将通信系统划分为多个层次,每个层次负责特定的功能和任务。每个层次都有定义明确的接口和协议,它们之间通过这些接口进行通信。

当某个层次的协议需要进行更改或替换时,由于每个层次都有清晰的接口定义,只需在该层次进行修改,而不影响其它层次的实现。这种封装性使得系统更加灵活和可扩展。

网络协议分层结构的好处主要有以下几方面:

1️⃣ 分工明确:每一层协议都有自己的功能和职责,可以避免功能冗余。如:物理层负责数据的传输,网络层负责数据包的路由,传输层负责提供端到端的数据传输服务。
2️⃣ 灵活性:对每一次协议的修改或替换都不会影响到其他层。如:可以在不改变网络层和传输层的情况下,更换物理层的传输介质。
3️⃣ 可维护性:协议分层结构可以使得设计和维护工作更加简单,每一次都是独立的,可以单独的进行设计和维护。
4️⃣ 复用性:上层可以复用下层提供的服务。如:TCP 和 UDP 协议都复用了 IP 协议提供的数据包传输服务。
5️⃣ 兼容性:不同的网络设备和系统可通过共同遵守的协议来进行通信,实现了不同设备和系统之间的可操作性。
6️⃣ 扩展性:协议分层结构可以方便地添加新的协议和服务。

在网络协议中,同一层的协议可以看作是直接在进行通信,而不需要考虑下层协议的具体细节。

在这里插入图片描述

OSI七层模型

OSI 七层模型(Open System Interconnection Reference Model)是一个用于理解和描述计算机网络通信的参考模型。它将网络通信划分为七个不同的层次,每个层次负责特定的功能和任务。

  • OSI(开放系统互连)七层网络模型称为开放式系统互联参考模型。
  • 把网络从逻辑上分为了7层。每一层都有相关、相对应的物理设备,比如路由器,交换机。
  • OSI 七层模型是一种框架性的设计方法,其最主要的功能就是帮助不同类型的主机实现数据传输。
  • 它的最大优点是将服务、接口和协议这三个概念明确的区分出来,概念清楚,理论也比较完整。通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯。
  • 但是它既复杂又不实用,所以在后面具体实现的时候对其进行了调整,因此就有了我们看到的 TCP/IP 四层协议。

OSI 七层模型如下:

在这里插入图片描述
OSI 七层模型提供了一种通用的参考框架,用于理解和描述计算机网络通信的不同层次和功能。每个层次都有特定的协议和功能,它们通过顶柜明确的接口实现相互之间的通信。

TC/IP 五层(或四层)模型

TCP/IP 是一组协议的代名词,它还包括许多协议,组成了 TCP/IP 协议簇。TCP/IP 通讯协议采用了5层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。

物理层: 负责光/电信号的传递方式。比如现在以太网通用的网线(双绞线)、早期以太网采用的同轴电缆(现在主要用于有线电视)、光纤,现在的 WiFi 无线网使用电磁波等都是属于物理层的概念。物理层的能力决定了最大传输速率、传输距离、抗干扰性等。集线器(Hub)工作在物理层。

数据链路层: 负责设备之间的数据帧的传送和识别。例如网卡设备的驱动、帧同步(就是说从网线上检测到什么信号算作新帧的开始)、冲突检测(如果检测到冲突就自动重发)、数据差错校验工作。有以太网、令牌环网、无线 LAN 等标准。交换机(Switch)工作在数据链路层。

网络层: 负责地址管理和路由选择。例如在 IP 协议中,通过 IP 地址来标识一台主机,并通过路由表的方式规划出两台主机之间的数据传输。如传输控制协议(TCP),能够确保数据可靠的从源主机发送到目标主机。

传输层: 负责两台主机之间的数据传输。如传输控制协议(TCP),能够确保数据可靠的从源主机发送到没目标主机。

应用层: 负责应用程序间沟通,如简单电子邮件传输(SMTP),文件传输协议(FTP)、网络远程访问协议(Telnet)等。我们的网络编程主要是针对应用层。

在这里插入图片描述

OSI 模型将网络层细分为网络层和数据链路层,形成七层模型。而 TCP/IP 模型将网络层和数据链路层合并为一个层级,形成了四层模型。

一般而言:

  • 对于一台主机,它的操作系统内核实现了从传输层到物理层的内容;
  • 对于一台路由器,它实现了从网络层到物理层;
  • 对于一台交换机,它实现了从数据链路层到物理层;
  • 对于集线器,它只实现了物理层;

但是并不绝对,很多交换机也实现了网络层的转发;很多路由器也实现了部分传输层的内容(如端口转发)。这些设备的功能范围并不是绝对的,实际上也会有一些交叉和重叠。

网络传输基本流程

网络传输流程图

下面是同一个网段内两台主机进行文件传输的简化网络传输流程图:

在这里插入图片描述

同局域网的两台主机进行通信

在同一个局域网内的两台主机可以直接进行通信。局域网的设计初衷就是为了让局域网内的主机能够方便地相互通信。

在这里插入图片描述

当用户要将文件传输给另一台主机时,文件数据需要经过网络协议栈的封装和解包。

发送端:

  1. 文件数据首先交给应用层,应用层添加应用层协议的包头信息,将数据给到传输层。
  2. 传输层接收数据,添加传输层协议的报头信息,并将数据传递到网络层。
  3. 网络层接收数据,添加网络层协议的报头信息,并将数据传递到链路层。
  4. 链路层接收数据,添加链路层协议的包头信息,并完成数据封装。

数据封装完毕后,通过局域网发送给目标主机。

接收端:

  1. 链路层接收数据,提取链路层协议的报头信息,并将剩余数据传递给网络层。
  2. 网络层接收数据,提取网络层协议的报头信息,并将剩余数据继续传递给传输层。
  3. 传输层接收数据,提取传输层协议的报头信息,并将剩余数据传递给应用层。
  4. 应用层接收数据,提取应用层协议的报头信息,并完成数据的解包和处理。

数据在发送端经过协议栈的封装后,通过局域网发送给目标主机。接收端的协议栈对数据进行解包和分用,将数据送达至应用层进行处理。在这个过程中,每一次协议都会负责添加或提取对于的报头信息,以确保数据正确的传输和处理。自顶向下的封装和自底向上的解包过程就是计算机网络中数据通信的基本原理。

跨网络的两台主机进行通信

跨网段的主机的文件传输。数据从一台计算机到另一台计算机传输的过程中要经过一个或多个路由器。

在这里插入图片描述
局域网之间都是通过路由器连接起来的,因此一个路由器至少横跨两个局域网。这些被路由器级联的局域网都认为,该路由器就是该局域网内的一台主机,因此路由器可以和这些局域网中的任意一台主机进行直接通信。

当路由器级联的两个局域网采用不同的通信标准时,路由器会负责将数据从一个局域网发到另一个局域网,并进行适当的转换和处理。

在这种情况下,路由器会根据接收到的数据的源和目的地址以及对于的网络层协议进行路由选择和转发。当路由器接收到从局域网1发送过来的数据时,路由器会解析以太网的报头,并将剩余的数据传送到网络层。在网络层,路由器会根据目的地址和路由表等信息,将数据转发到适当的局域网2在转发过程中,路由器会根据局域网2采用的通信标准(如令牌环网),为数据添加相应的报头信息,以确保数据能够在局域网2中正确传输。

即通过路由器的处理,不同通信标准的局域网之间的数据传输得以实现。路由器在网络层中起到了关键的作用,负责解析和转发数据,以及进行不同通信标准之间的转换和适配。

关于网络层相关的问题解释

什么是报头(Header)和有效载荷(Payload)?

报头指的是网络数据包或消息的元数据部分,报头一般通过位段实现,它包含了关于数据包的控制信息和描述信息。报头通常位于数据报或消息的首部,用于帮助网络设备或软件识别和处理数据。报头中的信息可以包括源地址、目的地址、协议版本、数据长度、校验和等。

  • 数据封包是指在数据传输过程中,不断地给数据添加各种对应的报头信息。
  • 数据解包是指在接收对数据进行处理时,不断从数据中提取对应的报头,并对提取出来的报头进行数据分析。

有效载荷是指在数据传输中携带的实际数据部分。它是报头之后的内容。有效载荷包含了需要在网络中传输或处理的实际信息。有效载荷的内容可以根据应用程序或协议的需要而有所不同。

报头和有效载荷的区分,有助于在数据传输过程中对数据进行灵活的控制和处理。报头提供了必要的元数据,用于指示和控制数据的传输和处理过程;而有效载荷则是传输的实际数据内容,是数据传输的核心部分。

如何将报头与有效载荷进行正确的分离?

需要将报头与有效载荷进行分离,需要明确报头的大小。在协议设计中,可以采用以下的方法来获取报头的大小:

  • 定长报头:协议设计中,可规定报头的大小。在解包时,接收端根据预先定义的大小来进行信息提取,将报头与有效载荷进行分离。
  • 子描述字段:报头中可以包含一个字段,用来表示报头的长度。这个字段可以是一个固定长度的字段,用来指示报头的大小。解包时,首先提取出该字段,然后根据字段信息来进行有效分离。

无论是定长字段还是子描述字段,都需要在协议设计中明确规定报头的格式和大小,并确保发送端和接收端在解析报头时能够正确地识别和分离报头和有效载荷。

在局域网中传输数据时,所有主机都能收到数据包,但只有目标主机会对该数据进行处理

局域网内传输数据时,数据通常是通过广播或多播的方式发出。广播是将数据发送到局域网中的所有主机,多播是将数据发送到局域网中指定的一组主机。当数据包通过广播或多播的方式发出时,局域网中的所有主机都能收到该数据包。因为局域网是一个共享的物理网络。

即使所有的数据都能收到该数据包,实际上只有目标主机会对该数据包进行处理。每个主机收到数据包时会检测数据包的目的地址,如果匹配自身的地址,就会进行处理,否则丢弃。

在局域网中传输数据时,若只想要特定的主机才能收到,可以使用单播的方式发出。

在网络数据发送时,什么是数据碰撞,怎么避免和处理?

在以太网等共享介质的网络中,多个主机可同时发送数据包到同一个物理网络中。多个主机同时发送数据时,由于信号传播的延迟以及网络中传输介质有限宽带等原因,数据包可能会在传输途中发送碰撞,导致数据包损坏或者丢失。

为了避免数据碰撞,以太网等共享介质的网络采用一种称为 CSMA/CD(Carrier Sense Multiple Access with Collision Detection)的协议。使用该协议的主机会在发送数据前监听网络中是否有其它主机正在发送数据。如检测到有主机正在发送数据,发送主机会等待特定的时间之后再次尝试发送,以减少碰撞。现在的以太网采用了全双工的通信和交换机技术。全双工通信允许同时发送和接收操作,交换机则可以将数据包从一个端口发送到另一个端口,避免了数据碰撞的发生。

局域网中的碰撞攻击

在这种攻击中,攻击者会发送大量的垃圾数据到局域网中,导致其它主机发送的有效数据与这些垃圾数据发生碰撞,从而造成网络瘫痪和阻塞。为了绕过 “碰撞避免” 算法,攻击者可能会采用多种手段。

碰撞攻击可能对局域网造成严重的影响,它会导致网络瘫痪或拥塞。为了防范碰撞攻击,可以采用很多措施,如:使用入侵检测系统、实施流量检测等。

网络主机中的 MAC 地址

MAC 地址(Media Access Control Address)是网络中的一个唯一标识符,用于在局域网中识别和寻址网络设备。

在局域网中,每个主机都可以通过 MAC 地址来判断数据包是不是发给自己的。每个主机都有一个 MAC 地址,该地址在网络接口卡(INC)中预先配置。当一个主机收到一个 MAC 数据帧时,它会检测该数据帧的目的 MAC 地址字段。如果与自己的 MAC 地址相匹配,则该主机继续处理该数据包,若不匹配,则丢弃。

MAC 地址是在数据链路层进行识别和判断的。在网络层和传输层以上的协议中,主机会使用 IP 地址和端口号来确定数据是不是发给自己的。MAC 地址是在局域网范围内使用的,在不同的局域网之间是无法直接进行传输的。在通过路由器连接到不同的网络情况下,数据包会被封装成 IP 数据包,然后使用 IP 地址寻址和路由。

IP地址的存在屏蔽了网络底层实现的差异

IP地址是在网络层使用的,它提供了一种统一的寻址方式,使得不同的网络可以通过IP地址进行通信。使用IP地址,网络设备可以将数据包传输到目标设备,而不需要关心网络底层的实现细节。

数据包的封装和分用

  • 不同的协议层对数据包有不同的称谓,在传输层叫做段(segment),在网络层叫做数据报(datagram),在链路层叫做帧(frame)。
  • 应用层数据通过协议栈发到网络上时,每个协议层都会在原始数据上添加一个首部(header),从而形成一个数据包,称为封装(Encapsulation)。
  • 首部信息中包含了一些必要信息,如首部长度、载荷长度、上层协议等信息。
  • 数据封装成帧后发送到传输介质上,到达目的主机后每层协议再分离数据首部,根据首部中的 “上层协议” 字段将数据交互给对应的上层协议进行处理。

下图为数据封装的过程:
在这里插入图片描述

下图为数据分用的过程:

在这里插入图片描述

网络中的地址管理

认识IP地址

IP协议有两个版本,IPv4 和 IPv6。在没有特殊说明的情况下,通常所说的 IP 地址都是 IPv4。

  • IP 地址是在 IP 协议中,用来标识网络中不同主机的地址;
  • 在 IPv4 中,它由4个字节组成,32位的整数,如(192.168.0.1);
  • 我们通常也使用 “点分十进制” 的字符串来表示 IP 地址,如:192.168.0.1,用点分割的每一个数字表示一个字节,范围是 0-255;
  • 随着互联网的发展和 IPv4 地址的枯竭,IPv6 被逐渐引入。IPv6 采用128位的地址空间,以克服 IPv4 中可用地址数量有限的问题。IPv6 通常以冒号分隔的八组十进制数表示。

认识MAC地址

  • MAC 地址用于在数据链路层识别相连节点的地址;
  • 它的长度为48位,也就是6个字节。一般使用16进制数字加上冒号(:)的形式来表示,例如:08:00:27:03:fb:19;
  • MAC 地址在网卡出厂时就确定了,并且通常是唯一的,不能修改(虚拟机中的 MAC 地址不是真实的 MAC 地址,可能会冲突;也有些网卡支持用户配置 MAC 地址)。
  • MAC 地址是在数据链路层使用的。它与 IP 地址不同,IP 地址是在网络层使用的,两者都用于在互联网中标识和定位设备。

相关文章:

网络基础(一)

文章目录: 计算机网络认识计算机网络背景网络发展认识 “协议” 网络协议初识协议分层OSI七层模型TC/IP 五层(或四层)模型 网络传输基本流程网络传输流程图同局域网的两台主机进行通信跨网络的两台主机进行通信数据包的封装和分用 网络中的地…...

SQLServer添加Oracle链接服务器

又一次在项目中用到了在SQLServer添加Oracle链接服务器,发现之前文章写的也不太好使,那就再总结一次吧。 1、安装OracleClient 安装64位,多数SQLServer是64位,所以OracleClient也安装64位的; 再一个一般安装的Oracl…...

2017年计网408

第33题 假设 OSI 参考模型的应用层欲发送 400B 的数据 (无拆分), 除物理层和应用层之外, 其他各层在封装 PDU 时均引入 20 B 的额外开销, 则应用层数据传输效率约为( )A. 80%B. 83%C. 87%D. 91% 本题考察有关数据包逐层封装的相关概念。我们来一起分析一下。 这是要求大家必须…...

UE5中APlayerController属性与方法列表(翻译中......)

一、属性列表 类型 名称 描述 TObjectPtr< APa... AcknowledgedPawn 用于网络游戏&#xff0c;使客户端可以承认它拥有一个特定的卒。 TArray< FActive... ActiveForceFeedbackEffects TSharedPtr< str... ActiveHapticEffect_Gun TSharedPtr< str..…...

TCP连接保活机制

在TCP连接中有一个保活机制&#xff0c;叫做Keep-Alive&#xff0c;用语言描述就是如下&#xff1a; 在保活时间内&#xff0c;如果没有任何连接相关的活动&#xff0c;TCP 保活机制会开始作用&#xff0c;每隔一个时间间隔&#xff08;保活时间间隔&#xff09;&#xff0c;发…...

centos安装mysql8.0.20、tar包安装方式

基础环境centos7.5&#xff0c;mysql版本8.0.20&#xff0c;通过tar包安装&#xff0c;安装路径/usr/local。 mysql官网&#xff1a;https://dev.mysql.com/downloads/mysql/ wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.20-linux-glibc2.12-x86_64.tar.x…...

k8s yaml文件含义

文章目录 1、YAML的文件格式和注意事项2、YAML各个字段含义 1、YAML的文件格式和注意事项 不支持制表符tab键缩进&#xff0c;需要使用空格缩进&#xff0c;使用缩进表示层级关系通常开头缩进2个空格&#xff0c;缩进的空格数不重要&#xff0c;只要相同层级的元素左对齐即可字…...

ProEasy机器人:运动+通讯相关说明

----------------机械手运动------- --常用指令&#xff1a;MovP弧线运动、MovL直线运动 MovP(1) --弧线轨迹运动到一号点 MovP(2) --弧线轨迹运动到二号点 MovL(1) --直线轨迹运动到一号点 MovL(2) --直线轨迹运…...

Visual Studio Code 配置 C/C++ 开发环境的最佳实践(VSCode + Clangd + CMake)

Visual Studio Code 配置 C/C 开发环境的最佳实践(VSCode Clangd CMake) 知乎原文参考地址1 与 VSCode 官方文档配置 相比拥有的优势 Clangd 具有更优秀的性能&#xff0c;微软官方 Cpptools 的代码提示功能有明显延迟Clangd 提供更精准的「转到定义」、「重命名符号」、「…...

年产200万件的超级工厂投产!巨头「闭环」汽车电子全产业链

随着汽车电动化程度的提升&#xff0c;汽车电子部件占整车成本比重逐步升高&#xff0c;已经从2012年的25%上升到2021年的55%。 且汽车电子电气架构向整车集中演进&#xff0c;智能汽车已经进入了软件及数据定义时代&#xff0c;底层硬件打破了过去几十年围绕特定应用不断增加…...

智能穿戴AR眼镜主板方案定制_MTK平台AR智能眼镜PCB板开发

AR智能眼镜&#xff0c;是采用了多种技术实现增强现实效果&#xff0c;是将虚拟信息和现实场景相结合的智能设备。 AR智能眼镜硬件上&#xff0c;包括多个传感器、显示装置和处理器等。其中&#xff0c;传感器用于捕捉用户的动作和环境信息&#xff0c;如摄像头、陀螺仪、加速…...

【入门Flink】- 11Flink实现动态TopN

基本处理函数&#xff08;ProcessFunction&#xff09; stream.process(new MyProcessFunction())方法需要传入一个 ProcessFunction 作为参数&#xff0c;ProcessFunction 不是接口 &#xff0c; 而是一个抽象类 &#xff0c;继承了AbstractRichFunction&#xff0c;所有的处…...

现在做跨境电商还需要全球代理IP吗?全球代理IP哪家靠谱?

随着全球互联网的发展&#xff0c;电商平台的发展和跨境贸易的便利化&#xff0c;跨境电商在过去几年中也一直呈现增长趋势&#xff0c;吸引了越来越多的企业和个体创业者入行。 然而&#xff0c;行业竞争也在不断加剧&#xff0c;跨境电商面临更多的越来越多的挑战&#xff0…...

微服务的常用组件

1、注册中心组件 Eureka、Nacos、Zookeeper、Consul 2、负载均衡组件 Ribbon 3、远程调用组件 OpenFeign 4、网关组件 Zuul、Gateway 5、服务保护组件 Hystrix、Sentinel 6、服务配置管理组件 SpringCloudConfig、Nacos、Apollo&#xff08;阿波罗&#xff09;配置中…...

Android问题笔记四十五:解决SeekBar操作thumb周围产生的圆形阴影/灰色阴影/白色圆圈的解决办法

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例点击跳转>软考全系列点击跳转>蓝桥系列点击跳转>ChatGPT和AIGC &#x1f449;关于作者 专…...

AI从入门到精通,什么是LLMs大型语言模型?

大型语言模型是指由大量文本数据训练而成的自然语言处理模型&#xff0c;它可以生成高质量的文本内容&#xff0c;并能够理解和回答人类提出的问题。 这种模型通常基于深度学习技术&#xff0c;如循环神经网络&#xff08;RNN&#xff09;或变换器&#xff08;Transformer&…...

优测云测试平台 | 有效的单元测试(下)

接着上一篇内容&#xff0c;我们继续~ 四、测试的目标之三&#xff1a;快速反馈 测试的快速反馈有两个方面的含义: 1.测试运行要快速出结果。 2.当测试失败时&#xff0c;要能快速定位失败原因。 测试运行效率决定了开发的工作周期运转的快慢。在理想的 TDD 模型中&#x…...

CUDA安装

在cmd中输入nvidia-smi。显示CUDA Version&#xff1a;12.3&#xff0c;所以只能下载小于等于12.3的版本。如下图&#xff1a; 进这个网址&#xff1a;https://developer.nvidia.com/cuda-toolkit-archive 选择一个版本下载。 选择完后之后这样选择&#xff1a; 最后点击下载即…...

【XTDrone Ubuntu18.04】XTDrone + Ubuntu18.04 + PX4 安装过程

重新配置所有的软件 卸载之前安装的ROS GAZEBO 记得把/home下的.ros和.gazebo也删除&#xff0c;删就删干净 参考链接&#xff1a;ROS的卸载与安装 血泪总结&#xff01;亲测有效 卸载ROS方法 正式安装 安装依赖 sudo apt install ninja-build exiftool ninja-build protobuf…...

网站使用什么协议比较好

网站协议大多数使用HTTP和HTTPS HTTP协议&#xff0c;超文本传输协议&#xff08;Hypertext Transfer Protocol&#xff0c;HTTP&#xff09;是一个简单的请求-响应协议。 HTTP是应用层协议&#xff0c;同其他应用层协议一样&#xff0c;是为了实现某一类具体应用的协议&…...

Prompt Tuning、P-Tuning、Prefix Tuning的区别

一、Prompt Tuning、P-Tuning、Prefix Tuning的区别 1. Prompt Tuning(提示调优) 核心思想:固定预训练模型参数,仅学习额外的连续提示向量(通常是嵌入层的一部分)。实现方式:在输入文本前添加可训练的连续向量(软提示),模型只更新这些提示参数。优势:参数量少(仅提…...

Spark 之 入门讲解详细版(1)

1、简介 1.1 Spark简介 Spark是加州大学伯克利分校AMP实验室&#xff08;Algorithms, Machines, and People Lab&#xff09;开发通用内存并行计算框架。Spark在2013年6月进入Apache成为孵化项目&#xff0c;8个月后成为Apache顶级项目&#xff0c;速度之快足见过人之处&…...

Leetcode 3576. Transform Array to All Equal Elements

Leetcode 3576. Transform Array to All Equal Elements 1. 解题思路2. 代码实现 题目链接&#xff1a;3576. Transform Array to All Equal Elements 1. 解题思路 这一题思路上就是分别考察一下是否能将其转化为全1或者全-1数组即可。 至于每一种情况是否可以达到&#xf…...

Oracle查询表空间大小

1 查询数据库中所有的表空间以及表空间所占空间的大小 SELECTtablespace_name,sum( bytes ) / 1024 / 1024 FROMdba_data_files GROUP BYtablespace_name; 2 Oracle查询表空间大小及每个表所占空间的大小 SELECTtablespace_name,file_id,file_name,round( bytes / ( 1024 …...

无法与IP建立连接,未能下载VSCode服务器

如题&#xff0c;在远程连接服务器的时候突然遇到了这个提示。 查阅了一圈&#xff0c;发现是VSCode版本自动更新惹的祸&#xff01;&#xff01;&#xff01; 在VSCode的帮助->关于这里发现前几天VSCode自动更新了&#xff0c;我的版本号变成了1.100.3 才导致了远程连接出…...

CMake基础:构建流程详解

目录 1.CMake构建过程的基本流程 2.CMake构建的具体步骤 2.1.创建构建目录 2.2.使用 CMake 生成构建文件 2.3.编译和构建 2.4.清理构建文件 2.5.重新配置和构建 3.跨平台构建示例 4.工具链与交叉编译 5.CMake构建后的项目结构解析 5.1.CMake构建后的目录结构 5.2.构…...

CMake 从 GitHub 下载第三方库并使用

有时我们希望直接使用 GitHub 上的开源库,而不想手动下载、编译和安装。 可以利用 CMake 提供的 FetchContent 模块来实现自动下载、构建和链接第三方库。 FetchContent 命令官方文档✅ 示例代码 我们将以 fmt 这个流行的格式化库为例,演示如何: 使用 FetchContent 从 GitH…...

NLP学习路线图(二十三):长短期记忆网络(LSTM)

在自然语言处理(NLP)领域,我们时刻面临着处理序列数据的核心挑战。无论是理解句子的结构、分析文本的情感,还是实现语言的翻译,都需要模型能够捕捉词语之间依时序产生的复杂依赖关系。传统的神经网络结构在处理这种序列依赖时显得力不从心,而循环神经网络(RNN) 曾被视为…...

初探Service服务发现机制

1.Service简介 Service是将运行在一组Pod上的应用程序发布为网络服务的抽象方法。 主要功能&#xff1a;服务发现和负载均衡。 Service类型的包括ClusterIP类型、NodePort类型、LoadBalancer类型、ExternalName类型 2.Endpoints简介 Endpoints是一种Kubernetes资源&#xf…...

关于uniapp展示PDF的解决方案

在 UniApp 的 H5 环境中使用 pdf-vue3 组件可以实现完整的 PDF 预览功能。以下是详细实现步骤和注意事项&#xff1a; 一、安装依赖 安装 pdf-vue3 和 PDF.js 核心库&#xff1a; npm install pdf-vue3 pdfjs-dist二、基本使用示例 <template><view class"con…...