tshark不会将TCP片段组装为大数据包

问题描述 投票:0回答:1

我有一个简单的pcap,具有一些网络流量,并且正在使用tshark从中获取一些标头信息:

我使用以下命令:

tshark -r ./capture-1-5 -Y "http2" -o tls.keylog_file:ssl-key.log \
-T fields -e frame.number -e _ws.col.Time -e ip.src -e tcp.srcport \
-e ip.dst  -e tcp.dstport -e _ws.col.Protocol -e frame.len \
-e _ws.col.Info -E header=y -E separator="," -E quote=d \ 
-E occurrence=f > desegmented.csv

我意识到,在这种情况下,所有片段都被重新组装,从而导致巨大的数据包。但是,我不想重组数据包。因此,我在tshark中添加了一个额外的选项:

tshark -r ./capture-1-5 -Y "http2" -o tls.keylog_file:ssl-key.log \ 
-T fields -e frame.number -e _ws.col.Time -e ip.src -e tcp.srcport \
-e ip.dst -e tcp.dstport -e _ws.col.Protocol -e frame.len \
-e _ws.col.Info -E header=y -E separator="," -E quote=d \
-E occurrence=f -o tcp.desegment_tcp_streams:FALSE > segmented.csv

我的直觉是,考虑到“ MTU上方的数据包”将显示为多个数据包,所得的disassembled.csv文件应更大,并应包含更多的行。

但是,我观察到相反的情况。没有汇编的结果文件较小,行数几乎减半。

-rw-r--r-- 1 root root 210K May 18 18:21 desegmented.csv
-rw-r--r-- 1 root root  97K May 18 18:21 segmented.csv

# cat desegmented.csv |wc -l
2635
# cat segmented.csv |wc -l
1233

这是正常行为吗?我看不到(手动)数据包在哪里开始消失(以及为什么),或者由于双向通信(在这里和那里都缺少数据包)而看不到任何模式。我假设也许,在disassebmled.csv情况下,导致MTU上方至少一个数据包的每个数据包甚至整个数据包流都被完全丢弃。

我也尝试应用ip.defragment:FALSE,但结果仍然相同。谢谢

为了再现,可以从here下载文件>

我有一个简单的带有一些网络流量的pcap,并且正在使用tshark从中获取一些头信息:我使用以下命令:tshark -r ./capture-1-5 -Y“ http2” -o tls.keylog_file: ssl-key ....

csv tcp tls1.2 tshark
1个回答
0
投票

谢谢@JimD。我已经得出了类似的结论!数据包捕获本身必须进行分段才能精确地做到这一点。

© www.soinside.com 2019 - 2024. All rights reserved.