内核模块加载

来源:互联网 发布:新奔腾造价软件 编辑:程序博客网 时间:2024/05/23 09:48

近来搭建实验环境,需要换一下系统的拥塞控制算法。一般的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拥塞控制算法了。

0 0
原创粉丝点击