仿真模型

协议仿真有助于在实现应用前模拟分析复杂网络的行为和表现。很多网络模拟器都可用且结果相差不多,在本实验中,我们使用了离散事件模拟器——NS2(version 2.35) ,并使用 AWK 脚本进行性能分析。

NS2模拟器中有很多模型,我们主要考虑下面几种:

  1. 节点模型:用于能量来源、存储容量、处理能力等;
  2. 节点部署模型 :用于节点的设置和位置;

  3. 节点移动性模型 :用于动态网络拓扑;

  4. 信号模型 :用于每个节点使用合适的频率、带宽、MAC层协议;

  5. 无线传播模型 :用于接收端SNIR为双射地面传播模型;

  6. 丢包模型 :用于数据包冲突或在马尔可夫模型中丢包;

  7. 传输模型 :用于将流量发送到目的节点,主要是CBR、UDP模型。

仿真设计和参数

我们实验的目的是比较AODV和OLSR协议在不同情况下的性能表现,并检查和量化各种因素以及其相互作用对ad hoc网络整体性能的影响。

模拟器的每次运行都接受一个场景文件作为输入,该场景文件使用随机节点移动性模型描述每个节点的确切运动、每个节点发出的确切数据包序列以及发生数据包更改或运动产生的确切时间。为了评估特定因素下的性能,对于每组实验,我们进行5次随机模拟运行以生成5个随机场景文件,所考虑因素的性能为这5个输出的平均值。在所有实验中,我们考虑了3个影响因素、2个性能指标、2个无线网络协议,共进行了60次仿真以对比AODV和OLSR两种协议。

由于我们的实验仅针对网络层特性,所以其他层的参数设置为固定值。物理层特性(发射功率、地面传播模型、接收器灵敏度等)均为默认值,数据链路层特性为MAC802.11,传输层特性为UDP,应用层特性为CBR。下表中列出了仿真中的关键参数。

仿真参数
Network Type Mobile
Connection Pattern Random
Packet Size 500bytes
Duration 150s
Connection Type CBR/UDP
Simulation area(sq.m) 200,400,600,800,1000
Number of Nodes 10,20,30,40,50
Pause Time 0s,30s,90s,120s,150s

性能指标

性能指标有助于描述不同协议在不同环境中的具体表现,在本工作中,我们考虑了下述指标。

端到端时延(End-to-End Delay, EED)。端到端时延定义为源节点发送出一个分组到目的节点接收到该分组之间的时间差,它包括发送时延、传输时延、排队时延和处理时延。

本实验主要考虑传输时延,通过分组发送和到达之间的时间间隔来计算,计算方式如下。

\[\begin{array}{c} D(i)=R T(i)-S T(i) \\ \bar{D}=\frac{1}{N} \times \sum_{i=1}^{N} D(i) \end{array}\]

式中:\(D(i)\)表示第\(i\)个分组的传输时延,\(RT(i)\)表示第\(i\)个分组的接收时间,\(ST(i)\)表示第\(i\)个分组的发送时间,\(\bar{D}\)表示所有分组的平均传输时延。

封包投递率(Packet Delivery Ratio, PDR)。封包投递率指的是传输期间网络成功投递的分组占传输的数据总量的比例,计算方式如下。

\[L=\frac{N R P}{N S P}\]

式中:NSP(Number of Send Packets)表示节点发送的分组数目,NRP(Number of Receive Packets)表示节点接收到的分组数目。

实验脚本

实验的仿真脚本及分析结果位于 GitHub,其中adhoc为仿真的tcl、awk、shell脚本文件,res为仿真绘制的图像及结果数据,shell脚本自动调用tcl创建场景、调用awk统计指标进行分析。

需要注意的是:

  1. 使用前将shell中的setdest和cbrgen的位置更换为与待实验的机器相一致。
  2. 同时保证ns版本中具有AODV和OLSR两种协议,保证ns、nawk、gnuplot等工具安装并配置环境变量。
  3. 执行指定的shell脚本将会自动进行协议仿真、Trace文件数据分析和图片绘制,执行完成后将aodv.data、olsr.data、xx.plot、xx.gif移出文件夹保存,再执行其他脚本。
  4. 如果报shell脚本无法读取错误,则删除该脚本,在Linux环境下创建文件粘贴内容。
  5. LoadAnalysis-xx.sh脚本执行时间较长。

实验结果

在本工作中,通过改变节点数目、节点到达目的地后停留时间、模拟范围三个参数进行性能分析,对比AODV和OLSR两种协议的异同,以上三个性能因素称为网络负载分析移动性分析网络规模分析

网络负载分析

在此分析中,节点数从10增加到50,每次增加10个节点,网络规模为600×600平方米、停留事件为30s,其他参数与上表中描述的相同。

  • 如上左图所示,随着节点的增加,AODV协议的传输时延逐渐减少;OLSR协议的传输时延始终保持在较低的状态。
  • 如上右图所示,AODV协议的PDR在所有测试节点数目中均大于OLSR协议的PDR。

移动性分析

在此分析中,我们假设每个节点具有不同的速度和方向,考虑了以下暂停时间:0s、30s、90s、120s和150s,即从完全移动状态(0s暂停时间)到完全静止状态(150s暂停时间,与总仿真事件相同)。

image-20220802152958536

  • 如上左图所示,OLSR的传输时延比较稳定,保持在0.01s以下;AODV的传输时延波动较大,且全部高于OLSR的时延。
  • 如上右图所示,在0s-90s的范围内,AODV与OLSR协议的PDR差异较大,但都保持在90%以上;在90s暂停时间之后,两协议的PDR几乎相等。

网络规模分析

在此分析中,地理区域的变化范围为200×200平方米、400×400平方米、600×600平方米、800×800平方米和1000×1000平方米。

image-20220802152854932

  • 如上左图所示,AODV协议在600×600平方米后传输时延直线上升;OLSR协议在所有规模的地理区域均保持平稳,具有较低的传输时延。
  • 如上右图所示,随着地理区域的增大,两种协议均呈明显的下降趋势,在1000×1000平方米范围时,AODV协议的PDR仅为80%左右,OLSR协议的PDR低于60%。