我有一个简单的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 ....
谢谢@JimD。我已经得出了类似的结论!数据包捕获本身必须进行分段才能精确地做到这一点。