tcp ccc single path tcp congestion control coupling
play

TCP-CCC: single-path TCP congestion control coupling - PowerPoint PPT Presentation

TCP-CCC: single-path TCP congestion control coupling draft-welzl-tcp-ccc-00 Michael Welzl, Safiqul Islam , Kristian Hiorth, You Jianjie ICCRG 97th IETF Meeting Seoul, South Korean Nov 15 2017 1 Motivation Parallel TCP connections between


  1. TCP-CCC: single-path TCP congestion control coupling draft-welzl-tcp-ccc-00 Michael Welzl, Safiqul Islam , Kristian Hiorth, You Jianjie ICCRG 97th IETF Meeting Seoul, South Korean Nov 15 2017 1

  2. Motivation • Parallel TCP connections between two hosts: Combining congestions controllers can be beneficial – Very beneficial: short flows can immediately use an existing large cwnd, skip slow start; also avoids competition – Can divide available bandwidth between flows based on application needs • Previous methods were hard to implement + hard to turn on/off (Congestion Manager) • General problem with this: do parallel TCP connections follow the same path all the way? – Not necessarily, because of ECMP, etc. 2

  3. Ensuring a common bottleneck • Via configuration, e.g., app hint – Bottleneck is known, e.g., common wireless uplink • Measurements can infer whether (long) flows traverse the same bottleneck [draft-ietf-rmcat- sbd] • Encapsulation – VPNs, Generic UDP Encapsulation, TCP-in-UDP (TiU) … 3

  4. Motivation (from IETF 95) (ns-2 using TCP-Linux, kernel 3.17.4) 4 Reno flows, 10 Mb bottleneck, RTT 100ms; qlen = BDP = 83 Pkts (DropTail) • TMIX traffic from 60-minute trace of campus traffic at Univ. North Carolina • (available from the TCP evaluation suite); RTT of background TCP flows: 80 ∼ 100 ms Link utilization: 68% Link utilization: 66% • • Loss: 0.78% Loss: 0.13% • • Average qlen: 58 pkts Average qlen: 37 pkts • • 4

  5. Requirements • Simple to implement – minimal changes to TCP code, avoid bursts – Correctly share TCP states 5

  6. Requirements • Simple to implement • Correctly share TCP states 6

  7. Design • Basic idea similar to FSE in draft-ietf-rmcat- coupled-cc – To emulate one flow’s behavior (… but easy to tune) – Keep a table of all current connections c with their priorities P(c); calculate each connection’s share as P(c) / Σ(P) * Σ(cwnd); react when a connection updates its cwnd and use (cwnd(c) – previous cwnd(c)) to update Σ(cwnd) 7

  8. Basic TCP changes The required changes to TCP: • – This function call, to be executed at the beginning of a TCP connection ‘c’ : register(c, P, cwnd, sshtresh); returns: cwnd, ssthresh, state – This function call, to be executed whenever TCP connection ‘c’ newly calculates cwnd: update(c, cwnd, sshthresh, state); returns: cwnd, ssthresh, state – This function call, to be executed whenever a TCP connection ‘c’ ends: leave(c) 8

  9. ACK-clocking to avoid bursts 700 Connection 2 Packet sequence number Connection 3 600 A flow joining with a large share • 500 from the aggregate can create 400 bursts in the network 300 – If not paced 200 Our approach: • 100 – Maintain the ack-clock of TCP 0 5 5.5 6 6.5 7 – Using the ACKs of conn 1 to clock Time (s) packet transmissions of connection 2 over the course of the first RTT when connection 2 joins 700 Connection 2 Packet sequence number Connection 3 – Similarly, we make use of the ACKs 600 of connections 1 and 2 to clock 500 packet transmissions of conn 3 400 – Requires slightly more changes to 300 the TCP code 200 100 [1] Safiqul Islam, Michael Welzl: Start Me Up: Determining and Sharing 0 5 5.5 6 6.5 7 9 TCP's Initial Congestion Window , ACM, IRTF, ISOC Applied Networking Time (s) Research Workshop 2016 (ANRW 2016), Berlin, Germany, 16 July 2016.

  10. Requirements • Simple to implement • Correctly share TCP states 10

  11. TCP states • Once in CA, Slow-Start(SS) shouldn’t happen as long as ACKs arrive on any flow è only SS when all flows are in SS • Avoid multiple congestion reactions to one loss event: draft-ietf-rmcat-coupled-cc uses a timer – TCP already has Fast Recovery (FR), use that instead 11

  12. More results (FreeBSD implementation) • Evaluations were repeated 10 times with randomly picked flow start times over the first second • We generated internet traffic bursts using D- ITG to occupy 50% of the bottleneck capacity on average 12

  13. More results (FreeBSD implementation) Loss ratio Avg. RTT Prioritization Avg. goodput 13

  14. More results (simulation – FCT of a short flow competing with a long flow) 90 1. Short flow 80 2. Short flow - coupled (no-ack-clock) 3. Short flow - coupled (ack-clocked) 70 FCT of short flows (RTTs) 60 50 40 30 20 10 0 0 2 4 6 8 10 Capacity (Mbps) 14

  15. More results – Flow Completion Time (FCT) (FreeBSD implementation) 10 Capacity (Mb) 8 6 Long Flow (uncoupled) Long Flow (coupled) Short Flow (uncoupled) Short Flow (coupled) 0 5 10 15 20 25 30 35 FCT (s) 15

  16. Questions? 16

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend