MAMI partner ETH Zürich hosted a small workshop last month to discuss a topic central to our vision: how to move network programming beyond the 1980s-era BSD sockets API. The workshop had two main goals. First, to sync up and share concepts about abstract programming interfaces among researchers and developers working on future networking stacks. Several partners from our H2020 sister project NEAT, which has a more explicit focus on how applications see the network and transport layer, were in attendance.
Our second goal with the workshop was to further develop the concepts in the Post Sockets abstract programming interface. Post Sockets is explicitly asynchronous and message oriented, which is a better match to most network applications and all future transport protocols than the single-streamed
SOCK_STREAM service offered by TCP. It breaks the hard relationship between a connection (called a “carrier” in Post, since it carries messages) and the path(s) carrying it, and separates short-term transport layer state (“transients” which hold transport-protocol specific information such as current sequence numbers and flow control windows) from longer-term state (“associations” which hold state such as cryptographic resumption parameters), allowing generalized fast resumption of sessions for commonly-communicating endpoint pairs. Like the NEAT API, it is intended to be transport-protocol independent, and interoperating with NEAT’s policy engine and transport protocol selection machinery is a goal of MAMI’s Post Sockets work.
Our current work on Post Sockets in MAMI focuses on implementation details: how message carriers, associations, and transients bind to underlying transport protocol implementations, specifically in situations with multiple candidate transport and network layer protocols, and where network address translation makes rendezvous non-trivial. Tommy Pauly from Apple will present Post Sockets at the IETF taps session next week in Chicago (checkout remote participation). Also watch this space for future announcements.
We thank the workshop attendees for a very productive conversation, and look forward to working together in the future to drag network APIs into the twenty-first century!