通信网络基础实验报告.docx
《通信网络基础实验报告.docx》由会员分享,可在线阅读,更多相关《通信网络基础实验报告.docx(8页珍藏版)》请在冰点文库上搜索。
![通信网络基础实验报告.docx](https://file1.bingdoc.com/fileroot1/2023-7/4/499b92d3-9429-4adb-8d8a-9eeaae62cf9a/499b92d3-9429-4adb-8d8a-9eeaae62cf9a1.gif)
通信网络基础实验报告
通信网络基础实验
报告
学号:
。
。
。
姓名:
.。
.
专业:
通信工程
指导老师:
孙恩昌
完成时间:
2015-12—27
一.实验目的
1.理解数据链路层ARQ协议的基本原理
2.用算法实现四种不同形式的ARQ重传协议:
停等式ARQ、返回n—ARQ、选择重发式ARQ和ARPANETARQ。
3。
提高分析和解决问题的能力和提高程序语言的实现能力
二.实验内容:
1.根据停等式ARQ协议基本理论,编写协议算法,进行仿真;
2.根据返回N-ARQ协议基本理论,编写协议算法,进行仿真;
3。
根据选择重传ARQ协议基本理论,编写协议算法,进行仿真;
4.根据并行等待ARQ协议基本理论,编写协议算法,进行仿真
三.实验原理
1.停等式ARQ:
在开始下一帧传送出去之前,必须确保当前帧已被正确接受。
假定A到B的传输链路是正向链路,则B到A的链路称为反向链路。
在该链路上A要发送数据帧给B,具体的传送过程如下:
发送端发出一个包后,等待ACK,收到ACK,再发下一个包,没有收到ACK、超时,重发
重发时,如果ACK不编号,因重复帧而回复的ACK,可能被错认为对其它帧的确认。
2。
返回n—ARQ:
发送方和接收方状态示意图
返回n-ARQ方案的特点如下:
(1)发送方连续发送信息帧,而不必等待确认帧的返回;
(2)在重发表中保存所发送的每个帧的备份;
(3)重发表按先进先出(FIFO)队列规则操作;
(4)接收方对每一个正确收到的信息帧返回一个确认帧,每一个确认帧包含一个惟一的序号,随相应的确认帧返回;
(5)接收方保存一个接收次序表,包含最后正确收到的信息帧的序号.当发送方收到相应信息帧的确认后,从重发表中删除该信息帧的备份;
(6)当发送方检测出失序的确认帧(即第N号信息帧和第N+2号信息帧的确认帧已返回,而N+1号的确认帧未返回)后,便重发未被确认的信息帧
3.选择重发式ARQ:
选择重发ARQ与返回ARQ的思路相同,但仅仅重发有错误的帧。
发送方和接收方的设计流程如下:
4.ARPANETARQ采用了8个并行等待式ARQ
四.实现停等式ARQ实验过程及结果:
1.发送端算法:
(1)SN=0
(2)从高层接收数据,分配一个序号
(3)发送第SN号帧
(4)等待接收端的确认信号
(5)给定时间内收到确认帧,如果RN>SN,设RN为SN,发送该SN号帧
(6)给定时间内没有接收到确认帧,重复发送原SN号帧
(7)RN=0
(8)接受到一个无错的、SN序号等于RN的帧,向上层递交该帧,RN加1,在规定时间内,向发送端回复一个带有RN的帧。
2。
接收端算法:
(1)RN=0
(2)无论如何时从A正确接收一个SN=RN的帧,将该帧中的分组送给高层,并将RN加1
(3)在接收到分组后的一个规定的有限长时间内,将RN放入一帧的RN域中发给A.返回
(2).
3.实验结果
4。
结果分析:
在上述算法中,规定时间内通常是采用定时器来确定的。
RN通常是附带在反向数据帧中传送给对方的.如果接收端没有把数据传输给对方,则应该单独传送一个包含RN的无数据帧给A。
还可以看出反向业务流的存在对停等式ARQ的机制没有任何影响,它仅对应答的时延有所影响。
五.实现返回n-ARQ实验过程及结果:
1.发送端算法
(1)SNmax=0,SNmin=0
(2)算法以任意顺序重复执行(3)、(4)、(5)步,在每一步的条件满足下时刻到该步执行的时刻的时延是任意的,但是该时延是一个有限的值。
(3)如果接收的SNmax(说明如何对帧进行编号)
(4)如果接收端的RN〉SNmin则置SNmin=RN(接收到应答如何处理)
(5)如果SNmin(帧如何正常传输和如何进行重传)
2。
接收端算法:
(1)置RN=0,重复执行
(2)、(3)
(2)SN=RN时,将分组呈送给高层,并将RN加1。
(收到帧如何处理)
(3)在接收到A的任何一个正确帧后,在一个有限时间内,将收端的RN发给A。
3.实验结果:
5。
结果分析:
在重发SNmin后,可以按顺序发送SNmin+1到SNmax-1的帧,也可以根据重发过程中收到的应答情况,仅发送需要重发的帧。
在发端没有收到对方的回应下还是可以继续发送帧。
六.实现选择重发式ARQ过程及结果
(1)根据流程图实现功能
(2)接收方流程图
(3)整体运行结果
整体窗口展示,命令行界面
输入窗口大小及第一帧序列号
(4)结果分析:
发送方程序设有四个变量:
一是窗口大小变量,二是第一帧序列号变量,三是最近发送的帧变量,最后一个是最近收到的确认帧变量。
接收方的接收原则从总体上看是先判断输入的数据帧是否在接收范围之内,若是,则继续判断是否符合其他接收条件;若不是,则马上丢弃该数据帧,不再进行其他条件的判断.为了实现选择有错帧进行重发的目的,要求接收方具有对分组的能力,并且在应答时除了应答RN以外,还要包括大于RN的那些帧已经被正确接收的信息。
七.心得体会
为了解决链路层的传输帧的错误问题,出错的最简单的处理方法就是收端自动请求发端重发,而本次实验就是基于这样的思想开始的四种ARQ协议的实现。
在实现停等式ARQ的协议时,算法的正确性得不到保障,同时也就没有保障算法的有效性。
算法能够正确运行,但是不能始终的从高层接收数据分组,也不能始终的按照发端的顺序向收端的高层呈送接到的数据分组。
在交流了同学之后发现是提交给上层分组的顺序不对,最后参考了实验室电脑桌面上的程序,才得以很好的解决问题。
返回n—ARQ的协议实现时没有关注窗口长度n对返回ARQ的效率影响,当反应帧过长的时候,就应该增加n,还有就是反应应答出错,这也应该增加n的大小。
选择重发式ARQ还好解决一点,毕竟这是在返回n—ARQ的基础上进行完善,窗口仍然为n,仅仅有重发的帧,也因此遇到问题就相对少一些。
这次实验个人感觉真的是很难的,实验中也遇到各种各样的问题,在参考教材和实验模板,以及上网查找才解决了部分问题,我觉得还是编程能力有待提高,以及对这四种ARQ协议没有更深层次的理解,做完实验还是觉得这几种协议很抽象。
最大的失误就是没有在实验之前做好相应的充分准备,到了要上机的时候才开始着手这件事,就导致了这次实验完成的很不理想.并行ARQ由于时间有限没有完成程序设计,但是实验还是做了分析的工作.这次实验让我获益匪浅,不仅是在实验原理方面,而且还在自我动手能力上面,虽然程序真的很不好编,但我还是尽自己最大努力去尝试,最终取得的结果还是不如人意,但我还是很感谢老师给予的这次实验机会。