版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 实 验 报 告 课程名称 网络应用编程 题目名称 滑动窗口协议模拟程序 学生学院 计算机学院 专业班级 网络工程(3)班 学 号 3112006432 学生姓名 李龙 指导教师 孙为军 2015 年6月25日目录一、 实验目的和要求5二、 实验环境5三、 实验原理6四、 实验步骤和结果记录9五、 关键源代码10六、 实验体会161、 实验目的和要求1、 实验目的本章编程训练的目的是通过对数据链路层滑动窗口协议及tcp滑动窗口协议的模拟掌握滑动窗口的概念以及滑动窗口协议的实现方法,从而加深对数据重传与流量控制机制的理解。2、 实验要求(1) 通过可视化编程将程序所有功能简洁地展示出来。(2)
2、由一台pc向另一台pc发送数据包,界面中必须动态显示数据帧的发送和接收情况,以表明模拟协议的正确运作过程。(3) 接收方应具有固定大小的滑动窗口。当发送方速度过快或帧丢失时,接收方应发送消息,要求暂停或重传。接收方要求按序向网络层提交收到的帧。(4) 发送方发送速度可以调节;发送方重传时只须重传需要的帧;可指定滑动窗口数目、停等的时间间隔以及发送类型等参数。2、 实验环境操作系统:windows7 sp2开发语言:c+ / mfc编译环境:ms visual c+6.03、 实验原理1、 窗口机制滑动窗口协议的基本原理就是在任意时刻,发送方都维持了一个连续的允许发送的帧的序号,称为发送窗口;同
3、时,接收方也维持了一个连续的允许接收的帧的序号,称为接收窗口。发送窗口和接收窗口的序号的上下界不一定要一样,甚至大小也可以不同。不同的滑动窗口协议窗口大小一般不同。发送方窗口内的序号代表了那些已经被发送,但是还没有被确认的帧,或者是那些可以被发送的帧。接受方为其窗口内的每一个序号保留了一个缓冲区。与每个缓冲区相关联的还有一位,用来指明该缓冲区是满的还是空的。 若从滑动窗口的观点来统一看待1比特滑动窗口、后退n及选择重传三种协议,它们的差别仅在于各自窗口尺寸的大小不同而已。1比特滑动窗口协议:发送窗口=1,接收窗口=1;后退n协议:发送窗口>1,接收窗口=1;选择重传协议:发送窗口>
4、1,接收窗口>1。2、1bit滑动窗口协议当发送窗口和接收窗口的大小固定为1时,滑动窗口协议退化为停等协议(stopandwait)。该协议规定发送方每发送一帧后就要停下来,等待接收方已正确接收的确认(acknowledgement)返回后才能继续发送下一帧。由于接收方需要判断接收到的帧是新发的帧还是重新发送的帧,因此发送方要为每一个帧加一个序号。由于停等协议规定只有一帧完全发送成功后才能发送新的帧,因而只用一比特来编号就够了。其发送方和接收方运行的流程图如图所示。3、后退n协议由于停等协议要为每一个帧进行确认后才继续发送下一帧,大大降低了信道利用率,因此又提出了后退n协议。后退n协议中
5、,发送方在发完一个数据帧后,不停下来等待应答帧,而是连续发送若干个数据帧,即使在连续发送过程中收到了接收方发来的应答帧,也可以继续发送。且发送方在每发送完一个数据帧时都要设置超时定时器。只要在所设置的超时时间内仍收到确认帧,就要重发相应的数据帧。如:当发送方发送了n个帧后,若发现该n帧的前一个帧在计时器超时后仍未返回其确认信息,则该帧被判为出错或丢失,此时发送方就不得不重新发送出错帧及其后的n帧。从这里不难看出,后退n协议一方面因连续发送数据帧而提高了效率,但另一方面,在重传时又必须把原来已正确传送过的数据帧进行重传(仅因这些数据帧之前有一个数据帧出了错),这种做法又使传送效率降低。由此可见,
6、若传输信道的传输质量很差因而误码率较大时,连续测协议不一定优于停止等待协议。此协议中的发送窗口的大小为k,接收窗口仍是1。4、选择重传协议在后退n协议中,接收方若发现错误帧就不再接收后续的帧,即使是正确到达的帧,这显然是一种浪费。另一种效率更高的策略是当接收方发现某帧出错后,其后继续送来的正确的帧虽然不能立即递交给接收方的高层,但接收方仍可收下来,存放在一个缓冲区中,同时要求发送方重新传送出错的那一帧。一旦收到重新传来的帧后,就可以原已存于缓冲区中的其余帧一并按正确的顺序递交高层。这种方法称为选择重发(selectice repeat),其工作过程如图所示。显然,选择重发减少了浪费,但要求接收
7、方有足够大的缓冲区空间。5、流量控制tcp的特点之一是提供体积可变的滑动窗口机制,支持端到端的流量控制。tcp的窗口以字节为单位进行调整,以适应接收方的处理能力。处理过程如下: (1)tcp连接阶段,双方协商窗口尺寸,同时接收方预留数据缓存区; (2)发送方根据协商的结果,发送符合窗口尺寸的数据字节流,并等待对方的确认; (3)发送方根据确认信息,改变窗口的尺寸,增加或者减少发送未得到确认的字节流中的字节数。调整过程包括:如果出现发送拥塞,发送窗口缩小为原来的一半,同时将超时重传的时间间隔扩大一倍。(4)滑动窗口机制为端到端设备间的数据传输提供了可靠的流量控制机制。然而,它只能在源端设备和目的
8、端设备起作用,当网络中间设备(例如路由器等)发生拥塞时,滑动窗口机制将不起作用。4、 实验步骤和结果记录1、 给出发送端滑动窗口协议基本算法的伪代码2、 给出接收端滑动窗口协议基本算法的伪代码3、 sender与receiver之间的udp通信端口设置4、 定义滑动窗口的公共数据结构5、 发送端模拟代码说明6、 接收端模拟代码说明7、 实验结果截图(1) 发送方:(2) 接收方:5、 关键源代码1、 发送方代码/ sender.cpp : defines the class behaviors for the application.#include "stdafx.h"#
9、include "sender.h"#include "senderdlg.h"#ifdef _debug#define new debug_new#undef this_filestatic char this_file = _file_;#endif/ csenderappbegin_message_map(csenderapp, cwinapp)/afx_msg_map(csenderapp)/ note - the classwizard will add and remove mapping macros here./ do not edit
10、what you see in these blocks of generated code!/afx_msgon_command(id_help, cwinapp:onhelp)end_message_map()/ csenderapp constructioncsenderapp:csenderapp()/ todo: add construction code here,/ place all significant initialization in initinstance/ the one and only csenderapp objectcsenderapp theapp;/
11、csenderapp initializationbool csenderapp:initinstance()afxenablecontrolcontainer();/ standard initialization/ if you are not using these features and wish to reduce the size/ of your final executable, you should remove from the following/ the specific initialization routines you do not need.#ifdef _
12、afxdllenable3dcontrols();/ call this when using mfc in a shared dll#elseenable3dcontrolsstatic();/ call this when linking to mfc statically#endifcsenderdlg dlg;m_pmainwnd = &dlg;int nresponse = dlg.domodal();if (nresponse = idok)/ todo: place code here to handle when the dialog is/ dismissed wit
13、h okelse if (nresponse = idcancel)/ todo: place code here to handle when the dialog is/ dismissed with cancel/ since the dialog has been closed, return false so that we exit the/ application, rather than start the application's message pump.return false;2、 接收方代码/ receiver.cpp : defines the class
14、 behaviors for the application./#include "stdafx.h"#include "receiver.h"#include "receiverdlg.h"#ifdef _debug#define new debug_new#undef this_filestatic char this_file = _file_;#endif/ creceiverappbegin_message_map(creceiverapp, cwinapp)/afx_msg_map(creceiverapp)/ note
15、- the classwizard will add and remove mapping macros here./ do not edit what you see in these blocks of generated code!/afx_msgon_command(id_help, cwinapp:onhelp)end_message_map()/ creceiverapp constructioncreceiverapp:creceiverapp()/ todo: add construction code here,/ place all significant initiali
16、zation in initinstance/ the one and only creceiverapp objectcreceiverapp theapp;/ creceiverapp initializationbool creceiverapp:initinstance()if (!afxsocketinit()afxmessagebox(idp_sockets_init_failed);return false;afxenablecontrolcontainer();/ standard initialization/ if you are not using these featu
17、res and wish to reduce the size/ of your final executable, you should remove from the following/ the specific initialization routines you do not need.#ifdef _afxdllenable3dcontrols();/ call this when using mfc in a shared dll#elseenable3dcontrolsstatic();/ call this when linking to mfc statically#en
18、difcreceiverdlg dlg;m_pmainwnd = &dlg;int nresponse = dlg.domodal();if (nresponse = idok)/ todo: place code here to handle when the dialog is/ dismissed with okelse if (nresponse = idcancel)/ todo: place code here to handle when the dialog is/ dismissed with cancel/ since the dialog has been closed, return false s
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 智力残疾康复训练计划方案
- 明确项目责任人的工作流程计划
- AI时代的软件开发-探索人工智能在软件领域的应用
- 漆艺:守旧与创新-漆器工艺的传承变革与前瞻
- 关注员工福利提升团队士气计划
- 建筑CAD 第2版 教案 教学设计 李丽 3.11-9.5 查询图形信息-绘制建筑详图
- 学校秋季与社会联动计划
- 2024-2025部编版语文一年级上册语文园地六
- 数码科技的历史演变-数码科技发展史
- 健身市场破局之道-抓住消费者需求变迁
- 陈皮仓储合同模板例子
- 2024年山西省中考地理试题含解析
- 2024-2025学年沪教版小学四年级上学期期中英语试卷及解答参考
- DB23T 3844-2024煤矿地区地震(矿震)监测台网技术要求
- 《阿凡达》电影赏析
- 火灾逃生自救消防安全知识培训课件
- DB42-T 2286-2024 地铁冷却塔卫生管理规范
- 合作伙伴合同协议书范文5份
- 公安机关人民警察高级执法资格考题及解析
- 2024-2030年中国装备故障预测和健康管理(PHM)行业发展现状与前景预测分析报告
- 浙教版信息科技四年级上册全册教学设计
评论
0/150
提交评论