Department of Informatics Networks and Distributed Systems (ND) group

Slides:



Advertisements
Similar presentations
TCP Variants.
Advertisements

Coupled congestion control for RTP media draft-welzl-rmcat-coupled-cc-02 Michael Welzl, Safiqul Islam, Stein Gjessing 88th IETF Meeting Vancouver,
TCP Congestion Control
Congestion Control Created by M Bateman, A Ruddle & C Allison As part of the TCP View project.
Computer Networks: TCP Congestion Control 1 TCP Congestion Control Lecture material taken from “Computer Networks A Systems Approach”, Fourth Edition,Peterson.
IETF87 Berlin DCTCP implementation in FreeBSD
School of Information Technologies TCP Congestion Control NETS3303/3603 Week 9.
Introduction to Congestion Control
Transport Layer 3-1 outline r TCP m segment structure m reliable data transfer m flow control m congestion control.
Transport Layer 3-1 Fast Retransmit r time-out period often relatively long: m long delay before resending lost packet r detect lost segments via duplicate.
Transport Layer 3-1 Outline r TCP m Congestion control m Flow control.
1 TCP Transport Control Protocol Reliable In-order delivery Flow control Responds to congestion “Nice” Protocol.
Computer Networks : TCP Congestion Control1 TCP Congestion Control.
1 Chapter 3 Transport Layer. 2 Chapter 3 outline 3.1 Transport-layer services 3.2 Multiplexing and demultiplexing 3.3 Connectionless transport: UDP 3.4.
Networks : TCP Congestion Control1 TCP Congestion Control.
1 Spring Semester 2007, Dept. of Computer Science, Technion Internet Networking recitation #8 Explicit Congestion Notification (RFC 3168) Limited Transmit.
Networks : TCP Congestion Control1 TCP Congestion Control Presented by Bob Kinicki.
Advanced Computer Networks: TCP Congestion Control 1 TCP Congestion Control Lecture material taken from “Computer Networks A Systems Approach”, Fourth.
L13: Sharing in network systems Dina Katabi Spring Some slides are from lectures by Nick Mckeown, Ion Stoica, Frans.
TCP Congestion Control
Jennifer Rexford Fall 2014 (TTh 3:00-4:20 in CS 105) COS 561: Advanced Computer Networks TCP.
A Simulation of Adaptive Packet Size in TCP Congestion Control Zohreh Jabbari.
CS/EE 145A Congestion Control Netlab.caltech.edu/course.
CSE 461 University of Washington1 Topic How TCP implements AIMD, part 1 – “Slow start” is a component of the AI portion of AIMD Slow-start.
Lecture 9 – More TCP & Congestion Control
Transport Layer 3-1 Chapter 3 Transport Layer Computer Networking: A Top Down Approach 6 th edition Jim Kurose, Keith Ross Addison-Wesley March
Lab The network simulator ns The network simulator ns Allows us to watch evolution of parameters like cwnd and ssthresh Allows us to watch evolution of.
TCP: Transmission Control Protocol Part II : Protocol Mechanisms Computer Network System Sirak Kaewjamnong Semester 1st, 2004.
1 CS 4396 Computer Networks Lab TCP – Part II. 2 Flow Control Congestion Control Retransmission Timeout TCP:
1 Sonia FahmyPurdue University TCP Congestion Control Sonia Fahmy Department of Computer Sciences Purdue University
Transport Layer3-1 Chapter 3 outline r 3.1 Transport-layer services r 3.2 Multiplexing and demultiplexing r 3.3 Connectionless transport: UDP r 3.4 Principles.
TCP Congestion Control Computer Networks TCP Congestion Control 1.
1 Computer Networks Congestion Avoidance. 2 Recall TCP Sliding Window Operation.
Congestion Avoidance and Control Van Jacobson and Michael Karels Presented by Sui-Yu Wang.
TCP Congestion Control
TCP continued. Discussion – TCP Throughput TCP will most likely generate the saw tooth type of traffic. – A rough estimate is that the congestion window.
Recap Slow start introduced cwnd Slow start introduced cwnd Can transmit up to Can transmit up to min( cwnd, offered window ) Flow control by the sender.
Other Methods of Dealing with Congestion
Master’s Project Presentation
Internet Networking recitation #9
Topics discussed in this section:
Transport Layer CS 381 3/7/2017.
Chapter 3 outline 3.1 transport-layer services
Chapter 6 TCP Congestion Control
Introduction to Networks
Introduction to Congestion Control
TCP-in-UDP draft-welzl-irtf-iccrg-tcp-in-udp-00.txt
Chapter 3 outline 3.1 Transport-layer services
TCP Westwood(+) Protocol Implementation in ns-3
Chapter 5 TCP Transmission Control
Lecture 19 – TCP Performance
So far, On the networking side, we looked at mechanisms to links hosts using direct linked networks and then forming a network of these networks. We introduced.
Runa Barik, Simone Ferlin, Michael Welzl University of Oslo
Chapter 6 TCP Congestion Control
CS640: Introduction to Computer Networks
Internet Networking recitation #10
TCP Throughput Modeling
TCP Congestion Control
CS4470 Computer Networking Protocols
TCP Congestion Control
EE 122: Lecture 10 (Congestion Control)
EE 122: Congestion Control The Sequel
Computer Science Division
Transport Layer: Congestion Control
Chapter 3 outline 3.1 Transport-layer services
TCP flow and congestion control
Department of Informatics Networks and Distributed Systems (ND) group
TCP: Transmission Control Protocol Part II : Protocol Mechanisms
Review of Internet Protocols Transport Layer
Lecture 6, Computer Networks (198:552)
Presentation transcript:

Department of Informatics Networks and Distributed Systems (ND) group Modularizing TCP with timers Michael Welzl Net Group, University of Rome Tor Vergata 25. 09. 2017

Goal Dissect TCP into general-purpose transport protocol modules such that some can become hardware primitives So that we can SDN-enable TCP and other transports End result: simpler code, hardware-supported, platform-independent Which modules are there?

Transport modules Module TCP Status Connection management ? Buffer management / communication with app (sender, receiver) Constructing headers (data, ACK) Hardware support, I think? Sending packets (data, ACK) TSO, GSO, pacing Receiving and parsing packets (data, ACK) Checksum calculation Hardware support exists Flow control = receiver buffer management? Congestion control "Pluggable" in Linux and FreeBSD Loss recovery A mess! (also messes up CC "module")

TCP today Where we want to be. When we don't lose packets, even with an ECN cwnd reduction, we stay there! Start the connection; we're clueless! Designed as a replacement for starting with, e.g., cwnd=370 CA Where we end up after loss FR SS http://theoatmeal.com Not "pluggable" today! Noooooooo !!!!! NOOOOOO !!!!!! DON'T LET IT HAPPEN !!!

The "ACK clocking" rule Packet conservation principle important, bla bla ACK clock, must preserve, bla bla Is a bursty ACK-clocked TCP better, or a paced non-ACK clocked TCP? CA: cwnd+=1 breaks ACK clocking SS breaks ACK clocking IW10 breaks ACK clocking TLP/RACK = FR slightly deviating from ACK clocking! Strict ACK-clocking only applied in FR What good has it done us?

ACK-clocking in FR Estimate "pipe": number of packets in flight Try to keep that constant "in flight" really means: "in flight" + "in queue" Try hard to keep the queue filled??? Fantastic! For instance, can't handle drops of retransmits This has been called a "feature" RACK can handle it... but (currently?) won't reduce cwnd again...

Standing queues do exist: Reno... All tests with: 3-host topology, 5 Mbit/s bottleneck in CORE emulator; 1500-byte packets Default queue: DropTail (FIFO), 100 packets Qlen exceeds BDP in all our tests (base RTT 100ms: BDP = 41 packets).

... and Cubic...

Remember PRR? It can make things worse, it seems! RFC 6675 ack# X 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 cwnd: 20 20 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 pipe: 19 19 18 18 17 16 15 14 13 12 11 10 10 10 10 10 10 10 10 sent: N N R N N N N N N N N Rate-Halving (Linux) cwnd: 20 20 19 18 18 17 17 16 16 15 15 14 14 13 13 12 12 11 11 pipe: 19 19 18 18 17 17 16 16 15 15 14 14 13 13 12 12 11 11 10 sent: N N R N N N N N N N N Queue drains a little

This can cause a "double drop"... From: "Virtualized Congestion Control" Tech.rep. longer version of SIGCOMM'16 paper http://webee.technion.ac.il/~isaac/p/sigcomm16_vcc_extended.pdf

A test from one of my Ph.D. students Is this PRR? We believe so... But everyone thinks that PRR is only a good thing?

Solving the loss recovery problem Basic function that all protocols need: Remember which packets were sent / ACKed, and when, for re-sending and RTT calculation ("scoreboard") I claim: scoreboard operations could be much simpler, and that might even make them better Going in the direction of RACK, but "all the way": base everything on a timer

What I envision SS CA Only at the beginning! Simple rules for increase/decrease events (magnitude determined by CC like before) Increase: upon ACK Decrease: upon ECN or loss Loss determined via (aggressive, not RTO!) per-packet timeout; reduce every time! Undo if we got it wrong (ACKs that shouldn't have arrived – spurious loss det.), adjust timers Avoid over-reacting: look at ACK rate + RTT No need for RTO with SS because we back-off exponentially (instead of: cwnd*=factor, then cwnd=1) Already done today with ECN !

End result Much simpler More modular more robust? As good as PRR but can better handle lost retransmits? Any other direct benefits? More modular

Thoughts?