我们正在对我们的服务器进行一些负载测试,并且我使用tshark将一些数据捕获到pcap文件,然后使用wireshark GUI通过分析来查看显示的错误或警告 - >专家信息我的pcap加载..
我看到了各种我不确定或不完全理解的事情..
根据警告,我有: 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无法跟上写入数据,还有其他一些问题?误报?
答案 0 :(得分:4)
这很可能是误报。与警告消息一样,捕获在tcp会话中间开始是很常见的。在这些情况下,它没有这些信息。如果你真的错过了ack,那么现在是时候开始向主机上游寻找消失的地方了。 tshark可能无法跟上数据,因此它正在放弃一些指标。在捕获结束时,它将告诉您“内核丢弃数据包”是否有多少。默认情况下,tshark禁用dns查找,而tcpdump则不会。如果使用tcpdump,则需要传入“-n”开关。如果您遇到磁盘IO问题,那么您可以执行类似写入内存/ dev / shm的操作。但要小心,因为如果你的捕获量变得非常大,那么你可以让你的机器开始交换。
我敢打赌,你有一些非常长的运行tcp会话,当你开始捕获时,由于这个原因,你只是遗漏了tcp会话的某些部分。话虽如此,我所看到的一些事情会导致重复/缺失。
答案 1 :(得分:2)
" TCP ACKed Unseen"的另一个原因是捕获中可能丢失的数据包数。如果我在繁忙的界面上为所有流量运行未经过滤的捕获,我有时会看到大量的“掉线”。停止tshark后的数据包。
在我看到的最后一次捕获时,我捕获了2893204个数据包,但是一旦我按下Ctrl-C,我就收到了87581个丢包消息。这是3%的损失,所以当wireshark打开捕获时,它可能会丢失数据包并报告"看不见"数据包。
正如我所提到的,我捕获了一个没有捕获过滤器的非常繁忙的接口,所以tshark必须对所有数据包进行排序,当我使用捕获过滤器去除一些噪声时,我不再收到错误。
答案 2 :(得分:0)
Acked Unseen sample
大家好!只是我在捕获中发现的一些观察结果:
在许多情况下,数据包捕获报告客户端的“未捕获的确认段”,该客户端PC已发送数据包的情况发出警报,服务器确认收到该数据包,但数据包在客户端上进行的捕获不包括客户端发送的数据包
最初,我认为这表明PC无法记录捕获它发送的数据包,因为“例如,正在运行Wireshark的机器很慢”(https://osqa-ask.wireshark.org/questions/25593/tcp-previous-segment-not-captured-is-that-a-connectivity-issue)
然而,我注意到每当我看到“未被捕获的确认段”警报时,我可以看到客户端PC发送的“无效”数据包的记录
在上面的捕获示例中,帧67795发送10384的ACK
即使wireshark报告了Bogus IP长度(0),帧67795也是如此 据报道长度为13194