- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
“十一五”国家重点图书 计算机科学与技术学科前沿丛书计算机科学与技术学科研究生系列教材(中文版) 计算机网络 高级软件编程技术 吴功宜 董大凡 王 珺 刘 乾 第10章滑动窗口协议模拟程序 概述 滑动窗口协议通常用于实现流量控制和差错控制、保证数据传输的可靠性和有效性。它既可以作为基本的数据链路层协议,也可用于传输层的TCP协议中 提纲 编程训练目的 编程训练要求 相关知识介绍 程序设计分析 扩展与提高 编程训练目的 掌握滑动窗口协议的概念、原理与基本算法。 理解3种典型的数据链路层滑动窗口协议:l位滑动窗口协议、使用退后n帧的滑动窗口协议与使用选择性重传的滑动窗口协议。 了解传输层与数据链路层滑动窗口协议的区别与联系,了解TCP滑动窗口协议的实现原理。 提纲 编程训练目的 编程训练要求 相关知识介绍 程序设计分析 扩展与提高 编程训练要求 编程实现使用选择性重传策略的滑动窗口协议模拟程序 : 所有功能应可视,具有简单的界面。 由一台PC向另一台PC发送数据包,界面中应动态显示数据帧的发送和接收情况,以表明协议模拟程序的正确运作过程。 当发送方速度过快或帧丢失时,接收方应发送消息,要求暂停或者重传。接收方应按序向网络层提交接收到的帧。 发送方应可设置发送速度、滑动窗口数目、停止等待等的超时时间间隔以及发送类型(用于模拟信道错误如正常发送,帧校验错,帧丢失)等参数。 程序运行的参考界面(发送端) 程序运行的参考界面(接收端) 提纲 编程训练目的 编程训练要求 相关知识介绍 程序设计分析 扩展与提高 滑动窗口协议原理 滑动窗口协议的流量控制 发送方窗口内的序列号代表已经发送但尚未确认的帧,一旦窗口达到最大值,发送方的数据链路层必须强行关闭网络层直到有一帧缓冲区可用为止。 接收方数据链路层的窗口对应于允许接收的帧。任何落在接收窗口之外的帧都不加说明地丢弃。 滑动窗口协议原理(续) 滑动窗口协议的差错控制 使用后退n帧技术 接收端丢弃出错帧后所有的帧,而不管这些帧是正确的还是出错的。 对应于接收窗口的尺寸为1的情况。 如果信道错误率高,将会浪费大量的带宽。 选择性重传策略 信道出错时,接收方将存储所有跟在坏帧之后的正确帧,并只要求发送方重传出错的帧。 对应于接收窗口大于1的情况 两种差错控制策略的收发过程比较 提纲 编程训练目的 编程训练要求 相关知识介绍 程序设计分析 扩展与提高 协议模拟过程分析(1) 关于发送端网络层数据流量的模拟。 为了使协议模拟尽量简化,事先做两个假设: 假设1:发送方的网络层总有数据需要发送; 假设2:接收方没有反向流量,因此不能捎带确认,每次等待辅助定时器超时之后发送一个单独的确认帧(ACK或NAK)。 可以在发送方设置一个发送定时器模拟发送端网络层数据流量。 协议模拟过程分析(2) 关于接收方接收速率的模拟。 在接收方设置一个接收定时器,速率可设定。 使用令牌桶算法调节数据接收的平均速率。 令牌桶算法既可保证在接收窗口允许范围内产生短暂的数据突发流量,同时又在较长时间范围内控制接收速率的大小。 协议模拟过程分析(3) 模拟通信信道出现的状况。 实验在以太网环境下使用UDP协议通信,错误几乎不会发生,因此需要人工模拟信道出错和丢包情况。 在数据帧内增加一个错误类型字段,指明该数据帧是正常到达,还是在信道中出错或丢失 。 可以使用伪随机函数的方法为错误类型赋值,也可以手工设定某一帧的出错类型。 协议模拟过程分析(4) 协议中一些值及它们之间的关系。 帧序列号用n位表示,则序列号范围为0~2n-1。 用MAX_SEQ表示帧的最大序列号,则不同序列号的个数为MAX_SEQ+1。 发送方窗口的最大尺寸不应超过MAX_SEQ。 接收方窗口的尺寸应该不超过序列号范围的一半,即(MAX_SEQ+1)/ 2。 发送方所需缓冲区和重发定时器的数量等于发送窗口的尺寸而不是序列号的范围。 接收方所需缓冲区的数量等于接收窗口的尺寸,辅助定时器只需1个。 辅助定时器的超时间隔应该明显短于与数据帧相关联的重发定时器的超时间隔。 协议模拟过程分析(5) 对否定的确认帧(nak)的理解。 当接收方怀疑出现了错误时,它就给发送方送回一个否定的确认帧NAK。 有两种情况值得怀疑:接收到一个受损的帧,或者到达了一个并非所期待的帧。 否定的确认帧(nak)也具有确认帧(ack)的功能,即它可以对其所携带重传序列号之前的帧进行确认。 程序流程说明 Sender和Receiver之间使用UDP协议模拟通信过程 发送端需要模拟的网络事
文档评论(0)