资源描述
实验四 滑动窗口协议
1、 实验目的
(1)掌握滑动窗口协议的概念、原理与基本算法。
(2)理解3种典型的数据链路层滑动窗口协议:l位滑动窗口协议、使用退后n帧的滑
动窗口协议与使用选择性重传的滑动窗口协议。
(3)了解传输层与数据链路层滑动窗口协议的区别与联系,了解TCP滑动窗口协议的实
现原理。
2、实验要求
编程实现使用选择性重传策略的滑动窗口协议模拟程序 :
(1) 所有功能应可视,具有简单的界面。
(2)由一台PC向另一台PC发送数据包,界面中应动态显示数据帧的发送和接收情况,
以表明协议模拟程序的正确运作过程。
(3)当发送方速度过快或帧丢失时,接收方应发送消息,要求暂停或者重传。接收方
应按序向网络层提交接收到的帧。
(4)发送方应可设置发送速度、滑动窗口数目、停止等待等的超时时间间隔以及发送
类型(用于模拟信道错误如正常发送,帧校验错,帧丢失)等参数。
3、实验环境
微机一台、Visual Studio 6.0集成开发环境。
4、实验相关知识
滑动窗口协议的流量控制:
发送方窗口内的序列号代表已经发送但尚未确认的帧,一旦窗口达到最大值,发送方的数据链路层必须强行关闭网络层直到有一帧缓冲区可用为止。接收方数据链路层的窗口对应于允许接收的帧。任何落在接收窗口之外的帧都不加说明地丢弃。
滑动窗口协议的差错控制:
使用后退n帧技术: 接收端丢弃出错帧后所有的帧,而不管这些帧是正确的还是出错的;对应于接收窗口的尺寸为1的情况;如果信道错误率高,将会浪费大量的带宽。
选择性重传策略 :信道出错时,接收方将存储所有跟在坏帧之后的正确帧,并只要求发送方重传出错的帧;对应于接收窗口大于1的情况 。
两种差错控制策略的收发过程比较:
5 系统实施
5.1程序的主要流程图
5.2主要过程
关于发送端网络层数据流量的模拟:
为了使协议模拟尽量简化,事先做两个假设:
假设1:发送方的网络层总有数据需要发送;
假设2:接收方没有反向流量,因此不能捎带确认,每次等待辅助定时器超
时之后发送一个单独的确认帧(ACK或NAK)。
可以在发送方设置一个发送定时器模拟发送端网络层数据流量。
关于接收方接收速率的模拟:
在接收方设置一个接收定时器,速率可设定。
使用令牌桶算法调节数据接收的平均速率。
令牌桶算法既可保证在接收窗口允许范围内产生短暂的数据突发流量,同时又
在较长时间范围内控制接收速率的大小。
Sender和Receiver之间使用UDP协议模拟通信过程:
发送端需要模拟的网络事件:
network_layer_ready事件。
frame_arrival事件。
timeout事件。
接收端需要模拟的网络事件:
frame_arrival事件。
cksum_error事件。
ack_timeout事件。
5.3实验截图
发送端:
接收端:
6、 实验心得
通过本次实验掌握了滑动窗口协议的概念、原理与基本算法,理解了3种典型的
数据链路层滑动窗口协议,了解了传输层与数据链路层滑动窗口协议的区别与联系
以及TCP滑动窗口协议的实现原理,为以后的学习做了个铺垫。
展开阅读全文