Monday, 25 May 2015

HIGHSPEED aka Sally Floyd implementation in NS2

Highspeed TCP is also called as HSTCP, developed by Sally S Floyd. It was a RFC paper 3649 whivh can be got from here
A great deal of in depth analysis is not found in internet, so hope this will work
If you are interested to know the details and working of algorithm then please see the link
For the co incidence my final year project is also on HSTCP, and its implementation in wireless Ad hoc networks.
The code is as below


  set ns [new Simulator]

  set file1 [open out.nam w]
  $ns namtrace-all $file1
  set tf [open ui.tr w]  
  $ns trace-all $tf
  set winfile [open highspeed.tr w]


  proc finish {} {
     global ns file1 tf
     $ns flush-trace
     close $tf
     close $file1
     exec nam out.nam &
     exit 0
  }

  set n0 [$ns node]
  set n2 [$ns node]
  set n3 [$ns node]
  set n4 [$ns node]


  $ns duplex-link $n0 $n2 2Gb 10ms DropTail
  $ns duplex-link $n2 $n3 1.0Gb 200ms DropTail
  $ns duplex-link $n3 $n4 2.0Gb 40ms DropTail
 

$ns duplex-link-op $n2 $n3 queuePos 0.1

  $ns duplex-link-op  $n0 $n2 orient right-down
  $ns simplex-link-op $n2 $n3 orient right
  $ns simplex-link-op $n3 $n2 orient left
  $ns duplex-link-op  $n3 $n4 orient right-up
 
  $ns queue-limit $n2 $n3 10


  set tcp [new Agent/TCP/Linux]
  $ns at 0 "$tcp select_ca highspeed"
  $ns attach-agent $n0 $tcp

  set sink [new Agent/TCPSink/Sack1]
  $sink set ts_echo_rfc1323_ true

  $ns attach-agent $n4 $sink

  $ns connect $tcp $sink
  $tcp set fid_ 1
  $tcp set window_ 1500
  $tcp set packetSize_ 552


  set ftp [new Application/FTP]
  $ftp attach-agent $tcp
  $ftp set type_ FTP

  $ns at 0.1 "$ftp start"
  $ns at 500.0 "$ftp stop"


  proc plotWindow {tcpSource file} {
     global ns

     set time 0.1
     set now [$ns now]
     set cwnd [$tcpSource set cwnd_]
     set wnd [$tcpSource set window_]
     puts $file "$now $cwnd"
     $ns at [expr $now+$time] "plotWindow $tcpSource $file"
  }

  $ns at 0.1 "plotWindow $tcp $winfile"

  $ns at 150.0 "finish"

  $ns run
 
The plot for the above is as below
 

No comments:

Post a Comment