ns-3网络仿真
- 格式:docx
- 大小:90.46 KB
- 文档页数:9
NS-3离散事件仿真引擎实现赵问道浙江大学信息与通信工程研究所2009年11月目录一、ns-3离散事件仿真引擎的基本概念 (3)二、ns-3离散事件仿真引擎的基本原理 (4)三、基本的仿真器类:Simulator (5)四、仿真器实现类:SimulatorImpl类及其派生类 (10)五、事件调度器类:Scheduler及其派生类 (12)NS-3离散事件仿真引擎实现分析一、ns-3离散事件仿真引擎的基本概念Ns-3是一个基于事件的(event-based)仿真系统。
除了系统状态变量和系统事件发生逻辑外,基于事件仿真还包括以下组成部分:(1)时钟(Clock)仿真系统必须要保持对当前仿真时间的跟踪。
离散事件仿真与实时仿真(real time simulations)不同,在离散事件仿真中时间是跳跃的(time ‘hops’ ),因为事件是瞬时发生的– 随着仿真的进展,时钟跳跃到下一事件的开始时间。
Ns-3内部仿真时钟用一个64比特的整数表示,其单位由用户通过TimeStepPrecision::Set函数设定。
(2)事件列表(Events List)仿真系统至少要维护一个仿真事件列表,一个事件用事件发生的时刻和类型来描述,事件类型标识用于仿真事件的代码,一般事件代码都是参数化的,事件描述中还包含表示事件代码的参数。
Ns-3的事件列表由Scheduler类及其派生类实现,Simulator类提供创建具体的Scheduler对象的方法,以及插入各种事件的静态接口函数。
(3)随机数发生器(Random-Number Generators)根据系统模型,仿真系统需要产生各种类型的随机变量(random variables)。
这由一个或多个伪随机数发生器(Pseudorandom number generators)产生。
NS-3包含一个内置的伪随机数发生器,随机数由RandomVariable类及其派生类实现,可以产生具有各种分布特性的随机数,具体有UniformVariable类、ConstantVariable类、SequentialVariable类、ExponentialVariable类、ParetoVariable类、WeibullVariable类、NormalVariable类、EmpiricalVariable类、IntEmpiricalVariable类、DeterministicVariable类、LogNormalVariable类、GammaVariable类、ErlangVariable类、ZipfVariable类和TriangularVariable类等。
基于NS-3的WiFi场景仿真
栾俊;李太浩
【期刊名称】《农业网络信息》
【年(卷),期】2012(000)001
【摘要】就WiFi的应用场景进行基于NS-3建模仿真,介绍了相关背景知识,给出了具体的实现过程,并对其结果进行了相关的分析。
【总页数】3页(P18-20)
【作者】栾俊;李太浩
【作者单位】吉林农业大学信息技术学院,吉林长春130118;吉林农业大学信息化教学与管理中心,吉林长春130118
【正文语种】中文
【中图分类】TP393
【相关文献】
1.基于NS-3的核电DCS网络仿真框架 [J], 孙永胜;贺珊珊;王维;
2.基于NS-3的海上移动场景LoRa网络性能研究 [J], 李凌翎; 朱谦; 任久春
3.基于NS-3的MANET路由协议仿真实验设计 [J], 滕艳平;周浩令;王海珍;陈久玲;张亚杰
4.基于NS-3网络模拟器的TDMA协议仿真实现 [J], 王心源;程鹏;吴斌;李雪妍
5.基于NS-3的MQTT协议仿真研究 [J], 赵靖;王如武;周皓
因版权原因,仅展示原文概要,查看原文内容请购买。
基于NS—3的OLSR路由协议性能仿真随着近年来Ad hoc网络的发展,Ad hoc网络的各项性能得到越来越多的研究,而路由协议的性能好坏将直接影响到Ad hoc网络的性能。
本文选用NS-3网络模拟器作为仿真环境,对Ad hoc网络中的OLSR路由协议进行仿真性能分析。
标签:Ad hoc网络;NS-3网络模拟器;OLSR路由协议0 引言近年来,由于在消防救灾、应急通信等行业中占着重要地位,Ad hoc网络得到越来越多的重视,而路由协议作为Ad hoc网络中最重要的组成部分之一,也相应的成为了研究的热点方向。
本文将选择OLSR协议作为仿真协议,在NS-3网络模拟器下对其进行性能仿真评估。
1 NS-3网络模拟器在现代通信网络发展中,网络技术得到了广泛的应用,因此对于网络技术的研究与开发有着越来越大的需求,网络模拟技术也应运而生,目前现有的网络模拟工具主要包括:OPNET,NS-2,GloMoSim,OMNET++等等,然而在研究过程中发现,当前的模拟工具都存在着各种各样的不足。
针对这样的问题,美国华盛顿大学的Thomas R.Henderson 教授及其小组在美国自然科学基金NSF的支持下开发出了全新的网络模拟工具NS-3。
NS-3是一部全新的网络模拟软件,是目前最受欢迎的网络模拟软NS-2的最终替代软件,而不是NS-2的升级版本。
NS-3可以说既摒弃目前的主流网络模拟软件OPNET和NS-2的缺点,又整合这两部软件的一些优点。
NS-3是一个离散事件模拟器,它的体系结构主要由模拟器内核和网络组件组成。
模拟器内核主要由事件调度器和网络模拟支持系统组成。
网络模拟器支持系统主要包括:Attribute系统,Logging系统和Tracing系统。
Attribute系统主要实现对NS-3仿真实体进行仿真参数的设置、组织、访问、修改等;Logging系统是NS-3中新引入的概念,类似于一种基于控制台的消息记录模块,这种机制在进行仿真过程的追踪和模块扩展的时候极其方便有效;Tracing系统主要用来实现NS-3中的仿真结果输出。
基于ns—3构建计算机网络教学仿真平台【摘要】计算机网络原理课程抽象、复杂,基于ns-3构建计算机网络教学仿真平台有助于提高学生的学习兴趣。
【关键词】计算机网络;网络模拟;ns-3;可视化《计算机网络原理》概念抽象、协议繁琐,传统的理论教学以板书或者PPT 进行理论讲解,枯燥乏味。
构建基于新型网络模拟器ns-3[1]构建计算机网络教学仿真平台,能提高计算机网络的教学质量[2]。
1.ns-3简介ns-3广泛汲取了现有优秀开源网络模拟器如ns-2,GTNetS,yans等的成功技术和经验,专门用于教育和研究用途的离散事件模拟器,基于GNU GPLv2许可,可以免费地获取、使用和修改[3-4]。
2.ns-3仿真流程搭建ns-3网络仿真场景和搭建实际网络类似[5-6],首先生成网络节点(Node),然后为节点安装网络设备(NetDevice)及相应的传输媒体(Channel),接下来安装网络协议,包括应用层(Application),传输层,MAC层,ns-3提供了多个应用层和传输层协议,数据包(Packets)通过协议栈(Protocol stack)向下传递给网络设备(类似于网卡,实现了MAC层和物理层协议),于是如图1所示数据包就像在真实网络中一样流动。
3.ns-3仿真实例通过仿真实例展示基于ns-3构建的计算机网络教学仿真平台的优势。
仿真场景如图2所示,网络分成两部分:基于CSAM/CD协议的有线局域网和点到点的通信链路。
其中节点0是服务器;节点1有两块网卡,一块网卡和局域在一个网段,另一块网卡和服务器在一个网段,负责局域网和服务器的通信。
3.1 仿真脚本下面我给出C++脚本的关键代码(p2p网络的部分,csma网络和其代码类似)://生成节点:NodeContainer p2pNodes;p2pNodes.Create (2);//配置网卡信道参数并安装网络设备:PointToPointHelper pointToPoint;pointToPoint.SetDeviceAttribute (“DataRate”,StringValue (“5Mbps”));pointToPoint.SetChannelAttribute (“Delay”,StringValue (“2ms”));NetDeviceContainer p2pDevices;p2pDevices = pointToPoint.Install (p2pNodes);//安装网络协议栈并配置IP地址:InternetStackHelper stack;stack.Install (p2pNodes.Get (0));Ipv4AddressHelper address;address.SetBase (“10.1.1.0”,”255.255.255.0”);Ipv4InterfaceContainer p2pInter faces;p2pInterfaces = address.Assign (p2pDevices);//安装应用程序,Node0为服务器,Node5为客户机:UdpEchoServerHelper echoServer (9);ApplicationContainer serverApps = echoServer.Install (p2pNodes.Get (0));UdpEchoClientHelper echoClient (p2pInterfaces.GetAddress (0),9);//配置路由Ipv4GlobalRoutingHelper::PopulateRoutingTables ();//利用追踪系统捕获网络数据包:pointToPoint.EnablePcapAll (“p2p_csma”);csma.EnablePcap (“p2p_csma”,csmaDevices.Get (0),true);3.2 网络仿真演示图3是ns-3可视化模块PyViz在线显示实例仿真场景的拓扑结构、网络配置及通信时的画面。
ndnSIM:基于NS-3的NDN仿真工具摘要——命名数据网络(NDN)是一种新提出来的网络架构。
NDN保留了当前因特网的沙漏模型,但是在“瘦腰”处进行了改进。
NDN采用了通过数据的名字开获取数据的方式来代替特定的地址信息。
一方面,这个简单的改变允许NDN网络使用大多数当前因特网的很多现有的技术来解决不仅仅是IP通信问题,还有数字分发和控制问题也有了解决的新思路。
另一方面,分发架构的基本不同于当前的点对点的通信,这也同样带来了一些新的挑战。
为了给NDN研究提供一个通用的仿真平台,该项目组开发了一个开源的基于NS-3的模块化的仿真工具。
1.引言由NDN引起的最基本的改变就是网络通信需要广泛,多元化的NDN设计。
然而现有的NDN的实现和测试平台的部署,使得NDN基础设施设计和现实环境下的应用的评估变得无法估价,对不同的设计的实验和大范围的测试评估是难以实现的。
为了满足这样的需要,该项目组开发了这样的一个NDN模拟器---ndnSIM。
NdnSIM的设计有以下目标:开源的设计,是的研究者能在一个公共的仿真平台下做试验能够忠实地模拟所有基本NDN协议操作。
保持ccnx实现分组级别的互操作性,让ccnx和ndnsim之间的流量测量和数据分析工具共享,真实的ccnx流量使用驱动ndnSIM试验能支持大范围的试验促进网络层实验与路由,数据缓存,数据包转发,和拥塞管理遵照NDN的架构,ndnSIM作为一个新的网络协议模型实行,能在任意的链路层协议(p2p,csma,wireless等)和传输层协议(TCP,UDP)模型上承载。
这样的灵活性使得ndnSIM能仿真多样化的部署场景(例如,NDN-only,NDN-over-IP等)该模拟器是以模块化的方式实现,使用单独的C + +(套)类模型的行为在每一个网络层实体:NDN未决的兴趣表(坑),转发信息库(FIB),内容、存储,网络和应用程序接口,兴趣转发策略,等。
这种模块化结构允许任何组件可以很容易地修改或更换没有或影响最小的其他组件。
NS-3网络仿真一:实验要求用NS-3仿真某个特定的网络环境,并输出相应的仿真参数(时延,抖动率,吞吐量,丢包率)。
二:软件介绍NS-3 是一款全新新的网络模拟器,NS-3并不是NS-2的扩展。
虽然二者都由C++编写的,但是NS-3并不支持NS-2的API。
NS-2的一些模块已经被移植到了NS-3。
在NS-3开发过程时,“NS-3项目”会继续维护NS-2,同时也会研究从NS-2到NS-3的过渡和整合机制。
三:实验原理及步骤NS-3是一款离散事件网络模拟驱动器,操作者能够编辑自己所需要的网络拓扑以及网络环境,来模拟一个网络的数据传输,并输出其性能参数。
软件中包含很多模块:节点模块(创造节点),移动模块(仿真WIFI,LTE可使用),随机模块(生成随机错误模型),网络模块(不同的通信协议),应用模块(创建packet 数据包以及接受packet数据包),统计模块(输出统计数据,网络性能参数)等等;首先假设一个简单的网络拓扑:两个节点之间使用点对点链路,使用TCP协议进行通信,假设随机错误率为0.00001,节点不可移动(因为不是无线网络),具体代码如下:NodeContainer nodes;nodes.Create (2);创建两个节点;PointToPointHelper pointToPoint;pointToPoint.SetDeviceAttribute ("DataRate", StringValue ("5Mbps"));pointToPoint.SetChannelAttribute ("Delay", StringValue ("2ms"));设置链路的传输速率为5Mbps,时延为2ms;NetDeviceContainer devices;devices = pointToPoint.Install (nodes);为每个节点添加网络设备Ptr<RateErrorModel>em=CreateObject<RateErrorModel> ();em->SetAttribute("ErrorRate",DoubleValue(0.00001));devices.Get(1)->SetAttribute("ReceiveErrorModel",PointerValue (em));创建一个错误模型,讲错误率设置为0.00001,仿真TCP协议的重传机制。
网络系统仿真设计方法与工具分析随着信息技术和互联网的快速发展,网络系统的设计和仿真成为了重要的领域。
网络系统仿真具有很多优点,例如可以提前检测出潜在问题、减少开发成本、加快系统部署等。
本文将分析网络系统仿真设计方法与工具,讨论其应用和优势。
网络系统仿真设计方法1. 离散事件仿真(DES):离散事件仿真是一种常用的网络系统仿真方法,其以事件为触发,模拟网络系统中的实时行为。
通过记录和处理事件触发的序列,可以获得系统性能指标、资源利用率等信息。
2. 连续仿真:连续仿真是模拟网络系统中连续变化的过程,例如网络流量、信号传输等。
连续仿真可以模拟实际系统中的连续运行过程,提供更加准确的结果。
3. 混合仿真:混合仿真是将离散事件仿真与连续仿真相结合的方法。
通过将网络系统划分为离散事件和连续变化两个部分,可以更好地模拟实际系统的行为。
网络系统仿真设计工具1. OPNET:OPNET是一种常用的网络系统仿真工具,可以用于网络性能分析、协议设计、网络规划等。
OPNET提供了强大的图形界面和仿真引擎,可以方便地构建和部署复杂的网络系统。
2. NS-3:NS-3是一个开源的网络仿真器,具有强大的建模和仿真功能。
NS-3支持C++和Python等编程语言,用户可以自定义网络协议和拓扑结构,进行系统性能评估和研究。
3. MATLAB/Simulink:MATLAB/Simulink是一种流行的工具,广泛应用于系统建模和仿真领域。
其强大的数学和建模工具可以用于网络系统性能分析、优化和设计。
网络系统仿真设计工具的优势1. 提高系统效率:通过仿真设计工具,可以对网络系统的性能进行评估和优化,提高系统的效率和稳定性。
2. 减少开发成本:通过仿真工具可以在系统实际实施前检测问题,减少开发过程中的试错成本。
3. 加速系统部署:仿真工具可以模拟实际环境下的系统运行情况,提前发现可能的问题,从而加速系统的部署和推广。
4. 提供决策支持:仿真工具可以帮助决策者评估不同方案的可行性和效果,在制定决策时提供科学的依据。
计算机网络实验实验指导书实验名称NS3基础仿真实验一、实验目的1.了解网络仿真的意义2.熟悉NS-3的基本语句3.安装并熟悉使用NS-34.用NS-3搭建最基本的网络仿真场景二、实验背景(一)网络仿真技术近年来,随着计算机和网络通信技术的不断发展,网络技术的研究也进入到了一个飞速发展的时期。
研究人员不断开发出新的网络协议、算法和应用,以适应日益增长的网络通信需要。
然而由于网络的不可控、易变和不可预测等特性的存在,给新的网络方案的验证、分析和比较带来了极大的困难。
目前网络通信的研究一般分为以下3种方法。
1)分析方法:在理论和协议层面上对网络通信技术或系统进行研究分析,抽象出数学分析模型,利用数学分析模型对问题进行求解。
如采用数学建模、协议分析、状态机、集合论以及概率统计等对多种理论分析手段和方法对通信网络及其算法、协议、网络性能等各个方面进行研究。
2)网络模拟:即计算机模拟仿真算法。
网络模拟日益成为分析、研究、设计和改善网络性能的强大工具,它通过在计算机上建立一个虚拟的网络平台,来实现真实网络环境的模拟,网络技术研究人员在这个平台上不仅能对网络通信、网络设备、协议以及网络应用进行设计研究,还能对网络的性能进行分析和评价。
3)实验网方法:对网络协议、网络行为和网络性能采用建立实验室测试网络、网络测试平台(network testbed)和小规模商用实验网络的方式对网络进行实战检验。
就是设计出研究所需要的合理硬件和软件配置环境,建立测试床和实验室,在现实的网络上进行研究。
以上3种方法有利有弊,相辅相成并各有侧重点。
理论研究适用于早期研究与设计阶段,对新算法和新技术进行理论准备和验证,除了人力和知识,几乎不需要什么额外成本。
实验网方法是网络和系统在投入实际应用前的一次系统的演练,能够发现网络设计与用户需求之间的相合度以及检验网络实际使用的效用和性能。
该阶段建设成本很高,要求技术和设备开发相对成熟,网络系统基本成型,主要是对业务、系统稳定性能和服务性能的检验。
网络仿真实验报告网络仿真实验报告一、引言网络仿真是通过计算机模拟网络环境,以实现对网络性能、协议、拓扑结构等的评估和优化的一种方法。
本报告旨在对网络仿真实验进行详细分析和总结,以便更好地理解网络仿真的应用和意义。
二、实验目的本次网络仿真实验的目的是通过使用特定的仿真工具,模拟一个具有一定规模和复杂性的网络环境,以评估和优化网络性能。
实验将重点关注以下几个方面:1. 网络拓扑结构的设计与构建;2. 不同网络协议的性能比较;3. 网络负载和带宽的优化。
三、实验环境1. 仿真工具:本次实验选择使用NS-3作为网络仿真工具,其具有强大的功能和灵活的配置选项。
2. 实验设备:使用一台性能较好的计算机作为仿真主机,确保仿真过程的稳定性和准确性。
四、实验步骤与结果1. 网络拓扑结构的设计与构建在实验开始之前,首先需要设计和构建一个合适的网络拓扑结构。
根据实验要求,我们选择了一个具有多个子网和路由器的复杂网络结构。
通过使用NS-3提供的API和配置文件,我们成功地搭建了一个符合实验要求的网络拓扑。
2. 不同网络协议的性能比较为了评估不同网络协议的性能,我们选择了TCP和UDP两种常用的传输协议进行比较。
通过在仿真环境中模拟不同的网络负载和带宽情况,我们对比了两种协议在不同场景下的性能表现。
实验结果显示,在低延迟和高可靠性要求较高的场景下,TCP表现更好;而在实时性要求较高的场景下,UDP则更适合。
3. 网络负载和带宽的优化为了优化网络负载和带宽的利用效率,我们尝试了不同的策略和算法。
通过调整路由器的缓冲区大小、优化拓扑结构和使用流量控制算法等手段,我们成功地提高了网络的吞吐量和响应速度。
实验结果表明,合理的网络负载和带宽优化策略对于提升网络性能具有重要作用。
五、实验总结通过本次网络仿真实验,我们深入了解了网络仿真的原理和应用。
实验结果显示,网络仿真是一种有效的方法,可以帮助我们评估和优化网络性能。
同时,我们也发现网络拓扑结构的设计和网络协议的选择对于网络性能具有重要影响。
NS-3网络仿真
一:实验要求
用NS-3仿真某个特定的网络环境,并输出相应的仿真参数(时延,抖动率,吞吐量,丢包率)。
二:软件介绍
NS-3 是一款全新新的网络模拟器,NS-3并不是NS-2的扩展。
虽然二者都由C++编写的,但是NS-3并不支持NS-2的API。
NS-2的一些模块已经被移植到了NS-3。
在NS-3开发过程时,“NS-3项目”会继续维护NS-2,同时也会研究从NS-2到NS-3的过渡和整合机制。
三:实验原理及步骤
NS-3是一款离散事件网络模拟驱动器,操作者能够编辑自己所需要的网络拓扑以及网络环境,来模拟一个网络的数据传输,并输出其性能参数。
软件中包含很多模块:节点模块(创造节点),移动模块(仿真WIFI,LTE可使用),随机模块(生成随机错误模型),网络模块(不同的通信协议),应用模块(创建packet 数据包以及接受packet数据包),统计模块(输出统计数据,网络性能参数)等等;
首先假设一个简单的网络拓扑:两个节点之间使用点对点链路,使用TCP协议进行通信,假设随机错误率为,节点不可移动(因为不是无线网络),具体代码如下:
NodeContainer nodes;
(2);
创建两个节点;
PointToPointHelper pointToPoint;
("DataRate", StringValue ("5Mbps"));
("Delay", StringValue ("2ms"));
设置链路的传输速率为5Mbps,时延为2ms;
NetDeviceContainer devices;
devices = (nodes);
为每个节点添加网络设备
Ptr<RateErrorModel>em=CreateObject<RateErrorModel> ();
em->SetAttribute("ErrorRate",DoubleValue);
(1)->SetAttribute("ReceiveErrorModel",PointerValue (em));
创建一个错误模型,讲错误率设置为,仿真TCP协议的重传机制。
InternetStackHelper stack;
(nodes);
为每个节点安装协议栈;
Ipv4AddressHelper address;
("", "");
Ipv4InterfaceContainer interfaces = (devices);
为每个节点的网络设备添加IP地址;
这样一个简单的网络拓扑就建立完成。
接下来就是为这个网络节点添加应用程序,让他们在这个网络中模拟传输数据,具体代码如下:
uint16_t sinkPort = 8080;
Address sinkAddress (InetSocketAddress (1), sinkPort));
PacketSinkHelper packetSinkHelper ("ns3::TcpSocketFactory", InetSocketAddress (Ipv4Address::GetAny (), sinkPort));
ApplicationContainer sinkApps = (1));
(Seconds (0.));
(Seconds (10.));
将接受数据的应用程序设置在(1)节点上,端口设置为8080;程序起始时间为0s,终止时间为10s;
Ptr<MyApp> app = CreateObject<MyApp> ();
app->Setup (ns3TcpSocket, sinkAddress, 1040, 1000, DataRate ("1Mbps"));
(0)->AddApplication (app);
app->SetStartTime (Seconds (1.));
app->SetStopTime (Seconds (10.));
将发送数据的应用程序设置在(0);发送起始时间为1s;结束时间为10s;
这样网络拓扑和节点之间应用程序的设定已完成,接下来就是应用统计模块,输出节点之间具体通信性能的参数,及时延,吞吐量,抖动率,丢包率;
NS-3中,有一个回调机制,方便我们来输出具体某个条件发生改变时就自动执行某个函数,回调的实现是TraceConnectWithoutContext函数,举个例子,在我的时延仿真中,输出时延的代码我是这样写的:
static void
CalculateDelay (Ptr<const Packet>p,const Address &address)
{
static float k = 0;
k++;
static float m = -1;
static float n = 0;
n += (p->GetUid() - m)/2-1;
(p);
Time t = ();
std::cout << Simulator::Now ().GetSeconds () << "\t" << () << std::endl;
m = p->GetUid();
}
首先定义一个时延的计算函数,是全局变量函数;
其次在main函数中使用回调机制:
(0)->TraceConnectWithoutContext("Rx", MakeCallback(&CalculateDelay));
含义就是当接受端节点每收到一个TCP包,就会执行一次CalculateDelay函数,计算这个数据包在网络中传输的时延,并输出;
这样就完成了程序的编写;接下来就是输出具体数据:
在终端打开,到指定的文件夹中,输入
./waf --run scratch/delay > 2>&1
按指定格式输出.dat文件之后,再在终端用GNUPLOT来作出.dat文件中的图形即可:
下面用同样的拓扑,应用程序以及同样的错误模型仿真输出TCP拥塞窗口值随时间的变化,抖动率,丢包率,吞吐量:
拥塞窗口随时间的变化:
丢包率
抖动率
吞吐量
在仿真结果中我们可以看到:当网络传输出现差错传输,导致链路拥塞,使得拥塞窗口
值陡然降低,致使链路的时延变大,抖动率变化也比较明显,吞路量也变小。
下面进行WIFI环境下的网络吞吐量的仿真:
拓扑的建立和之前的建立方式大同小异,主要是WIFI多了移动模型的添加,为一个节点添加移动模型的代码如下:
MobilityHelper mobility1;
("ns3::RandomDiscPositionAllocator",
"X", StringValue (""),
"Y", StringValue (""),
"Rho", StringValue
("ns3::UniformRandomVariable[Min=0|Max=20]"));
("ns3::RandomWalk2dMobilityModel",
"Mode",StringValue ("Time"),
"Time",StringValue ("2s"),
"Speed",StringValue
("ns3::ConstantRandomVariable[Constant=100]"),
"Bounds", RectangleValue (Rectangle (-100, 100, -100, 100)));
(0));
这样这个节点就能够随机移动,仿真WIFI下用户随机移动的特点;
仿真的拓扑图如下:
由于节点的移动导致离AP节点的距离不同,因此信道是不断变化的,所以吞吐量也是不断变化的,再次情况下仿真出来的吞吐量如下:
由此可见:链路的吞吐量没有点对点链路那么平整,变化稍微大一点;
四:实验总结
经过这次实验,我体会到其实不管做什么事,只要坚持,并且冷静去寻找解决问题的途径,就能解决所有问题。
这次实验实际来说给的时间并不多,两星期不到,我一开始选择了第四个题目,一个全新的东西,一开始看书,什么都看不明白,不过幸好用的语言是c++,这是唯一幸运的东西。
另外NS-3要求在linux系统下运行,我就赶紧找linux安装教程,之前用过虚拟机,但是特别卡。
之后关于NS-3的安装,挺顺利,没有什么差错。
接下来就是NS-3软件的学习了,由于NS-3比较新,国内的教材很少,但在网上搜索的时候,发现基本没有人看教材,都在看官方文档,于是我就找到了解决这个问题的途径。
一边从简单的例子着手,一边去官方文档中,对照的计算机网络的知识去解释NS-3中的各个模块的作用,含义。
由于NS-3中没有直接描述吞吐量,时延,丢包率以及抖动率的函数或实例,我只好对照着这些参数的原始公式来自己写函数,输出这些性能参数。
这样一点一滴的积累学习最终完成实验。