Approaches to congestion control in network layer PPT. - Codeprg

Breaking

programing News Travel Computer Engineering Science Blogging Earning

Sunday, 17 May 2020

Approaches to congestion control in network layer PPT.

Approaches to congestion control in the network layer.

Informally, When too many sources sending too much data too fast for a network to handle.

Manifestations: lost of packets (buffer overflow at routers) and long delays (queuing in router buffers).

Two broad approaches to congestion control:

  1. End -end congestion control
  2. Network assisted congestion control

End-end congestion control:)

  • no explicit feedback from the network
  • congestion inferred from end-system observed packets loss, delay
  • the approach was taken by TCP

Network-assisted congestion control:)

  • The router provides feedback to end systems
  • A single bit indicating congestion (SNA,DECbit,TCP/IP ECN, ATM)
  • explicit rate sender should send at

Goals of congestion control:)

Throughput: Maximize good output and the total number of bits end-end.
Fairness: Give different sessions equal share and maximize the minimum rate session.
Single Link: Capacity(R), session (m) and Each session: R/m

End to end feedback:)

Abstraction: Alarm flag and observable at the end stations.

Simple feedback model:)

Every RTT receives feedback: High congestion, Decrease rate, and Low congestion Increase rate. Also, the Variable rate controls the sending rate.

TCP Congestion Control:)

  • Closed-loop, end-to-end, window-based congestion control
  • Designed by Van Jacobson in late 1980s, based on the AIMD alg . of Dah-Ming Chu and Raj Jain
  • Works well so far: the bandwidth of the Internet has increased by more than 200,000 times
Slow Start: getting to equilibrium gradually but quickly and double cwnd every RTT until network congested and get a rough estimate of the optimal of cwnd.

TCP & AIMD: congestion:)
Dynamic window size [Van Jacobson]
Initialization: Slow start
Steady-state: AIMD

Congestion = timeout : TCP Tahoe

Congestion = timeout || 3 duplicate ACK: TCP Reno & TCP new Reno

Congestion = higher latency : TCP Vegas

Many versions:)

TCP/Tahoe: this is a less optimized version.  It is used for Congestion avoidance.

//slow start is over 
//Congwin > threshold 

Until (timeout or 3dupACKs) { /* loss event */
every ACK: Congwin += 1/Congwin
}
threshold = Congwin/2
Congwin = 1
perform slow start.

TCP/Reno: many OSs today implement Reno type congestion control.Maintains equilibrium and reacts around an equilibrium.
Implements the AIMD algorithm:
  • Increases the window by 1 per round-trip time.
  • Cuts window size: to half when detecting congestion by 3DUP, to 1 if a timeout and if already timeout doubles timeout.
Initially:
cwnd = 1;
ssthresh = infinite (e.g., 64K);
For each newly ACKed segment:
if (cwnd less than ssthresh)
/* slow start*/
cwnd = cwnd + 1;
else
/* congestion avoidance; cwnd increases (approx.)
by 1 per RTT */
cwnd += 1/cwnd;
Triple-duplicate ACKs:
/* multiplicative decrease */
cwnd = ssthresh = cwnd/2;
Timeout:
ssthresh = cwnd/2;
cwnd = 1;
(if already timed out, double timeout value; this is called exponential backoff)

TCP/Vegas: not currently used

TCP uses different policies to handle the congestion in the network. We describe these policies in this
section.