Wireshark / tshark中的2通滤波器

时间:2016-12-27 06:01:36

标签: wireshark tshark

tshark中的选项 -Y -2 -R 让我困惑了很长时间。

在我阅读本手册后,我知道 -Y 用于单通滤波器, -2 用于2通滤波器(如果我们不能得到一些信息,直到第一遍过滤器结束)

但我仍然无法理解-2 -Y 'blabla'-2 -R 'balabala'-2 -Y 'blalal' -R 'blala'

之间的区别

我还做了一个让我疯狂的实验:

tshark -n -r test.pcap -2 -R 'frame.number > 0'
  1   0.000000 10.140.28.17 -> 10.74.68.58  TCP 80 62276 > 8989 [SYN, ECN, CWR] Seq=0 Win=65535 Len=0 MSS=1460 WS=32 TSval=330325315 TSecr=0 SACK_PERM=1
  2   0.000056  10.74.68.58 -> 10.140.28.17 TCP 76 8989 > 62276 [SYN, ACK, ECN] Seq=0 Ack=1 Win=28960 Len=0 MSS=1460 SACK_PERM=1 TSval=2078759468 TSecr=330325315 WS=128
  3   0.000678 10.140.28.17 -> 10.74.68.58  TCP 68 62276 > 8989 [ACK] Seq=1 Ack=1 Win=131744 Len=0 TSval=330325316 TSecr=2078759468
  4   0.000756 10.140.28.17 -> 10.74.68.58  HTTP 158 GET /index.html HTTP/1.1
  5   0.000770  10.74.68.58 -> 10.140.28.17 TCP 68 8989 > 62276 [ACK] Seq=1 Ack=91 Win=29056 Len=0 TSval=2078759468 TSecr=330325316

但是当我执行tshark -n -r test.pcap -2 -R 'frame.number > 1'时,没有任何内容打印出来。怎么解释这个?

我的tshark版本是:TShark 1.10.6(来自master-1.10的v1.10.6)

你能帮我解决这个问题吗?提前谢谢!

1 个答案:

答案 0 :(得分:5)

我在http://ask.wireshark.org上回答了这个问题,但我会在这里粘贴我的答案,以防有人在这里寻找答案而不是那里。

-R指定读取过滤器,因此只读取和处理来自文件的匹配数据包;不匹配的数据包基本上被视为文件根本不包含它们。将此与-Y对比,后者指定 display 过滤器,因此仅显示匹配的数据包,但仍会读取和处理所有数据包。

您在frame.number看到的问题是一个已知的错误,很久以前就确定不值得修复。请参阅Bug 380“wireshark -R不支持'frame.number'作为读取过滤器”

您还可以在此处跟踪-R-Y背后的一些历史记录: