Skip to content

Dynamic MTU prototype with more schedule method to evaluate

License

Notifications You must be signed in to change notification settings

hrQAQ/MtuInMultiEnv-ScheduleMethod

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

APS: Adaptive Packet Sizing for Efficient End-to-End Network Transmission

在ns3模拟器中实现了基于环境的MTU调整算法,该算法在不同的网络环境中自动调整MTU大小,用以提高流完成时间。

1. Features

- 应用层批量发包
    - 发包时计算当前网络环境的bset MTU大小
    - 传输过程中动态调整MTU大小
    - 支持优先队列,优先队列配置了不同的发送概率
    - 支持多种调度算法 (FCFS,RR,SRPT,SJF)

2. Usage

# 编译
./waf configure
./waf build

# 运行(按需修改参数)
./waf --run "datacenter --DELAY=$delay --LOSS_RATE=$loss_rate --BANDWIDTH_LINK=$bandwidth --LOAD=$load --SCHEDULE_METHOD=$method"
./waf --run "mtu_wan --PROPOGATION_DELAY=$delay --LOSS_RATE=$loss_rate --ES_BANDWIDTH=$bandwidth --SS_BANDWIDTH=$bandwidth --LOAD=$load"
./waf --run "mtu_mix --DC_DELAY=$dc_delay --WAN_DELAY=$wan_delay --LOSS_RATE=$loss_rate --BANDWIDTH_LINK=$dc_bandwidth --ES_BANDWIDTH=$wan_bandwidth --SS_BANDWIDTH=$wan_bandwidth --LOAD=$load"

# debug
source env.sh
gdb ./build/scratch/<application-name> <args>

3. Data Analysis

由FlowMonitor统计的数据存放在data目录下,目录结构如下:

❯ tree data
data
├── dc
│   ├── FCFS
│   ├── RR
│   ├── SJF
│   └── SRPT
│       └── FCT(dc)_5us_40Gbps_0.050000_0.700000.xml
├── mix
│   └── SRPT
├── wan
│   └── SRPT
│       ├── FCT(wan)_2.5ms_10Mbps_0.005000_0.500000.xml
│       ├── FCT(wan)_2.5ms_10Mbps_0.005000_0.700000.xml
│       └── FCT(wan)_5ms_10Mbps_0.010000_0.700000.xml

4. Scripts

分析数据和批量执行的脚本存放在script目录下,目录结构如下:

❯ tree script
script
├── csv_parser.py
├── Datacenter.sh
└── xml_parser.py
  • Datacenter.sh是批量执行的脚本,用以在数据中心环境下,设置不同的网络环境下执行不同的调度算法,执行结果存放在data目录下。

  • xml_parser.py用以解析data目录下的xml文件,并计算相应的流完成时间

  • (Duplicate)csv_parser.py用以解析data目录下的csv文件

About

Dynamic MTU prototype with more schedule method to evaluate

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 67.0%
  • C++ 31.9%
  • C 0.5%
  • Perl 0.4%
  • MATLAB 0.1%
  • Makefile 0.1%