1

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

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

4

2 回答 2

0

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

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

于 2013-06-18T07:54:08.313 回答
0

printk 仅在您使用低速传输时可用。使用快速传输,这些参数的更改数量很大,并且会溢出 printk 使用的 dmesg 缓冲区。过去,当这些参数发生变化时,我修改了一些代码以在内核和用户空间之间使用 relayfs 缓冲区。这些天来,系统窃听应该有助于以有效的方式获取内部信息。

于 2013-08-03T20:30:29.163 回答