安装步骤
参考 :http://www.multipath-tcp.org/
首先,添加gpg-apt-key:
sudo apt-key adv --keyserver hkp://keys.gnupg.net --recv-keys 379CE192D401AB61
然后,只需在APT的源文件中添加存储库:
sudo sh -c "echo 'deb https://dl.bintray.com/cpaasch/deb stretch main' > /etc/apt/sources.list.d/mptcp.list"
现在,使用以下命令安装MPTCP:
sudo apt-get update
sudo apt-get install linux-mptcp
并重启机器。
详细:
环境:Ubuntu v18.04桌面版本。
Mininet中的网络实验,数据包走的是内核协议栈。这样得出的结果,就是实际网络协议栈的性能。所以,首先需要在内核协议栈中编入MPTCP源码,并在内核中启用。安装MPTCP协议至协议栈的简要步骤如下:
获取MPTCP源码
# cd /usr/src
# git clone --depth=1 git://github.com/multipath-tcp/mptcp.git
# cd mptcp
配置编译内核
# sudo make menuconfig
编译MPTCP内核
# cd /usr/src/mptcp
# sudo make
编译并安装模块
# sudo make modules_install
安装
# sudo make install
执行以下命令设置系统控制变量(sysctl)
# sudo sysctl -w net.mptcp.[name of the variable]=[value]
MPTCP目录:
图f-1 MPTCP目录
需要修改的调度器模块位于目录:/net/mptcp/mptcp_sched.c
修改好调度器代码后编译后,可以用以下命令修改内核参数:
# sudo sysctl -w net.mptcp.mptcp_scheduler=MGPS
注意:
官网没有说清楚,重启以后要进入新编译好的内核中,在开机的时候选择ubuntu高级选项,找到刚刚编译好的内核,选择进入,如果没有ubuntu高级选项的界面,在重启进入系统的时候按住shift键,界面就会出现:
遇到的问题:
报错:E:Could not get lock /var/lib/apt/lists/lock - open (11: Resource temporarily unavailable)
解决方法:
出现这个问题的原因可能是有另外一个程序正在运行,导致资源被锁不可用。而导致资源被锁的原因,可能是上次安装时没正常完成,而导致出现此状况。
解决方法:输入以下命令
sudo rm /var/cache/apt/archives/lock
sudo rm /var/lib/dpkg/lock
之后再安装想装的包,即可解决
sysctl:
sysctl命令用于运行时配置内核参数,这些参数位于/proc/sys目录下。sysctl配置与显示在/proc/sys目录中的内核参数.可以用sysctl来设置或重新设置联网功能,如IP转发、IP碎片去除以及源路由检查等。用户只需要编辑/etc/sysctl.conf文件,即可手工或自动执行由sysctl控制的功能。
命令格式:
sysctl [-n] [-e] -w variable=value
sysctl [-n] [-e] -p <filename> (default /etc/sysctl.conf)
sysctl [-n] [-e] -a
常用参数的意义:
-w 临时改变某个指定参数的值,如:sysctl -w net.ipv4.ip_forward=1
-a 显示所有的系统参数
-p 从指定的文件加载系统参数,如不指定即从/etc/sysctl.conf中加载