Minion: Unordered Delivery Wire-Compatible with TCP and TLS

Internet applications increasingly employ TCP not as a stream abstraction, but as a substrate for applicationlevel transports, a use that converts TCP's in-order semantics from a convenience blessing to a performance curse. As Internet evolution makes TCP's use as a substrate likely to grow, we offer Minion, an architecture for backward-compatible out-of-order delivery atop TCP and TLS. Small OS API extensions allow applications to manage TCP's send buffer and to receive TCP segments out-of-order. Atop these extensions, Minion builds application-level protocols offering true unordered datagram delivery, within streams preserving strict wire-compatibility with unsecured or TLS-secured TCP connections. Minion's protocols can run on unmodified TCP stacks, but benefit incrementally when either endpoint is upgraded, for a backward-compatible deployment path. Experiments suggest that Minion can noticeably improve performance of applications such as conferencing, virtual private networking, and web browsing, while incurring minimal CPU or bandwidth costs.

[1]  Alejandro P. Buchmann,et al.  Channel-based Unidirectional Stream Protocol (CUSP) , 2010, 2010 Proceedings IEEE INFOCOM.

[2]  Bryan Ford Structured streams: a new transport abstraction , 2007, SIGCOMM 2007.

[3]  Eric Rescorla,et al.  Datagram Transport Layer Security , 2006, RFC.

[4]  Mark Handley,et al.  Is it still possible to extend TCP? , 2011, IMC '11.

[5]  Julian Satran,et al.  Internet Small Computer Systems Interface (iSCSI) , 2004, RFC.

[6]  Péter Urbán,et al.  Robust TCP connections for fault tolerant computing , 2002, Ninth International Conference on Parallel and Distributed Systems, 2002. Proceedings..

[7]  Eddie Kohler,et al.  Profile for Datagram Congestion Control Protocol (DCCP) Congestion Control ID 2: TCP-like Congestion Control , 2006, RFC.

[8]  Srinivasan Seshan,et al.  An integrated congestion management architecture for Internet hosts , 1999, SIGCOMM '99.

[9]  Jukka Manner,et al.  Generic UDP Tunnelling (GUT) , 2010 .

[10]  Songqing Chen,et al.  Delving into internet streaming media delivery: a quality and resource utilization perspective , 2006, IMC '06.

[11]  Michael Tüxen,et al.  UDP Encapsulation of SCTP Packets , 2011 .

[12]  Ion Stoica,et al.  HTTP as the narrow waist of the future internet , 2010, Hotnets-IX.

[13]  Henning Schulzrinne,et al.  The Delay-Friendliness of TCP for Real-Time Traffic , 2010, IEEE/ACM Transactions on Networking.

[14]  Randall R. Stewart,et al.  Stream Control Transmission Protocol , 2000, RFC.

[15]  Eric Rescorla,et al.  The Transport Layer Security (TLS) Protocol Version 1.1 , 2006, RFC.

[16]  Mary Baker,et al.  Consistent overhead byte stuffing , 1997, SIGCOMM '97.

[17]  Jaime S. Cardoso Bandwidth-Efficient Byte Stuffing , 2007, 2007 IEEE International Conference on Communications.

[18]  Roy T. Fielding,et al.  Hypertext Transfer Protocol - HTTP/1.1 , 1997, RFC.

[19]  Mark Handley,et al.  Datagram Congestion Control Protocol (DCCP) , 2006, RFC.

[20]  Mark Handley,et al.  SIP: Session Initiation Protocol , 1999, RFC.

[21]  Larry L. Peterson,et al.  TCP Vegas: End to End Congestion Avoidance on a Global Internet , 1995, IEEE J. Sel. Areas Commun..

[22]  Stephen T. Kent,et al.  Security Architecture for the Internet Protocol , 1998, RFC.

[23]  David D. Clark,et al.  Architectural considerations for a new generation of protocols , 1990, SIGCOMM '90.

[24]  Brian E. Carpenter,et al.  Middleboxes: Taxonomy and Issues , 2002, RFC.

[25]  Lixia Zhang,et al.  Stream Control Transmission Protocol , 2000, RFC.

[26]  Mark Handley,et al.  Network Intrusion Detection: Evasion, Traffic Normalization, and End-to-End Protocol Semantics , 2001, USENIX Security Symposium.

[27]  Robert M. Hinden,et al.  Reliable Data Protocol , 1984, RFC.

[28]  Hugo Krawczyk,et al.  A Security Architecture for the Internet Protocol , 1999, IBM Syst. J..

[29]  Mark Handley,et al.  Congestion control for high bandwidth-delay product networks , 2002, SIGCOMM.

[30]  Tim Berners-Lee,et al.  Hypertext transfer protocol--http/i , 1993 .

[31]  Hugo Krawczyk,et al.  A Security Architecture for the Internet Protocol , 1999, IBM Syst. J..

[32]  Julien Freudiger,et al.  Integrity of the Web Content: The Case of Online Advertising , 2010, CollSec.

[33]  Eric Rescorla,et al.  The Transport Layer Security (TLS) Protocol Version 1.2 , 2008, RFC.

[34]  Jon Postel,et al.  User Datagram Protocol , 1980, RFC.

[35]  Henning Schulzrinne,et al.  RTP: A Transport Protocol for Real-Time Applications , 1996, RFC.

[36]  Tim Dierks,et al.  The Transport Layer Security (TLS) Protocol Version 1.2 , 2008 .

[37]  Cullen Jennings,et al.  Network Address Translation (NAT) Behavioral Requirements for Unicast UDP , 2007, RFC.

[38]  Tadayoshi Kohno,et al.  Detecting In-Flight Page Changes with Web Tripwires , 2008, NSDI.

[39]  Saikat Guha,et al.  NAT Behavioral Requirements for TCP , 2009, RFC.

[40]  Mark Handley,et al.  Designing DCCP: congestion control without reliability , 2006, SIGCOMM 2006.

[41]  Jeffrey C. Mogul,et al.  TCP Offload Is a Dumb Idea Whose Time Has Come , 2003, HotOS.

[42]  Luigi Rizzo,et al.  Dummynet revisited , 2010, CCRV.

[43]  Janardhan R. Iyengar,et al.  Breaking Up the Transport Logjam , 2008, HotNets.

[44]  Miljenko Mikuc,et al.  Estimating the Impact of Interrupt Coalescing Delays on Steady State TCP Throughput , 2002 .

[45]  Henning Schulzrinne,et al.  An Analysis of the Skype Peer-to-Peer Internet Telephony Protocol , 2004, Proceedings IEEE INFOCOM 2006. 25TH IEEE International Conference on Computer Communications.

[46]  Janardhan R. Iyengar,et al.  Efficient Cross-Layer Negotiation , 2009, HotNets.

[47]  Janardhan R. Iyengar,et al.  SCTP: an innovative transport layer protocol for the web , 2006, WWW '06.

[48]  Jonathan Rosenberg UDP and TCP as the New Waist of the Internet Hourglass , 2008 .