970 likes | 1.2k Views
Microscopic Behavior of Internet Control. Xiaoliang (David) Wei NetLab, CS&EE California Institute of Technology. Internet Control. Problem -> solution -> understanding ->. 1986: First Internet Congestion Collapse. 1986. 1989. 1995. 1999. 2003. …. Internet Control.
E N D
Microscopic Behavior of Internet Control Xiaoliang (David) Wei NetLab, CS&EE California Institute of Technology
Internet Control • Problem -> solution -> understanding -> 1986: First Internet Congestion Collapse 1986 1989 1995 1999 2003 …
Internet Control • Problem -> solution -> understanding -> First Internet Congestion Collapse 1988~1990: TCP-Tahoe DEC-bit 1986 1989 1995 1999 2003 …
Internet Control • Problem -> solution -> understanding -> First Internet Congestion Collapse 1993~1995: Tri-S, DUAL, TCP-Vegas TCP Tahoe; DEC-bit 1986 1989 1995 1999 2003 …
Outline • Motivation • Overview of Microscopic behavior • Stability of Delay-based Congestion Control Algorithms • Fairness of Loss-based Congestion control algorithms • Future works • Summary
Outline • Motivation • Overview of Microscopic behavior • Stability of Delay-based Congestion Control Algorithms • Fairness of Loss-based Congestion control algorithms • Future works
Macroscopic View of TCP Control • TCP/AQM: A feedback control system C TCP Receiver 1 TCP Sender 1 TCP Sender 2 TCP Receiver 2 xi(t) τF q(t) τB TCP: • Reno • Vegas • FAST • AQM: • DropTail / RED • Delay • ECN
Fluid Models Assumptions: • TCP algorithms directly control the transmission rates; • The transmission rates are differentiable (smooth); • Each TCP packet observesthe same congestionprice (loss, delay or ECN)
Methodology based on Fluid Models Equilibrium: • Efficiency? • Fairness? Dynamics: • Stability? • Responsiveness?
Gap 1: Stability of TCP Vegas • Analysis: “TCP Vegas is stable if (and only if) the number of flows is large, and capacity is small, and delay is small.” • Experiment: a single TCP Vegas flow is stable with arbitrarydelay and capacity.
Gap 2: Fairness of Scalable TCP • Analysis: [Chiu&Jain’90] → Scalable TCP is unfair. • Analysis: “Scalable TCP is fair in homogeneous network” [Kelly’03] • Experiment: in most cases, Scalable TCP is unfair in homogeneous network.
Gap 3: TCP vs TFRC • Analysis: “We designed TCP Friendly Rate Control (TFRC) algorithm to have the same equilibrium as TCP when they co-exist.” • Experiment: TCP flows do not fairly coexist with TFRC flows.
Gaps • Stability: TCP-Vegas • Fairness: Scalable TCP • Friendliness: TCP vs TFRC Current analytical models ignore microscopic behavior in TCP congestion control
Outline • Motivation • Overview of Microscopic behavior • Stability of Delay-based Congestion Control Algorithms • Fairness of Loss-based Congestion control algorithms • Future works
Microscopic View (Packet level) Two level timescales • On each RTT -- TCP congestion control algorithm; • On each packet arrival -- Ack-clocking: • p--; • while (p < w(t) ) do • Send a packet • p++; (p: number of packets in flight)
W: 0 -> 5 1 2 C 3 Receiver Sender 4 5 x(t) c t (time) 0
Packets queued in bottleneck C 1 Receiver Sender 2 3 4 5 x(t) c t (time) 0
Packets leaves bottleneck at rate c C 3 Receiver 2 1 Sender 4 5 x(t) c t (time) 0
Acknowledgment returns at rate c A2 A3 A1 C Receiver 5 4 Sender x(t) c t (time) 0
New Packets sent at rate c A4 A5 C Receiver Sender 2 1 3 x(t) c t (time) 0 RTT
No queue in 2nd Round Trip C Receiver 4 Sender 2 1 5 3 No need to control rate x(t) ! x(t) c t (time) 0 RTT RTT
Two Flows 4 C TCP1 Rcv1 3 2 1 4 3 2 1 TCP2 Rcv2 x(t) c t (time) 0
Two Flows C TCP1 Rcv1 3 1 2 4 1 2 3 4 TCP2 Rcv2 x(t) c t (time) 0
A2 A1 A3 C TCP1 Rcv1 2 4 3 4 1 5 TCP2 Rcv2 x(t) c t (time) 0
A4 A1 A3 C TCP1 Rcv1 2 4 1 3 2 TCP2 Rcv2 x(t) c t (time) 0 RTT
A2 A1 A3 C TCP1 4 Rcv1 2 1 3 4 TCP2 Rcv2 x(t) c t (time) 0 RTT
A3 A4 A1 C TCP1 Rcv1 2 4 3 1 2 TCP2 Rcv2 x(t) c t (time) 0 RTT
A2 A1 A3 C TCP1 Rcv1 2 4 1 3 4 TCP2 Rcv2 On-off pattern for each flow x(t) c t (time) 0 RTT RTT
Two levels of Burstiness x(t) Micro Burst • Pulse function • Input rate>>c • Extra queue & loss • Transient c t (time) 0 RTT RTT Sub-RTT burstiness • On-off function • Input rate <=c • No extra queue & loss • Persistent
Outline • Motivation • Overview of Microscopic behavior • Stability of Delay-based Congestion Control Algorithms • Fairness of Loss-based Congestion control algorithms • Future works
A packet level model: basis • Ack-clocking: on each ack arrival • p--; • while (p < w(t) ) do • Send a packet • p++; (p: number of packets in flight) • Packets can only be sent upon arrival of an acknowledgment; • A micro burst of packets can be sent at a moment; • Window size w(t) can be an arbitrary given process.
A packet level model: variables • Ack-clocking: on each ack arrival • p--; • while (p < w(t) ) do • Send a packet • p++; (p: number of packets in flight) • pj : Number of packets in flight when j is sent; • sj : sending time of packet j • bj : backlog experienced by packet j • aj : ack arrival time of packet j
A packet level model: variables A4 A5 • pj: Number of packets in flight when j is sent; • sj : sending time of packet j C 3 2 Receiver Sender 1
A packet level model: variables A4 A5 • pj: Number of packets in flight when j is sent; • sj : sending time of packet j • bj : backlog experienced by packet j C 2 Receiver Sender 1 3
A packet level model: variables A4 • pj: Number of packets in flight when j is sent; • sj : sending time of packet j • bj : backlog experienced by packet j • aj : ack arrival time of packet j C A3 1 6 5 2 Receiver Sender
A packet level model: variables • Ack-clocking: on each ack arrival • p--; • while (p < w(t) ) do • Send a packet • p++; (p: number of packets in flight) • k : number of acks between sj and sj-1; • pj: number of packets in flight when i is sent • sj: sending time of packet j • aj-p(j) : ack arrival time of the packet one RTT ago
A packet level model: variables • Ack-clocking: on each ack arrival • p--; • while (p < w(t) ) do • Send a packet • p++; (p: number of packets in flight) • k : number of acks between sj and sj-1; For example: k =0
A packet level model: variables C p3 p2 p1 j j-1 • bj : experienced backlog • c : bottleneck capacity • aj :ack arrival time • d : propagation delay
A packet level model • pj: Number of packets in flight when j is sent; • sj : sending time of packet j • bj : backlog experienced by packet j • aj : ack arrival time of packet j
Ack-clocking: quick sending process • Theorem: For anytime that a packet j is sent (sj ), there is always a packet j*:=j*(j) s.t. • sj = sj* • pj* = w (sj ) • The number of packets in flight at any packet sending time is sync-up with the congestion window.
Ack-clocking: fast queue convergence • Theorem: If for Then: • The queue converges instantly if window size is larger than BDP in the entire previous RTT.
Window Control and Ack-clocking • Per RTT Window Control: • makes decision once every RTT • with the measurement from the latest acknowledgement (a subsequence of sequence number k1, k2, k3, …)
Stability of TCP Vegas • Theorem: Given the packet level model, if αd>1, a single TCP Vegas flow converges to equilibrium with arbitrary capacity c, propagation delay d. That is: there exists a sequence number J such that
Stability of Vegas : Avg Window Size Window Oscillation: 1 packet