滑动窗口协议实验报告.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据链路层滑动窗口协议实验报告 1 实验任务 对实际系统中的协议分层和协议软件的设计与实现有基本的认识。 2实验内容 利用所学数据链路层原理,自己设计一个滑动窗口协议并在仿真环境下编程实现有噪音信道环境下的 可靠的双工通信。信道模型为 8000bps 全双工卫星信道,信道传播时延 270 毫秒,信道误码率为 10-5,信道提供字节流传输服务,网络层分组长度在240~256字节范围。 通过该实验,进一步巩固和深刻理解数据链路层的字节填充方式的成帧技术,误码检测的 CRC 校验技术,以及滑动窗口的工作机理。滑动窗口机制的两个主要目标:(1) 实现有噪音信道环境下的无差错传输; (2)充分利用传输信道的带宽。在程序能够稳定运行并成功实现第一个目标之后,运行程序并检查在信道没有误码和存在误码两种情况下的信道利用率。为实现第二个目标,提高滑动窗口协议信道利用率,需要根据信道实际情况合理地为协议配置工作参数,包括滑动窗口的大小和重传定时器时限以及 ACK 搭载定时器的时限。这些参数的设计,需要充分理解滑动窗口协议的工作原理并利用所学的理论知识,经过认真的推算,计算出最优取值,并通过程序的运行进行验证。 对实际系统中的协议分层和协议软件的设计与实现有基本的认识。 3编程环境 利用仿真环境下所提供的物理层服务和定时器机制为网络层提供服务。 8.1 程序的总体结构 设数据链路层通信的两个站点分别为站点 A和站点 B,仿真环境利用WindowsXP环境下的 TCP协议和Socket客户端/服务器机制构建两个站点之间的通信,其中,站点 A为服务器端,站点 B为客户端。编译、链接之后最终生成的可执行程序(.exe文件)为字符界面命令行程序(不是图形界面程序) 。可执行程序文件仅有一份,设为 datalink.exe,在 WindowsXP 的两个 DOS 窗口中使用不同的命令行参数启动两个进程,分别仿真站点A和站点B。 8.2 实验环境所提供的文件和编译运行方法 实验环境使用Visual C++ 6.0系统 datalink.dsw, datalink.dsp: Microsoft VC6.0的工程文件,包括Win32 Debug和Win32 Release两种配置。 protocol.h:库函数中包括的函数原型以及相关的宏定义,调用库函数的 C语言源程序应当#include此文件。 datalink.c:应当由同学完成的数据链路层程序文件。许多同学C语言源程序书写格式凌乱,请参阅“附录一 源程序书写格式要求” 。 Debug/protocol.lib:Win32 Debug配置所需要的库文件。 Release/protocol.lib: Win32 Release配置所需要的库文件。 GoBackN.exe:使用搭载ACK 技术的 Go-Back-N 协议的一种参考实现,可以直接运行以了解本次实验应达到的目的。 Selective.exe:使用选择重传协议的一种参考实现。 4 协议设计 按照协议分层的要求,描述所设计的协议,协议的设计应独立于协议实现,并且与上下层协议相对独立。协议描述: 设计该协议的目的,基本原理 以教材上的Protocol 6 (Selective Repeat)选择重传协议为原型,设计了此次的通讯协议,发送和接收方都维持一个窗口,从窗口中接收数据包。接收到的数据包被缓存起来,再按正确的顺序接收完成后,呈交给网路层。 成帧方案,帧边界和转义字符的定义及转义方法 以网路层上的一个数据包为一帧,将帧打上边界,加入控制讯息后,用物理层按比特发送。帧的边界以FLAG开头和结尾,若帧信息中包含FLAG,以转义字符ESC转换。 帧中各个字段的定义和编码,计算CRC校验和的多项式定义 帧中的第一比特为开头FLAG,第二比特是帧的类型,共定义了{data,ack,nak} frame_kind三种类型,用枚举常量表述,第三比特是顺序编码,用于确定到达帧的顺序,第四比特是ACK捎带确认讯息,记录了当前已收到帧的确认情况,这是数据帧的头部。若为数据帧,从第五比特开始为网路层的数据,到第n+HEADLENTH比特网路层包裹信息结束后,接上4比特的CRC校验讯息,后有一结束字符FLAG表明该帧结束,此为帧的定义编码。 其中的CRC校验数据由函数crc32()产生,函数crc32()返回一个32位整数为数据生成CRC-32校验和,并且把这 32比特校验和附在数据字节之后。 协议工作时两个站点之间信息交换的过程控制,尤其是发生误码条件下的控制方案 协议工作时,两个站点通过互发数据包交换数据,而控制讯息则稍带在数据讯息中传递,当遇到超时情况时,则主动发送空数据包以提供讯息。 当出现帧丢失时,如收到帧的序号有跳跃,或者

文档评论(0)

bhl0572 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档