- 1、本文档共8页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
编程实现可靠数据传输原理GO-BACK-N实验姓名:吴杰 学号级:计科1306实验目的运用各种变成语言实现基于Go-Back-N的可靠数据传输软件实验意义通过本实验,使学生能够对可靠数据传输原理有进一步的理解和掌握。实验步骤利用java编程实现基于Go-Back-N的可靠数据传输软件。运行程序,程序将模拟实际网络中的可靠数据传输结果分析通过本次实验,了解了GBN传输协议的相关知识。实验代码通过查阅资料很容易理 解,但是怎么实现这个程序对我来说是个问题。附件JAVA语言代码Sender类package GBN;import java.util.Timer;publicclass Sender extends Thread{publicintwindowsize=3; //发送方窗口长度设为3public String[] data={data1,data2,data3,data4,data5,data6,data7}; //模拟七个数据包publicintsign[]={0,1,2,3,4,5,6};//为7个数据包标号publicintlocalack=-1;//保存最近收到的ACKpublic Timers litime=null;//定时器(这里定为2秒)publicintswitches=0;//超时标志,1为超时publicintwindowsign[];//当前窗口内待发的数据分组的序号publicintacksign=0; //为0表示收到正确ACK,为1表示收到错误的ACK,必须重发!public Sender(){windowsign=newint[windowsize]; //给窗口分配指定大小的空间for(inti=0;i3;i++)windowsign[i]=sign[i];//窗口初始化时存放前3个序号}publicvoid run(){System.out.println(发送方开始发送分组数据!);}publicvoid getack(intack){System.out.println(发送方收到了ACK,序号为+ack+并且开始加以确认!);if(ack!=localack+1){System.out.println(经验证,这不是发送方正期待的ACK,立刻重发序号为+(localack+1)+的数据分组!);acksign=1;}else{localack=ack;//表示正确确认了ACKacksign=0;}}publicvoid time(){switches=0;//标志初始化为0litime=new Timers();Timer limit=new Timer();limit.schedule(litime, 0,100);}}Receiver类package GBN;publicclass Receiver extends Thread{publicintlastdata;public Sender sender;publicvoid run(Sender s){sender=s;System.out.println(接收方开始接收分组数据!);}void receive(intdata, Sender s){sender=s;//发送方的参数传递System.out.println(接收方收到了序号为+data+的分组!);if(data!=0){if(data==lastdata+1){//数据包序号校验,若连续则是正确/所期待的System.out.println(该数据分组正是接收方所期待的,接收方接受了它并准备回送对应的ACK!);lastdata=data;//更新本地保存的数据包序号变量respond(lastdata);//回送该正确接收的数据包对应的ACK}else{System.out.println(该数据分组不是接收方所期待的,该分组将被丢弃,接收方准备回送最后接受的数据分组对应的ACK!);respond(lastdata);//若不是所期待的数据包则丢弃并且重发上一次的ACK}}else{System.out.println(该数据分组正是接收方所期待的,接收方接受了它并准备回送对应的ACK!);lastdata=data;respond(lastdata);//首次接收数据包并且回送ACK}}void respond(intack){//回送指定序号的ACKif(sender.litime.limit20){//判断是否超时
您可能关注的文档
- 综合实训报告周报教程.doc
- 综合实验数值计算教程.doc
- 综合布线数据中心统筹设计技术教程.doc
- 2015年兰州新增商品房供应数据要点.docx
- 2015年公务员初任培训班讲义-20150329要点.ppt
- 综合性百问百答教程.doc
- 综合弱电系统免接地网防雷设计方案教程.doc
- 2015年兴国县脊灰疫苗查漏补种活动方案(乡级)要点.doc
- 2015年内审抽查项目问题汇集要点.doc
- 综合楼施工技术交底教程.doc
- 实施指南《GB_T41922-2022舞台装备故障数据传输接口和通讯协议规范》.docx
- 新解读《GB_T 6730.65-2009铁矿石 全铁含量的测定 三氯化钛还原重铬酸钾滴定法(常规方法)》必威体育精装版解读.docx
- 新解读《GB_T 33985 - 2017电工产品标准中包括安全方面的导则 引入风险评估的因素》必威体育精装版解读.docx
- 新解读《GB_T 34020.2-2017双层卷焊钢管 第2部分:汽车管路系统用管》必威体育精装版解读.docx
- 实施指南《GB_T3903.32-2022鞋类内底试验方法缝合撕破力》.docx
- 实施指南《GB_T13747.10-2022锆及锆合金化学分析方法第10部分:钨含量的测定硫氰酸盐分光光度法和电感耦合等离子体原子发射光谱法》.docx
- 实施指南《GB_T21109.1-2022过程工业领域安全仪表系统的功能安全第1部分:框架、定义、系统、硬件和应用编程要求》.docx
- 实施指南《GB_T41784-2022信息技术实时定位视觉定位系统数据接口》.docx
- 实施指南《GB_T41855-2022小型游乐设施转椅》.docx
- 实施指南《GB_T41882 - 2022增材制造用铜及铜合金粉》.docx
文档评论(0)