3.4 流量控制和可靠传输机制
数据链路层
流量控制控制相邻节点
发送速率。
使用确认
和超时重传
两种机制实现可靠传输。
3.4.1 流量控制,可靠传输与滑动窗口机制
-
1.停止—等待协议协议基本原理
发送方发每发送一帧,等待接收方
回应的ACK
发送下一帧或超出计时没收到ACK
就重发
。 -
2.滑动窗口流量控制原理【解决流量控制】
发送方维持允许发送的帧号,接受方维持允许接收的帧号。发送方用发送窗口进行流量控制。
-
3.可靠传输【
发送端
发送什么接收方
就接收什么】
数据链路层使用确认
和超时重传
两种机制完成!
ARQ:自动重传请求
3.4.2 单帧滑动窗口与停止—等待协议
发送方发每发送一帧,等待接收方
回应的ACK
发送下一帧或超出计时没收到ACK
就重发
。
发送方和接收方都要设置一个帧缓冲区
:发送方发送数据后必须等到接收方的ACK
才能删除缓冲区副本
。【用于重传】
计时器的的时间比RTT稍微长一点
- 窗口大小
发送窗口大小:1个
接收窗口大小:1个
编号位数:1位
信道利用率
U
=
T
D
T
D
+
R
T
T
+
T
A
信道利用率U=\frac{TD}{TD+RTT+TA}
信道利用率U=TD+RTT+TATD
信道吞吐量
=
信道利用率
∗
发送方速率
信道吞吐量=信道利用率*发送方速率
信道吞吐量=信道利用率∗发送方速率
TD:发送数据时延
RTT:往返时延
TA:确认帧ACK发送时延
缺点:信道利用率低
3.4.3 多帧滑动窗口与后退N帧协议(GBN)
与单帧滑动窗口对比:①新增序号范围 ②发送发缓存多个分组
发送方发送按顺序发送窗口内的所有帧
,接收方只能按顺序接收帧,左边的帧出现问题不能正常接收,右边的帧到了也不能接收。
接收方会
回复一个包含接收到最后的一个正确帧的编号的ACK。
发送发
需要发送从ACK中帧编号的下一个帧开始连续发送。
-
窗口大小:
发送窗口大小: [ 1 , 2 n − 1 ] [1,2^n-1] [1,2n−1]个
接收窗口大小:1个
编号位数:n位 -
过程-发送方
上层调用:先检测窗口是否满了。没满就产生帧并发送。满了就告诉上层【或者缓存】
接收到ACK:累计确认,表明收到k号帧和前面所有帧
超时重传:重传所有没有确认的帧。 -
过程-接收方
接收到正确帧:发送ACK给发送发,并将数据交付给网络层
接收到错误帧:经过差错检测发现错误,直接丢弃。 -
重要总结:
①累计确认
②接收方只按序接收帧
③确认序列号是最后
按序到达的帧
3.4.3 多帧滑动窗口与选择重传协议(SR)
与GBN对比:①设置单个帧确认 ②增大接收方窗口 ③设置接收缓存 ④缓存乱序的帧
发送方按顺序发送窗口内所有未确认的帧
接收方可以接收接收窗口范围内的所有帧
。
对正确接收的帧
给出ACK
回应。
当发送方的发送窗口的最左边得到ACK回应就移动窗口。
-
窗口大小:
发送窗口大小: [ 1 , 2 n − 1 ] [1,2^{n-1}] [1,2n−1]个
接收窗口大小: [ 1 , 2 n − 1 ] [1,2^{n-1}] [1,2n−1]个
编号位数:n位
发送窗口大小+接收窗口大小≤ 2 n 2^n 2n -
过程-发送方
上层调用:查找下一个可用帧序列,在窗口就发送。不在要么缓存要么返回给上层
接收到ACK:标记已经接收窗口,若为最小编号则移动窗口
超时重传:一个事件【计时器到时了】只重传一个帧 -
过程-接收方
(来者不拒)接收确认的帧,无论是否按序。失序
的帧缓存,发送确认帧。
只有接收到最小序号的帧才能移动窗口。
接收到窗口外的帧直接回复ACK
-
重要总结:
①逐个确认,收一个确认一个
②只重传出错的帧
③接收方也有缓存
3.5 介质访问控制
主要任务: 为每个节点隔离来自同一信道上其他结点所传信号
3.1.5 信道划分介质访问控制【静态划分,无冲突】
多路复用技术
:把多个信号组合在一条物理信道上进行传输,使计算机或终端设备共享信道资源
,提高信道利用率。
信道划分
:实际上就是把广播信道
变成点对点信道
。
-
1.频分多路复用(FDM)【用户各占一部分频率带宽,可以同时发送】
分析:将多路基带信号
调制到不同频率的载波段
。
子带宽之和不能超过信道总带宽!!!
适合
:模拟信号
优点:充分利用介质带宽,系统效率高。技术成熟
,易实现。
-
2.(同步)时分多路复用(TDM)【将时间划分为等长的帧,每个用户在帧内轮流使用】
分析:将物理信道按时间片分成若干时间片
,轮流地分配给多个信号使用。
(异步/统计)时分多路复用(STDM) 解决了同步时分多路复用
利用率不高地缺陷。所有用户可以在任意时隙
内将帧发送给集中器
,当集中器
的一个帧满了就可以发送出去。
适合
:数字信号。
-
3.波分多路复用(WDM)
分析:在光纤中传输多种不同波长(频率)的光信号。用波长复用分解器
将各路波长分解出来。
优点:光波频段高,带宽高。 -
4.码分多路复用(CDM)【共享信道频率和时间】
分析:①每个站各有一个码片 ②每个站之间规格化内积为0 ③发送1就发送码片,发送0就发送码片的反码
S ・ T ≡ 1 M ∑ i = 1 M S i ⋅ T i = 0 S・T≡\frac{1}{M}\sum_{i=1}^{M} S_i \cdot T_i = 0 S・T≡M1∑i=1MSi⋅Ti=0
设S为A站码片向量,T为B站码片向量,K为C站码片向量可知
S ・ T = 0 S・T=0 S・T=0
S ・ T ‾ = 0 S・\overline{T}=0 S・T=0
S ・ S = 1 S・S=1 S・S=1
S ・ T ‾ = − 1 S・\overline{T}=-1 S・T=−1
( S + T ‾ ) ・ S = S ・ S + T ‾ ・ S = 1 + 0 = 1 (S+\overline{T})・S=S・S+\overline{T}・S=1+0=1 (S+T)・S=S・S+T・S=1+0=1
( S + T ‾ ) ・ T = S ・ T + T ‾ ・ T = 0 + ( − 1 ) = − 1 (S+\overline{T})・T=S・T+\overline{T}・T=0+(-1)=-1 (S+T)・T=S・T+T・T=0+(−1)=−1
( S + T ) ・ K = S ・ K + T ・ K = 0 + 0 = 0 (S+T)・K=S・K+T・K=0+0=0 (S+T)・K=S・K+T・K=0+0=0
由上面公式可知如果
发送了1,用码片相乘会变成1
发送了0,用码片相乘会变成-1
若没有发送信息,用码片相乘会变成0
优点:频谱利用率高,抗干扰能力强,保密性强,语音质量好。主要用于无线通信
。
3.5.2 随机访问介质控制【动态划分信道,用户占用更大带宽,有冲突】
-
1.ALOHA协议【不听就说】
(可以检测到冲突)
(1)纯ALOHA协议
特点:随时发送,想发送就直接发送,接收方接收到正确数据会回复ACK,若发送端在计时器时间内
没有收到ACK,等待一个随机时间
重新发送数据。
(2)时隙ALOHA协议
改进:将各站的时间同步
起来,将时间划分成等长时隙
,每个站只能在时隙
的开始时
发送数据。
总结:①纯ALOHA协议比时隙ALOHA协议的吞吐量低,效率低 ②时隙ALOHA只能在每个时隙开始阶段发送数据 -
2.CSMA协议【发送前监听】
(不能检测到冲突)
CS->载波侦听 MA->多点接入
(1)1-坚持 CSMA
忙则一直监听。空闲直接发送
(2)非坚持 CSMA
先监听,若信道忙,等待一个随机时间后再监听。空闲直接发送。
缺点:可能都在等待一个随机时间,导致信道利用率低。
优点:随机延迟时间可以减少冲突概率
以增加网络延迟来减少冲突
(3)p-坚持 CSMA【采用时分信道】
忙则持续监。若空闲,会以p的概率在现在的时隙发送数据。或者以1-p的概率在下一个时隙发送数据。
信道状态 | 1-坚持 | 非坚持 | p-坚持 |
---|---|---|---|
空闲 | 立即发送数据 | 立即发送数据 | 以概率p发送数据,或以1-p的概率在下一个时隙发送数据 |
忙 | 持续监听 | 放弃监听,等待随机事件后再监听 | 持续监听,直到信道空闲 |
- 3.CSMA/CD协议【发送前监听】
(适用于总线型网络或半双工网络)
CD->碰撞检测
发送数据时,先监听。若空闲,边发送数据变监听。
特点:数据的发送时延要大于RTT(2倍的单向传播时延)。若发送的数据太短
,在碰撞后的信号传播到发送端发送完数据
前,就检测不到碰撞的冲突。因此发送时延要大于RTT
设帧长度为L,发送速率为K,信道数据传输时延为τ
发送时延 = L K ≥ 2 ∗ T = R T T ( 往返时延 ) 发送时延=\frac{L}{K}≥2*T=RTT(往返时延) 发送时延=KL≥2∗T=RTT(往返时延)
最小帧长 = 2 ∗ 发送速率 ∗ 单项传播时延 = 发送速率 ∗ R T T 最小帧长=2*发送速率*单项传播时延=发送速率*RTT 最小帧长=2∗发送速率∗单项传播时延=发送速率∗RTT
以太网规定的的最短帧长是64B
解决冲突的算法: 截断二进制指数退避算法
1.设置参数
K
2.k=min{重传次数,10}
3.在{0,1,2… 2 k − 1 2^k-1 2k−1}中随机选一个数r
4.在r*RTT后重传
5.重传16次失败放弃传送数据,并报告给高层
- 3.CSMA/CA协议
CA->碰撞避免
发送数据
:
①先检测信道是否空闲
②空闲则发出RTS
请求【帧/信号】
③接收方
发送CTS
,同时预约信道
,禁止接收其他端数据
④接收方收到数据后使用CRC(循环冗余码)检测
,根据情况发送ACK
⑤发送方
没收到确认帧,进行截断二进制指数退避算法重发
总结:①预约信道 ②ACK确认帧 ③RTS(请求发送)和CTS(允许发送)
CSMA/CD和CSMA/CA的对比:
相同点:先听再说,有限次重传
不同点:①CSMA/CD用于总线以太网,CSMA/CA用于局域网。
②载波监听方式不同
③传输介质不同
④CA避免,CD检测
3.5.3 轮询访问:令牌传递协议
- 1.轮询协议:
一个主结点依次询问各个从节点是否发送数据。【以一个短帧
的形式】
缺点:①轮询开销 ②等待延迟③单点故障(主节点死亡)
- 2.令牌传递协议【令牌就是一个特殊的短帧】
传输介质的物理拓扑不必是环,但逻辑上必须是环
,一般物理是星型拓扑结构
1.令牌沿着总线在各个站点之间依次传递。
2.需要发送数据的节点将数据封装在令牌中,并设置令牌的标志位。
3.站点查看目的地址是不是自己。是就接收数据
静态信道划分 | 随机访问MAC协议 | 轮询访问协议 | |
---|---|---|---|
举例 | FDM/TDM/WDM/CMD | ALOHA协议/CSMA协议 | 轮询访问协议/令牌传递协议 |
是否冲突 | 无 | 有 | 无 |
网络负载重时 | 共享信道效率高,且公平 | 产生冲突开销 | 效率高 |
网络负载轻时 | 共享信道效率低 | 共享信道效率高,单个节点可以利用全部带宽 | 效率低 |