我对获取连接的拥塞窗口大小感兴趣。该连接是由另一个程序创建的。我希望我们可以使用 proc 中的某个文件来获得这个拥塞窗口大小,或者,有一个调用来从内核获取这个信息......
所以我需要更多关于这些方法的线索......
我对获取连接的拥塞窗口大小感兴趣。该连接是由另一个程序创建的。我希望我们可以使用 proc 中的某个文件来获得这个拥塞窗口大小,或者,有一个调用来从内核获取这个信息......
所以我需要更多关于这些方法的线索......
如果您在 Linux 上,则可以使用套接字级别和套接字选项getsockopt()
在套接字上使用。IPPROTO_TCP
TCP_INFO
结构有struct tcp_info
成员tcpi_snd_cwnd
。可以在这里找到相当广泛的文章。
FreeBSD 也有类似的特性。
Windows 使用作为统计类型的GetPerTcpConnectionEStats()
调用提供拥塞窗口信息。TcpConnectionEstatsSndCong
我的解决方案是使用 tcpdump 来捕获数据包 retrans、sack、ecn-cwr。那些表明窗口大小将被折叠,每个都有不同的折叠幅度。但现在只需计算这些量级并将它们插入 initcwnd 大小即可。
我认为这比 jxh 建议的要容易。