数据通信实验报告

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

电子科技大学

实验报告

实验一

NS2的基础使用

NS2是一种提供虚拟环境进行网络模拟仿真,能验证网络性能的正确性和进行相关性能测试的软件。

一、实验环境:

Ubuntu 12.04/kernel 3.5

GCC 4.6.3

NS-2.33

二、网络拓扑:

实验共有6个节点,每个节点的连接情况如图所示。其中节点N0、N2和节点N1、N2连接,N3、N4和N4、N5连接,N2和N3连接。从0号节点到2号节点,带宽为2Mb,延时为10ms。

三、实践步骤:

切换到用户根目录下cd ~

建立自己的文件夹mkdir your_document_name

进入刚刚新建的文件夹cd your_document_name

新建一个TCL 脚本文件gedit your_TCL_file_name.tcl

#Here is the beginning of this code file

set val(stop) 5.0 ;# 模拟器结束时间

#新建一个NS 模拟对象

set ns [new Simulator]

#打开NS 追踪文件

set tracefile [open out.tr w]

$ns trace-all $tracefile

#打开NAM 追踪文件

set namfile [open out.nam w]

$ns namtrace-all $namfile

#新建6 个节点

set n0 [$ns node]

set n1 [$ns node]

set n2 [$ns node]

set n3 [$ns node]

set n4 [$ns node]

set n5 [$ns node]

#建立节点之间的链路,格式解释如下

#duplex-link 双向链路可选选项(duplex-link,simple-link 单向链路)

#$n0 $n2 表明从0 号节点到2 号节点

#2.0Mb 申明链路传输速率,可使用Mb,Kb,b

#10ms 申明链路传输延迟

#DropTail 队列类型

$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

#为NAM 创建节点位置描述,以第一个为例,2 号节点在0 号节点的右下方

$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

#新建一个UDP 连接

set udp0 [new Agent/UDP]

#将0 号节点Agent/UDP 绑定,以下类似

$ns attach-agent $n0 $udp0

set null2 [new Agent/Null]

$ns attach-agent $n4 $null2

#将Agent/UDP 及Agent/Null 节点进行连接

$ns connect $udp0 $null2

#设置Agent/UDP 包大小

$udp0 set packetSize_ 1500

#新建另一个UDP 连接

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

#在UDP 连接上新建一个CBR 应用

set cbr0 [new Application/Traffic/CBR]

$cbr0 attach-agent $udp0

$cbr0 set packetSize_ 1500

$cbr0 set rate_ 1.0Mb

$cbr0 set random_ null

#在第1 秒,$cbr0 服务开始发送

$ns at 1.0 "$cbr0 start"

#在第4 秒,$cbr0 服务停止发送

$ns at 4.0 "$cbr0 stop"

#在UDP 连接上新建一个CBR 应用

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"

#定义一个'finish'过程用以处理模拟结束之后需要完成的动作proc finish {} {

#申明使用外部变量

global ns tracefile namfile val

$ns at $val(stop) "$ns nam-end-wireless $val(stop)"

#清空追踪区域

$ns flush-trace

#关闭trace 文件

close $tracefile

#关系nam 文件

close $namfile

#执行系统命令nam out.nam

exec nam out.nam &

exit 0

}

#在val(stop)时间调用finish 过程

$ns at $val(stop) "finish"

$ns at $val(stop) "puts \"done\" ; $ns halt"

相关文档
最新文档