Endend congestion control windowbased congestion control Sending transport

  • Slides: 18
Download presentation
End-end congestion control: window-based congestion control Sending transport entity maintains congestion window over sequence

End-end congestion control: window-based congestion control Sending transport entity maintains congestion window over sequence number space can send a packet if packet seq. # in window 1 distinct from flow control window 1 On timeout loss assumed 1 decrease congestion window size 1 increase timeout value (in case packet was delayed) 1 ACK received: increase window size 1 everything is OK, so allow even larger window Copyright 1998. All Rights Reserved, J. Kurose, D. Towsley.

End-end congestion control: TCP Uses window-based congestion control Two variables used cwnd: congestion window

End-end congestion control: TCP Uses window-based congestion control Two variables used cwnd: congestion window size 1 ssthresh: threshold for slowing down rate of increase 1 TCP slow start + congestion avoidance: assume 4 K segment size 1 TCP window size = min(flow control window size, congestion control window size) 1

initialize: cwnd=1 ssthresh=16 loop: if (ACK received and cwnd <= ssthresh) cwnd = cwnd+1

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/cwnd 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 1 network layer not involved, but congestion

Network-indicated Congestion Control Window-based control strictly end-end 1 network layer not involved, but congestion occurs in network layer! One network-indicated approach: network "marks" packets passing through congested node 1 receiver sees congestion indication mark and tells sender to slow down 1 congestion-experienced flag in ISO CLNP, CWI (change window indicator) in IBM SNA virtual route pacing

Network-indicated Congestion Control (cont) Second network-indicated approach: upon detecting congestion, congested router sends explicit

Network-indicated Congestion Control (cont) Second network-indicated approach: upon detecting congestion, congested router sends explicit message back to traffic sources to slow them down 1 text: choke packets 1 source quench in ICMP (Internet control message protocol) 1 VR-RWI bit in SNA VR pacing

Network Indicated Congestion Control: Difficulties Receiver-initiated control may have long feedback time in high-speed

Network Indicated Congestion Control: Difficulties Receiver-initiated control may have long feedback time in high-speed networks sender may have 1000’s sent (but un. ACKed) packets before congestion indicator receiver 1 pipe filled already 1 Both approaches require coupling of network and transport layer OK for homogeneous networks 1 difficult in internetworked environment, with different network layers 1

Rate-Based congestion control 1 congestion control particularly hard in high-speed networks 1 e. g.

Rate-Based congestion control 1 congestion control particularly hard in high-speed networks 1 e. g. , : 1 Gbit. sec link, 1 Kbyte packet takes 8 msec to transmit 1 thousands of packets "in the wire" propagating cross country 1 when congestion occurs, too late to react 1 avoid congestion by regulating flow of packets into network u u smoother flows will avoid bursts of packets from different senders arriving at same node and causing congestion smooth out packet bursts at network edge on per session basis before they enter network.

Rate Based Congestion Control: Leaky Bucket Goal: regulate rate at which sender can inject

Rate Based Congestion Control: Leaky Bucket Goal: regulate rate at which sender can inject packets into network

Rate Based Congestion Control: Leaky Bucket Goal: regulate rate at which sender can inject

Rate Based Congestion Control: Leaky Bucket Goal: regulate rate at which sender can inject packets into network 1 a packet must match up with (and remove ) a token before entering network 1 tokens added to bucket at rate r: controls long term rate of packet entry into network 1 at most b tokens accumulate in bucket. Bucket size b control "burstiness" of arrivals 1 maximum number of packets entering network in t time units is b+rt 1 XTP uses rate and burst parameters analagous to r, b

Congestion control by Buffer Preallocation 1 lack of buffering in network is fundamental cause

Congestion control by Buffer Preallocation 1 lack of buffering in network is fundamental cause of congestion 1 avoid congestion by allocating buffers to an end-end connection 1 if insufficient buffers for a new connection, block it (as in circuit switching) 1 buffers dedicated to connection, link still shared u protects behaving connections from misbehaving one u data link layer involved in transport layer congestion control

Congestion Control in ATM ABR Service ATM ABR (available Bit Rate) service: 1 allows

Congestion Control in ATM ABR Service ATM ABR (available Bit Rate) service: 1 allows sender to send at rate up to a peak cell rate (PCR) 1 guarantees a rate of at least minimum cell rate (MCR) when needed 1 sender rate may fluctuate between 0 and PCR, depending on sender need, network congestion 1 provides max-min fairness among sessions Congestion Control in ABR service: 1 combines aspects of rate-based and networkindicated congestion control

ATM ABR Congestion Control: EFCI: explicit forward congestion indication 1 based on negative feedback

ATM ABR Congestion Control: EFCI: explicit forward congestion indication 1 based on negative feedback ("bad things are happening") to sender 1 congested node (queue length > threshold) marks EFCI bit in sender-to-receiver cell 1 receiver sees EFCI set and notifies sender 1 sender decreases cell rate: 1 ACR: allowed cell rate ACR = max(ACR * multiplicative decrease, MCR) 1 sender increases cell rate if no negative feedback in an update interval: ACR = min(ACR+ additive_increase, PCR)

ATM ABR Congestion Control: explicit rates Sender declares every N-th cell as "RM" cell

ATM ABR Congestion Control: explicit rates Sender declares every N-th cell as "RM" cell 1 RM: resource management 1 records its PCR, allowed_call_rate in RM cell 1 ER field in RM cell: used by switches to set source rate Switch on sender-to-receiver path: if congested 1 determine new rate for that source (consider PCR, ACR) 1 set ER field to indicate new rate only if new rate less than current ER value

Connection Management: Connection Paradigms Connection-oriented 1 explicitly setup/tear down connections 1 setup up session

Connection Management: Connection Paradigms Connection-oriented 1 explicitly setup/tear down connections 1 setup up session context 1 initial sequence number, flow control window size 1 exchange data within context of connection 1 e. g. , TCP, ISO TP 4

Connection Paradigms (cont) Connectionless service 1 pure datagram 1 one-time unreliable send 1 e.

Connection Paradigms (cont) Connectionless service 1 pure datagram 1 one-time unreliable send 1 e. g. , UDP (RFC 768), ISO CLTP (ISO 8072) 1 transaction oriented 1 single request from sender, single reply from receiver 1 VMTP protocol

Connection Management: Fundamental Issues Source of problems: 1 network can delay, reorder lose packets

Connection Management: Fundamental Issues Source of problems: 1 network can delay, reorder lose packets 1 timeout/retransmit introduces duplicates of data, ACKs, connect, close packets On packet arrival: is it real or is it memorex? 1 new connection request/release from "real live client" or an old one 1 transport protocols must create/maintain/destroy enough "state” information to answer the memorex question 1 explicit connection establishment/teardown with connectionoriented service

Connection Management: Two basic approaches for setting up a connection 1 two way handshake

Connection Management: Two basic approaches for setting up a connection 1 two way handshake with wristwatch 1 three way handshake