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

📄 mtp.tcl

📁 ns-2的文件包。多多下载
💻 TCL
📖 第 1 页 / 共 2 页
字号:
# Simulation scenarios for modeling wireless links for transport protocols# Andrei Gurtov# ICSI/University of Helsinki###################################################################### General Parameters#####################################################################set opt(title) zero	;set opt(seed) -1	;set opt(stop) 100	;# Stop time.set opt(ecn) 0		;###################################################################### Topology#####################################################################set opt(type) gprs	;#type of link: 			#gsm gprs umts geo wlan_duplex wlan_ether wlan_complexset opt(bwUL) 0		;# speed of congested link in kbpsset opt(bwDL) 0		;# speed of congested link in kbpsset opt(propUL) 0	;# uplink delay of congested link in sset opt(propDL) 0	;# downlink delay of congested link in sset opt(secondDelay) 55	;# average delay of access links in msset opt(rtts) 1		;# 1 for a range of delays for the access links.set opt(numWebNodes) 10 ;# number of access links for web traffic set opt(accessLink) 1   ;# 1 for a range of bandwidth for the access links.                         # NOT IMPLEMENTED YET###################################################################### AQM parameters#####################################################################set opt(minth) 30	;set opt(maxth) 0	;set opt(adaptive) 1	;# 1 for Adaptive RED, 0 for plain RED set opt(queue) DT       ;# 0 for DropTail			;# 1 for REDset opt(qsize) 0	;# Queue size in packets.###################################################################### Traffic generation.#####################################################################set opt(pingInt) 0 	;# ping interval, 0 = offset opt(flows) 1 	;# number of long-lived TCP flowsset opt(shortflows) 0   ;# two short flows in the beginningset opt(flowsRev) 0 	;# number of reverse long-lived TCP flowsset opt(flowsTfrc) 0 	;# number of long-lived TFRC flowsset opt(webers) 0       ;# number of web usersset opt(window) 30	;# window for long-lived trafficset opt(smallpkt) 10    ;# inverse of fraction of TCP connections                          #    with smaller packetsset opt(reverse) 1	;# reverse-path trafficset opt(web) 2		;# number of web sessionsset opt(numPage) 10     ;# number of pages per sessionset opt(pagesize) 10	;# number of objects per page set opt(objSize) 60	;# average size of web object in pkts. set opt(shape) 1.05	;# shape parameter for Pareto distribution of web size			 # a larger parameter means more small objectsset opt(interpage) 1	;# interpage parameter for web traffic generator.###################################################################### Plotting statistics.#####################################################################set opt(printRTTs) 0    ;# 1 to print link delaysset opt(quiet)   0 	;# popup anything?set opt(wrap)    90	;# wrap plots?set opt(srcTrace) is	;# where to plot trafficset opt(dstTrace) bs	;# where to plot traffic###################################################################### Link characteristics.#####################################################################set opt(delayInt) ""  	; # interval of delaysset opt(delayLen) ""	; # length of delaysset opt(allocLenUL) ""	; # delay of allocating a channel in sec in uplinkset opt(allocHoldUL) ""	; # idle time after channel is released in uplinkset opt(allocLenDL) ""	; #set opt(allocHoldDL) ""	; ## currently only in downlinkset opt(bwLowLen) 0	; # length of period of low bandwidth in secset opt(bwHighLen) 0	; # length of period of high bandwidth in secset opt(bwScale) 0	; # factor by which bandwidth is decreased# currently only in downlinkset opt(reorderLen) 0	; # reordering delay in secset opt(reorderRate) 0	; # per-packet reordering rateset opt(errUnit) packet		; # unit of errors, per packet or per bitset opt(errRateUL) 0		; # the rate of errors in uplink set opt(errBurstUL) 0		; # coefficient 0..1 of how bursty errors areset opt(errSlotUL)  0		; # time in sec of low error periodset opt(errRateDL) 0		; # set opt(errBurstDL) 0		; # set opt(errSlotDL)  0set opt(vhoTarget) none		; # to which network handover occursset opt(vhoTime) 30		; # when handover occursset opt(vhoLoss) 0		; # fraction of packets lost during handoverset opt(vhoDelay) 0		; # delay in sec caused by handoverset opt(gprsbuf) 10		; # buffer size for gprsset opt(wlan_duplex_buf) 10	; # buffer size for wlan_duplexset opt(nodeDist) 2		; # distance in meters between WLAN nodes#####################################################################set opt(tfrcFB) 1		; #number of feedback reports in TFRC per RTTproc getopt {argc argv} {        global opt        for {set i 0} {$i < $argc} {incr i} {                set arg [lindex $argv $i]                if {[string range $arg 0 0] != "-"} continue                set name [string range $arg 1 end]                set opt($name) [lindex $argv [expr $i+1]]                puts "opt($name): $opt($name)"         }}getopt $argc $argvif {$opt(seed) > -1} {        puts "Seeding Random number generator with $opt(seed)\n"        ns-random $opt(seed)}Agent/TFRCSink set NumFeedback_ $opt(tfrcFB)#default downlink bandwidth in bpsset bwDL(gsm)  9600set bwDL(gprs) 30000set bwDL(umts) 384000set bwDL(geo)  2000000set bwDL(wlan_duplex) 650000	;# 650000set bwDL(wlan_ether) 1000000set bwDL(wlan_complex) 1000000#default uplink bandwidth in bpsset bwUL(gsm)  9600set bwUL(gprs) 10000set bwUL(umts) 64000set bwUL(geo)  200000set bwUL(wlan_duplex) 650000#default downlink propagation delay in secondsset propDL(gsm)  .500set propDL(gprs) .100set propDL(umts) .150set propDL(geo)  .250set propDL(wlan_duplex) .01set propDL(wlan_ether) .01 	;#0.01#default uplink propagation delay in secondsset propUL(gsm)  .500set propUL(gprs) .100set propUL(umts) .150set propUL(geo)  .250set propUL(wlan_duplex) .01 	;#0.01 0.003#default buffer size in packetsset buf(gsm)	10set buf(gprs) $opt(gprsbuf)set buf(umts)	20set buf(geo)	20set buf(wlan_duplex)	$opt(wlan_duplex_buf)set buf(wlan_ether)	10set buf(wlan_complex)	10#topology cellular "access link"#                           is#                           /#   3Mb,10ms    xMb,yms    / 3Mb,50ms# lp--------ms --------- bs#                          \ 3Mb,50ms#                           \#                           x#proc cell_topo {} {  global ns nodes qm  $ns duplex-link $nodes(bs) $nodes(ms) 1 1 $qm  $ns duplex-link $nodes(lp) $nodes(ms) 3Mbps 10ms DropTail   $ns duplex-link $nodes(bs) $nodes(is) 3Mbps 50ms DropTail  puts "cell topology"}#topology satellite "ISP link"##        lp                 is#         \                 /# 10Mb,2ms \   30Mb,250ms  / 10Mb,50ms#           ms --------- bs# 1Mb,100ms/               \ 10Mb,50ms#         /                 \#        y                   x#proc sat_topo {} {  global ns nodes qm  $ns duplex-link $nodes(bs) $nodes(ms) 1 1 $qm  $ns duplex-link $nodes(lp) $nodes(ms) 3Mbps 10ms DropTail   $ns duplex-link $nodes(bs) $nodes(is) 3Mbps 50ms DropTail  puts "sat topology"}#topology wlan "ether"##                              is#                             /#    100Mb,1ms      adsl     / 3Mb,50ms#  lp --------- ms -------- bs#                            \ 3Mb,50ms#                             \#                              x#proc wlan_topo_simple {} {  global qm ns nodes opt bwDL propDL buf  switch $opt(type) {	wlan_duplex {		puts "duplex wlan topology" 		$ns duplex-link $nodes(ms) $nodes(bs) 1 1 $qm	}	wlan_ether {		puts "ethernet wlan topology"		# Mac/Csma/Ca Mac/802_3		set lan [$ns make-lan "$nodes(bs) $nodes(ms)" $bwDL(wlan_ether) $propDL(wlan_ether) LL Queue/$qm Mac/802_3 Channel "Phy/WiredPhy" $buf(wlan_ether)] #		[$nodes(bs) queue] set limit_ $buf(wlan_duplex)	}  }  $ns duplex-link $nodes(lp) $nodes(ms) 100Mbps 1ms $qm   $ns duplex-link $nodes(bs) $nodes(is) 10Mbps 50ms DropTail}#proc wlan_topo_complex {} {  global ns nodes qm opt buf bwDL  puts "complex wlan topology"#Configuration for Orinoco 802.11b 11Mbps PC card with ->22.5m range#Phy/WirelessPhy set Pt_ 0.031622777#Phy/WirelessPhy set bandwidth_ 11Mb#Mac/802_11 set dataRate_ 11Mb#Mac/802_11 set basicRate_ 1Mb #for broadcast packets#Phy/WirelessPhy set freq_ 2.472e9 #channel-13.2.472GHz#Phy/WirelessPhy set CPThresh_ 10.0#Phy/WirelessPhy set CSThresh_ 5.011872e-12#Phy/WirelessPhy set L_ 1.0               #Phy/WirelessPhy set RXThresh_ 5.82587e-09  Mac/802_11 set dataRate_ $bwDL(wlan_complex)  $ns node-config -addressType hierarchical  AddrParams set domain_num_ 2  lappend cluster_num 1 1               AddrParams set cluster_num_ $cluster_num  lappend eilastlevel 2 2                AddrParams set nodes_num_ $eilastlevel   set topo   [new Topography]  $topo load_flatgrid 1000 1000  # god needs to know the number of all wireless interfaces MN+BS  create-god 2  set nodes(bs) [$ns node {0.0.0}]  set nodes(is) [$ns node {0.0.1}]    # DSDV DSR TORA AODV  $ns node-config -adhocRouting DSDV \                 -llType LL \                 -macType Mac/802_11 \                 -ifqType Queue/$qm \                 -ifqLen $buf(wlan_complex) \                 -propType "Propagation/TwoRayGround" \                 -antType "Antenna/OmniAntenna" \                 -phyType "Phy/WirelessPhy" \                 -wiredRouting ON \                 -channel [new "Channel/WirelessChannel"] \                 -agentTrace ON \                 -routerTrace OFF \                 -topoInstance $topo \                 -macTrace OFF \		 -movementTrace OFF  #create base station  set nodes(ms) [$ns node {1.0.0}]  $nodes(ms) random-motion 0   $nodes(ms) set X_ $opt(nodeDist)  $nodes(ms) set Y_ 0.0  $nodes(ms) set Z_ 0.0    #configure for mobilenodes  $ns node-config -wiredRouting OFF  set nodes(lp) [$ns node {1.0.1}]  $nodes(lp) random-motion 0   $nodes(lp) set X_ 2.0  $nodes(lp) set Y_ 2.0  $nodes(lp) set Z_ 0.0  $nodes(lp) base-station [AddrParams addr2id [$nodes(ms) node-addr]]  $ns duplex-link $nodes(ms) $nodes(bs) 10Mbps 30ms DropTail  $ns duplex-link $nodes(bs) $nodes(is) 10Mbps 50ms DropTail  # establish route  set ping9 [$ns create-connection Ping $nodes(is) Ping $nodes(lp) 9]  $ping9 oneway#  $ns after 0.001 "$ping9 send"}#proc set_link_params {t} {  global ns nodes bwUL bwDL propUL propDL buf  $ns bandwidth $nodes(bs) $nodes(ms) $bwDL($t) simplex  $ns bandwidth $nodes(ms) $nodes(bs) $bwUL($t) simplex  $ns delay $nodes(bs) $nodes(ms) $propDL($t) simplex  $ns delay $nodes(ms) $nodes(bs) $propDL($t) simplex  $ns queue-limit $nodes(bs) $nodes(ms) $buf($t)  $ns queue-limit $nodes(ms) $nodes(bs) $buf($t)}#remove-all-packet-headers       ; # removes all except common#add-packet-header Flags IP TCP  ; # hdrs reqd for TCPif {$opt(queue) == "DT"} {  set qm DropTail}if {$opt(queue) == "RED"} {  set qm RED}set tcpTick_ 0.01set pktsize 1460Agent/TCP set tcpTick_ $tcpTick_set out $opt(title)proc stop {} {	global nodes opt	set wrap $opt(wrap)	set sid [$nodes($opt(srcTrace)) id]	set did [$nodes($opt(dstTrace)) id]	if {$opt(srcTrace) == "bs"} {		set a "-a out.tr"	} else {		set a "out.tr"	}	set GETRC "../../../bin/getrc"        set RAW2XG "../../../bin/raw2xg"        exec $GETRC -s $sid -d $did -f 0 out.tr | \          $RAW2XG -s 0.01  -m $wrap -r > plot.xgr        exec $GETRC -s $did -d $sid -f 0 out.tr | \          $RAW2XG -a -s 0.01 -m $wrap  >> plot.xgr        exec $GETRC -s $sid -d $did -f 1 out.tr | \

⌨️ 快捷键说明

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