Professional Documents
Culture Documents
Congestion Control
What is congestion control? How is it done in example networks ?
Congestion control
Is done in some form at all layers
Flow control b/w source and destn. Network layer congestion control is still needed. (Why?)
E.g. TCP/IP networks, congestion control is left to TCP, i.e. TCP is a well-behaved source, that adapts to congestion
Post QoS-Integrated Services: Congestion control should be different for different sources
Different for file-transfer/e-mail Different for real-time-sensitive apps, e.g. voice, video
Different based on what type of coding is used for these
apps
Quality of Service
Quality parameters that define the performance needs of a flow (i.e. a stream of packets belonging to a particular connection)
Reliability Probability of delivering packets correctly Delay Jitter Variation in Packet delay Bandwidth
QoS Requirements
Jitter Control
Buffering
Smoothing the output stream by buffering packets.
Pass information to where action can be taken. Adjust system operation to correct the problem.
Connection (call) admission control: In connection oriented networks, decide whether to admit connection or not
Round Trip propagation time: Explicit forward congestion signaling Packet Insertion Level:
(a) A congested subnet. (b) A redrawn subnet, eliminates congestion and a virtual circuit from A to B.
e.g. IP based
(TCP includes congestion and flow control)
Backpressure
If node becomes congested it can slow down or halt flow of packets from other nodes May mean that other nodes have to apply control on incoming packet rates Propagates back to source Can restrict to logical connections generating most traffic Used in connection oriented that allow hop by hop congestion control (e.g. X.25) Not used in ATM nor frame relay Only recently developed for IP
Choke Packets
Earlier method takes too much time to send back congestion message Instead, router can send choke packet back to source
Once choke packet is send, original packet is marked, so downstream routers do not generate any more choke packets When choke packet comes to receiver, it decreases its traffic rate
E.g. by changing window size
Increase traffic rate if choke packets slow down, decrease if more come.
congestion
Congestion Signaling
Network alerts end systems of increasing congestion End systems take steps to reduce offered load Backwards
Forwards
Backward Notification
Mark packets headed in the opposite direction of the congestion Tell source that packets transmitted on this logical connection may encounter congestion
Forward notification
Marks packets going in the direction of congestion Tells the destination that these packets experienced congestion Destination may alert source about congestion
A bit set in a packet indicates congestion Indicates how many packets source may send Common for end to end flow control Supply explicit data rate limit e.g. ATM
Credit based
Rate based
Load Shedding
Drop packets when buffers are full Router can try to drop intelligently
Dropping older packets is better for multimedia streaming apps Dropping newer packets is better for data apps (e.g. file transfer).
Receiver may discard out-of-order packets
Sources will react to packet drops and slow down (e.g. TCP)
ATM Example
Data rate: 150 Mbps Cell size (Fixed): 53 bytes Cell Insertion Time = 2.8 microsecs Assuming US coast-to-coast, round trip propagation delay is approx. 48 milliseconds Suppose a file transfer is initiated, congestion occurs, and implicit congestion control is used
Controlling Sources
Connection admission control
Based on some traffic descriptors, determine whether this connection can be admitted Make sure the traffic has certain performance attribute (shape) e.g. not bursty Make sure traffic sent by user is according to contract done during connection admission
Traffic Shaping
Traffic Policing
(a) A leaky bucket with water. (b) a leaky bucket with packets
Leaky bucket
Let one packet out per clock tick If packet arrives, queue it If bucket full, packet is discarded If packets are the same size, this enforces a uniform rate For variable size packets
Initialize counter to n If packet size < counter, let packet thru and decrement counter by packet size If size > counter, wait until clock ticks, and reinitialized
Output from a token bucket with capacities of (c) 250 KB, (d) 500 KB, (e) 750 KB, (f) Output from a 500KB token bucket feeding a 10-MB/sec leaky bucket.
5-34
(a) Before.
(b) After.
Token bucket
Leaky bucket enforces rigid shape Token bucket allows some bursts
Does not discard packets (in principle) Variant can be done for variable size packets
Increment counter every clock tick by k bytes Decrement counter when packet passes thry
Described with two parameters as GCRA (T, ) Bucket size = T + Bucket filled with fluid at rate 1/unit time (Unit time = 1 cell transmission time) Let F(t) denote fluid in the bucket at time t.
If cell arrives at time t, and F(t-) >= T, cell is labeled
conformant and F(t+) = F(t-) T If F(t-) < T, cell is labeled non-conformant and F(t+) = F(t-) If the next cell arrives s time units later, then F(t+s-) = min {F(t+)+s, T + }
ATM CBR
Example: R/PCR = 5, CDVT = 1. I.e. PCR is 20 % of line rate. Suppose initially, bucket is full = 6. Cell arrival times: 0,4,9,14,16,22,24,29 Cell Labels: (C= conformant, NC= non)
F(0-)= 6, C,F(0+)=1,F(4-)=5, C, F(4+)=0, F(9-)=5, C,
F(9+)=0, F(14-)=5, C, F(14+)=0, F(16-)=2, NC, F(16+)=2, F(22-)=6, C, F(22+) = 1, F(24-)= 3, NC, F(24+) = 3, NC, F(29-)=6, C, F(29+)=1
ATM VBR
Variable bit rate: much more bursty, with idle periods Described by: PCR, CDVT, BT (burst tolerance), SCR (sustained cell rate)
GCRA (1,0) means ? GCRA (20, 57):With full bucket, allows four cells back-to-back (times 0,1,2,3)
GCRA(5,16) and GCRA (10, 36) Bursts of five consecutive cells every 50 cell trans times (0,1,2,3,4,50,51,52,53,54,100,101,102,103,104,.)