网络分析与测试实验
XXX XXXXXXXX 网络工程2010-2班
实验二使用NS2模拟有线网络
一、实验目的
深入学习NS2的使用方法,学习使用NS2模拟有线网络的开发方法。
二、实验内容
(1)构建有线网络的基本拓扑;
(2)配置网络节点、链路和协议的参数;
(3)使用Tcl脚本语言描述配置信息;
(4)实现有线网络的模拟,分析不同配置下的输出结果。
三、实验步骤
1.构建有线网络的基本拓扑
2. 这个网络拓扑定义了6个节点,每个节点之间的连接设置成双工格式,在0,1节点设置两个UDP发送节点,在4,5节点设置两个agent 接收节点,设置传送的数据包大小为1500,然后再在UDP连接中定义一个数据流量发送器(包括它的包的大小、速率大小、停止时间和开始时间),最后定义一个finish函数来完成清理现场的工作,进而完成网络节点、链路和协议的参数的配置。
3.tcl的源程序:
set val(stop) 5.0 ;# time of simulation end #Create a ns simulator
set ns [new Simulator]
#Open the NS trace file
set tracefile [open out.tr w]
$ns trace-all $tracefile
#Open the NAM trace file
set namfile [open out.nam w]
$ns namtrace-all $namfile
#Create 6 nodes
set n0 [$ns node]
set n1 [$ns node]
set n2 [$ns node]
set n3 [$ns node]
set n4 [$ns node]
set n5 [$ns node]
#Createlinks between nodes
$ns duplex-link $n0 $n2 2.0Mb 10ms DropTail
$ns queue-limit $n0 $n2 10
$ns duplex-link $n1 $n2 2.0Mb 10ms DropTail
$ns queue-limit $n1 $n2 10
$ns duplex-link $n4 $n3 2.0Mb 10ms DropTail
$ns queue-limit $n4 $n3 10
$ns duplex-link $n3 $n2 1.0Mb 20ms DropTail
$ns queue-limit $n3 $n2 10
$ns duplex-link $n3 $n5 2.0Mb 10ms DropTail
$ns queue-limit $n3 $n5 10
#Give node position (for NAM)
$ns duplex-link-op $n0 $n2 orient right-down
$ns duplex-link-op $n1 $n2 orient right-up
$ns duplex-link-op $n4 $n3 orient left-down
$ns duplex-link-op $n3 $n2 orient left
$ns duplex-link-op $n3 $n5 orient right-down
#Setup a UDP connection
set udp0 [new Agent/UDP]
$ns attach-agent $n0 $udp0
set null2 [new Agent/Null]
$ns attach-agent $n4 $null2
$ns connect $udp0 $null2
$udp0 set packetSize_ 1500
#Setup a UDP connection
set udp1 [new Agent/UDP]
$ns attach-agent $n1 $udp1
set null3 [new Agent/Null]
$ns attach-agent $n5 $null3
$ns connect $udp1 $null3
$udp1 set packetSize_ 1500
#Setup a CBR Application over UDP connection set cbr0 [new Application/Traffic/CBR]
$cbr0 attach-agent $udp0
$cbr0 set packetSize_ 1500
$cbr0 set rate_ 1.0Mb
$cbr0 set random_ null
$ns at 1.0 "$cbr0 start"
$ns at 4.0 "$cbr0 stop"
#Setup a CBR Application over UDP connection set cbr1 [new Application/Traffic/CBR]
$cbr1 attach-agent $udp1
$cbr1 set packetSize_ 1500
$cbr1 set rate_ 1.0Mb
$cbr1 set random_ null
$ns at 2.0 "$cbr1 start"
$ns at 3.0 "$cbr1 stop"
#Define a 'finish' procedure
proc finish {} {
global ns tracefile namfile
$ns flush-trace
close $tracefile
close $namfile
exec nam out.nam &
exit 0
}
$ns at $val(stop) "$ns nam-end-wireless $val(stop)" $ns at $val(stop) "finish"
$ns at $val(stop) "puts \"done\" ; $ns halt"
$ns run
4.在cygwin中运行startwin.bat,如下图:
5.打开新建的有线网络配置文件wired.tcl
6.运行结果如下图:
7.分析运行结果:
1)在S=1s时,节点0到节点4的数据流量启动,如下图:
2)在S=2s后,节点1到节点5的数据流量启动,如下图:
3)在S=3s后,节点1到节点5的数据传输停止
4)在S=4s后,节点0停止向节点4传输数据
四、实验体会
经过第一次安装NS2的实验,已经对NS2有了一定的了解。
在此基础上,我认真研究了NS2的原理与基本应用,对它的使用有了一定的了解,同时也能理解一些简单的tcl 脚本的配置。
之后,我通过一些资料,成功地完成了这次实验。