如何在Linux中获取所有TCP连接的min / avg / var rtt?

时间:2012-02-08 16:57:13

标签: linux networking tcp

我正在尝试在Linux上实现跟踪开放TCP连接的软件,并根据TCP往返时间估算对它们进行分类。我正在寻找类似于nettop在MacOS X上显示的程序的信息。

$ nettop -m tcp

它显示拥有它们的进程的打开连接列表。它包括每个连接的当前往返时间min,均值和方差估计值。

为了听一个程序自己的连接,它可以在http://linuxgazette.net/136/pfeiffer.html中完成,但我正在寻找像nettop这样的东西,它显示了机器上所有连接的信息。在不需要root访问权限的OS X上,但如果答案确实可以。

我更喜欢与Python兼容的版本,但如果不可用,我可以使用C.如果有一个现有的命令行实用程序,如nettop for Linux,那也很有趣。

相关:

  • 维基百科:Karn的算法

2 个答案:

答案 0 :(得分:0)

如果您想使用自己的代码执行此操作,可以查看libpcap或tcpdump的输出,并将数据包的时间戳与相应的序列和确认号进行比较,并在最后几秒内对这些数据进行平均。

  • 12:19:39.331248 IP 10.0.60.243.ssh> 192.168.50.22.21950:P 11952 :12180(228)
  • 12:19:39.331388 IP 10.0.60.243.ssh> 192.168.50.22.21950:P 12328 :12476(148)
  • 12:19:39.380981 IP 192.168.50.22.21950> 10.0.60.243.ssh :.确认 11952 赢得65535
  • 12:19:39.381039 IP 10.0.60.243.ssh> 192.168.50.22.21950:P 12624 :12772(148)
  • 12:19:39.381054 IP 192.168.50.22.21950> 10.0.60.243.ssh :.确认 12328 赢取65159
  • 12:19:39.381058 IP 192.168.50.22.21950> 10.0.60.243.ssh :. ack 12624 win 64863

这将平均达到约50毫秒rtt

答案 1 :(得分:0)

命令中提供了部分信息:

ss -i -t