On 9/8/2021 11:59 PM, Michael Eriksson wrote:
Hi,
At Ericsson Research we are doing some prototyping of multipath QUIC (of the
fully parallel kind). So far, we have very rudimentary support in our prototype
but are about to take the next step.
Our initial implementation uses a single packet number space, which turned out
to be a pretty clean addition to the path migration mechanism. Some care has to
be taken with the ACK handling on both sides, but so far it has been
straightforward. The key is that the sender has to keep track of over which
path each packet was sent, but that is trivial to do. Some smartness with the
ACK ranges is also needed, but you already need to prune them for the single
path case.
This is what I think I know about existing "active" multipath implementations,
please correct me if I'm wrong:
- picoquiq has experimental but undocumented support (open source)
Picoquic has in fact support for two variants of multipath, draft-liu
and the single number option draft-huitema-quic-mpath-option-00.
Multipath has not yet been deployed in the picoquic demo program -- all
tests are on simulated environments. I could easily add a listing of all
IP addresses available at the client on start, given then a list of
addresses to choose from, and more or less automatically trying them
all. I should add a monitoring of this set of addresses using system
APIs, but those APIs are of course system dependent so that's a bit of
work. I would be motivated to do that if someone is using the feature...
- Alibaba are running A/B tests with real users and have published a paper
about it. The implementation is planned to be open sourced (this seems to be
delayed).
- Quentin De Coninck et al at UCLovain have a prototype and paper on multiflow QUIC,
using unidirectional "uniflows" (open source)
Are there any other existing or planned multipath prototype activities in the
QUIC community? I would be particularly interested in:
- Open source implementations (preferably in Rust :-))
- Public servers for interop testing
- Designs with a single packet number space and the experiences collected.
Separate number spaces, as in draft-liu-multipath-quic, will of course work;
however, it would be interesting to also understand the cleaner single PN space
alternative.
For a discussion, see:
https://huitema.wordpress.com/2021/02/14/how-many-packet-number-spaces-for-quic-multipath/.
Both options work. The single number space option is simpler, the only
problem being the number of ranges in the acknowledgements.
-- Christian Huitema