内核模块加载

近来搭建实验环境,需要换一下系统的拥塞控制算法。一般的linux系统默认的tcp拥塞控制算法是cubic和reno,但是我现在需要使用veno、vegas。记录下查找的资料和最后实现方法。

1、查看内核支持的tcp拥塞控制算法

在文件/proc/sys/net/ipv4/tcp_allow_congestion_control,这里列出了现在系统可以切换使用的拥塞控制算法。查看发现,这个文件里只给出了cubic和reno。
想着内核现成支持的算法应该很多,所以到源代码下make menuconfig看看。

2、编译配置内核

为了查看内核源代码所支持的拥塞控制算法,这里到源代码目录make menuconfig看一下。
内核源码路径: /usr/src/linux-headers-3.19.0-25-generic
准备工作:需要安装build-essential, kernel-package, libncurses5-dev三个软件包,直接apt-get install 安装就可以
运行 make menuconfig,出现配置界面。查看Networking suport->Networking options->TCP:advanced congestion control
这里写图片描述
这里看到内核已经把很多算法都编译成模块了。所以接下来找到模块的位置,加载内核模块就可以了

3、内核模块存放路径

  • lsmod 是列出目前系统中已加载的模块的名称及大小等;另外我们还可以查看 /proc/modules ,我们一样可以知道系统已经加载的模块。
  • modinfo 可以查看模块的信息,通过查看模块信息来判定这个模块的用途;
  • 内核模块存放的路径 :/lib/modules/ 3.19.0-25-generic/(这里就是内核版本的名字) 这里面就有所有内核模块,我要找的是和网络有关的,所以在这里的kerner/net/ipv4/里面。在这里就找到了所有算法的.ko文件
    这里写图片描述

4、加载模块

找到.ko文件位置了,使用命令 insmod tcp_veno.ko就可以加载veno算法的模块了。
选择veno算法的方法是修改文件/proc/sys/net/ipv4/tcp_congestion_control 内容,使用命令
echo ‘veno’ >/proc/sys/net/ipv4/tcp_congestion_control
现在,内核就使用veno拥塞控制算法了。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值