分享

Errormodel 在无线网络中的使用

 寝乡园 2013-09-26
(1)无线网络丢包模型
一般来说,当数据包在无线网络上传输时,会发生丢包的原因大致有两个:
a、拥塞遗失(Congestion Loss),发生原因主要是当网络上的数据传输量过大,导致网络设备传送处理时不及时,使得设备中的队列(Queue)缓冲空间不足,而必须将部分的数据包丢弃。
b、无线遗失(Wireless Loss),发生的主要原因是无线网络的传输信道(Channel)本身受到外界的影响而造成信号衰减或干扰,由于这些影响因子都是和无线传输相关,故称之为无线遗失。

对于无线遗失而言,可根据其数据遗失的分布现象而分成两种类型:
a、分布式遗失(Distributed Loss),即数据包遗失的分布情形相当分散且平均
b、连续性遗失(Burst Loss),即发生遗失的现象都是以连续性的居多,即一发生遗失就连续丢失好几个数据包。

以论文研究来说,通常会使用数学模型来描述网络行为,在此当中,随机统一模型(Random Uniform Model) 经常被用来作为分布式遗失的模型,而Gilbert-Elliott模型(GE model)则被用来作为连续性遗失的模型。

a、随机统一模型,因为数据是以随机分散的方式遗失,所以用到的参数是:平均遗失率(p),这个参数代表数据在传输过程中的平均遗失率。

b、GE模型,当传输通道(Channel)处于“好(Good)”的状态(G),发生封包遗失的概率为PG,当传输通道处于“坏(Bad)”的状态(B),发生封包遗失的概率是PB;PGB代表传输通道的状态从好的变成坏的概率,而PBG则正好相反。在稳态(Steady State)的情形下,传输通道处于Good和Bad的状态B的概率分别为

πG=PBG/(PBG+PGB),πB=PGB/(PBG+PGB)

因此,对于GE模型而言,整体的平均封包遗失率为:

Paverage = PG*πG+PB*πB 


(2)NS2中无线遗失模型
在NS2无线网络结构中,数据包从传送端送出,若是没有发生碰撞且接收端在接收信号允许的范围内,则接收端一定可以成功地收到数据包。

下面一段话出自:NS中文手册(ns Manual)

为了在无线网络上添加一个错误模型,每个节点都可在输出或输入的无线信道上插入一个给定的统计的错误模型。更为确切的说,实例化的错误模型刚好介于图16.2macnetif模块之间。对于输出链路,error模块由上层的mac模块的downtarget_指针指向,而对于输入链路,它将由下层的netif模块的uptarget_指针来链接。且在每种情况下,error模块的target_各自指向netifmac。这两种放置位置的却别在于:由于error在无线信道模块packet拷贝之前就已经确定了,所以输出将导致所有接收器接收到同样程度error的分组。另一方面,由于error是在各个error模块中独立计算的,所以输入error模块让每个接收器接收被不同程度error污染的分组。

意思就是你可以再无线节点的输入端或者输出端加入错误模型,如果加在了节点的输出端,那么该节点发出的错误包将被所有节点接收到;如果加在了节点的输入端,那么每个节点在接收到数据包后各自以一定的概率将其标错。

(3)在NS2中无线脚本中添加errormodel

一:添加

proc UniformErr {} {                

set err [new ErrorModel] #可以选择其他不同的模型

$err unit packet   #以分组为单位

$err set rate_ 0.005    #设置出错的概率或者速度

return $err        

二:添加

$ns node-config -adhocRouting  $val(rp) \

                -llType        $val(ll) \

。。。。。。。。

                -movementTrace ON \

-IncomingErrProc UniformErr    #在这里将上面定义的错误模型加入到节点的输入端,你也可以再在节点的输出端也加入一个错误模型。

这样你就在你的无线网络中成功的加入了错误模型了,可以更加真实模拟现实的无线网络环境。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多