繁体   English   中英

从程序中获取我的 TCP 连接的 cwnd

[英]Get cwnd of my TCP connection from a program

我正在使用 boost.asio 从我的 linux 程序创建 TCP 连接。 我想知道如何从程序中获取其拥塞 window (cwnd) 的值? 我知道的唯一方法是解析/proc/net/tcp ,但这感觉不对。 我宁愿使用专用的系统调用来获取此信息。

类似问题的解决方案( How to monitor cwnd and ssthresh values for a TCP connection? )建议使用 TCP Probe,但感觉更不吸引人。

那么获取 cwnd 值的最佳方法是什么?

我根据这个有用的示例使用netlink和 INET_DIAG-sockets 做到了这一点: https://github.com/kristrev/inet-diag-example

事实证明,当使用TCP_INFO选项调用时, getsockopt()能够返回相同的tcp_info

  tcp_info tcpi = {};
  socklen_t len = sizeof(tcp_info);
  getsockopt(tcp_socket, SOL_TCP, TCP_INFO, &tcpi, &len);
  tcpi.tcpi_snd_cwnd;  // <-- CWND

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM