mininet中的网络实验,数据包走的是内核协议栈。这样得出的结果,好处就是实际网络协议栈的性能。缺点就是,要验证新的想法,需要修改内核协议栈。而且关于内核中的数据,比如tcp的拥塞窗口数据,可以参考[4,5],能否用在mptcp上就不知道了。

[4]tcpprobe, observe the TCP flow with kprobes

http://perthcharles.github.io/2014/12/19/tcp-probe-intro/

[5]PROPORTIONAL RATE REDUCTION FOR TCP

https://reproducingnetworkresearch.wordpress.com/2013/03/14/cs24413-proportional-rate-reduction-for-tcp/

首先检查内核有没有开启MPTCP协议

sudo sysctl -a | grep mptcp

如下成功:

确认MPTCP内核版本号:

dmesg | grep MPTCP

部署不成功的话,什么都不显示;成功的话,参考示例:

设置系统控制变量(sysctl):

sysctl -w net.mptcp.[name of the wariable]=[value]

执行上述命令设置系统控制变量(sysctl),括号里分别用变量名称和变量值替换,具体如下:

  • net.mptcp.mptcp_enabled:该变量控制MPTCP开关,实现MPTCP与传统TCP之间的切换。变量值为0或1(默认为1)。
  • net.mptcp.mptcp_checksum:该变量控制MPTCP传输层中数据序列号校验和(DSS-checksum)的开关,DSS-checksum主要和传输的可靠性相关,只要通信对端中有一端开启,就会执行。变量值为0或1(默认为1)。
  • net.mptcp.mptcp_syn_retries:设置SYN的重传次数。SYN里包含了MP_CAPABLE-option字段,通过该控制变量,SYN将不会包含MP_CAPABLE-option字段,这是为了处理会丢弃含有未知TCP选项的SYN的网络中间件。变量默认值为3。
  • net.mptcp.mptcp_debug:调试MPTCP,控制是否打印debug报告文件。
  • net.mptcp.mptcp_path_manager:MPTCP路径管理,有四个不同的配置值,分别是 default/fullmesh/ndiffports/binder。default/ndiffports/fullmesh分别选择单路、多路或者全路进行传输。其中单路是指跟传统TCP状态一样还是用单一的TCP子流进行传输,多路是当前所有TCP子流中用户选择x条子流数进行传输,全路是指将当前所有可用的TCP子流应用到网络传输中。而binder参考文献 Binder: a system to aggregate multiple internet gateways in community networks。https://dl.acm.org/citation.cfm?id=2502894
  • net.mptcp.mptcp_scheduler:MPTCP子流调度策略,有default/roundrobin两个选项。default优先选择RTT较低的子流直到拥塞窗口满,roundrobin(RR)采用轮询策略。

1. 例如临时关闭mptcp:

2.例如切换调度器为roundrobin

拥塞策略的配置方式为:

sysctl net.ipv4.tcp_congestion_control=lia/olia/wVegas/balia

上述的系统控制变量都是以配置文件的形式存在的,也可以以管理员权限直接修改配置文件中的参数,配置文件的目录为:

/proc/sys/net/mptcp

mptcp协议参数解析相关推荐

  1. 【Twain协议】Twain协议参数解析

    Asynchronous Device Events   异步设备事件 CAP_DEVICEEVENT MSG_SET选择应用程序希望Twain源报告的事件; MSG_RESET返回Twain源的首选 ...

  2. IEC104协议规约解析

    [转载自]<IEC104协议规约解析> 一.四遥信息体基地址范围 104调度规约有1997年和2002年两个版本,在流程上没有什么变化,02版只是在97版上扩展了遥测.遥信等信息体基体址, ...

  3. pelco-d协议数据解析示例

    pelco-d协议数据解析示例 2014-08-14 21:57 286人阅读 评论(0) 收藏 举报 本文章已收录于: 分类: 程序编程(12) 作者同类文章X 代码工人的仓库(36) 作者同类文章 ...

  4. Wayland 协议的解析

    Wayland 首先是一种协议(Compositor 与客户端之间进行通信的协议),然后才是对协议的实现.所以第一步是协议的定义. 1. Wayland 协议的定义 Wayland 协议使用 XML ...

  5. python应用系列教程——python使用scapy监听网络数据包、按TCP/IP协议进行解析

    分享一个朋友的人工智能教程.零基础!通俗易懂!风趣幽默!还带黄段子!大家可以看看是否对自己有帮助:点击打开 docker/kubernetes入门视频教程 全栈工程师开发手册 (作者:栾鹏) pyth ...

  6. python输入正方形边长值、计算其面积_尝试修改列6.2编写命令行参数解析的程序,解析命令行参数所输入边长的值,计算并输出正方形的周长和面积。_学小易找答案...

    [简答题] [单选题]ZigBee 中每个协调点最多可连接______个节点,一个ZigBee网络最多可容纳______个节点.( ) [资料题]DWord-Ans.pdf 索引和目录.pdf 完成效 ...

  7. Go基于I/O多路复用的TCP协议流解析实践

    在<Go经典阻塞式TCP协议流解析的实践>一文中,我们基于Go经典的阻塞I/O模型实现了一个基于TCP流的自定义协议的解析.这种one-connection-per-goroutine模型 ...

  8. lightGBM参数解析及其参数调优

    lightGBM官网中文文档! LightGBM是打比赛如CCF大数据与天池大数据竞赛的经常被使用的模型 一:模型简介 lightgbm是xgboost的加强升级版. LightGBM=XGBoost ...

  9. c语言的tlv协议编解码函数,基于C语言的TLV格式协议快速解析方法与流程

    技术特征: 1.基于C语言的TLV格式协议快速解析方法,其特征在于,在客户机上设有编译器和解析器,在服务器上也设有编译器和解析器,从而使客户机和服务器都同时具备编码能力和解码能力:客户机和服务器通过网 ...

最新文章

  1. 湖北宜昌:老太不慎落入江中 小伙奋勇救人
  2. VJ 1033 整数分解(版本2)
  3. python nonetype object has no_为什么会出现这个?'NoneType' object has no attribute 'contet
  4. Android之调用微信登陆、分享、支付
  5. 【React 基础】之 React 面向组件编程
  6. java nbsp_引用了实体 nbsp
  7. FTP服务器常规操作
  8. 注意cache同时过期问题
  9. openCV实现多人脸检测,多眼部检测,完整代码和详细注释
  10. 如何查看手机里的.db数据库文件
  11. 计算机排名的985大学排名,最新985大学排名榜名单
  12. 万字拆解飞鹤奶粉:4年增收150亿背后的增长策略是什么?
  13. python网盘下载文件_python下载文件的几种常用方法
  14. 八、Linux全套大总结
  15. 软工复习一万字资料大全总结超强无敌版稳过乱过
  16. 北信源内网安全与补丁分发系统简单功能介绍
  17. Hadoop安装配置(转自虾皮工作室)
  18. 动手深度学习v2 多输入多输出通道课后习题
  19. 赢在软件 阿里软件介绍
  20. 混凝土抗压弹性模量自动计算表_混凝土抗压强度计算表(自动算量)

热门文章

  1. “新能源”担纲,IOT云端一体化,阿里集团CTO张建锋兼任阿里云CTO
  2. C语言:数组、字符串长度
  3. 如何用c语言return数组函数
  4. 微信域名屏蔽检测方法 域名被微信封怎么查询
  5. 辜勤华:我在犹太公司的15年
  6. window窗口运行机制
  7. 解决WordPress博客安装插件时提示输入FTP用户名和密码的问题
  8. flyme8.1.5.0A精简内置软件包
  9. 对接企业微信应用jsSDK本地调试
  10. 旋转矩阵、欧拉角、万向锁详解