Dear all, Looking at this:
> On Nov 13, 2023, at 10:24 PM, Michael Welzl <mich...@ifi.uio.no> wrote: > > +1 … thanks a whole lot to everyone, it’s been a fun ride! > > For some nostalgia, more detailed history is here: > https://sites.google.com/site/transportprotocolservices/home > <https://sites.google.com/site/transportprotocolservices/home> … reminded me of something, and I think that now is perhaps a good moment to share this thought. This should be more useful than nostalgia - it’s a note for the researchers out there: I think that in a post-TAPS world, we still have a big hole that needs filling (and it’s probably not in scope of the IETF). In my opinion, this hole is a low-hanging-fruit for researchers who are interested in this general space. Here it is: One of the major arguments against TAPS, back when we started this effort, was: “you want to change the socket API, but nobody writes applications against the socket API anymore”. Well, one has to start somewhere, and sockets sit below the middleware or library that offers these APIs. I think we had enough reasons to start the effort - but the point is still valid: many applications *are* written over REST, or pub-sub, or what have you, and today won’t care much about TAPS services. When thinking about how to combine such middleware layers with TAPS, there are the following possibilities: 1) the application is unchanged, the middleware or library below it uses TAPS, and somehow, some benefits arise (e.g., from dynamically selecting QUIC or TCP). Browsers do that today; other middleware layers could do it too. This would yield some benefits, but not necessarily everything. 2) the higher-layer API is changed too: many of the services that TAPS applications choose are truly related to the *application*, and hard or impossible for a middleware layer to “guess” - e.g., we have priorities between defined groups of Connections, a need for reliability with time limits, various services that translate into a DSCP choice, telling the API about bounds on the send and receive rate, control over checksums, …. What would be needed, to make use of TAPS in such a scenario, is to take a decision, per middleware layer: a) which of the TAPS services are best implemented transparently to the application, i.e. in the middleware, without changing the API that is being offered, b) which services should be offered in the higher-level API, c) which services should be ignored. Let me get back to why the URL above was a reminder: at the BoF at IETF-89 in London, Martin Sustrik, who created the well-known ZeroMQ pub-sub middleware, gave a presentation on “transport agnostic middleware”. Here are the slides: https://www.ietf.org/proceedings/89/slides/slides-89-taps-0.pdf <https://www.ietf.org/proceedings/89/slides/slides-89-taps-0.pdf> We also have the conversation after this presentation in the minutes of the BoF, IMO this is worth reading: https://www.ietf.org/proceedings/89/minutes/minutes-89-taps <https://www.ietf.org/proceedings/89/minutes/minutes-89-taps> A part of his point was that pub-sub doesn’t need (or even want) 100% reliability - he had this example of distributing data where one subscriber is a small trading shop somewhere in Malaysia, and the distributor doesn’t want to wait for that small shop to pull the data. I believe that pub-sub middlewares today probably implement that sort of unreliability (or, rather: timed reliability) on top of the socket API… which is probably just less efficient than telling the socket API about it. I got in touch with Martin back then because his interest in middleware + transport was obvious from another library he was working on at the time: nanomsg ( https://nanomsg.org/ <https://nanomsg.org/> ), meant to run over SCTP. Anyway, the pub-sub case he talked about is just one example out of many that probably exist within pub-sub, and in other communication patterns. My hope is that someone picks this up and thinks ahead, on: what can we do now, to let applications using higher layer APIs benefit from TAPS? Cheers, Michael
_______________________________________________ Taps mailing list Taps@ietf.org https://www.ietf.org/mailman/listinfo/taps