网络仿真工具Mahimahi的安装和基础用法

简介

Mahimahi是一个网络仿真工具,在Linux容器内外构建一条虚拟管道,并在这个管道中模拟网络时延、丢包和带宽变化。具体的详情请参考:http://mahimahi.mit.edu/

安装

Mahimahi有两种安装方法,一种是通过apt-get安装,一种是通过源码编译安装。如果其中一种失败了,试试另外一种,总有一款适合你。

源码安装

在Ubuntu中,我们可以通过源码编译的方式来运行,分为以下几个步骤:

  1. 准备工作,安装必要的依赖包,可运行以下命令:
    sudo apt-get update -- fix-missing
    sudo apt-get install protobuf-compiler libprotobuf-dev autotools-dev dh-autoreconf iptables pkg-config dnsmasq-base apache2-bin apache2-dev debhelper libssl-dev ssl-cert libxcb-present-dev libcairo2-dev libpango1.0-dev
  2. 获取源码,可运行以下命令:
    git clone https://github.com/ravinet/mahimahi
  3. 编译源码,可逐条运行以下命令:
    cd mahimahi
    ./autogen.sh
    ./configure
    make
  4. 安装,可运行以下命令:
    sudo make install
  5. 检查是否安装成功,可运行以下命令:
    mm-delay 20
    如果出现了[delay 20ms]的字样,说明安装成功。

可能会提示运行:sudo sysctl -w net.ipv4.ip_forward=1,根据提示运行一下即可。
源码编译如果遇到问题,可以再看看这篇博客

apt-get安装

  1. 直接运行以下命令:
    sudo apt-get update -- fix-missing
    sudo apt-get install mahimahi
    通常高版本的Ubuntu支持这种方式,比如Ubuntu 20.04. 这种方式通常非常省事,推荐使用。但旧版本的Ubuntu可能有些问题。

运行

  1. 准备一个发包工具,当然你也可以自己写一个发包程序。这里使用现成的iperf3工具。安装方式为运行以下命令:
    sudo apt-get install iperf3
  2. 打开一个终端(记Terminal 1),运行:
    ifconfig
    记录下IP地址server_ip(通常为100.64.0.*),然后运行iperf3服务端:
    iperf3 -s -p 12345 -i 1
  3. 打开另一个终端(记Terminal 2),运行:
    mm-delay 20 mm-loss uplink 0.01 mm-link traces/Verizon-LTE-short.up traces/Verizon-LTE-short.down --meter-all

/traces/Verizon-LTE-short.up 文件位于mahimahi源码里(记得先下载源码到本地,并cd进入mahimahi目录里)。

在这个终端里,继续运行以下命令:
iperf3 -c server_ip -p 12345 -i 1 -t 120
可以观察从Terminal 1到Terminal 2的数据传输过程中的带宽和时延的动态变化情况。
运行效果如下:

mahimahi运行

切换拥塞控制算法

以reno, cubic, bbr为例。ubuntu默认的拥塞控制算法是cubic, 如果内核是4.9以上,则支持bbr.
以下为配置BBR的方式:
在这里插入图片描述
切换回cubic的方式:
在这里插入图片描述
这样,我们就可以通过mahimahi模拟不同的网络场景,对比reno, cubic, bbr的性能啦!

转载请注明原文地址:https://blog.csdn.net/sbmye/article/details/127137327
更多网络相关知识请访问李彤的博客:https://blog.csdn.net/sbmye

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值