欢迎来到第壹文秘! | 帮助中心 分享价值,成长自我!
第壹文秘
全部分类
  • 幼儿/小学教育>
  • 中学教育>
  • 高等教育>
  • 研究生考试>
  • 外语学习>
  • 资格/认证考试>
  • 论文>
  • IT计算机>
  • 法律/法学>
  • 建筑/环境>
  • 通信/电子>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 第壹文秘 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    ARQ协议模拟实现课程设计报告.docx

    • 资源ID:392806       资源大小:235.03KB        全文页数:23页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    账号登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    快捷下载时,如果您不填写信息,系统将为您自动创建临时账号,适用于临时下载。
    如果您填写信息,用户名和密码都是您填写的【邮箱或者手机号】(系统自动生成),方便查询和重复下载。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    ARQ协议模拟实现课程设计报告.docx

    课程设计报告学院:*专业名称:软件工程课程名称:网络技术课程设计课程代码:*所在班级:*学号:*姓名:fccc*c*c课题名称:ARQ协议模拟实现任课老师:*完成时间:2023第1章试验介绍11.l试验目的1第2章协议介绍12.1停止等待协议的简洁介绍(ARQ)12.2停等协议中相关事务的介绍12.3连续ARQ协议简述22. 3.1介绍23. 3.2*i2第3章试验环境34. 1试验环境3第4章停止等待ARQ协议35. 1试验内容34.2试验步骤44.3停等协议的模拟实现44.4试验结果9第5章连续ARQ协议125.1试验内容125.2试验设计及分析125.2.1窗口机制总体设计及分析125.2.2协议选择及分析135.2.3发送方与接收方设计流程135.3程序测试18引言ARQ协议中,发送方每发送一个字符便要启动计时器,在规定时间内,若发送方未收到接收方返回的确认信息,则认为超时,需重发原字符。经过思索,我通过for循环反复读取file2文件实现了这确定时功能,而循环的次数则确定定时器的时间。此外还可利用c+语言自带的timeO函数来实现计时功能。此外,为便利读取中间结果,file2文件的内容每次都会更新,并且接受简洁的字符代表困难的字符串,这些简化都使程序更加简洁,但并未影响整个模拟功能的实现。为了更加流畅地更新、利用文件中的数据,senderO函数调用了receiver()函数,以刚好对文件数据进行接收端的相应处理,以供发送端运用。从而模拟实现整个发送接收过程。第1章试验介绍1. 1试验目的(1)驾驭停止等待协议的基本原理(2)理解数据链路层的主要功能(数据出错限制,数据重复限制,数据丢失限制等等)(3)分析简洁的协议数据单元(4)驾驭停止等待协议的运行机制(5)了解连续ARQ协议(6)驾驭滑动窗口的工作机制第2章协议介绍2. 1停止等待协议简洁介绍(ARQ):停止等待协议是数据链路层的几个协议中最基本的协议,是数据链路层各种协议的基础。此试验是基于winsock编程,是在VC+6.0的windows界面下和限制台下实现的。它接受客户机/服务器(C/S)模型。停止等待协议就是通过双方的收发数据而达到相互通信的目的。在通信时,当收方收到一个正确的数据帧后,便会向发送方发送一个确认帧ACK,表示发送的数据正确接收。当发送方收到确认帧后才能发送一个新的数据帧,这样就实现了接收方对发送方的流量限制。由于通信线路质量各方面的影响,数据帧从发送方到接收方传输的过程中可能会出现差错。为了保证数据的正确性和完整性,接收方在收到数据后,会用确定的方法对接收到的数据进行差错检验,所以接收方很简洁检测出收到的数据帧是否出现差错。当接收方发觉收到的数据出现差错时,就会向发送方发送一个否认帧NAK,表示对方发送的数据错误。发送方会依据接收方发来的信息做出相应的操作。接受这样的有效的检错机制,数据链路层可以对上面的网络层供应了牢靠的传输的服务。2. 2停等协议中相关事务的介绍帧丢失:有时,链路上的噪声干扰很严峻,或者由于其他的一些缘由,接收方收不到发送方发送过来的数据帧,这种状况称为数据帧丢失。发生数据帧丢失时,接收方自然不会向发送方发送任何应答帧。假如发送方要等收到收方的应答信息后再发送下一个数据帧,那么双方将恒久等下去,这样就出现了死锁现象。为了解决这个问题,可在发送方发送完一个数据帧后,就启动一个超时定时器。若到了超时定时器所设置的重发时间仍收不到收方的任何应答帧,则发送方就重传前面所发送的这一数据帧。假如在重传时间内收到确认信息,则将超时定时器清零并停止计时。一般的时间设置为略大于“从发完数据帧到收到确认帧所需的平均时间二帧重复:若丢失的是应答帧,则超时重发将会使接收方收到两个同样的数据帧。由于接收方无法识别重复的数据帧,因而在接收方收到的数据中出现了一种接收序号差错,称为重复帧。要解决这个问题,必需使每一个数据帧带上不同的发送序号。若接收方收到序号相同的数据帧,就表明出现了重复帧。这时接收方应当丢弃这个重复帧,同时向发送方发送一个确认帧。因为接收方这时已经知道发送方没有收到上一次发送的确认帧。大家都知道,任何一个编号系统的序号所占用的比特数应是有限的。经过一段时间,发送序号就可重复。运用序号占用的比特数越少,数据传输的额外开销就越少。对于停等协议,由于每发送一个数据帧就停止等待,用一个比特来编号就够了,也就是说序号轮番运用O和葭帧出错:数据在传输的过程中,不行能保证100%的正确传输,而错误的数据帧对于接收方来说是没有什么意义的。为了避开收到错误的数据帧,接收方在收到数据帧后,就会接受确定的机制对收到的数据帧进行校验,当校验数据正确时,会向高层传送该帧,反之,则丢弃该帧,从而对上面的网络层供应了传输的服务。2. 3连续ARQ协议简述2.1.1 介绍问退n帧(go-back-n)GBN,以及选择性重传(SeIeCtiVerePeat)ARQ,两种协议是滑动窗口技术与请求重发技术的结合,由于窗口尺寸开到足够大时,帧在线路上可以连续地流淌,因此又称其为连续ARQ协议。连续重发请求ARQ方案是指发送方可以连续发送一系列信息帧,即不用等前一帧被确认便可接着发送下一帧,效率大大提高。但在这种重发请求方案中,须要在发送方设置一个较大的缓冲存储空间(称作重发表),用以存放若干待确认的信息帧。当发送方收到对某信息帧的确认帧后,便可从重发表中将该信息帧删除。所以,连续重发请求ARQ方案的链路传输效率大大提高,但相应地须要更大的缓冲存储空间。在这一协议中,当发送站点发送完一个数据帧后,不是停下来等待应答帧,而是可以连续再发送若干个数据帧。假如在此过程中又收到了接收端发来的应答帧,那么还可以接着发送数据帧。由于削减了等待时间,整个通信的吞吐量就提高了。ARQ代表的是自动重传请求(AmoRepeatreQuest,ARQ),而GBN与选择重传都属于其中。其中BGN的接收窗口是1,且具有累计确认的特点。而选择重传没有累计确认的特点。2.1.2 特点与原理连续重发请求ARQ方案的特点如下:(1)发送方连续发送信息帧,而不必等待确认帧的返回;(2)在重发表中保存所发送的每个帧的备份;(3)重发表按先进先出(FIFO)队列规则操作;(4)接收方对每一个正确收到的信息帧返回一个确认帧,每一个确认帧包含一个惟一的序号,随相应的确认帧返回;(5)接收方保存一个接收次序表,包含最终正确收到的信息帧的序号。当发送方收到相应信息帧的确认后,从重发表中删除该信息帧的备份;(6)当发送方检测出失序的确认帧(即第N号信息帧和第N+2号信息帧的确认帧已返回,而N+1号的确认帧未返同)后,使重发未被确认的信息帧图27连续ARQ协议工作原理第3章试验环境3. 1试验环境在ViSUalstudio环境下,接受c+程序设计语言,模拟实现ARQ协议。第4章停止等待ARQ协议4. 1试验内容(1) Pl模拟发送方:首先从界面读取待发送字符(每接受一个字符的输入),保存到文件filel.txt中,并启动计时器;(2) p2模拟接收方,它从filel.txt中查找是否有新字符到来,并供应模拟界面给用户选择:1、Ack-接收该字符2、NAK-)丢弃3、无反应一导致超时将用户选择的结果记录到file2.txt中;接收的字符保存到file3.txt中;(3) PI等待接收方应答:读取file2.txt确定下面的操作:1、假如是ACK,则接着接收用户输入;2、假如是NAK,则重传该字符;3、假如超时仍没有新的ACK或NAK,则重传该字符。注:filel.txt要发送的串,file2.txt保存中间结果,file3.txt接受的串,由试验者自己生成。4.2试验步骤(1)编写receiver()函数模拟接收端的相应处理过程;(2)编写senderO函数模拟发送端相应处理过程,其中sender函数调用了receiver()函数;(3)编写主函数main()函数,调用Sender()和receiver()函数来实现整个发送接收过程,进而模拟了ARQ协议的实现。4.3停等协议的模拟实现ttinclude<iostream,h>ttinclude<stdlib.h>include<fstream.h>下面是两个函数原型voidreceiver(int,fstream&,fstream&,ofstream&);接收方voidsender(fstream&datafilel,fstreamdatafile2,ofstream&datafile3);发送方voidmain()(fstreamdatafilel,datafile2;ofstreamdatafile3;CoUt。下面起先数据的传输,留意:传输数据以“!”结束<<cndl;sender(datafilel,datafile2,datafile3);CoUt<<"数据传输结束“<<endl;)接收端voidreceiver(inti,fstream&datafilel,fstreamdatafile2,ofstream&datafile3)(charr,re;datafilel.open(,/filelz,ios:outios:in);if(!datafilel)(COUt<<”文件打开失败!"<<endl;exit(O);datafilel.seekg(i-l,ios:beg);datafilel.get(r);打开filcl,并从指定位置读取一个字符if(r!三,)if(r>=A,&&r<=JZ')若读取的字符有效,即正确接受字符(datafile3.OPeri(filc3”,ios:app);if(!datafile3)(CoUt<<”文件打开失败!,<<endl;exit(O);)datafile3<<r;将收到的字符写入文件filc3COUt<<"字符已正确接收“<<cndl;CoUt。准备发送确认信息ACKKcndl;COUt<<请输入A,并以回车结束"<<endl"/'A'代表Aelrcin>>re;datafile2.open(z,file2z,ios:out);if(!datafile2)COUt<<”文件打开失败!"<<endl;exit(O);datafilc2<<re;将确认信息写入file2)if(r<'A'Ir>'Z')读取的字符无效,即接受字符出错(CoUt<<接收字符错误。Cnd1;COUt<<准备发送信息NAK”<<endl;CoUt«请输入字符'N',并以回车结束'字代表NAK"cin>>re;datafile3.OPen("file3");if(!datafile3)CoUt文件打开失败!"<<endl;exit(O);datafilc3<<rc;返回出错信息,将'N,写入file3)datafilel.close();datafile2.close();

    注意事项

    本文(ARQ协议模拟实现课程设计报告.docx)为本站会员(p**)主动上传,第壹文秘仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知第壹文秘(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 1wenmi网站版权所有

    经营许可证编号:宁ICP备2022001189号-1

    本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。第壹文秘仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知第壹文秘网,我们立即给予删除!

    收起
    展开