返回narq模型算法实现及仿真

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

返回n-ARQ模型算法实现及仿真
一、返回n-ARQ概述
返回n-ARQ是在停等式ARQ基础上进行改进的一种ARQ协议。

其基本思路是:发端在没有收到对方应答的情况下,可以连续发送n 帧,收端仅接收正确且顺序连续的帧,其应答中的RN表示RN以前的所有帧都已正确接收,并且收端不需要每收到一个正确的帧就发出
一个应答,可对接收到的正确顺序的最大帧序号进行应答。

二、返回n-ARQ算法描述
发端使用SN min表示发端目前没有收到应答的帧中序号最小的帧,
SN
max
表示它将要指配给运载从高层新到达分组的帧序号。

发端将试
图传送SN min到SN max-1之间的帧。

2.1发端算法
1. 置SN
max
=0,SN min=0。

2. 算法以任意顺序重复执行第3,4,5步,在每一步的条件满足时刻到该步被执行时刻之间的时延是任意但有限的一个值。

3. 如果SN
max<SN min+n
,且上层有一个新分组到达,将SN max指定给承载该分组的帧,并将SN max加1。

4. 如果接收的RN>SN
min,则置SN min=RN。

5. 如果SN
min <SN max,且当前没有帧在传输,从SN min,SN max
[)中选择
一个或一组帧进行传输,当SN
min 不再改变时,SN
min
帧的重传间隔应小
于一个规定的有限值。

2.2 收端算法
1. 置RN=0,重复执行2和3。

2. 当接收到的SN=RN,将分组呈送给高层,并将RN加1。

3. 在接收到发端的任何一个正确帧后,在一个有限的时间内,
将收端的RN返回给发端。

三、返回n-ARQ的仿真实现
3.1 算法实现
为了在一台计算机上模拟收发双方的活动,需编写两个进程sender和receiver,分别模拟发送端和接收端,两进程通过消息队列进行相互之间的通信。

接收进程receiver在后台运行,随时监听发端的数据发送情况,发送进程sender在前台运行,发送数据帧并统计最终结果。

程序使用消息队列来模拟双方的通信链路,由于计算机上不同进程之间的通信都是无差错的,未来模拟真实的链路,在消息队列两端各设置一个随机数发生器,以随机产生错误信息,其出错概率可事先设定。

程序使用C语言编写,GCC环境编译,具体代码见附录。

3.2 评价指标
返回n-ARQ的有效性可以从三个主要方面来表述,分别是吞吐量、链路利用率以及分组延迟。

由于该仿真是在一台计算机上的两个进程之间进行的,因此难以准确统计上述三方面的指标。

另一方面,
如果发送的帧数一定,则程序的运行时间可近似表征分组延迟的大小,
亦可从一方面反映吞吐量,因此选用程序的运行时间来评价仿真结果,运行时间越长,表明分组时延越大,相应的吞吐量越小。

四、仿真结果及分析
设置发送帧总数为1000,在不同的发送窗口宽度n和误帧率p 下,各运行程序50次,得到平均运行时间t如下表:
表1 平均运行时间分布表(单位:ms)
np0.01 0.02 0.03 0.04 0.05
3 0.5258 0.540
4 0.5580 0.5752 0.5900
4 0.49920.51820.53100.54740.5656
5 0.47440.49280.51220.53160.5494
8 0.45420.48100.50840.53440.5510
12 0.44860.48560.50820.54720.5856
17 0.40940.44900.48980.58960.6294
23 0.39280.50520.57980.63220.7232
根据上表,可绘出平均运行时间t与n以及p的关系图:
图1 不同误帧率下t随n 的变化趋势。

相关文档
最新文档