Loading...

# 2.ns3 关键抽象

在本节中,我们将总结一些在网络中常用的,但在 ns3 中有特定含义的术语。

# Node

一个连接到网络的计算设备被称为主机,有时也被称为终端系统。因为 ns3 是一个网络模拟器,在 ns3 中,基本的计算设备抽象被称为 NodeC++ 中由 Node 类实现。Node 类提供了管理模拟中计算设备的表示方法。人们会添加一些协议,如应用程序、协议栈和外围卡及其相关的驱动程序,以使计算机能够进行有用的工作。我们在 ns-3 中使用同样的基本模型。

# Application

Application 是指可以完成某成某些活动的用户程序。 Application 附着在 Node 上,用来模拟该应用运行在一个节点上的场景。在 ns3 中,应用被抽象为一个基类即 Application 类。目录位于 ns-3.xx/src/applications 下。后续自己创建 customized application , 都需要继承这个类。

# Channel

通常把网络中数据流流过的媒介称为信道。当你把网线插入到路由器时,就是通过信道将计算机与以太网连接。在 ns3 的模拟环境中,你可以把节点连接到代表数据交换信道的对象上。在这里,基本的通信子网这一抽象概念被称为信道,使用 Channel 类描述。一个信道实例可以模拟一条简单的点对点,也可以模拟一个复杂的巨型以太网交换机,甚至是无线网络中充满障碍物的三维空间,同样的我们也可以自定义新的 Channel

# NetDevice

计算机需要通过网络设备才能连接到网络上,如网卡(硬件设备)。而网卡需要软件驱动才能知道从何处取得需要发送至网络中的数据,以及将从网络中获取到的数据发送至计算机的哪个位置。

​ 在 ns3 中,网络设备这一抽象概念相当于硬件设备和软件驱动的综合。 ns3 仿真环境中,网络设备安装在节点上,使得节点通过信道和其他节点通信。像真实计算机一样,一个节点可以通过多个网络设备同时连接到多条信道上。网络设备使用 NetDevice 类描述, NetDevice 类提供管理连接其他节点和信道对象的各种方法,并且允许开发者以面向对象的方法来自定义。几个特定的网络设备有: CsmaNetDevicePointToPointNetDeviceWi-FiNetDevice 。正如以太网卡被设计在以太网中工作一样, CamsNetDevice 被设计在 CSMA 信道中工作,而 PointToPointNetDevicePointToPoint 信道中工作, Wi-FiNetDevice 在 Wi-Fi 信道中工作。

# Topology Helpers

如同现实网络中的主机都默认装有内置网卡一样,把网络设备连接到节点、信道、配置 IP 地址等在 ns3 是很普遍的任务,那么干脆提供 “拓扑生成器” 来使这个工作变得尽可能的容易。举例来说:创建一个网络设备,配置一个 MAC 地址,把此网络设备装载到节点上,设置节点的协议栈以及连接网络设备到一个信道,这些事情都需要许多分立的 ns-3 核心操作。而当需要把许多设备连接到多点信道,在网际间将单个网络设备进行连接时,则需要对 ns-3 核心进行更多的分立操作。此时提供拓扑生成器来整合这些大量分立的步骤,使其成为一个简单易用的操作。

​ 很明显, Helper 类可以极大地方便用户。例如 TopologyReaderHelper 类可以使得更容易配置和使用通用的 TopologyReader 。再如类 InternetStackHelper 是一个安装 PointToPointHelper 对象和点到点网络设备的网络协议栈的拓扑生成器,它会为每一个节点容器中的节点安装一个网络协议栈(如 TCP、UDP 和 IP 等)。

更新于 阅读次数

请我喝[茶]~( ̄▽ ̄)~*

jluyeyu 微信支付

微信支付

jluyeyu 支付宝

支付宝