⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 srm-adapt-req-session.tcl

📁 CBRP协议(移动adhoc中基于分簇的路由协议)ns2下的源码
💻 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># Version Date: $Date: 1998/01/13 15:06:12 $## @(#) $Header: /usr/cvs/ns/ns-src/tcl/ex/srm-adapt-req-session.tcl,v 1.1.1.1 1998/01/13 15:06:12 root Exp $ (USC/ISI)### simple 8 node star topology, runs for 50s, tests Adaptive timers.#if [string match {*.tcl} $argv0] {    set prog [string range $argv0 0 [expr [string length $argv0] - 5]]} else {    set prog $argv0}if {[llength $argv] > 0} {    set srmSimType [lindex $argv 0]} else {    set srmSimType Adaptive}source ../mcast/srm-nam.tcl		;# to separate control messages.#source ../mcast/srm-debug.tcl		;# to trace delay compute fcn. details.set ns [new SessionSim]$ns trace-all [open out.tr w]# make the nodesset nmax 8for {set i 0} {$i <= $nmax} {incr i} {    set n($i) [$ns node]}# now the linksfor {set i 1} {$i <= $nmax} {incr i} {    $ns duplex-link $n($i) $n(0) 1.5Mb 10ms DropTail}# configure multicastset group 0x8000# now the agentsset srmStats [open srmStats.tr w]set srmEvents [open srmEvents.tr w]set fid 0for {set i 1} {$i <= $nmax} {incr i} {    set srm($i) [new Agent/SRM/$srmSimType]    $srm($i) set dst_ $group    $srm($i) set fid_ [incr fid]    $srm($i) log $srmStats    $srm($i) trace $srmEvents    $ns at 1.0 "$srm($i) start"    $ns attach-agent $n($i) $srm($i)    set sessionhelper($i) [$ns create-session $n($i) $srm($i)]}#$srm(4) set C1_ 0.5#$srm(4) set C2_ 1.0# And, finally, attach a data source to srm(1)set packetSize 800set s [new Agent/CBR]$s set interval_ 0.02$s set packetSize_ $packetSize$s set fid_ 0$srm(1) traffic-source $s$srm(1) set packetSize_ $packetSize$ns at 3.5 "$srm(1) start-source"# Drop a packet every 0.5 secs. starting at 3.52s.# Drops packets from the source so all receivers see the loss.#$ns rtmodel Deterministic {3.021 0.498 0.002} $n(0) $n(1)for {set i 2} {$i <= $nmax} {incr i} {    set loss_module [new SRMErrorModel]    $loss_module drop-packet 2 200 1    $loss_module drop-target [$ns set nullAgent_]    $ns at 1.25 "$sessionhelper(1) insert-loss $loss_module $srm($i)"}$ns at 50 "finish $s"proc finish src {    $src stop    global ns srmStats srmEvents srm     $ns flush-trace		;# NB>  Did not really close out.tr...:-)    close $srmStats    close $srmEvents    set avg_info [open ses-avg-info w]    puts $avg_info "avg:\trep-delay\treq-delay\trep-dup\t\treq-dup"    foreach index [lsort -integer [array name srm]] {	set tmplist [$srm($index) array get stats_]	puts $avg_info "$index\t[format %7.4f [lindex $tmplist 1]]\t\t[format %7.4f [lindex $tmplist 5]]\t\t[format %7.4f [lindex $tmplist 9]]\t\t[format %7.4f [lindex $tmplist 13]]"    }    flush $avg_info    close $avg_info    exit 0}set ave [open ave.tr w]proc doDump {now i tag} {    global srm ave    puts $ave [list $now $i					\	    [$srm($i) set stats_(ave-dup-${tag})]	\	    [$srm($i) set stats_(ave-${tag}-delay)]]}proc dumparams intvl {    global ns nmax    set now [$ns now]    doDump $now 1 rep    for {set i 2} { $i <= $nmax} {incr i} {	doDump $now $i req    }    $ns at [expr $now + $intvl] "dumparams $intvl"}$ns at 4.0 "dumparams 0.5"$ns run

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -