|
知识路径: > 测试技术的分类 > 网络测试 > 网络仿真技术 > 网络仿真软件 > NS网络仿真软件 >
|
相关知识点:3个
|
|
|
|
NS的核心部分是一个离散事件模拟引擎。NS中有一个“调度器”(Scheduler)类,负责记录当前的时间,调度网络事件队列中的事件,并提供函数产生新事件,指定事件发生的时间。有了这个离散事件模拟引擎,原则上用户可以对任何系统进行模拟,而不限于通信网络系统,用户可以自己完成对所要研究的系统的建模工作,编写各种事件的处理代码,然后利用这个离散事件模拟器来完成对这个模型的模拟。
|
|
|
针对网络模拟,NS已经预先作了大量的模型化工作,NS对网络系统中一些通用的实体已经进行了建模,例如链路、队列、分组、节点等,并用对象来实现了这些实体的特性和功能,这就是NS的构件库。用户可以充分利用这些已有的对象,进行少量的扩展,组合出所要研究的网络系统的模型,然后进行模拟,从而减轻了进行网络模拟研究的工作量,提高了效率。NS的构件库所支持的网络类型包括广域网、局域网、移动通信网、卫星通信网等,所支持的路由方式包括层次路由、动态路由、多播路由等。提供了跟踪和监测的对象,也可以把网络系统中的状态和事件记录下来以便分析。还有数学方面的支持,包括随机数产生、随机变量、积分等。
|
|
|
NS构件库是用两种面向对象的语言编写的:C++和Otcl。其中Otcl是MIT开发的ObjectTcl,即Tcl的面向对象的扩展(Tcl的全称是Toolkit command language,是一种灵活的、交互式的脚本语言,Otcl则是在Tcl中加入了类、实例、继承等面向对象的概念)。NS中的构架通常作为一个C++类来实现,同时,有一个Otcl类与之相对应。这种方式被称为分裂对象模型,构件的主要功能在C++中实现,Otcl中的类主要提供C++对象面向用户的接口。用户通过编写Otcl脚本来对这些对象进行配置、组合,描述模拟过程,调用NS完成模拟。这种方式提高了执行的性能和模拟的效率,增强了构件库的可扩展性和可组合性。
|
|
|