数据链路层滑动窗口协议的设计和实现样本

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数据链路层滑动窗口协议的设计和实现样本数据链路层滑动窗口协议的设计和实现本文档所提供的信息仅供参考之用,不能作为科学依据,请勿模仿。

文档如有不当之处,请联系本人或网站删除。

数据链路层滑动窗口协议的设计与实现实验报告

一、实验任务及内容利用所学数据链路层原理,设计一个滑动窗口协议并在仿真环境下编程实现有噪音信道环境下的可靠的双工通信。

信道模型为8000bps全双工卫星信道,信道传播时延270毫秒,信道误码率为10--55,信道提供字节流传输服务,网络层分组长度在240~256字节范围。

(1)实现有噪音信道环境下的无差错传输。

(2)运行程序并检查在信道没有误码和存在误码两种情况下的信道利用率。

(3)提高滑动窗口协议信道利用率,根据信道实际情况合理地为协议配置工作参数,包括滑动窗口的大小和重传定时器时限以及ACK搭载定时器的时限。

实验环境Windows7环境PC,机,Microsoft VisualC++集成化开发环境

二、协议设计协议的分层结构及层服务::包括物理层,数据链路层和网络层三层。

该实验主要设计数据链路层协议,为实现有噪声环境下高信道利用率传输,我们采用回本文档所提供的信息仅供参考之用,不能作为科学依据,请勿模仿。

文档如有不当之处,请联系本人或网站删除。

退n n帧(go backn)技术的协议。

发送方窗口大小为31;通过捎带确认来完成可靠的数据通信;出现信道误码导致收帧出错时,接受方丢弃所有后续帧,待定时器超时后发送方重发。

该层提供服务::从网络层接受要发送的数据包,将之分拆成数据帧;按一定的成帧方案完成分帧,加校验码,加ack等操作;进行适当的流量判断和拥塞控制;启动定时器将之传递给物理层。

数据帧经信道传送给接受方,接受方数据链路层执行与成帧相逆的操作;处理ack信息,终止定时器(或启动ack定时器,ack成帧传送);判断是否为欲接受数据,数据是否出错,提交给网络层。

退回N N步工作原理示意图::本文档所提供的信息仅供参考之用,不能作为科学依据,请勿模仿。

文档如有不当之处,请联系本人或网站删除。

实验所形成帧((成帧方案))::DATA

Framen+=========+========+========+===============+======== +|KIND

(1)|ACK

(1)|SEQ

(1)|DATA(240~256)|CRC

(4)||+=========+========+========+===============+========+ ACK Frame+=========+========+========+|KIND

(1)|ACK

(1)|CRC

(4)|+=========+========+========+NAK

Frame+=========+========+========+|KIND

(1)|ACK

(1)|CRC

(4)|+=========+========+========+本文档所提供的信息仅供

参考之用,不能作为科学依据,请勿模仿。

文档如有不当之处,请联系本人或网站删除。

CRC校验和的多项式定义::本次实验采用的CRC校验方案为

CRC--32,以太网校验和生成多项式相同。

生成多项式为::x x32+x26+x23+x22+x16+x12+x11+x10++x

x88+x77+x55+x44+x22+x11+1校验和附加在数据帧,尾部,接受方用带校验和的数据来逻辑除以生成多项式,余数为零则数据无误码,反之有误码等待发送方重传。

可靠通信和误码控制方案::通过捎带确认来完成可靠的数据通信;出现信道误码导致收帧出错时,接受方丢弃所有后续帧,此时发送方长久接受不到确认信息,引发定时器超时后发送方重发;接受方无数

据传送导致发送方无法收到捎带确认时,接受方确认定时器超时,构造一确认帧单独传送。

三、软件设计给出程序的数据结构,模块之间的调用关系和功能,程序流程。

本次实验我们对go--back--N N协议进行了编写,描述如下::本文档所提供的信息仅供参考之用,不能作为科学依据,请勿模仿。

文档如有不当之处,请联系本人或网站删除。

11..数据结构::typedefenum{false,true}boolean;//bloolean typetypedef unsigned char seq_nr;//sequence orack numberstypedef unsigned char packet[PKT_LEN];//用数组存放数据/*FRAME kind*/#define Data1#define Ack2#define Nak3static intphl_ready:://物理层状态next_frame_to_send;//M MAAX X__S SEEQ Q本文档所提供的信息仅供参考之用,不能作为科学依据,请勿模仿。

文档如有不当之处,请联系本人或网站删除。

>>11;u usse edd f fo orr oou uttb boou unnd d本文档所提供的信息仅供参考之用,不能作为科学依据,请勿模仿。

文档如有不当之处,请联系本人或网站删除。

s sttr reea amm,a annd di inni itti ia an niiz zee本文档所提供的信息仅供参考之用,不能作为科学依据,请勿模仿。

文档如有不当之处,请联系本人或网站删除。

n neex xtt ffr raam mee ggo oiin ngg oou utt本文档所提供的信息仅供参考之用,不能作为科学依据,请勿模仿。

文档如有不当之处,请联系本人或网站删除。

ack_expected;//oldest frameas yetunacknowledged,and initianni izene本文档所提供的信息仅供参考之用,不能作为科学依据,请勿模仿。

文档如有不当之处,请联系本人或网站删除。

xt ackexpected inboundframe_expected;//next frame expected on本文档所提供的信息仅供参考之用,不能作为科学依据,请勿模仿。

文档如有不当之处,请联系本人或网站删除。

inbound stream,and initializenumber offrameex本文档所提供的信息仅供参考之用,不能作为科学依据,请勿模仿。

文档如有不当之处,请联系本人或网站删除。

pected inboundbuffer[MAX_SEQ+1];//bu ffersfor theoutbound streamnbuffered;//output bufferscurrently inuse,and initt iallyno packetsare bufferedbufferLen[MAX_SEQ+1]//bufferLen

存储每个r buffer中数据的有效长度typedefstruc t{//帧结构unsigned charkind;seq_nrack;seq_nrseq;packetinfo;本文档所提供的信息仅供参考之用,不能作为科学依据,请勿模仿。

文档如有不当之处,请联系本人或网站删除。

相关文档
最新文档