Post Sockets at the IFIP Workshop on the Future of Internet Transport

I'm pleased to have co-authored two papers that were presented in the IFIP Networking 2017 workshop on the Future of Internet Transport, held on 12 June 2017 in Stockholm. The first was a paper outlining our proposal for a Post Sockets API, building on our IETF draft in this area, written with Brian Trammell and Mirja Kühlewind of ETH Zürich. The second is with Tom Jones and Gorry Fairhurst from the University of Aberdeen, and looks at raising the level of abstraction of the datagram API to enable transport protocol evolution.

Mirja Kühlewind presenting Post Sockets (1) Mirja Kühlewind presenting Post Sockets (2) Mirja Kühlewind presenting Post Sockets (3)

Mirja presented the first paper, Post Sockets: Towards an Evolvable Network Transport Interface (slides). This paper builds from the observation that the traditional Sockets API no longer provides effective support for networked applications, due to a combination of changes in the network and application needs in the 35 years since the API was defined. This has led to a proliferation of non-standard extensions, alternative APIs, and workarounds that enable new features and allow applications to make good use of the network, but are difficult to use, and require expert knowledge that is not widespread. The paper outlines our ideas for a Post Sockets interfaces, designed to support modern network transport protocols and features, while raising the level of abstraction and enhancing usability. Specifically, we aim to give portable applications the ability to use a clear, messages based, interface to multi-path and multi- stream transports, rendezvous and connection racing, and fast connection re-establishment.

Colin Perkins presenting Raising the Datagram API

I presented the second paper, on Raising the Datagram API to Support Transport Protocol Evolution (slides). This presents another take on the same problem, considering how we can evolve the UDP datagram API to present a higher-level, more abstract, interface, that is easy to develop for, and offers a clear evolutionary path to support new requirements. This new API is needed to move forward the base of the system, allowing developers with limited resources to evolve their applications while accessing new network services.