• No results found

In this chapter our aim was to give an overview of the efforts to improve TCP performance in presence of errors (congestion and transmission). Some of the main end-to-end solutions are presented here and more related solutions can be found in [69–74].

From the solutions presented here wan can see that the main aim was to im- prove TCP performance when congestion and transmission errors coexist. However, we can categorize these solutions into two categories depending on how they solve the problem. The first category tries to distinguish between congestion and trans- mission errors and apply different actions for each case. All error discriminators like TCP-Casablanca [56] can come under this category. We will call them two ac- tions solutions because in concept they can apply different actions at each case (i.e. congestion or transmission drops).

On the other hand other solutions apply one action which can only detects and response to congestion and will do nothing if there are no congestion drops (and only there are transmission errors). These kind of solutions usually apply techniques which by nature respond to congestion only like for example using TCP-Vegas [49] which uses expected and actual throughput to set the congestion window or TCP- Westwood [53] which uses Bandwidth-Delay product to set the congestion window

Chapter 3 Enhancing TCP Performance: Related Work

size which will be affected mainly by the change in the available bandwidth due to the congestion in the network. These solutions do not differentiate between error types but only respond to congestion ( by increasing sending rate if there is no congestion and decrease the sending rate if there is congestion) so we call them the one action solutions.

However, in both one action and two actions solutions the TCP reaction to transmission errors is simply not to cut the congestion window and to keep the sending rate as it was before the error. Moreover, in the two action solutions when the protocol discovers transmission errors it implicitly implies that it should increase the congestion window (not just do nothing).

These assumptions give rise to questions about whether the current transmission action is enough or not. Authors like [56] indicated that the current transmission action used in error discriminators is a bad one. This is because it is simplistic and it ignores two facts: first it is very hard to have an end-to-end error discriminator with very high accuracy. Second, even with accurate error discriminators mismatches between error types can occur. Because of that some studies like [1, 56, 72] indicated that error discriminators usually increase the congestion loss rate noticeably.

Moreover, even the one action solutions can be affected by the lack of appro- priate transmission action. This could happen when the technique used to discover congestion in the network fails to do so and hence no action is taken in case of congestion.

In our work we aim to propose a set of actions that can be added to error discriminators to use in the case of transmission errors. These actions should provide the following:

• These actions should be able to achieve the aim of any proposal which is to improve TCP performance when congestion and transmission errors coexist.

Chapter 3 Enhancing TCP Performance: Related Work

• These actions should be able to prevent increasing the congestion in the net- work which may occur because of the first aim.

Chapter 4

Improving TCP Error

Discriminators Reaction to

Transmission Drops

4.1

Introduction

Many end-to-end proposals to improve TCP performance for transmission drops, particularly error discriminators, have been based on the idea that if we can dis- criminate between errors correctly then the reaction to transmission drops can be as simple as to not cut the congestion window. See for examples [1, 21, 52, 60, 64, 67]. Hence, the main aim was to design an accurate error discriminator.

Our proposal is that as well as trying to increase the error discriminator accuracy we will also implement an efficient action for transmission drops which should have the following properties:

• It will increase TCP performance in case of transmission drops by decreasing the rate of cuts in TCP sending rate.

Chapter 4 Improving TCP Error Discriminators Reaction to Transmission Drops

• It will not increase the congestion rate because of error discriminator mis- matches between error types (i.e. low accuracy).

The last point is the main reason why it is required to have an accurate error discrim- inator. Since if the error discriminator wrongly identifies an error as a transmission error when it is actually a congestion error then it will not cut the sending rate, so leading to increased network congestion. However, to our knowledge, there is no perfect end-to-end error discriminator (also this is supported by [75, P111]) which can discriminate between errors with 100% accuracy. However, if we can maintain an action that will not increase the congestion level on the network then even an error discriminator with medium/low accuracy will be able to increase TCP perfor- mance and can avoid causing unnecessary congestion on the network at the same time.

When drops occur many mechanisms in TCP are affected. In particular three main mechanisms: the congestion window update mechanism, the retransmission mechanism and the timeout mechanism. In this chapter we will study the effect of transmission drops on each of these mechanisms and we will propose improvements. The idea, as we will explain in more detail later, is that we will not totally ignore the errors if they have been classified as transmission errors, instead we will decrease the TCP transmission rate based on number of dropped packets per window. Also in the case of multiple transmission drops we will retransmit all packets dropped from the same window. Moreover we will propose a timeout back-off computation that takes current network conditions into consideration. All these actions will be used to achieve the two aims mentioned earlier.

In this chapter we will explain the proposed algorithms and we will do experi- ments to study their individual behaviour when transmission errors exist. In chap- ter 5 we will test their combined effect on TCP when transmission errors exist.

Chapter 4 Improving TCP Error Discriminators Reaction to Transmission Drops

Finally, in chapter 6 we will add them to an error discriminator and study the behaviour when congestion and transmission errors coexist.