分析MPTCP跟踪(.pcap)

mptcpanalyzer的Python项目详细描述


Documentation (latest)Dev doc
Documentation (stable)Master doc
LicenseLicense
Build StatusBuild status
PyPIPyPI package
DOIDOI
built with nix

演示文稿

mptcanalyzer是一个python工具,旨在帮助进行mptcp-pcap分析(例如mptcptrace)。

它接受一个捕获文件(.pcap或.pcapng)作为输入,并从中生成一个csv文件 (多亏了终端版本的wireshark tshark)和mptcp字段 需要分析。 从那里您可以:

  • 列出MPTCP连接
  • 计算特定MPTCP连接的统计信息(子流、回注、子流实际贡献的列表…) 它接受一个捕获文件(PCAP)作为输入,并根据从那里可以:
  • 导出包含mptcp字段的csv文件
  • 绘制单向延迟

大多数命令都是自文档和/或自动完成的。

然后,您将拥有一个具有自动完成功能的解释器,该解释器可以生成以下显示图:

Data Sequence Number (DSN) per subflow plot

您可以通过以下数字对象标识符引用MPTCAnalyzer: DOI

目录

安装

您需要Wireshark版本>;=3.0.0

安装wireshark后,您可以通过pip安装mptcanalyzer: $ python3 -mpip install mptcpanalyzer --user

python3.7是必需的,因为我们依赖它的类型提示功能。 依赖关系是(将来会有一些是可选的):

如果出现问题,请运行checkhealth命令。

如何使用?

MPTCAnalyzer可以运行三种模式:

  1. 交互模式(默认):基本完成的解释器将接受您的命令。也嵌入了一些帮助。
  2. 如果文件名作为参数传递,它将从此文件加载命令
  3. 否则,它会将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

相关工具

类似的软件:

ToolDescription
mptcptraceC based: an example
mptcpplotC based developed at NASA: generated output example

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java需要设置框架。可设置大小(false)以重新绘制()   java我对PDF文件感到困惑   为什么是太阳。jvm。热点。调试器。DebuggerException:无法打开二进制文件`?   设置结果为textview时出现java空指针异常   我应该使用什么同步原语在Java中实现事件驱动程序框架?   java为什么WindowClosing处理程序在退出程序之前不执行后台任务?   如何将“20170712T18:43:04.000Z”转换为安卓或java中的相对时间?   Java,获取按键的时间长度,currentTimeMillies()始终为24   maven构建的java可执行Jar找不到logback。xml   java在其外部的函数中使用for循环中的值   java如何以表格格式将不同长度的数据对齐   java Play 2.5 WebSocket连接构建   maven而非eclipse的java强制转换问题   java如何在JFreeChart中使X轴上的值水平?   构建Java Windows应用程序以访问在线MySQL数据库需要什么   java添加构造函数会出错吗?这没有道理,请帮忙,编程问题   java在一个jframe中的两个JPanel中使用两个绘制方法   java数学或逻辑问题   java如何复制Androids库存摄像头方向更改