NS2概述

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

提示:这里可以添加本文要记录的大概内容:

认识NS

模拟:“将物理系统中的特征参数提取出来,进行行为描述

仿真:用数据来处理模拟的系统

通信网络模拟:用计算机程序对通信网络进行模型化,通过程序的允许模拟通信网络的运行过程


一、网络研究方法

1.分析方法

对所研究的对象和网络系统进行初步分析

根据一定的限定条件和合理假设 

对研究对象和系统进行描述

抽象出研究对象的`数学分析模型`

利用数学分析模型对问题进行求解

2.实验方法

	设计出研究所需要的硬件和软件配置环境

	建立实验

	在现实网络上对网络协议、网络行为和网络性能的研究

3.模拟方法

应用网络模拟软件,建立所研究的网络系统的模拟模型,运行模型,并分析运行的输出结果

二、使用原理

#离散时间模拟器.

  1. 事件规定了系统状态的改变,状态的修改仅在事件发生时进行
    2. 模拟器所做的就是不停地处理一个个事件,直到所有的事件都被处理完或者某一特定的事件发生位置

2.丰富的构件库

1、用户可以充分利用这些已有对象,进行少量扩展,组合出所要研究的网络系统的模型,然后进行模型

3、分裂对象模型

C++:实现功能的模拟

Otcl:解释执行,可在不必重新编译的情况下随意修改模拟参数和模拟过程,提高了模拟的效率

Tcl的面向对象的扩展,在tcl中加入类、实例、继承等面向对象的概念;

NS中的构件一般是由C++类和Otcl的类相互作用的结果

2.代码

set ns [new Simulator]          //  建立一个Simulator对象的实例,并将其赋值给ns                                                             

 set tracefd [open example.tr w]  //打开一个example.tr的trace的文件,
																	  //用于记录跟踪的数据,并赋值给tracefd
$ns trace-all $tracefd            
 set namtracefd  [open example1.nam w]//打开一个example1.nam的文件,
																			  //用来记录nam的trace的数据
 $ns namtrace-all $namtracefd

proc finish{} {             //建立一个名为finish的过程,
														  //用来关闭两个trace文件,并调用nam程序
  9         global ns tracefd namtracefd
 10         $ns flush-trace
 11         close $tracefd
 12         close $nametracefd
 13         exec nam example1.nam&
 14         exit 0
 15 }
 16 
 17 set n0  [$ns node]  //新建两个节点,并分别赋值给n0和n1
 18 set n1  [$ns node]
 19 
 20 $ns duplex-link $n0 $n1 1Mb 10ms Drop Tail//在两个节点间建立一个双向的link,
 //该链路的带宽为1M,延迟为10ms
                                              //队列类型为DropTail
 21 
 22 set udp0 [new Agent/UDP]     //新建一个UDP Agent并吧它绑定到n0上
 23 $ns attach-agent $n0 $udp9 
 24 
 25 set cbr0        [new Application/Traffic/CBR] //新建一个CBR,
 //(Constant Bit Rate,恒定流量速率)设置流量的类型,
 //包含分组大小、间隔事件、并绑定到udp0上
 26 $cbr0   set     packetSize_ 500
 27 $cbr0   set     interval_ 0.005
 28 $cbr0   attach-agent    udp0
 29 
 30 set null0       [new    Agent/Null] //新建一个Null Agent并把它绑定到n1上,Null是一种数据接收器(traffic sink)
 31 $ns attach-agent        $n1     $null0 //将udp0和null0这两个Agent连接起来
 32 
 33 $ns     connect $udp0   $null0
 34 
 35 $ns at 0.5      "$cbr0  start"//让cbr0在0.5s时发送数据
 36 $ns at 4.5      "$cbr0  stop"//让cbr0在4.5s时结束数据
 37  
 38 $ns at  5.0     "finish" //告知Simulation对象在5.0s调用finish过程
 39 
 40 $ns runp

总结

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值