使用带有SIP tcp跟踪的tshark过滤器

时间:2014-09-05 14:29:24

标签: sip wireshark wireshark-dissector

我有以下追踪:

enter image description here

在wireshark首选项中,我将以下选项设置为Off:

在TCP Prefs中:允许子网段重新组合TCP流

在SIP首选项中:重新组合跨越多个TCP段的sIP标头

在SIP首选项中:重新组合跨越多个TCP段的sIP主体

我正在尝试使用下面给出的tshark命令分析此跟踪。但是在输出中,即使数据包在跟踪中,我也没有显示任何数据包:

[rishabh@pc Test]$tshark -T fields -E header=y -e ip.src -e tcp.srcport -e ip.dst  -e tcp.dstport -R "sip.Status-Code eq 500" -r "4.cap"
ip.src  tcp.srcport ip.dst  tcp.dstport
[rishabh@pc Test]$ 

如何修改过滤器以捕获突出显示的数据包?

我发现如果我打开所有上面的wireshark选项,TCP数据包将显示为: enter image description here

也许tshark默认允许重组,因此无法将数据包过滤为SIP消息。此外,我能够使用tshark过滤器捕获数据:“tcp包含'500 Responder'”

但我只需要将其过滤为sip状态代码。我该如何实现这一目标?

请注意,SIP状态代码确实是500,因此初始过滤器应该有效。

1 个答案:

答案 0 :(得分:1)

找到解决方案:

tshark允许您设置重组首选项的设置。偏好是:

Whether subdissector can request TCP streams to be reassembled
TRUE or FALSE (case-insensitive)
tcp.desegment_tcp_streams: TRUE

Whether the SIP dissector should reassemble headers of a request spanning multiple TCP segments. To use this option, you must also enable "Allow subdissectors to reassemble TCP streams" in the TCP protocol settings.
TRUE or FALSE (case-insensitive)
sip.desegment_headers: TRUE

Whether the SIP dissector should use the "Content-length:" value, if present, to reassemble the body of a request spanning multiple TCP segments, and reassemble chunked data spanning multiple TCP segments. To use this option, you must also enable "Allow subdissectors to reassemble TCP streams" in the TCP protocol settings.
TRUE or FALSE (case-insensitive)
sip.desegment_body: TRUE

在tshark中使用带-o选项的这些标志,可以对首选项进行custiomized。我使用以下tshark命令解决了我的问题:

/home/atsuser/Tools/wireshark/tshark -T fields -E header=y -e ip.src -e tcp.srcport -e ip.dst -e tcp.dstport -e frame.number -r 4.cap -o sip.desegment_headers:FALSE -o sip.desegment_body:FALSE -o tcp.desegment_tcp_streams:FALSE -R "sip.Status-Code eq 500"

我在Windows机器上的“%USERPROFILE%\ Application Data \ Wireshark”位置找到了首选项名称。