当前课程知识点:计算机网络 > 第三章:数据链路层 > 3.8 选择性重传 > Video
各位好
当我们连续发送W个数据帧
其中一帧出错
但其后续的帧被成功发送
有两种处理的方式
一种呢是丢弃出错帧
及其后续的帧
全部重传
它对应着协议5回退n帧
还有一种方式呢是丢弃出错的帧
缓存所有后续正确接受的帧
它只重传出错那一帧
这对应着协议6
叫选择性的重传
今天我们就来看一下选择性的重传
对于接收方来说
接收方它的接收策略是这样的
丢弃出错帧
但是后续的帧如果是正确接收的话
它会把它缓存下来
发送方的重传策略也变了
它只重传出错那一帧
我们来看这个图
来理解选择性重传
左边是发送方
假如我们的窗口W是等于8的
一次性的发8个帧到对方
接收方收到这8个帧发现呢
第2帧出错了
但是3456这些帧是没有错的
所以3456这些后续成功接收的帧
它把它接收下来
并且缓存起来
对于第2帧
出错这一帧
它把它丢掉
选择性重传它的工作原理的发送方
我们来看一下
正常发送
是对帧进行编号
缓存所有未被确认的帧
收到确认之后呢
就释放确认帧所对应的帧
所占的缓冲区
滑动发送窗口
如果出错的那个帧导致超时
它会重传
缓存的最后
被确认的那个帧以后的那一帧
就是重传出错那一帧
接收方呢
正常情况下就是正常接收
它会把收到的数据提取出来
上交给网络层
并且回发确认
滑动它的接收窗口
如果收到非期望的正确帧
那么它对它做缓存
并且回送对接收的
最后正确帧的确认
如果收到的
是对出错帧的重传帧的话
它会把这个帧跟以前缓存的那些帧
一起排序上交
在选择性重传里面
非常关键的步骤
第一个就是缓存
所有正确接收到的帧
接收方都要把它接收下来
并且缓存起来
第二个关键性的步骤
就是出错那一帧
因为没有得到确认
所以最终会导致发送方超时
把它进行重传
第三个关键性的步骤就是
接收方收到重传帧
它会和以前缓存的那些帧
一起重新排序
按序提交给上一层
我们在刚才的
选择性重传工作原理里面看到
我们的出错帧一定要等到超时之后
才重传
接收方才可能一次性的去缓解它的
缓存的压力
实际上
我们可以加快这个重传的动作
怎么加快呢
启用了一个机制叫否定确认NAK
否定确认就是
当我们收到那个
第二号出错帧的时候
我们把它丢了
原来我们是不理睬它
就让它超时之后重传
那么否定确认重传NAK启用了之后
我们收到这个二号错帧
我们就可以加一个NAK等于2
明确的告诉对方说
第二号帧错了
请你重传第二号帧
所以这个NAK采用了之后呢
有可能对方还没有超时
我的NAK已经到了
那么我的重传就可以开始启动了
加快了这个重传的节奏
现在呢我们把回退n帧协议5
和选择性重传协议6
两个协议呢做一个小小的对照
回退n帧呢
它是发送方需要比较大的缓冲区
以便可以重传所有的帧
它重传的帧数多
适合于那种信道出错率很少的情况
而选择性重传呢
它接收方是需要较大的缓冲空间
以便可以按正确的顺序
将分组提交到网络层
重传的帧数少
适合于那种信道质量非常糟糕的
那个通信环境
在协议6里边
滑动窗口W的选择
也是有考究的
如果我们的序列号是用三位表示的
它的最大序列号是7
那么我们的W窗口
只能选择等于4
而发送窗口通常小于接收窗口
我们来看一个反例
如果说我们的W
不是4或者4以下的话
取一个比较大的值
取W等于7会发生什么情况呢
我们来看一下
假如说我们的发送窗口和接收窗口
这个时候都用的是W等于7
那么发送方会一次性的发送
7个帧过去
这7个帧它的编号是0123456
总共7个帧
这7个帧假设说
非常成功地到达了对方
对方呢也非常成功地接收到了
这7个帧
并且呢
把它交给上一层
并且移动了它的接收窗口
它的接收窗口原来是0123456
现在呢就滑动到7012345
这7个值了
也就是说它期待新窗口的那些帧
它的编号是7012345
这些编号
并且呢回发了确认回去
但是非常不幸
假如说这个确认帧
在路上遭遇到了一个雷
把它打掉了
这7个确认帧全部丢失
丢失了之后首先会导致0号帧超时
0号帧超时之后
发送方会重传0号帧
那么这个0号帧
顺利的到达了接收方
接收方收到这个帧之后
它打开一看
这个帧的序列号是等于0的
有没有落在我的接收窗口呢
它一看
它的接收窗口是7012345
正在它的接收窗口之内
所以它认为这是新的0号帧
它就把它收下来了
但事实上我们已经看到
这只是一个重传帧而已
它把它当做一个新帧收下来了
所以发生了错误
这是让协议工作失败
那么怎么解决这个问题呢
刚才我们看到发生这样的情况
实际上是新老窗口
重复了而带来的
它的第一个窗口是0123456
第二个窗口是7012345
有窗口是重合的
那么我们只要保证新老窗口不重叠
不交叠
那么就可以解决这个问题
比如说我们的W
如果取为4的话
那么第一个窗口是0123
第二个窗口是4567
它就不会再重复了
那么取成4是不是能避免刚才
碰到的那种情况呢
我们来看一下
第一个窗口发送了
0123四个帧出去
接收方正确的接收了
并且回发了确认
还移动了它的接收窗口
它的窗口从0123移动到4567
也就是说它期待
接收的下一个窗口的帧的编号
是4567
好了
假如说这四个确认帧也在路上丢了
也被一个雷打掉了
会发生什么情况呢
那么首先导致0号帧超时
0号帧超时之后重传
重传的这个O号帧
顺利地到达了接收方
接收方把它打开一看
它的帧的sequence number是等于0的
0并不在它的4567这个窗口的里面
所以它认为这是一个重传的帧
它已经收过了
所以它不要它了
你看
协议就正常的工作了
所以我们的窗口
一定不能超过二分之
最大的序列号加1
所以窗口的值
对协议工作的成败来说
影响非常的大
那么我们把这三个协议
三个滑动窗口协议
它的窗口的值总结一下
对于协议4来说
我们的发送窗口是01都行
而接收窗口呢是等于1的
对于回退n帧的协议5来说
它的接收窗口是等于1的
而发送窗口
可以在0到最大的序列号之间
对于协议6来说
它的接收窗口等于二分之
最大的序列号加1
而发送窗口通常小于接收窗口
小结一下今天的内容
批发数据的时候
其中一帧出错
可以从出错帧开始重传
也可以只重传出错那一帧
选择性重传
只重传出错那一帧
但是它需要接收方
付出更多的缓存代价
它适合出错率较高的传输环境
选择性重传的窗口数
接收窗口呢
是不能超过
最大的序列号加1的一半
而发送窗口通常是小于接收窗口
-本课程简介
--课程组织
-1.1 为什么要学习计算机网络?
-1.2 互联网络发展史
--Video
--互联网络发展史
-1.3 常用的基本概念
--Video
--常用的基本概念
-1.4 参考模型(重点)
--Video
--参考模型
-1.5 参考模型相关的概念
--Video
--数据如何传输
-1.6 本课程的组织
--Video
--课程组织
-附录1:思考题
--html
-附录2:术语中英对照表
--html
-附录3:伦敦奥运会开幕式之Tim Berners Lee
--附录说明
-第一章 概述--章节测试
-附录4:本章的无背景乐的视频
--1-4参考模型
--关于附录4的说明
-2.1 数据通信的理论基础
--Video
-2.2 有导向的传输介质
--Video
--有导向的传输介质
-2.3复用技术
--Video
--复用技术
-2.4调制技术
--Video
--调制技术
-2.5公共交换电话网络
--Video
--公共交换电话网络
-2.6物理层设备
--Video
--物理层设备
-附录1:思考题
--html
-附录2:术语中英对照表
--html
-附录3:光纤熔接
--Video
-附录4:海底光缆
--附录说明
--外部链接
-第二章 物理层--章节测试
-附录5:本章的无背景乐的视频
--2-3复用技术
--2-4调制技术
--关于附录5的说明
-3.1 数据链路层概述
--Video
--数据链路层概述
-3.2 差错处理概述
--Video
--差错处理概述
-3.3 纠1位错的海明码
--Video
--纠1位错的海明码
-3.4 检错码
--Video
--检错码
-3.5基本数据链路协议1~3
--Video
-3.6 滑动窗口协议
--Video
--滑动窗口协议
-3.7 回退n帧
--Video
--回退n帧
-3.8 选择性重传
--Video
--选择性重传
-附录1:思考题
--html
-附录2:术语中英对照表
--html
-第三章:数据链路层--章节测试
-附录3:本章的无背景乐的视频
--3-4检错码
--3-6 滑窗协议
--3-7 回退n帧
--关于附录3的说明
-4.1 MAC子层概述
--Video
--MAC子层概述
-4.2 ALOHA协议
--Video
--ALOHA协议
-4.3 CSMA协议
--Video
--CSMA协议
-4.4 以太网概述
--Video
--以太网概述
-4.5 以太网帧格式
--Video
--以太帧格式
-4.6 二层交换的基本格式
--Video
-4.7 生成树协议
--Video
--生成树协议
-4.8 虚拟局域网
--Video
--虚拟局域网
-4.9 二层设备
--Video
--二层设备
-附录1:思考题
--html
-附录2:术语中英对照表
--html
-第四章 介质访问控制子层--章节测试
-附录3:本章的无背景乐的视频
--4-9 二层设备
--关于附录3的说明
-5.1 网络层引言
--Video
--网络层引言
-5.2 IP地址
--Video
--IP地址
--子网规划实例
-5.3 子网规划
--Video
--子网规划
-5.4 IP寻址
--Video
--IP寻址
-5.5 IP分组
--Video
--IP分组
-5.6 什么是IPv6?
--Video
--什么是IPv6?
-5.7 IPv6地址
--Video
--IPv6地址
-5.8 IPv6分组
--Video
--IPv6分组
-5.9 IPv6过渡技术
--Video
--IPv6过渡技术
-5.10 路由从何而来?
--Video
--路由如何而来
-5.11 距离矢量路由选择协议
--Video
-5.12 路由信息协议RIP
--Video
--RIP
-5.13 RIP为什么衰落?
--Video
-5.14 链路状态路由选择LS
--Video
-5.15 单区域OSPF
--Video
-5.16 无类域间路由 CIDR
--Video
--CIDR
-5.17 网络地址翻译 NAT
--Video
--NAT
-5.18 互联网控制消息协议 ICMP
--Video
--ICMP
-5.19 地址解析协议 ARP
--Video
--ARP
-5.20 拥塞控制
--Video
--拥塞控制
-5.21 流量整形
--Video
--流量整形
-附录1:思考题
--html
-附录2:术语中英对照表
--html
-第五章 网络层--章节测试1
-第五章 网络层--章节测试2
-第五章主观测试题
-附录3:本章的无背景乐的视频
--5-2_IP地址
--5-3_子网规划
--5-4_IP寻址
--5-5_IP分组
--5-9过渡技术
--5-21流量整形
-6.1 传输层概述
--Video
--传输层概述
-6.2 用户数据报协议 UDP
--Video
-6.3 通信模型
--Video
--通信模型
-6.4 TCP数据段
--Video
--TCP数据段
-6.5 TCP三次握手建立连接
--Video
-6.6 TCP连接释放
--Video
--TCP连接释放
-6.7 TCP传输策略
--Video
--TCP传输策略
-6.8 TCP拥塞控制
--Video
--TCP拥塞控制
-6.9 TCP定时器等
--Video
--TCP定时器等
-附录1:思考题
--html
-附录2:术语中英对照表
--html
-第六章 传输层--章节测试
-附录3:本章的无背景乐的视频
--6-1传输层概念
--6-2UDP
--6-3通信模型
-linux
-windows
-7.1 应用层概述
--Video
--应用层概述
-7.2 域名系统 DNS 概述
--Video
-7.3 DNS之域名解析
--Video
--域名解析
-7.4 电子邮件 e-mail
--Video
-7.5 万维网 WWW
--Video
--万维网 WWW
-7.6 其它应用
--Video
--其它应用
-附录1:思考题
--html
-附录2:术语中英对照表
--html
-第七章 应用层--章节测试
-附录3: 本章无背景音乐的视频
--7-4_电子邮件
--7-6_其它应用