Skip to content

Add lossy network emulation for secnetperf #4965

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
ProjectsByJackHe opened this issue Apr 1, 2025 · 2 comments
Closed

Add lossy network emulation for secnetperf #4965

ProjectsByJackHe opened this issue Apr 1, 2025 · 2 comments
Labels
Area: Performance feature request A request for new functionality
Milestone

Comments

@ProjectsByJackHe
Copy link
Contributor

Describe the feature you'd like supported

Today, we use the secnetperf tool (https://microsoft.github.io/msquic/msquicdocs/src/perf/readme.html?q=secnetperf) to measure performance of QUIC vs. TCP on various platforms.

However, there is no option to specify a "loss" factor that simulates packets randomly dropping.
The biggest meat/potatoes of QUIC that gives it the advantage over TCP is the fact that there is no head-of-line blocking when sending multiple streams in HTTP/2. In HTTP/2, 1 TCP connection is made and that flattens all parallelizable streams (video file (stream 1) + HTML page (stream 2)) into 1 multiplexed stream. In a lossy network, a big piece of media like a video getting sent over would block all other independent streams (like the HTML file). With HTTP/3 we don't have this problem.

We should showcase this advantage of QUIC vs TCP in our secnetperf tool.

Proposed solution

Add a "loss" option in the tool that allows us to see what the numbers for various scenarios look like when the network is not perfect.

Additional context

No response

@ProjectsByJackHe ProjectsByJackHe added feature request A request for new functionality Area: Performance labels Apr 1, 2025
@nibanks nibanks added this to the Future milestone Apr 3, 2025
@nibanks
Copy link
Member

nibanks commented Apr 3, 2025

I think we need to be careful not to try to make one tool to rule them all. There are several ways out there to emulate loss on a network or network interface, and they can have various impacts on performance. So, I think it would actually be better not to have this built into secnetperf.

@nibanks
Copy link
Member

nibanks commented May 2, 2025

I'm going to "Won't Fix" this one. There are other layers that can/should emulate loss instead of the perf tool itself.

@nibanks nibanks closed this as not planned Won't fix, can't repro, duplicate, stale May 2, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Area: Performance feature request A request for new functionality
Projects
None yet
Development

No branches or pull requests

2 participants