论文部分内容阅读
1 引言
在计算机网络技术迅速发展的今天,网络科研人员需要开发新的网络协议,为网络发展做开拓性的研究;网络设计人员需要研究如何利用现有的资源,使设计的网络达到最高效能。无论哪一方面,都需要对网络方案进行分析和评价。通过网络仿真,能对各组件的行为进行较精确的模拟,获得足够数据对系统的性能进行较准确的预测。
NS2(Network Simulator, version 2)是由美国加州Lawrence Berkeley 国家实验室等单位开发的开源免费网络仿真软件。NS2仿真器的功能非常强大,可扩展性强,执行效率高,目前已广泛应用于局域网、广域网、无线移动网和卫星网络的仿真。
2 NS2简介
NS2是一种面向对象的网络仿真器。从整体上可以将NS2分成三个部分,其中两个部分是提供给用户的接口,另外一部分是核心仿真器。用户接口1主要由Tcl/Tk、OTcl扩展解释器构成,用户通过使用TCL/TK、OTcl脚本语言,编写网络仿真脚本文件。脚本语言直观、简洁,用户无需过多了解核心仿真器的内部机制就可以使用NS2。核心仿真器NS2使用C++代码编写,利用了C++面向对象的机制。Tclcl提供了NS2与Tcl/Tk、OTcl解释器的连接。用户接口2是指NAM、Xgraph之类的图形显示工具,仿真器执行用户编写的仿真脚本文件,将运行结果加以记录,随后将记录文件交由NAM程序可视化地显示。
3 NS2的使用与安装
3.1 NS2的使用
NS2网络仿真可以分为两个层次:一个是基于OTcl脚本编程的层次。因为是利用NS2已有的网络元素实现网络仿真,所以这时不需要对NS2本身进行任何修改,只要编写Otcl脚本即可;另一个层次是基于C++和OTcl编程的层次。如果NS2中没有所需的网络元素,这时就需要对NS2进行功能扩展,添加新的网络元素,然后再编写OTcl脚本。使用NS2进行网络仿真的过程归纳为:
(1)分析要解决的问题,设计仿真拓扑结构和仿真模型;
(2)编写OTcl脚本;或扩展NS2类,再重新编译NS2,然后编写OTcl脚本;
(3)用NS2运行OTcl脚本,通过NAM等工具查看网络仿真过程,对仿真结果进行分析。
3.2 NS2的安装
NS2可以运行在Linux、Unix、Windows 等多种操作系统平台上,但是在Unix、Linux平台上的使用更方便。下面介绍在Linux操作系统下的安装步骤。
(1)下载NS2的allinone包ns-allinone-2.30.tar.gz,用tar命令解压缩。具体做法是:tar xzvf ns-allinone-2.30.tar.gz
(2)解压缩完成后,进入ns-allinone-2.30目录,执行./install完成安装。
(3)安装完后,需要设置3个环境变量的值: PATH、LD_LIBRARY_PATH、TCL_LIBRA
RY。为今后使用方便,把3个环境变量的设置放到.bashrc文件中。修改后的.bashrc内容如下所示:
4 仿真实验
利用NS2进行网络仿真,首先设计网络的拓扑结构图。这里采用星型的拓扑结构,网络中有5个节点,其中0、1、2号节点是发送节点,4号节点是接收节点,3号节点是中继节点。然后编写Tcl脚本文件。先创建一个NS2仿真对象,接着创建节点和链路,配置其属性。因为设计了3个发送源,所以需要对3个发送源设定不同的属性,比如:包的大小、带宽、延时等。脚本文件完成后,用NS2执行仿真脚本文件。图1是NAM显示。由NAM显示,可以很清晰地看到仿真过程。图2是Xgragh的显示效果。通过Xgragh,清楚地展现了整个模拟过程的数据流随时间而发生的变化。
5 小结
网络仿真是指通过建立网络设备和链路的模型,模拟网络流量的传输,从而获取网络设计或优化所需要的网络性能数据。随着网络系统复杂度的增大,传统的分析法和实验法越来越不适应网络系统的特点,仿真法成为网络性能分析的主流方法。NS2是一个由UC Berkeley开发的用于仿真各种以IP网络为主的优秀仿真软件,目前已广泛应用于计算机网络的研究与设计中。
参考文献
[1]徐雷鸣.NS2与网络模拟[M].北京:人民邮电出版,2003.6.
[2]朱军正.Red Hat Linux Fedora Core4基础教程[M].北京:清华大学出版社,2005.8.
[3]NS by Example:http:// nile.wpi.edu / NS / [OL].
[4]Ns tutorial:http://www.isi.edu /nsnam/ns /
tutorial/index.html [OL].
[5]NS2教学手册.http://140.116.72.80/ ~small ko/ns2/ns2.htm [OL].
———————————
作者简介:李蓬(1975-),山东省东营市人,硕士,北京建筑工程学院电气与信息工程学院讲师。主要研究方向:计算机网络及网络安全。
在计算机网络技术迅速发展的今天,网络科研人员需要开发新的网络协议,为网络发展做开拓性的研究;网络设计人员需要研究如何利用现有的资源,使设计的网络达到最高效能。无论哪一方面,都需要对网络方案进行分析和评价。通过网络仿真,能对各组件的行为进行较精确的模拟,获得足够数据对系统的性能进行较准确的预测。
NS2(Network Simulator, version 2)是由美国加州Lawrence Berkeley 国家实验室等单位开发的开源免费网络仿真软件。NS2仿真器的功能非常强大,可扩展性强,执行效率高,目前已广泛应用于局域网、广域网、无线移动网和卫星网络的仿真。
2 NS2简介
NS2是一种面向对象的网络仿真器。从整体上可以将NS2分成三个部分,其中两个部分是提供给用户的接口,另外一部分是核心仿真器。用户接口1主要由Tcl/Tk、OTcl扩展解释器构成,用户通过使用TCL/TK、OTcl脚本语言,编写网络仿真脚本文件。脚本语言直观、简洁,用户无需过多了解核心仿真器的内部机制就可以使用NS2。核心仿真器NS2使用C++代码编写,利用了C++面向对象的机制。Tclcl提供了NS2与Tcl/Tk、OTcl解释器的连接。用户接口2是指NAM、Xgraph之类的图形显示工具,仿真器执行用户编写的仿真脚本文件,将运行结果加以记录,随后将记录文件交由NAM程序可视化地显示。
3 NS2的使用与安装
3.1 NS2的使用
NS2网络仿真可以分为两个层次:一个是基于OTcl脚本编程的层次。因为是利用NS2已有的网络元素实现网络仿真,所以这时不需要对NS2本身进行任何修改,只要编写Otcl脚本即可;另一个层次是基于C++和OTcl编程的层次。如果NS2中没有所需的网络元素,这时就需要对NS2进行功能扩展,添加新的网络元素,然后再编写OTcl脚本。使用NS2进行网络仿真的过程归纳为:
(1)分析要解决的问题,设计仿真拓扑结构和仿真模型;
(2)编写OTcl脚本;或扩展NS2类,再重新编译NS2,然后编写OTcl脚本;
(3)用NS2运行OTcl脚本,通过NAM等工具查看网络仿真过程,对仿真结果进行分析。
3.2 NS2的安装
NS2可以运行在Linux、Unix、Windows 等多种操作系统平台上,但是在Unix、Linux平台上的使用更方便。下面介绍在Linux操作系统下的安装步骤。
(1)下载NS2的allinone包ns-allinone-2.30.tar.gz,用tar命令解压缩。具体做法是:tar xzvf ns-allinone-2.30.tar.gz
(2)解压缩完成后,进入ns-allinone-2.30目录,执行./install完成安装。
(3)安装完后,需要设置3个环境变量的值: PATH、LD_LIBRARY_PATH、TCL_LIBRA
RY。为今后使用方便,把3个环境变量的设置放到.bashrc文件中。修改后的.bashrc内容如下所示:
4 仿真实验
利用NS2进行网络仿真,首先设计网络的拓扑结构图。这里采用星型的拓扑结构,网络中有5个节点,其中0、1、2号节点是发送节点,4号节点是接收节点,3号节点是中继节点。然后编写Tcl脚本文件。先创建一个NS2仿真对象,接着创建节点和链路,配置其属性。因为设计了3个发送源,所以需要对3个发送源设定不同的属性,比如:包的大小、带宽、延时等。脚本文件完成后,用NS2执行仿真脚本文件。图1是NAM显示。由NAM显示,可以很清晰地看到仿真过程。图2是Xgragh的显示效果。通过Xgragh,清楚地展现了整个模拟过程的数据流随时间而发生的变化。
5 小结
网络仿真是指通过建立网络设备和链路的模型,模拟网络流量的传输,从而获取网络设计或优化所需要的网络性能数据。随着网络系统复杂度的增大,传统的分析法和实验法越来越不适应网络系统的特点,仿真法成为网络性能分析的主流方法。NS2是一个由UC Berkeley开发的用于仿真各种以IP网络为主的优秀仿真软件,目前已广泛应用于计算机网络的研究与设计中。
参考文献
[1]徐雷鸣.NS2与网络模拟[M].北京:人民邮电出版,2003.6.
[2]朱军正.Red Hat Linux Fedora Core4基础教程[M].北京:清华大学出版社,2005.8.
[3]NS by Example:http:// nile.wpi.edu / NS / [OL].
[4]Ns tutorial:http://www.isi.edu /nsnam/ns /
tutorial/index.html [OL].
[5]NS2教学手册.http://140.116.72.80/ ~small ko/ns2/ns2.htm [OL].
———————————
作者简介:李蓬(1975-),山东省东营市人,硕士,北京建筑工程学院电气与信息工程学院讲师。主要研究方向:计算机网络及网络安全。