exp1_滑动窗口协议_实验报告.docx

exp1_滑动窗口协议_实验报告.docx

ID:31830668

大小:63.50 KB

页数:12页

时间:2019-01-20

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

《exp1_滑动窗口协议_实验报告.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Exp1滑动窗口协议实验报告【实验目标】l理解和掌握“滑动窗口”技术。l基于计算机网络实验系统NetRiver进行。lNetRiver系统提供了各实验的上下文和接口函数,利用C/C++编程语言实现典型协议的核心部分。l使用NetRiver系统完成程序代码的编译、调试和测试,验证协议实现的正确性。【实验原理】1-bit滑动窗口协议1-bit滑动窗口协议中,需要保证发送窗口大小不超过1。我们用ack_expected表示发送窗口下界,即希望得到确认的帧号;用window_size表示当前发送窗口的大小。当有事件到达时,根据事件的类型进行相应处理:

2、l超时事件:此时pBuffer指向的UINT32类型存储的是主机序的序列号seq,将seq与当前窗口区间[ack_expected,ack_expected+windoe_size)进行比较,从seq开始连续进行发送。l网络层发送事件:此时网络层想要发送一个新帧,pBuffer指向的是网络层准备好的帧,我们将该帧放入缓冲队列,并在发送窗口未满时进行1次发送。l帧到达事件:此时我们收到了一个帧,通过ntohl将其确认号转化成主机序ack,然后对比ack是否等于ack_expected,若是则发送窗口下界加1,此时若还有帧在缓冲区则尝试进行1次发

3、送,发送窗口上界加1。回退n帧滑动窗口协议回退n帧滑动窗口协议和1-bit滑动窗口协议相比,主要的区别在于窗口大小的不同,以及处理超时事件时,应从超时的帧开始进行连续发送。其他事件的处理则没有不同。【实验中遇到的问题】起始编号实验中帧号从1开始编号,而不是通常认为的0。静态变量由于两个函数将被分别连续调用,故不适合使用全局变量,否则将出现未初始化的现象。这里我使用了函数内的静态变量来保证合适的初始值。实验系统不稳定实验过程中挺经常遇到服务器超时的现象,而且有时同一个程序运行两次也会有不同的结果。一个经验性的做法是在程序中增加一些cout语句,

4、实践上能够保证结果正确,但具体原因尚不清楚。【源代码】#include"sysinclude.h"#includeusingnamespacestd;externvoidSendFRAMEPacket(unsignedchar*pData,unsignedintlen);#defineWINDOW_SIZE_STOP_WAIT1#defineWINDOW_SIZE_BACK_N_FRAME4//帧类型typedefenum{data,ack,nak}frame_kind;//帧头typedefstructframe_head{f

5、rame_kindkind;//帧类型unsignedintseq;//序号unsignedintack;//确认号unsignedchardata[100];//数据};//完整帧typedefstructframe{frame_headhead;//帧头unsignedintsize;//数据的大小};//队列元素typedefstructstore_elm{frame*pframe;//帧头unsignedintlen;//数据长度};/**停等协议测试函数*/intstud_slide_window_stop_and_wait(cha

6、r*pBuffer,intbufferSize,UINT8messageType){//发送缓冲区staticdequebuffDeque;staticUINT32window_size=0;staticUINT32ack_expected=1;//起始编号为1UINT32seq,ack;store_elms;switch(messageType){caseMSG_TYPE_TIMEOUT:seq=*((UINT32*)pBuffer);//给出主机序if(ack_expected<=seq&&seq

7、ted+window_size){for(UINT32i=seq-ack_expected;i

8、IZE_STOP_WAIT){//尝试发送s=buffDeque[window_size++];SendFRAMEPacket((unsignedchar*)(s.

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

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

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