Skip to content

Repository files navigation

介绍

这是李芝塬的本科毕业设计。 本程序可以模拟ATP/switchML算法在面对网络丢包时的性能。仅模拟网络丢包,不考虑网络拥塞、吞吐量。是一个初学者水平的程序。 更详细的内容见毕业论文。为了避免查重的问题,毕业论文暂不公开,可联系作者:zhiyuanli.0122[at]outlook.com

项目设计

本项目分为模拟程序(C++)、网络脚本(Bash)、测试脚本(Python) 其中:

  1. 模拟程序可以模拟ATP/SwitchML算法单次运行。每次运行结束时,输出模拟算法的运行时长。
  2. 网络脚本负责创建网络环境、设置丢包率与丢包模型等
  3. Python脚本负责调用以上两种程序,自动化测试并输出结果至csv文件

运行

配置要求

项目 配置信息
CPU x86
操作系统 Ubuntu 20.04.6 LTS
g++ 9.4.0
spdlog 1.5.0
Python 3.8

其中spdlog可使用apt安装

模拟程序

  1. 确定参数:Worker数量n,slot/Aggregator数量s,迭代次数i,时间阈值t,日志等级l,丢包率
  2. 创建veth:sudo bash createVeth.sh 10,其中结尾的数字等于n
  3. 设置丢包率:sudo bash set_loss.sh 1,其中数字代表丢包率,例如1表示1%
  4. 编译程序:进入程序的根目录,例如ATP/或switchML/,运行./compile.sh
  5. 运行模拟程序:sudo ATP [参数]sudo switchML [参数]。可使用--help获取帮助

测试脚本

使用Python自动批量化测试模拟程序 sudo python3 XX.py即可

注意事项

  1. 所有模拟程序有小概率卡死,一直无法结束,此bug无法修改。所以在Python脚本中需要检测这种情况并kill残余的进程
  2. 自行修改文件路径,包括脚本路径、ELF文件路径等
  3. 注意权限:除编译外,所有命令都需要sudo权限

About

毕业设计

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages