第1章 初识NS-2
1.1 NS-2概述
NS是Network Simulator的英文缩写,字面翻译即为网络模拟器,又称网络仿真器。NS-2则是网络模拟器的第2版。
NS-2(Network Simulator,version 2)是一款开放源代码的网络模拟软件,*初由加州大学伯克利分校(UC Berkeley)开发。它*初的开发目的是为了研究大规模网络以及当前和未来网络协议的交互行为。它为模拟研究有线和无线网络上的TCP、路由和多播等协议提供了强有力的支持。Ns-2是一个开放源代码软件,任何人可以获得、使用和修改其源代码。正因为如此,世界各地的研究人员每天都在扩展和更新它的功能,为其添加新的协议和功能。它也是目前网络研究领域应用*广泛的网络模拟软件之一。
NS-2是一种面向对象的网络模拟器,它本质上是一个离散事件模拟器,其本身有一个虚拟时钟,所有的模拟都由离散事件驱动。目前NS-2可以用于模拟各种不同的通信网络。它功能强大,模块丰富,已经实现的主要模块有:网络传输协议,如TCP和UDP;业务源流量产生器,如FTP、Telnet、Web、CBR和VBR;路由队列管理机制,如Droptail、RED和CBQ;路由算法,如Dijkstra;以及无线网络WLAN、移动IP和卫星通信网络等模块。NS-2也为进行局域网的模拟而实现了多播协议以及一些MAC子层协议。
NS-2使用了被称为分裂对象模型的开发机制,采用c++和OTcl两种开发语言进行开发。它们之间采用TclCL进行自动连接和映射。考虑效率和操作便利等因素,NS将数据通道和控制通道的实现相分离。为了减少分组和事件的处理时间,事件调度器和数据通道上的基本网络组件对象都使用c++编写,这些对象通过TclCL映射对0Tcl解释器可见。这样,用户只需要通过简单易用的TcI/OTcl脚本编写出模拟代码,对网络拓扑、节点、链路等各种部件和参数进行方便快速的配置。NS-2可以说是0Tcl的脚本解释器,它包含模拟事件调度器、网络组件对象库等。事件调度器控制模拟的进程,在适当时间激活事件队列中的当前事件,并执行该事件。网络组件模拟网络设备或节点的通信,它们通过制定模拟场景和模拟进程,交换特定的分组来模拟真实网络情况,并将执行情况记录到日志文件(称为Trace文件)中,以提供给模拟用户进行分析解读,获取模拟结果。NS-2采用这种分裂模型既提高了模拟效率,加快了模拟速度,又增强了模拟配置的灵活
性和操作的简便性。
……