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

26考研 | 王道 | 计算机网络 | 第三章 数据链路层

26考研 | 王道 | 第三章 数据链路层

数据链路层所处的地位

image-20241024170058110

  • 数据链路层 使用 物理层 提供的“比特传输”服务
  • 数据链路层 为 网络层 提供服务,将网络层的 IP数据报(分组)封装成帧,传输给下一个相邻结点
  • 物理链路:传输介质(0层)+ 物理层(1层)实现了相邻结点之间的“物理链路”
  • 逻辑链路:数据链路层需要基于“物理链路”,实现相邻结点之间逻辑上无差错的“数据链路(逻辑链路)”

文章目录

  • 26考研 | 王道 | 第三章 数据链路层
      • 1.数据链路层的功能
      • 2.封装成帧(组帧)
        • 1.概念
        • 2.四种组帧方法
      • 3.差错控制
        • 1.奇偶校验码
        • 2.循环冗余校验码
        • 3.海明校验码
      • 4.流量控制与可靠传输机制
        • 1.流量控制、可靠传输与滑动窗口机制
        • 2.停止等待协议(S-W)
        • 3.后退N帧协议(GBN)
            • 探讨:如果不满足$W_T+W_R\leq2^n $ 会有什么问题?
        • 4.选择重传协议(SR)
            • 探讨:如果不满足$W_T+W_R\leq2^n $ 会有什么问题?
        • 5.三种协议信道利用率分析
            • S − W S-W*S*−*W*协议的信道利用率
            • 公式理解:其实就是 信道上有数据传输的时间 所占 从一个帧开始传输到下一个帧可以传输的时间 的比例
            • GBN、SR协议的信道利用率
      • 5.介质控制访问
        • 1.信道划分 介质访问控制
            • 时分复用(Time Division Multiplexing,TDM)
            • 频分复用(Frequency Division Multiplexing,FDM):
            • 波分复用(Wavelength Division Multiplexing,WDM):即光的频分复用
            • 码分复用(Code Division Multiplexing,CDM)
        • 2.随机访问 介质访问控制
            • 纯ALOHA和时隙ALOHA协议
            • CSMA协议(Carrier Sense Multiple Access)
            • 1-坚持CSMA 协议
            • 非坚持CSMA协议
            • p-坚持CSMA协议
            • CAMA/CD协议
            • CSMA/CD协议的“争用期”
            • CSMA/CD协议"最短帧长"限制
            • CSMA/CD协议“最长帧长”限制
            • CSMA/CA协议
            • 什么是AP?
            • 无线局域网(WiFi)面临的新问题
            • CSMA/CA协议要点(暂时先不考虑“隐藏站”问题)
        • 3.轮询访问:令牌传递协议
            • 历史背景
            • 令牌传递协议的工作原理
            • MAU——令牌环网的集中控制站
      • 6.局域网
        • 1.局域网与IEEE 802
        • 2.局域网的基本概念和体系结构
          • 1.局域网的特点:
          • 2.局域网的分类
            • 有线局域网
            • 无线局域网
          • 3.硬件架构
            • 以太网适配器
            • WIFI网络适配器
        • 4.以太网与IEEE 802.3
            • IEEE 802.3推出的以太网标准
            • 两种常见的以太网MAC层标准
            • V2标准的以太网MAC帧
            • IEEE 802.3标准的以太网MAC帧
            • 重点:单播帧、广播帧如何传播?
            • 冲突域、广播域
        • 5.VLAN的基本概念与基本原理
            • 一个大型的局域网(如校园网)面临的问题
            • VLAN(虚拟局域网)
            • VLAN的划分方式1:基于接口
            • VLAN的划分方式2:基于MAC地址
            • VLAN的划分方式3:基于IP地址
            • 802.1Q帧的作用
        • 6.IEEE 802.11 无线局域网
            • 一个普通家用路由器的硬件架构
            • 802.11无线局域网的基本概念
            • 802.11帧的分类
            • 802.11局域网的数据帧格式
      • 7.广域网
          • PPP协议
      • 8.以太网交换机
            • 以太网交换机的自学习功能
            • 直通交换 vs 存储转发交换

1.数据链路层的功能

在这里插入图片描述

流量控制实际上是控制发送方的数据流量,让发送方发的慢一点

为了避免传输过程中的帧丢失,数据链路层采用的方法是计时器超时重发

为终端节点隐蔽物理传输的细节的是物理层而不是数据链路层的事情

数据链路层也会控制对物理传输介质的访问

2.封装成帧(组帧)

image-20250501093725932

1.概念

定义:封装成帧是指在一段数据的前后分别添加首部和尾部来构成帧,帧是数据链路层的数据传送单元。

帧长 = 数据长度 + 首部长度 + 尾部长度 ,其能够实现两个功能:帧定界和透明传输

既要加首部又要加尾部是因为网络中信息是以帧为最小单位进行传输的,所以接收方要正确的接收帧,就必须清楚该帧在一串比特流中从哪里开始到哪里结束(因为接收方收到的是一串比特流,没有首部和尾部是不能正确区分帧的)

  • 帧定界:即确定帧的界限,通过在帧的首部和尾部中包含很多控制信息来让接收方能够确定帧的界限

  • 透明传输: 接收方收到封装好的帧后,要将其“恢复原貌”,即通过去除“帧定界”的附加信息,从帧的内部还原出IP数据报的原始信息,并提交给网络层进行处理,因此网络层之间感受不到数据链路层对IP数据报的处理与逆处理,“组帧”这一操作对于网络层来说是透明的,所以称之为“透明传输”

    • 王道书中对于透明传输的理解:数据中若出现与帧定界符相同的比特组合,会被误认传输结束导致传输提前终止。透明传输则很好地解决了这个问题。无论所传数据是什么样的比特组合,透明传输都能保证数据无差错地在数据链路上传输。
  • **帧同步:**是指接收方如何从连续的二进制比特流中准确识别出帧的起始和结束位置,从而正确解析数据帧的边界,这是实现可靠数据传输的基础。该问题源于物理层传输的比特流缺乏明确的边界标识,且可能受到噪声、时钟偏差等干扰,导致接收端无法区分独立的数据帧

2.四种组帧方法

字符计数法、字节填充法、零比特填充法、违规编码法

由于字符计数法中计数字段的脆弱性和字节填充法试下上的复杂性和不兼容性,目前比较常用的是零比特填充法和违规编码法

  • 字符计数法

    原理:帧首部使用定长计数字段表示帧长,注意:帧长 = 计数字段长度 + 数据部分长度(类似大学宿舍长查寝报人数当然也得把自己算进去…)

    缺点:连锁效应,一个计数字段出错,后面全错。所以健壮性不好

    比如下面的7的111跳变为011,那么就变成了3,只会往后数3个字节。第四个字节会被认为是帧的大小

image-20250501091335467

  • 字节填充法

    原理:使用特定字节来定界一帧的开始SOH与结束EOT。(告诉你这一帧啥时候开始啥时候结束)

    三种控制字符:SOH、 EOT 、ESC

SOH:开始字符,代表一个帧的开始,16进制为01H

EOT:结束字符,代表一个帧的结束,16进制为04H

ESC:转义字符,在SOH、EOT、甚至ESC前插入转义字符,都会导致变为普通的数据信息。16进制为1BH

即:只要看到转义字符,后面紧跟的只能是数据,无任何特殊含义。

同理,接收方在接收时进行逆处理即可:删去转义字符,将紧跟其后的字符作为普通数据进行接收。

image-20250501091608537

数据中包含开头和结尾控制字符,那就加入转义字符

image-20250501091905071

数据中包含转义控制字符,那就在该字符前再加入一个转义字符

如果有两个相连的ESC都是数据呢?那就在两个ESC前面都分别加入转义字符,看起来就变成四个相连的转义字符了,其实1,3是转义,2,4是数据

image-20250501092139729

逆处理:接收方扫描到一个转义字符,就知道后面的是数据了,然后把转义字符给去掉把数据留下来

  • 零比特填充法

    原理:使用特殊的比特串表示帧的开始和结束

    现实中经常用01111110。HDLC协议、PPP协议使用此方法。

    为防止数据段中出现01111110被误判,做出如下规定:

    发送方对帧的数据部分进行处理,每连续遇到五个1,就在其后填充一个0

    接收方对帧之后,扫到第一个01111110,就知道是帧的开始,然后对后面的数据部分进行逆处理,每连续遇到五个1,就删去紧跟其后的一个0直到末尾的0111110,末尾有6个1,所以不会删掉0

image-20250501092644119

这种方法在现代计算机很常用,因为上述的处理过程很容易使用硬件快速高效的完成,有助于提高数据链路层的处理效率。性能优于字节填充法

  • 违规编码法

    原理:利用违规编码来确定帧的起始和终止。

    在物理层进行比特编码时经常采用。也就是基于物理层要使用曼彻斯特编码

    不采用任何填充技术便能实现数据的透明传输,但只适用于冗余编码的特殊编码环境

    例:在曼彻斯特编码中规定:上跳0下跳1看中间,中必变,则我们可以利用周期中间不跳变的“违规编码”来表示开始与结束,就是帧开始之前的一个周期肯定不会跳变,因为没有二进制信号,帧结束之后的一个周期肯定也没有跳变,因为也没有二进制信号过来了

image-20250501093242046

这种方法需要物理层的配合,数据链路层会把数据原模原样的交给物理层,物理层会在帧的前后插入一个时钟周期的违规信号

接收方的物理层也可以根据这个违规信号知道帧的开始和结束

这种方法在现代计算机中也很常用

3.差错控制

image-20250501095251793

奇偶校验码只能检测出奇数位错误而无法进行修正,也无法检测出双位错误

CRC检测码可以检测出所有的单比特错误。但是只有在信息位较少的时候有纠错能力

海明码可以检测出2位错误,纠正1位错误

1.奇偶校验码

奇偶校验码只能检测出奇数位错误,无纠错能力

image-20250501100620312

奇偶校验码是奇校验码和偶校验码的统称。在有效信息位添加一位奇偶校验位就组成整个奇偶校验码。

如果整个校验码中“1”的个数为奇数,则为奇校验码;反之则称为偶校验码。

在下面奇校验的_1001101例子中,第一位是,一共有4个1,而我们要让这个整体一共有奇数个1,所以第一位就写1

_1010111有5个1,已经是奇数个了,那就写0就好了

对偶校验也是同理,只是让整体一共有偶数个1

image-20250501095545598

同时接收方也可以通过奇偶校验码检查整个帧是否出错,方法如下:

  • 约定使用奇校验:通过检查是否有奇数个1来判断正误;
  • 约定使用偶校验:接收方(硬件实现)将所有位全部进行异或,若结果为0说明正确。
    • 做题也可以直接数1的个数是不是偶数
    • 异或的性质:1的个数为偶数,结果为0。1的个数为奇数,结果为1
    • 如果有偶数个比特位发生错误,则无法检测这种错误(如11010111和11010100两者异或后均为0)

现实中更加常用的是偶校验,因为偶校验可以使用硬件实现,即对信息位进行异或,得到的结果就是偶校验位,拼在一起就是偶校验码,接收方将其全部异或,结果为0就是正确的

image-20250501100639536

2.循环冗余校验码

有1位的检错能力

可以通过硬件来实现

image-20250501110844127

image-20250501103445195只是一般而言,给的除数和被除数都是二进制数。例:

image-20250501103653392

  • 关于循环冗余校验码中的模2除法,简单总结为:求商就看被除数,首位为1就商1,首位为0就商0;余数求解用异或,余数去首往下算(进行下一轮求商)

    比如第一轮时101001000第一位是1,那就写1,然后是1010和1101除去第一位的对应位置进行异或操作得到111,再把1010后面的0给拉下来构成了1110

    第二轮时就是1110的第一位是1,那上面的商就写1,然后还是1110和1101进行异或操作,得到011,再把1拉下来得到0111

    第三轮0111第一位是0,那商就写0,然后商是0的话,那就是0111和0000进行异或操作了,得到1110

    后续都是这个过程,最终得到一个余数,作为校验位

202304131915441

CRC码就是101 001 001

image-20250501104048054

接收方用接收到的CRC进行模2除余数必须得是000

image-20250501105837460

余数对应了出错的是第几位,但是这个例子中,余数只有3位,只能表示8个位置(1个正确7个错误),但是信息位有9位,所以余数和出错的第几位并不对应。但这并不能说循环冗余校验码只有检错能力没有纠错能力。只要信息位数少于余数能表示的位置数量,那就可以纠错

image-20250501110243050

所以其实是有纠错功能的,就是信息位数不能太多

还可以看出,如果生成多项式是确定的,那么无论信息位如何变化,出错位和余数都是对应的

image-20250501110552440

CRC码一般用于网络通信中,一般都是几千个bit的信息位加上几个校验位,所以一般只用来检错

对于K+R+1的理解,有R位所以有2的R次方种情况,而1表示的是余数000,即正确的情况,剩下的都是K+R表示的是出错位置在[0,K+R]这个区间内的K+R种情况,所以是上述这个不等式

3.海明校验码

image-20250501112338004

image-20250501111219180

image-20250501111707794

image-20250501111815256

最后由低位排到高位是s1s2s3,就是010,也就是第二位出错了

海明码也可以从小到大编,如下图所示。步骤和从大到小的没有任何区别

image-20250501111956979

image-20250501112245745

4.流量控制与可靠传输机制

1.流量控制、可靠传输两种功能都可以基于滑动窗口机制来实现

2.停止等待、GBN、SR本质上都是滑动窗口机制

3.停止等待和GBN必须按序接收数据,因为接收窗口为1,而SR不用,因为接收窗口大于1

4.对于窗口总大小为n的滑动窗口(包含接收窗口和发送窗口),最多可以有n-1个帧已发送但还没有确认(原因:发送窗口数量<=总窗口数量-1,因为接收窗口至少1个)

5.如果三个协议数据帧长相等,忽略确认帧长,帧序号位数确定,那么三个协议对应的最大信道利用率大小关系为

停止等待<=SR<=GBN

1.流量控制、可靠传输与滑动窗口机制

学习下面三个协议的时候也按照下面四个方面进行学习会比较清晰一些

image-20250501121614714

滑动窗口机制的介绍

滑动窗口流量控制是一种更高效的流量控制方法。

发送窗口:发送方当前允许发送的帧,如果发送窗口之外的帧,则暂时不允许发送——控制发送方最多能发送多少个帧和多少帧。

接收窗口:接收方当前允许接收的帧,同理,如果接收到窗口之外的帧,直接丢弃。

特性:通过“确认机制”,由接收方控制发送方的窗口向前滑动,从而实现流量控制,即:只有接收窗口向前滑动(同时接收方发送了确认)时,发送窗口才有可能(只有发送方收到确认后一定)向前滑动。

image-20250501121502530

image-20250501121521492

2.停止等待协议(S-W)

为什么S-W中不存在数据帧失序的问题?

因为发送窗口和接收窗口大小是1,只会顺序的发送和顺序的接收

会让停止等待协议效率遍地的:在源主机和目的主机之间的距离很远的并且数据传输速率很高

距离远增大了传输时间,传输速率高,数据帧的发送时间就小,两者作用下是的信道利用率大大降低

image-20250501142814802

帧序号的要求是 2n>= 发送窗口长度+接收窗口长度

在停止等待协议中,发送和接收窗口的长度都是1,所以n就是1,即用1个比特位就可以表示帧序号

我们让第一个帧是0,第二个帧是1,第三个帧是0这样交替下去

数据帧、确认帧、帧序号的概念

  • 数据帧:用来传输数据
  • 确认帧:当接收方接收到准确无误的数据后,会给发送方发送确认帧。确认帧很短,甚至可以是空。
  • 帧类型:注明帧的类型,是数据帧还是确认帧。因为在现实场景中数据的传输是双向的,所以需要根据帧类型来判别。(比如我接收方此时也想给发送方发送数据,那发送方怎么知道接收方发过来的是数据帧还是确认帧呢?所以就需要帧类型)
  • 帧序号:给帧编号,后续具体场景给出原因。

image-20250501141209420

正常情况:

1.发送方发送A数据帧也就是Data0帧,接收方接收后经过差错检验后,发送给网络层

2.然后再发送给发送方确认帧Ack0帧,然后接收方的接收窗口向后滑动,准备接受B帧。

3.发送方收到Ack0帧,然后发送窗口向后滑动准备发送B帧,即Data1帧(C是Data0帧,不是Data3帧)

4.循环上述过程

image-20250501141749738

异常示例情况1:数据帧丢失

当数据帧因网络噪声等原因丢失,接收方一直收不到下一个帧,怎么办? —— 利用重传机制

重传机制:发出一个帧后,发送方需要启动“计时器”,若计时器超时(规定时间内没有接收到确认帧),就自动重传,同时计时器清零重新计时,进入下一个循环。

下一次,接收方正确收到数据帧时,返回确认帧,发送方在本次计时器超时前也会收到确认帧,窗口向右滑动,继续进行数据传输。

image-20250501142202087

异常示例情况2:确认帧丢失

确认帧丢失,发送方计时器超时,自动重传,时间重置。而此时接收方早已接收此数据,窗口向右滑动等待接收下一个帧。

收到此重复帧,接收方会进行以下两个步骤:

  • 丢弃重复帧
  • 返回重复帧的ACK

因此,在超时之前,发送方可以收到该重复帧的ACK,确认该数据帧已正确传输完毕,滑块向右滑动,继续进行。

image-20241104172044871

image-20241104172516946

思考:如果没有帧序号会怎样?

**接收方无法判别重复帧。**当发送方发送重复帧,接收方接收到此帧时,由于没有给帧编号,导致接收方不知道接收到的数据帧是重复帧还是数据相同的新帧,无法进行鉴别和处理重复帧的操作,也不能使数据传输进行下去。编号后,相邻两帧的序号有0、1之分,容易判别(接收窗口和发送窗口的距离不超过1,因此用1bit表示帧序号足矣)。

image-20250501142451626

异常示例情况3:数据帧有误

当接收方接收到数据帧后,经过差错检验监测到数据帧内部有差错,就会将此帧“丢弃”,且不返回ACK。

显然会导致发送方计时器超时,进行超时重传操作。当接收方接收到正确数据后,便会返回确认帧,继续进行。

image-20250501142702203

3.后退N帧协议(GBN)

image-20250501143133817

帧编号问题:只要满足那个条件就行

image-20250501143228215

正常情况

发送方把0,1,2全都发了,接收方也全都收了,然后只返回确认帧2,即最后一个帧,代表0,1,2全都收到了

image-20250501143401847

异常示例情况1:数据帧丢失

不管是通信故障丢失还是被接收方检测出差错丢失,处理方法都是如下

image-20241105102334771

上图是E帧丢失,而当F帧发送过去的时候,接收方的接收窗口是E帧,那不会接收F帧,并且在这时会返回已经正确接收的最后一个帧的ACK即D帧的ACK,那发送窗口就移动到D之后也就是EFG了,然后继续发送

image-20250501143711257

但是之前已经发送过E、F了,但是接收方不会返回E的ACK只返回了D的ACK,那么此时E的帧超时后就会重新发送E及其以后的FG帧。其中E,F帧是重新发送的,G帧是第一次发送的

这样的设计也实现了流量控制功能,如果发送方发的太快了,接收方来不及接收的话,那肯定会有帧超时,然后发送方只能重新退回到这个帧重新发

image-20250501144141466

注:重传帧的同时要重置计时器。同时新发送的帧也要有个计时器,不要忘记了

如果重传没有出错,那就和正常情况一样

image-20250501144524435

异常示例情况2:确认帧丢失

image-20250501144722295

确认帧丢失后,定时器会超时,A帧第一个发的,第一个超时,那么就会重传A,B,C三个帧,同时重置计时器。

而这时由于接收方的接收窗口已经滑动到D了,所以ABC都是非法帧,那就会返回目前已经接收的最后一个正确帧ACK即ACK2,发送方收到后发送窗口往后移动即可

image-20250501144835097

探讨:如果不满足$W_T+W_R\leq2^n $ 会有什么问题?

image-20250501145205400

发送ABCD全部成功但是确认帧ACK3丢失了,那就会超时重传,重传A的时候发现发过去的是Data0,接收窗口接收的虽然是E但是序号是0,所以会认为是正常的,原来ABCD被接收到EFGH的地方了,接收方接收的就是ABCDABCD了,后续的都会错位的

image-20250501145440814

4.选择重传协议(SR)

image-20250501145720623

选择重传协议的窗口大小限制条件

在实际应用中通常取发送和接收窗口两者相等的情况

image-20241105105723629

正常情况

发送方把ABCD全发了,然后接收方每接收到一个都得返回对应的ACK,这是一帧一确认

这些帧的ack都确认以后发送窗口就可以往后移动了

image-20241105110405323

异常示例情况1:数据帧丢失

5号帧丢失了,4,6,7都正常到达了,那么就会返回4,6,7对应的ack,然后接收窗口和发送窗口都会向后移动一格

此时5号帧的ack迟迟没来,那就定时器就超时,然后重传5号帧

image-20250501150613501

由于发送窗口和接收窗口的后移,所以可以在重传5的时候发送和接收0号帧,ACK5和ACK0都到了就可以往后移动了

image-20250501150850473

image-20250501151104697

异常示例情况2:数据帧因差错而被丢弃

5号帧因为差错检验被接收方扔了

image-20250501151157970

image-20250501151214219

收到5号帧的NAK_i就会立刻重传,并重置计时器

image-20250501151305747

同时,由于发送窗口和接收窗口已经后移了,所以此时可以发送0号帧

这次重新收到5号帧后没有差错就可以了

image-20250501151407321

image-20250501151541398

异常示例情况3:确认帧丢失

1和3的ack全都丢了

image-20241105111548255

此时发送窗口和接收窗口只可以向后滑动1格,此时可以继续发送E。

但是1,3号帧由于超时发生了重传,所以发完E之后又会重传1,3。

然后E到达之后接收窗口会继续往后滑动。

此时接收方再次收到了重复的1和3的数据帧,发送方会返回两个对应的确认帧。这次要是没有丢失,发送窗口就可以往后移动了

image-20241105111637621

image-20250501152125505

探讨:如果不满足$W_T+W_R\leq2^n $ 会有什么问题?

image-20250501152259263

image-20241105111919841

image-20241105112012463

0,1,2,3,4的ack全都丢了,但是接收方全都接收上了,那么发送方会超时重传0,1,2,3,4,但是下一个滑动窗口内包含了0号帧A,那0号帧A就被放在I帧的地方了,这就发生了错误

image-20241105112049835

5.三种协议信道利用率分析

用最大平均传输速率除以信道带宽也可以得到信道利用率

最大平均传输速率可以通过时间t内的数据总量除以时间t得到

image-20250501162815653

  • S − W S-WSW协议的信道利用率
    • 公式理解:其实就是 信道上有数据传输的时间 所占 从一个帧开始传输到下一个帧可以传输的时间 的比例
    • 这里算的是发送方的发送信道的信道利用率

image-20250501155743934

image-20250501155824895

image-20250501155920344

  • GBN、SR协议的信道利用率

    理想情况下只收发送窗口的影响,不受接收窗口的影响

image-20250501160724407

image-20250501160843991

平均数据传输速率为 传输的数据总量除以传输这段数据所花费的时间。要等待ack回来才算是传输完毕

用最大平均传输速率除以信道带宽也可以得到信道利用率

image-20250501161713876

image-20250501162254305

image-20250501162402041

对于连续ARQ来说

1.发送方可以连续发送若干数据帧,而不是发完一个就停下来等待确认帧

2.发送方收到了接收方发来的确认帧,还可以继续发送数据帧

3.相比停止等待协议,连续ARQ因为减少了等待时间,所以提高了信道利用率

4.GBN必须按序接收数据,因为接收窗口为1,而SR不用,因为接收窗口大于1

image-20250501162634700

5.介质控制访问

1.信道划分 介质访问控制

TDM与FDM相比,抗干扰能力强,可以逐级再生整形,避免干扰的积累,而且数字信号比较容易实现自动转换

TDM适合传输数字信号,FDM适合传输模拟信号

image-20250502182605029

介质访问控制(Medium Access Control,MAC):多个节点共享同一个“总线型”广播信道时,可能发生“信号冲突”。

  • 应该怎么控制各节点对传输介质的访问,才能减少冲突,甚至避免冲突?这是介质访问控制应该解决的问题

image-20250501190643541

时分复用(Time Division Multiplexing,TDM)

将时间分为等长的“TDM帧”,每个“TDM帧”又分为等长的m个“时隙”,将m个时隙分配给m对用户(节点)使用

TMD要满足的条件:
1.介质的位速率大于单个信号的位速率

2.介质的宽带大于结合信号的带宽

image-20250501190944104

  • 统计时分复用(Statistic Time Division Multiplexing,STDM ):又称异步时分复用,在TDM的基础上,动态按序分配时隙。

image-20250501191042453

频分复用(Frequency Division Multiplexing,FDM):

将信道的总频带划分为多个子频带,每个子频带作为一个子信道,每对用户使用一个子信道进行通信

image-20250501191541695

波分复用(Wavelength Division Multiplexing,WDM):即光的频分复用

image-20250501191620651

码分复用(Code Division Multiplexing,CDM)

image-20250501191836558

image-20241107215148299

image-20241107215318198

image-20241107215724833

image-20241107215956390

image-20250501192551917

image-20250501192640099

2.随机访问 介质访问控制

image-20250501195914874

image-20241108150802952

纯ALOHA和时隙ALOHA协议

image-20241108152324853

image-20241108152021038

image-20241108152107919

image-20241108152211042

CSMA协议(Carrier Sense Multiple Access)

image-20250501194032580

  • 1-坚持CSMA 协议

image-20241108153452357

  • 非坚持CSMA协议

image-20241108153755239

  • p-坚持CSMA协议

image-20241108154027287

CAMA/CD协议

1.以太网常用,以太网的最短帧长是64B,也就是512bit

2.当信号传播延迟趋近0时,信道利用率趋近100%

3.最短帧的题目要抓住两个公式:

 a.发送帧的时间>=争用期时间

​ b.最短帧长等于数据传输率*争用期时间

给了最短帧长,除以数据传输率就是争用期时间

争用期时间不止是线路上的传播时延(线路1000m,传播速度1m/s然后相除得到的结果),还包括集线器之类的造成的时延(比如把信号放大再生画了2s),这些都包含在除出来的争用期时间内

然后争用期减去集线器之类的时延才是传播时延

image-20250501200102237

image-20250501202430562

image-20241108160653260

image-20241108160547976

我们会让随机等待的时间的区间随着冲突次数的增加而增加,因为冲突次数多了我们会更希望他们可以错开往信道上发送数据,而随机等待的时间区间越大,错开发送到信道上的几率就越大

第10次冲突之后我们不会再加长随机等待的时间的区间了就,这是一个分水岭

第16次冲突后就不传了,再跟网络层汇报一下没传成功

使用二进制指数退避算法的理由是:这种算法考虑了网络负载对冲突的影响

  • CSMA/CD协议的“争用期”

image-20250501203154012

image-20241111111439030

  • CSMA/CD协议"最短帧长"限制

    假如帧长是500bit,传播需要50微秒,A传播完整个信道需要50微秒,而B正好在第29微秒时也去看了看,发现没数据,就开始传播,需要30微秒才能到A,这时候已经到第59微秒了才能到A,A在第50微秒的时候已经传送完了数据,A还以为没冲突呢,但实际上其实是有冲突的

image-20250501204056151

image-20250501204133254

  • CSMA/CD协议“最长帧长”限制

最长帧长:规定最长帧长可防止某些节点一直占用信道。具体是多少要看设计者怎么设计了

image-20250501204428825

image-20250501204219123

补充:CSMA/CD没有ACK机制,若发送过程中没有检测到冲突,就认为帧发送成功。早期CSMA/CD是有线电视用的,有线电视误码率很低,所以才是没有检测到冲突的话就会认为帧是发送成功的

CSMA/CA协议

用于IEEE 802.11无限局域网(WIFI),是考试的难点但并不是重点

CSMA/CA协议的主要特点是发送后等待确认帧,在规定时间内没有收到确认帧就重传

不是发送前先预约信道,因为这个功能有时候开有时候不开

image-20250502143253195

image-20250502141514049

  • 什么是AP?

    路由器的无线信号收发装置

    一般不会移动,在一些教材中也被叫做固定站点

image-20250502141748590

image-20250502142045797

切换wifi热点被叫做漫游

  • 无线局域网(WiFi)面临的新问题

    1.A发送信号太强而接收的信号D强度一般很弱,那发送信号会极大的干扰接收信号,不好检测出来

    并且接收信号的强度的动态变化范围很大,有可能中间加个墙就变得很小,原来可以检测到现在就检测不到了

    2.假设信号范围10m,A,B相距13米,那么A发送信号的时候其实就只能送到AP,检测不到B,C正在发送数据,B,C就是隐藏站

image-20250502142816153

  • CSMA/CA协议要点(暂时先不考虑“隐藏站”问题)

image-20250502143325491

信道空闲时:

1.准备好数据帧

2.等待一个DIFS

3.发送数据帧

4.接收方接收完数据后等待一个SIFS(无线通信误码率较高,必须进行差错控制)

5.返回ACK

信道不空闲时

1.用算法确认一个倒计时

2.持续监听信道,忙碌的话倒计时不会扣除

3.闲置的话倒计时开始扣除,扣完之后立即开始发送数据

4.接收方接收完数据后等待一个SIFS(无线通信误码率较高,必须进行差错控制)

5.返回ACK

image-20250502143755752

  • 解决“隐藏站”问题

image-20250502144344038

ACK也是给大家都发,发完以后B,C就可以预约了

image-20250502144603936

这个先预约在发送可以不启用也可以启用,判断依据是数据帧的大小,小的话就不用启用了,因为就算传输失败我重新传送这个小的数据帧的代价也很小。但是如果数据帧很大的话就需要启用了,不然重新传输的代价很大

一般而言就是会设定一个阈值,超过了就会启用

注:除了一开始是DIFS,剩下三个都是SIFS

NAV值的分析

3.轮询访问:令牌传递协议

1.适用于负载高的网络,而在总线型网络且负载高时中使用CAMA/CD协议就不太适合,因为冲突换回大幅增加,重发的次数就多了,而令牌传递冲突概率很小,几乎不会重发

2.令牌环网不存在冲突

3.网上所有节点共享网络带宽

4.数据从一个节点到另一个结点的时间可以计算

5.当前结点没有要传输的数据会立即传递令牌,不会持有

6.信道利用率比较公平

image-20250502153216532

  • 历史背景

image-20250502150410922

  • 令牌传递协议的工作原理

    注意:1.不管是令牌帧还是数据帧,传播方向都是固定的,要么顺时针要么逆时针,不能改

    2.源地址和目的地址是MAC地址(48bit)

正常情况:

  1. 1号主机拿到了令牌,同时也有数据要传递,然后把令牌帧变成数据帧,加入源地址和目的地址和要传输的数据,以及一个有没有被接收的标志位。(假设是3号主机是目的地址)

  2. 2号主机看了一下不是自己的,就继续往后传递,传到3号发现是自己的,就把传输的数据复制一份,然后把标志位改为true,然后继续传递

  3. 绕完一圈以后就回到了起点,就是1号机,检查接收是否已经被修改,为true表示接收成功。为false的话,如果数据帧检查有异常,可以尝试重新发送(重发次数也会有上限,达到上限以后可以放弃发送)。

  4. 如果发送成功,那就会把数据帧换回令牌帧,释放令牌,把控制权交给下一个节点。修改令牌号为2

    也可以说是每次只可以传1个帧,传送完就必须释放令牌(生成一个新令牌)

  5. 然后把令牌帧传递给2,2号主机一看是2,就看自己有没有要发的数据,有的话就还是上面的过程,没有的话就释放令牌控制权(生成一个新令牌),把令牌号改为3再传递给3号主机

  6. 后续就是上述过程的循环

其他情况:

image-20241111172823047

image-20241111172850703

image-20241111172945545

image-20241111173011294

image-20241111173115814

image-20241111173248755

  • MAU——令牌环网的集中控制站

    构建令牌环网的,结点的编号也是MAU控制分配的

image-20241111173428865

image-20241111173445469

6.局域网

1.局域网与IEEE 802

IEEE 802局域网对应OSI参考模型的物理层和数据链路层

高速以太网和标准以太网的帧格式是一样的,以便升级和向后兼容

image-20250502155003829

image-20250502155042577

现在大部分的无线网卡有线网卡都不在有逻辑链路子层了,原来的目的是兼容所有版本的MAC子层,向网络层提供统一接口

因为有线局域网已经被以太网垄断,基本都用以太网技术

而无线局域网也被 802.11垄断了,所以对网络层提供的一共也就两种技术,也没必要单独设置一层来兼容了

image-20250502155127526

MAC子层的主要功能是控制和协调所有站点对共享介质的访问

2.局域网的基本概念和体系结构

image-20250502155643139

1.局域网的特点:

image-20250502155559232

单播广播和多播

比如BDE是一组的,那A也可以多播这一组,也就是A发给BDE三个人

image-20250502155750534

2.局域网的分类

image-20250502155937522

关注三要素

image-20250502160034656

有线局域网

分为以太网和令牌环网

10Base5:Base表示的是传输的是基带信号,也就是数字信号,10是最高支持10Mbps的速度,5是一根同轴电缆不能超过500米

image-20250502160215941

image-20250502161108950

随着时间,以太网技术又增加了双绞线以太网和光纤以太网

image-20250502161339780

用集线器连接的以太网肯定是半双工的,必须得用CSMA/CD协议

光纤以太网

介质访问控制方式是null的原因是不需要考虑介质访问控制,因为一根光纤里面有两条,可以实现全双工通信

image-20250502160831998

双绞线以太网

10BaseT的T就是双绞线的意思

不允许和同轴电缆以太网一样,一根线中间还可以分出来,必须只有两端才可以连接

image-20250502161135745

image-20250502161313646

无线局域网

image-20250502161816415

3.硬件架构

网卡实现的功能主要在数据链路层和物理层

image-20250502162209442

MAC地址:也叫以太网地址和局域网硬件地址。全球唯一,写死在以太网适配器的ROM里面的。除非给电脑换一个适配器,否则不会改变

以太网适配器和wifi网络适配器各一个,而且不一样

image-20250502162944859

串并行转换:

局域网和网卡之间是串行传输的,而网卡和主存之间是并行传输的,所以要进行串并行的转换(比如主存和网卡之间是32bit的速率,而局域网和网卡只有1bit,那么网卡就是把这些1比特1比特的数据按照并行传输的方式传给主存,可能够了4bit就传一次之类的)

而主存并行传输给网卡32bit数据,网卡还得串行发到局域网上面

以太网适配器

以太网适配器有ROM和RAM

RAM帧缓冲:之前说的发送窗口和接收窗口的帧就是在RAM进行缓存

image-20250502162018337

WIFI网络适配器

内置WIFI天线用来接收和发送电磁波信号从而接入802.11局域网

4.以太网与IEEE 802.3

image-20250502174155588

以太网采用两项措施来简化通信

1.采用无连接的工作方式。既不对发送的数据帧编号,又不要求接收方发送确认,即以以太网尽最大努力交付数据,提供的是不可靠服务,对差错的纠正则由高层完成

2.发送的数据都是用曼彻斯特编码的信号,每个码元中间出现一次电压转换,接收方利用这种电压转换方便的将位同步信号提取出来

  • IEEE 802.3推出的以太网标准

光纤以太网考的不多,主要是双绞线和同轴电缆以太网

image-20241112195051221

吉比特以太网

image-20250502164906812

同轴电缆两端对应的是两个不同的网段,可以使用不同的物理层标准

image-20250502165009511

  • 两种常见的以太网MAC层标准

    V2标准是市面上最常用的标准

    IEEE 802.3就是抄了V2的作业,基本没啥改动

image-20250502165147331

  • V2标准的以太网MAC帧

image-20250502165339435

1.网络层协议是IPV4或者IPV6

2.数据长度需要限制,最短是46字节,最长是1500字节,如果比46少要用其他比特进行填充,太长就分片

一个MAC帧的长度为64字节到1518字节

3.最后的FCS是差错控制用的,用的是CRC校验码

4.物理层采用曼彻斯特编码

物理层会给MAC加一段前导码,前导码的前同步码是让收发双方保持一样的节奏,后面的帧开始定界符表示后面就是MAC帧。帧结尾会留有一段空隙,接收方这段空隙里面收不到比特就知道这一帧传输完毕了。除此之外也可以采用违规编码法,见下图

5.目的地址全1表示广播帧,所有相连的人都会收到这个帧

image-20241112201022669

  • IEEE 802.3标准的以太网MAC帧

image-20250502172346512

和V2的区别就是 V2要指明网络层的协议类型,是IPV4还是IPV6,而这个就是指明数据部分的长度就行

这是因为在IEEE的层次中,MAC层并不直接为网络层提供服务,而是上面还有个逻辑链路控制子层

  • 重点:单播帧、广播帧如何传播?

image-20250502173945612

广播帧并不会通过路由器到达其他网络

广播式网络使用共享的广播信道进行通信,通常是局域网的一种通信方式(局域网工作在数据链路层),因此可以不需要网络层,也就不存在路由选择问题。但是数据链路层使用物理层的服务必须通过服务接入点,数据链路层向高层提供服务也必须通过服务接入点

  • 冲突域、广播域

    选C

image-20250502174130075

5.VLAN的基本概念与基本原理

1.同一个VLAN的主机可以处于不同的局域网中

2.VLAN是为局域网用户提供的一种服务,而不是一种新型的局域网

3.VLAN建立在交换技术的基础上,以软件方式实现逻辑分组与管理,VLAN中的计算机不受物理位置的限制

4.VLAN的划分与计算机的实际物理位置无关

5.当计算机从一个VLAN转移到另一个VLAN时,只需要简单的通过软件设定,而无需改变它在网络中的物理位置

6.VLAN优点:有效共享网络资源、简化网络管理、提高网络安全性和保密性。链路聚合是解决交换之间的宽带瓶颈问题的技术,而不是虚拟互联网的技术

image-20250502175439308

IEEE 802.1Q负责的

  • 一个大型的局域网(如校园网)面临的问题

image-20250502174504064

  • VLAN(虚拟局域网)

image-20250502174703238

如何划分VLAN由管理员进行配置

  • VLAN的划分方式1:基于接口

image-20241112203014667

  • VLAN的划分方式2:基于MAC地址

image-20241112203207998

  • VLAN的划分方式3:基于IP地址

image-20241112203403842

  • 802.1Q帧的作用

image-20241112203655331

中间插入了4个字节的 VLAN标签,表示是哪个VLAN的

image-20241112203821021

6.IEEE 802.11 无线局域网

1.802.11帧是在以太网帧的基础上增加了4B,所以帧的长度肯定发生了变化

2.MAC帧的地址字段的含义和作用取决于 帧的ToAP和FromAP位

image-20250502181820555

image-20241112204200018

  • 一个普通家用路由器的硬件架构

image-20241112204435395

门户其实就是网桥。

以太网交换机连接的是802.3协议的,wifi是802.11协议的,两个局域网协议不同,通过网桥/门户,可以完成协议的转换,可以连接起来组成一个更大的局域网

  • 802.11无线局域网的基本概念

image-20250502180133195

image-20241112210135206

  • 802.11帧的分类

image-20250502180710413

  • 802.11局域网的数据帧格式

    1.第9个和第10个bit表示去往ap还是来自ap

    2.A给AP发,即去往AP的帧 1是接收地址,2是发送地址,3是目的地址

    地址1:中转的AP的mac地址

    地址2:起始的A的mac地址

    地址3:最终目的的B的mac地址

    AP给B发,即来自AP的帧 1是接收地址,2是发送地址,3是最开始的地址

    地址1:最终目的的B的mac地址

    地址2:中转的AP的mac地址

    地址3:起始的A的mac地址

image-20241112211759561

image-20241112213058397

image-20250502182112819

持续期大小 RTS>CTS>ACK

其实就是CSMA/CA协议中的NAV

7.广域网

看课本吧,这人讲的一坨

广域网的通信子网主要使用分组交换技术

广域网所使用的传输方式是存储转发式

广域网的拓扑结构通常采用的是网状

局域网和广域网互联是通过路由器实现的

image-20250502212347282

1.局域网普遍采用多点接入技术,广域网采用点对点,一个发送方一个接收方,通过一条链路相连的全双工或者半双工通信模式

2.局域网强调数据传输,而广域网强调资源共享

虽然广域网传输速率比局域网高,但是由于距离远,导致传播延迟比局域网大,所以广域网不怎么强调数据传输,只强调资源共享

3.广域网和局域网之间的差异不仅在于它们所覆盖的范围不同,还在于它们所采用的协议和网络技术不同,广域网使用点对点技术,局域网使用广播技术

PPP协议

1.不需要实现可靠传输

2.提供有连接的不可靠服务,因为发现错误只是丢了不重传

3.PPP可用于拨号连接,因此支持动态分配IP地址

应用:
1.用户通常都要连接某个ISP才能接入互联网,PPP就是用户计算机与ISP通信时所用的数据链路层协议

2.两台网络设备之间的直连专用路线

image-20250502212913290

1.PPP虽然在连接建立的过程中使用了确认机制,但是在数据帧发送过程中只保证无差错接收(通过CRC),不使用序号和确认机制,因而是不可靠服务

2.PPP只支持全双工的点对点链路,不支持多点线路

3.PPP的两端可以运行不同的网络层协议,但仍可以使用同一个PPP通信

4.PPP是面向字节的,所有的PPP帧的长度都是整数个字节

image-20250502213149114

PPP不需要的纠错,只需要检错就可以了。

ppp不需要流量控制,不需要给帧编号,不需要支持多点线路

image-20250502213445982

第二步是建立物理的链路,第三步是建立逻辑上的链路

image-20250502213518187

image-20250502213918683

C是控制字段,FCS是检错字段,使用的是CRC

PPP是点对点的,并不是总线形,所以无需使用CSMA/CD协议,自然就不会有最短帧长的限制,所以信息部分是0-1500字节,而不是46-1500字节

8.以太网交换机

image-20250502224445082

以太网交换机特点:

1.当交换机的接口直接与主机或其他交换机连接时,通常都工作在全双工方式

2.交换机具有并行性,能同时连接多对接口,使每对相互通信的主机都能像独占通信介质那样,无冲突地传输数据,这样就不需要使用CSMA/CD

3.当交换机的接口连接集线器时,只能使用CSMA/CD协议且只能工作在半双工方式。当前的交换机和计算机中的网卡都能自动识别上述两种情况

4.交换机是一种即插即用设备,其内部的帧转发表是通过自学习算法,基于网络中各主机间的通信,自动地建立的

5.交换机因为使用专用交换结构芯片,交换速率较高

6.交换机将网络划分成多个网段,一个网段的故障不会影响到另一个网段的运行

交换机优点:每个接口结点所占用的宽带不会因为接口结点数量的增加而减少,且整个交换机的总宽带会随着接口节点的增加而增加

如果ABC连接一台交换机,每个链路都是100Mbps,那么最大吞吐量就是300Mbps,就是三个人的宽带不会互相影响

而如果ABC连接一台集线器,每个链路都是100Mbps,那么最大吞吐量就是100/3Mbps,就是三个人的宽带是共享的

看书上的题 P120页第10,11题

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

image-20241112214713513

A给C发帧,交换机1会记录A的MAC地址,然后由于不知道C的MAC地址,会把这个帧当成广播帧,全都发一遍,交换机2也就知道了A的MAC地址,最后只有C收到了之后看了下是自己的然后收下了

剩下的帧都是这样

总的来说就是,先查表,表里没有就发广播帧

image-20241112214824772

  • 直通交换 vs 存储转发交换

image-20241112215412642

直通交换:只把开头的目的地址拿出来分析一下,也就是只处理目的地址

而且在需要速率匹配时表现很差,因为这个就是发送方发多快就按照相同的思路给到接收方,接收方速度慢接收不了就接收不了了

存储转发交换:接收并处理整个帧

image-20241112215515524

相关文章:

26考研 | 王道 | 计算机网络 | 第三章 数据链路层

26考研 | 王道 | 第三章 数据链路层 数据链路层所处的地位 数据链路层 使用 物理层 提供的“比特传输”服务数据链路层 为 网络层 提供服务&#xff0c;将网络层的 IP数据报&#xff08;分组&#xff09;封装成帧&#xff0c;传输给下一个相邻结点物理链路&#xff1a;传输介质…...

学习黑客资产威胁分析贴

第一天作业&#xff1a; 完成作业奖励&#xff1a; &#x1f381; 奖励 1 ── Week 2《Web 渗透手册》预览 Day主题关键目标练手靶场 / 工具1HTTP 基础 & Burp 入门抓包、改包、重放PortSwigger Academy&#xff1a;“HTTP basics”2SQL 注入原理手工注入 sqlmapDVWA →…...

CSS元素动画篇:基于当前位置的变换动画(合集篇)

CSS元素动画篇&#xff1a;基于当前位置的变换动画&#xff08;合集篇&#xff09; 前言位移效果类元素动画水平抖动效果效果预览代码实现 垂直抖动效果效果预览代码实现 摇头动画效果效果预览代码实现 点头动画效果效果预览代码实现 旋转效果类元素动画摇摆动画效果效果预览代…...

Spring 容器相关的核心注解​

以下是 Spring 容器中用于 ​​Bean 管理、依赖注入、配置控制​​ 的关键注解&#xff0c;按功能分类说明&#xff1a; ​​1. Bean 声明与注册​​ 注解作用示例​​Component​​通用注解&#xff0c;标记一个类为 Spring Bean&#xff08;自动扫描注册&#xff09; Compo…...

经典算法 最小生成树(prim算法)

最小生成树 题目描述 给定一个 n 个点 m 条边的无向图&#xff0c;图中可能存在重边和自环&#xff0c;边权可能为负数。 求最小生成树的树边权重之和。如果最小生成树不存在&#xff0c;则输出 impossible。 给定一张边带权的无向图 G (V, E)&#xff0c;其中&#xff1a…...

机器学习中的分类和回归问题

1. 分类问题 机器学习中的分类问题是一种监督学习任务&#xff0c;其核心目标是将数据样本分配到预定义的离散类别中&#xff0c;例如判断邮件是否为垃圾邮件、识别图像中的物体类型等。 分类通过已知标签的训练数据&#xff08;如带类别标注的样本&#xff09;学习特征与类别…...

pip命令

安装&卸载 -- 安装numpy pip install numpy1.26.4 -- 从索引安装&#xff08;自定义源&#xff09; pip install package_name --index-url https://custom_url -- 安装本地文件或目录 pip install /path/to/package.whl pip install D:\Downloads\transformers-4.40.0-py…...

n8n工作流自动化平台的实操:Cannot find module ‘iconv-lite‘

解决问题&#xff1a; 1.在可视化界面&#xff0c;执行const iconv require(iconv-lite);&#xff0c;报Cannot find module iconv-lite [line 2]错误&#xff1b; 查看module的路径 进入docker容器 #docker exec -it n8n /bin/sh 构建一个test.js,并写入如何代码 vi tes…...

AIGC时代——语义化AI驱动器:提示词的未来图景与技术深潜

文章目录 一、技术范式重构&#xff1a;从指令集到语义认知网络1.1 多模态语义解析器的进化路径1.2 提示词工程的认知分层 二、交互革命&#xff1a;从提示词到意图理解2.1 自然语言交互的认知进化2.2 专业领域的认知增强 三、未来技术图谱&#xff1a;2025-2030演进路线3.1 20…...

基于Springboot高校网上缴费综合务系统【附源码】

基于Springboot高校网上缴费综合务系统 效果如下&#xff1a; 系统登陆页面 个人中心页面 论坛交流页面 发表评论页面 付款页面 教师缴费页面 新增缴费类型页面 审核页面 研究背景 随着高校信息化建设进程的加速&#xff0c;传统手工缴费模式因效率低、错误率高、管理成本高…...

返回倒数第k个节点题解

这题要用到快慢指针的思想。 1.定义两个指针&#xff0c;一个快指针&#xff0c;一个慢指针&#xff0c;初始都指向头结点 2.先让快指针往后走k步&#xff0c;也就是移动k个节点&#xff0c;这个时候快指针比慢指针领先k 3.现在让快慢指针同时往后移动&#xff0c;两指针之间…...

《操作系统精髓与设计原理》第4章课后题答案-线程、对称多处理器和微内核

1.表3.5列出了在一个没有线程的操作系统中进程控制块的基本元素。对于多线程系统&#xff0c;这些元素中哪些可能属于线程控制块&#xff0c;哪些可能属于进程控制块&#xff1f; 对于不同的系统来说通常是不同的&#xff0c;但一般来说&#xff0c;进程是资源的所有者&#xf…...

《ATPL地面培训教材13:飞行原理》——第4章:亚音速气流

翻译&#xff1a;刘远贺&#xff1b;工具&#xff1a;Cursor & Claude 3.7&#xff1b;过程稿 第4章&#xff1a;亚音速气流 目录 翼型术语气流基础二维气流总结习题答案 翼型术语 翼型 一种能够以较高效率产生升力的特殊形状。 弦线 连接翼型前缘和后缘曲率中心的直…...

5月3日星期六今日早报简报微语报早读

5月3日星期六&#xff0c;农历四月初六&#xff0c;早报#微语早读。 1、五一假期多地政府食堂对外开放&#xff1a;部分机关食堂饭菜“秒没”&#xff1b; 2、2025年五一档电影新片票房破3亿&#xff1b; 3、首日5金&#xff01;中国队夺得跳水世界杯总决赛混合团体冠军&…...

2024 虚拟电厂与大电网三道防线的关系探讨【附全文阅读】

本文围绕虚拟电厂与大电网三道防线展开探讨。大电网三道防线包括第一道防线的预防性控制和继电保护、第二道防线的稳控系统、第三道防线的失步解列及频率电压紧急控制装置 &#xff0c;新型电力系统建设对第三道防线带来频率稳定等挑战。当前新型配电网第三道防线建设存在问题&…...

【c++】模板详解

目录 泛型编程模板的使用函数模板函数模板的本质函数模板的实例化显式实例化隐式实例化 函数模板的模板参数的匹配原则 类模板类模板的本质类模板的实例化 非类型模板参数模板特化函数模板特化类模板特化类模板全特化类模板偏特化&#xff08;半特化&#xff09; 模板分离编译t…...

【Linux】驱动开发方法

使用Petalinux学习驱动开发时的一些经验。 部分图片和经验来源于网络,若有侵权麻烦联系我删除,主要是做笔记的时候忘记写来源了,做完笔记很久才写博客。 专栏目录:记录自己的嵌入式学习之路-CSDN博客 目录 1 基础——字符设备驱动 1.1 分配设备号(驱动入口使用)…...

BUUCTF——禁止套娃

BUUCTF——禁止套娃 进入靶场 一个近乎空白的页面 看一下框架 没什么有用的信息&#xff0c;扫个目录吧 只扫出来给flag.php&#xff0c;但是0B&#xff0c;估计又是个空网站 拼接访问一下 果然又是什么都没有 没有突破口 githack找找看看也没有源码吧 <?php include …...

Spring MVC @RequestBody 注解怎么用?接收什么格式的数据?

RequestBody 注解的作用 RequestBody 将方法上的参数绑定到 HTTP 请求的 Body&#xff08;请求体&#xff09;的内容上。 当客户端发送一个包含数据的请求体&#xff08;通常在 POST, PUT, PATCH 请求中&#xff09;时&#xff0c;RequestBody 告诉 Spring MVC 读取这个请求体…...

线性DP(动态规划)

线性DP的概念&#xff08;视频&#xff09; 学习线性DP之前&#xff0c;请确保已经对递推有所了解。 一、概念 1、动态规划 不要去看网上的各种概念&#xff0c;什么无后效性&#xff0c;什么空间换时间&#xff0c;会越看越晕。从做题的角度去理解就好了&#xff0c;动态规划…...

Qt中实现工厂模式

在Qt中实现工厂模式可以通过多种方式&#xff0c;具体选择取决于需求和场景。以下是几种常见的实现方法&#xff1a; 1. 简单工厂模式通过一个工厂类根据参数创建不同对象。cppclass Shape {public: virtual void draw() 0; virtual ~Shape() default;};class Circle : publ…...

基于 Dify + vLLM插件 + Qwen3 构建问答机器人Docker版

前提条件 硬件要求&#xff1a; 推荐 NVIDIA GPU (至少 16GB 显存&#xff0c;Qwen3 可能需要更多) 至少 32GB 内存 足够的存储空间 (Qwen3 模型文件较大) 软件要求&#xff1a; Docker 和 Docker Compose Python 3.8 CUDA 和 cuDNN (与你的 GPU 兼容的版本) 安装步骤…...

【Linux】Linux应用开发小经验

基于Petalinux工具链的Linux应用开发小经验&#xff0c;未完待续... 部分图片和经验来源于网络&#xff0c;若有侵权麻烦联系我删除&#xff0c;主要是做笔记的时候忘记写来源了&#xff0c;做完笔记很久才写博客。 专栏目录&#xff1a;记录自己的嵌入式学习之路-CSDN博客 目录…...

第39课 绘制原理图——绘制命令在哪里?

绘制原理图符号的命令在哪里&#xff1f; 在新建完原理图之后&#xff0c;我们就可以在原理图上绘制各种相关的符号了。 我们基本会从以下的两个地方&#xff0c;找到绘制各种符号的命令&#xff1a; 菜单栏中的“放置”菜单&#xff1b; 悬浮于设计窗口中的快速工具条 在初…...

第十四篇:系统分析师第三遍——15章

目录 一、目标二、计划三、完成情况四、意外之喜(最少2点)1.计划内的明确认知和思想的提升标志2.计划外的具体事情提升内容和标志 五、总结六、后面准备怎么做&#xff1f; 一、目标 通过参加考试&#xff0c;训练学习能力&#xff0c;而非单纯以拿证为目的。 1.在复习过程中&…...

市面上所有大模型apikey获取指南(持续更新中)

阿里云(千问) 官方文档&#xff1a; 百炼控制台 1. 登录百炼控制台 2.前往我的api页面百炼控制台 3.创建api4. 添加描述&#xff08;用于aichat&#xff09; Deepseek 官方文档&#xff1a;首次调用 API | DeepSeek API Docs 1. 登录api平台 DeepSeek 开放平台 2. Deep…...

Java框架“若依RuoYi”前后端分离部署

运行环境 Eclipse IDE for Enterprise Java and Web Developers 下载Eclipse解压Eclipse到文件夹 Maven 下载Maven解压Maven到文件夹配置环境变量MAVEN_HOME为Maven安装位置配置环境变量path为%MAVEN_HOME%\bin Redis 下载Redis解压Redis到文件夹配置环境变量path为Redis安装位…...

计网_可靠传输ARQ机制

2024.09.04&#xff1a;网工老姜&beokayy网工学习笔记 第5节 可靠传输机制 5.1 可靠传输5.2 ARQ机制、ARQ协议5.3 ARQ简介&#xff08;可靠传输&#xff09;5.3.1 停止等待协议&#xff08;1&#xff09;无差错情况&#xff08;2&#xff09;有差错情况确认丢失确认迟到 5.…...

实验-组合电路设计1-全加器和加法器(数字逻辑)

目录 一、实验内容 二、实验步骤 2.1 全加器的设计 2.2 加法器的设计 三、调试过程 3.1 全加器调试过程 2.加法器的调试过程 四、实验使用环境 五、实验小结和思考 一、实验内容 a) 介绍 在这次实验中&#xff0c;你将熟悉 Logisim 的操作流程&#xff0c;并且学习…...

软件管理(安装方式)

1.rpm安装 1.1.rpm介绍 rpm软件包名称: 软件名称 版本号(主版本、次版本、修订号) 操作系统 -----90%的规律 举例:openssh-6.6.1p1-31.el7.x86_64.rpm 数字是版本号:第一位主版本号,第二位次版本号,带横杠的是修订号, el几---操作系统的版本。 #用rpm安装需要考虑如下信…...

工作记录 2015-07-15

工作记录 2015-07-15 序号 工作 相关人员 1 在CDAEditor上增加签名的处理&#xff0c;已经基本改完。明天整理说明文档&#xff0c;更新193服务器。 郝 需要改了签名的处理 增加了签名的按钮&#xff1a; 已经签名过的会有提示&#xff1a; 签名后PDF的预览如下&#xf…...

《算法导论(第4版)》阅读笔记:p4-p5

《算法导论(第4版)》学习第 3 天&#xff0c;p4-p5 总结&#xff0c;总计 2 页。 一、技术总结 1.instance Thus, given the input sequence h31; 41; 59; 26; 41; 58i, a correct sorting algorithm returns as output the sequence h26; 31; 41; 41; 58; 59i. Such an inp…...

【Mytais系列】Update语句执行流程

以下是通过 时序图 和 文字说明 详细描述的 MyBatis 执行 UPDATE/INSERT/DELETE 语句的完整流程&#xff0c;包括缓存清理、事务提交和数据库操作的各个环节&#xff1a; 时序图&#xff08;Sequence Diagram&#xff09; 详细执行流程解析 1. 客户端发起更新请求 客户端调用…...

LeetCode —— 145. 二叉树的后序遍历

&#x1f636;‍&#x1f32b;️&#x1f636;‍&#x1f32b;️&#x1f636;‍&#x1f32b;️&#x1f636;‍&#x1f32b;️Take your time ! &#x1f636;‍&#x1f32b;️&#x1f636;‍&#x1f32b;️&#x1f636;‍&#x1f32b;️&#x1f636;‍&#x1f32b;️…...

Python函数参数机制深度解析与最佳实践

引言 在Python开发中&#xff0c;函数的参数机制是构建灵活、可维护代码的核心要素。本文将通过7个关键维度深入剖析函数参数的底层原理与高级用法&#xff0c;结合代码实例揭示参数传递的本质规律&#xff0c;助您掌握工业级函数设计技巧&#xff08;基于Python 3.12环境验证…...

ARM 算数指令

加法 ADD 减法 SUB 取负 NEG 比较 CMP 乘法 MUL 移位 LSL、LSR、ASL、ASR、ROL、ROR加法和减法 绝大多数微处理器都实现了带进位的加法指令&#xff0c;能够将两个操作数和条件码寄存器中的进位位加到一起。这条指令会使字长大于计算机固有字长的链接运算更加方便。 说明了如何…...

普通IT的股票交易成长史--20250502 突破(2)

声明&#xff1a;本文章的内容只是自己学习的总结&#xff0c;不构成投资建议。文中观点基本来自yt站方方土priceaction&#xff0c;综合自己的观点得出。感谢他们的无私分享。 送给自己的话&#xff1a; 仓位就是生命&#xff0c;绝对不能满仓&#xff01;&#xff01;&#…...

什么是 Redis?

什么是 Redis? Redis(全称是 Remote Dictionary Server,远程字典服务器)是一个非常快的开源内存数据库,它主要用来存储“键-值”对类型的数据。与传统的数据库不太一样,Redis的数据主要存放在内存中,所以它读写速度特别快。 通俗比喻: 想象你有一个小仓库,里面放了…...

IEEE LaTeX会议模板作者对齐、部门长名称换行

第二行作者对齐 参考链接&#xff1a; https://tex.stackexchange.com/questions/458204/ieeetran-document-class-how-to-align-five-authors-properly/458208#458208https://tex.stackexchange.com/questions/582487/how-to-align-four-author-names-in-the-ieee-conferenc…...

前端面经-VUE3篇(二)--vue3组件知识(二)依赖注入、异步组件、生命周期、组合式函数、插件

目录 一、依赖注入 1、 依赖注入是什么&#xff1f; 2、最基础的使用 3、为什么使用依赖注入&#xff1f; 4、 使用 Symbol 作注入名 二、异步组件 1、什么是异步组件&#xff1f; 2、最基础用法&#xff1a;defineAsyncComponent 3、在模板中使用异步组件 4、配置加载状态…...

Manus联合创始人:公司产品基于Claude和阿里千问大模型开发

3月11日消息&#xff0c;日前&#xff0c;Manus官方在社交平台转发了公司联合创始人、首席科学家季逸超对Manus的技术解读&#xff0c;季逸超在评论区回复网友关于“Manus使用了哪一个基础大模型”这一问题时回复称&#xff0c;“我们用过Claude&#xff0c;也用过不同版本的Qw…...

华为云Flexus+DeepSeek征文|快速搭建Dify LLM应用开发平台教程

目录 部署Dify-LLM应用开发平台开始使用一键卸载注意事项 部署Dify-LLM应用开发平台 1、首先需要访问快速搭建Dify-LLM应用开发平台-华为云 2、使用"一键部署"功能快速搭建Dify平台快速搭建Dify LLM应用开发平台-云社区-华为云&#xff0c;本文在这里选择一键部署&…...

简介QML中的Canvas

2025年5月3日&#xff0c;周六晚上 QML中的Canvas是一个强大的绘图组件&#xff0c;允许开发者通过JavaScript在界面上进行动态的2D图形绘制。它类似于HTML5的<canvas>元素&#xff0c;适用于实现自定义图形、动画、游戏开发以及图表绘制等场景。 核心特性 绘图能力 • …...

装饰器@wraps(func)详解

1. wraps(func) 的核心作用 wraps 是 Python 标准库 functools 提供的装饰器&#xff0c;用于保留被装饰函数的原始元信息。 它通过将原函数的 __name__、__doc__、__module__ 等属性复制到装饰器内部的包装函数中&#xff0c;避免装饰器对函数身份信息的“掩盖”。 2. 元信息…...

vue的diff算法是什么、比较方式,原理分析、示例解释讲解

Vue Diff算法概述 Vue 的 Diff 算法是一种高效的虚拟 DOM 更新机制&#xff0c;用于最小化真实 DOM 的操作开销。它通过比较新旧 Virtual DOM 树中的差异&#xff0c;仅更新那些实际发生改变的部分&#xff0c;从而提升性能。 定义 Diff 算法的核心目标是在 MVVM 开发模式下…...

Day04 新增套餐

###今天的任务主要是自主完成套餐管理的模块### 1.新增套餐 在前端页面接口中我们可以看到在新增套餐的时候需要选择添加到菜单中的菜品 因此我们需要设计一个接口可以通过根据分类id&#xff08;category_id&#xff09;来查询该分类下的菜品 1.1根据分类id查询分类下的菜…...

WEB前端小练习——记事本

一、登陆页面 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>记事本登录注册</title><link…...

在多线程环境下如何设计共享数据结构保证原子操作与数据一致性

在多线程环境下如何设计共享数据结构保证原子操作与数据一致性 1. 引言 在现代软件开发中,多线程编程是提升程序性能和响应速度的重要手段。然而,多线程环境下的 共享数据管理 极具挑战性,若处理不当,可能引发 竞争条件(Race Conditions)、数据不一致(Data Inconsiste…...

洛谷 P1850 [NOIP 2016 提高组] 换教室

题目传送门 前言 终于自己想出概率期望 d p dp dp 的状态了&#xff0c;但是依旧没能相对转移方程。&#xff08;招笑&#xff09; 暴力 这题部分分和特殊情况分给的挺多的&#xff0c;所以先拿部分分。 一、思路 先跑一边 F l o y d Floyd Floyd 最短路求出两点间最短距…...

1penl配置

好的&#xff0c;根据您提供的 1pctl 命令输出信息&#xff0c;我们来重新依次回答您的所有问题&#xff1a; 第一&#xff1a;1Panel 怎么设置 IP 地址&#xff1f; 根据您提供的 user-info 输出&#xff1a; 面板地址: http://$LOCAL_IP:34523/93d8d2d705 这里的 $LOCAL_I…...