TCP Behavior in Quality of Service Networks
Thesis DisciplineElectrical Engineering
Degree GrantorUniversity of Canterbury
Degree NameDoctor of Philosophy
Best effort networks fail to deliver the level of service emerging Internet applications demand. As a result many networks are being transformed to Quality of Service (QoS) networks, of which most are Differentiated Services (DiffServ) networks. While the deployment of such networks has been feasible, it is extremely difficult to overhaul the transport layer protocols such as Transmission Control Protocol (TCP) running on hundreds of millions of end nodes around the world. TCP, which has been designed to run on a best effort network, perform poorly in a DiffServ network. It fails to deliver the performance guarantees expected of DiffServ. In this thesis we investigate two aspects of TCP performance in a DiffServ network unaccounted for in previous studies. We develop a deterministic model of TCP that intrinsically captures flow aggregation, a key component of DiffServ. The other important aspect of TCP considered in this thesis is its' transient behavior. Using our deterministic model we derive a classical control system model of TCP applicable in a DiffServ network. Performance issues of TCP can potentially inhibit the adoption of DiffServ. A DiffServ network commonly use token buckets, that are placed at the edge of the network, to mark packets according to their conformance to Service Level Agreements (SLA). We propose two token bucket variants designed to mitigate TCP issues present in a DiffServ network. Our first proposal incorporates a packet queue alongside the token bucket. The other proposal introduces a feedback controller around the token bucket. We validate both analytically and experimentally the performance of the proposed token buckets. By confining our changes to the token bucket we avoid any changes at end-nodes. The proposed token buckets can also be incrementally deployed. Most part of the Internet still remains as a best effort network. However, most nodes run various QoS functions locally. We look at one such important QoS function, i.e. the ability to survive against flows that are non-responsive to congestion, the equivalent of a Denial of Service (DoS) attack. We analyze existing techniques and propose improvements.