计算机网络——数据链路层-可靠传输的实现机制:选择重传协议SR(介绍、工作原理、窗口尺寸、题目练习)

简介: 计算机网络——数据链路层-可靠传输的实现机制:选择重传协议SR(介绍、工作原理、窗口尺寸、题目练习)

选择重传协议SR

介绍

在上篇中,我们介绍了回退N帧协议。回退N帧协议的接收窗口尺寸只能等于一,因此接收方只能按序接收正确到达的数据分组;一个数据分组的误码就会导致其后续多个数据分组不能被接方按序接收而丢弃,尽管他们没有误码。


这必然会造成发送方对这些数据分组的超时重传,显然这是对通信资源的极大浪费。为了进一步提高性能,可设法只重传出现误码的数据分组;因此,接收窗口的尺寸不应再等于1而应大于1;以便接收方先收下失序到达但无误码并且序号落在接收窗口内的那些数据分组,等到所缺分组收齐后再一并送交上层。这就是选择重传协议。


需要注意的是,选择重传协议为了使发送方仅重传出现差错的数据分组,接收方不能再采用累积确认,而需要对每个正确接收到的数据分组进行逐一确认。

工作原理

下面我们来举例说明选择重传协议的工作原理:

假设采用三个比特给分组编序号,因此序号的取值范围是0-7。

如下图所示,这是发送方的分组序号:

这是接收方的分组序号:

当序号增加到7时,下一个序号又从0开始发送。

窗口的尺寸 的取值范围是 ,其中的3是构成分组序号的比特数量,本例取WT的值为4。

如下图所示,序号落在发送窗口内的这4个数据分组可以连续发送;而序号落在发送窗口外的数据分组不允许发送。

接收窗口的尺寸 的取值,一般情况下可与发送窗口的尺寸 的取值相同,在本例中其值为4。

如下图所示,序号落在接收窗口内的这4个数据分组允许接收;而序号落在接收窗口外的数据分组不允许接收。

送方将序号落在发送窗口内的这4个数据分组依次连续发送出去,他们经过互联网的传输,陆续到达接收方,但其中的2号数据分组丢失了,只要序号落入接收窗口内且无误码的数据分组,接收方都会接收。

接收方接收0号和1号数据分组,并发送0号和1号确认分组,接收窗口向前滑动两个位置,这样就有4和5这两个新的序号落入接收窗口。

接收方接收3号数据分组,并发送3号确认分组;但接收窗口不能向前滑动,因为3号数据分组是未按序到达的数据分组 。

与接收窗口一样,这些确认分组经过互联网的传输,陆续到达发送方,发送方每按序收到一个确认分组,发送窗口就向前滑动一个位置,发送方接收0号和1号确认分组,发送窗口向前滑动两个位置,这样就有4和5这两个新的序号落入发送窗口,发送方将序号落入发送窗口的4号和5号数据分组发送出去,



发送方现在可以将已经收到确认的0号和1号数据分组从发送缓存中删除了;而接收方可择机将已按需接收的0号和1号数据分组交付上层处理。

发送方接收3号确认分组,但发送窗口不能向前滑动,因为这是一个未按序到达的确认分组,发送方还未收到他之前的2号确认分组;不过,需要记录3号数据分组已收到确认,这样该数据分组就不会超时重发。

4号和5号数据分组到达接收方,接收方接收他们,并发送4号和5号确认分组,但接收窗口不能向前滑动,因为他们是未按序到达的数据分组;接收方还未收到他们之前的2号数据分组。

假设在4号和5号确认分组的传输过程中,发送方针对2号数据分组的重传计时器超时了,发送方重传2号数据分组。

4号和5号确认分组陆续到达发送方,发送方接收他们,但发送窗口不能向前滑动,因为他们是未按序到达的确认分组,发送方还未收到他们之前的2号确认分组;不过需要记录,4号和5号数据分组已收到确认,这样他们就不会超时重发。



发送方之前重传的2号数据分组到达接收方,接收方接收该数据分组,并发送2号确认分组;接收窗口现在可以向前滑动四个位置,这样就有6、7、0、1这四个新的序号落入接收窗口 。

2号确认分组经过互联网的传输到达发送方,发送方接收该确认分组;发送窗口现在可以向前滑动四个位置,同样可以有6、7、0、1这四个新的序号落入发送窗口 。

发送方现在就可以继续将这四个序号的数据分组依次发送出去了。

窗口尺寸

接下来我们再来讨论一下选择重传协议的发送窗口和接收窗口的尺寸问题。

发送方的发送窗口的尺寸 的取值范围是

其中n是构成分组序号的比特数量,若 等于1,则与停止等待协议相同;

大于 ,则会造成接收方无法分辨新旧数据分组的问题。

接收方的接收窗口尺寸

必须满足 ,若 等于1,则与回退N帧协议相同;

大于 ,则没有意义。

下面我们就来看看,如果发送窗口和接收窗口的尺寸超过了它们的取值范围会出现什么样的情况:


我们还是采用三个比特给分组编序号,即序号0-7。


发送窗口的尺寸取最大值,接收窗口的尺寸也取最大值,也就是===4。


假设,我们故意将发送窗口尺寸设置为5,相应的将接收窗口尺寸也设置为5,看看会出现什么情况。


发送方将序号落入发送窗口内的0-4号这5个数据分组依次发送出去,他们经过互联网的传输依次到达接收方,接收方接收他们并发送0-4号确认分组,接收窗口向前滑动5个位置,这样就有5、6、7、0、1这5个新的序号落入接收窗口。

这些确认分组经过互联网的传输陆续到达发送方,但其中的0号确认分组丢失了,发送方接收1-4号确认分组,并记录1-4号数据分组已收到确认

发送窗口不能向前移动。一段时间后,0号数据分组的重传计时器超时了,发送方重传0号数据分组

该数据分组经过互联网的传输到达接收方,其序号0落在接收窗口内,接收方会接收它,但是接收方先前已经正确接收过该数据分组了,如果现在还要接收,那就会出现分组重复这种传输差错。

也就是说,如果发送窗口和接收窗口的尺寸超过了取值范围,就会使接收方无法分辨新旧数据分组,进而出现分组重复这种传输差错。

练习

接下来我们来做一个有关选择重传协议的练习。

题目

这是计算机专业考研全国统考计算机网络部分 2011年 的题35:

答案


答案是选项B


解析

我们来分析一下:

与回退N帧协议不同,选择重传协议不支持累积确认,接收方每接收一个数据帧就会发回相应的确认帧。题目所给收到1号帧的确认,而0号和2号帧依次超时;因此需要重传0号和2号帧。


至于发送方已发送的3号数据帧,题目并未给出他的任何其他线索,因此无需考虑3号帧。


示意图

我们再来画个示意图,以便更容易理解该题:

假设这是帧可用的序号:

这是发送窗口:

发送方将序号落在发送窗口内的0-3号数据帧依次发送出去,之后收到了1号帧的确认,而0号和2号帧的重传计时器超时,因此需要重传的就是0号和2号这两个帧。


END



目录
相关文章
|
1月前
|
存储 算法 网络虚拟化
【计算机网络】学习笔记,第三篇:数据链路层
现在的光纤宽带接入 FTTx 都要使用 PPPoE 的方式进行接入。在 PPPoE 弹出的窗口中键入在网络运营商购买的用户名和密码,就可以进行宽带上网了 利用 ADSL 进行宽带上网时,从用户个人电脑到家中的 ADSL 调制解调器之间,也是使用 RJ-45 和 5 类线(即以太网使用的网线)进行连接的,并且也是使用 PPPoE 弹出的窗口进行拨号连接的
37 5
|
24天前
计算机网络学习记录 数据链路层 Day3 (上)(1)
计算机网络学习记录 数据链路层 Day3 (上)(1)
17 2
|
29天前
|
机器学习/深度学习 网络协议 网络性能优化
[计算机网络]深度学习传输层TCP协议
[计算机网络]深度学习传输层TCP协议
26 1
|
17天前
|
缓存 网络协议 网络性能优化
计算机网络—传输层-tcp、udp协议详解
计算机网络—传输层-tcp、udp协议详解
|
29天前
|
机器学习/深度学习 安全 数据安全/隐私保护
【计算机网络】深度学习HTTPS协议
【计算机网络】深度学习HTTPS协议
28 0
|
29天前
|
机器学习/深度学习 前端开发 JavaScript
【计算机网络】深度学习使用应用层的HTTP协议
【计算机网络】深度学习使用应用层的HTTP协议
39 0
|
1月前
|
算法 网络架构
计算机网络: 点对点协议 PPP
计算机网络: 点对点协议 PPP
23 0
|
1月前
|
网络协议 C语言 网络架构
计算机网络——数据链路层-点对点协议(组成部分、PPP帧格式、透明传输、差错检测、工作状态)
计算机网络——数据链路层-点对点协议(组成部分、PPP帧格式、透明传输、差错检测、工作状态)
97 7
|
1月前
|
缓存
计算机网络——数据链路层-可靠传输的实现机制:回退N帧协议GBN(无差错情况、累积确认、有差错情况、发送窗口尺寸)
计算机网络——数据链路层-可靠传输的实现机制:回退N帧协议GBN(无差错情况、累积确认、有差错情况、发送窗口尺寸)
28 0
计算机网络——数据链路层-可靠传输的实现机制:回退N帧协议GBN(无差错情况、累积确认、有差错情况、发送窗口尺寸)
|
2月前
|
算法
计算机网络:CSMA/CA协议
计算机网络:CSMA/CA协议
101 9