mptcpanalyzer: A Multipath TCP analyzer

This is a package candidate release! Here you can preview how this package release will appear once published to the main package index (which can be accomplished via the 'maintain' link below). Please note that once a package has been published to the main package index it cannot be undone! Please consult the package uploading documentation for more information.

[maintain] [Publish]

Warnings:

mptcpanalyzer is a multipath TCP (www.multipath-tcp.org) protocol analyzer. Multipath TCP is an extension of the Transmission Control Protocol that allows applications to send one single stream of data over multiple TCP connections.

This software can automatically plot MPTCP characteristics such as Data Sequence Numbers, Data Acknowledgements etc. It can also map one packet capture to another to give more detailed statistics such as One-Way delays and reinjection qualifications. * list the MPTCP connections in the pcap * display chosen statistics on a specific MPTCP connection (list of subflows, number of reinjections, etc) * convert packet capture files (*.pcap) to *.csv files * plot data sequence numbers, dataacks for all subflows * can map packets between the client and server pcaps to plot one-way delays


[Skip to Readme]

Properties

Versions 0.0.1, 0.0.2.0
Change log CHANGELOG
Dependencies ansi-terminal, base (>=4.12), bytestring, byteunits, Cabal, cereal, Chart (>=1.5), Chart-cairo, containers, directory, filepath, foldl, formatting, Frames, ghci-dap, hashable, haskeline (>=0.8.0.0), haskell-dap, haskell-debug-adapter, ip, lens, mptcp-pm (>=0.0.3), mptcpanalyzer, mtl, optparse-applicative, pipes, pipes-parse, pipes-safe, polysemy, polysemy-log (>=0.2.2.4), polysemy-log-co, polysemy-plugin, process, readable, template-haskell, temporary, text, time, transformers, unix, utf8-string, vector, vinyl, wide-word [details]
License GPL-3.0-only
Author Matthieu Coudron
Maintainer teto
Category Network
Home page https://github.com/teto/quantum
Source repo head: git clone https://github.com/teto/quantum
Uploaded by teto at 2021-11-28T16:08:27Z

Modules

Flags

Automatic Flags
NameDescriptionDefault
withpolysemy

Add polysemy plugin

Enabled
dev

Relax constraints

Enabled

Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees


Readme for mptcpanalyzer-0.0.1

[back to package description]

Presentation

Mptcpanalyzer is a tool conceived to help with MPTCP pcap analysis (as mptcptrace for instance).

It accepts packet capture files (*.pcap) as inputs and from there you can:

Commands are self documented with autocompletion. The interpreter with autocompletion that can generate & display plots such as the following:

cabal configure --enable-profiling
cabal run mptcpanalyzer "load-pcap examples/client_2_filtered.pcapng"  -- +RTS
-xc

Installation

You will need a wireshark version >= 3.0.0 . Install zsh --zsh-completion-script

How to use

cabal run mptcpanalyzer plot --display tcp examples/client_2_filtered.pcapng 0 tcpseq

mptcpanalyzer "map-tcp examples/client_2_filtered.pcapng examples/server_2_filtered.pcapng 0"
mptcpanalyzer "load-pcap examples/client_2_filtered.pcapng"

I use vd.

How to develop/contribute

See CONTRIBUTING.

Dependencies

Roadmap

Related tools

Similar software:

Tool Description
mptcptrace C based: an example
mptcpplot C based developed at NASA: generated output example

Acknowledgements

This project is founded by NGI pointer.

wireshark-mptcp: https://www.wireshark.org/docs/dfref/m/mptcp.html polysemy: https://hackage.haskell.org/package/polysemy visidata: https://www.visidata.org/ diagrams: https://hackage.haskell.org/package/diagrams frames: https://hackage.haskell.org/package/Frames shelltestrunner: https://github.com/simonmichael/shelltestrunner