流量控制
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
并且也交给了主机 B。
但此时结点 B 还必须向 A 发送确认帧 ACK,因为 B 已
经知道 A 还没有收到上一次发过去的确认帧 ACK。
帧的编号问题
任何一个编号系统的序号所占用的比特数一定是有限的。 序号占用的比特数越少,数据传输的额外开销就越小。
因此,经过一段时间后,发送序号就会重复。
3.3.4 信道利用率与最佳帧长
3.3.1 连续 ARQ 协议的工作原理 在发送完一个数据帧后,不是停下来等待确认帧,而是可 以连续再发送若干个数据帧。
如果这时收到了接收端发来的确认帧,那么还可以接着发 送数据帧。
若收到对其中某一帧的否认帧,则从该帧开始的后继帧全 部重发。
由于减少了等待时间,整个通信的吞吐量就提高了。
若传输信道的传输质量很差因而误码率较大时,连续
ARQ协议不一定优于停止等待协议。
3.3.3 滑动窗口的概念
在连续ARQ协议中,应当将已发送出去但未被确认的 数据帧的数目加发限制。
发送端和接收端分别设定发送窗口和接收窗口 。
发送窗口用来对发送端进行流量控制。
发送窗口的大小 WT 代表在还没有收到对方确认信息的 接收窗口用来控制接收端可以接收哪些数据帧。只有发送
滑动。发送端若没有收到该确认,发送窗口就不能滑动。
发送窗口的最大值
取n=3。考虑当接收窗口位于0时,发送窗口的两个极端状态。 状态1:全部确认帧收到 发送窗口: 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 接收窗口: 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
4 停止等待协议的算法
在接收结点:
(1) V(R)←0。
(2) 等待。 (3) 收到一个数据帧;
若 N(S) = V(R),则执行(4);
否则丢弃此数据帧,然后转到(6)。 (4) 将收到的数据帧中的数据部分送交上层软件。
(5) V(R)←[1 V(R)]。
(6) n←V(R); 发送确认帧 ACKn,转到(2)。
H2 应用层
运输层 网络层 链路层 物理层
3.2.1 完全理想化的数据传输
两台计算机通过一条通信链路进行通信的筒化模型:
发送方 主 机 A AP1 接收方 AP2 主 机 B 高层
缓存
帧
帧 数据链路
缓存
数据链路层
完全理想化的数据传输所基于的两个假定
假定1:链路是理想的传输信道,所传送的任何数据既不 会出差错也不会丢失。 假定2:不管发方以多快的速率发送数据,收方总是来得
状态2:全部确认帧都没收到 发送窗口: 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 接收窗口: 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
可见在状态2下,接收过程前移窗口后有效序列号的新范围和
发送窗口的旧范围之间有重叠,致使接收端无法区分是重复帧还 是新帧。为使旧发送窗口和新接收窗口之间序列号不发生重叠, 所以WT≤2n-1。
3.3.1 连续 ARQ 协议的工作原理
A
B
ACK1 确认 DATA0
超 时 重 传 时 间 ACK2 确认 DATA1 DATA2 出错,丢弃 tout
送交主机
DATA3 不按序,丢弃,重传 ACK2
DATA4 不按序,丢弃,重传 ACK2 DATA5 不按序,丢弃,重传 ACK2 ACK3 确认 DATA2 ACK4 确认 DATA3 送交主机
送 主 机 丢 弃
时 间
送 主 机 (c) 数据帧丢失
(d) 确认帧丢失
解决死锁问题
结点A发送完一个数据帧时,就启动一个超时计时器 若到了超时计时器所设置的重传时间 tout而仍收不到结点
(timeout timer)。
B 的任何确认帧,则结点 A 就重传前面所发送的这一数据
帧。
一般可将重传时间选为略大于“从发完数据帧到收到确
…
需要注意 (1) 接收端只按序接收数据帧。虽然在有差错的 2号帧之后 接着又收到了正确的 3 个数据帧,但接收端都必须将这些 帧丢弃,因为在这些帧前面有一个 2 号帧还没有收到。
(2) ACK1 表示确认 0 号帧 DATA0,并期望下次收到 1 号
帧;ACK2 表示确认 1 号帧 DATA1,并期望下次收到 2号 帧。依此类推。
3.3.4 信道利用率与最佳帧长
由于每个数据帧都必须包括一定的控制信息(如帧的序号、
地址、同步信息以及其他的一些控制信息),所以即使连续 不停地发送数据帧,信道利用率(即扣除全部的控制信息后
的数据率与信道容量之比)也不可能达到 100 %。
当出现差错时(这是不可避免的),数据帧的不断重传将进
收发两端的窗口按照以上规律不断地向前滑动,因此这种
协议又称为滑动窗口协议。
பைடு நூலகம்
当发送窗口和接收窗口的大小都等于 1时,就是停止等待
协议。
发送窗口的最大值
当用 n 个比特进行编号时,若接收窗口的大小为 1,则只
有在发送窗口的大小 WT 2n 1时,连续 ARQ 协议才能 正确运行。
例如,当采用 3 bit 编码时,发送窗口的最大值是 7 而不
及收下,并及时上交主机。
这个假定就相当于认为:接收端向主机交付数据的速
率永远不会低于发送端发送数据的速率。
2 具有最简单流量控制的数据链路层协议
现在去掉上述的第二个假定。但是,仍然保留第一个假
定,即主机A向主机B传输数据的信道仍然是无差错的理想 信道。然而现在不能保证接收端向主机交付数据的速率永
准备接收 0 号帧 WR (b) 0 已收到 1 2 3 4
不允许接收这些帧
5
6
7
0
1
2
准备接收 1 号帧 WR
不允许接收这些帧
(c)
0
1
2
3
4
5
6
7
0
1
2
已收到
准备接收 4 号帧
不允许接收这些帧
滑动窗口的重要特性
只有在接收窗口向前滑动时(与此同时也发送了确认),
发送窗口才有可能向前滑动。
的数据帧了。
4 停止等待协议的算法
在发送结点:
(1) 从主机取一个数据帧,送交发送缓存。
(2) V(S)←0。 (3) N(S)←V(S)。 (4) 将发送缓存中的数据帧发送出去。 (5) 设置超时计时器。 (6) 等待。 {等待以下(7)和(8)这两个事件中最先出现的一个} (7) 收到确认帧 ACKn,若 n = 1 – V(s),则: 从主机取一个新的数据帧,放入发送缓存; V(S)←[1 V(S)],转到 (3)。否则丢弃这个确认帧,转到(6)。 (8) 若超时计时器时间到,则转到(4)。
认帧所需的平均时间”。
解决重复帧的问题
如果是确认帧丢失,则超时重传将使主机B收到两个相同 使每一个数据帧带上不同的发送序号。每发送一个新的数 若结点 B 收到发送序号相同的数据帧,就表明出现了重
的数据帧,这就是重复帧。
据帧就把它的发送序号加 1。
复帧。这时应丢弃重复帧,因为已经收到过同样的数据帧
(3) 将发送缓存中的数据帧发
送出去。 (4) 等待。
路层的接收缓存。
(3) 将接收缓存中的数据帧上 交主机。
(5) 若收到由接收结点发过来
的信息,则从主机取一个新的 数据帧,然后转到(2)。
(4) 向发送结点发一信息,表
示数据帧已经上交给主机。 (5) 转到(1)。
两种情况的对比(传输均无差错)
情况下发送端最多可以发送多少个数据帧。
序号落入接收窗口内的数据帧才可以收下。
发送窗口 WT (a) 0 1 2 3 4 5 6 7 0 1 2
允许发送 5 个帧 WT (b) 0 已发送 (c) 1 2 3 4 5 6
不允许发送这些帧 7 0 1 2
还允许发送 4 个帧 WT
不允许发送这些帧
0
1
物理层
物理层
物理层
物理层
1 完全理想化的数据传输
数据链路层的简单模型(续): 主机 H1 向 H2 发送数据
主机 H1 电话网 路由器 R1 路由器 R2 路由器 R3
局域网
广域网
主机 H2 局域网
H1 应用层
运输层 网络层 链路层 物理层
仅从数据链路层观察帧的流动
R1 网络层 链路层 物理层 R2 网络层 链路层 物理层 R3 网络层 链路层 物理层
对于停止等待协议,由于每发送一个数据帧就停止等待,
因此用一个比特来编号就够了。 注:一个比特可表示 0 和 1 两种不同的序号。
帧的发送序号
数据帧中的发送序号 N(S) 以 0 和 1 交替的方式出现在数 每发一个新的数据帧,发送序号就和上次发送的不一样。
据帧中。
用这样的方法就可以使收方能够区分开新的数据帧和重传
不需要流量控制
A B
需要流量控制
A B
送主机 B
送主机 B
送主机 B
送主机 B 时 间 送主机 B 送主机 B
3 实用的停止等待协议
四种情况
A B A B 出错 A B 丢 失 ! A B
送 主 机
送 主 机 (a) 正常情况
tout 重 传 送 主 机 (b) 数据帧出错 重 传
tout 丢 失 重 ! 传
需要注意 (3) 结点 A 在每发送完一个数据帧时都要设置该帧的超时计 时器。如果在所设置的超时时间内收到确认帧,就立即将 超时计时器清零。但若在所设置的超时时间到了而未收到 确认帧,就要重传相应的数据帧。 在等不到 2 号帧的确认而重传 2 号数据帧时,虽然结 点 A 已经发完了 5 号帧,但仍必须向回走,将 2号帧及其
才允许将该数据帧收下。
若接收到的数据帧落在接收窗口之外,则一律将其丢弃。
在连续 ARQ 协议中,接收窗口的大小 WR = 1。
只有当收到的帧的序号与接收窗口一致时才能接收该
帧。否则,就丢弃它。
每收到一个序号正确的帧,接收窗口就向前(即向右
方)滑动一个帧的位置。同时发送对该帧的确认。
WR (a) 0 1 2 3 4 5 6 7 0 1 2
停止等待协议 ARQ 的优缺点
优点:比较简单 。
缺点:通信信道的利用率不高,也就是说,信道还远远没
有被数据比特填满。
为了克服这一缺点,就产生了另外两种协议,即连续
ARQ 和选择重传 ARQ。
3.3
连续 ARQ 协议
3.3.1 连续 ARQ 协议的工作原理 3.3.2 连续 ARQ 协议的吞吐量 3.3.3 滑动窗口的概念
以后的各帧全部进行重传。连续 ARQ 又称为Go-back-N
ARQ(又称回退N式ARQ协议),意思是当出现差错必须 重传时,要向回走 N 个帧,然后再开始重传。
连续ARQ协议的优缺点 连续ARQ协议一方面因连续发送数据帧而提高了效率, 另一方面,在重传时又必须把原来已正确传送过的数据帧 进行重传,这种做法又使传送效率降低。
3.3 流量控制
功能:
控制发送方的发送数据量,使得不能超过接 收方的接收能力。(接收方使用反馈机制,向发送
方应答,报告自己当前的接收情况和能力。接收能力 由接收设备的处理速度、接收缓冲的容量等影响)
两种常用的流量控制策略:
停-等协议 滑动窗口协议
停止等待协议
1 完全理想化的数据传输 2 具有最简单流量控制的数据链路层协议 3 实用的停止等待协议
2
已发送
3
4
5
WT
6
7
0
1
2
不允许发送这些帧 3 4 5 6 7 0 1 2
(d)
0
1
2
当发送出数据时,滑动窗口从左边开始收缩; 当收到确认时,滑动窗口向右扩展。
已发送 并已收到确认
已发送
还允许发送 3 个帧
不允许发送这些帧
接收端设置接收窗口
在接收端只有当收到的数据帧的发送序号落入接收窗口内
是 8。
发送窗口的最大值
显然 WT内不可能有重复编号的帧,所以WT≤2n。设 注意以下情况:
WT=2n;
发送窗口:只有当收到对一个帧的确认,才会向前滑动
一个帧的位置;
接收窗口:只有收到一个序号正确的帧,才会向前滑动
一个帧的位置,且同时向发送端发送对该帧的确认。
显然只有接收窗口向前滑动时,发送端口才有可能向前
远不低于发送端发送数据的速率。
由收方控制发方的数据流,是计算机网络中流量控制的
一个基本方法。
2 具有最简单流量控制的数据链路层协议
在发送结点: 在接收结点:
(1) 从主机取一个数据帧。
(2) 将数据帧送到数据链路层 的发送缓存。
(1) 等待。
(2) 若收到由发送结点发过来 的数据帧,则将其放入数据链
1 完全理想化的数据传输
数据链路层的简单模型: 主机 H1 向 H2 发送数据
主机 H1 电话网 H1 应用层
路由器 R1
局域网
路由器 R2
广域网
路由器 R3 局域网
主机 H2
从层次上来看数据的流动
R1
网络层 链路层
H2 应用层
运输层
网络层 链路层
R2
网络层 链路层
R3
网络层 链路层
运输层
网络层 链路 层 物理层