Presentation is loading. Please wait.

Presentation is loading. Please wait.

-1- Georgia State UniversitySensorweb Research Laboratory CSC4220/6220 Computer Networks Dr. WenZhan Song Professor, Computer Science.

Similar presentations


Presentation on theme: "-1- Georgia State UniversitySensorweb Research Laboratory CSC4220/6220 Computer Networks Dr. WenZhan Song Professor, Computer Science."— Presentation transcript:

1 -1- Georgia State UniversitySensorweb Research Laboratory CSC4220/6220 Computer Networks Dr. WenZhan Song Professor, Computer Science

2 -2- Georgia State UniversitySensorweb Research Laboratory Roadmap Transport Layer Transport-layer services Multiplexing and demultiplexing Inside end-end data transfer UDP: unreliable end-end data transfer, connectionless transport Reliable end-end data transfer principle Simplex protocols Pipelined protocols TCP: reliable end-end data transfer, connection-oriented transport segment structure reliable data transfer solution and flow control connection management end-end congestion control

3 -3- Georgia State UniversitySensorweb Research Laboratory Principles of Congestion Control Congestion: informally: “too many sources sending too much data too fast for network to handle” different from flow control! manifestations: lost packets (buffer overflow at routers) long delays (queueing in router buffers) a top-10 problem!

4 -4- Georgia State UniversitySensorweb Research Laboratory TCP Congestion Control (a) The issues with Flow Control (b) The issues with Congestion Control

5 -5- Georgia State UniversitySensorweb Research Laboratory Approaches towards congestion control End-end congestion control: no explicit feedback from network congestion inferred from end-system observed loss, delay approach taken by TCP Network-assisted congestion control: routers provide feedback to end systems single bit indicating congestion (SNA, DECbit, TCP/IP ECN, ATM) explicit rate sender should send at Two broad approaches towards congestion control:

6 -6- Georgia State UniversitySensorweb Research Laboratory TCP end-end congestion control end-end control (no network assistance) sender limits transmission: LastByteSent-LastByteAcked  CongWin Roughly, CongWin is dynamic, function of perceived network congestion How does sender perceive congestion? loss event = timeout or 3 duplicate acks TCP sender reduces rate ( CongWin ) after loss event three mechanisms: slow start congestion avoidance: AIMD conservative after timeout events rate = CongWin RTT Bytes/sec

7 -7- Georgia State UniversitySensorweb Research Laboratory TCP Slow Start When connection begins, CongWin = 1 MSS Example: MSS = 500 bytes & RTT = 200 msec initial rate = 20 kbps available bandwidth may be >> MSS/RTT desirable to quickly ramp up to respectable rate When connection begins, increase rate exponentially fast until first loss event MSS: maximum segment size

8 -8- Georgia State UniversitySensorweb Research Laboratory TCP Slow Start (more) When connection begins, increase rate exponentially until first loss event: double CongWin every RTT done by incrementing CongWin for every ACK received Summary: initial rate is slow but ramps up exponentially fast Host A one segment RTT Host B time two segments four segments

9 -9- Georgia State UniversitySensorweb Research Laboratory TCP Congestion Avoidance: AIMD multiplicative decrease: cut CongWin in half after loss event additive increase: increase CongWin by 1 MSS every RTT in the absence of loss events: probing Long-lived TCP connection

10 -10- Georgia State UniversitySensorweb Research Laboratory Refinement After 3 dup ACKs: CongWin is cut in half window then grows linearly But after timeout event: CongWin instead set to 1 MSS; window then grows exponentially to a threshold, then grows linearly 3 dup ACKs indicates network capable of delivering some segments timeout before 3 dup ACKs is “more alarming” Philosophy:

11 -11- Georgia State UniversitySensorweb Research Laboratory Refinement (more) Q: When should the exponential increase switch to linear? A: When CongWin gets to 1/2 of its value before timeout. Implementation: Variable Threshold At loss event, Threshold is set to 1/2 of CongWin just before loss event Congestion window (in segments) Timeout (fast recovery) 3 dupACKs If no more timeout/3ACKs, the CongWin will grow to RcvWin and stay flat.

12 -12- Georgia State UniversitySensorweb Research Laboratory Summary: TCP Congestion Control When CongWin is below Threshold, sender in slow-start phase, window grows exponentially. When CongWin is above Threshold, sender is in congestion-avoidance phase, window grows linearly. When a triple duplicate ACK occurs, Threshold set to CongWin/2 and CongWin set to Threshold. When timeout occurs, Threshold set to CongWin/2 and CongWin is set to 1 MSS.

13 -13- Georgia State UniversitySensorweb Research Laboratory TCP sender congestion control EventStateTCP Sender ActionCommentary ACK receipt for previously unacked data Slow Start (SS) CongWin = CongWin + MSS, If (CongWin > Threshold) set state to “Congestion Avoidance” Resulting in a doubling of CongWin every RTT ACK receipt for previously unacked data Congestion Avoidance (CA) CongWin = CongWin+MSS * (MSS/CongWin) Additive increase, resulting in increase of CongWin by 1 MSS every RTT Loss event detected by triple duplicate ACK SS or CAThreshold = CongWin/2, CongWin = Threshold, Set state to “Congestion Avoidance” Fast recovery, implementing multiplicative decrease. CongWin will not drop below 1 MSS. TimeoutSS or CAThreshold = CongWin/2, CongWin = 1 MSS, Set state to “Slow Start” Enter slow start Duplicate ACK SS or CAIncrement duplicate ACK count for segment being acked CongWin and Threshold not changed

14 -14- Georgia State UniversitySensorweb Research Laboratory Summary of Data structures for flow control and congestion control etc. TCP Window: used by sender to determine the maximum send-able data size = min(RcvWin, CongWin) Receiver-granted window (RcvWin) Receiver notify sender of the size of data it may receive in ACK Congestion window (CongWin) Sender adjusts according to the packet loss situation: slow-start (exponential increase), congestion avoidance (e.g., AIMD) TCP Timers Retransmission timer - by sender When a segment is sent, a retransmission timer is started. If no ACK before timeout, retransmit segments Timeout = EstimatedRTT + 4*DevRTT, here DevRTT is deviation, and EstimatedRTT is the estimated round trip time which updated according to EstimatedRTT =a* EstimatedRTT +(1-a)*SampleRTT Persistence timer - by sender Used by sender to prevent dead lock caused by the loss of non-zero receiver window update from receiver (after a 0-window notification) Keepalive timer To test whether the other side is still alive. Sometime the other side may leave impolitely or due to crash Time-wait timer To ensure that when a connection is closed, all packets created by it have died off Timewait = 2*maximum packet lifetime

15 -15- Georgia State UniversitySensorweb Research Laboratory Why is TCP fair? Two competing sessions: Additive increase gives slope of 1, as throughout increases multiplicative decrease decreases throughput proportionally R R equal bandwidth share Connection 1 throughput Connection 2 throughput congestion avoidance: additive increase loss: decrease window by factor of 2 congestion avoidance: additive increase loss: decrease window by factor of 2

16 -16- Georgia State UniversitySensorweb Research Laboratory Fairness (more) Fairness and UDP Multimedia apps often do not use TCP do not want rate throttled by congestion control Instead use UDP: pump audio/video at constant rate, tolerate packet loss Research area: TCP friendly Fairness and parallel TCP connections nothing prevents app from opening parallel cnctions between 2 hosts. Web browsers do this Example: link of rate R supporting 9 cnctions; new app asks for 1 TCP, gets rate R/10 new app asks for 11 TCPs, gets R/2 !

17 -17- Georgia State UniversitySensorweb Research Laboratory Delay modeling Q: How long does it take to receive an object from a Web server after sending a request? Ignoring congestion, delay is influenced by: TCP connection establishment data transmission delay slow start Notation, assumptions: Assume one link between client and server of rate R S: MSS (bits) O: object size (bits) no retransmissions (no loss, no corruption) Window size: First assume: fixed congestion window, W segments Then dynamic window, modeling slow start

18 -18- Georgia State UniversitySensorweb Research Laboratory Fixed congestion window (1) First case: WS/R > RTT + S/R: ACK for first segment in window returns before window’s worth of data sent delay = 2RTT + O/R

19 -19- Georgia State UniversitySensorweb Research Laboratory Fixed congestion window (2) Second case: WS/R < RTT + S/R: wait for ACK after sending window’s worth of data sent delay = 2RTT + O/R + (K-1)[S/R + RTT - WS/R]

20 -20- Georgia State UniversitySensorweb Research Laboratory Examples: HTTP Modeling Assume Web page consists of: 1 base HTML page (of size O bits) M images (each of size O bits) Non-persistent HTTP: M+1 TCP connections in series Response time = (M+1)O/R + (M+1)2RTT + sum of idle times Persistent HTTP with Pipeline (Default in 1.1) [without pipeline]: 2 RTT to request and receive base HTML file 1 RTT [M RTT] to request and receive M images Response time = (M+1)O/R + 3RTT [(2+M) RTT] + sum of idle times Non-persistent HTTP with X parallel connections Suppose M/X integer. 1 TCP connection for base file M/X sets of parallel connections for images. Response time = (M+1)O/R + (M/X + 1)2RTT + sum of idle times This example ignores congestion control. But you should know it will be different if we counts congestion control.

21 -21- Georgia State UniversitySensorweb Research Laboratory HTTP Response time (in seconds) RTT = 100 msec, O = 5 Kbytes, M=10 and X=5 For low bandwidth, connection & response time dominated by transmission time. Persistent connections only give minor improvement over parallel connections.

22 -22- Georgia State UniversitySensorweb Research Laboratory HTTP Response time (in seconds) RTT =1 sec, O = 5 Kbytes, M=10 and X=5 For larger RTT, response time dominated by TCP establishment & slow start delays. Persistent connections now give important improvement: particularly in high delay  bandwidth networks.

23 -23- Georgia State UniversitySensorweb Research Laboratory Summary principles behind transport layer services: multiplexing, demultiplexing error control flow control congestion control instantiation and implementation in the Internet UDP TCP Next: leaving the network “edge” (application, transport layers) into the network “core”

24 -24- Georgia State UniversitySensorweb Research Laboratory Suggestions Read Chapter 4 - Network Layer


Download ppt "-1- Georgia State UniversitySensorweb Research Laboratory CSC4220/6220 Computer Networks Dr. WenZhan Song Professor, Computer Science."

Similar presentations


Ads by Google