Presentation is loading. Please wait.

Presentation is loading. Please wait.

Submitters: Stella Pantofel Michael Halperin Igor Berman

Similar presentations


Presentation on theme: "Submitters: Stella Pantofel Michael Halperin Igor Berman"— Presentation transcript:

1 Submitters: Stella Pantofel Michael Halperin Igor Berman
NS2 First Report Submitters: Stella Pantofel Michael Halperin Igor Berman

2 Simulation of Explicit Congestion Notification(ECN) and Random Early Detection(RED) With TCP Reno and TCP Sack

3 The outline of the project
Using NS-2 simulator, we simulate a congested network that uses RED with ECN with following options: TCP Reno / TCP SACK Different RED threshold parameters . Variable number of connections. The network will have usual links and a satellite link. We will supply results (graphs) that compare the throughput and the congestion window behavior.

4 Example Topologies : The main idea of any chosen topology is to create a bottle neck in order to simulate the congestion problem. In the 1st case the link zero-one is the bottle neck of the topology. In the 2nd case the link two-three is the bottle neck.

5 Description of NS2 options using Tcl
Defining variables/constants: set NodeNumber 10 Comments: # this is comment New instance of simulator: set ns [new Simulator] New node: set N [$ns node] New link: $ns <kind of link> <src> <dst> <bandwidth><delay><kind of queue> Example: set link [$ns simplex-link $N $D 2Mb 1ms RED]

6 Ns2 options continue… New protocol agent: Attaching to node some agent
set tcpAgent [new Agent/TCP/Newreno] set tcpAgetn [new Agent/TCP/Sack1] Attaching to node some agent $ns attach-agent $n0 $tcpAgent And sink agent set sink [new Agent/TCPSink/DelAck] set sink [new Agent/TCPSink/Sack1] $ns attach-agent $n4 $sink Connecting tcp and sink agents: $ns connect $tcp $sink

7 Parameters to Tcp Agent
Size of window: $tcp set window_ 8000 Size of packet $tcp set packetSize_ 552 Flow id: $tcp set fid_ $k Ecn option: $tcp set ecn_ 1

8 Creating new application over Tcp agent
Creation: set ftp [new Application/FTP] Attaching: $ftp attach-agent $tcp Type: $ftp set type_ FTP

9 Scheduling Events In format of: $ns2 at <time> <event>
Examples: $ns at 0.1 "$ftp start“ $ns at "$ftp stop“ And at the end: $ns run

10 Red Queue Parameters: Queue/RED set thresh_ 5
Queue/RED set maxthresh_ 15 Queue/RED set q_weight_ 0.002 Remark: Parameters should be set, before defining new instance of queue.

11 ECN options Red queue marks messages rather than throws them away:
Queue/RED set setbit_ true : turning option on $redq set setbit_ true : defining particular queue Tcp agent have to support ecn option: Agent/TCP set old_ecn_ 1 : turning option on $tcpAgent set ecn_ 1 : defining particular agent

12 Error model over the link
Creation of loss module: set loss_module [new ErrorModel] Rate of loosing packets: $loss_module set rate_ 0.2 Loss module uses random generator of uniformly distributed random variable: $loss_module ranvar [new RandomVariable/Uniform] Where go lost packets to: $loss_module drop-target [new Agent/Null] Connecting loss model with link between 2 nodes: $ns lossmodel $loss_module $n2 $n3

13 Random variables and their uses
Delays between connections. Delays of the links. Size of data. Example: Delays between connections are distributed exponentially:

14 Random variables and their uses continue…
Define generator for random variable: set rng [new RNG] Define seed to generator (if 0 generates each time new sequence of values. $rng2 seed 2 Define new random variable and parameters to it: set RV [new RandomVariable/Exponential] $RV set avg_ 0.3 $RV use-rng $rng1 Use: set t [expr $t + [$RV value]] $tcp set starts $t

15 Traces of the simulation
Simulator allows to get information about the events registered in the network. Example: $ns trace-all <filename> The output file will contain following data: <event><time><source><destination><flags> and more… By using these files as input to different scripts we can calculate desired statistics. Example: throughput per time unit on any specified link.

16 Congestion Window Behavior
Each time unit we sample the window size of the given TCP connection. The command we use in order to sample: $tcp set cwnd_ Cwnd_ is the current window size of the TCP connection The result is recorded in a special file. Later on this file is processed and a graph is created from its data


Download ppt "Submitters: Stella Pantofel Michael Halperin Igor Berman"

Similar presentations


Ads by Google