滑动窗口实验报告

滑动窗口实验报告

ID:39696114

大小:21.25 KB

页数:6页

时间:2019-07-09

滑动窗口实验报告_第1页
滑动窗口实验报告_第2页
滑动窗口实验报告_第3页
滑动窗口实验报告_第4页
滑动窗口实验报告_第5页
资源描述:

《滑动窗口实验报告》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、滑动窗口实验报告(含源码)一、实验目的1.实现一个数据链路层协议的数据传送部分。2.更好地理解数据链路层协议中的“滑动窗口”技术的基本工作原理。3.掌握计算机网络协议的基本实现技术。二、实验要求在一个数据链路层的模拟实现环境中,用C语言实现下两个数据链路层协议。1.1比特滑动窗口协议2.回退N帧滑动窗口协议三、实验内容充分理解滑动窗口协议,根据滑动窗口协议,模拟滑动窗口协议中发送端的功能,对系统发送的帧进行缓存并加入窗口等待确认,并在超时或者错误时对部分帧进行重传。编写停等及退回N滑动窗口协议函数,响应系统的发送请求、接收帧消息以及超时消息,并根据滑动窗

2、口协议进行相应处理。四、源代码及注释#include"sysinclude.h"#includeusingnamespacestd;externvoidSendFRAMEPacket(unsignedchar*pData,unsignedintlen);//1比特滑动窗口#defineWINDOW_SIZE_STOP_WAIT1//回退N帧协议#defineWINDOW_SIZE_BACK_N_FRAME4//缓存区大小#defineBUFFER_SIZE50typedefenum{DATA,ACK,NAK}Frame_kind;//

3、帧头typedefstructFrame_head{Frame_kindkind;unsignedintseq;unsignedintack;unsignedchardata[100];};//帧typedefstructFrame{Frame_headhead;unsignedintsize;};//缓存区Framebuffer[BUFFER_SIZE];//当前希望确认的帧,最近缓存的帧,下一次要发送的帧unsignedintexpect_frame=0,last_buffered_frame=0,next_frame=0;/**停等协议测试函数*/

4、intstud_slide_window_stop_and_wait(char*pBuffer,intbufferSize,UINT8messageType){Frame_head*p=(Frame_head*)pBuffer;//unsignedintframeNum=ntohl(*(unsignedint*)pBuffer);switch(messageType){//网络层要发送一帧数据时caseMSG_TYPE_SEND:{//缓存当前要发送的帧buffer[last_buffered_frame%BUFFER_SIZE].head=*p;buf

5、fer[last_buffered_frame%BUFFER_SIZE].size=bufferSize;//更新下次缓存的位置++last_buffered_frame;//如果当前有空闲的窗口可以用if(last_buffered_frame-expect_frame<=WINDOW_SIZE_STOP_WAIT){//发送缓存帧SendFRAMEPacket((unsignedchar*)pBuffer,(unsignedint)bufferSize);//窗口上界加1++next_frame;}return0;}//物理层收到一帧数据时caseM

6、SG_TYPE_RECEIVE:{//解码确认信号unsignedintack=ntohl(p->ack);//试探for(inti=expect_frame;i=exp_ack){//期望帧+1++expect_frame;//如果有缓存帧没发出if(next_frame

7、endFRAMEPacket((unsignedchar*)(&buffer[next_frame%BUFFER_SIZE]),buffer[next_frame%BUFFER_SIZE].size);//窗口上界+1++next_frame;}//否则,无法继续发送帧,退出。等待下次再更新期望确认帧elsebreak;}}return0;}//超时caseMSG_TYPE_TIMEOUT:{//超时重发,把当前窗口内未确认的帧重发一遍for(inti=expect_frame;intohl(

8、buffer[i%BUFFER_SIZE].head.seq))continue

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。