microsoft / microsoft/msquic

Spurious loss is high when RTT is very small and bandwidth very large.

Open
#3,907 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Area: Core Area: Performance
Dominant language
C
Stars
4.8k
Forks
699
Avg merge
2d 22h
Merged PRs (30d)
35

Description

Describe the bug

The timer-based loss detection seems to fall apart when RTT is 100s of microseconds. The RTT/8 interval for loss might be too short because CPU scheduler and other things can affect traffic significantly at these tiny timescales. Consider using a heuristic to adjust the loss timer when RTT is very very small.

Affected OS
  • Windows
  • Linux
  • macOS
  • Other (specify below)
Additional OS information

No response

MsQuic version

main

Steps taken to reproduce bug

Run secnetperf on a high bandwidth ultra-low latency network (like a software loopback-type network, like duonic)

Expected behavior

Connection stats succeed with reasonable numbers of suspected/spurious loss.

Actual outcome

Connection stats spurious loss numbers are high (tens of thousands), but bandwidth doesn't seem to be affected.

Additional details

No response

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the issue with secnetperf on a high-bandwidth, ultra-low-latency network such as a software loopback or duonic. Inspect the timer-based loss-detection path and how the RTT/8 interval behaves at hundreds of microseconds; done means connection statistics show reasonable suspected and spurious loss without reducing bandwidth.

Written by the indexing model from the issue text.

Assessment

Tech stack
c
Domain
networking
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.