Chapter 1: Introduction

  • Resource allocation is a hard problem in any computer system, but especially for a system as complex as the Internet

  • The network began to experience a phenomenon known as congestion collapse

  • Solution: congestion control, was developed and deployed in the late 1980s

  • Congestion control, and resource allocation more broadly, are wide open design spaces with plenty of room for innovation

    • New approaches or refinements to the existing approaches will continue to appear as long as the Internet exists

  • Outline: explore the design space for congestion control in the Internet and present a description of major approaches to managing or avoiding congestion that have been developed over the last three decades

1.1 What is congestion?

  • This book focus on congestion control for packet-switched networks

    • Packet switching: multiplexing, a system resource (i.e. a link or a queue in a router) is shared among multiple users or applications

    • Statistically multiplexed: as packets show up somewhat randomly, we reply on statistical properties of those arrivals to ensure that we don't run out of resources

    • A network that attempts to allocate bandwidth to particular flows is sometimes said to support Quality-of-Service (QoS)

    • The link can only carry so many bits per second, and the queue can only hold so many packets (or bytes) before it has to start discarding packets

    • Managing the access to these shared resources, and trying to do so in a way that prevents congestion collapse, is the essence of congestion control

1.2 Controlling Congestion

  • Challenges

    • They are not isolated to a single level of a protocol hierarchy

      • Resource allocation is partially implemented in the routers, switches, and links inside the network and partially in the transport protocol running on the end hosts

      • End systems may use signaling protocols to convey their resource requirements to network nodes, which respond with information about resource availability

      • Application protocols may themselves be designed to mitigate congestion

      • Key: you cannot fully understand congestion without looking at all the places in the system that it touches

  • Resource allocation: network resources (primarily link bandwidth and buffer space in routers or switches)

  • Congestion control: the efforts made by network nodes (including end systems) to prevent or respond to overload conditions

    • Note: differ than flow control (i.e., keeping a fast sender from overrunning a slow receiver), while CC is intended to keep a set of senders from sending too much data into the network because of lack of resources at some point

  • Congestion collapse occurred in early Internet: dropped packets are not just discarded and forgotten; but it is retransmitted

    • The number of packets sent into the network increases even if there is no real increase in the offered load from users and applications

  • Metric: goodput

    • Distinguished from throughput in the sense that only packets doing useful work are counted towards goodput

  • Key insight of early researcher: is it possible and necessary for TCP to do something other than blindly retransmit lost packets during times of congestions

    • Key: interaction between end-to-end protocol and the network during times of congestion

Last updated