This talk presents TAPS (Transport Services), a proposed abstraction for a new Networking API, and calls for the Linux community to get involved.
Even decades after its introduction, the Socket API is still the de-facto standard Networking API on many systems. Its simplifying abstraction of a network connection as a file helped making networking easier to integrate into applications in the early days, but by now, networking has become way more complex. We have to deal with asynchronous communication, with the choice between IPv4 and IPv6 addresses, with multiple local network interfaces being available, and more. With the development of new transport protocols, such as QUIC, an application may even be able to choose a different transport protocol than TCP, which fundamentally offers the same service.
It would be beneficial to develop a future networking API with a better abstraction, so applications can make use of the different options without having to implement a complex decision logic themselves.
The Transport Services (TAPS) Working Group in the IETF is currently developing such an abstraction, which will be proposed as a new standard networking API. It will be fundamentally event-based and object-oriented, presenting a simple Connection and Message abstraction to applications. An application only has to specify abstract requirements for a new Connection, such as reliable and in-order Delivery of messages, and the Transport System below the API will choose a transport protocol and network configuration.
This talk presents the current TAPS architecture and API elements, and calls for the Linux community to get involved, for example by developing a new implementation of this API or reviewing and commenting on the documents.