云南大学光线通信实验报告.docx
文本预览下载声明
云南大学光线通信实验报告
实验六、传输层可靠传输协议GBN编程实验报告 序号:姓名:学号:成绩指导老师: 一、实验目的: 1、通过编写实现一个简单可靠的数据传输协议GBN的发送和接收代码,模拟可靠数据传输 2、理解TCP协议可靠传输的差错检测、重传、累计确认、定时器的可靠传输策略。 二、实验指导: 参考教材。 动画演示: 三、实验要求: 编程实现一个GBN传输协议的发送方和接收方两程序,采用编程语言不限,要求能将发送――接收流程以及处理方法表现出来. 1.实验流程图如下: 2.实验截图与代码如下: 截图: 代码及注释: 一、 #pragmaonce #include //基础功能模块的数据结构声明 #defineBIDIRECTIONAL1/*changeto1ifyouredoingextracreditandwritearoutinecalledB_output*/ /*amsgisthedataunitpassedfromlayer5(teacherscode)tolayer4(studentscode).Itcontainsthedata(characters)tobedeliveredtolayer5viathestudentstransportlevelprotocolentities.*/structmsg {chardata[20]; }; /*apacketisthedataunitpassedfromlayer4(studentscode)tolayer3(teacherscode).Notethepre-definedpacketstructure,whichallstudentsmustfollow.*/ structpkt { intseqnum; intacknum; intchecksum; charpayload[20]; }; #defineWINDOWSIZE8 #defineMAXBUFSIZE50 #defineRTT #defineNOTUSED0 #defineNACK-1 #defineTRUE1 #defineFALSE0 #defineA0 #defineB1 //网络仿真部分数据结构声明*********************************************************** structevent { floatevtime;/*eventtime*/ intevtype;/*eventtypecode*/ inteventity;/*entitywhereeventoccurs*/ structpkt*pktptr;/*ptrtopacket(ifany)assocw/thisevent*/structevent*prev; structevent*next; }; /*possibleevents:*/ #defineTIMER_INTERRUPT0 #defineFROM_LAYER51 #defineFROM_LAYER32 #defineOFF0 #defineON1 //基础功能模块的函数声明*******************************************************************voidComputeChecksum(structpkt*packet);//计算校验和 intCheckCorrupted(structpktpacket);//检查数据是否出错 voidA_output(structmsgmessage);//A端向外发送数据 voidA_input(structpktpacket);//A端接收数据 voidA_timerinterrupt();//A计时器超时 voidA_init();//A端初始化 voidB_output(structmsgmessage); voidB_input(structpktpacket); voidB_timerinterrupt(); voidB_init(); //网络仿真部分的函数声明************************************************** voidinit();//初始化仿真器 floatjimsrand();//随机数发生器[0,1] //处理事件列表部分的函数声明*************************
显示全部