(三)NS3的关键概念
8. NS3关键概念:
1) NODE节点
NODE节点:NS3基本的计算设备被抽象为节点。节点是一台可以添加各种功能的抽象计算机(软硬模块),如节点可以添加应用程序、协议栈、外围卡及其驱动程序(合称网卡)。
节点有C++中的Node类描述。Node类提供了用于管理仿真器中网络组件(抽象表示)的各种方法。如:NodeContainer类,用于追踪一组节点指针。通常,Ns3的拓扑助手类一次能在多个节点上工作,如一个设备助手可以在大量相同节点上安装设备。
创建2个节点:
NodeContainernodes;
nodes.Create(2);
2) Channel信道
Channel信道:基本的通信子网概念被抽象为信道,信道实例可以模拟一条简单的线缆(wire),也可以模拟一个复杂的巨型以太网交换机,甚至可以是无线网络展中充满障碍物的三维空间。
Channel类提供了管理通信子网对象和把节点连接至它们的各种方法。
常见Channel如:
CsmaChannel以太网信道:模拟了一个可以用于实现载波侦听多路访问通信子网的媒介,这个信道具有与以太网相似的功能。
PointTopointChannel:简单的点对点通信,没有多点通信能力,最多有2个点对点连接的设备。
Wi-FiChannel:???
3) NetDevice网络设备
NetDevice网络设备:网卡硬件设备和网卡软件驱动的抽象总和。Ns环境中,网络设备安装在节点上,使得节点能够通过信道和其他节点通信。与实际电脑类似,一个节点可以通过多个网络设备同时连接到多条信道。
NetDevice类提供了管理连接其他节点和信道对象的各种方法。
注意:NetDevice与Channel一一对应安装配置使用。
常见NetDevice:
以太网网络设备,CsmaNetDevice被设计在CSMA信道中工作,即与CsmaChannel信道对应一起工作。
PointToPointNetDevice与PointToPointChannel匹配。
WiFiNetDevice与WiFiChannel匹配。
4) Application应用
Application应用:能够产生一些仿真需要的事件或动作(数据)的基本用户程序被抽象为应用。
传统上,计算机软件分为两大类,系统软件和应用程序软件,两者区别是表现在操作系统的自陷功能的特权级别的不同。Ns3中没有真正的操作系统概念,特别没有特权级别和系统调用。有的只是应用软件的概念,与现实应用类似,仿真时ns3application在ns3的节点上驱动仿真。
Application提供方法管理用户级别的抽象应用。如Application类的实例UdpEchoClientApplication和UdpEchoServerApplication,这些应用程序包含了一个client/server应用来发送和回应仿真网络中的数据分组。同其他生成器类对象类似,UdpEchoServerApplication由UdpEchoServerHelper管理。
5) Topology Helpers 拓扑帮助
Topology Helpers 拓扑帮助:Ns3中nodes附加了Netderivces,在大型仿真网络中,需要配置Nodes, NetDevices和Channel之间大量的连接,如连接Netdevices和Nodes, NetDevices和Channel,IP地址的分配等等,这些常见的工作我们都可以调用拓扑帮助类完成。
For example, it may take many distinctns-3 core operations to
create a NetDevice, add a MACaddress, install that net device on a Node, configure the node’s protocolstack, and then connect the NetDevice to a Channel.Even more operationswould be required toconnect multiple devices onto multipoint
channels and then toconnect individual networks together into internetworks.
参考文献:
[1] ns-3project. ns-3 Software Tutorial. ns-3 project. 2015年2月26日
[2] ns-3project. ns-3 Reference Manual. ns-3 project. 2015年2月26日
[3]《ns-3网络模拟器基础及应用》,人民邮电出版社,马春光 姚建盛,2014年1月
部分参考网络资料,未一一列举,敬请原谅!