MPTCP版本说明
简介
- 参考链接
MPTCP的两个版本
-
MPTCPv0
:- 在
5.6
之前的linux内核版本中并未集成MPTCP相关的源码,需要开发者自行向内核中打入MPTCP的补丁以启用MPTCP
- 在
-
MPTCPv1
:- 在
5.6
及之后的内核版本中,已经集成了MPTCP相关源码,并且MPTCP相关的API也进行了部分修改 - 需要注意的是:即使是
5.6
之后的linux内核也可能并没有编译MPTCP模块,需要在make menuconfig
菜单中选择将MPTCP编译成模块或直接编译近内核,编译方法见后文
- 在
如何确定内核是否支持MPTCP
MPTCPv0
:- 查看
sysctl
配置中是否有MPTCP相关选项,并且mptcp_enabled != 0
root@j:/home/jun# sysctl -a | grep mptcp net.mptcp.mptcp_binder_gateways = net.mptcp.mptcp_checksum = 1 net.mptcp.mptcp_debug = 0 net.mptcp.mptcp_enabled = 2 net.mptcp.mptcp_path_manager = fullmesh net.mptcp.mptcp_scheduler = roundrobin net.mptcp.mptcp_syn_retries = 3 net.mptcp.mptcp_version = 0
dmesg | grep MPTCP
查看是否有MPTCP版本信息
root@jun:/home/jun# dmesg | grep MPTCP [ 0.474229] MPTCP: Stable release v0.95.1
- 查看
MPTCPv1
- 查看
sysctl
配置中是否有MPTCP相关选项,并且mptcp_enabled=1
root@jun:/home/jun# sysctl -a | grep mptcp net.ipv4.tcp_available_ulp = mptcp net.mptcp.add_addr_timeout = 120 net.mptcp.allow_join_initial_addr_port = 1 net.mptcp.checksum_enabled = 0 net.mptcp.enabled = 1 net.mptcp.stale_loss_cnt = 4
-
官方还提供了一个针对
MPTCPv1
的测试程序- 测试程序链接如下
- 编译
gcc mptcphello.c -o mptcp
-
运行,运行时不报错即说明
MPTCPv1
生效./mptcp
- 查看