![如何找出发生了多少次 TCP 重传?](https://linux22.com/image/57365/%E5%A6%82%E4%BD%95%E6%89%BE%E5%87%BA%E5%8F%91%E7%94%9F%E4%BA%86%E5%A4%9A%E5%B0%91%E6%AC%A1%20TCP%20%E9%87%8D%E4%BC%A0%EF%BC%9F.png)
我在 ARMHF 平台上运行 Debian Wheezy,并通过相当不可靠的手机网络进行大部分通信。有没有办法读取编号。自启动以来 TCP 堆栈已完成重新传输的次数?还跟踪编号。 TCP 校验和失败的情况会很有帮助。
答案1
如果您需要定期检查这些数字(甚至将它们记录在某处),也许netstat
可以提供帮助,如下所述:
https://serverfault.com/questions/318909/how-passively-monitor-for-tcp-packet-loss-linux
您可以记录输出并稍后进行分析。
如果您需要实时观看某些内容,也许tcptrace符合要求。
另一种选择是使用普通的旧tcp转储转储您的流量,然后在您自己的工作站上使用一些更复杂的分析工具来分析它,例如Wireshark。
tcpdump
,netstat
并且tcptrace
所有这些都存在于 armhf 上的 Debian wheezy 中。
答案2
如果您安装并启用“sysstat”软件包并为 sadc 启用 SNMP。然后,您可以使用以下命令获取 TCP 重传信息。而且您还将拥有可配置数量的历史数据(下面的输出来自 Ubuntu 13.10)。
# sar -n ETCP
Linux 3.11.0-12-generic (hamilton) 2014-10-14 _x86_64_ (2 CPU)
16:05:01 atmptf/s estres/s retrans/s isegerr/s orsts/s
16:15:01 0,00 0,00 0,00 0,00 0,00
Average: 0,00 0,00 0,00 0,00 0,00