📄 simple-eqp1.tcl
字号:
## Copyright (C) 1997 by USC/ISI# All rights reserved. # # Redistribution and use in source and binary forms are permitted# provided that the above copyright notice and this paragraph are# duplicated in all such forms and that any documentation, advertising# materials, and other materials related to such distribution and use# acknowledge that the software was developed by the University of# Southern California, Information Sciences Institute. The name of the# University may not be used to endorse or promote products derived from# this software without specific prior written permission.# # THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED# WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.# ## Maintainer: Kannan Varadhan <kannan@isi.edu>### Simple example of an equal cost multi-path routing through# two equal cost routes. Equal cost paths are achieved by diddling# link costs.### $n0 $n3# \ / \# \ / \# $n2-------$n4# /# /# $n1## However, this is not as simple. Because $n2 is directly connected to $n4,# it prefers its ``Direct'' route over multiple equal cost routes learned# via DV. Hence,we raise the preference of Direct routes over DV routes.## Furthermore, in this example, link <$n2, $n4> is made dynamic. This allows# us to watch traffic between $n2 and $n4 alternate between taking multiple# equi-cost routes, and the only available route.#set ns [new Simulator]Node set multiPath_ 1set n0 [$ns node]set n1 [$ns node]set n2 [$ns node]set n3 [$ns node]set n4 [$ns node]$n0 shape "circle"$n1 shape "circle"$n2 shape "other"$n3 shape "other"$n4 shape "box"set f [open out.tr w]$ns trace-all $fset nf [open out.nam w]$ns namtrace-all $nf$ns color 0 blue$ns color 1 red$ns color 2 white$ns duplex-link $n0 $n2 10Mb 2ms DropTail$ns duplex-link $n1 $n2 10Mb 2ms DropTail$ns duplex-link-op $n0 $n2 orient right-down$ns duplex-link-op $n1 $n2 orient right-up$ns duplex-link $n2 $n3 1.5Mb 10ms DropTail$ns duplex-link $n3 $n4 1.5Mb 10ms DropTail$ns queue-limit $n2 $n3 5$ns duplex-link-op $n2 $n3 orient right-up$ns duplex-link-op $n3 $n4 orient right-down$ns duplex-link-op $n2 $n3 queuePos 0$ns duplex-link $n2 $n4 1.5Mb 10ms DropTail$ns queue-limit $n2 $n4 5$ns duplex-link-op $n2 $n4 orient right$ns duplex-link-op $n2 $n3 queuePos 0$ns duplex-link-op $n2 $n4 queuePos 0[$ns link $n2 $n4] cost 2[$ns link $n4 $n2] cost 2proc build-tcp { n0 n1 startTime } { global ns set tcp [new Agent/TCP] $ns attach-agent $n0 $tcp set snk [new Agent/TCPSink] $ns attach-agent $n1 $snk $ns connect $tcp $snk set ftp [new Application/FTP] $ftp attach-agent $tcp $ns at $startTime "$ftp start" return $tcp}[build-tcp $n0 $n4 0.7] set class_ 0[build-tcp $n1 $n4 0.9] set class_ 1proc finish {} { global argv0 global ns f nf close $f close $nf $ns flush-trace if [string match {*.tcl} $argv0] { set prog [string range $argv0 0 [expr [string length $argv0] - 5]] } else { set prog $argv0 } puts "running nam..." exec nam -f dynamic-nam.conf out.nam & exit 0}Agent/rtProto/Direct set preference_ 200$ns rtmodel Deterministic {.5 .5} $n2 $n4[$ns link $n2 $n4] trace-dynamics $ns stdout$ns rtproto DV$ns at 8.0 "finish"$ns run
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -