quinn-rs / quinn

Async-friendly QUIC implementation in Rust
Apache License 2.0
3.76k stars 380 forks source link

Backport to 0.10.x: Reduce default maximum UDP payload size to the ethernet MTU #1620

Closed lijunwangs closed 1 year ago

lijunwangs commented 1 year ago

Drastically reduces the size and sparsity of the quinn receive buffer for no performance cost in typical applications.

lijunwangs commented 1 year ago

@Ralith @djc This is backport for 89ff085cf5d1e0a3c52eaedf76e79cd34a85bf4f into 0.10.x

lijunwangs commented 1 year ago

Hi @Ralith and @djc, as this issue is fixed in 0.10.x -- can we publish a new version (0.10.2)?

djc commented 1 year ago

@Ralith how do you feel about releasing this in a semver-compatible release? I suppose it has the potential to break users who were relying on the new behavior (though that might only be the party who asked us to implement it in the first place).

Ralith commented 1 year ago

though that might only be the party who asked us to implement it in the first place

Were they using an extra-large interface MTU?

I don't think this is breaking. At worst it will be a fixable performance regression for anyone who was employing jumbo frames or similar, and I'd be a bit surprised if anyone actually was.

djc commented 1 year ago

Hmm, I guess it was just from #1529, so there wasn't really a user pushing this.

djc commented 1 year ago

Published quinn-proto 0.10.2 and quinn 0.10.2.

lijunwangs commented 1 year ago

Published quinn-proto 0.10.2 and quinn 0.10.2.

Thanks @djc can we add a tag in the branch as well?

djc commented 1 year ago

Done.