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

MPTCP(二):MPTCP版本说明的更多相关文章

  1. Git使用(二)版本库创建及文件修改

    一.创建版本库 1.安装完成后,在开始菜单里找到“Git”->“Git Bash”,蹦出一个类似命令行窗口的东西,就说明Git安装成功! 安装完成后,还需要最后一步设置,在命令行输入: $ gi ...

  2. Java进阶(十二)JDK版本错误之Unsupported major.minor version 51.0(jdk版本错误)

    错误:Unsupported major.minor version 51.0(jdk版本错误) 如果在win7下开发项目是使用的jdk版本和项目运行服务器jdk版本不同就会出现上面的问题. 用jdk ...

  3. 作业二 分布式版本控制系统Git的安装与使用

    第一步:Git bash配置 修改用户名和邮箱地址: $ git config --global user.name "zzj" $ git config --global use ...

  4. 【软件工程Ⅱ】作业二 |分布式版本控制系统Git的安装与使用

    本次作业的要去来自于:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/2097 远程库地址:https://github.com/Mol ...

  5. 作业二 —— 分布式版本控制系统Git的安装与使用

    作业要求源于:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE1/homework/2103 1.安装Git,配置用户名与邮箱. 安装Windows版的Git ...

  6. git使用(二)----创建版本库

    创建版本库(操作都是在linux环境下) 什么是版本库呢?版本库又名仓库,英文名repository,其实就是一个目录,可以进行增删查改 创建一个目录,这里在根目录下创建一个git_home目录mkd ...

  7. Git 学习(二)版本库创建

    Git 版本库创建 什么是版本库(repository)? 可理解为文件仓库.由Git管理每个文件的新增.修改及删除,但这个仓库可以追溯历史.可还原至任意历史节点. 版本库创建 创建一个版本库非常简单 ...

  8. Git学习总结二(版本回退)

    修改修改仓库中readme.txt文件,然后用git status命令看看结果: $ git status On branch master Changes not staged for commit ...

  9. Git学习(二)——创建版本库、查看与回退版本

    一.创建版本库 版本库,又名仓库(Repository),可以简单理解为一个目录,这个目录里的所有文件可以被Git管理起来,每个文件的修改.删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者将来某 ...

  10. git-【二】本地git操作提交、版本回退

    一.创建版本库,提交文件 什么是版本库?版本库又名仓库,英文名repository,你可以简单的理解一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改,删除,Git都能跟踪,以便任 ...

随机推荐

  1. 没有 Git,如何下载 Gitee 代码?

    目录 没有 Git,如何下载 Gitee 代码? 注册 Gitee 账号 下载代码压缩包 没有 Git,如何下载 Gitee 代码? 鉴于看我博客的人很多都是大学本科生.非 CS 专业,大部分人都不会 ...

  2. 配置阿里云yum源

    CentOS6 rm -f /etc/yum.repos.d/* wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.co ...

  3. CAEmitterLayer动画的开始和结束

    有个需求,要求模仿微信做表情下雨的动画,一开始想用CAEmitterLayer,实现的代码如下: //期望:显示特效五秒后结束特效 UIImage *image = [UIImage imageNam ...

  4. Kubernetes(七)数据存储

    数据存储 容器的生命周期可能很短,会被频繁地创建和销毁.容器在销毁时,保存在容器中的数据也会被清除.这种结果对用户来说,在某些情况下是不乐意看到的.为了持久化保存容器的数据,kubernetes引入了 ...

  5. 处理 3d 视频的简单理论基础

    背景 公司产品需要满足一些带有3d功能的应用场景,需要需要懂得如何处理3d信号.之前在调试以前产品的时候,发现处理3d信号的时候,是由2个画面叠加起来的. 导言 3D视频(或3D信号)为什么是两个画面 ...

  6. 学习.NET 8 MiniApis入门

    介绍篇 什么是MiniApis? MiniApis的特点和优势 MiniApis的应用场景 环境搭建 系统要求 安装MiniApis 配置开发环境 基础概念 MiniApis架构概述 关键术语解释(如 ...

  7. scala偏函数小栗子

    package cn.beicaiqm.scala.day04 /** * Created by Administrator on 2018/6/1. * 被包在花括号内没有match的一组case语 ...

  8. c++临时对象导致的生命周期问题

    对象的生命周期是c++中非常重要的概念,它直接决定了你的程序是否正确以及是否存在安全问题. 今天要说的临时变量导致的生命周期问题是非常常见的,很多时候没有一定经验甚至没法识别出来.光是我自己写.rev ...

  9. FFmpeg开发笔记(三十八)APP如何访问SRS推流的RTMP直播地址

    ​<FFmpeg开发实战:从零基础到短视频上线>一书在第10章介绍了轻量级流媒体服务器MediaMTX,通过该工具可以测试RTSP/RTMP等流媒体协议的推拉流.不过MediaMTX的功能 ...

  10. 「Pygors跨平台GUI」1:Pygors跨平台GUI应用研究

    「Pygors系列」一句话导读: Python.Go.Rust.C程序跨平台GUI框架研究. 一.问题 Pygors是什么? Pygors是我自己创造的一个词,就是Python.Go.Rust.C四种 ...