• No results found

4.2 New TCP Reactions to Transmission Errors

4.2.1 Congestion Window Action

4.2.1.3 CWA Performance

An important aim of CWA is to improve TCP performance by keeping a bigger con- gestion window in case of transmission errors. In order to measure the improvement we will measure the average congestion window size during the connection life time. We assume only transmission errors are present in the connection so we used a simple topology presented in figure 4.5. Similar topologies are used by other authors like [77] to test TCP modifications in presence of transmission errors only . Each link bandwidth bw is fixed to 45Mbps (T3 link). The total link propagation delay

Chapter 4 Improving TCP Error Discriminators Reaction to Transmission Drops

is 12ms so each link delay dly takes 2ms. In chapter 6 we will test the final system with different bandwidth and delay values.

Transmission errors are generated in the last link using a two state model to simulate error and error-free phases and error rates range from 0.001 (0.1%) to 0.1 (10%) with increase of 1% each time. The same error range is used for all experiments in this chapter except for RTA where we increased error rate up to 20% to show the improvement under heavy errors as we will see later. In all experiments we repeat the experiment a sufficient number of times each with different seed for the random number generator. The 95% confidence intervals are very small and not visible in the graphs (we repeat the experiment until the upper and lower limit interval is no more than 5% from the average value) so we draw the average value only in the graphs.

We run the experiment to measure the TCP congestion window and then we add CWA to TCP (to replace the standard TCP reaction to errors which is to cut the congestion window to half) and repeat the experiment with the modified TCP. The chart in figure 4.6 shows that after adding CWA, TCP gained a higher average congestion window. This is achieved by CWA preventing unnecessary congestion window cuts and limiting the cuts to the number of lost packets in case of trans- mission drops. Figure 4.6 uses log-linear scale because the values of the congestion window size takes a large range so we use log-linear (or semi-log) scale to make it easy to see low as well as high values in the y axis.

The increase in congestion window size increases TCP sending rate. Also it will reduce the chance to have timeouts because with a bigger window TCP gets more duplicate acknowledgments after drops. These duplicate acknowledgments will trigger lost packet retransmission and will increase the congestion window during the fast recovery phase.

Chapter 4 Improving TCP Error Discriminators Reaction to Transmission Drops

Figure 4.6: TCP vs. CWA. semi-log scale congestion window size (packets) However, due to the fact that the increase in the error rate will increase timeout durations as we will see later when we test the RTA algorithm, the congestion window will not have a chance to grow after a timeout event because TCP will wait idle for longer times. Moreover, with the increase in error rate many packets will be dropped more than once and more longer retransmission timeouts will occur due to multiple packet drops. This is another problem that decreases the performance of CWA which is multiple drops per window of data. Since TCP resends only one dropped packet per window the rest will be recovered through timeouts. This will increase the number of timeout events which will affect the performance of CWA negatively. In the following section we will solve this problem by using a multiple drops action algorithm MDA.

Limitations: tthresh is proposed as a second line of defence against creating unnecessary congestion caused by error discriminators which may diagnoses conges- tion errors as transmission errors and hence not responding to congestion. tthresh

Chapter 4 Improving TCP Error Discriminators Reaction to Transmission Drops

tries to prevent this by monitoring drops and recording the congestion window size (cwnd ) when first drop occurs and consider it as an indication that this is where congestions happens. So if later another drop occurs while the congestion window is above this size then it is probably a congestion drop.

However, this method may reduce the TCP performance gain from using an error discriminator if transmission errors occurred while cwnd > tthresh. This is because if cwnd > tthresh the CWA uses standard TCP action by cutting the congestion window to half.

However, using tthresh protects the network from unnecessary congestion caused by error discriminators mistakes. Moreover, in the worst case scenario if all errors where transmission errors and at the same time occurred while cwnd > tthresh and hence treated by CWA as congestion errors, the performance will be at worst as standard TCP (i.e. cut congestion window to half for each drop).

Moreover, we recalculate tthresh after each timeout event because timeout indi- cates that tthresh value is probably not good to prevent creating congestion since a timeout usually indicates severe congestion.

Also, since CWA only cuts the cwnd and not ssthresh this will help recovering cwnd quickly because cwnd is increased exponentially when it is less than ssthresh (as we explained in chapter 2 under Slow Start). This faster recovery will help to balance the performance cut that is caused by tthresh.