Chapter 1: Introduction
Last updated
Was this helpful?
Last updated
Was this helpful?
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
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
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