NS3中的几个关键概念

节点Node

在网络术语中,任何一台连接到网络的计算设备被称为主机,亦称为终端。NS3是一个网络模拟器,而非一个专门的因特网模拟器,为此我们避开术语“主机”,因为这个词太容易让人联想到因特网和及其相关协议。因此,我们选用了一个来源于图论,在其他网络模拟器中亦广泛使用的术语:节点。

NS3中基本计算设备被抽象为节点。节点由用C++编写的Node类来描述。Node类提供了用于管理计算设备的各种方法。

可以将节点设想为一台可以添加各种功能的计算机。为了使一台计算机有效地工作,我们可以给它添加应用程序,协议栈,外设卡及驱动程序等。NS3采用了与此相同的模型。

信道

在现实世界中,人们可以把计算机连接到网络上。通常我们把网络中数据流流过的媒介称为信道。当你把以太网线插入到墙壁上的插孔时,你正通过信道将计算机与以太网连接。

在NS3中,可以把节点连接到代表数据交换信道的对象上。在这里,基本的通信子网这一抽象概念被称为信道,用C++编写的Channel类来描述。

Channel类提供了管理通信子网对象和把节点连接至信道的各种方法。信道类同样可以由开发者以面向对象的方法自定义。一个信道实例可以模拟一条简单的线缆(wire),也可以模拟一个复杂的巨型以太网交换机,甚至无线网络中充满障碍物的三维空间。

几个信道模型的实例,包括:CsmaChannel,PointToPointChannel和WifiChannel。举例来说,CsmaChannel信道模拟了用于一个可以实现载波侦听多路访问的信道,这个信道具有和以太网相似的功能。

网络设备

如果想把一台计算机连接到网络上,必须在计算机上安装有网卡。一张网卡如果缺少控制硬件的软件驱动是不能工作的。

在Unix/Linux系统中,外围硬件被划为“设备”。设备通过驱动程序来控制,而网卡通过网卡驱动程序来控制。在Unix/Linux系统中,网卡被称为像eth0这样的名字。

在NS3中,网络设备这一抽象概念相当于硬件设备和软件驱动的总和。NS3仿真环境中,网络设备相当于安装在节点上,使得节点通过信道和其他节点通信。像真实的计算机一样,一个节点可以通过多个网络设备同时连接到多条信道上。

网络设备由用C++编写的NetDevice类来描述。NetDevice类提供了管理连接其他节点和信道对象的各种方法,并且允许开发者以面向对象的方法来自定义。我们在本教程中将使用几个特定的网络设备的实例,它们分别是CsmaNetDevice,PointToPointNetDevice, 和WifiNetDevice。正如以太网卡被设计成在以太网中工作一样,CsmaNetDevice被设计成在csma信道中工作,而PointToPointNetDevice在PointToPoint信道中工作,WifiNetNevice在wifi信道中工作。

应用程序

计算机软件通常可分为两大类:系统软件和应用软件。系统软件根据计算模型配置,并管理计算机中的各种资源,如内存,处理器周期,硬盘,网络等。系统软件通常并不直接使用这些资源来完成用户任务。用户往往需要运行应用程序来完成一些特定的任务,而应用程序需要使用由系统软件控制的资源。

通常,系统软件和应用软件的界线表现为特权级别的变化,而这种变化是通过操作系统的自陷功能(operating systemtraps)来实现的。在NS3中并没有真正的操作系统的概念,更没有特权级别或者系统调用的概念。然而,我们有应用程序的概念。正如“现实世界”中在计算机上运行应用程序以执行各种任务一样,NS3仿真环境中的应用程序在节点上运行来驱动模拟过程。

在NS3中,需要被仿真的用户程序被抽象为应用。用Application类来描述。这个类提供了管理仿真过程中用户层应用的各种方法。开发者应当用面向对象的方法自定义和创建新的应用。在本教程中,我们会使用Application类的两个实例:UdpEchoClientApplication和UdpEchoServerApplication。这些应用程序包含了一个client应用和一个server应用来发送和回应仿真网络中的数据包。

你可能感兴趣的:(NS3中的几个关键概念)