As a result of longer lasting network congestion, the efficiency, i.e. the throughput of a packet-switched network drops drastically. Congestion cannot be avoided through the use of larger buffers, faster processors and high-speed links. For an efficient and fair congestion control, scheduling and buffer management (router-based congestion control) is necessary. It has to be combined with feedback to the network clients and end adjustment of the sources (source-based congestion control). Router-based congestion control is suitable to handle short lasting congestion and to facilitate a fair best-effort service. Source-based congestion control is needed to deal with longer lasting congestion. Sources are expected to adjust their sending rate according to the network's feedback.
The objective of this diploma thesis was to implement a transport protocol based on implicit feedback of the network to avoid and control congestion, using UDP and ATM AAL 5 as underlying layers.
The theoretical part of this thesis consisted of investigating TCP's congestion avoidance und congestion control, to point out its major problems and to suggest solutions to overcome these deficiencies.
TCP's ability to recover from multiple packet loss in the same window without retransmission timeout is unsatisfactory. Furthermore, TCP's estimate of the amount of data outstanding in the network could be improved to allow a more accurate congestion control in recovery phase. TCP's congestion control is based on packet loss as implict feedback. Therefore, at least one packet has to be lost before TCP is able to detect and react to congestion. Congestion control using other implicit feedback like changes in throughput could allow to handle congestion before packet loss occurs.
As a result of these studies, a transport protocol was developed that incorporates TCP's congestion control with Slow Start, Congestion Avoidance, Fast Retransmit and Fast Recovery. This protocol served as basis to implement the Forward Acknowledgment Algorithm that is able to recover from multiple packet loss in the same window without retransmission timeout. Better behaviour during recovery phase is achieved by the use of Selective Acknowledgment. Selective Acknowledgment allows to keep a better estimate of the amount of data outstanding in the network during recovery which is important to preserve TCP's Self-clock.
Daniel Brennwalder
Seebühlstr 26
8472 Seuzach
Switzerland