[Python-ideas] TAPS Implementation
Franke, Maximilian Julian Shawn
m.franke at campus.tu-berlin.de
Mon Dec 10 16:47:07 EST 2018
I am a student worker with the Internet Networks Architecture department at TU Berlin and I am working with APIs for network protocols.
We are currently looking into implementing TAPS, a novel way to offer transport layer services to the application layer.
The idea is to offer an API on top of multiple different transport protocols, such as TCP and QUIC. Instead of explicitly choosing a transport protocol, the application only provides abstract requirements, e.g., reliability. The TAPS system maps these properties to transport protocols, potentially trying out multiple protocols in parallel. Furthermore, TAPS can select between multiple local interfaces and remote IP addresses.
A short talk (~25 minutes) from the All systems go! conference about it is available here: https://media.ccc.de/v/ASG2018-188-the_future_of_networking_apis.
TAPS is currently being standardized in the IETF (https://datatracker.ietf.org/wg/taps/about/).
Here you can find the proposed architecture: https://datatracker.ietf.org/doc/draft-ietf-taps-arch/, interface: https://datatracker.ietf.org/doc/draft-ietf-taps-interface/ and an informal draft on implementation considerations: https://datatracker.ietf.org/doc/draft-ietf-taps-impl/.
One if the implementations currently in the works is done by Apple in form of their Network.framework API (https://developer.apple.com/documentation/network). While this implementation is relatively advanced, it is so far only available for MacOS, iOS and it derivatives. As such, it would be favorable to have a platform agnostic and open-source implementation as well.
>From what we can tell, asyncio seems to offer a lot of the ground work necessary to implement it efficiently, so here are some questions we have before beginning with the implementation:
- Is something like this in the scope to become part of the standard python library or something that would be done in an external library? If it is in scope, what would the requirements for it to become part of the standard library be?
- Are there currently any other active efforts to implement new network functionality into the standard library?
- Are there currently any considerations to expand the standard transports offered by asyncio (TCP, UDP and SSL) by additional ones like SCTP, or more importantly QUIC?
Any comments or further pointers to sources that could be helpful with this would be greatly appreciated.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Python-ideas