|
|
|
|
|
by vitus
794 days ago
|
|
> If you balance your load balancers with ECMP, I don't know if you can get two client streams to the same mptcp terminating place. At Google, we do something similar with QUIC and connection migration. Our mechanism for ensuring these hit the same backend is Maglev [0], where we use the QUIC connection ID for hashing purposes in software. (Our routers still mostly use ECMP based on the 5-tuple, so being able to consistently hash to the same backend across multiple LB instances is crucial.) > if a path segment has high loss/corruption or is congested, MPTCP could help if you had an extra connection that hit a different path. Incidentally, we also have a family of internal mechanisms that do this, although we don't rely on MPTCP. (We instead twiddle some other bits in the packet that we make sure our routers use for hashing, at least for RPCs between prod machines.) This inspired some of the connection migration work in our QUIC implementation [1], wherein we can migrate to a different ephemeral port if we detect issues with the current path. This works shockingly often for routing around network problems. [0] https://research.google/pubs/maglev-a-fast-and-reliable-soft... [1] https://github.com/google/quiche/blob/main/quiche/quic/core/... |
|