410 likes | 683 Views
Prof. Varsha Apte Slides based on William Stallings+Tanenbaum. CS 456: Computer Networks: Congestion Control/QoS. What is congestion? Impact of congestion. Packet queues at links start to grow… Packets start dropping Sources start re-transmitting
E N D
Prof. Varsha Apte Slides based on William Stallings+Tanenbaum CS 456: Computer Networks:Congestion Control/QoS
What is congestion?Impact of congestion Packet queues at links start to grow… Packets start dropping Sources start re-transmitting After a while only re-transmissions occupy the network Network resources start getting utilized in useless work (packets in queues that get timed out and re-transmitted) “Goodput” goes to nearly zero Max capacity Congestion controls try to avoid getting into this situation
Congestion Control What is congestion control? How is it done in example networks ? Bus LAN Switched LANs Internet Telephone network
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?) Can be done at various time-scales
Congestion control and QoS Pre-QoS: Everything “best-effort” 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
Jitter Control (a) High jitter. (b) Low jitter.
Buffering Smoothing the output stream by buffering packets.
General Principles of Congestion Control Monitor the system . detect when and where congestion occurs. Pass information to where action can be taken. Adjust system operation to correct the problem.
Congestion control time-scales Long Term: Network Resource Provisioning (sizing the network correctly) Connection duration 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: Traffic shaping, policing, selective discarding
Congestion Prevention Policies Policies that affect congestion. 5-26
Routing around congestion (a) A congested subnet. (b) A redrawn subnet, eliminates congestion and a virtual circuit from A to B.
Implicit Congestion Signaling Transmission delay may increase with congestion Packet may be discarded Source can detect these as implicit indications of congestion Useful on connectionless (datagram) networks 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. e.g. ICMP source quench
Hop-by-Hop Choke Packets (a) A choke packet that affects only the source. (b) A choke packet that affects each hop it passes through. • Not “QoS” aware • “Reactive”, rather than pro-active • Generates more packets during congestion
Congestion Signaling Network alerts end systems of increasing congestion End systems take steps to reduce offered load Backwards Congestion avoidance in opposite direction to packet required Forwards Congestion avoidance in same direction as packet required
Backward Notification Mark packets headed in the opposite direction of the congestion Tell source that packets transmitted on this logical connection may encounter congestion Source can slow down
Forward notification Marks packets going in the direction of congestion Tells the destination that these packets experienced congestion Destination may alert source about congestion At network layer At transport layer
Categories of Explicit Signaling Binary A bit set in a packet indicates congestion Credit based Indicates how many packets source may send Common for end to end flow control Rate based Supply explicit data rate limit e.g. ATM
“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
Random Early Detect Drop packets before buffers are full, so prevent congestion before it occurs Sources will react to packet drops and slow down (e.g. TCP)
Sources may not be doing flow control (voice, video) Feedback is slow, (propagation time much greater compared to transmission time) Diverse capacity requirements – may get penalized unfairly Traffic patterns very different (not “Poisson”) (CBR, VBR, very bursty) Vastly different QoS requirements Very high speed network wide fluctuations in reactive controls Issues to be addressed in broadband multi-service networks
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 Time required on the order of propagation delay Number of cells transmitted in this time = 17000 = 7 Megabits of data
Controlling Sources Connection admission control Based on some traffic descriptors, determine whether this connection can be admitted Traffic Shaping Make sure the traffic has certain performance attribute (shape) e.g. not bursty Traffic Policing Make sure traffic sent by user is according to contract done during connection admission
The Leaky Bucket Algorithm (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 re-initialized
The Leaky Bucket Algorithm Input to a leaky bucket. (1 MB burst). Network speed is 200 Mbps (b) Output from a leaky bucket (2MB/sec), 1 MB bucket size 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.
The Token Bucket Algorithm (a) Before. (b) After. 5-34
Token bucket Leaky bucket enforces rigid shape Token bucket allows some “bursts” “Save” unused credit (upto size of bucket) 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
Calculating burst length Let burst length = S Token arrival rate = r Maximum output rate = M Bucket capacity = C Burst size = C + Sr Burst size is also = M S S = C/(M-r)
Generalized Token bucket in ATM Termed “leaky bucket” Also termed “Generalized Cell Rate Algorithm”, used to mark cells as conformant or non 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 Leaky Bucket Constant Bit Rate traffic (CBR) should on a line with rate R describe itself with PCR (peak cell rate per second) and CDVT, cell delay variation tolerance Parameters translate into GCRA as GCRA(R/PCR, CDVT) Implies a long term cell rate of PCR, with CDVT being measure of departure from this rate
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) Should conform to GCRA(R/PCR, CDVT), and GCRA(R/SCR, BT+ CDVT)
ATM VBR example VBR stream with R/PCR=1, R/SCR = 20, BT = 57, CDVT = 0 GCRA (1,0) means ? GCRA (20, 57):With full bucket, allows four cells back-to-back (times 0,1,2,3) Ex. 2: R/PCR=5, R/SCR=10, CDVT=16, BT=20 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,….)
(Material done on board) Deriving an algorithm which takes decides whether a GCRA(T, ) flow will be admitted.