I’m trying to read through the LB document that I haven’t looked at for quite a 
while. It isn’t very clear to me, I am sorry to say.

I do not understand why the highest configuration value is chosen since this 
value would eventually wrap? Is there an implied wider config value where only 
the lower bits are visible, similar to packet numbers?

Also, I do not understand how the server receives the assigned SID. Is the 
ODCID replaced in first packets, or are the packets unmodified, or is the SID 
prefixed the real packet?

I can see that once the server chooses the DCID for later communication, things 
get easier.

If the ODCID is modified, what about message authentication, also in future 
versions and with possible shared keys?

Is the state table affected by the clients choice of ODCID (think abuse)?


Mikkel

> On 11 Jan 2021, at 22.40, Martin Duke <[email protected]> wrote:
> 
> Hi all,
> 
> Ian proposed a radical new plaintext CID algorithm for for quic-lb. I already 
> merged it into the draft alongside the current one, to make things clearer. 
> See Section 4.2 of the draft 
> <https://quicwg.org/load-balancers/draft-ietf-quic-load-balancers.html#name-ecmp-cid-algorithm>.
>  I suspect this may not be the final result, but this is another one of those 
> value judgments I'd like input on.
> 
> TL;DR: instead of assigning individual server IDs as a configuration step, 
> load balancers assign them ad hoc and remember those assignments. Servers can 
> observe their assignments from the CIDs they receive.
> 
> Tradeoffs: The existing PCID design has precisely zero per-connection state 
> at the load balancer. This design requires the load balancer to have a 
> potentially very large table of SIDs mapped to servers. On the other hand, 
> Ian's proposal completely eliminates the process of configuring the load 
> balancer with a server ID mapping, and configuring each server separately 
> with its SID.
> 
> As a practical matter, Ian's proposal is also an easier transition path for 
> Google's load balancers, and presumably others as well. Their implementation 
> experience suggests that the memory load is manageable.
> 
> As Ian’s design has per-connection state, it is less robust to the load 
> balancer rebooting or handing off to a standby device.
> 
> So we have three options:
> 1) Stick with PCID and ditch this.
> 2) Replace PCID with this proposal.
> 3) Have two standard unencrypted algorithms to capture the tradeoff -- I 
> would prefer not to complicate things in this way unless there is real 
> disagreement about how to resolve the tradeoffs.
> 
> Thoughts?
> 
> Thanks,
> Martin

Reply via email to