用NS进行仿真,使用者需要了解掌握3个方面的知识:掌握网络模拟工具的使用,具有一定的C++编程能力以及熟悉所研究的协议。
首先,使用者必须能够比较熟练地掌握网络模拟工具的使用。无论选用何种仿真工具:OPNET、OMNET或是NS,都需要熟悉其使用方法。俗话说“工欲善其事,必先利其器”,工具是用于开发的,如果对工具尚不甚了解,当然难言利用其开展工作。当选用NS进行网络协议开发和仿真时,一个熟悉NS的人有可能几天或者十几天就可以移植并调试完成一个协议的源码,但对一个生手来说,这将是一个漫长的过程。
其次,使用者需要掌握一定的编程能力。作为商业的网络仿真软件,OPNET和OMNer都需要使用者具备一定的C/C++编程能力,掌握NS的要求则更高。使用NS进行网络仿真需先分析仿真涉及的层次:基于OTcl编程的层次——若只利用NS自身已有的网络组件就可以完成仿真,则无须修改底层C++代码,这时只需编写OTcl脚本;基于C++和OTcl联合编程的层次——NS自身没有使用者需要的网络组件或NS现有的网络组件不够完善,需要在底层编写C++代码完成组件的添加或修改,然后再编写0TCl脚本仿真。大多数情况下的仿真任务(特别是利用NS进行协议的开发)都是后一种情形,所以对C++做相对深入的了解是不可少的。
NS只是我们研究过程中使用的工具,当我们进行网络协议的开发和仿真时,首先要对网络协议有充分的了解,如果我们对所研究的协议内容都尚不熟悉,当然就不可能知道如何设计软件的模块,或者不可能清楚可对NS现有的哪些协议进行改造利用,获得新的协议功能模块。那样的话,即使了解了工具也难以入手做网络协议的仿真和开发。
明白网络仿真需要掌握的知识点内容对我们是很有帮助的。有一些NS使用者,想移植他人的代码,可能会由于移植步骤有误而导致失败;有一些NS使用者想修改现有的一些协议,需要添加一些代码,语法错误会导致修改的失败;也有一些人对所需开发的协议没有完全明了,当然也难以成功。在使用NS时,出现问题往往还是综合性的,这实际上是很多人认为NS很难学的一个主要原因。
展开