NS3完全用C++编写(可选Python接口),脚本采用C++或Python语言,根据其四种类型的网络构件。其脚本仿真大致步骤如下[7]:
a)    创建节点Node(使用类NodeContainer::Create( )方法)NS-3的节点搭示意图如图2.1;  
图2.1 NS-3节点搭建示意图
b) 使用链路Helper类来帮助设置链路(包括PointToPointHelper、CsmaHelper、WifiHelper等类型)。Helper类虽然不属于上述四类的网络构件,但它却极大地方便了拓扑的搭建,它可以帮助处理实际中诸如在两个终端安装网卡、连网线、Modern、配置上网方式、链路属性等底层工作,简化了仿真过程,使软件可以更专注于仿真的目的,如图2.2说明的是Channel通道模块;
c) 安装IP协议栈(使用类InternetStackHelper::Install( )方法) 图2.3说明Socket接口类;
d) 设置IP地址(使用类Ipv4AddressHelper::SetBase( )/Assign( )方法);
e) 在节点Node上安装应用程序(目前支持UdpServerServer、UdpEchoClient、PacketSink等);
f) 设置仿真时间、启动仿真
NS-3中提供了很多查看仿真结果的工具,例如Logging Module、Command Line参数或者Tracing System等,通过仿真结果的反馈我们可以修改脚本中的一些参数,对仿真进行微调,使仿真得到较好的结果。
 
图2.2 Channel通道模块
 
图2.3 Socket接口类
NS-3的基本模型共分为五层[8]:应用层Applications,传输层Transport layer,网络层Network layer,连接层Link layer,物理层Physical layer。其中应用层Applic-,ation传输层Transport layer,网络层Network layer与TCP/IP模型中的应用层、传输层、Internet层是相对应的,其包含了基本的模型,如图2.4所示。图2.5指出了NS-3系统网络构建的模型。另外连接层Link layer,物理层Physical layer与TCP/IP模型中的网络接口层相对应。NS-3相比NS-2在各层上进行了更大的改进。
 
图2.4 ns-3基本模型涵盖功能
 
图2.5 NS-3系统网络构件模型

2.2 NS-3网络构件
2.2.1 NS-3网络仿真构成
在进行仿真时,需要了解仿真软件中已有的网络构件,才能拥有正确的思路以及合理的方法去实现仿真。在NS-3中采用四种类型的网络构件,分别是Node、Net Device、Channel、Application。
Node(节点):在Internet术语中,连接在网络两端的通常称为host(主机)或 end system(终端机),由于NS-3是一个网络模拟器,而不是一个专门的Internet模拟器,因此将不再采用和Internet紧密相关的术语host或end system,相反,我们用一个更加通用的术语Node(结点)。
Application(应用程序):NS-3中的应用程序与普通的计算机应用程序不同,NS-3没有明确的操作系统或者系统调用的概念,仅仅有一个应用程序的概念。就像系统程序运行在实际的计算机系统中,NS-3的应用程序运行在NS-3的结点(node)上。在NS-3中用了基于C++的两个专门的应用程序类UdpEchoClientApplication 和UdpEchoServerApplication来创建一个用于在模拟网络中传送数据包的客户机/服务器模型。
Channel(通道):在真实的环境中,可以将计算机连接到网络中,用于数据传输的媒介称为Channel,例如可以通过电缆线接入到以太网中;在NS-3的虚拟世界中,可以将Node连接到虚拟网络的结点中。同样,在Channel里也采用了基于C++的专门的类来定义Channel,用了多个这种专门的类来定义Channel的不同属性,这些类有CsmaChannel,PointToPointChannel and WifiChannel CsmaChannel。例如,CsmaChannel为一个采用多址接入协议的通信网络定义了一个模型,类似于以太网中的多址接入功能。
Net Device(网络设备):Net Device安装在Node中,以使Node可以通过Channel与其他Nodes进行通信,类似于真实网络中的网卡。Net Device是由基于C++的类NetDevice定义的。CsmaNetDevice用于CsmaChannel; PointTo-PointNetDevice用于PointToPointChannel;WifiNetNevice用于Wifi-Channel。
上一篇:基于ON/OFF算法的网络时间隐蔽信道的设计与实现
下一篇:VC++五子棋游戏设计+流程图

Android全国天气移动终端应用程序设计研究

java景点移动导游系统设计与实现

Android基于地理位置LBS移动急救系统设计

移动安防系统Android客户端的设计与实现

java+mysql移动医生系统设计与实现服务端设计

基于移动终端的智能监控系统的APP开发

移动安防系统iOS客户端的设计与实现

压疮高危人群的标准化中...

酵母菌发酵生产天然香料...

从政策角度谈黑龙江對俄...

STC89C52单片机NRF24L01的无线病房呼叫系统设计

浅谈高校行政管理人员的...

AES算法GPU协处理下分组加...

提高教育质量,构建大學生...

上海居民的社会参与研究

基于Joomla平台的计算机学院网站设计与开发

浅论职工思想政治工作茬...