The performance of many common Internet applications can benefit from out-of-order delivery, a feature all IETF transportssince TCPhave included. Yet latency-sensitive applications still frequently build on in-order TCP despite its performance drawbacks, for reasons such as network compatibility and TCP's cultural inertia. We introduce uTCP, an API extension that adds out-of-order delivery support without changing TCP 's wire protocol, by delivering received TCP segments to the application immediately on arrival along with sequence number metadata. To obtain robust out-of-order delivery across middleboxes that may re-segment TCP flows, the application employs a "record-marking" content encoding such as COBS, allowing the receiver to extract records from a byte stream with arbitrary holes. TLS can also serve as such an encoding, enabling applications to obtain out-of-order delivery in a stream indistinguishable in the network from conventional TLS over TCP . With uTCP, for example, voice/videoconferencing applications can obtain performance comparable to that of UDP-based operation, even when forced to tunnel over TCP-based HTTP or HTTPS connections for network compatibility reasons .
Internet applications increasingly employ TCP not as a stream abstraction, but as a substrate for application-level 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 the performance of applications such as conferencing, virtual private networking, and web browsing, while incurring minimal CPU or bandwidth costs .
R
The performance of many common Internet applications can benefit from out-of-order delivery, a feature all IETF transportssince TCPhave included. Yet latency-sensitive applications still frequently build on
Internet applications increasingly employ TCP not as a stream abstraction, but as a substrate for application-level transports, a use that converts TCP's
R
TCP despite its performance drawbacks, for reasons such as network compatibility and
semantics from a convenience blessing to a performance curse. As Internet evolution makes
R
cultural inertia. We introduce uTCP, an API extension that adds
use as a substrate likely to grow, we offer Minion, an architecture for backward-compatible
R
support without changing TCP 's wire protocol, by delivering received TCP segments to the application immediately on arrival along with sequence number metadata. To obtain robust
atop TCP and TLS. Small OS API extensions allow applications to manage TCP's send buffer and to receive TCP segments
R
delivery across middleboxes that may re-segment TCP flows, the application employs a "record-marking" content encoding such as COBS, allowing the receiver to extract records from a byte stream with arbitrary holes. TLS can also serve as such an encoding, enabling applications to obtain out-of-order delivery in a stream indistinguishable in the network from conventional TLS over TCP . With uTCP, for example, voice/videoconferencing applications can obtain performance comparable to that of UDP-based operation, even when forced to tunnel over TCP-based HTTP or HTTPS connections for network compatibility reasons
. 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 the performance of applications such as conferencing, virtual private networking, and web browsing, while incurring minimal CPU or bandwidth costs