当前位置: 首页 > 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;是为了实现某一类具体应用的协议&…...

18. 机器学习——集成学习

机器学习面试题汇总与解析——集成学习 本章讲解知识点 什么是集成学习AdaBoost梯度提升树(Gradient Boosting Decision Tree, GBDT)随机森林(Random Forest,简称RF)XGBoostLightGBM本专栏适合于Python已经入门的学生或人士,有一定的编程基础。 本专栏适合于算法工程师、机器…...

SimaPro生命周期评估建模与碳足迹分析流程

SimaPro以系统和透明的方式轻松建模和分析复杂的生命周期&#xff0c;通过确定供应链中每个环节的热点&#xff0c;从原材料的提取到制造&#xff0c;分销&#xff0c;使用和处置&#xff0c;衡量所有生命周期阶段的产品和服务对环境的影响。SimaPro是过去25年评估生命周期的最…...

我的项目分享(不喜勿喷)

我要分享的项目是大喇叭C2C电商平台系统&#xff0c;一个面向移动端的电子商务平台&#xff0c;为个体消费者和商家提供直接交易和沟通的便利&#xff0c;丰富了人们的生活。 主要功能模块&#xff1a; 该项目的主要功能包括&#xff1a; 1. 用户注册功能&#xff1a;使用正则…...

PyTorch:张量与矩阵

PyTorch 是一个基于 Python 的科学计算包&#xff0c;专门针对深度学习研究&#xff0c;提供了丰富的工具和库。在 PyTorch 中&#xff0c;张量&#xff08;tensor&#xff09;是深度学习的核心数据结构&#xff0c;它可以看作是可以进行自动微分的多维数组。张量不仅可以代表标…...

传统广电媒体为何选择上云?有何优势?

随着现在互联网和科技的发展&#xff0c;现在更多的行业都搭上了科技这辆快车快速的完成了转型&#xff0c;那么在传统的广电媒资行业他们目前有哪些痛点呢&#xff1f;传统广电媒体转型发展现状是什么&#xff1f;企业如何数字化转型&#xff1f;企业上云的优势有哪些&#xf…...

系列十、堆参数调优

一、堆内存调优参数 -Xms堆空间的最小值&#xff0c;默认为物理内存的1/64-Xmx堆空间的最大值&#xff0c;默认为物理内存的1/4-XX:PrintGCDetails输出详细的GC处理日志 二、获取堆内存的默认物理内存 /*** Author : 一叶浮萍归大海* Date: 2023/11/16 14:50* Description: 获…...

sqlite3简单使用

为什么要使用sqlite3? sqlite3轻量简介&#xff0c;无需单独的数据库服务&#xff0c;只需访问磁盘上的.db的文件。在某些情况下很有用。 下面是一些简单的使用代码&#xff1a; import sqlite3 from uuid import uuid1# 连接数据库文件&#xff0c;如果不存在会创建 with…...

实测文心一言4.0,真的比GPT-4毫不逊色吗?

10月17日&#xff0c;李彦宏在百度世界2023上表示。当天&#xff0c;李彦宏以《手把手教你做AI原生应用》为主题发表演讲&#xff0c;发布文心大模型4.0版本。 今天&#xff0c;咱们就开门见山啊。这一回要测一测&#xff0c;昨天才发布的文心一言大模型 4.0。 之所以要测它&…...

损失函数——KL散度(Kullback-Leibler Divergence,KL Divergence)

KL散度&#xff08;Kullback-Leibler Divergence&#xff0c;简称KL散度&#xff09;是一种度量两个概率分布之间差异的指标&#xff0c;也被称为相对熵&#xff08;Relative Entropy&#xff09;。KL散度被广泛应用于信息论、统计学、机器学习和数据科学等领域。 KL散度衡量的…...

基于springboot的医护人员排班系统 全套代码 全套文档

基于springboot的医护人员排班系统,springboot vue mysql (毕业论文10411字以上,共27页,程序代码,MySQL数据库) 代码下载链接&#xff1a;https://pan.baidu.com/s/177HdCGtTvqiHP4O7qWAgxA?pwd0jlf 提取码&#xff1a;0jlf 【运行环境】 IDEA, JDK1.8, Mysql, Node, Vue …...