MPTCP(二):MPTCP版本说明

MPTCP版本说明

简介

  • 参考链接

https://github.com/multipath-tcp/mptcp_net-next/wiki

MPTCP的两个版本

  • MPTCPv0:

    • 5.6之前的linux内核版本中并未集成MPTCP相关的源码,需要从MPTCP官网获取对应版本的linux内核
  • MPTCPv1:

    • 5.6及之后的内核版本中,已经集成了MPTCP相关源码,并且MPTCP相关的API也进行了部分修改
    • 需要注意的是:即使是5.6之后的linux内核虽然集成了MPTCP的源码,但是可能并没有编译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的测试程序

      • 测试程序链接如下

      https://github.com/mptcp-apps/mptcp-hello

      • 编译
      gcc mptcphello.c -o mptcp
      
    • 运行,运行时不报错即说明MPTCPv1生效

      ./mptcp
      
posted @ 2023-05-07 18:48  zhijun  阅读(880)  评论(0编辑  收藏  举报