Congestion

  • Informally: “too many sources sending too much data too fast for network to handle”

  • Manifestations:

    • Long delays (queueing in router buffers)

    • Packet loss (buffer overt routers)

  • Different from flow control

Causes/Costs

Scenario 1

Simplest scenario:

  • 1 router, infinite buffers

  • Input, output link capacity: R

  • 2 flows

Scenario 2

  • 1 router, finite buffers

  • Sender retransmits lost, timed-out packets

    • Application-layer input = application-layer output: λin = λout

    • Transport-layer input includes retransmissions: λ’in >= λin

Idealisation

Perfect knowledge

  • Sender sends only when router buffers available
    Some perfect knowledge

  • Packets can be lost (dropped at router) due to full buffers

  • Sender knows when packet has been dropped: only resends if packet known to be lost

Realistic Scenario

Un-needed duplicates

  • Packets can be lost, dropped at router due to full buffers - requiring retransmissions

  • But sender times can time out prematurely, sending two copies, both of which are delivered

“Costs” of Congestion
  • More work (retransmission) for given receiver throughput

  • Unneeded retransmissions - link carries multiple copies of a packet

  • Decreasing maximum achievable throughput

Scenario 3

  • 4 senders

  • Multi-hop paths

  • Timeout/retransmit

Another “Cost” of Congestion

When packet dropped, any upstream transmission capacity and buffering used for that packet was wasted

Insights

  • Throughput can never exceed capacity

  • Delay increases as capacity approached

  • Un-needed duplicates further decreases effective throughput

  • Loss/retransmission decreases effective throughput

  • Upstream transmission capacity / buffering wasted for packets lost downstream