网络分析专家论坛 netexpert's Archiver

xia_shou 发表于 2006-12-12 20:23

网络模拟软件NS—2

美国DARPA支持的项目(Virtual IterNet Testbed)开发了通用的多协议网络模拟软件NS—2,了解的介绍下好吗?

xia_shou 发表于 2006-12-12 20:30

网络模拟环境 NS-2仿真软件简介

网络模拟环境 NS-2仿真软件简介
对于如何验证网络协议的正确性和进行相关性能测试,人们提出了很多方法,目前最广泛使用的方法就是通过虚拟环境进行模拟仿真。NS-2是进行网络仿真最流行的软件,已广泛被用于进行网络分析、研究和教学。它支持众多的协议,并提供了丰富的测试脚本。

NS-2全称是Network Simulator Version 2。它是面向对象的,离散事件驱动的网络环境模拟器,主要用于解决网络研究方面的问题。NS-2提供在无线或有线网络上,TCP、路由、多播等多种协议的模拟。

NS-2最早来源与1989年的Real Network Simulator项目,经过多年的发展之后,于1995年得到施乐公司(Xerox)的支持,加入VINT项目。NS一直以来都在吸收全世界各地研究者的成果,包括UCB、CMU等大学和SUN等公司的无线网络方面的代码。

NS-2由两种编程语言,OTCL(具有面向对象特性的TCL脚本程序设计语言)和C++实现。之所以使用两种编程语言,是因为模拟器有两方面的事情需要做。一方面,具体协议的模拟和实现,需要一种程序设计语言,能够高效率的处理字节(Byte),报头(Packet Header)等信息,能够应用合适的算法在大量的数据集合上进行操作。为了实现这个任务,程序内部模块的运行速度(run-time speed)是非常重要的,而运行模拟环境的时间、寻找和修复bug的时间,重新编译和运行的时间(run-around time)不是很重要。这种情况下,C++语言是非常合适的。

另一方面,许多网络中的研究工作都围绕着网络组件和环境的具体参数的设置和改变而进行的,需要在短时间内快速的开发和模拟出所需要的网络环境(scenarios),并且方便修改和发现、修复程序中的Bug。在这种任务中,网络环境布置的时间就显得很重要了,因为模拟环境的建立和参数信息的配置只需要运行一次。这种情况下,脚本语言有很大优势,具有面向对象特性的TCL脚本语言可以浞致 阈枨蟆 S-2的内部类结构如图1所示。 图1:NS-2类结构图

NS-2中节点的结构与实际环境中的网络节点非常相似,如图2所示。对于一个网络节点来说,有IP地址和端口号,这对应的就是图中的地址分类器(Address Classifier)和端口分类器(Port Classifier)。当TCP数据包从节点入口处(Node Entry)进来节点之后,首先在地址分类器处通过IP包头判断IP地址是否与本节点相同,如果相同则进入端口分类器,通过TCP包头获得数据包的目的端口,并把数据包发送到节点相应的端口进行处理;如果在地址分类器处发现数据包的目的IP地址与本节点不同,就将数据包重新发送进入链路,以供其他节点处理。
图2:NS-2节点结构图
总之,NS-2提供了一个很好的试验平台。它使用两种语言,C++有利于快速的运行速度;TCL则有利于快速建立试验环境。NS-2中的实体结构也非常清晰,有利于构建新的网络协议和网络实体。(T114)

xia_shou 发表于 2006-12-19 20:15

网上入门的资料

看到别人介绍ns2的课件,不知道有人喜欢吗?

pctj 发表于 2006-12-25 22:53

这个出来好多年了
台湾那边有比较多的介绍
我曾尝试过搭建它的编译环境,忒难的阿!

[[i] 本帖最后由 pctj 于 2006-12-25 22:54 编辑 [/i]]

dli 发表于 2007-1-19 10:32

回复 #3 xia_shou 的帖子

非常感谢!
这里有朋友用NS2做过网络测量(带宽,可用带宽等)没有?

幽魔琴 发表于 2007-2-4 13:25

曾经见过的
:victory:

illidan 发表于 2007-3-1 14:28

[quote]原帖由 [i]dli[/i] 于 2007-1-19 10:32 发表
非常感谢!
这里有朋友用NS2做过网络测量(带宽,可用带宽等)没有? [/quote]
仿真软件是用来做协议开发和验证、网络规划的。一般不用来做测量。

swiping 发表于 2007-3-28 09:31

ns2的仿真功能似乎可以进行测量,但是总觉得有点杀鸡用牛刀

dingyinggui 发表于 2008-4-23 14:44

ns2仿真ipv6网络下区分服务

请问一下ns2中ipv6(有线网络)节点如何设置?例如地址类型(我现在查到了三种地址类型:def,expanded,hierachical 。不知道哪一种是设置ipv6节点的.);ns2.32中ipv6(有线网络)模块是不是已存在里面了?

dingyinggui 发表于 2008-4-25 16:00

ns2仿真ipv6网络下区分服务

请问一下ns2中ipv6(有线网络)节点如何设置?例如地址类型(我现在查到了三种地址类型:def,expanded,hierachical 。不知道哪一种是设置ipv6节点的.);ns2.32中ipv6(有线网络)模块是不是已存在里面了?

dingyinggui 发表于 2008-4-25 16:15

ns2仿真(ipv6有线网络)区分服务

请问各位高手:
ns2下怎样仿真ipv6有线网络区分服务?
我看了ns2中自带的模拟区分服务程序,不知该程序能否实现ipv6有线网络区分服务?
如能该怎样修改才能实现ipv6有线网络区分服务?

谢谢!

页: [1]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.