Sunteți pe pagina 1din 3

Final Report

Exercise A
The following curve was obtained as window sizes changed. To find
which window size was optimal it is useful to look at
throughput/latency ratio greater this ratio, the better and we find
that those values are around 10Mbits/s.

20
95th
Dela
y

10
4

2000
1800
1600
1400
1200
1000

Y-Value 1

800
600
400
200
0
0

Exercise B
The AIMD implementation included determining the congestion in the
link and then tweaking the window sizes. The threshold here is 200ms and
this constant greatly impacts the results. Increasing this threshold would
dictate how much congestion we would want to build inside the network
before taking any action. Other constants determined various levels. Some
levels require more aggressive increase and other require a gentle
increase.
if ( ( send_timestamp_acked - recv_timestamp_acked) > 200 )
{
if( 5*window_size1 /6 != 0)
window_size1 = 5*window_size1/6;
}
else
{
if (( send_timestamp_acked - recv_timestamp_acked) > 150 )
{
window_size1 = window_size1+2;
}
else
{
if (( send_timestamp_acked - recv_timestamp_acked) > 0)
{
window_size1 = window_size1 + (4);
}
}
}

Exercise C
My AIMD was the same as the delay triggered congestion
control. Since in this link there were no packet losses, I had to use
delays as an indicator of congestion. Thus, making both my exercise
B and C the same.

Exercise D:
Another Idea that I tried was to approximate in the future the
change of the queuing delay. If the delay increases window size
should decrease with that rate and if the delay decreases, my
window size decreases accordingly. The results werent better than
that of AIMD but am still working on it to see if it could potentially
help in improving the overall score.
int timee = (recv_timestamp_acked - send_timestamp_acked );
if( slope != 0)
{
if( window_size1 + (slope*(timee)) > 0 )
window_size1 = window_size1 + (slope*(timee)*2);
else

window_size1 = 1;
}
int currenttime = timestamp_ms();
if( ( currenttime - prevti ) !=0 )
slope = (prevtim - timee)/( currenttime - prevti );
prevti = currenttime;
prevtim = timee;

S-ar putea să vă placă și