#!/usr/local/bin/ns

# create a simulator object
set ns [new Simulator]

# include library files
source /usr/local/share/ns/linkmonitor.tcl
source /usr/local/share/ns/linkstats.tcl
source /usr/local/share/ns/runmonitor.tcl

# remove unnecessary headers for fast computation
remove-all-packet-headers
add-packet-header IP TCP

# set maximum TCP window size
Agent/TCP set window_ 10000

# set router buffer size
Queue set limit_ 100

# create nodes
for { set i 1 } { $i <= 2 } { incr i } {
  set node($i) [$ns node]
}
# create duplex-links among nodes
$ns duplex-link $node(1) $node(2) 10Mb 10ms DropTail

# create TCP connections
set tcp(1) [$ns create-connection TCP $node(1) TCPSink $node(2) 1]
set tcp(2) [$ns create-connection TCP $node(1) TCPSink $node(2) 1]
# initiate TCP connections after random delay
for { set i 1 } { $i <= 2 } { incr i } {
  $ns at [uniform 0 1] "$tcp($i) send -1"
}

$ns init-runmonitor 60
$ns init-linkstats 0

proc finish {} {
  global ns
  $ns show-linkstats
  exit 0
}

$ns at 60 "finish"
$ns run

