MPTCP 不会创建多个子流

MPTCP 不会创建多个子流

我已经在一台机器上安装了MCTCP,并在https://amiusingmptcp.com这给出了积极的结果。现在,当我确实iperf -c multipath-tcp.org像他们说的那样这里我只看到一个连接:

root@user:~# netstat -m
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       Local Token Remote Token
mptcp      0 602616 streaming.local:47914   mptcp.info.ucl.ac.:5001 ESTABLISHED 2590462875  3979247341

iperf 显示相同的一个连接:

root@user:~# iperf -c multipath-tcp.org
------------------------------------------------------------
Client connecting to multipath-tcp.org, TCP port 5001
TCP window size:  512 KByte (default)
------------------------------------------------------------
[  3] local 192.168.1.11 port 47914 connected with 130.104.230.45 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.3 sec  6.75 MBytes  5.48 Mbits/sec

我应该做什么来在多个子流之间划分数据?

编辑:

为了使 MPTCP 工作,我只需安装 Debian Wheezy 并下载他们为该发行版预编译的软件包。

我尝试了这个sysctl调整;
net.mptcp.mptcp_path_manager=fullmeshndiffportsbinder(?)
net.mptcp.mptcp_scheduler=roundrobindefault
net.ipv4.tcp_congestion_control = cubicolia

我每次进行这些更改时都没有重新启动,但我认为这不是强制性的,因为当我更改为 时binderbinder registered中会出现一条消息dmesg

还安装了他们的工具并制作了:

ip link set dev eth0 multipath off
ip link set dev wlan0 multipath on
ip link set dev wwan0 multipath on

顺便说一句,eth0已拔掉电源,但以防万一。

的输出ip route

default via 192.168.1.1 dev wlan0  proto static
169.254.0.0/16 dev wwan0  scope link  metric 1000
192.168.0.0/24 dev wwan0  proto kernel  scope link  src 192.168.0.100
192.168.1.0/24 dev wlan0  proto kernel  scope link  src 192.168.1.11

编辑2:

我已经移除了 3g 路由器并通过以太网和 WiFi 连接到我的普通路由器,所以我现在有 2 个互联网接口:wlan0eth2。我还添加了名为的自动路由脚本这里在底部(mptcp_up 和 mptcp_down),因此路由更改为:

default via 192.168.1.1 dev eth0  proto static
169.254.0.0/16 dev eth0  scope link  metric 1000
192.168.1.0/24 dev eth0  proto kernel  scope link  src 192.168.1.217
192.168.1.0/24 dev wlan0  proto kernel  scope link  src 192.168.1.11

但连接仍然不会产生多个子流。iperf并且netstat -m仍然返回 1 个连接。

注意:我删除了 3g 路由器并添加了 eth0 连接,因为路由器给我带来了问题,但我仍然有多个接口来测试子流。

答案1

您尚未共享足够的信息来表明您的计算机具有双重连接,而该双重连接又可用于两个不同的 MPTCP 通道。但由于我相信您试图提供足够的信息,我可以推断您不知道先决条件,因此我想我可以给您一个答案。我实际上并没有使用 MPTCP,其他人可能会给你更好的答案。

当一个端点可以通过不同的路由与另一个端点通信时,多路径 TCP 非常有用。在您的情况下,您似乎建议您的计算机是可以通过多个路由到达的端点,但我不相信您的计算机已设置为实际上可以以这种方式工作。

首先,您需要使用基于源的路由。中给出了一些示例NetworkManager 支持创建基于源的路由配置的功能请求。其次,如果您的计算机具有隐藏在伪装 (NAT) 路由器后面的专用网络地址,则很难从外部访问您的计算机。 MPTCP 在连接到 Internet 的设备上运行良好,但不适用于通过伪装路由器连接到连接有限的专用网络的设备。

如果您只是想尝试,那么使用一个连接通过两个不同的路由到达支持 MPTCP 的端点可能会更好。但是,如果您想将连接跨越到您这边的两个不同连接,您可能首先必须获得两个真实的每个具有一个公共 IPv4 或 IPv6 地址的 Internet 链接。

你说有些网站表明你有MPTCP支持。您应该向这些网站查询这到底意味着什么。可能只是您的系统向他们报告 MPTCP 支持,但没有说明您可以启动的通道数量。也可能是您可以通过一个界面进行通信,但如果可以通过多个地址访问该网站,则可以使用多个渠道。

相关内容