如何从大量转储中过滤和导出数据?

时间:2013-04-26 04:58:59

标签: wireshark text-processing data-processing

有流量的序列化表示。大量的转储总大小约为500GB:是使用UDP,MPEG PES,OSFP,ICMP,TCP,SNMP和其他协议传输的数据混合。

我只对使用TCP传输的数据感兴趣。

通过在CentOS中使用WireShark,我可以指定过滤器“仅限TCP”并将数据导出到文本文件中。例如。

以下是结果文件的摘录:

Internet Protocol, Src: ... (...), Dst: ... (...)
Transmission Control Protocol, Src Port: http (80), Dst Port: 58527 (58527), Seq: 21768005, Ack: 41490, Len: 1440
    Source port: http (80)
    Destination port: 58527 (58527)
    [Stream index: 1]
    Sequence number: 21768005    (relative sequence number)
    [Next sequence number: 21769445    (relative sequence number)]
    Acknowledgement number: 41490    (relative ack number)
    Header length: 20 bytes
    Flags: 0x10 (ACK)
    Window size: 1002
    Checksum: 0xfa4b [validation disabled]
    [SEQ/ACK analysis]
    TCP segment data (1440 bytes)

No.     Time           Source                Destination           Protocol Info
  55526 23.000462000   ...         ...        TCP      [TCP segment of a reassembled PDU]

所有这些都需要花费很多时间。

有没有办法导出“仅限TCP”?

我将非常感谢这些信息。感谢所有

1 个答案:

答案 0 :(得分:0)

出于这些目的,我使用了以下“处理器”脚本:

#!/bin/bash
postfix=1
for dump in dump*; do
   tshark -r $dump -T fields -e tcp.len "tcp" &> results_$postfix
   echo "$postfix dump was processed "
   postfix=$(( $postfix + 1 ))
done

结果的一个例子:

[root@localhost real_traffic]# ./processor
1 dump was processed
2 dump was processed
...

其中一个结果文件的部分内容。

...
1440
1440
1440
1440
1440
1440
1440
1440
1440
1440
1440
1440
325
1440
957
384
...