Hi,

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.

Best regards

Max
_______________________________________________
Python-ideas mailing list
Python-ideas@python.org
https://mail.python.org/mailman/listinfo/python-ideas
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to