期末复习——数据链路层
数据链路层
- DLC子层:1. 负责物理介质拥塞管理(差错控制、流量控制) 2. 为帧分配序列、跟踪确认 3. 为网络层提供统一接口
- MAC子层:1. 解决局域网中共用信道的使用产生竞争时,如何分配信道使用权。(征用型 随机、确定型 有序)
功能
为网络层提供的服务
有连接就一定要确认
- 无确认 无连接服务
- 有确认 无连接服务
- 有确认 面向连接服务
组帧
4种方法
3and4较为常用
-
1.字节计数法
Byte Count
很少使用
第一个byte表示紧跟着(包括它自己)有多少个byte
51234 51234 80123456 87890123 -
- 字符填充的首尾定界符法
标志字节 flag byte
界定一帧的开始和结束。特殊字符FLAG填充
转义字符ESC !not 'ESC'!
放在特殊字符之前
例 A FLAG B ... A ESC FLAG B
填充后 A ESC FLAG B ... A ESC ESC ESC FLAG B较复杂
-
- 比特填充的标志比特法
USB常用
改进,在byte = 8 bits基础上改进,从而帧可以不再是8b的倍数长。
性能better than 字符填充
01111110标志一帧的开始and结束(中间是连续6个1)
∴发送方 在这一帧中间连续5个1后自动插入一个零
接收方遇到连续5个1减掉后面那个0
- 比特填充的标志比特法
-
- 物理层编码违禁法
曼彻斯特编码 高低——码元1,低高——码元0
so, 高高or低低都是违禁的,可以用来标志帧的开始和终止
- 物理层编码违禁法
差错控制
detect检错 correct纠错
-
ARQ 自动重传请求 3种
ARQ Automatic Repeat reQuest 自动重传请求
使用检错码ARQ控制方法:
发送方将要发送的数据帧附加CRC 冗余校验码一起发送;
接收方根据这部分CRC码进行校验;
发现错误——丢弃-->发送方超时重传。-
- 停止-等待 ARQ
-
- Go-Back-N 后退N帧 ARQ
-
- 选择性重传 ARQ
-
-
FEC 前向纠错
使用纠错码的技术
-
检错编码
-
奇偶校验码
只能发现奇数个 位错误,看1的个数
偶校验:加上最后一位校验位,有偶数个1
奇校验:加上最后一位校验位,有奇数个1 -
CRC循环冗余校验
also. 多项式编码、Cyclic Redundancy Check
除法皆为模2除法,不同为1相同为0
几个量:
G(x) :CRC的生成多项式,接收方与发送方的约定,已经规定好了。传输过程中,始终保持不变。最高位、最低位都是1
C(x):发送的原始数据,原始多项式
R(x):CRC多项式,即余数
T(x) = C(x) << R + R(x)
K:C(x) 的位数,or 最高幂次 +1
R:CRC码位数 = G(x) 位数 - 1
原理:
发送端、接收端预先商定一个生成多项式 G(x)
K位的原始数据帧C(x),比G(x)长
在C(x)尾部附加校验和,生成T(x),能够被G(x)除尽
计算过程
r位的G(x),发送K位的原始帧C(x)
1. C(x) 尾部加 R 位0
2. C(x) 除以 G(x),得到余数,即CRC校验码R(x)
3. 余数替换末尾的 R 个0,得到T(x),余数位数不够在前面补0
4. 接收端收到T(x) + E(x)
错误分析 接收端收到T(x) + E(x)
奇数个位发生错误——E(x) 有x奇次项
只有1位错误——E(x) = xi
两个独立的1位错误,E(x) = xi + xj举例 G(x) = x4 + x + 1 计算帧1101011111校验和
解:
G(x) = x4 + x + 1 即:10011
G(x)5位,M(x)补上4个0--M(x)帧11010111110000,再除G(x)10011
余10
发出帧T(x) = 1101011110010,T(x)能被G(x)整除
-
-
纠错编码
-
海明码
海明距离
多对数据取最小值海明距离(d + 1) 最多检测detect d个错误
海明距离(2d + 1) 最多纠正correct d个错误
m+r+1≤2r
海明码默认一串数据 只错一位,so只能检查一个错误位。
原data = 1001101 r = 4;
r1、r2、r4、r8 插入
r1画一隔一、r2画二隔二、r4画4隔4、r8画8隔8
偶校验,使得画出来的部分是偶数个1
得到code
检查code
不要改变code,依次检查r1、r2、r4、r8 ,错误位记为1,正确记为0
写成r8 r4 r2 r1,转换成十进制,即为错误位 -
二进制卷积码
-
流量控制
点对点
限制发送方的数据流量,不超过接收方的接收能力。只看两端,不看中间
传输层的流量控制是端到端
-
停等
发送方发一帧,等待接收方应答信号,等到之后才能发下一帧
没收到就一直等效率低
-
滑动窗口
-
单帧 停等
发送窗口 size = 1
接收窗口 size = 1
源收到ACK才可以发下一帧,缓冲区才可以删除备份文件 -
Go-Back-N
对ACK进行 n bit 编号:0 ~ 2n - 1 号码
发送窗口 1 ≤ size ≤ 2n - 1
接收窗口 size = 1 按顺序接收
源可连发,对ACK进行 n bit 编号,每帧都有超时计时器;
ACKn 表示前n帧都已经正确接收 -
SR 选择性重传
对ACK进行 n bit 编号,否定帧NAK,
发送窗口 1 ≤ size ≤ 2n-1
接收窗口 size > 1收发双方窗口大小相同
-
-
信道利用率
针对发送方而言,一个发送周期内,有效发送数据时间/整个发送周期
T发送周期,C 数据传输速率,L 共发送了L bits数据,( L/C) / T
信道吞吐率 = 信道利用率 * 发送方发送速率
协议
HDLC
面向比特
使用序号、确认机制,提供可靠传输
SONET
PPP
面向字节
不使用序号、确认机制,只保证无差错接收CRC校验
ADSL 拨号上网
用户可以边打电话边上网,一条电话线可同时接听,拨打电话并进行数据传输,两者互不影响。
adsl传输的数据并不通过电话交换机,所以adsl上网
不需要缴付额外的电话费,节省了费用。
MAC子层 介质访问控制
信道分配
征用型 随机
确定型 有序
-
多路复用技术
在一条介质上,同时携带多个传输信号,从而提高传输系统的利用率。共享空间or时间or both
这也是实现信道划分介质访问的一个途径。
多路复用将多个信号组合在一条物理信道上进行传输,从而多个计算机/终端设备 共享信道资源-->提高信道利用率-
FDM 频分多路复用
子信道带宽总和≤信道总带宽
每个子信道带宽基本相同(Hz),每个子信道传输一种信号
不同频率同时发
用于:
电话网络
蜂窝网络
地面无线
卫星网 -
TDM 时分多路复用
信道传输时间作为分割对象,分成若干时间片,固定分配!ABCDABCDABCD这样发,共享带宽,分时利用信道。
STDM:不固定分配时隙!异步时分多路复用。TDM改进version,当有数据要传的时候才被分到时间片。从而提高了线路利用率。
用于:
电话网络
蜂窝网络 -
WDM 波分多路复用
采用光的频分多路复用,在一根光纤中传输不同波长
(λ = c/v(Hz))的信号。
因为波长(频率)不同,各路光信号不互相干扰,好理解这个,真好记,md不像别的几个 -
CDM 码分多路复用
每个用户有特定的地址码,用户会有 无消息(正交结果0)/发0(正交结果-1)/发1(正交结果1) 三种情况。 地址码两两之间正交性,这样频率、时间、空间上发送的信号都可能重叠,从而更加充分利用了有限的频率资源。
例:向量T = (-1 -1 +1 -1 +1 +1 +1 -1)
A站发消息 1给C:传了向量 (-1 -1 -1 +1 +1 -1 +1 +1)
B站发消息 0给C:传了向量 (+1 +1 -1 +1 -1 -1 -1 +1)
然后两个向量发生重叠 相加 :R(0 0 -2 2 0 -2 0 2)
C收到这个叠加后的向量,怎么求A/B发了0 1哪个呢?
需要已知A的(-1 -1 -1 +1 +1 -1 +1 +1) 将 R与A点乘=2+2+2+2=8-->/8 = 1 so,A发了1
需要已知B的 (+1 +1 -1 +1 -1 -1 -1 +1) 将 R与B点乘=-2-2-2-2=-8-->/8 = -1 so,B发了0
-
-
随机访问介质访问控制协议
征用型
实质上广播信道 转化成 点到点信道的行为因为总线型网络中,>1个用户同时发消息就会产生帧冲突,导致有冲突的用户发消息失败。不同于多路复用技术,这里不能共享空间and时间
so要解决这个问题,用户们需要按照一些规则来反复重传自己的帧,直到无碰撞通过。-
ALOHA 协议
-
纯ALOHA
Pure ALOHA 时间连续
某站点要发数据时,直接发送;如果一段时间后还未收到确认,认为发生了冲突;冲突重发:等待一段时间后继续上述步骤;直到成功。可代表:总线型网络、无线信道情况
最大吞吐量 S = 1/2e = 0.184,G = 0.5可见吞吐量低得很例:A pure ALOHA network transmits 200-bit frames on a shared channel of 200 kbps.
What is the requirement to make this frame collision-free?一个帧需要用到 200b/200kb = 1ms 的时间
vulnerable time?? = 2ms
所以任何站都不应该在这1ms中开始发送数据vulnerable time:顾前顾后。要不和前一个帧冲突,后一个帧也不能和它冲突,so = 2*T
A pure ALOHA network transmits 200-bit frames on a shared channel of 200 kbps.
What is the throughput吞吐量 if the system (all stations together) produces
a. 1000 frames per second? 1 frame/ms G = 1
S = G * e-2G = 0.135
throughput = 0.1351000 = 135
b. 500 frames per second? 0.5 frame/ms G = 0.5
S = G * e-2G = 0.184
throughput = 0.184500 = 82
c. 250 frames per second? 0.25 frame/ms G = 0.25
S = G * e-2G = 0.152
throughput = 0.152*250=38 -
时隙ALOHA协议
slot ALOHA also called 分槽ALOHA协议
把时间分成一段段等长的时隙,每个时隙的开始才可以发送帧。减少了发送数据的随意性;帧到达后,缓存中等待一段时间,才能发出去;同一时隙中>1 个帧到达时,下一个时隙将产生冲突,然后和pure ALOHA一样重传。
这样冲突只浪费了一个时隙,且冲突发生在时隙起点。最大吞吐量0.368
-
-
CSMA协议 载波侦听多路访问
先听后发,信道空闲才发。
ALOHA+载波侦听装置-
1-坚持CSMA
两种情况发生冲突:
信号传输延迟导致:由于时延,站1发送的信号还没到达站2,站2误认为信道空闲立即发送数据。
多个站点同时监听空闲信道,同时发送。 -
非坚持CSMA
发送数据前,监听信号;信道空闲--立即发送;信道忙,放弃监听,随机等待一段时间再重复上述步骤
-
p-坚持CSMA
概率p,直接与协议性能相关。用于时分信道。
降低1-坚持CSMA多站点同时发送造成冲突的概率,和1-坚持一样坚持监听-->克服非坚持CSMA造成的时间延迟。
信道空闲-->以概率p发送数据,(1 -q )概率推迟到下一时隙监听-发送。
-
-
CSMA/CD协议
先听后发+边听边发。一旦冲突,立即停发。随机等待时机再发。发送过程中也持续监听信道,如果检测到冲突,立即停止发送,且发送一串阻塞信号--然后随机等待一段时间重新开始上述步骤。
适用于:半双工、总线型网络环境。成功用于使用有线连接的LAN局域网,因为无线环境下存在“隐蔽站”问题,不一定能监听到CSMA/CD是经典局域网、以太网协议
最小帧长 = 总线传播时延 * 数据传输速率 * 2
最小帧长/数据传输速率 = 帧传播时延 >= 2 * 总线传播时延
最小以太网帧长 64Bytes隐蔽站问题:B在A、C监听范围交界处,A和C监听结果为空闲时,都以为B空闲一起发送,结果导致碰撞冲突。
一位空闲实际不空闲而发生冲突
暴露站点:A是B的暴露站点——AC都在B可听范围,BD都在C可听范围,此时C发给D,而B想发A却不敢发(因为听到C在发,误以为A也收到误以为会有冲突,但是其实没有的。
误以为不空闲实际空闲而发生冲突。 -
CSMA/CA协议
无线网802.11 WiFi,CSMA/CA无线环境
解决隐蔽站问题:RTS 请求发送控制帧 CTS 允许发送控制帧例:
A向B发送RTS(Request To Send)帧,A周围的站点在一定时间内不发送数据,以保证B的CTS帧返回给A;
B向A回答CTS(Clear To Send)帧,B周围的站点在一定时间内不发送数据,以保证A发送完数据;
A开始发送,若发生冲突(两站点同时发送RTS),则等待随机时间,再重试。发送站点刺激接收站点发送应答短帧,从而使得接收站点周围的站点监听到该帧,并在一定时间内避免发送数据。
而非采用载道监听机制。
-
-
无冲突协议
-
bitmap 位图协议
N个站点共享信道,编号 0~N-1。信道划分成一系列竞争周期(N个 1 bit竞争时隙 )and数据传输周期。
一个竞争/预约周期 N个时隙,对应N个站点,要发送的站点会标记成1 。从0轮到N-1,发送也是从0轮到N-1
预约结束之后,对这些站点按照bit顺序发送。
so永不冲突,,但无法考虑发送的优先级。低负载:一轮只有一个站点要发送1帧。每帧开销为N,数据长度d个bit,信道利用率( d/ (N+d))
高负载:一轮所有站点都要发送1帧。所以每一帧只加上额外的1位开销,信道利用率(d/(d+1)。
最长等待时间 = 征用时隙N + 帧发送时间(N-1)d (bit)
想预约,但刚好问完自己,同时其他所有站点都要发送b位的帧 -
轮询访问
令牌token传递协议
令牌(特殊的MAC控制帧)随环形总线在各个计算机之间传递,确保同一时间只有一个站点独占信道。只有有令牌的站点才可以发送帧。 -
二进制倒计数
-
-
有限竞争协议
- 自适应树遍历协议
1 level0
/ \
2 3 level1
/ \ | \
4 5 6 7 level2
|\ |\ |\ |\
A B C D E F G H stations站点
!先左后右,冲突向下,空闲or成功回退。
例如
-
A G要发,
0槽:冲突在level0,节点1下所有站;;
1号槽,节点1左子树 -->节点2下所有站,A成功;;
2号槽,节点1右子树-->节点3下所有站,G成功 -
AC要发
0槽:冲突 level0,节点1下所有站;;
1号槽,节点1左子树--冲突 level1;;
2号槽,节点2左子树-->A成功;回退到结点2;
3号槽,节点2右子树-->C成功 -
CD要发
0槽:冲突 level0,节点1下所有站;;
1号槽,节点1左子树-->冲突 level1;;
2号槽,节点2左子树-->空闲;回退;
3号槽,节点2右子树-->冲突 level2;;
4号槽,节点5左子树-->C成功;回退;
5号槽,节点5右子树-->D成功;回回回OK -
局域网
LAN局域网三大特性
拓扑结构:星型、总线、环形、星型+总线复合
传输介质:双绞线、铜缆、光纤等。
介质访问控制方式!!
局域网分类
以太网(目前使用最广泛的局域网):总线型拓扑,有线网络,插网卡上网,提供无连接不可靠服务,CSMA/CD二进制退避算法
令牌环网:环形拓扑
无线局域网802.11WiFi:CSMA/CA
ATM网
FDDI网802.8 环形拓扑-
以太网
可以说802.3简称为以太网(although有细小差别,不想管了
总线型拓扑
无连接不可靠,差错检验交给高层来
使用曼彻斯特编码的信号,每个码元中间有一次电压转换-->同步信号提取
每块网卡的MAC地址唯一
以太网帧:由CSMA/CD最短64B以太网中,传输速率=10Mbps时,时间槽=51.2us;
一个时间槽内可以发送512bits,即64字节(所以也称一个时间槽长度为64字节)
6B目的MAC地址+6B原MAC地址+2B类型
+数据data部分+填充(保证至少64B)+ 4B checksum校验和
so除了数据+填充,有18B的header和尾部,至少要中间加入(64-18) =46B-
MAC地址
also called物理地址,6B=48bits
第一个Byte的第八位(最后一位):
0:unicast单播一对一
1:multicast组播一对多
FF:FF:FF:FF:FF:FF :broadcast 广播 6B全1
-
-
无线局域网
802.11MAC子层协议规定,所有的站在完成发送后,必须再等待一段很短的时间(继续监听)才能发送下一帧。这段时间的通称是帧间间隔IFS。
IFS 帧间间隔
SIFS:短帧间间隔。间隔需要立即响应的帧,如控制帧(RTS/CTS/ACK)等
AIFS:任意帧间间隔。根据访问类别(即要传输的数据类型)对站点进行优先级排序,AISF的计算公式为:AISF编号*时隙+ SISF;
PIFS:点协调IFS,中等长度。集中协调功能帧间间隔,只能够由工作于PCF模式的站点来使用
DIFS:分布式协调IFS,最长。只能够由工作于DCF模式的站点来使用
高优先级的帧需要等待的时间较短,因此可以优先获得发送权,但低优先级帧就必须等待较长的时间。
-
数据链路层设备
局域网交换机
-
直接交换
交换机只接收数据帧头部,检测目的地址,立即转发(无论帧是否出错)
帧出错检测由结点主机完成(延迟小,缺乏差错检测) -
存储转发交换
交换机完整地接收数据帧,并检测差错。若帧正确,则根据帧目的地址确定输出端口,进行转发出
具有帧差错检测能力,延迟大
-
改进的二者结合
接收到数据的前64B之后,判断数据的头部字段是否正确
如果正确则转发出去。对于短数据,交换延迟与直接交换方式比较接近;
而对于长数据 ,由于它只对数据前部的主要字段进行差错检测,因此交换延迟将会明显减少
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)