停等自动重传请求协议的实现

摘 要由于无线信道的时变和多径传输特性,常导致系统数据传输出现差错,有较高的误码率,采用循环冗余检查(CRC)只能检测出比特位的错误,但是数据传输过程还有可能存在其他错误,例如帧丢失,帧失序,帧重复等,这是通过CRC无法检测出来的。因此,为了提高数据传输的可靠性,实现真正意义上的可靠传输,采用ARQ技术进行数据传输控制。在此背景下,本文对于半双工的停止等待自动重传请求协议在理论和实际应用中进行了深入细致地研究。本文首先具体介绍了该问题及研究意义,然后对于整个课题背景进行了研究,并阐述了传统ARQ的具体原理以及最新研究ARQ协议种类。接下来,对于实现协议仿真的程序流程进行描述,以及介绍了实验仿真所得结果并进行分析,在各种情况下比较了简单SW-ARQ和多个数据帧一次发送的SW-ARQ的系统性能。最后,对于本次毕设的进行了总结。
目 录
第一章 绪论 1
1.1 问题提出 1
1.2 研究意义 1
第二章 课题背景 2
2.1 确认重传机制出现的背景 2
2.2 网络层的ARQ传输机制 3
2.3 可靠传输的基本原理 4
第三章 传统的ARQ技术 5
3.1 传统ARQ技术简介 5
3.2 ARQ具体原理及介绍 6
3.3 ARQ的研究现状 12
3.3.1 混合I型ARQ 13
3.3.2 混合II型ARQ 14
3.3.3 混合III型ARQ 15
第四章 编程实现的原理和流程 16
4.1 简单SWARQ编程实现的流程 16
4.2 组发送数据帧的SWARQ编程实现的流程 17
第五章 实验结果讨论 19
5.1 UI界面 19
5.2 实验仿真结果 20
第六章 心得体会与经验总结? 29
致 谢 30
参考文献 31
第一章 绪论
1.1 问题提出
现代社会,通信遍布了世界的每一个角落,大到国家政治、经济、军事、文化等方方面面,小到普通人最基本的生活,学习、生活、工作等。信息技术
 *好棒文|www.hbsrm.com +Q: ^3^5^1^9^1^6^0^7^2^* 
是第三次工业革命的重要组成部分,二十一世纪是继信息革命之后信息技术飞快发展的世纪,把握好信息技术发展的机遇,对于国家以及我们个人都有极大的意义。现代社会,信息是国家建设发展的命脉,是发展经济文化军事的重要基础。在各种各种数字信息传输的过程中,需要各种各样的协议去控制,以便于信息交流更加准确、安全。自动重传请求(ARQ,Automatic Repeat reQuest)是一种经常应用在各种通信方式的信息传送控制协议,应用非常广泛。为了了解该机制应用过程中,在各种因素(例如噪声)的影响下,误码率、吞吐量等参数的变化,我们通过编程在计算机上实现对该机制操作过程的仿真。
1.2 研究意义
自动重传请求ARQ(Automatic Repeat reQuest)应用广泛,深入地仿真其操作机制,了解其性能,掌握其规律,从而更好地在通信过程中进行应用。
第二章 课题背景
2.1 确认重传机制出现的背景
SW-ARQ协议被广泛应用于半双工链路中,例如卫星信道和水声信道等。
在某些通信传输过程中,为了通信过程顺利实现,要求最底层的数据链路层向高层次的网络层提供“可靠传输”的服务。所谓“可靠传输”就是:在数据链路层的发送方发送出去的数据帧存储哪些信息,接收方就接受到什么样的数据帧和信息。由于信道环境的不稳定,存在各种各样的噪声,导致传输信息过程中很有可能发生传输差错,这种传输差错事无法避免的,通常可分为两大类:一类是数据帧上的比特位出现差错,称之为比特差错,还有一类传输差错则稍微复杂一些,在这个地方,并不是比特位出现误传这么简单,而是出现了原本发送的数据帧在信道传输过程中直接丢失,或者是由于某些情况,同样的数据帧收到了两次,又或是多个数据帧在传输过程所消耗的时间不相同,到了接收方之后,接收到的数据帧顺序和原来不一样。例如,发放方连续传输三个数据帧:[#1][#2][#3]。假定接收端接收到的每一个数据帧都没有出现比特位出错,但是却出现了下面的几种可能情况:
帧丢失:收到[#1][#3](丢失[#2])。
帧重复:收到[#1][#2][#2][#3](收到两个[#2])。
帧失序:收到[#1][#3][#2](后发送的帧反而先到达了接收端,这与一般数据链路层数据传输概念不一样)。
以上三种可能情况都属于“出现了数据帧传送差错”,但都不是这些数据帧里有“比特位差错”。帧丢失属于简单情况,很容易理解,帧重复和帧失序在后面的ARQ介绍中会详细论述。
因此,我们应当清楚地了解到,“无比特位差错”与“无数据传送差错”并不是同一概念的两种说法。在数据链路层,我们使用CRC校验等方法,来检错并纠错,这样能够得到无比特位差错的传送数据,但这还不是真正意义上的可靠的传输。
我们知道,过去OSI标准是这样认为的,必须要让数据链路层向上层提供可靠的数据传输。所以在CRC校验的基础上,增加了帧编号、确认和重传机制。接收端一旦收到正确的数据帧就要立即向发送端发送反馈控制信息进行确认。发送端设置一个计时器,在计时器计时完毕之前,若没有收到接收端的确认控制信息,就认为是传输过程出现了传输差错,因而就必须进行重传,直到接收到对方的确认控制信息为止。这样的一种机制曾经在通信过程中可以很好的保证数据数据传输的准确性。但随着通信技术的发展,加工工艺的改进,现在的通信线路所能引起差错的概率已经很小,线路质量已经大大的提高了。因此现在的因特网为了节约资源和更好的完成数据传输,对数据链路层是否使用重传控制机制采取了区别对待的方法:
对于有线传输链路来说,现在的材料加工工艺完全可以做到很低的出错概率,所以说数据链路层协议可以不使用确认和重传机制,即不会强制要求数据链路层一定要向上层提供可靠传输的服务。一旦在数据链路层接收到的数据信息出现某些未知的错误,改正错误的工作就由更高层的协议,比如运输层的TCP协议来解决。
由于无线传输链路的传输环境相对恶劣,存在各种各样的噪声,通信质量较差,数据链路层协议必须采用确认和重传机制,这样可以使得数据链路层向上层提供可靠传输的服务。
2.2 网络层的ARQ传输机制
对于通信质量良好的有线传输链路提供可靠数据传输的任务由传输层来完成。
由于网络层只能提供尽最大努力的交付服务(即不可靠的传输服务),传输层所面临的不只是报文段传送出错、丢失,还有可能出现因为传输时延的不同而产生失序等情况。因此,TCP实现可靠传输的机制比较复杂。究其复杂的原因,归纳起来有以下几个方面:
⑴ TCP是面向字节流的。因为数据帧的信息部分可以根据误码率的高低改变长度大小,并且变化较大,以报文段作为确认的单位显然不够方便。所以,TCP采用序号确认机制。同时,为了提高数据传输效率,通常还采用捎带确认的策略,也就是在自己发送数据时吧确认信息一起带上,而不再专门发送确认报文Z段。
⑵ TCP能提供全双工通信,也就是说,通信双方可同时发送数据,为了实现传输控制,TCP连接的每一个端口都设有一个发送窗口和一个接收端口。就全双工通信而言,对一条TCP连接两端的4个不同作用的窗口实施控制,使得TCP传输控制过程显得比较复杂。另外,TCP实现流量控制采用的是滑动窗口机制。

版权保护: 本文由 hbsrm.com编辑,转载请保留链接: www.hbsrm.com/dzxx/txgc/1171.html

好棒文