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

计算机网络 | 数据链路层

计算机网络 | 数据链路层

  • 计算机网络 | 数据链路层
    • 基本概念
    • 功能概述
    • 封装成帧与透明传输
      • 封装成帧
      • 透明传输
      • 字符计数法
      • 字符填充法
      • 零比特填充法
      • 违规编码法
      • 小结
    • 差错控制
      • 差错是什么?
      • 差错从何而来?
      • 为什么要在数据链路层进行差错控制?
      • 检错编码
        • 奇偶校验码
        • CRC 循环冗余码
      • 纠错编码——海明码
      • 小结
    • 流量控制与可靠传输机制
      • 停止-等待协议(Stop-and-Wait)
      • 后退N帧协议(GBN)
      • 选择重传协议(SR)
    • 介质访问控制
      • 信道划分介质访问控制
        • 频分多路复用(FDM)
        • 时分多路复用(TDM)
        • 波分多路复用(WDM)
        • 码分多路复用(CDM)
      • 随机访问介质访问控制
        • ALOHA 协议
        • CSMA 协议
        • CSMA/CD 协议
        • CSMA/CA 协议
      • 轮询访问介质访问控制
    • 局域网
      • 基本概念和体系结构
      • 以太网
      • 无线局域网
        • 有固定基础设施无线局域网
        • 无固定基础设施移动自组织网络
      • 虚拟局域网
    • 广域网
      • 广域网的基本介绍
      • PPP 协议
      • HDLC 协议
      • PPP 协议 vs HDLC 协议
    • 数据链路层设备
      • 集线器(Hub)
      • 网桥(Bridge)
      • 以太网交换机
      • 冲突域和广播域
      • 小结
    • 第3章总结

参考视频:王道计算机考研 计算机网络

参考书:《2022年计算机网络考研复习指导》

计算机网络 | 数据链路层

在这里插入图片描述

基本概念

在这里插入图片描述

功能概述

  • 为网络层提供服务
  • 链路管理
  • 组帧
  • 流量控制
  • 差错控制

在这里插入图片描述

封装成帧与透明传输

封装成帧

封装成帧就是加将数据加头加尾,相当于将数据打包。

在这里插入图片描述

透明传输

透明传输就是为了防止特殊的数据无法正常传输的的情况的发生,比如说在封装成帧的过程中出现数据中的某些标记符与开始/结束标记符恰巧重复等等情况。

在这里插入图片描述

字符计数法

在帧的首部使用一个计数字段(第一个字节,8bit)来表明帧内字符数。

在这里插入图片描述

缺点:如果在某一个帧内,标记位后面的某个字节的数据丢失,那么会影响后面的帧。

比如3 1 1 和 4 2 2 2,如果前面的帧丢失变成 3 1,那么后面的4就会被补到前面变成 3 1 4导致错误。

字符填充法

就是加头加尾分别标记开始结束,和零比特填充法(见下)对比,开始和结束的对应的字符不一样。

在这里插入图片描述

但有可能出现数据内某段比特流数据正好与标记字段重复,从而导致误判断的情况。

解决方法:添加转义字符。

在这里插入图片描述

零比特填充法

在这里插入图片描述

违规编码法

使用高-高,低-低来定界帧的起始和终止。

因为曼彻斯特编码不使用高-高,低-低来表示,所以如果使用高-高,低-低来表示帧起始和终止就不会与数据冲突。

在这里插入图片描述

小结

由于字节计数法中计数字段的脆弱性(计数字段错误将带来灾难性后果)以及字符填充法实现上的复杂性和不兼容性,目前较普遍使用的帧同步法是比特填充法违规编码法

差错控制

在这里插入图片描述

差错是什么?

数据链路层的差错的是比特的错误。

差错从何而来?

在这里插入图片描述

为什么要在数据链路层进行差错控制?

因为错误可以尽早发现,不会让一个错误的数据包发送了很长时间到达最终目的地之后才被发现,从而导致网络资源的浪费。

检错编码

奇偶校验码
  • 奇校验码:添加 0/1 使得 1 的个数为奇数。
  • 偶校验码:添加 0/1 使得 1 的个数为偶数。

在这里插入图片描述

缺点:只能检测出1、3、5、7、… 等等奇位数错误,检测成功率位50%。

CRC 循环冗余码

用传输数据除以生成多项式得到冗余码。

简化的例子:

在这里插入图片描述

实际运算步骤:

在这里插入图片描述

注意:

  1. 阶数就是最高位是哪位,然后位数-1,如10011就是5-1=4,1011就是4-1=3。

  2. 异或运算就是相同得0,不同得1,比如100和101做异或,结果就是001

  3. 余数添加到要发送的数据后面,称为帧检验序列FCS

示例:

在这里插入图片描述

在这里插入图片描述

需要注意的地方:

在这里插入图片描述

纠错编码——海明码

纠错编码:发现错误、找到位置、纠正错误。

工作流程:

在这里插入图片描述

海明距离:

在这里插入图片描述

一般而言,要检测 d 位错,码距至少要 d+1 位;要纠正 d 位错,码距至少要 2d+1 位。

第一步:确认校验码位数r

设有效数据有 m 位,校验码有 r 位。

海明不等式:2r ≥ m + r + 1

在这里插入图片描述

第二步:确定校验码和数据的位置

规定校验码 Pi 在海明位号为 2i-1 的位置上,其余各位为信息位。

在这里插入图片描述

第三步:求出校验码的值

分组以形成校验关系:

  • 校验码 P1:对应 x1,二进制为 001,负责所有形如 1** 的数据位的校验(不包含校验位)。
  • 校验码 P2:对应 x2,二进制为 010,负责所有形如 *1* 的数据位的校验(不包含校验位)。
  • 校验码 P3:对应 x4,二进制为 100,负责所有形如 **1 的数据位的校验(不包含校验位)。

校验位取值:

校验位 Pi 的值为第 i 组(由该校验位校验的数据位)所有值求异或。

在这里插入图片描述

第四步:检测并纠错

每个校验组分别利用校验位和参与形成该校验位的信息位进行奇偶校验检查:

在这里插入图片描述

纠错方法1:找到不满足奇偶校验的分组取交集,再与满足奇偶校验的分组取差集,得到的就是错误位。

在这里插入图片描述

例如,4号校验码和1号校验码出错,取交集得5、7位中有错误,再因为2号校验码正确,7位无错,所以错误位是5。

纠错方法2:校验位和参与形成该校验位的信息位全部异或,校验方程S3S2S1的计算结果就是错误位的位号。

在这里插入图片描述

小结

在这里插入图片描述

流量控制与可靠传输机制

数据链路层的流量控制只针对发送方,由接收方来控制(控制方法:收不下就不回复确认),只限制发送方的帧的发送速率。

流量控制是为了让传输过程中的发送速度和接受速度匹配,减少传输出错与资源浪费。

流量控制方法:

在这里插入图片描述

窗口大小:

  • 停止-等待协议:发送窗口大小 = 1,接收窗口大小 = 1。
  • 后退N帧协议(GBN):发送窗口大小 ≥ 1,接收窗口大小 = 1。
  • 选择重传协议(SR):发送窗口大小 > 1,接收窗口大小 > 1。

注:这三个协议的窗口大小都是固定的。

可靠传输:发送端发送什么,接收端就要接收到什么。

数据链路层的可靠传输使用确认超时重传两种机制来完成。

在这里插入图片描述

注:数据链路层的流量控制是点到点的,而传输层的流量控制是端到端的。

停止-等待协议(Stop-and-Wait)

在这里插入图片描述

停止-等待协议的无差错情况:

在这里插入图片描述

停止-等待协议的有差错情况:

  1. 数据帧丢失或出错
    在这里插入图片描述
  2. ACK丢失
    在这里插入图片描述
  3. ACK迟到
    在这里插入图片描述

停止-等待协议的特点:

  1. 简单
  2. 信道利用率低。大部分时间数据都在路上,发送方很长时间闲置,资源浪费

停止-等待协议的性能分析:

在这里插入图片描述

信道利用率 & 信道吞吐率 :

在这里插入图片描述

后退N帧协议(GBN)

滑动窗口:

在这里插入图片描述

发送方必须响应的三件事:

  1. 上层调用
  2. 收到了一个 ACK
  3. 超时事件

在这里插入图片描述

累计确认:就是收到一个确认帧,那么它和它之前的所有帧都默认已收到。反之,如果某个确认帧没收到,那么它和它之后的所有帧都默认丢失(即使收到了也丢掉),进行重传。

接收方要做的事:

  • 若按顺序正确收到 n 号帧,窗口前移一个位置,并为 n 号帧发回一个 ACK。
  • 若收到的数据帧落在接收窗口之外,一律丢弃,并为最近按序接收的帧重新发送 ACK。

在这里插入图片描述

示例:

在这里插入图片描述

出现超时:发送方重传所有已发送但未被确认的帧。

滑动窗口的长度:

在这里插入图片描述

发送窗口不能无限大,与使用的编号的比特数有关。

很简单,就是1比特编号0和1,同理2比特编号0-3。如果用1比特编号,却要4个窗口长度,那么窗口内数据编号都编不过来,直接乱套了。

后退N帧协议(GBN)的优缺点:

  • 优点:提高了信道利用率
  • 缺点:因为重传机制的原因导致已经收到数据却需要强行丢弃而造成浪费

例题:

在这里插入图片描述

在这里插入图片描述

选择重传协议(SR)

为了解决GBN的缺点,我们选择只重传错误的帧,这样的话就不用浪费资源将已经收到的帧重传一次了。

在这里插入图片描述

和GBN相比,选择重传协议(SR)的发送方和接收方都有滑动窗口,和GBN的区别其实就是做了一个数据缓存,已经收到的帧不用扔了,等待之前因意外丢失的帧收到的时候确认即可,但是只能缓存窗口尺寸内的包含的帧。

选择重传协议(SR)的滑动窗口:

在这里插入图片描述

发送方必须响应的三件事:

  1. 上层调用
  2. 收到了一个 ACK
  3. 超时事件

在这里插入图片描述

接收方要做的事:

在这里插入图片描述

示例:

在这里插入图片描述

因为编号的问题,发送窗口不能无限大。

窗口过大会导致二义性(在极端情况下接收方不知道接收的帧是新帧还是旧帧)。

发送窗口最后和接收窗口大小相同,这样利用率比较高。

滑动窗口的长度:

设窗口有 2n 个编号(0、1、…、2n-1),需要满足条件:发送窗口 + 接收窗口 ≤ 2n,最好是发送窗口 = 接收窗口 = 2n-1

在这里插入图片描述

例题:

在这里插入图片描述

介质访问控制

传输数据使用的两种链路:

  • 点对点链路:应用于PPP协议,常用于广域网。
  • 广播式链路:应用于早期的以太网、(无线)局域网。典型拓扑结构:总线型、星型(逻辑总线型)。

介质访问控制的目的:让节点之间的通信不会进行相互干扰。

在这里插入图片描述

三种介质访问控制协议在不同网络负载情况下的表现:

在这里插入图片描述

注:只有随机访问介质访问控制会产生冲突。

信道划分介质访问控制

信道划分介质访问控制:静态划分信道。

虽然使用一条共享信道,但是通过多路复用技术组合进行传输,提高了信道的利用率。

在这里插入图片描述

频分多路复用(FDM)

共享时间,不共享空间。

在这里插入图片描述

时分多路复用(TDM)

共享空间,不共享时间。

在这里插入图片描述

改进:统计时分多路复用(STDM,又称异步时分多路复用)

在这里插入图片描述

波分多路复用(WDM)

实质:光的频分多路复用。

在这里插入图片描述

码分多路复用(CDM)

采用不同的编码来区分各路原始信号。

既共享信道的频率,又共享时间。

在这里插入图片描述

随机访问介质访问控制

随机访问介质访问控制协议又称为争用型协议。

核心思想:胜利者通过争用获得信道,从而获得信息的发送权。

实质:将广播信道转化为点对点信道。

ALOHA 协议

纯 ALOHA 协议:

在这里插入图片描述

纯 ALOHA 协议太随性了,导致纯 ALOHA 网络的吞吐量很低。

改进:时隙 ALOHA 协议

在这里插入图片描述

CSMA 协议

分类:

  • 1-坚持 CSMA
  • 非坚持 CSMA
  • p-坚持 CSMA

在这里插入图片描述

1-坚持 CSMA 协议:

在这里插入图片描述

非坚持 CSMA 协议:

在这里插入图片描述

p-坚持 CSMA 协议:

在这里插入图片描述

总结:

名称描述优点缺点
1-坚持CSMA发送信息时监听信道,一空闲下来就立即传输,信道忙也一直监听,如果发送时冲突就等待随机时长之后再监听立即发送,利用率高如果多台设备同时监听,那么会发生冲突
非坚持CSMA发送信息时监听信道,如果空闲就立即传输,信道忙就随机等待一段时间后再监听冲突发生的几率减少因为需要等待,所以利用率不高
p-坚持CSMA发送信息时监听信道,空闲时以概率p进行传输,概率1-p不传输。信道忙就随机等待一段时间后再监听冲突减少的同时效率也比较高即使发生冲突也要坚持发送数据,资源被浪费
CSMA/CD 协议

在这里插入图片描述

为什么先听后发还会有冲突?

因为链路实际有长短,发送数据需要时间,这个时间内可能就被其他节点当成空闲状态导致发生碰撞。

传播时延对载波监听的影响:

在这里插入图片描述

如何确认碰撞后的重传时机?

在这里插入图片描述

由此我们可以想到最小帧长的问题,因为如果帧太短,帧都发送完了才检测到碰撞导致停止,导致无法停止碰撞。

在这里插入图片描述

CSMA/CD 协议应用于有线局域网。

CSMA/CA 协议

CSMA/CD 协议应用于有线局域网。但在无线局域网,不能简单搬用 CSMA/CD 协议,特别是碰撞检测部分。

原因:

  1. 接收信号的强度往往会远小于发射信号的强度,且在无限介质上信号强度的动态变化范围很大,若要实现碰撞检测,则硬件上的花费过大。
  2. 无线通信中,并非所有的站点都能听到对方,即存在“隐蔽站”问题。

在这里插入图片描述

CSMA/CA 协议的工作原理:

在这里插入图片描述

CSMA/CD 协议 vs CSMA/CA 协议:

在这里插入图片描述

轮询访问介质访问控制

主要包括两大类,一个是轮询协议,另一个是令牌传递协议。

轮询访问介质访问控制既不共享时间,也不共享空间。

轮询协议:

在这里插入图片描述

  1. 轮询开销:在随着服务的节点越多,需要用于查询是否发送数据发送的数据帧也就越多,会造成一定开销。
  2. 等待延迟:因为这是轮流“邀请”,所以难免某个节点需要发送数据,但是主节点还在较远的需要里有需求的节点那边,导致需求得不到立即响应。
  3. 单点故障:代表主机故障,无法“邀请”从属结点发送数据。

令牌传递协议:

令牌传递协议主要应用于令牌环局域网。

令牌:一组特殊的比特组成的MAC控制帧。

在这里插入图片描述

在节点之间没有收发数据的需求时,令牌在节点之间循环。

发送数据的流程:

  1. 当一个节点需要时就可以获得这个令牌,然后修改这个令牌的状态(空闲→占用)。
  2. 再将令牌与数据帧结合,让其在节点构成的环之间流动。
  3. 不是目的地的节点收到令牌也不接受,直接略过,目标节点收到信息并复制一份到本地(传输完成),因为是个闭环,所以发送节点最后得到令牌。
  4. 最后,发送令牌的节点对令牌的内容进行检查,如果发现数据出错还要重新发一遍。

局域网

局域网(Local Area Network,LAN)自然就是局部地区形成的一个区域网络,其特点就是分布地区范围有限,可大可小,大到一栋建筑楼与相邻建筑之间的连接,小到可以是办公室之间的联系。局域网自身相对其他网络传输速度更快,性能更稳定,框架简易,并且是封闭性,这也是很多机构选择的原因所在。局域网自身的组成大体由计算机设备、网络连接设备、网络传输介质3大部分构成,其中,计算机设备又包括服务器与工作站,网络连接设备则包含了网卡、集线器、交换机,网络传输介质简单来说就是网线,由同轴电缆、双绞线及光缆3大原件构成。

基本概念和体系结构

概括:范围大小,速度快,延迟低,节点平等。

在这里插入图片描述

传输介质:

局域网常用介质
有线局域网双绞线,同轴电缆,光纤
无线局域网电磁波

拓扑结构:

在这里插入图片描述

三种特殊的局域网拓扑实现:

  • 以太网(使用范围最广的局域网):逻辑拓扑是总线型结构,物理拓扑是星型/拓展星型结构。
  • 令牌环(IEEE 802.5):逻辑拓扑是环形结构,物理拓扑是星型结构。
  • FDDI(光纤分布数字接口,IEEE 802.8):逻辑拓扑是环形结构,物理拓扑是双环结构。

介质访问控制方法:

在这里插入图片描述

局域网的分类:

在这里插入图片描述

IEEE 802 标准:

IEEE 802 系列标准是 IEEE 802 LAN/MAN 标准委员会制定的局域网、城域网技术标准。其中最广泛使用的有以太网、令牌环、无线局域网等。这一系列标准中的每一个子标准都由委员会中的一个专门工作组负责。

在这里插入图片描述

IEEE 802 标准定义的局域网参考模型只对应 OSI 参考模型的数据链路层和物理层,并将数据链路层拆分成:

  • 逻辑链路控制(LLC)子层
  • 媒体接入控制(MAC)子层

在这里插入图片描述

以太网

特点:

  • 逻辑拓扑是总线型结构,物理拓扑是星型/拓展星型结构。
  • 信息以广播方式发送。
  • 使用 CSMA/CD 进行访问控制。

在这里插入图片描述

以太网采用2种方式简化通信:

  1. 采用无连接的工作方式,不对发送帧编号,不要求接收方确认,提供不可靠的服务。
  2. 数据都采用曼彻斯特编码,便于接收端提取同步信号。

在这里插入图片描述

以太网传输介质和拓扑结构的发展:

在这里插入图片描述

10BASE-T以太网:

在这里插入图片描述

适配器和MAC地址(科普,仅作了解):

在这里插入图片描述

以太网MAC帧:

在这里插入图片描述

以太网MAC帧最短要64B,其中数据最短要46B。

高速以太网:

速率 ≥ 100Mb/s的以太网。

在这里插入图片描述

无线局域网

IEEE 802.11:

  • 星型拓扑
  • 在MAC层使用CSMA/CA协议

在这里插入图片描述

使用 IEEE 802.11 系列协议的局域网称为 Wi-Fi。

IEEE 802.11的MAC帧头格式:

在这里插入图片描述

在这里插入图片描述

无线局域网的分类:

  1. 有固定基础设施无线局域网
  2. 无固定基础设施移动自组织网络
有固定基础设施无线局域网

采用 IEEE 802.11系列协议标准。

在这里插入图片描述

无固定基础设施移动自组织网络

各节点地位平等,中间结点都为转发结点(都有路由器的功能)。

在这里插入图片描述

虚拟局域网

传统局域网的局限:

在这里插入图片描述

虚拟局域网(Virtual Local Area Network,VLAN)是一组逻辑上的设备和用户,这些设备和用户并不受物理位置的限制,可以根据功能、部门及应用等因素将它们组织起来,相互之间的通信就好像它们在同一个网段中一样,由此得名虚拟局域网。

在这里插入图片描述

VLAN是一种比较新的技术,工作在OSI参考模型的第2层和第3层。VLAN可以为几乎局域网内任何信息集成系统架构逻辑拓扑和访问控制,并且与其它共享物理网路链路的信息系统实现相互间无扰共享。VLAN可以为信息业务和子业务、以及信息业务间提供一个相符合业务结构的虚拟网络拓扑架构并实现访问控制功能。

与传统的局域网技术相比较,VLAN技术更加灵活,它具有以下优点:

  1. 网络设备的移动、添加和修改的管理开销减少。
  2. 可以控制广播活动。
  3. 可提高网络的安全性。

VLAN的实现:

在这里插入图片描述

除了按端口划分,也可以按MAC地址划分VLAN。

在这里插入图片描述

例题:

在这里插入图片描述

广域网

广域网的基本介绍

广域网(Wide Area Network,缩写为 WAN),又称外网、公网。是连接不同地区局域网或城域网计算机通信的远程网。通常跨接很大的物理范围,所覆盖的范围从几十公里到几千公里,它能连接多个地区、城市和国家,或横跨几个洲并能提供远距离通信,形成国际性的远程网络。广域网并不等同于互联网。

在这里插入图片描述

PPP 协议

点到点协议(Point to Point Protocol,PPP)是为在同等单元之间传输数据包这样的简单链路设计的数据链路层协议,是使用串行线路通信的面向字节的数据链路层协议。这种链路只支持全双工操作,并按照顺序传递数据包。设计目的主要是用来通过拨号或专线方式建立点对点连接发送数据,使其成为各种主机、网桥和路由器之间简单连接的一种共通的解决方案。

PPP 协议满足的要求:

  1. 简单
  2. 封装成帧
  3. 透明传输
  4. 兼容多种网络层协议
  5. 满足多种类型链路
  6. 差错检测:但不能纠错,所以PPP 协议是不可靠协议。
  7. 检测连接状态
  8. 网络层地址协商
  9. 数据压缩协商

在这里插入图片描述

PPP 协议无需满足的要求:

  1. 纠错
  2. 流量控制
  3. 对帧进行编号
  4. 多点线路

PPP 协议有三个组成部分:

  1. 链路控制协议(LCP)
  2. 网络控制协议(NCP)
  3. 一个将 IP 数据封装到串行链路的方法。

在这里插入图片描述

PPP 协议的状态图:

在这里插入图片描述

PPP 协议的帧格式:

在这里插入图片描述

HDLC 协议

HDLC 协议是可靠传输协议。

在这里插入图片描述

HDLC 协议的站:

在这里插入图片描述

HDLC 协议的帧格式:

在这里插入图片描述

PPP 协议 vs HDLC 协议

在这里插入图片描述

为什么HDLC协议更可靠,但是我们使用PPP协议?

因为现在网络要求高,数据链路层、网络层本来就是不可靠的尽力传输,差错控制这些复杂的交给了传输层。

数据链路层设备

集线器(Hub)

集线器主要在物理层应用。

集线器可以扩展以太网,但是集线器会无脑将一个设备的所有消息转发到集线器所连的所有设备,故会将所连接的所有设备变成一个大的冲突域,同时只能有两台设备进行通信,且设备越多,冲突越多。

在这里插入图片描述

网桥(Bridge)

使用网桥时,由于网桥会根据 MAC 地址进行过滤,所以不会形成冲突域。

网桥通常只有2个端口。

在这里插入图片描述

网桥的分类:

  • 透明网桥
  • 源路由网桥

透明网桥:

通过自学习来构建转发表。每一个通过网桥的数据包都会被记录下网桥收到数据时数据对应的地址和网桥自己的接口,通过许许多多的数据包的构造的缓存,网桥就可以知道哪个数据包在哪个接口,以后如果要传输数据包就知道要往哪个接口发送数据包了。

在这里插入图片描述

源路由网桥:

在发送时,直接将最佳路径放到帧首部。

那么网桥如何获得最佳路径?

通过广播方式想目标地址发送广播,此时可能会经过不同路由产生不同的路径,目标地址收到后再将每一条路径都发一个响应帧给网桥,网桥经过对比就知道哪个接口最快了。

在这里插入图片描述

以太网交换机

以太网交换机本质:多端口网桥。

在这里插入图片描述

以太网交换机的两种交换形式:

在这里插入图片描述

以太网交换机的自学习功能:

在这里插入图片描述

冲突域和广播域

在这里插入图片描述

示例:

在这里插入图片描述

小结

在这里插入图片描述

第3章总结

在这里插入图片描述

相关文章:

计算机网络 | 数据链路层

计算机网络 | 数据链路层 计算机网络 | 数据链路层基本概念功能概述封装成帧与透明传输封装成帧透明传输字符计数法字符填充法零比特填充法违规编码法小结 差错控制差错是什么?差错从何而来?为什么要在数据链路层进行差错控制?检错编码奇偶校…...

C#,数值计算——分类与推理Gaumixmod的计算方法与源程序

1 文本格式 using System; using System.Collections.Generic; namespace Legalsoft.Truffer { public class Gaumixmod { private int nn { get; set; } private int kk { get; set; } private int mm { get; set; } private double…...

【Android】Intel HAXM installation failed!

Android Studio虚拟机配置出现Intel HAXM installation failed 如果方案一解决没有作用,就用方案二再试一遍 解决方案一: 1.打开控制面板 2.点击左侧下面最后一个程序 3.点击启用或关闭Windows功能 4.勾选Windows虚拟机监控程序平台 5.接下来重启电脑…...

2023年中国自动驾驶卡车市场发展趋势分析:自动驾驶渗透率快速增长[图]

自动驾驶卡车的技术原理是通过电脑算法控制车辆行驶,辅助驾驶员完成任务。其实现方式主要是基于传感器和计算处理技术。自动驾驶卡车可以随时感知周围环境,灵活避障,自适应调整行驶路径,相比之下传统卡车需要驾驶员进行手动操作&a…...

力扣第17题 电话号码的字母组合 c++ 回溯 经典提升题

题目 17. 电话号码的字母组合 中等 相关标签 哈希表 字符串 回溯 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。 给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。…...

华纳云:怎么判断VPS的ip是不是公网ip

要判断一个VPS的IP地址是否为公网IP,您可以执行以下步骤: 查看IP地址: 首先,获取您的VPS的IP地址。您可以使用以下命令来查看VPS的IP地址: curl ifconfig.me 或 curl ipinfo.io/ip 这些命令将显示VPS的公网IP地址。 检…...

QT学习笔记1-Hello, QT

1. QT环境 1.1 QT_CREATOR QT的集成开发工具,可以进行项目的创建运行。有一些实例可以运行之。 1.2 QT_ASSISTANT QT的工具书 2. 核心的概念 2.1 windows 窗口 2.2 widget 组件放置在窗口上的 2.3 bar 栏 2.4 icon 图标 3. Hello, QT 3.1 main.cpp …...

水滴卡片效果实现

效果展示 CSS 知识点 border-radius 属性运用 FANCY-BORDER-RADIUS 工具 此工具主要是实现不规则的图形。 FANCY-BORDER-RADIUS 工具地址 页面整体布局实现 <div class"container"><div class"drop" style"--clr: #ff0f5b">&l…...

【算法题】2899. 上一个遍历的整数

插&#xff1a; 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站。 坚持不懈&#xff0c;越努力越幸运&#xff0c;大家一起学习鸭~~~ 题目&#xff1a; 给你一个下标从 0 开始的字符串数组…...

Python+unittest+requests接口自动化测试框架搭建 完整的框架搭建过程

首先配置好开发环境&#xff0c;下载安装Python并下载安装pycharm&#xff0c;在pycharm中创建项目功能目录。如果不会的可以百度Google一下&#xff0c;该内容网上的讲解还是比较多比较全的&#xff01; 大家可以先简单了解下该项目的目录结构介绍&#xff0c;后面会针对每个文…...

系统架构设计:19 论数据挖掘技术的应用

目录 一 数据挖掘技术 1 数据挖掘的分类 2 数据挖掘的主要方法 一 数据挖掘技术 从技术角度看,数据挖掘可以定义为从大量的、不完全的、有噪声的、模糊的、随机的实际数据中提取隐含在其中的、人们不知道的、但又潜在有用的信息和知识的过程。</...

如何选择高防CDN和高防IP?

目录 前言 一、对高防CDN的选择 1. 加速性能 2. 抗攻击能力 3. 全球覆盖能力 4. 可靠性和稳定性 二、对高防IP的选择 1. 防御能力 2. 服务质量 3. 安全性 4. 价格 三、高防CDN和高防IP的优缺点对比 1. 高防CDN的优缺点 2. 高防IP的优缺点 总结 前言 随着互联网…...

【html】利用生成器函数和video元素,取出指定时间的视频画面

简言 有的时候想截取视频某一秒的视频画面。 手动截取操作麻烦&#xff0c;还得时刻关注视频播放时间。 于是&#xff0c;我搞出来了一个根据视频自动截取特定时间描述的页面。 效果 实现步骤 获取视频对象根据视频时长生成时间选择表单根据表单选择的时间和视频地址&#x…...

第五十九章 学习常用技能 - 将数据从一个数据库移动到另一个数据库

文章目录 第五十九章 学习常用技能 - 将数据从一个数据库移动到另一个数据库 第五十九章 学习常用技能 - 将数据从一个数据库移动到另一个数据库 如果需要将数据从一个数据库移动到另一个数据库&#xff0c;请执行以下操作&#xff1a; 识别包含数据及其索引的Global。 如果…...

虚拟示波器的设计与实现

摘 要 针对传统示波器功能单一、不方便更新升级的缺陷&#xff0c;本文基于虚拟仪器软件LabVIEW和NI PCI-6221数据采集卡设计并实现了一种多功能虚拟示波器&#xff0c;该虚拟示波器不仅具有采集和显示实际信号时域波形的功能&#xff0c;还具有信号产生、波形存储等功能。 测试…...

ImgPlus:基于CodeFormer的图片增强

背景 最近参与了华为云开发者大会AI赛道&#xff0c;做了一个AI图片增强作品&#xff0c;本片文章来简单介绍一下。 正文 作品名称&#xff1a;ImgPlus 赛题技术领域选择&#xff1a; AI&#xff0c;图片增强 使用技术名称&#xff1a; CodeFormer&#xff0c;ECS&#xff0…...

2024华为校招面试真题汇总及其解答(二)

6.【算法题】三步问题 题目: 三步问题。有个小孩正在上楼梯,楼梯有n阶台阶,小孩一次可以上1阶、2阶或3阶。实现一种方法,计算小孩有多少种上楼梯的方式。结果可能很大,你需要对结果模1000000007。 示例1: 输入:n = 3 输出:4说明: 有四种走法示例2: 输入:n = 5输出:1…...

编译链接(Compile Link)

文章目录 前言一、翻译环境1、概念2、翻译环境的组成3、什么是编译链接&#xff1f; 二、编译1、编译的阶段2、预编译3、编译1、什么是语法分析&#xff1f;2、什么是词法分析&#xff1f;3、什么是语义分析&#xff1f;4、什么是符号汇总&#xff1f; 4、汇编1、符号表展示 三…...

14 幂等生产者和事务生产者

kafka消息交付可靠性保障和精确一次语义处理 消息交付可靠性保障&#xff0c;指的kafka对Producer和Consumer要处理的消息提供什么样的承诺。总共就三种&#xff1a;at most once 、at least once、axactly once kafka默认提供的是 at least once。原因是只有Broker提交消息并…...

zabbix部署与监控

目录 一、什么是zabbix&#xff1f; 二、zabbix 监控原理 三、Zabbix 新特性 三、Zabbix 功能组件 四、部署 zabbix zabbix的服务端部署 zabbix的客户端部署 zabbix的服务端部署 一、什么是zabbix&#xff1f; zabbix 是一个基于 Web 界面的提供分布式系统监视以及网络…...

Python 编程基础 | 第五章-类 | 5.8、运算符重载

一、运算符重载 1、Python类内置方法 Python常用内置方法&#xff0c;如下&#xff1a; __init__&#xff1a; 构造函数&#xff0c;在生成对象时调用__del__&#xff1a; 析构函数&#xff0c;释放对象时使用__repr__&#xff1a; 打印&#xff0c;转换__setitem__&#xff1…...

【前端设计模式】之解释器模式

解释器模式是一种行为设计模式&#xff0c;它用于解释特定语言或规则的表达式。在前端开发中&#xff0c;解释器模式可以用于处理复杂的逻辑或规则&#xff0c;并将其转化为可执行的代码。 解释器模式特性 定义语言规则&#xff1a;解释器模式通过定义语言规则来解析和执行表…...

TiDB 7.4 发版:正式兼容 MySQL 8.0

MySQL 是全球最受欢迎的开源数据库&#xff0c;长期位于 DB-Engines Ranking 排行榜第二名&#xff0c;在世界范围内拥有数量庞大的企业用户和开发者。然而&#xff0c;随着时间的推移&#xff0c;MySQL 用户正面临新挑战。Oracle 官宣将在 2023 年 10 月终止 MySQL 5.7 版本的…...

QT 网络编程 服务端 客户端 QTcpServer

服务端的创建 //创建服务端QTcpServer对象 server new QTcpServer(this);//设置服务端&#xff0c;端口&#xff0c;这里绑定的是主机的所有网卡&#xff0c; server->listen(QHostAddress::Any, 8080);//绑定连接信号与槽 connect(this->server, &QTcpServer::new…...

Stm32_标准库_16_串口蓝牙模块_手机与蓝牙模块通信_手机传入信息能对芯片时间日期进行更改

实现了手机发送信息给蓝牙模块&#xff0c;程序对数据进行分析拆解&#xff0c;并更新自身数据 main.c: #include "stm32f10x.h" // Device header #include "Delay.h" #include "OLED.h" #include "Serial.h" #include "Ti…...

137.【SpringCloud-快速搭建】

微服务框架搭建 (一)、SpringCloud-Parent1.创建一个SpringBoot项目2.导入我们的依赖 (二)、SpringCloud-API (实体类)1.创建一个SpringBoot项目2.导入我们的依赖3.创建我们的实体类 (三)、SpringCloud-dept (业务A)1.创建一个SpringBoot项目2.导入我们的依赖3.配置我们的配置信…...

计算机网络第2章-CDN(4)

视频流和内容分发网 HTTP流和DASH 在HTTP流中&#xff0c;视频只是存储在HTTP服务器中作为一个普通的文件&#xff0c;每个文件有有一个特定的URL。当用户要看视频时&#xff0c;客户与服务器之间创建一个TCP连接并发送HTTP GET请求。 HTTP流具有严重缺陷&#xff0c;即所有…...

Linux常见的指令合集

Linux指令合集 认识linuxlinux基础指令1.pwd 命令2. ls 命令3.cd 命令4. man 命令5. grep 命令6. ps 命令7. kill 命令8. netstat 命令9. date 查看当前系统时间10. echo 打印选项 -e linux文件操作指令1. mkdir 命令2. rmdir 命令3. touch 命令4. rm 命令5. mv 命令6. cp 命令…...

字符串_哈希

参考文章&#xff1a; E. Compress Words(字符串hash)_z听歌的小孩z的博客-CSDN博客 字符串哈希 - OI Wiki (oi-wiki.org) 板子&#xff1a; #include<bits/stdc.h> using namespace std; const int N2e450; typedef long long ll; const int mod1e97; typedef unsig…...

python 之enumerate()函数

文章目录 enumerate() 是 Python 中的一个内置函数&#xff0c;它用于在遍历可迭代对象&#xff08;如列表、元组、字符串等&#xff09;时同时获取每个元素的索引和值。这个函数非常有用&#xff0c;因为它允许您在迭代过程中轻松地访问元素的索引&#xff0c;而不需要手动维护…...

江宁区财政局网站开发区分局/搜索引擎营销的实现方法有

1.DB LUW简介: 1.DB LUW全称:Database Logical Unit of Work2.从数据库编程的角度来看,DB LUW 是一个不可分割的数据库操作序列,以事务的提交或回滚结束3.DB LUW 要么完全由数据库系统执行,要么根本不执行4.如果 DB LUW 中发生错误,则自 DB LUW 中所有数据库更改都将被回…...

网站建设中网页模板/优化营商环境个人心得

之前在项目中使用ajax都是通过jQuery的Ajax API来进行的&#xff0c;今天试了一下通过基本的JavaScript来进行ajax请求&#xff0c;将代码记录下来&#xff1a; jsp 页面[xhtml] view plaincopy<% page pageEncoding"UTF-8"%> > <html> …...

网站建设及推广方案/深圳做网站的公司有哪些

首发于我的博客网站(prajna.top)&#xff1a; http://prajna.top/doc/4/278 apk文件 apk实际上就是一个zip文件&#xff0c;可以直接使用zip解压&#xff0c;它包含 classes.dex, 资源文件&#xff0c;证书&#xff0c;动态链接库等。 classes.dex: 代码文件&#xff0c;包含…...

杭州亚运村建设指挥部网站/个人怎么开跨境电商店铺

刚开始学习C#的时候就写过了&#xff0c;直接给地址了&#xff1a; 委托、匿名函数、Lambda表达式和事件的学习 委托学习续&#xff1a;Action、Func和Predicate...

外国做的中国动画视频网站/培训总结

多余的话不说&#xff0c;直接看代码&#xff1a; 1) 在 common/config/main.php 写入配置代码 1 // 配置翻译信息2 i18n > [3 translations > [4 app* > [ //app表示整个文件可以替换掉5 class &g…...

微信小程序开发注册/seo排名是什么意思

/*游标的简单学习*/一.概念&#xff1a;1.游标&#xff1a;游标是用于在存储过程中迭代SELECT查询出的数据。2.什么是游标&#xff1f;①游标(cursor)是系统为用户开设的一个数据缓冲区&#xff0c;存放SQL语句的执行结果。每个游标区都有一个名字。用户可以用SQL语句逐一从游标…...