基本上,我想要一个被动的工具来监视到/从我的机器进行的TCP连接上的数据包丢失吗?
基本上,我想要一个位于后台并监视TCP ack / nak / re-transmissions生成的工具关于哪个对等IP地址“似乎”正在遭受严重损失的报告。
我在SF中发现的大多数此类问题都建议使用iperf之类的工具。但是,我需要监视与机器上的真实应用程序之间的连接。
这些数据是否只是位于Linux TCP堆栈中?
#1 楼
从总体上看,您的问题的严重程度netstat -s
将跟踪您的重传总数。 # netstat -s | grep retransmitted
368644 segments retransmitted
您还可以为
segments
进行grep获取更详细的视图:# netstat -s | grep segments
149840 segments received
150373 segments sent out
161 segments retransmitted
13 bad segments received
潜水,您可能要启动Wireshark。
在Wireshark中,将过滤器设置为
tcp.analysis.retransmission
,以查看按流进行的重发。 。探索了其他死胡同:
netfilter / conntrack工具似乎不保持重传。 / proc / net / tcp中的
第9栏看起来很有希望,但不幸的是它似乎没有被使用。
#2 楼
这些统计信息位于/ proc / net / netstat中,并且collectl
会以交互方式或通过写入磁盘为您监视它们,以供以后播放: d想看到并排的网络流量,只需将n
和-s
包括在一起:[root@poker ~]# collectl -st
waiting for 1 second sample...
#<------------TCP------------->
#PureAcks HPAcks Loss FTrans
3 0 0 0
1 0 0 0
#3 楼
您可以使用ss
工具获取详细的TCP统计信息:$ /sbin/ss -ti
在Debian下,请使用
apt-get install iproute
获取二进制文件。评论
请注意,提出问题的人正在寻找他们可以观察其输出的工具。尽管到目前为止提到的某些命令不能以这种方式运行,但是所有被支持的答案至少都包括一种这样做的方法。
–安德鲁(Andrew B)
13年4月6日在20:06
@AndrewB:您可以观看ss -ti。
– John Zwinck
15年1月22日在5:53
#4 楼
看起来北卡罗来纳大学(UNC)的一些人构建了一个实用工具来对此进行精确调查:方法学
TCP是获取主题的传统协议的经典示例
修改。不幸的是,对像TCP的丢失检测/恢复机制这样的基本要素的评估并不全面。我们的目标是对TCP损耗及其对TCP性能的影响进行完整,现实的评估。
我依靠对真实世界中TCP连接的被动分析来获得所需的详细程度和真实性。
http://www.cs.unc.edu/~jasleen/Research-passivetcp.htm#Tool
工具
该工具的目的是与以前的工具(例如tcpanaly,tcpflows,LEAST,
和Mystery)相比,可提供更完整,准确的结果,用于识别和表征乱序片段。
我们的方法将在数据包跟踪中出现
类别之一:超时
触发的网络重排序或TCP重传,重复ACK,部分ACK,选择性ACK或隐式
恢复。此外,还会评估每次重传是否需要
。
我不会说这是生产质量。以前,我已经构建了快速的perl脚本来将ip / port / ack元组存储在内存中,然后通过扫描pcap输出报告重复数据,这看起来可以提供更全面的分析。
#5 楼
您可能需要看看dropwatch
实用程序。评论
它仅作为rpm包提供:/
–瑞奇·罗宾逊(Ricky Robinson)
16-10-21在9:00
#6 楼
显然,好的旧sar可以收集重传信息(以及其他tcp统计信息),以及各种其他系统统计信息,如果您调查cpu,内存,磁盘I / O等问题,这些信息也可能会很有趣。您可能需要安装一个软件包:sysstat并使用-S SNMP开关启用这种特殊类型的统计信息,在RHEL / OracleLinux上,此配置在/etc/cron.d/sysstat中,其中/ usr / lib64 / sa / sa1默认情况下每5分钟调用一次,但也可以对其进行调整。
要分析此数据,请使用:
sar(命令行,基于文本)
sadf根据http://sebastien.godard.pagesperso-orange.fr/matrix.html
ksar创建SVG(可以绘制精美的图形并在Java上运行-有几种不同的如果我没记错的话,可以在sf.net和github上进行选择的克隆)
http://www.sargraph.com(基于PHP,我没有任何经验,请介意) ,应用程序,而不是编程语言ge😉)
#7 楼
看起来/proc/net/snmp
是netstat -s
的值的来源。因此,这是一个快速的gawk脚本,用于找到要重传的段的百分比:显示0.0229%的重传,比我们在其他节点上看到的最大0.002%高10倍以上。一个真的很差的实例占所有出站数据包的2.32%,是重新传输的分段。
评论
看起来nstat是另一个用于监视那些计数器的命令loicpefferkorn.net/2016/03/…nstat --nooutput; sleep 60; nstat -p TcpRetransSegs TcpExtTCPLostRetransmit TcpExtTCPSynRetrans
–格雷格·布雷(Greg Bray)
20年8月13日在1:10
评论
您可以使用#watch'netstat -s | grep已转发”
–无
2011-10-13 11:53
这只会显示出站问题。 “ netstat -s | grep段”对我来说似乎更合理。
–akostadinov
2012年4月17日19:39
如果您要管理大小合理的网络,那么我建议您在wireshk上使用Pastmon进行连续监视-pastmon.sourceforge.net/Wikka-1.1.6.5/wikka.php?wakka=HomePage
–symcbean
2012年11月2日,11:12
由于某种原因,它为我拼写了(Ubuntu Server 14)。
– sudo
17年4月13日在15:50
重传与已发送或已接收的好传输速率是多少?
– abourget
17年5月31日在18:31