基于NS3的无线链路物理层仿真实验

基于NS3的无线链路物理层仿真实验

一、实验目的

  1. 掌握NS3的基本仿真方法
  2. 熟悉NS3的无线链路模型
  3. 改进NS3的无线链路模型

二、实验背景

在原有的NS3的无线模型中,很难去控制链路的速率,延迟和错误等属性,例如在原有的模型中,错误率是不随距离变化的,即只要在可以传输的范围之内,错误率都是一样的,但是在实际中,随着距离的增加,错误率应该逐渐上升,而不是保持不变,因此我们在现有的模型中做出了一些改进,引入随着距离增加错误率逐渐增加的错误模型,并且引入丢头队列和丢尾队列来模拟不同队列的场景下传输速率的变化,同时加入定向网络的模型,实现定向传输的功能并且支持固定争用模型,即在冲突范围内,随着用户数量的增加,收包率逐渐下降。

三、实验原理

1.错误模型

图一:节点分布图

上图是基于NS3的错误模型节点分布图,如图所示,节点0分布在半径为100的圆的中心,其余100个节点以节点0为中心半径为100的圆内随机分布,同时节点0向周围节点发送数据,传输距离为100. 在NS3原有的错误模型中,节点0向各个节点发送数据的丢包率是一样的,但是实际场景中随着距离的增加,丢包率会逐渐上升,经过研究和调查,我们所构建的丢包率曲线如下图

图二:丢包率曲线

2.队列模型

在NS3的原有队列模型中使用的是丢尾队列,当发送数据包的队列已满时,丢尾队列会丢弃队列的最后的数据包,以控制数据包的发送率,我们引入了丢头队列,即当队列已满时,主动丢弃队列的头部的数据包,因为当队列已满时,表明队列的头部数据包非常的大,导致发送时间过长,使得后面的数据包处于等待过程中。因此丢头队列机制也会使得数据包的发送速率提升。

3.定向网络

在NS3现有的模型中,无线网络采用的时广播的方式,中心节点发送数据之后,其余的节点都会收到数据包,我们引入了定向网路的模型,即在显示场景中,通过摆放天线的朝向,可以定向的向部分节点发送数据,两者对比如图:

图三:定向网络和非定向网络对比

图三:定向网络和非定向网络对比

在NS3中构造如上图所示的场景,在定向网络中只有定向的节点才会收到数据包,其余节点则不回收到数据包,而在非定向网络中,则是全部节点都会收到数据包,因此在两种场景下统计各个节点收到的数据包的数量就可以对比两者的特性。

4.固定争用

实际场景中,在可传输的范围内,随着用户数量的增多,用户之间发生冲突的几率会逐渐增加,网络的性能将会逐渐下降,吞吐量逐渐下降,丢包率逐渐上升。

图四:固定争用

如图所示,仍然采用错误模型中的节点分布,中心节点向周围节点发送数据,同时不断扩大冲突范围,随着冲突范围的不断扩大,覆盖的用户数量就会不断的增加,吞吐量应该会逐渐下降,因此统计各个节点的丢包率应该会观察到随着冲突范围的增加,丢包率在逐渐上升。

四、实验过程

1.错误模型测试

图五:节点分布图

采用如图五中的节点分布,一共有101个节点,节点0在中心,另外一百个节点随机分布在半径为100的圆内,令中心节点向周围节点发送数据,统计各个节点收到的数据包。

图六:测试所得丢包率曲线

采用所构造的错误模型曲线,统计丢包率,测试结果如图六所示,测试结果显示随着距离的增加,丢包率在逐渐的上升,因此符合预期要求。

图七:测试所得丢包率曲线

另一方面,减少节点数量为21个,统计统计节点的收包特性图,如图七所示,图中绿色的部分表明节点正在收到数据包,其余表示因发生错误导致节点处于空闲状态,结果表明由于节点所处的距离不同,任何两个节点的收包特性是不一样的,因此也从另一方面验证了所构造的模型的合理性和正确性。

2.数据包队列测试

图八:丢头队列和丢为队列

采用两种类型的队列机制:丢头队列和丢为队列,测试的机制如图八所示,一共有两个节点,节点0向节点1发送数据包,并分别采用两种队列机制,然后统计节点1的收包特性。

图九:测试所得丢包率曲线

如图所示为测试结果,测试结果表明,丢头队列和丢尾队列都可以改变丢包率,并且可以看出丢头队列的延迟比丢尾队列的延迟更小。

图十:队列优先级测试曲线

如图所示曲线为队列有限级的测试曲线,所发送的数据包分为数据包和控制包

3.定向传输测试

图十一:定向传输测试模型

上图为测试定向网络时的节点分布图,其中节点1,3,4,7,10,11为定向网络节点,当使用定向网络传输模式时,中心节点0向这些节点定向传输数据,其余节点则应不能收到数据包,而当使用非定向网络传输模式时,所有节点都应该可以收到数据包。

图十二:定向传输测试结果

测试结果如上图,蓝色为非定向网络,黄色为定向网络,结果表明,当使用非定向网络时,全部节点都可以收到数据包,当使用定向网络时,只有定向网络节点才可以收到数据包,非定向网络节点无法收到数据包。

4.固定争用测试

图十三:固定争用测试结果

如图所示,横轴为冲突范围所覆盖的用户数量,测试结果表明:随着冲突范围的不断扩大,覆盖的用户数量逐渐增多,因此导致的冲突逐渐增多,丢包率逐渐上升,收包率逐渐下降。

五、实验小结

实验过程中,我们遇到了很多的问题,首先在实验环境的搭建过程中,刚开始搭建的是基于NS3-dev的环境,在代码测试的过程中遇到了很多的问题,之后又搭建了NS3-dce的环境进行测试。同时,在测试代码的时候也有很多的问题,由于机器的处理速度有限,仿真测试结果往往需要很长时间才会出来,也花费了我们很多的精力。 在之后的过程中,我们将继续改进这个模型,构建宏基站和微基站的体系架构,并在此架构上面探索单小区模型和大规模网络场景模型下的基站调度策略。