09-Congestion controlTransport Layer3-1Approaches towards congestion controlpp gTwo broad approaches towards congestion control:End-to-end congestion control:Network-assisted congestion control: no explicit feedback from network congestion inferred from routers provide feedback to end systems bits indicating gffmend-system observed loss, delay approach taken by TCPgcongestion explicit rate sender should send atpp yTransport Layer3-2Case study: ATM ABR congestion controlygABR: available bit rate: RM (resource management) “elastic service” if sender’s path “underloaded”: (g)cells: sent by sender, interspersed with data cellsunderloaded : sender should use available bandwidthif sender’s path with data cells bits in RM cell set by switches (“network-assisted”) RM cells returned to sender by if sender s path congested: sender throttled to minimum guaranteed RM cells returned to sender by receiver, with bits intactminimum guaranteed rateTransport Layer3-3Case study: ATM ABR congestion control EFCI (explicit forward congestion indication) bit in data cells: set to 1 in congested switch if data cell preceding RM cell has EFCI set, sender sets CI bit in returned RM cellCI( ti iditi) d NI( i ) bit i RM llCI(congestion indication) and NI(no increase) bits in RM cells Switch sets NI to 1 (mild congestions) CI bit to 1(severe congestion)twobyte ER (explicit rate) field in RM cell3-4two-byte ER (explicit rate) field in RM cell congested switch may lower ER value in cell sender’s send rate thus minimum supportable rate on pathTCP Congestion Control end-end control (no network TCP Congest on ControlHow does sender (assistance) perceive congestion? loss event = timeout or3 d li t ksHow does sender limit the rate?CongWin(congestion window)3 duplicate acksThree mechanisms to CongWin (congestion window)is dynamic, function of perceived network congestionThree mechanisms to adapt CongWin: AIMDl LastByteSent-LastByteAcked≤ CongWin slow start conservative after timeout eventsTransport Layer3-5TCP AIMDmultiplicative decrease:cut CongWin in half ft l tadditive increase:increase CongWin by 1 MSS RTT i congestionwindowafter loss event1 MSS every RTT in the absence of loss events24 Kbyteswindow8 Kbytes16 Kbytes8bytestimeTransport Layer3-6Long-lived TCP connectionTCP Slow StartTCP Slow Start When connection begins, When connection begins, g,CongWin = 1 MSS available bandwidth may b MSS/RTTWg,increase rate exponentially fast until first loss eventbe >> MSS/RTT desirable to quickly ramp up to respectable ratefirst loss event For every successful ACK, send two packets.Transport Layer3-7TCP Slow Start (more)TCP Slow Start (more) When connection Host AHost Bbegins, increase rate exponentially until first loss event:Host ARTTHost Bfirst loss event: double CongWin every RTTd b i ti done by incrementing CongWin for every ACK receivediiil Summary:initial rate is slow but ramps up exponentially fasttimeTransport Layer3-8pyRefinementRef nement After 3 dup ACKs: (AIMD)•3 dup ACKs indicates Philosophy: CongWin is cut in half window then grows li l•3 dup ACKs indicates network capable of delivering some segments bf d linearly But after timeout event:CongWininstead set to •timeout before 3 dup ACKs is “more alarming”CongWininstead set to 1 MSS; window then grows exponentially to a threshold, then grows linearlyTransport Layer3-9linearlyRefinement (more)Q: When should the exponential i ith t 1214size increase switch to linear? A: When CongWint t 1/2 f it 681012tion window ssegments)thresholdgets to 1/2 of its value before timeout.024123456789101112131415congest(sImplementation: Variable Threshold At l t Th h ld i 123456789101112131415Transmission roundAt loss event, Threshold is set to 1/2 of CongWin just before loss eventTransport Layer3-10S TCP Cti CtlSummary: TCP Congestion ControlWhen CongWinis below Threshold sender in When CongWinis below Threshold, sender in slow-start phase, window grows exponentially.When CongWinis above Threshold sender is in When CongWinis above Threshold, sender is in congestion-avoidance phase, window grows linearly.When a triple duplicate ACKoccurs ThresholdWhen a triple duplicate ACKoccurs, Thresholdset to CongWin/2 and CongWin set to Threshold. When timeout occurs, Threshold set to CongWin/2 and CongWin is set to 1 MSS.Transport
View Full Document