layout | title | nav_order | nav_titles | titles_max_depth |
---|---|---|---|---|
home |
Debugging |
4 |
true |
2 |
To verify that everything is working correctly, or to debug issues, multiple tools can be used.
The ss
command line
tool on Linux systems has an option to list MPTCP sockets: -M
. The recommended
options are: ss -Mani
.
M
, MPTCP socketsa
, display all socket not just "established" onesn
, prevent the port number to protocol conversioni
, connection info matching that from Netlink Diag interface:TCP_INFO
,MPTCP_INFO
, etc.
{: .note}
Note that technically, each subflow (path) is a TCP connection. To see subflows,
ss -tani
can be executed as root: subflows will be marked with tcp-ulp-mptcp
.
ss
can be used with extra filters, e.g. to restrict by connection states, IP
addresses, ports, devices, marks, CGroup, etc.
ip mptcp
can be used
to configure the MPTCP path-manager, but also to monitor path-manager events:
ip mptcp monitor
nstat
can list
kernel MIB counters. MPTCP has a bunch of them, e.g.
nstat -asz | grep MPTcpExt
For more details about these counters, see: MPTCP Doc.
When encountering an issue with MPTCP, it is often interesting to run nstat -n
before, and nstat | grep Tcp
after the issue.
TCPDump and WireShark support MPTCP: they can be use to take packet traces, and recent enough versions will show MPTCP options in TCP packets if present.