Structured streams: a new transport abstraction

Internet applications currently have a choice between stream and datagram transport abstractions. Datagrams efficiently support small transactions and streams are suited for long-running conversations, but neither abstraction adequately supports applications like HTTP that exhibit a mixture of transaction sizes, or applications like FTP and SIP that use multiple transport instances. Structured Stream Transport (SST) enhances the traditional stream abstraction with a hierarchical hereditary structure, allowing applications to create lightweight child streams from any existing stream. Unlike TCP streams, these lightweight streams incur neither 3-way handshaking delays on startup nor TIME-WAIT periods on close. Each stream offers independent data transfer and flow control, allowing different transactions to proceed in parallel without head-of-line blocking, but all streams share one congestion control context. SST supports both reliable and best-effort delivery in a way that semantically unifies datagrams with streams and solves the classic "large datagram" problem, where a datagram's loss probability increases exponentially with fragment count. Finally, an application can prioritize its streams relative to each other and adjust priorities dynamically through out-of-band signaling. A user-space prototype shows that SST is TCP-friendly to within 2%, and performs comparably to a user-space TCP and to within 10% of kernel TCP on a WiFi network.

[1]  Janardhan R. Iyengar,et al.  Concurrent multipath transfer using SCTP multihoming over independent end-to-end paths , 2006, TNET.

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

[3]  Mark Handley,et al.  RFC 5348: TCP Friendly Rate Control (TFRC): Protocol Specification , 2008 .

[4]  James Gettys,et al.  Network performance effects of HTTP/1.1, CSS1, and PNG , 1997, SIGCOMM '97.

[5]  Robert M. Hinden,et al.  Version 2 of the Reliable Data Protocol (RDP) , 1990, RFC.

[6]  Angelos D. Keromytis,et al.  Just fast keying: Key agreement in a hostile internet , 2004, TSEC.

[7]  Robert Braden,et al.  T/TCP - TCP Extensions for Transactions Functional Specification , 1994, RFC.

[8]  David R. Cheriton,et al.  VMTP: a transport protocol for the next generation of communication systems , 1986, SIGCOMM '86.

[9]  Hui Zhang,et al.  Hierarchical packet fair queueing algorithms , 1996, SIGCOMM 1996.

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

[11]  Bryan Ford,et al.  Scalable Internet Routing on Topology-Independent Node Identities , 2003 .

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

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

[14]  Jon Postel,et al.  File Transfer Protocol , 1985, RFC.

[15]  David Clark,et al.  Architectural considerations for a new generation of protocols , 1990, SIGCOMM 1990.

[16]  Hui Zhang,et al.  Comparison of rate-based service disciplines , 1991, SIGCOMM '91.

[17]  Sally Floyd,et al.  TCP Selective Acknowledgement Options , 1996 .

[18]  Yogen K. Dalal More on selecting sequence numbers , 1975 .

[19]  Hari Balakrishnan,et al.  Reconsidering Internet mobility , 2001, Proceedings Eighth Workshop on Hot Topics in Operating Systems.

[20]  Roy T. Fielding,et al.  Hypertext Transfer Protocol - HTTP/1.0 , 1996, RFC.

[21]  Matthew Mathis,et al.  Forward acknowledgement: refining TCP congestion control , 1996, SIGCOMM 1996.

[22]  Matt Holdrege,et al.  Protocol Complications with the IP Network Address Translator , 2001, RFC.

[23]  Tatu Ylönen,et al.  The Secure Shell (SSH) Protocol Architecture , 2006, RFC.

[24]  Carl A. Sunshine,et al.  Connection Management in Transport Protocols , 1978, Comput. Networks.

[25]  Jörg Widmer,et al.  TCP Friendly Rate Control (TFRC): Protocol Specification , 2003, RFC.

[26]  Vern Paxson,et al.  TCP Congestion Control , 1999, RFC.

[27]  David D. Clark,et al.  Window and Acknowledgement Strategy in TCP , 1982, RFC.

[28]  Sally Floyd,et al.  An Extension to the Selective Acknowledgement (SACK) Option for TCP , 2000, RFC.

[29]  Sven Jaap,et al.  TCP-friendly Rate Control (TFRC) , 2004 .

[30]  Hari Balakrishnan,et al.  An end-to-end approach to host mobility , 2000, MobiCom '00.

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

[32]  NikanderP.,et al.  Host Identity Protocol (HIP) , 2008 .

[33]  Robert Tappan Morris,et al.  Persistent personal names for globally connected mobile devices , 2006, OSDI '06.

[34]  Joseph D. Touch,et al.  The TIME-WAIT state in TCP and its effect on busy servers , 1999, IEEE INFOCOM '99. Conference on Computer Communications. Proceedings. Eighteenth Annual Joint Conference of the IEEE Computer and Communications Societies. The Future is Now (Cat. No.99CH36320).

[35]  Andrew Birrell,et al.  Implementing remote procedure calls , 1984, TOCS.

[36]  Randy H. Katz,et al.  OverQoS: An Overlay Based Architecture for Enhancing Internet QoS , 2004, NSDI.

[37]  Mark Allman,et al.  On making TCP more robust to packet reordering , 2002, CCRV.

[38]  Joseph D. Touch,et al.  TCP Control Block Interdependence , 1997, RFC.

[39]  J. Postel,et al.  File transfer protocol (FTP) , 1985 .

[40]  Randall J. Atkinson,et al.  IP Encapsulating Security Payload (ESP) , 1995, RFC.

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

[42]  Randall J. Atkinson,et al.  Security Architecture for the Internet Protocol , 1995, RFC.

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

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

[45]  Christopher Allen,et al.  The TLS Protocol Version 1.0 , 1999, RFC.

[46]  S. Bellovin Defending Against Sequence Number Attacks , 1996 .

[47]  Van Jacobson,et al.  TCP Extensions for High Performance , 1992, RFC.

[48]  Srinivasan Seshan,et al.  TCP behavior of a busy Internet server: analysis and improvements , 1997, Proceedings. IEEE INFOCOM '98, the Conference on Computer Communications. Seventeenth Annual Joint Conference of the IEEE Computer and Communications Societies. Gateway to the 21st Century (Cat. No.98.

[49]  Marshall T. Rose,et al.  The Blocks Extensible Exchange Protocol Core , 2001, RFC.

[50]  Pekka Nikander,et al.  Host Identity Protocol (HIP) Architecture , 2006, RFC.

[51]  Craig Partridge Implementing the Reliable Data Protocol (RDP) , 1987 .

[52]  Vijay K. Gurbani,et al.  Handling Large User Datagram Protocol (UDP) Responses in the Session Initiation Protocol (SIP) , 2006 .

[53]  Robert T. Braden Towards a transport service for transaction processing applications , 1985, RFC.

[54]  Craig Partridge,et al.  Packet reordering is not pathological network behavior , 1999, TNET.