Search This Blog

Showing posts with label RED. Show all posts
Showing posts with label RED. Show all posts

Refined Adaptive RED (Re-ARED or RARED) patch for NS-2

15

Labels: , ,

Adaptive Random Early Detection (ARED) proposed by S. Floyd in 2001 solves most of the issues related to the parameter sensitivity of RED. ARED adaptively varies "Maximum drop probability" and automatically sets other parameters of RED. 

Refined Adaptive RED (Re-ARED or RARED) proposed by T.-H. Kim and K.-H. Lee modifies the ARED's approach of varying "Maximum drop probability". Re-ARED attempts to bring the average queue size closer to the target range more quickly as compared to ARED. As a result, it minimizes packet drop rate and improves the overall performance of the network.

Reference: "Refined Adaptive RED in TCP/IP Networks", Tae-Hoon Kim and Kee-Hyun Lee, SICE-ICASE International Joint Conference, pp. 3722-3725 (2006).

The following patch provides implementation of Re-ARED (or RARED) in NS-2:



Following are the steps to be followed to apply above given patch to ns-2.34:

1. Download ns-allinone-2.34.tar.gz 

2. Download Re-ARED.patch

3. Unzip ns-allinone-2.34.tar.gz. You will get a folder named ns-allinone-2.34.

4. Paste the downloaded patch in this folder.

5. Give the following command: 

    patch -p1 < Re-ARED.patch

6. Then give ./install

If you have already installed copy of ns-allinone-2.34 then follow the below given steps to apply Re-ARED patch

1. Paste the downloaded patch in ns-allinone-2.34 folder.

2. Give the following command: 

    patch -p1 < Re-ARED.patch

3. Go in ns-allinone-2.34/ns-2.34 directory and give the following commands: 

    ./configure
    make clean
    make
    make install

You are done with it!

TCL Commands:

Please read this post before getting started with Re-ARED simulation in NS-2 "Random Early Detection (RED) in NS-2 - TCL - Part 1"

To simulate Re-ARED, you need to ensure that following two lines are added in the TCL Script:

Queue/RED set adaptive_ 1
Queue/RED set refined_adaptive_ 1 

Rest all commands remain same as explained in "Random Early Detection (RED) in NS-2 - TCL - Part 1".

Hope it helps.

Regards,
Mohit P. Tahiliani

Related Blogs:

Nonlinear RED (NLRED) patch for NS-2

2

Labels: , ,

Random Early Detection (RED) proposed by S. Floyd and V. Jacobson in 1993 is one of the widely deployed Active Queue Management (AQM) mechanisms. However, due to its parameter sensitivity, lot of variants of RED have been proposed. Nonlinear RED (NLRED) is one such variant of RED. 

Reference: "Nonlinear RED: A simple yet efficient active queue management scheme", Kaiyu Zhou, Kwan L. Yeung, Victor O. K. Li, Elsevier Journal of Computer Networks, 50, pp. 3784-3794 (2006). 

The packet drop probability in RED is a linear function of the "average queue size". NLRED modifies the packet drop probability to be a quadratic function (and hence nonlinear function) of the "average queue size" so as to minimize the overall packet drop rate in the network. NLRED is not implemented in the allinone package of NS-2. The following patch provides the implementation of NLRED in NS-2.

Download NLRED patch for NS-2 

Following are the steps to be followed to apply above given patch to ns-2.34:

1. Download ns-allinone-2.34.tar.gz 

2. Download NLRED.patch

3. Unzip ns-allinone-2.34.tar.gz. You will get a folder named ns-allinone-2.34.

4. Paste the downloaded patch in this folder.

5. Give the following command: 

    patch -p1 < NLRED.patch

6. Then give ./install

If you have already installed copy of ns-allinone-2.34 then follow the below given steps to apply NLRED patch

1. Paste the downloaded patch in ns-allinone-2.34 folder.

2. Give the following command: 

    patch -p1 < NLRED.patch

3. Go in ns-allinone-2.34/ns-2.34 directory and give the following commands: 

    ./configure
    make clean
    make
    make install

You are done with it!

TCL Commands:

Please read this post before getting started with NLRED simulation in NS-2 "Random Early Detection (RED) in NS-2 - TCL - Part 1"

To simulate NLRED, you just need to include the following command in TCL Script:

Queue/RED set nonlinear_ 1 

Rest all commands remain same as explained in "Random Early Detection (RED) in NS-2 - TCL - Part 1".

Hope it helps.

Regards,
Mohit P. Tahiliani

Related Blogs:
1. Random Early Detection (RED) in NS-2 - TCL - Part 1
2. Refined Adaptive RED (Re-ARED or RARED) patch for NS-2

Random Early Detection (RED) in NS-2 - TCL - Part 1

25

Labels: ,


Random Early Detection (RED) proposed by S. Floyd and V. Jacobson in 1993 is one of the widely deployed Active Queue Management (AQM) mechanisms. The performance of RED highly depends on the appropriate setting of atleast four parameters namely:

1. Minimum threshold
2. Maximum threshold
3. Exponential weighted moving average constant
4. Maximum drop probability

Setting appropriate values for these parameters is considered as a challenging issue and hence in 1999 S. Floyd proposed Gentle variant of RED. Later in 2001, S. Floyd proposed Adaptive RED which automatically sets all these parameters based on the network conditions.

In NS-2, the default RED which is active is Gentle RED + RED with automatic settings. To simulate the Original RED proposed in 1993 by S. Floyd (because still there are several researchers who aim to address the parameter sensitivity of Original RED), following commands must be used in the TCL Script before configuring a router with RED queue:

Queue/RED set thresh_ 5
Queue/RED set maxthresh_ 15
Queue/RED set q_weight_ 0.001
Queue/RED set bytes_ false
Queue/RED set queue_in_bytes_ false
Queue/RED set gentle_ false
Queue/RED set mean_pktsize_ 1000

Note that the values used in the above commands are taken from the Original paper of RED (See References). You need to change them as per your requirements!

thresh_ = minimum threshold

maxthresh_ = maximum threshold

q_weight_ = exponential weighted moving average constant

bytes_ and queue_in_bytes_ = indicate calculations of average queue size in bytes. Setting them to false indicates average queue size will be calculated in packets (not in bytes).

gentle_ = Gentle RED mode. Setting it false indicates Gentle mode is OFF

mean_pktsize_ = average size of a packet arriving at the router

Setting RED in Wired Networks:

Sample command is:

$ns duplex-link $n0 $n2 10Mb 10ms RED

Setting RED in Wireless Networks:

Sample command is:

set val(ifq)    Queue/RED

Gentle RED Settings in NS-2:

To enable Gentle RED option, the only change required is:

Queue/RED set gentle_ true

Rest all commands and syntax for Gentle RED are exactly same as mentioned above for Original RED.

Hope it helps.

Regards,
Mohit P. Tahiliani

References: S. Floyd and V. Jacobson, "Random Early Detection Gateways for Congestion Avoidance", IEEE/ACM Transactions on Networking, 1, 397-413.

Related Blogs:
1. Nonlinear RED (NLRED) patch for NS-2
2. Refined Adaptive RED (Re-ARED or RARED) patch for NS-2
3. TCL Script Generator
4. TCL Script Generator centered on NSG