- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
停止等待协议实验指导
停止等待协议 1. 实验目的 1 2. 协议介绍 1 2.1?停止等待协议的简单介绍(STOP?AND?WAIT): 1 2.2?帧的结构: 1 2.3?停等协议中相关事件的介绍 2 3. 实验内容和步骤 3 3.1步骤: 3 3.2基本内容: 4 3.3扩展内容: 4 4. 实验要求 4 5. 程序说明 5 5.1主要的数据结构介绍: 5 5.2?主要函数介绍: 6 5.3?重点和难点介绍: 7 6. 参考资料 9 ? 1. 实验目的 了解winsock编程的基本流程 掌握停止等待协议的基本原理 ( 理解数据链路层的主要功能(数据出错控制,数据重复控制,数据丢失控制等等) 分析简单的协议数据单元 掌握停止等待协议的运行机制 ( 了解停止等待协议的定量分析 2. 协议介绍 2.1?停止等待协议的简单介绍(stop?and?wait):? 停止等待协议是数据链路层的几个协议中最简单的协议,是数据链路层各种协议的基础。此实验是基于winsock编程,是在VC++6.0的MFC界面下和控制台下实现的。它采用客户机/服务器(C/S)模型,即发送数据的一端为客户端,接收数据的一端为服务器端。停止等待协议就是通过双方的收发数据而达到相互通信的目的。 当收方收到一个正确的数据帧后,便会向发方发送一个确认帧ACK,表示发送的数据正确接收。当发方收到确认帧后才能发送一个新的数据帧,这样就实现了接收方对发送方的流量控制。 由于通信线路质量各方面的影响,数据帧从发送方到接收方传输的过程中可能会出现差错。为了保证数据的正确性和完整性,接收方在收到数据后,会用一定的方法对接收到的数据进行差错检验,所以接收方很容易检测出收到的数据帧是否出现差错。当接收方发现收到的数据出现差错时,就会向发送方发送一个否认帧NAK,表示对方发送的数据错误。发送方会根据接收方发来的信息做出相应的操作。采用这样的有效的检错机制,数据链路层可以对上面的网络层提供了可靠的传输的服务。 2.2?帧的结构: ??????? 帧的类型 帧的序号 帧的确认号 数据信息(可变) 校验位 帧的结构 帧的类型(frame_kind): 分为数据帧(data_frame),确认帧(ack_frame)和否认帧(nak_frame)三种。 发送方向接收方发送数据,是以帧为单位的,就称为数据帧。它的数据信息是可变的,但最佳的帧长为1500个字节。 接收方接收数据后,会对收到的数据帧进行差错校验,当数据正确时,就会向发送方发送一个确认帧,以表示发送方发送的数据正确接收了,反之,就会向发送方发送一个否认帧,并把这个出错的数据帧丢弃。 帧的序号(seq): 由于采用的是单工通信,帧的结构中用的控制域也很少,这个域会随着帧类型的不同而不同: 对数据帧来说:序号(seq)表示的是发送端发送的帧的序号。 对确认帧来说:序号(seq)表示的是接收方希望接收到的帧的序号,它表示seq以前的各帧都已经正确接收,希望收到序号为seq的帧。 对否认帧来说:序号(seq)也是表示接收方希望收到的数据帧的序号,表示接收方已经收到序号为seq的帧,但是这个帧出现错误,希望发送方重新发送该数据帧。 停止等待协议采用的是单工通信,接收端向发送端发送的确认帧和否认帧中没有数据信息,它们的数据域为空。由于是单工通信,发送方只发送数据,所以发送方帧的“帧的确认号”中并没有包含任何的确认信息。 2.3?停等协议中相关事件的介绍 帧丢失: 有时,链路上的干扰很严重,或者由于其他的一些原因,接收方收不到发送方发送过来的数据帧,这种情况称为数据帧丢失。发生数据帧丢失时,接收方自然不会向发送方发送任何应答帧。如果发送方要等收到收方的应答信息后再发送下一个数据帧,那么双方将永远等下去,这样就出现了死锁现象。 为了解决这个问题,可在发送方发送完一个数据帧后,就启动一个超时定时器。若到了超时定时器所设置的重发时间tout仍收不到收方的任何应答帧,发送方的计时器发生超时,则发送方就重传前面所发送的这一数据帧。如果在重传时间tout内收到确认信息,则将超时定时器清零并停止计时。tout一般的时间设置为略大于“从发完数据帧到收到确认帧所需的平均时间”。
帧重复: 若丢失的是应答帧,则超时重发将会使接收方收到两个同样的数据帧。由于接收方无法识别重复的数据帧,因而在接收方收到的数据中出现了一种接收序号差错,称为重复帧。 要解决这个问题,必须使每一个数据帧带上不同的发送序号。若接收方收到序号相同的数据帧,就表明出现了重复帧。这时接收方应当丢弃这个重复帧。应该注意到,虽然接收方收到了重复的帧,但它还必须向发送方发送一个确认帧,因为接收方这
文档评论(0)