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

【计网速通】计算机网络核心知识点与高频考点——数据链路层(二)


数据链路层核心知识点(二)

涵盖局域网、广域网、介质访问控制(MAC层)及数据链路层设备

上文链接:https://blog.csdn.net/weixin_73492487/article/details/146571476


一、局域网(LAN,Loacl Area Network)

地位
最流行的有线局域网技术,甚至由于局域网市场中的垄断地位,以太网几乎成为局域网的代名词。

三要素

  • 介质访问控制(决定局域网的技术特性):CSMA/CD(载波监听多点接入/碰撞检测),令牌总线协议,令牌环协议
  • 拓扑结构:总线型,星型(现代交换式以太网),环形 , 星型与总线复合型
  • 传输介质: 铜缆,双绞线,光纤
1.以太网(Ethernet)

核心特点:

  • 介质访问控制: CSMA/CD(载波监听多点接入/碰撞检测)

  • 拓扑结构: 逻辑总线型,物理星型(现代交换式以太网)

  • 通信: 采用无连接的工作方式,不编号、不确认,提供不可靠服务;发送的数据都使用曼彻斯特编码;通过网卡NIC与计算机交互连接

  • 帧格式(IEEE 802.3标准):

| 前导码 (7B) | SFD(帧定界符) (1B) | 目的地址 (6B) | 源地址 (6B) | 长度/类型 (2B) | 数据 (46-1500B) | FCS (检验码)(4B) |
|           前导码                    |                                              MAC帧                             |           
  • 最小帧长:64字节(确保碰撞检测)

    最小帧长 = 带宽*争用期(如10Mbps以太网:64B=512bit)

MAC地址
在以太网中,MAC地址是数据链路层用来标识网络设备的唯一地址。每个以太网设备都有一个唯一的MAC地址,通常为48位(6字节)的地址。MAC地址有以下特点:

  • 唯一性:每个网络接口卡(NIC)都分配有唯一的MAC地址。
  • 格式:MAC地址由6个字节组成,通常以十六进制表示,例如 00:1A:2B:3C:4D:5E。

以太网技术

  • 传统以太网/共享式以太网(10BASE-T):
    使用 CSMA/CD 来访问网络,网络中设备(集线器)通过同一根共享电缆连接,数据传输发生时,所有设备都能看到该数据帧。
  • 交换以太网(Switched Ethernet)
    在现代以太网中,大多数网络设备都通过交换机连接,交换机会根据目标MAC地址转发数据帧。交换机通过 MAC地址表 来决定数据帧的转发路径,从而减少了数据帧在网络中的传播范围,也避免了不同设备间的数据碰撞。由于交换机将流量分离到不同的端口上,每个端口都可以独立工作,因此交换以太网中没有数据碰撞发生(交换机隔离冲突域)。
  • 全双工以太网(Full-Duplex Ethernet)
    在全双工模式下,设备可以同时发送和接收数据,不再需要使用CSMA/CD协议来避免碰撞。网络中的数据传输不再发生冲突,因此提高了网络的吞吐量。

关键协议

  • ARP协议:IP地址 → MAC地址映射
  • VLAN(虚拟局域网)
    • 作用:逻辑隔离广播域
    • 实现方式:基于端口/MAC地址/IP子网
    • 帧标记:IEEE 802.1Q标准(插入4B VLAN标签)

2.无线局域网(WLAN)

定义:
无线局域网(WLAN,Wireless Local Area Network)是通过无线电波而非物理连接方式将设备连接在一起的网络。无线局域网常见的标准是IEEE 802.11系列标准。

1. IEEE 802.11标准

IEEE 802.11是无线局域网的基本标准,采用了星形拓扑,涵盖了不同频段、不同传输速率、不同通信方式等。它定义了物理层(PHY)和媒体访问控制层(MAC)(CSMA/CA)的规范。

  • IEEE 802.11a:在5 GHz频段工作,最高传输速率为54 Mbps。
  • IEEE 802.11b:在2.4 GHz频段工作,最高传输速率为11 Mbps。
  • IEEE 802.11g:在2.4 GHz频段工作,最高传输速率为54 Mbps。
  • IEEE 802.11n:在2.4 GHz和5 GHz频段工作,支持更高的传输速率(最高可达600 Mbps)。
  • IEEE 802.11ac:在5 GHz频段工作,支持更高的速率(最高可达1.3 Gbps以上)。
  • IEEE 802.11ax (Wi-Fi 6):在2.4 GHz和5 GHz频段工作,支持更高的传输速率,并提高了网络的效率和容量,支持多用户MU-MIMO。
2. 无线局域网的工作模式

无线局域网主要有两种工作模式:

  • 基础设施模式:设备通过接入点(AP,Access Point)进行通信。所有设备必须通过接入点才能进行数据交换。
  • Ad-Hoc模式(自组网络):设备之间直接通信,无需接入点。它是一种点对点通信方式。
3. 无线局域网的拓扑结构

无线局域网通常采用星型拓扑结构,即所有设备通过无线连接到一个接入点(AP)。接入点是无线局域网的核心,它负责设备之间的数据转发和连接管理。

4. 频谱与信道管理

无线局域网的通信通常在2.4 GHz和5 GHz的频段上进行。每个频段被划分为多个信道,设备之间通过不同的信道进行通信,避免频繁干扰。

  • 2.4 GHz频段:具有较好的覆盖范围,但信道较少,容易干扰。
  • 5 GHz频段:提供更高的带宽和更少的干扰,但其覆盖范围较小。
5. 安全性

无线局域网的安全性问题非常重要。常见的无线安全协议包括:

  • WEP(Wired Equivalent Privacy):早期的加密标准,但已被破解。
  • WPA(Wi-Fi Protected Access):对WEP进行改进,提供更强的加密。
  • WPA2:基于AES加密算法,提供更强的安全性。
  • WPA3:最新的安全标准,提供更强的加密与防护。
6. 802.11的MAC帧结构

IEEE 802.11标准中的媒体访问控制(MAC)层负责处理数据传输中的介质访问问题,确保在共享无线信道中实现高效的通信。MAC帧是802.11协议中数据传输的基本单元。

802.11 MAC帧结构

  • 帧控制(Frame Control):占2字节,包含了帧类型、子类型、协议版本等信息。
  • 持续时间/ID(Duration/ID):占2字节,表示该帧的持续时间(即该帧对信道的占用时长)或某些管理帧的ID。
  • 地址字段(Address Fields):包含4个地址字段,每个地址字段占6字节,通常包括:
    • 地址1:目标地址。
    • 地址2:源地址。
    • 地址3:接入点或中继设备的地址。
    • 地址4(可选):某些特殊的传输模式下可能需要此字段(例如Ad-Hoc模式)。
  • 序列控制(Sequence Control):占2字节,包含帧的序列号和序列号扩展,确保数据的顺序和完整性。
  • 有效载荷(Frame Body):数据部分,包含实际的数据内容(如IP包)。
  • 帧校验序列(FCS):占4字节,用于错误检测和数据完整性验证。

帧结构图解

| 帧控制 (2B) | 持续时间 (2B) | 地址1-4 (各6B) | 序列控制 (2B) | 数据 | FCS (4B) |

(1)帧控制字段
帧控制字段是802.11 MAC帧中非常重要的部分,它占用2字节并包含以下信息:

  • 协议版本(Protocol Version):指明协议的版本,通常为“0”表示当前版本。
  • 类型(Type):指明该帧是管理帧、控制帧还是数据帧(Management, Control, Data)。
  • 子类型(Subtype):针对帧类型,指明具体的操作,如探测请求/响应、认证、数据传输等。
  • 更多信息(More Data):指示是否还有后续数据帧。
  • PWR MGT:指示是否为省电模式。
  • WEP(Wired Equivalent Privacy):标记该帧是否经过加密。

常见的802.11帧类型

  • 管理帧(Management Frames):用于设备的连接、断开、认证、同步等管理操作。例如,Beacon帧(由接入点定期广播,包含网络名称(SSID)、支持的传输速率、信道等信息,帮助客户端设备发现和连接到无线网络。)、Authentication帧(用于设备在加入网络时进行身份验证)、Association Request/Response帧(用于设备请求连接到接入点,以及接入点回复是否允许连接。)。
  • 控制帧(Control Frames):用于控制数据帧的传输,例如,Request to Send (RTS)Clear to Send (CTS)Acknowledgment (ACK)帧。
  • 数据帧(Data Frames):用于传输实际的数据包,承载IP数据包或其他类型的负载。

(2)持续期字段
允许发送数据的站点对信道使用时间的预约,将时间写入这个字段。
(3)三个地址

  • 取决于帧控制字段中 "去往AP "和 “来自AP” 这两个字段的数值
  • "去往AP"表示发送至AP站点,地址一接收地址即AP地址,地址二发送地址为源地址,地址三为目的站点的目的地址
  • "来自AP"表示从AP站点发出,地址一接收地址即目的站点的目的地址,地址二发送地址为AP地址,地址三为源站点的源地址

介质访问控制:CSMA/CA(碰撞避免)

隐藏站问题:通过RTS/CTS握手解决


3.VLAN (Virtual Local Area Network)

基本概念

VLAN(虚拟局域网)是一种将较大的(物理)网络划分(基于接口、MAC地址、IP地址)为多个小的逻辑网络的技术。通过VLAN,可以在同一物理网络基础设施上,将不同的设备或端口分配到不同的虚拟网络中,从而实现流量隔离、管理优化、提高网络安全性和简化管理。

VLAN技术能够使得同一物理网络中,基于逻辑分组的设备在一个广播域内进行通信,而互不干扰,类似于不同的物理网络环境,尽管它们可能在同一交换机上或者通过同一条物理链路进行连接。

特点

  • 逻辑隔离:VLAN允许网络管理员在不增加额外硬件的情况下,将网络设备分为多个逻辑子网,实现流量隔离。
  • 广播控制:VLAN通过限制广播的范围,减少广播风暴的影响,提高网络的整体性能。
  • 安全性增强:通过将不同的用户或设备分配到不同的VLAN,可以有效地控制数据访问权限,增加网络安全性。
  • 简化管理:通过VLAN,网络管理员可以按照部门、功能、物理位置等划分网络,不必依赖物理拓扑。
  • 灵活的网络结构:VLAN可以根据需要灵活地划分,跨越多个交换机,实现跨交换机的虚拟局域网功能。

工作原理

VLAN的工作原理主要基于 “帧标记”“广播域隔离” 两个方面。通过对交换机和路由器的配置,VLAN可以在物理网络上实现逻辑隔离和管理。

  • VLAN标识(VLAN ID):每个VLAN都有一个唯一的标识符,称为VLAN ID。VLAN ID是一个12位的字段(值从1到4095),用于标识不同的虚拟局域网。
  • 数据帧的标记:在VLAN中,交换机会对经过的帧进行“标记”。这种标记是指在以太网帧中插入VLAN ID,以标识该帧属于哪个VLAN。最常见的VLAN标记方法是IEEE 802.1Q标准。
    • 802.1Q帧标记:在数据帧的以太网头部插入4字节的VLAN标记字段,其中包括VLAN的ID信息。这个标记字段会告诉接收端设备该帧属于哪个VLAN。

基本类型

  • 静态VLAN(Static VLAN):静态VLAN是最常见的类型。网络管理员手动为每个交换机端口分配VLAN。这种方式配置简单且可控,但缺乏灵活性。
  • 动态VLAN(Dynamic VLAN):动态VLAN根据设备的MAC地址、IP地址或其他身份信息动态分配VLAN。使用动态VLAN时,设备的VLAN划分依赖于身份验证服务器或协议(如IEEE 802.1X)。

VLAN的配置与管理

  • VLAN创建与配置:大多数交换机支持VLAN的创建与管理。在交换机上,可以通过CLI(命令行界面)或图形界面配置VLAN。例如,可以为不同的端口分配不同的VLAN ID。

    Switch(config)# vlan 10
    Switch(config-vlan)# name HR
    Switch(config-vlan)# exit
    Switch(config)# interface fastEthernet 0/1
    Switch(config-if)# switchport mode access
    Switch(config-if)# switchport access vlan 10
    
  • VLAN间路由:不同VLAN之间的通信需要通过路由器或三层交换机来完成。通常,通过“路由器-on-a-stick”方式来实现VLAN间路由。即在一台路由器上配置多个子接口,每个子接口对应一个VLAN,通过虚拟子接口实现VLAN间的路由。

  • VLAN Trunking(VLAN中继):当多个交换机之间需要传输VLAN流量时,使用VLAN Trunk连接。通过Trunk链路,可以在一条物理链路上传输多个VLAN的流量。VLAN Trunk常使用IEEE 802.1Q协议,允许多个VLAN的流量通过一根链路进行传输。

VLAN间通信

VLAN之间默认是不能直接通信的,必须借助路由器或三层交换机来实现。通过配置“子接口”(subinterface)或使用多层交换机的VLAN接口,可以实现不同VLAN之间的路由功能。

例如,假设VLAN 10和VLAN 20需要互通,配置路由器时可以创建如下接口:

Router(config)# interface gigabitEthernet 0/0.10
Router(config-if)# encapsulation dot1Q 10
Router(config-if)# ip address 192.168.10.1 255.255.255.0
Router(config-if)# exitRouter(config)# interface gigabitEthernet 0/0.20
Router(config-if)# encapsulation dot1Q 20
Router(config-if)# ip address 192.168.20.1 255.255.255.0
Router(config-if)# exit

此时,VLAN 10与VLAN 20之间的通信就可以通过路由器实现。


二、广域网(WAN)

定义:
连接不同地区局域网或城域网(路由器)计算机通信的远程网。通常跨接很大的物理范围

1. PPP协议(Point-to-Point Protocol)

应用:

  • 用户计算机与ISP(互联网接入服务商)通信时所使用的数据链路层规则

  • 两台网络设备之间的直连专用线路
    特点

  • 点对点链路(非广播)

  • 支持身份验证(PAP/CHAP)

  • 帧格式

    | 标志 (0x7E) | 地址 (0xFF) | 控制 (0x03) | 协议 (2B) | 数据(不超过1500B) | FCS (2B) | 标志 (0x7E) |
    

    协议段:表示数据段运载的是什么种类的分组(IP数据报、LCP的数据)
    数据段:ppp点对点的,不是总线型,无需使用CSMA/CD协议,自然没有最短帧长的限制

  • 透明传输:字节填充法(0x7E → 0x7D 0x5E)

2. HDLC协议(高级数据链路控制)

特点

  • 面向比特的同步协议
  • 帧格式
    | 标志 (01111110) | 地址 (1B) | 控制 (1B) | 数据 | FCS (2B) | 标志 (01111110) |
    
  • 透明传输:比特填充法(5个1后插0)

PPP vs HDLC对比

特性PPPHDLC
应用场景拨号/ADSL专线/帧中继
认证支持支持不支持
数据压缩可选不支持

三、介质访问控制(MAC层)

1. 信道划分协议
  • 频分复用(FDM):不同频率并行传输
  • 时分复用(TDM):固定时隙循环分配
  • 码分复用(CDMA):正交码区分信号
时分多址(TDMA,Time Division Multiple Access)

时分多址协议通过将信道划分为不同的时间片来实现多用户共享信道的目的。在每个时间片中,只有一个用户可以使用信道进行通信,其他用户必须等待下一个时间片。

工作原理

  • 信道被划分为多个固定的时间段,每个时间段称为时隙(timeslot)。
  • 每个时隙分配给一个用户,用户在自己的时隙内发送数据。
  • 如果网络中有多个用户,需要通过协调来确保每个用户在自己的时隙内发送数据,避免重叠。
  • 如果某个用户没有数据要发送,它的时隙可以空闲,其他用户不能占用该时隙。

优点

  • 避免冲突:每个用户在独立的时间段内发送数据,避免了用户之间的冲突。
  • 简单高效:当用户数量固定且数据流量相对均匀时,TDMA非常高效。

缺点

  • 时隙利用率低:如果某个用户没有数据要发送,时隙就会浪费。
  • 时延问题:如果某个用户的数据量较大,需要等待较长的时隙周期,导致延迟增加。
  • 同步问题:所有用户需要保持严格的同步,以确保在各自的时隙内发送数据。

应用场景

  • 蜂窝通信系统(如2G、3G移动通信)
  • 卫星通信系统
频分多址(FDMA,Frequency Division Multiple Access)

频分多址协议通过将总的频谱带宽划分为多个较小的频段(子频带),每个用户占用一个独立的频段进行通信。用户之间通过分配不同的频率来避免干扰。

工作原理

  • 总频带被划分为多个独立的子频带,每个用户分配到一个子频带。
  • 用户在分配的频带上进行数据传输,其他用户的频带不受影响。
  • 由于每个用户有独立的频段,因此用户之间的通信不会发生冲突。

优点

  • 无需同步:与TDMA不同,FDMA不要求用户严格同步,因此系统实现较为简单。
  • 适合高负载系统:当多个用户同时需要发送数据时,FDMA可以有效避免冲突。

缺点

  • 频谱利用率低:如果某个用户没有数据要发送,其占用的频带资源会被浪费。
  • 频谱带宽限制:总的频带宽度是有限的,因此可以分配给用户的频段数量也有限。
  • 干扰问题:如果频带的划分不合理,可能会出现相邻频段的干扰(互调干扰)。

应用场景

  • 广播电视:如传统的无线电和电视广播系统。
  • 早期的蜂窝通信系统(如1G)
码分多址(CDMA,Code Division Multiple Access)

码分多址协议通过为每个用户分配一个独特的码字(code),使得不同用户的数据能够在同一频带上同时传输。每个用户的数据通过其专用的码字进行编码,接收端通过相应的码字进行解码,从而分离出不同用户的信号。

工作原理

  • 每个用户都被分配一个唯一的伪随机码(PRN码),用户的数据通过与该码进行按位异或操作来加密。
  • 所有用户的信号可以同时在同一频带上传输,接收端使用相应的码字解码以区分不同用户的信号。
  • 扩频技术(如直接序列扩频 DSSS 或频率跳跃扩频 FHSS)用于使用户的信号占据比其原始带宽更宽的频谱,从而提高抗干扰能力。

优点

  • 频谱利用率高:CDMA允许多个用户同时使用相同的频带,极大提高了频谱的利用效率。
  • 抗干扰能力强:由于使用了扩频技术,CDMA对信号干扰具有较强的抵抗能力。
  • 灵活性:用户的数量和带宽需求不需要严格划分,可以根据实际情况动态调整。

缺点

  • 复杂度高:CDMA系统要求设备能够进行复杂的编码和解码操作。
  • 近远效应:如果某个用户的信号过强,可能会干扰到其他用户的通信。
  • 同步问题:尽管CDMA不需要固定的时间或频率划分,但系统依然需要一定的同步机制,以确保信号的正确解码。

应用场景

  • 现代蜂窝通信系统(如3G、4G、5G)
  • 卫星通信
  • Wi-Fi和蓝牙等无线通信技术

2. 随机访问协议
  • ALOHA协议
    • 纯ALOHA:不进行检测随时发送,未收到确认则认为冲突,就随机退避
    • 时隙ALOHA:将时间分为一段段等长的时隙,仅在时隙开始时发送,避免了随意性
  • CSMA协议
    类型特点应用场景
    1-坚持CSMA信道空闲立即发送以太网(结合CD)
    非坚持CSMA信道忙则随机等待无线网络
    p-坚持CSMA信道空闲以概率p发送 ,以1-p概率在下个时隙继续监听卫星通信

CSMA/CD协议

应用领域:
CSMA/CD协议主要应用于有线局域网,尤其是以太网中,(总线型网络或半双工网络环境)依赖碰撞检测来控制网络流量,但在网络负载较高时,碰撞会影响性能

争用期
(发送帧后若内没有检测到冲突就认为发送成功)

最短帧长:
最大单向传播时延*数据传输速率*2=2τ*带宽
工作原理:

  • 载波监听:每个节点在发送数据之前,会先“监听”信道,检查信道上是否有其他设备正在传输数据。如果信道空闲,则节点可以开始发送数据;如果信道被占用,则节点会等待。
  • 数据发送:当信道空闲时,设备就开始发送数据。
  • 碰撞检测:在数据发送过程中,设备会继续监听信道,检查是否发生了碰撞(collision)。如果发生碰撞,设备会立即停止发送数据,并发送一个“干扰信号”来通知网络中的其他设备发生了碰撞。
  • 碰撞重试: 当发生碰撞时,每个设备会等待一个随机的时间段(通常是通过退避算法来控制)后重新发送数据。该过程称为退避算法(Backoff Algorithm),其目的是减少后续碰撞的概率。

退避算法:

T=*n,n∈[0,1,2,…2k-1],k=min{碰撞/冲突次数,10}
超过16次冲突/碰撞,就丢弃该帧

CSMA/CD 协议

应用领域
CSMA/CA协议是用于无线局域网(WLAN)中的一种访问控制协议,尤其是在基于IEEE 802.11标准的无线网络(链路层采用ARQ方案)中,如Wi-Fi。由于无线网络的传输信道不可见,设备无法像有线网络中那样监听信道上的“载波”状态,碰撞的可能性更高,因此CSMA/CA采用了一种避免碰撞的策略。

工作原理

  • 载波监听:与CSMA/CD类似,设备在传输数据前会监听信道,判断信道是否空闲。如果信道空闲,则设备可以进行发送;如果信道繁忙,则设备会等待。
  • 随机退避:为了避免多个设备在同一时间发送数据,CSMA/CA在信道空闲时不会立即发送数据,而是会等待一个随机的时间段。这段时间通常由退避计时器控制。
  • 冲突避免机制:
    RTS/CTS机制:为了避免碰撞,CSMA/CA引入了 请求发送(RTS)和清除发送(CTS) 机制。在开始数据传输之前,设备首先发送一个RTS请求信号,告知网络中的其他设备其即将进行数据传输。如果没有碰撞,接收端设备(AP)会发送一个CTS信号作为应答,告知发送端可以开始传输数据。
    数据传输与确认:设备在收到CTS信号后,开始数据传输。数据传输完成后,接收端设备发送确认(ACK)信号,通知发送端数据成功接收。
3. 轮询访问协议
  • 令牌传递协议
    令牌是一个特殊的控制帧,仅控制信道的使用,确保同一时刻只有一个站点独占信道
    • 令牌环网(IEEE 802.5)
    • 令牌总线网(IEEE 802.4)

四、数据链路层设备

1. 网桥(Bridge)
  • 功能:连接不同物理层/数据链路层的网络段 ,具有识别帧和转发帧的能力
  • 工作原理
    1. 学习MAC地址表(源地址+端口)
    2. 转发帧时查询目标地址对应端口
  • 类型
    • 透明网桥(IEEE 802.1D标准)
    • 源路由网桥(Token Ring网络)
2. 交换机(Switch)
  • 本质:多端口网桥
  • 转发方式
    方式特点延迟资源消耗
    直通交换检查目标地址即转发
    存储转发缓存完整帧后转发
    无碎片交换检查前64字节后转发

交换机 vs 网桥对比

对比项交换机网桥
端口数多(24/48口)少(通常2口)
处理速度硬件ASIC加速软件处理
应用场景现代局域网核心旧式网络互联

五、高频考点与真题解析

1. CSMA/CD过程(2019年-35题)

题目
以太网中,A、B两站相距200m,信号传播速率2×108 m/s,带宽100Mbps,求最小帧长。
解析

  1. 争用期 = 2×传播时延 = 2×200/(2×10^8) = 2μs
  2. 最小帧长 = 带宽×争用期 = 100×106 × 2×10-6 = 200bit = 25字节
    注意:实际以太网规定最小帧长为64字节(需补填充字段)
2. VLAN划分(2021年-37题)

题目
交换机端口1-4属于VLAN2,端口5-8属于VLAN3,以下描述正确的是?
A. 端口1和5属于同一广播域
B. 端口2和3可以直连通信
C. 端口5和6需路由器通信
答案:B


六、总结图表

技术/设备核心功能典型协议/标准考研重点
以太网CSMA/CD + MAC帧IEEE 802.3最小帧长
无线局域网CSMA/CA + 隐藏站处理IEEE 802.11RTS/CTS
PPP协议点对点链路 + 身份验证RFC 1661帧格式
交换机多端口网桥 + VLAN支持IEEE 802.1Q转发方式

附:数据链路层思维导图要点

数据链路层  
├─ 局域网(以太网、WLAN)  
├─ 广域网(PPP、HDLC)  
├─ MAC协议(CSMA/CD、CSMA/CA)  
└─ 设备(网桥、交换机)  

相关文章:

【计网速通】计算机网络核心知识点与高频考点——数据链路层(二)

数据链路层核心知识点(二) 涵盖局域网、广域网、介质访问控制(MAC层)及数据链路层设备 上文链接:https://blog.csdn.net/weixin_73492487/article/details/146571476 一、局域网(LAN,Loacl Area Network&am…...

# 使用 Dlib 和 OpenCV 实现人脸关键点检测

使用 Dlib 和 OpenCV 实现人脸关键点检测 在计算机视觉领域,人脸检测和关键点定位是许多应用的基础,例如人脸识别、表情分析和图像编辑等。本文将介绍如何使用 Dlib 和 OpenCV 实现人脸关键点检测,并展示如何在 Python 中加载预训练模型并应…...

Qt常用控件第一部分

1.控件概述 Widget 是 Qt 中的核⼼概念. 英⽂原义是 "⼩部件", 我们此处也把它翻译为 "控件" . 控件是构成⼀个图形化界⾯的基本要素. 像上述⽰例中的, 按钮, 列表视图, 树形视图, 单⾏输⼊框, 多⾏输⼊框, 滚动条, 下拉框等, 都可以称为 "控件"…...

持续集成与Jenkins安装使用教程

一、持续集成与Jenkins 持续集成(Continuous integration,简称CI)指的是,频繁地(一天多次)将代码集成到主干。 持续集成的目的,就是让产品可以快速迭代,同时还能保持高质量。 它的…...

数据库 第一章 MYSQL基础(4)

目录 MYSQL -DQL 基础查询 分组函数 函数 条件查询 实例 合并 实例 排序 数量限制 分组查询 语法: 案例: 实例 MYSQL -DQL 基础查询 分组函数 功能:用作统计使用,又称为聚合函数或统计 函数 sum(列) 求和 返回给定列值的合…...

RedisTemplate 的 6 个可配置序列化器属性对比

RedisTemplate 的 6 个可配置序列化器属性对比 RedisTemplate 提供了以下 6 个核心属性,用于分别配置键、值、哈希类型数据的序列化方式: 1. keySerializer 作用:定义 Redis 键的序列化方式。默认值:JdkSerializationRedisSeria…...

【ArcGIS微课1000例】0142:如何从谷歌地球保存高清影像图片

文章目录 一、选取影像区域1. 搜索地图区域2. 导入矢量范围二、添加输出图层三、保存高清影像1. 地图选项2. 输出分辨率3. 保存图像四、注意事项一、选取影像区域 首先需要选取影像区域,可通过以下方式快速定位。 1. 搜索地图区域 在搜索框内输入关键词,例如青海湖,点击【…...

TCP可靠性传输

TCP可靠性传输机制 确认 重传 排序 流控 排序机制 分段 --- TCP是一款基于字节流的协议 --- 由传输层的TCP执行 MSS --最大段长度 --- TCP建立连接需要协商的参数 --- TCP在建立三次握手时前两个SYN报文中将携带该参数,并且双方的该参数允许不同,如果…...

【图像处理基石】什么是RAW格式?

在图像处理中,RAW格式是一种未经处理、记录了相机传感器原始数据的图像文件格式。它保留了相机传感器捕捉到的全部原始信息,未经任何压缩或处理,因此被称为“原始数据”(Raw)。以下是关于RAW格式的详细解释&#xff1a…...

Java 基础-30-单例设计模式:懒汉式与饿汉式

在软件开发中,单例设计模式(Singleton Design Pattern)是一种常用的设计模式,它确保一个类只有一个实例,并提供一个全局访问点。这种模式通常用于管理共享资源(如数据库连接池、线程池等)或需要…...

95. 费解的开关

你玩过“拉灯”游戏吗? 25 盏灯排成一个 55 的方形。 每一个灯都有一个开关,游戏者可以改变它的状态。 每一步,游戏者可以改变某一个灯的状态。 游戏者改变一个灯的状态会产生连锁反应:和这个灯上下左右相邻的灯也要相应地改变…...

Gin、Echo 和 Beego三个 Go 语言 Web 框架的核心区别及各自的优缺点分析,结合其设计目标、功能特性与适用场景

1. Gin 核心特点 高性能:基于 Radix 树路由,无反射设计,性能接近原生 net/http,适合高并发场景。轻量级:仅提供路由、中间件、请求响应处理等基础功能,依赖少。易用性:API 设计简洁直观&#…...

Golang的Web框架比较与选择

一、Golang的Web框架概述 又称Go语言)是一种由Google开发的开源编程语言,自诞生以来就备受关注,并被广泛应用于后端开发。在Golang的生态系统中,有许多优秀的Web框架可供选择,它们为开发人员提供了丰富的功能和灵活的性…...

18认识Qt坐标系

平面直角坐标系(笛卡尔坐标系) 数学上的坐标系 右手坐标系 计算机中的坐标系 左手坐标系 坐标系的原点(0,0) 就是屏幕的左上角 /窗口的左上角 给 Qt 的某个控件,设置位置,就需要指定坐标.对于这个控件来说, 坐标系原点就是相对于父窗口/控件的. QPushButton 的父元素/父控件/父…...

洛谷题单3-P1009 [NOIP 1998 普及组] 阶乘之和-python-流程图重构

题目描述 用高精度计算出 S 1 ! 2 ! 3 ! ⋯ n ! S 1! 2! 3! \cdots n! S1!2!3!⋯n!( n ≤ 50 n \le 50 n≤50)。 其中 ! 表示阶乘,定义为 n ! n ( n − 1 ) ( n − 2 ) ⋯ 1 n!n\times (n-1)\times (n-2)\times \cdots \t…...

【ABAP】REST/HTTP技术(一)

1、概念 1.1、SAP 如何提供 Http Service 如果要将 SAP 应用程序服务器 (application server)作为 http 服务提供者,需要定义一个类,这个类必须实现 IF_HTTP_EXTENSION 接口。IF_HTTP_EXTENSION 接口只有一个方法 HANDLE_REQUEST。…...

多线程代码案例 - 1

目录 单例模式 1. 饿汉模式 2. 懒汉模式 单例模式与多线程 问题1 问题2 问题3 完! 单例模式 单例模式是一种设计模式。 设计模式,是我们在编写代码时候的一种软性的规定,也就是说,我们遵守设计模式,代码的下限…...

Python网络爬虫:从入门到实践

目录 什么是网络爬虫? 网络爬虫的工作原理 常用Python爬虫库 编写爬虫的步骤 实战示例 注意事项与道德规范 未来趋势 1. 什么是网络爬虫? 网络爬虫(Web Crawler)是一种自动化程序,通过模拟人类浏览行为&#x…...

在线XML转义工具

XML转义是将XML的特定字符转换为转义符 在线XML转义工具...

GO语言学习(16)Gin后端框架

目录 ☀️前言 1.什么是前端?什么是后端?🌀 2.Gin框架介绍 🌷 3.Gin框架的基本使用 -Hello,World例子🌷 🌿入门示例 - Hello,World 💻补充(一些常用的网…...

GO语言 使用protobuf

1.什么是protobug,为什么要学它 protobuf是一种类似于json和xml的数据序列化格式 我们可能会存在这样的问题:不同语言之间真的没有办法互相传递数据吗?如果可以,那如果一个项目使用了多种语言有应该如何传递数据? 这…...

Golang的文件处理优化策略

Golang的文件处理优化策略 一、Golang的文件处理优化策略概述 是一门效率高、易于编程的编程语言,它的文件处理能力也非常强大。 在实际开发中,需要注意一些优化策略,以提高文件处理的效率和性能。 本文将介绍Golang中的文件处理优化策略&…...

Golang的文件同步与备份

Golang的文件同步与备份 一、Golang介绍 也称为Go语言,是谷歌开发的一种编程语言,具有高效的并发编程能力和出色的内存管理。由于其快速的编译速度和强大的标准库,Golang在网络应用、云平台和大数据等领域得到了广泛应用。 二、文件同步与备份…...

Go和Golang语言简介

李升伟 整理 Go 和 Golang 实际上指的是同一种编程语言,只是名称不同。 Go 名称:Go 是该编程语言的正式名称。 起源:由 Google 的 Robert Griesemer、Rob Pike 和 Ken Thompson 于 2007 年开始设计,2009 年正式发布。 设计目…...

spring boot集成reids的 RedisTemplate 序列化器详细对比(官方及非官方)

RedisTemplate 序列化器详细对比(官方及非官方) 1. 官方序列化器 (1) JdkSerializationRedisSerializer 特点: 基于 Java 原生序列化(Serializable)。支持复杂对象(需实现 Serializable 接口)…...

NLP高频面试题(三十二)——介绍一下CLIP和CLIP2

在人工智能领域,图像与文本的结合一直是研究的热点。近年来,OpenAI推出的CLIP模型,以及后续发展的CLIP2模型,在多模态学习方面取得了显著进展。本文将对这两个模型进行介绍,探讨它们的架构、训练方法和应用场景。 CLI…...

【FPGA】状态机思想回顾流水灯

【FPGA】状态机思想回顾流水灯 一、LED流水灯实现1. 基本要求2. 状态机思想3. 关键代码4. 仿真测试5. 效果演示 二、CPLD和FPGA1. 技术区别2. 应用场景 三、HDLbits组合逻辑题目四、实验总结 一、LED流水灯实现 1. 基本要求 用状态机思想写一个 LED流水灯的FPGA代码写出仿真测…...

Java——StringBuilder和StringBuffer

StringBuilder和StringBuffer 字符串的不可变性字符串修改StringBuilder和StringBuffer1 字符串拼接2 获取、修改和删除下标字符3 插入字符4 字符串替换5 字符串反转6 StringBuffer和StringBuilder类与String类的转换 StringBuffer和StringBuilder类的区别 前言 在Java中String…...

基于yolo11的BGA图像目标检测

1.产生图像数据的分辨率 2.产生图像的大小 3.产生图像是黑白或是RGB彩色 灰度图像,达到识别要求,减少计算量 4.标注数据的精准程度 1.模型标注后,少量标注全部人工校验,大量数据抽检,部分人工检验 2.明确边界框贴合…...

MongoDB 复制集实战

MongoDB 复制集实战 MongoDB 复制集架构 一、复制集核心原理 主从架构与数据冗余 复制集由主节点(Primary)和多个从节点(Secondary)构成,所有节点存储相同数据集副本。 主节点:唯一接受写操作的节点&…...

一个服务器算分布式吗,分布式需要几个服务器

一个服务器不构成分布式系统。分布式系统的核心在于多台独立的计算机(服务器)协同工作,通过通信网络共享资源、共同完成任务。以下是对问题的详细分析: 1. 单台服务器 ≠ 分布式 单台服务器的架构是集中式的,所有功能…...

k8s之Ingress讲解

一、Ingress基本介绍 Ingress是管理k8s外部访问(http/https)的API对象,提供应用层的路由功能,处理第七层(http/https)流量,支持基于域名、路径的路由。与service不同的是,service处理…...

centos-LLM+EmbeddingModel+VectorDB-简单模型

参考: Ollama平台里最流行的embedding模型: nomic-embed-text 模型介绍和实践-CSDN博客 https://blog.csdn.net/skywalk8163/article/details/145498041 https://docs.cherry-ai.com/knowledge-base/data Installation — Sentence Transformers docum…...

Uniapp 持续出现 Invalid Host/Origin header 解决方法

目录 前言1. 问题所示2. 原理分析前言 🤟 找工作,来万码优才:👉 #小程序://万码优才/r6rqmzDaXpYkJZF 爬虫神器,无代码爬取,就来:bright.cn 1. 问题所示 执行代码的时候,源源不断,一直持续出现这个 Invalid Host/Origin header [WDS]...

密码学基础——古典密码学

目录 一、定义 特点: 二、发展阶段 三、代换密码 1.单表代换密码 1.1恺撒密码 1.2 移位变换 1.3 仿射变换 2.多表代换密码 维吉尼亚密码 四、置换密码 栅栏密码 一、定义 古典密码学是指在现代密码学出现之前,使用较为简单的数学方法和手工…...

Java 连接 Redis 的驱动(Jedis、Lettuce、Redisson、Spring Data Redis)分类及对比

Java 连接 Redis 的驱动分类及对比 1. Jedis 类型:纯 Java 实现的 阻塞式(同步) 客户端特点: 基于阻塞 IO,每个连接一个线程,适合中小型应用。支持单机、哨兵模式、集群模式。使用简单,直接操作…...

人工智能之数学基础:基于吉文斯变换完成矩阵的QR分解

本文重点 在数值线性代数中,QR分解是将矩阵分解为一个正交矩阵(Q)和一个上三角矩阵(R)的重要方法。它在求解线性方程组、计算矩阵特征值及最小二乘问题中具有广泛应用。吉文斯变换(Givens Transformation)作为实现QR分解的核心工具之一,通过平面旋转变换逐步消去矩阵元…...

后端框架入门:Django

Django 基础:模型、视图、模板Django REST Framework 的使用一、Django 概述 Django 是一个 高效、灵活、可扩展 的 Python Web 框架,主要用于快速开发 Web 应用 和 REST API。 📌 Django 的优势: ✅ MTV 架构:模型(Model)、视图(View)、模板(Template)分离,便于…...

16变量命名风格

给变量/函数/文件/类 起名字, 非常有讲究的~~ 1.起的名字要有描述性.不要使用 abc,xyz 这种比较无规律的名字来描述 2.如果名字比较长,由多个单词构成的,就需要使用适当的方式来进行区分不同单词 C中,偏好使用_来进行单词的分割. 形如: student_count(变量) unordered_map(stl容…...

【自学笔记】jQuery语言基础知识点总览-持续更新

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 jQuery基础知识点总览1. jQuery简介2. jQuery选择器示例代码 3. jQuery事件示例代码 4. jQuery动画示例代码 5. jQuery Ajax示例代码 6. jQuery DOM操作示例代码 总…...

基于机器学习的三国时期诸葛亮北伐失败因素量化分析

一、研究背景与方法论 1.1 历史问题的数据化挑战 三国时期(220-280年)的战争史存在史料分散、数据缺失的特点。本研究通过构建包含军事、经济、地理、政治四大维度的结构化数据库,收录建安十二年(207年)至建兴十二年…...

读取excel作为第一列创建数据表,然后将值插入数据表

读取 Excel 文件。创建一个数据库表,其列名与 Excel 表格的列名相同。插入数据,对于每一行,如果数据为 #N/A,插入空值。 下面是一个 Python 示例代码,使用 pandas 读取 Excel 文件,创建数据库表&#xff0…...

14-SpringBoot3入门-MyBatis-Plus之CRUD

1、整合 13-SpringBoot3入门-整合MyBatis-Plus-CSDN博客 2、表 3、crud package com.sgu;import com.sgu.mapper.UserMapper; import com.sgu.pojo.User; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.spri…...

英语口语 -- 常用 1368 词汇

英语口语 -- 常用 1368 词汇 介绍常用单词List1 (96 个)时间类气候类自然类植物类动物类昆虫类其他生物地点类 List2 (95 个)机构类声音类食品类餐饮类蔬菜类水果类食材类饮料类营养类疾病类房屋类家具类服装类首饰类化妆品类 Lis…...

《汽车噪声控制》课程作业

作业内容 在MATLAB绘制给出单个正弦波或余弦波的时域图和频域图 绘制实测数据的时域图和频域图 图1 单个正弦波的时频图 图1 单个正弦波的时频图 % 正弦波参数设置 f0 1000; % 信号频率 1kHz Fs 16384; % 采样频率 16kHz T 0.05; % 信号持续时间 0.05秒 A 0.8; % 信号幅度…...

nginx的反向代理和负载均衡

http 协议反向代理 反向代理配置参数: proxy_pass;#用来设置将客户端请求转发给的后端服务器的主机 可以是主机名(将转发至后端服务做为主机头首部)、IP地址:端口的方式 也可以代理到预先设置的主机群组,需要模块ngx_http_upstream_module支…...

栈 —— 数据结构基础刷题路程

一、P1739 表达式括号匹配 - 洛谷 算法代码&#xff1a; #include<bits/stdc.h> using namespace std; const int N300008; struct mystack {int a[N];int t-1;//压栈void push(int data){a[t]data; } //取栈顶元素int top(){return a[t]; } //弹出栈顶元素void pop(){i…...

SQL语句(一)—— DDL

目录 一、SQL 基础知识 &#xff08;一&#xff09;SQL 通用语法 &#xff08;二&#xff09;SQL 分类 二、DDL —— 数据库操作 1、查询所有数据库 2、查询当前数据库 3、创建数据库 4、删除数据库 5、切换数据库 三、DDL —— 表操作 &#xff08;一&#xff09;查…...

ROS2 高级组件中的webots介绍

前言 这一篇文章主要是和大家分享一下关于ROS2 高级组件中的webots&#xff0c;会介绍关于webots的知识点&#xff0c;以及如何安装和测试环节&#xff0c;最后就是利用 webots 实现一个差速轮式机器人的运动仿真。 正文内容 webots 引入和学习资料 webots 是来自瑞士的 Cy…...

SvelteKit 最新中文文档教程(17)—— 仅服务端模块和快照

前言 Svelte&#xff0c;一个语法简洁、入门容易&#xff0c;面向未来的前端框架。 从 Svelte 诞生之初&#xff0c;就备受开发者的喜爱&#xff0c;根据统计&#xff0c;从 2019 年到 2024 年&#xff0c;连续 6 年一直是开发者最感兴趣的前端框架 No.1&#xff1a; Svelte …...