1

我对获取连接的拥塞窗口大小感兴趣。该连接是由另一个程序创建的。我希望我们可以使用 proc 中的某个文件来获得这个拥塞窗口大小,或者,有一个调用来从内核获取这个信息......

所以我需要更多关于这些方法的线索......

4

2 回答 2

3

如果您在 Linux 上,则可以使用套接字级别和套接字选项getsockopt()在套接字上使用。IPPROTO_TCPTCP_INFO

结构有struct tcp_info成员tcpi_snd_cwnd。可以在这里找到相当广泛的文章。

FreeBSD 也有类似的特性

Windows 使用作为统计类型的GetPerTcpConnectionEStats()调用提供拥塞窗口信息。TcpConnectionEstatsSndCong

于 2013-08-04T06:45:38.127 回答
1

我的解决方案是使用 tcpdump 来捕获数据包 retrans、sack、ecn-cwr。那些表明窗口大小将被折叠,每个都有不同的折叠幅度。但现在只需计算这些量级并将它们插入 initcwnd 大小即可。

我认为这比 jxh 建议的要容易。

于 2013-08-05T07:09:58.193 回答