我们正在对我们的服务器进行一些负载测试,并且我正在使用tshark将一些数据捕获到pcap文件,然后使用wireshark GUI来查看出现的错误或警告,通过分析 - > expert Info with my pcap loaded in ..
我看到了各种我不确定或不完全理解的东西..
在警告下我有:779 TCP警告:未捕获的确认段(捕获开始时常见)446 TCP:未捕获上一段(捕获开始时常见)
一个例子是:40292 0.000 xxx xxx TCP 90 [TCP ACKed unseen segment] [TCP Previous segment not captured] 11210> 37586 [PSH,ACK] Seq = 3812 Ack = 28611 Win = 768 Len = 24 TSval = 199317872 TSecr = 4506547
我们还通过一个很好的命令来运行pcap文件,该命令可以创建一个命令行的数据列
命令
tshark -i 1 -w file.pcap -c 500000
基本上只是在tcp.analysis.lost_segment列中看到了一些但不是很多.. \
有人启发可能会发生什么吗? tshark无法跟上写入数据,还有其他一些问题?假阳性?
这很可能是误报。与警告消息一样,捕获在tcp会话中间开始是很常见的。在这些情况下,它没有这些信息。如果你真的错过了ack,那么现在是时候开始向主机上游寻找消失的地方了。 tshark可能无法跟上数据,因此它正在放弃一些指标。在捕获结束时,它将告诉您“内核丢弃数据包”是否有多少。默认情况下,tshark禁用dns查找,而tcpdump则不会。如果使用tcpdump,则需要传入“-n”开关。如果您遇到磁盘IO问题,那么您可以执行类似写入内存/ dev / shm的操作。但要小心,因为如果你的捕获量变得非常大,那么你可以让你的机器开始交换。
我敢打赌,你有一些非常长的运行tcp会话,当你开始捕获时,你只是因为这个而错过了tcp会话的某些部分。话虽如此,我看到的一些事情会导致重复/缺失的问题。
“TCP ACKed Unseen”的另一个原因是捕获中可能丢弃的数据包数。如果我对繁忙接口上的所有流量运行未经过滤的捕获,我有时会在停止tshark后看到大量“丢弃”的数据包。
在我看到这个的最后一次捕获时,我捕获了2893204个数据包,但是一旦我按下Ctrl-C,我就收到了87581个丢包消息。这是3%的损失,所以当wireshark打开捕获时,它可能丢失数据包并报告“看不见”的数据包。
正如我所提到的,我捕获了一个没有捕获过滤器的非常繁忙的接口,所以tshark必须对所有数据包进行排序,当我使用捕获过滤器去除一些噪声时,我不再得到错误。
Acked Unseen sample 嗨,大家好!只是我在捕获中发现的一些观察结果: 在许多情况下,数据包捕获报告客户端的“未捕获的确认段”,其警告客户端PC已发送数据包的情况,服务器确认收到该数据包,但数据包捕获在客户端上不包括客户端发送的数据包 最初,我认为这表明PC无法记录捕获它发送的数据包,因为“例如,正在运行Wireshark的机器很慢”(https://osqa-ask.wireshark.org/questions/25593/tcp-previous-segment-not-captured-is-that-a-connectivity-issue) 但是,我注意到每次看到“未捕获的确认段”警报时,我都能看到客户端PC发送的“无效”数据包的记录