linux - 多路径 TCP : Multiple connections Not Showing

标签 linux tcp linux-kernel network-programming

我在我的机器上安装了 mptcp 内核。我尝试通过运行 iperf -c multipath-tcp.org 来测试 MPTCP(两个端点都支持 MPTCP)。 我试图测试 iperf 是否列出了创建的子流。我有一个有源wifi接口(interface)+有源有线接口(interface)。但 iperf 仍然只显示有线接口(interface)的那个:

Client connecting to multipath-tcp.org, TCP port 5001
TCP window size: 45.0 KByte (default)
------------------------------------------------------------
[  3] local 192.168.42.123 port 52983 connected with 130.104.230.45 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-22.7 sec   384 KBytes   139 Kbits/sec

这不应该是这样的。我的有线连接速度太慢,所以即使流从这里开始,肯定也会在 wifi 接口(interface)中出现子流。

我怎么才能真正看到 MPTCP 实际上正在创建子流?

我看到了 question here但是我的 cat proc... 文件正在显示

  sl  loc_tok  rem_tok  v6 local_address                         remote_address                        st ns tx_queue rx_queue inode
   0: B491F32C CDF952DC  0 0B2BA8C0:8E9C                         2DE66882:1389                         01 02 00000000:00000000 203077

我猜这与任何子流程无关。

最佳答案

也许您可以使用 sysctl net.mptcp 检查 mptcp 设置,路径管理器应该设置为 fullmesh 而不是默认建立多个流。
sysctl -w net.mptcp.mptcp_path_manager=fullmesh
sysctl -w net.mptcp.mptcp_enabled=1
有关 mptcp 设置的更多说明,请参见 http://multipath-tcp.org/pmwiki.php/Users/ConfigureMPTCP

关于linux - 多路径 TCP : Multiple connections Not Showing,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30266794/

相关文章:

c# - 在 Linux 中运行 .NET exe

Linux 找不到 metis.h

c++ - 在不被 TCP 堆栈合并的情况下在单独的 TCP 段中发送数据

c - 阻塞发送和非阻塞发送有什么区别吗

c++ - fork 子进程

android - 如何从 Linux 连接到 Android 蓝牙 socket

c - 在 Web 服务器中显示默认页面的问题

c - 将内核模块与用户空间程序通信的最佳方式是什么?

c - RAM 内存中的段

linux - 到达 fops 内部的 "write"和 "ioctl"