|
|
|
Simulation Network:
|
Notes:
|
Simulation result:
|
Notes:
|
Simulation Network: (2 identical flows)
|
The simulation is ran many times
The CWND values of the two identical flows in some of the experiements:
|
Notes:
|
The throughput plot of the two identical flows in some of the experiements:
|
Note:
|
Simulation Network: (1 UDP flow with 1 TCP flow)
|
Notes:
|
The Throughput plot for the UDP/TCP experiment:
|
Result:
|
|
(BTW, requiring additional information inside an Internet router will almost always guarantee that your method will only be academically relevant
Because no company will ever put the information in their routers)
|
|
Parameters: wq = 0.002 (exponential factor in averaging queue size) minth = min. threshold = min(buffer size/4, RTT) maxth = 2 * minth minq = safe threshold (no drops) (2 for small buffers, 4 for large buffers) |
P = arriving packet
|
P = transmitted packet
|
|
Problem:
|
|
- see above algorithms
CalculateQueueLength()
{
// -------------------------------------------
// This is RED's avg. queue lenght algorithm
// -------------------------------------------
if ( q > 0 || packet was transmitted )
{
avg = ( 1 - wq ) * avg + wq * q;
// avg is computed every time a packet is
// transmitted (was omitted in RED)
}
else
{
m = f ( time - q_idle_time );
avg = (1 - wq)m * avg;
q_idle_time = time;
}
// ----------------------------------------------
// Compute the average occupancy for each flow
// ----------------------------------------------
if ( NActive > 0 )
{
avgcq = avg / NActive; // That's how many packet a flow should have in queue
}
else
{
avgcq = avg; // Just a choice the author made...
}
// Fix "underflow problem"
if ( avgcq < 1 )
avgcq = 1;
if ( q == 0 || packet was transmitted )
q_idle_time = time;
}
|
|
4 TCP flows are started at different times: 20 sec, 40 sec, 60 sec and 80 sec.
Throughput plot:
|
|
Results:
|
And we know that drop tail cannot protect anything.
|
This is the throughput results using "basic" FRED:
|
(The throughput of the last 8 TCP connections are not displayed - it's already crowded...)
This is the throughput results using "limited buffer size" FRED:
|