计算机网络之数据链路层(全)
[复习提示]
王道:本章是历年考试中考查的重点。要求在了解数据链路层基本概念和功能的基础上,重点掌握滑动窗口机制、三种可靠传输协议、各种MAC协议、HDLC协议和PPP协议,特别是CSMA/CD协议和以太网帧格式,以及局域网的争用期和最小帧长的概念、二进制指数退避算法。此外,中继器、网卡、集线器、网桥和局域网交换机的原理及区别也要重点掌握。
一、数据链路层的功能
- 为网络层提供服务
- 链路管理
- 帧定界、帧同步与透明传输
- 流量控制(对发送方控制)
- 差错控制
注:
为网络层提供服务
- 无确认的无连接服务。
- 有确认的无连接服务。
- 有确认的面向连接服务。
无确认的无连接服务是指源机器向目标机器发送独立的帧,目标机器并不对这些帧进行确认。 事先并不建立逻辑连接,事后也不用释放逻辑连接。当错误率很低时,这一类服务非常合适,这时恢复任务可以留给上面的各层来完成。这类服务对于实时通信也是非常合适的,因为实时通信中数据的迟到比数据损坏更不好。若由于线路上有噪声而造成某一帧丢失,则数据链路层并不会检测这样的丢帧现象,也不会回复。
- 为防止在传输过程中帧丢失,在可靠的数据链路层协议中,发送方对发送的每个数据帧设计一个定时器,当计时器到期而该帧的确认帧仍未到达时,发送方将重发该帧。
- 为保证接收方不会接收到重复帧,需要对每个发送的帧进行编号;
- 海明码和循环冗余校验码都用于差错控制。
- 为终端结点隐蔽物理传输的细节是物理层的功能,数据链路层不必考虑如何实现无差别的比特传输;
二、组帧
组帧的目的:是为了在出错时只重发出错的帧,而不必重发全部数据,从而提高效率。
- 字符计数法(如:第一个帧:51239,第二个帧:7123456。。。)
- 字符填充的首尾定界符法
- 零比特填充的首尾标志法(遇到5个“1”后,就插入一个“0”)
- 违规编码法
字符计数法

违规编码法: 在物理层进行比特编码时,通常采用违规编码法。例如,曼彻斯特编码方法将数据比特“1”编码成“高一低”电平对,将数据比特“0”编码成“低一高”电平对,而“高一高”电平对和“低一低”电平对在数据比特中是违规的(即没有采用)。
三、差错控制
实际通信链路都不是理想的,比特在传输过程中可能会产生差错,1可能会变成0,0也可能会变成1,这就是比特差错。比特差错是传输差错中的一种,本节仅讨论比特差错。
检错编码
- 奇偶校验码(附加一个校验元后,数量为奇数个或偶数个)
- 循环冗余码(CRC)
CRC
计算实际发送的数据:
1)为原始数据M0加0(加r位);
2)加0后的原始数据模2除以G(x)位串;
3)用结果的余数替代1)中加的0;
校验是否出错:
1)用收到的二进制序列模2除以G(x)位串;
2)余数为0则没有出错;
正向例题:设G(x)=1101(即r=3),待传送数据M=101001(即m=6)
101001000

发送出的数据为: 101001001,共有m+r位。
反向例题:在数据传输过程中,若接收方收到的二进制比特序列为10110011010,接收双方采用的生成多项式为G(x)=x^4+x^3+1,则该二进制比特序列在传输中是否出错?如果未出现差错,那么发送数据的比特序列和CRC检验码的比特序列分别是什么?
G(x)=1*x^4+1*x^3+0*x^2+0*x^1+1*x^0
纠错编码
- 海明码
效信息的位数:n,
校验位的位数:k,
n+k≤2^k-1(若要检测两位错,则需再增加1位校验位,即k+1位)
海明距离:两个合法编码(码字)的对应比特取值不同的比特数称为这两个码字的码距 (如001和000的码距是1)
检测D位错,需要码距D+1
纠错D位,需要码距2D+1
一般来说,数据的传输差错是由噪声引起的。通信信道的噪声可以分为两类:热噪声和冲击噪声。热噪声一般是信道固有的,引起的差错是随机差错,可以通过提高信噪比来降低它对数据传的影响。冲击噪声一般是由外界电磁干扰引起的,引起的差错是突发差错,它是引起传输差错的主要原因,无法通过提高信噪比来避免。
四、流量控制与可靠传输机制
- 停止-等待流量控制
- 滑动窗口流量控制
- 可靠传输机制
停止-等待流量控制:发送方每发送一帧,都要等待接收方的应答信号,之后才能发送下一帧;
在连续ARQ协议中,发送窗口的大小≤窗口总数-1。
滑动窗口流量控制:
- 停止-等待协议:发送窗口大小=1,接收窗口大小=1。
- 后退N帧协议(GBN):发送窗口大小>1,接收窗口大小=1。
- 选择重传协议(SR):发送窗口大小>1,接收窗口大小>1。
- 接收窗口的大小为1时,可保证帧的有序接收。
- 发送窗口+接收窗口≤帧序号
可靠传输机制 :
- 确认
- 重传
信道最大利用率例题:一个信道的数据传输速率为4kb/ s ,单向传播时延为30ms,如果使停止﹣等待协议的信道最大利用率达到80%,那么要求的数据帧长度至少为()。
(L/C) / (L/C+ 2R)= L/(L+ 2RC)= L/(L + 2x30msx4kb/s)= 80%,得出L = 960bit。
GBD
- GBN一般采用累积确认,如果收到了对5号帧的确认意味着接收方已收到1~5号帧,因此发送方仅需要重传后面的帧
- 在后退N帧的协议中,序列号个数不小于MAX_ SEQ+ 1,题中发送窗口的大小是32,那么序列号个数至少33个
- 后退N帧的ARQ协议中,发送窗口WT≤(2^n)-1。
SR
- 在选择重传协议中,若采用n比特对帧进行编号,为避免接收端向前移动窗口后,新的窗口
与旧的窗口产生重叠,接收窗口的最大尺寸应该不超过序号范围的一半,即WR≤2^(n-1) - 数据链路层采用选择重传协议(SR)传输数据,发送方已发送0~3号数据帧,现已收到1号帧的确认,而0、2号帧依次超时,则此时需要重传的帧数是(2)。重传0和2
五、介质访问控制
采用一定的措施,使得两对节点之间的通信不会互相干扰。
信道划分介质访问控制 (静态分配信道)
- 频分多路复用/ FDM(类似并行)
- 时分多路复用/ TDM(类似并发)
- 波分多路复用/ WDM(光的频分多路复用)
- 码分多路复用/ CDM(主要用于无线通信系统,特别是移动通信系统。)
TDM与FDM相比,抗干扰能力强,可以逐级再生整形,避免干扰的积累,而且数字信号比较容易实现自动转换,所以根据FDM和TDM的工作原理,FDM适合于传输模拟信号,TDM适合于传输数字信号。
随机访问介质访问控制(动态分配信道)
所有用户可随机发送信息。发送信息时占全部带宽。
- ALOHA协议
- CSMA协议
- CSMA/CD协议
- CSMA/CA协议
- 轮询访问:令牌传递协议(谁有令牌谁老大)
ALOHA协议
- 纯 ALOHA协议
- 时隙ALOHA协议。
CSMA协议
- 1-坚持CSMA(监听到信道忙后,继续坚持监听信道;监听到信道空闲后,发送帧的概率为1,即立刻发送数据。)
- 非坚持CSMA(一个结点要发送数据时,首先监听信道;如果信道空闲,那么立即发送数据;如果信道忙,那么放弃监听,等待一个随机的时间后再重复上述过程。)
- p-坚持CSMA( p,1-p,p,1-p )

CSMA/CD协议
- 适用于总线型网络和半双工网络
- “先听后发,边听边发,冲突停发,随机重发”。
- 碰撞检测(Collision Detection)就是边发送边监听,如果监听到了碰撞,则立即停止数据发送,等待一段随机时间后,重新开始尝试发送数据。
- CSMA/CD协议中定义的冲突检测时间(即争议期)是指,信号在最远两个端点之间往返传输的时间。
- 最短帧长等于争用期时间内发出的比特数。因此当传输速率提高时,可减少电缆介质的长度(使争用期时间减少,即以太网端到端的时延减小),或增加最短帧长。
- 最小帧长=总线传播时延x数据传输速率x2
- CSMA/CD协议已成功应用于使用有线连接的局域网
CSMA/CD协议
- 广泛应用于无线局域网
以太网的二进制回退算法:一般来说, 在第i (i<10)次碰撞后,站点会在0到2^i-1中之间随机选择一个数M,然后等待M倍的争用期再发送数据。在达到10次冲突后,随机数的区间固定在最大值1023上,以后不再增加。如果连续超过16次冲突,那么丢弃。
CSMA/CD与CSMA/CA主要区别:
- CSMA/CD可以检测冲突,但无法避免;CSMA/CA发送数据的同时不能检测信道上有无冲突,本结点处没有冲突并不意味着在接收结点处就没有冲突,只能尽量避免。
- 传输介质不同。CSMA/CD用于总线形以太网,CSMA/CA用于无线局域网802.11a/b/g/n等。
- 检测方式不同。CSMA/CD通过电缆中的电压变化来检测;而CSMA/CA采用能量检测、载波检测和能量载波混合检测三种检测信道空闲的方式。
- 总结:CSMA/CA协议的基本思想是在发送数据时先广播告知其他结点,让其他结点在某段时间内不要发送数据,以免出现碰撞。CSMA/CD协议的基本思想是发送前监听,边发送边监听,一旦出现碰撞马上停止发送。
六、局域网
基础概念
局域网的主要特点如下:
- 为一个单位所拥有,且地理范围和站点数目均有限。
- 所有站点共享较高的总带宽( 即较高的数据传输速率)。
- 较低的时延和较低的误码率。
- 各站为平等关系而非主从关系。
- 能进行广播和组播。
局域网常见拓扑结构:
- ①星形结构;
- ②环形结构;
- ③总线形结构;
- ④星形和总线形结合的复合型结构。
三种特殊的局域网拓扑实现如下:
- 以太网(目前使用范围最广的局域网)。逻辑拓扑是总线形结构,物理拓扑是星形或拓展星形结构。
- 令牌环(Token Ring, IEEE 802.5)。 逻辑拓扑是环形结构,物理拓扑是星形结构。
- FDDI (光纤分布数字接口,IEEE 802.8)。 逻辑拓扑是环形结构,物理拓扑是双环结构。
以太网与IEEE 802.3
IEEE802.3标准是一种基带总线形的局域网标准,它描述物理层和数据链路层的MAC子层的实现方法。
以太网采用两项措施以简化通信:①采用无连接的工作方式,不对发送的数据帧编号,也不要求接收方发送确认,即以太网尽最大努力交付数据,提供的是不可靠服务,对于差错的纠正则由高层完成;②发送的数据都使用曼彻斯特编码的信号,每个码元的中间出现一次电压转换,接收端利用这种电压转换方便地把位同步信号提取出来。
1.以太网的传输介质与网卡
以太网常用的传输介质有4种:粗缆、细缆、双绞线和光纤。

2.以太网的MAC帧
- 以太网的MAC协议提供无连接的不可靠服务
- 全世界的每块网卡在出厂时都有一个唯一的代码,称为介质访问控制(MAC)地址,这个地址用于控制主机在网络上的数据通信。
- 12个十六进制数表示,如02-60-8c-e4-b1-21,高24位为厂商代码,低24位为厂商自行分配
- 地址:通常使用6字节(48bit)地址(MAC地址)。
- 类型:2字节,指出数据域中携带的数据应交给哪个协议实体处理。
- 数据:46~1500字节,包含高层的协议消息。由于CSMA/CD算法的限制,以太网帧必须满
- 填充:0~46字节,当帧长太短时填充帧,使之达到64字节的最小长度。
- 校验码(FCS):4字节,校验范围从目的地址段到数据段的末尾,算法采用32位循环冗余码(CRC),不但需要检验MAC帧的数据部分,还要检验目的地址、源地址和类型字段,但不校验前导码。

3.高速以太网
快速以太网仍然使用CSMA/CD协议,它采用(保持最短帧长不变)而将最大电缆长度减少到100m的方法,使以太网的数据传输速率提高至100Mb/s。
速率达到或超过100Mb/s的以太网称为高速以太网。
- (1)100BASE-T以太网(以太网是在双绞线上传送100Mb/s基带信号的星形拓扑结构以太网)
- (2)吉比特以太网
- (2)10吉比特以太网 (光纤)
| 是否工作在全双工 | 是否工作在半双工 | 速度 | 是否使用CSMA/CD | |
| 100BASE-T以太网 | √ | √ | 100Mb/s | 在半双工方式下使用(全双工方式不需要) |
| 吉比特以太网 | √ | √ | 1Gb/s | 在半双工方式下使用(全双工方式不需要) |
| 10吉比特以太网 | √ | × | 10Gb/s | 不用 |
吉比特以太网的物理层有两个标准:IEEE 802.3z和IEEE 802.3ab,前者采用光纤通道,后者采用4对UTP5类线。
IEEE802.11无线局域网
1.无线局域网的组成
有固定基础设施无线局域网
- CSMA/CA协议
- Wi-Fi
- 无线局域网的基本服务区的范围直径一般不超过100m
- 802.11使用星形拓扑,其中心称为接入点(Access Point,AP)
无固定基础设施移动自组织网络
- 自组网络
- 没有AP
- 各结点之间地位平等,中间结点都为转发结点,因此都具有路由器的功能。
- 由移动站构成的网络拓扑可能随时间变化得很快,因此在固定网络中行之有效的一些路由选择协议对移动自组网络已不适用,需引起特别的关注
2.802.11局域网的MAC帧
- 1)MAC首部,共30字节。帧的复杂性都在MAC首部。
- 2)帧主体,即帧的数据部分,不超过2312字节。它比以太网的最大长度长很多。
- 3)帧检验序列FCS是尾部,共4字节。

VLAN-虚拟局域网
一般有三种划分VLAN的方法
- ①基于端口,将交换机的若干端口划为一个逻辑组,这种方法最简单、最有效,如果主机离开了原来的端口,那么就可能进入一个新的子网。
- ②基于MAC地址,按MAC地址将一些主机划分为一个逻辑子网,当主机的物理位置从一个交换机移动到另一个交换机时,它仍然属于原来的子网。
- ③基于IP地址,根据网络层地址或协议划分VLAN,这样VLAN就可以跨越路由器进行扩展,将多个局域网的主机连接在一起。
VLAN建立在交换技术基础上,以软件方式实现逻辑分组与管理,VLAN中的计算机不受物理位置的限制。当计算机从一个VLAN转移到另一个VLAN时,只需简单地通过软件设定,而无需改交在网络中的物理位置。同一个VLAN的计算机不一定连接在相同的物理网段,它们可以连接在相同的交换机上,也可以连接在不同的局域网交换机上,只要这些交换机互连即可。
广域网
- 广域网不等于互联网。互联网可以连接不同类型的网络(既可以连接局域网,又可以连接广域网),通常使用路由器来连接。广域网是单一的网络,通常使用结点交换机连接各台主机(或路由器),而不使用路由器连接网络。其中结点交换机在单个网络中转发分组,而路由器在多个网络构成的互联网中转发分组。
- 广域网的通信子网主要使用分组交换技术,将分布在不同地区的局域网或计算机系统互连起
来,达到资源共享的目的。 - 广域网所使用的传输方式是(存储转发式)。
- TCP/IP协议族主要包括TCP、IP、 ICMP、IGMP、ARP、RARP、UDP、DNS、FTP、HTTP等。

PPP协议
PPP协议有三个组成部分:
1)链路控制协议(LCP)。 一种扩展链路控制协议,用于建立、配置、测试和管理数据链路。
2)网络控制协议(NCP)。PPP协议允许同时采用多种网络层协议,每个不同的网络层协议
要用一个相应的NCP来配置,为网络层协议建立和配置逻辑连接。
3) 一个将IP数据报封装到串行链路的方法。IP数据报在PPP帧中就是其信息部分,这个信
息部分的长度受最大传送单元(MTU)的限制。
PPP是一-种面向字节的协议,所有的帧长度都是整数个字节,使用一种特殊的字符填充法完
成数据的填充。
PPP协议的特点:
1) PPP提供差错检测但不提供纠错功能,只保证无差错接收(通过硬件进行CRC校验)。它是不可靠的传输协议,因此也不使用序号和确认机制。
2)它仅支持点对点的链路通信,不支持多点线路。
3) PPP只支持全双工链路。
4) PPP 的两端可以运行不同的网络层协议,但仍然可使用同一个PPP进行通信。
5) PPP是面向字节的,当信息字段出现和标志字段一致的比特组合时,PPP有两种不同的处理方法:若PPP用在异步线路(默认),则采用字符填充法;若PPP用在SONET/SDH等同步线路,则协议规定采用硬件来完成比特填充(和HDLC的做法一样)。
数据链路层设备
交换机(就是多端口网桥)
- 就传播时延而言:路由器> 交换机 >集线器
- 局域网交换机实现的主要功能在物理层和数据链路层
- 交换机能隔离冲突域,工作在全双工状态,使网络中多对结点同时通信(支持多用户同时通信),提高了网络的利用率,这是交换机的优点。
- 一个交换机,对于10Mb/s 的半双工端口,端口带宽为10Mb/s;若端口速率保持不变,则全双工端口带宽为20Mb/s。
- 在使用以太网交换机( 默认工作在全双工)来连接这些主机,虽然在每个端口到主机的带宽还是10Mb/s,但由于一个用户在通信时是独占而不是和其他网络用户共享传输媒体的带宽,因此拥有N个端口的交换机的总容量为Nx10Mb/s。
- 若是半双工交换机,因此拥有N对10Mb/s端口的半双工交换机的总容量为Nx 10Mb/s,其中N =24/2=12, 总容量为120Mb/s
相关文章:
计算机网络之数据链路层(全)
[复习提示] 王道:本章是历年考试中考查的重点。要求在了解数据链路层基本概念和功能的基础上,重点掌握滑动窗口机制、三种可靠传输协议、各种MAC协议、HDLC协议和PPP协议,特别是CSMA/CD协议和以太网帧格式,以及局域网的争用期和最…...
前端TypeScript学习-交叉类型与泛型
交叉类型和泛型是TypeScript中的两个重要概念。 交叉类型(&)可以用来组合多个接口,形成一个新接口。它类似于接口继承(extends),但有一些区别。交叉类型不会产生类型继承层次结构,而是将多…...
科聪协作(复合)移动机器人整体解决方案
协作(复合)移动机器人(AGV/AMR)相较传统工业机器人具有更加安全和简单的工作优势,具备较强的发展潜力。协作(复合)移动机器人安全性和操作的简洁性、灵活性不断提高,优势得到了充分发挥,在越来越…...
RTE(Runtime Environment)
RTE(Runtime Environment)是一个运行时环境,在这个环境里,你可以实现的功能是: 作为一个缓冲buffer给应用层和BSW层的接口(例如COM)用来存储数据,也就是说定义一个全局变量供上层和下…...
搭建自己的搜索引擎——oh-my-search使用
搭建自己的搜索引擎——oh-my-search使用 使用elasticsearch和search-ui搭建自己的搜索引擎,快速查找资源和文件。如果对代码感兴趣,相关代码已在github上开源,欢迎fork代码。 搭建elasticsearch 先搭建eleasticsearch再搭建kibana 搭建e…...
微信小程序实现文章内容详情
方案一、使用微信小程序官方提供的webview 前提已经在微信公众平台开发管理配置好了安全域名即: 方案二、把网页转成pdf直接展示 前提已经在微信公众平台开发管理配置好了安全域名即: 实现思路是发起网络请求拿到pdf下载地址,然后wx.download…...
行情分析——加密货币市场大盘走势(10.27)
目前大饼开始了震荡盘整,目前远离EMA21均线,预计会有大的回调动作。而MACD日线来看,昨日和今日开始呈现绿色空心柱,也在说明大饼在做震荡盘整。不排除大跌的可能性,大饼可以开始布局中长线空单,可以再35000…...
设计模式:桥接模式(C#、JAVA、JavaScript、C++、Python、Go、PHP)
上一篇《适配器模式》 下一篇《装饰器模式》 简介: 桥接模式,它是一种结构型设计模式,它的主要目的是将抽象部分与具体实现部分分离,使它们都可以独立地变化。…...
error: the following arguments are required: --model, --data 解决方法
错误原因:Windows下需要缺乏配置参数,需要进行相关参数配置。 解决办法:在Pycharm的编辑设置,加上–model--model ****,其中****为指定的模型名称,按照自己实际报错进行添加,比如我这里要跑的模型为bert&am…...
Kafka - 消息队列的两种模式
文章目录 消息队列的两种模式点对点模式(Point-to-Point,P2P)发布/订阅模式(Publish/Subscribe,Pub/Sub) 小结 消息队列的两种模式 消息队列确实可以根据消息传递的模式分为 点对点模式发布/订阅模式 这两…...
【Go】格式化字符串指令大全 Redis常用命令
【Go】格式化字符串指令大全 && Redis常用命令 原创:As.Kai 博客地址:https://blog.csdn.net/qq_42362997 如果以下内容对您有帮助,点赞点赞点赞~ 目录 格式化格式化字符串指令大全%s 用于插入字符串%d 用于插入整数%f 用于插入浮点数…...
Windows 和 Linux 这2个系统在进行编程实现的时候的一些区别:
很惭愧,学了很多年才意识到,噢,原来这两个系统实现一些功能的时候会使用到不同的库,使用不同的函数。 那么,也会延伸出一些问题: 比如,如何实现版本的迁移。一个在Linux上运行的代码如何可以比…...
[SQL开发笔记]SQL 别名:为表名称或列名称指定别名
一、功能描述: 通过使用 SQL,可以为表名称或列名称指定别名。基本上,创建别名是为了让列名称的可读性更强。 二、SQL 别名语法详解: (1)列的 SQL 别名语法: Select column_name AS alias_nam…...
风险管理案例题
本文摘抄自江山老师高项文档 规划风险 管理 1 、 没进行规划风险管理 2 、 风险管理计划编制存在问题 , 独自一人完成而没有邀请项目组其他成员参与 3 、 仅仅参照以前的项目模板编制风险管理计划 4 、 风险管理计划没有经过项目组讨论直接签字下发实施 …...
NFC读卡器ST25R3911B-AQWT、ST25R3917B-AQET、ST25R3919B-AQET产品描述、功能框图
一、ST25R3911B 1.4 W功耗可支持VHBR和AAT的高性能HF读卡器 / NFC发起设备 ST25R3911B 是高度集成的NFC发起设备 / HF读卡器IC,包括模拟前端(analog front end,AFE)和一个高度集成的数据帧系统,可用于ISO 18092&#…...
JVM进阶(2)
一)方法区: java虚拟机中有一个方法区,该区域被所有的java线程都是共享,虚拟机一启动,运行时数据区就被开辟好了,官网上说了方法区可以不压缩还可以不进行GC,JAVA虚拟机就相当于是接口,具体的HotSpot就是虚…...
2023大湾区杯粤港澳金融数学建模竞赛思路+模型+代码
目录 一.思路模型见文末名片,比赛开始第一时间更新 二.大湾区杯常用算法之主成分分析法(PCA) 三.MATLAB代码 四.国赛建模思路获取见此 一.思路模型见文末名片,比赛开始第一时间更新 二.大湾区杯常用算法之主成分分析法(PCA) 主成分分析法(PCA)是一种…...
【Note详细图解】中缀表达式如何转为后缀表达式?数据结构
中缀表达式 中缀表达式(中缀记法)是一个通用的算术或逻辑公式表示方法,操作符是以中缀形式处于操作数的中间(例:3 4),中缀表达式是人们常用的算术表示方法。 前缀或后缀记法不同的是…...
常用到的资源共享网站
1 资源共享 比你优秀的人都比你努力,你有什么理由不去努力。基础来自己的累秒累天累月的积累 没有一个人是从天而降的天才,也没有哪个人想做一个一生贫庸的人。今天我想说受人以鱼 不如受人以渔。 2 Java 开发软件的官网总结如下: Oracle Java 官网(https://www.oracle.com…...
关于JAVA中字节码文件版本号、产品版本号及开发版本号的关系
目录 关于字节码版本对应关系清单关于字节码格式说明的资料关于这些版本号 关于字节码版本 以二进制打开字节码文件: 如上图中第5-8标识(圈起来的)的即字节码版本号 十六进制: 34 十进制: 52 jdk 8 对应关系清单 …...
React hook之useRef
React useRef 详解 useRef 是 React 提供的一个 Hook,用于在函数组件中创建可变的引用对象。它在 React 开发中有多种重要用途,下面我将全面详细地介绍它的特性和用法。 基本概念 1. 创建 ref const refContainer useRef(initialValue);initialValu…...
mongodb源码分析session执行handleRequest命令find过程
mongo/transport/service_state_machine.cpp已经分析startSession创建ASIOSession过程,并且验证connection是否超过限制ASIOSession和connection是循环接受客户端命令,把数据流转换成Message,状态转变流程是:State::Created 》 St…...
解锁数据库简洁之道:FastAPI与SQLModel实战指南
在构建现代Web应用程序时,与数据库的交互无疑是核心环节。虽然传统的数据库操作方式(如直接编写SQL语句与psycopg2交互)赋予了我们精细的控制权,但在面对日益复杂的业务逻辑和快速迭代的需求时,这种方式的开发效率和可…...
【第二十一章 SDIO接口(SDIO)】
第二十一章 SDIO接口 目录 第二十一章 SDIO接口(SDIO) 1 SDIO 主要功能 2 SDIO 总线拓扑 3 SDIO 功能描述 3.1 SDIO 适配器 3.2 SDIOAHB 接口 4 卡功能描述 4.1 卡识别模式 4.2 卡复位 4.3 操作电压范围确认 4.4 卡识别过程 4.5 写数据块 4.6 读数据块 4.7 数据流…...
Device Mapper 机制
Device Mapper 机制详解 Device Mapper(简称 DM)是 Linux 内核中的一套通用块设备映射框架,为 LVM、加密磁盘、RAID 等提供底层支持。本文将详细介绍 Device Mapper 的原理、实现、内核配置、常用工具、操作测试流程,并配以详细的…...
回溯算法学习
一、电话号码的字母组合 import java.util.ArrayList; import java.util.List;import javax.management.loading.PrivateClassLoader;public class letterCombinations {private static final String[] KEYPAD {"", //0"", //1"abc", //2"…...
代码随想录刷题day30
1、零钱兑换II 给你一个整数数组 coins 表示不同面额的硬币,另给一个整数 amount 表示总金额。 请你计算并返回可以凑成总金额的硬币组合数。如果任何硬币组合都无法凑出总金额,返回 0 。 假设每一种面额的硬币有无限个。 题目数据保证结果符合 32 位带…...
AI+无人机如何守护濒危物种?YOLOv8实现95%精准识别
【导读】 野生动物监测在理解和保护生态系统中发挥着至关重要的作用。然而,传统的野生动物观察方法往往耗时耗力、成本高昂且范围有限。无人机的出现为野生动物监测提供了有前景的替代方案,能够实现大范围覆盖并远程采集数据。尽管具备这些优势…...
LabVIEW双光子成像系统技术
双光子成像技术的核心特性 双光子成像通过双低能量光子协同激发机制,展现出显著的技术优势: 深层组织穿透能力:适用于活体组织深度成像 高分辨率观测性能:满足微观结构的精细研究需求 低光毒性特点:减少对样本的损伤…...
群晖NAS如何在虚拟机创建飞牛NAS
套件中心下载安装Virtual Machine Manager 创建虚拟机 配置虚拟机 飞牛官网下载 https://iso.liveupdate.fnnas.com/x86_64/trim/fnos-0.9.2-863.iso 群晖NAS如何在虚拟机创建飞牛NAS - 个人信息分享...
