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

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

文档评论(0)

l521314z + 关注
实名认证
内容提供者

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

认证主体李**

1亿VIP精品文档

相关文档

相关课程推荐