TCP-in-UDP draft-welzl-irtf-iccrg-tcp-in-udp-00.txt

Slides:



Advertisements
Similar presentations
Martin Suchara, Ryan Witt, Bartek Wydrowski California Institute of Technology Pasadena, U.S.A. TCP MaxNet Implementation and Experiments on the WAN in.
Advertisements

Coupled congestion control for RTP media draft-welzl-rmcat-coupled-cc-02 Michael Welzl, Safiqul Islam, Stein Gjessing 88th IETF Meeting Vancouver,
Camarillo / Schulzrinne / Kantola November 26th, 2001 SIP over SCTP performance analysis
Prentice HallHigh Performance TCP/IP Networking, Hassan-Jain Chapter 2 TCP/IP Fundamentals.
Playback-buffer Equalization For Streaming Media Using Stateless Transport Prioritization By Wai-tian Tan, Weidong Cui and John G. Apostolopoulos Presented.
Fundamentals of Computer Networks ECE 478/578 Lecture #20: Transmission Control Protocol Instructor: Loukas Lazos Dept of Electrical and Computer Engineering.
UDP & TCP Where would we be without them!. UDP User Datagram Protocol.
Transmission Control Protocol (TCP) Basics
1 Chapter 3 TCP and IP. Chapter 3 TCP and IP 2 Introduction Transmission Control Protocol (TCP) Transmission Control Protocol (TCP) User Datagram Protocol.
CP476 Internet Computing TCP/IP 1 Lecture 3. TCP / IP Objective: A in-step look at TCP/IP Purposes and operations Header specifications Implementations.
BZUPAGES.COM 1 User Datagram Protocol - UDP RFC 768, Protocol 17 Provides unreliable, connectionless on top of IP Minimal overhead, high performance –No.
1 Internet Networking Spring 2003 Tutorial 11 Explicit Congestion Notification (RFC 3168) Limited Transmit (RFC 3042)
CSEE W4140 Networking Laboratory Lecture 6: TCP and UDP Jong Yul Kim
1 Internet Networking Spring 2003 Tutorial 11 Explicit Congestion Notification (RFC 3168)
1 Spring Semester 2007, Dept. of Computer Science, Technion Internet Networking recitation #8 Explicit Congestion Notification (RFC 3168) Limited Transmit.
TCP. Learning objectives Reliable Transport in TCP TCP flow and Congestion Control.
Transport Layer TCP and UDP IS250 Spring 2010
MulTFRC: TFRC with weighted fairness draft-welzl-multfrc-00 Michael Welzl, Dragana Damjanovic 75th IETF Meeting Stockholm, Sweden 29 July 2009.
TFRC: TCP Friendly Rate Control using TCP Equation Based Congestion Model CS 218 W 2003 Oct 29, 2003.
Sharing Information across Congestion Windows CSE222A Project Presentation March 15, 2005 Apurva Sharma.
TCP : Transmission Control Protocol Computer Network System Sirak Kaewjamnong.
Chapter 12 Transmission Control Protocol (TCP)
CSE679: Computer Network Review r Review of the uncounted quiz r Computer network review.
MulTFRC: TFRC with weighted fairness draft-welzl-multfrc-01 Michael Welzl, Dragana Damjanovic 76th IETF Meeting Hiroshima, Japan 10 November2009.
1 CS 4396 Computer Networks Lab TCP – Part II. 2 Flow Control Congestion Control Retransmission Timeout TCP:
Computer Networks23-1 PART 5 Transport Layer. Computer Networks23-2 Position of Transport Layer Responsible for the delivery of a message from one process.
TCP continued. Discussion – TCP Throughput TCP will most likely generate the saw tooth type of traffic. – A rough estimate is that the congestion window.
1 Transport Layer: Basics Outline Intro to transport UDP Congestion control basics.
Uni Innsbruck Informatik th IETF, PMTUD WG: Path MTU Discovery Using Options draft-welzl-pmtud-options-01.txt Michael Welzl
CIS679: TCP and Multimedia r Review of last lecture r TCP and Multimedia.
Tightly Coupled Congestion Control in WebRTC Michael Welzl Upperside WebRTC conference Paris
TCP/IP1 Address Resolution Protocol Internet uses IP address to recognize a computer. But IP address needs to be translated to physical address (NIC).
CSEN 404 Transport Layer II Amr El Mougy Lamia AlBadrawy.
11 CS716 Advanced Computer Networks By Dr. Amir Qayyum.
Computer Networks 1000-Transport layer, TCP Gergely Windisch v spring.
DMET 602: Networks and Media Lab Amr El Mougy Yasmeen EssamAlaa Tarek.
HIP-Based NAT Traversal in P2P-Environments
Advanced Computer Networks
DMET 602: Networks and Media Lab
Introduction to TCP/IP networking
Internet Networking recitation #9
Topics discussed in this section:
Michael Welzl , Distributed and Parallel Systems Group
Introduction to Networks
Quick UDP Internet Connections
Transmission Control Protocol (TCP)
5. End-to-end protocols (part 1)
Transport Layer.
Process-to-Process Delivery, TCP and UDP protocols
Discussion: Messaging
TCP.
© 2003, Cisco Systems, Inc. All rights reserved.
PART 5 Transport Layer Computer Networks.
Transport Protocols over Circuits/VCs
TCP.
Multipath QUIC: Design and Evaluation
TCP Transport layer Er. Vikram Dhiman LPU.
CSCI-1680 Transport Layer I
Networking CS 3470, Section 1 Sarah Diesburg
Falling Back! … and: a Functional Decomposition of Post-Sockets
Runa Barik, Simone Ferlin, Michael Welzl University of Oslo
Internet Networking recitation #10
Department of Informatics Networks and Distributed Systems (ND) group
Networking CS 3470, Section 1 Sarah Diesburg
Networking CS 3470, Section 1 Sarah Diesburg
Transport Protocols: TCP Segments, Flow control and Connection Setup
Transport Protocols: TCP Segments, Flow control and Connection Setup
Review of Internet Protocols Transport Layer
Transport Layer 9/22/2019.
TCP Connection Management
Presentation transcript:

TCP-in-UDP draft-welzl-irtf-iccrg-tcp-in-udp-00.txt M. Welzl, S. Islam, K. Hiorth, J. You IRTF ICCRG Meeting IETF 95

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 in the network, and can support priorities (similar to some of the benefits of multi-streaming in e.g. SCTP) Previous methods were hard to implement + hard to turn on/off (Congestion Manager) Can be made easier (minimize changes to TCP code) General problem with this: do parallel TCP connections follow the same path all the way? Not necessarily, because of ECMP (or: any form of per-flow load balancing in the net)

Encapsulation This draft makes one concrete proposal (to be explained later) Other possibilities mentioned on the list (thanks!!) Joe Touch: Not necessary Tom Herbert: IPv6 flow label GUE Our conclusion: don’t prescribe one method Mention the possibilities Enables one-sided deployment?!?! I love this!!! Does it really really work?

Coupled congestion control for TCP Basic idea similar to FSE in draft-ietf-rmcat-coupled-cc 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) Some TCP-specific differences 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 FR, use that instead Also, generally a slightly more conservative CC behavior than the algorithm in draft-ietf-rmcat-coupled-cc

First simulation results (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 bg TCP flows: 80∼100 ms Not coupled Coupled Link utilization: 68% Loss: 0.78% Average qlen: 58 pkts Link utilization: 66% Loss: 0.13% Average qlen: 37 pkts

First simulation results - prioritization 2 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 bg TCP flows: 80∼100 ms

Encapsulation: TCP-in-UDP (TiU) Avoid Packet size overhead Avoid MTU problems Some ideas on TCP-over-UDP encapsulation shown in draft-denis-udp-transport-00 and draft-cheshire-tcp-over-udp-00 Suppress TCP checksum and TCP urgent pointer field and set 0 for URG flag: we do that Suppress TCP src and dst ports (rely on UDP ports only): we do that too, but… want to multiplex!  still need ports in some form

Encapsulation: TiU (Contd.) With Flow id (5 bits) we can multiplex 2^5 = 32 parallel connections We use TiU SYN/SYN-ACK options to map ports to FID Offset change: related to STUN [draft-cheshire-tcp-over-udp-00]

Set up Happy eyeball for TiU Client Server (we write both) Put port-FID-mapping options in TiU-SYN and SYN/ACK Client Send UDP/TiU-SYN packet on TiU port Send TCP SYN Server (we write both) Process UDP/TiU-SYN before processing TCP SYN UDP en-/de-capsulation added to TCP header processing Just before sending, first when receiving Small code change; normal TCP otherwise!

What this encapsulation (but also GUE) can give us A TCP that can easily evolve  Maybe good as an intermediate experiment platform? Some benefits related to STUN [draft-cheshire-tcp-over-udp-00] Possible to support other transport protocols too [draft-cheshire-tcp-over-udp-00] In-line SPUD support without MTU problems: when the sender inserts SPUD, take SPUD header size into account for MSS calculation

Disadvantages Blocking / rate limiting of UDP QUIC is going to help here, but only for ports 80 and 443  Prevents ECMP, but ECMP can be a good thing It’s a socket option, maybe only use it when you expect to have many short flows or when priorities are important?

Current state Encapsulation Coupled-cc Finished for FreeBSD kernel Under development (simulations) Rudimentary code being developed for FreeBSD, so should be easy to incorporate algorithm updates

Questions?