分析MPTCP跟踪(.pcap)
mptcpanalyzer的Python项目详细描述
Documentation (latest) | |
Documentation (stable) | |
License | |
Build Status | |
PyPI | |
DOI | |
演示文稿
mptcanalyzer是一个python工具,旨在帮助进行mptcp-pcap分析(例如mptcptrace)。
它接受一个捕获文件(.pcap或.pcapng)作为输入,并从中生成一个csv文件 (多亏了终端版本的wireshark tshark)和mptcp字段 需要分析。 从那里您可以:
- 列出MPTCP连接
- 计算特定MPTCP连接的统计信息(子流、回注、子流实际贡献的列表…) 它接受一个捕获文件(PCAP)作为输入,并根据从那里可以:
- 导出包含mptcp字段的csv文件
- 绘制单向延迟
- 。
大多数命令都是自文档和/或自动完成的。
然后,您将拥有一个具有自动完成功能的解释器,该解释器可以生成以下显示图:
目录
安装
您需要Wireshark版本>;=3.0.0
安装wireshark后,您可以通过pip安装mptcanalyzer:
$ python3 -mpip install mptcpanalyzer --user
python3.7是必需的,因为我们依赖它的类型提示功能。 依赖关系是(将来会有一些是可选的):
- stevedore管理插件
- 数据分析库pandas
- lnumexpr在pandas中运行特定查询
- matplotlib绘制图形
- cmd2生成命令行
如果出现问题,请运行checkhealth
命令。
如何使用?
MPTCAnalyzer可以运行三种模式:
- 交互模式(默认):基本完成的解释器将接受您的命令。也嵌入了一些帮助。
- 如果文件名作为参数传递,它将从此文件加载命令
- 否则,它会将unknow参数视为一个命令,与可以交互使用的命令相同
例如,我们可以加载mptcp pcap(我在wireshark wiki或在这个存储库中的examples文件夹中提供了一个)。
运行$ mptcpanalyzer --load examples/iperf-mptcp-0-0.pcap
。脚本将尝试生成
一个csv文件,根据计算机/pcap的不同,可能需要几分钟,直到出现提示。
键入?
列出可用的命令(及其别名)。例如:
lc
(列表连接)ls
(列表子流)plot
- 。
help ls
将返回命令的语法,即ls [mptcp.stream]
,其中mptcp.stream是出现的数字之一
在lc
输出中。
看看Examples
示例
前往Wiki获取更多示例。
从连接绘制单向延迟:
plot owd tcp examples/client_2_filtered.pcapng 0 examples/server_2_filtered.pcapng 0 --display
在两个方向绘制TCP序列号:
plot tcp_attr -h
获取MPTCP连接的摘要
> load_pcap examples/server_2_filtered.pcapng
> mptcp_summary 0
在服务器和客户端pcap之间映射tcp.stream:
>map_tcp_connection examples/client_1_tcp_only.pcap examples/server_1_tcp_only.pcap 0
TODO
>print_owds examples/client_1_tcp_only.pcap examples/server_1_tcp_only.pcap 0 0
在服务器和客户端pcap之间映射tcp.stream:
> map_mptcp_connection examples/client_2_filtered.pcapng examples/client_2_filtered.pcapng 0
2 mapping(s) found
0 <-> 0.0 with score=inf <-- should be a correct match
-tcp.stream 0: 10.0.0.1:33782 <-> 10.0.0.2:05201 (mptcpdest: Server) mapped to tcp.stream 0: 10.0.0.1:33782 <-> 10.0.0.2:05201 (mptcpdest: Server) with score=inf
-tcp.stream 2: 10.0.0.1:54595 <-> 11.0.0.2:05201 (mptcpdest: Server) mapped to tcp.stream 2: 10.0.0.1:54595 <-> 11.0.0.2:05201 (mptcpdest: Server) with score=inf
-tcp.stream 4: 11.0.0.1:59555 <-> 11.0.0.2:05201 (mptcpdest: Server) mapped to tcp.stream 4: 11.0.0.1:59555 <-> 11.0.0.2:05201 (mptcpdest: Server) with score=inf
-tcp.stream 6: 11.0.0.1:35589 <-> 10.0.0.2:05201 (mptcpdest: Server) mapped to tcp.stream 6: 11.0.0.1:35589 <-> 10.0.0.2:05201 (mptcpdest: Server) with score=inf
0 <-> 1.0 with score=0
-tcp.stream 0: 10.0.0.1:33782 <-> 10.0.0.2:05201 (mptcpdest: Server) mapped to tcp.stream 1: 10.0.0.1:33784 <-> 10.0.0.2:05201 (mptcpdest: Server) with score=30
-tcp.stream 2: 10.0.0.1:54595 <-> 11.0.0.2:05201 (mptcpdest: Server) mapped to tcp.stream 3: 10.0.0.1:57491 <-> 11.0.0.2:05201 (mptcpdest: Server) with score=30
-tcp.stream 4: 11.0.0.1:59555 <-> 11.0.0.2:05201 (mptcpdest: Server) mapped to tcp.stream 5: 11.0.0.1:50077 <-> 11.0.0.2:05201 (mptcpdest: Server) with score=30
-tcp.stream 6: 11.0.0.1:35589 <-> 10.0.0.2:05201 (mptcpdest: Server) mapped to tcp.stream 7: 11.0.0.1:50007 <-> 10.0.0.2:05201 (mptcpdest: Server) with score=30
常见问题
移到Wiki
如何贡献
欢迎光临! 请参阅doc。
相关工具
类似的软件:
Tool | Description |
---|---|
mptcptrace | C based: an example |
mptcpplot | C based developed at NASA: generated output example |