End-end congestion control: window-based congestion control

Sending transport entity maintains congestion window over sequence number space

on timeout

ACK received: increase window size

End-end congestion control: TCP

uses window-based congestion control

two variables used

TCP slow start + congestion avoidance:


initialize: cwnd=1
     ssthresh=16
loop: if (ACK received and cwnd <= ssthresh)
         cwnd = cwnd+1
      else if (ACK received and  cwnd > ssthresh)
         cwnd = cwnd + 1/ssthresh
      else if packet timeout
         ssthresh = cwnd/2    /* new thresh half current win */
         cwnd = 1             /* new window size back to 1 */
forever

Network-indicated congestion control

Window-based control strictly end-end

One network-indicated approach: network "marks" packets passing through congested node

Second network-indicated approach: upon detecting congestion, congested router sends explicit message back to traffic sources to slow them down

Network indicated congestion control: difficulties

Receiver-initiated control may have long feedback time in high-speed networks

Both approaches require coupling of network and transport layer

Rate-Based congestion control

Rate Based congestion control: leaky bucket

Goal: regulate rate at which sender can inject packets into network

Congestion control by Buffer Preallocation

Congestion Control in ATM ABR Service

ATM ABR (available Bit Rate) service:

Congestion Control in ABR service:

ATM ABR Congestion Control: EFCI

EFCI: explicit forward congestion indication

ATM ABR Congestion Control: explicit rates

Sender declares every Nth cell as "RM" cell

Switch on sender-to-receiver path: if congested

Connection Management: connection paradigms

Connection-oriented

Connectionless service

Connection Management: fundamental issues

Source of problems:

On packet arrival: is it real or is it memorex?

Two basic approaches for setting up a connection

<