Computer Networks Lecture 18 TCP Cubic, TCP in 4G LTE 11/5/2013 Lecturer: Namratha Vedire 1 Admin • Assignment 4 Check Point 1: Nov 15, 11:55 pm To Do: Discuss design with instructor or a TF Nov 11 Code and Report: Nov 19, 11:55 pm To Do: Discuss design with instructor or a TF Nov 14 Demo Recap Recap : RTT & Timeout • RTT Sample RTT EstimatedRTT = (1-α)*EstimatedRTT + α*SampleRTT (α=0.125) DevRTT = (1-β)*DevRTT + β*|SampleRTT – EstimatedRTT| (β=0. • Timeout = EstimatedRTT + 4*DevRTT Recap : Congestion Control • Congestion is too many sources sending too much data too fast. • Manifestation 1. Lost packets congestion collapse Load 3. Wasted Bandwidth Delay packet loss cliff Throughput knee 2. High Delay Load Recap : Congestion Control • Efficiency - Close to full utilization but low delay. - Fast convergence after disturbance. • Fairness - Resource Sharing • Distributed - No central knowledge necessary - Scalability Recap : Simple Model User 1 x1 User 2 x2 xn User n Flows observe congestion signal d, and locally take actions to adjust rates. d = xi > Xgoal? Recap : A(M)I - MD Protocol •Apply the A(M)I – MD algorithm to a sliding window protocol ìï a + b x (t) I I i xi (t +1) = í ïî bD xi (t) if d(t) = no cong. if d(t) = cong. Recap : TCP/ Reno • Two cases - 3 duplicate ACKs (network capable of delivering some packets) -Timeout (more alarming) • Two phases 1. Slow start (SS) - MI 2*cwnd per RTT till congestion 2. Congestion avoidance(CA) – AIMD cwnd increase by 1 per RTT - 3 duplicate ACKs cwnd = cwnd/2 - Timeout cwnd =1 - In timeout timeout = 2*timeout Recap : TCP/ Reno TD cwnd TD TD TO ssthresh ssthresh SS CA SS – Slow Start CA – Congestion Avoidance TD – Three Duplicate ACKs TO - Timeout ssthresh CA ssthresh CA SS CA Time Recap : TCP/ Reno When cwnd is cut to half, why does sending rate not get cut? Recap : TCP/ Reno ç There is a filling and draining of buffers for each TCP flow. cwnd filling buffer TD bottleneck bandwidth ssthresh draining buffer CA Time TCP/ Reno Analysis TCP/ Reno Throughput Analysis • Understand throughput in terms of - RTT - Packet loss rate (p) - Packet size (S) Throughput calculations - Assume congestion avoidance and no timeouts occur - Mean window size Wm segments, round trip time RTT & pack size S - Throughput ≈ Wm * S RTT bytes/sec Deterministic Analysis • Consider congestion avoidance - Assume one packet is lost per cycle - Total packets sent per cycle = ½*(W + W/2) * W/2 = 3W2/8 - Packet loss (p) = 1/(3W2/8) = 8/(3W2) W = 8/3 = 1.6 p • Throughput = S*Wm RTT S 1.2S = RTT ( 43 1.6p ) = RTT p cwnd 3W W 4 2 TD 3W 2 8 Wm = 3W4 available bandwidth ssthresh W/2 CA p W Time TCP/ Reno Drawbacks • Multiple packets lost simultaneously cannot be accounted for cwnd = 6 3 duplicate ACK’s Re-transmit segment 1 cwnd = 3 3 duplicate ACK’s Re-transmit segment 2 cwnd = 1 cwnd might reduce twice for packets lost in same window TCP/ Reno Drawbacks RTT unfairness - Flows with different RTT’s grow their congestion windows differently - Users with shorter RTT ramp up faster! - On long distance links, RTT is high and cwnd takes longer to increase leading to underutilization of link. Synchronized losses - Simultaneous packet loss events for multiple competing flows. New Protocol Necessary!! Desired Characteristics in TCP Adaptive schemes that grow the congestion window depending on network conditions - Scalable - RTT Fairness - Faster convergence to better utilize full bandwidth TCP BIC http://www.land.ufrj.br/~classes/coppe-redes-2007/projeto/BIC-TCPinfocom-04.pdf Growth functions – Consider TCP/Reno growth function cwnd TD TD TD TD Wm ssthresh CA CA CA Grows linearly throughout CA Time TCP BIC Binary Increase Congestion Control (BIC) algorithm PHASE 1 cwnd < low_wind, follows TCP - ACK received : cwnd = cwnd + 1 - Loss event: cwnd = cwnd/2 PHASE 2 cwnd > low_wind, follows BIC BIC Algorithm Some preliminaries - βmultiplicative decrease factor - Wmax = cwnd size before the reduction - Wmin = β*Wmax – just after reduction - midpoint = (Wmax + Wmin)/2 BIC performs binary search between Wmax and Wmin looking for the midpoint. BIC Algorithm Max Probing Wmax + 3Smax Packet loss event Wmax + 2Smax Wmax +Smax Wmin Wmin Wmax W max++SSmin min Wmax (Wmin – midpoint) < Smin midpoint = (Wmin + Wmax)/2 Wmin + Smin midpoint = (Wmin + Wmax)/2 midpoint = (Wmin + Wmax)/2 WW min min+ Smax Wmin + Smax Wmin – midpoint > Smax Wmin = β*Wmax Additive Increase Binary Search Slow Start Additive Inc. BIC Algorithm while (cwnd != Wmax){ If ((Wmin – midpoint) > Smax) cwnd = cwnd + Smax else If ((Wmin – midpoint) < Smin) cwnd = Wmax else cwnd = midpoint If (no packet loss) Wmin = cwnd else Wmin = β*cwnd Wmax = cwnd midpoint = (Wmax + Wmin)/2 } Additive Increase Binary Search BIC Algorithm while (cwnd >= Wmax){ If (cwnd < Wmax + Smax) cwnd = cwnd + Smin else cwnd = cwnd + Smax If (packet loss) Wmin = β*cwnd Wmax = cwnd } Slow Start Additive Increase Max Probing TCP BIC - Summary Max Probing + Smin + Smax Packet loss event Wmax + Smax Additive Increase Time jump to midpoint Binary Increase Slow Start Additive Increase TCP BIC in Action TCP BIC Advantages – Scalability: quickly scales to fair BW share Fairness and convergence: Achieves better fairness and faster convergence Slow Growth around Wmax ensures that unnecessary timeouts do not occur. TCP BIC Drawbacks cwnd growth is aggressive for TCP with short RTT or low speed - Short RTT makes cwnd ramp up soon Still dependent on RTT - Proportional to inverse square of the RTT like TCP/ Reno Complex window growth function - Difficult for analysis and actual implementation TCP Cubic http://www4.ncsu.edu/~rhee/export/bitcp/cubic-paper.pdf TCP Cubic cwnd = C( t – K)3 + Wmax - Wmax = cwnd before last reduction - βmultiplicative decrease factor - C scaling factor - K = 3 Wb / C - t is the time elapsed since last window reduction TCP CUBIC Max Probing Cubic starts probing for more Bandwidth Packet loss event Wmax Time Fast growth upon reduction Steady State Behavior Around Wmax, window growth almost becomes zero TCP Cubic Advantages Good RTT fairness - Growth dominated by t, competing flows have same t after synchronized packet loss Real-time dependent - Similar to BIC but linear increases are time dependent - Does not depend on ACK’s like TCP/ Reno Scalability - Cubic increases window to Wmax (or its vicinity) quickly and keeps it there longer TCP Cubic Drawbacks Slow Convergence - Flows with higher cwnd are more aggressive initially - Prolonged unfairness between flows Bandwidth Delay Products - Linear increase artefacts TCP in 4G LTE http://conferences.sigcomm.org/sigcomm/2013/papers/sigcomm/p363. pdf 4G LTE Bandwidths match (often exceed) home broadband speeds. Higher Energy Efficiency - New resource management policy Higher Throughputs Lower Latency 4G LTE - Architecture UE – User Equipment RAN – Radio Access Network CN – Core Network SGW – Switching Gateway PGW – Packet Data Network Gateway 4G LTE - Latency End-to-end latency of a packet that requires a UE’s radio interface is long RRC promotion delay Promotion delay is not included in either uplink or downlink as the delay has already finished when it reaches the server Estimating the Promo Delay - Tsa – Timestamp of SYN - TSb – Timestamp of ACK - G – inverse of clock frequency - Promo Delay = G(TSb – TSa) 4G LTE - Latency – 3G Networks - 2 s from idle to high power state - 1.5 s from low to high power state 4G Networks - 600 ms promotion delays 4G LTE - Queuing Delays In-flight bytes of more than 200KB leads to longer queuing delays. During data transfer phase, a TCP sender will increase its congestion window, allowing number of unacknowledged packets to grow. - “in-flight” packets buffered by routers in network path - buffers extensively accommodate cellular network conditions and conceal packet loss Relative Sequence Number 4G LTE – Undesired Slow Start 3e+06 2.5e+06 2e+06 1.5e+06 1e+06 Data ACK 500000 0 0 0.5 1 1.5 2 Time (second) 2.5 3 Relative Sequence Number 4G LTE – Undesired Slow Start 3e+06 2.5e+06 2e+06 in-flight bytes growing 1.5e+06 1e+06 Data ACK 500000 0 0 0.5 1 1.5 2 Time (second) 2.5 3 Relative Sequence Number 4G LTE – Undesired Slow Start 3e+06 2.5e+06 Packet loss 2e+06 1.5e+06 1e+06 Data ACK 500000 0 0 0.5 1 1.5 2 Time (second) 2.5 3 4G LTE – Undesired Slow Start Relative Sequence Number Fast retransmission allows TCP to directly send the lost segment to the receiver possibly preventing retransmission timeout 3e+06 2.5e+06 Fast retransmission 2e+06 1.5e+06 1e+06 Data ACK 500000 0 0 0.5 1 1.5 2 Time (second) 2.5 3 4G LTE – Undesired Slow Start Relative Sequence Number TCP uses RTT estimate to update retransmission timeout (RTO) However, TCP does not update RTO based on duplicate ACKs RTO » RTT + 4RTTVAR 3e+06 2.5e+06 RTT: 262ms RTO: 290ms 2e+06 1.5e+06 1e+06 500000 Duplicate ACKs Data ACK 0 0 0.5 1 1.5 2 Time (second) 2.5 3 4G LTE – Undesired Slow Start Relative Sequence Number Retransmission timeout causes slow start 3e+06 RTT: 356ms RTO: 290ms RTT > RTO, timeout! 2.5e+06 2e+06 1.5e+06 1e+06 SLOW START Data ACK 500000 0 0 0.5 1 1.5 2 Time (second) 2.5 3 4G LTE – Undesired Slow Start If large number of packets are in flight and one packet is lost - large number of duplicate ACKs trigger fast re-transmission - avoid timeout Large in-network queues hold many packets and delay the retransmitted packet - If specified ACK does not arrive within timeout, this triggers timeout and cwnd = 1 - Undesired Slow Start SOLUTION: Update the estimated RTT with duplicate ACKs 4G LTE – TCP Receive Window In 4G LTE networks, receive windows have become the bottleneck - Initial receive window is not large (mostly 131.8 KB) - Application is not reading data fast enough from the receive buffer TCP rate is jointly controlled by congestion window and receive window - a full receive window prevents the server from sending more data - This leads to bandwidth underutilization SOLUTION -Move data from transport layer buffers to application layer buffers to empty receive window -Increase receive window at network level – deployment is challenging Backup Netflix App Case Study