跟踪Linux内核中特定TCP连接的拥塞窗口

时间:2013-06-18 03:25:47

标签: tcp linux-kernel congestion-control

我正在尝试跟踪内核中特定TCP连接的拥塞窗口。最简单的方法,我假设是使用printkprintf并打印出相应的变量,我认为它在内核中是snd_cwnd

有更标准的方法吗?理想情况下,我想观察特定TCP连接的各种重要TCP参数如何变化。

2 个答案:

答案 0 :(得分:0)

你使用printk是非常正确的,转储特定的数据实际上printk是最好的选择。

要观察特定TCP连接的参数,您可以获取netfilter挂钩的帮助。使用netfilter内核模块(http://fcns.eu/2010/02/15/netfilter-hooks/),您可以跟踪特定连接,并可以检查您想要的每个TCP包。

答案 1 :(得分:0)

printk仅在您使用低速传输时才可用。使用快速传输时,这些参数的更改次数很多,并且会溢出printk使用的dmesg缓冲区。在过去,我讨论了一些代码,当这些参数发生变化时,在内核和用户空间之间使用relayfs缓冲区。现在有一个systemtap对于以有效的方式获取内部信息非常有用。