rust-lang / rust-lang/socket2

TCP_INFO support

Open
#362 7 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
Dominant language
Rust
Stars
870
Forks
305
PR merge metrics
No merged PRs in 30d

Description

TCP_INFO (struct tcp_info) contains metrics for how the tcp layer is performing, and lends insight into what is otherwise a black box for most folk. Notable are base rtt, rtt, loss, retries, ecn_seen from my perceptual worrying-about-bufferbloat perspective...

Windows impl:

https://learn.microsoft.com/en-us/windows/win32/api/mstcpip/ns-mstcpip-tcp_info_v1

Apache traffic server's implementation: https://docs.trafficserver.apache.org/en/9.0.x/admin-guide/plugins/tcpinfo.en.html

How google measurement labs uses it: https://www.measurementlab.net/tests/tcp-info/ (out of band in this case)

It would be really nice to be able to monitor this set of metrics for more applications.

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 comparing the requested TCP_INFO metrics with the Windows tcp_info_v1 documentation and the Apache Traffic Server implementation linked in the issue. Determine the socket API surface needed to expose these metrics across supported platforms, then verify that applications can monitor the listed values, including RTT, loss, retries, and ECN state.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
networking
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.