当前位置:网站首页>Evaluate multipath BBR congestion control on ns3
Evaluate multipath BBR congestion control on ns3
2022-08-02 14:12:00 【Soonyang Zhang】
The authors in [1,2] propose a couple BBR congestion control algorithm for multipath transmission.
A dumbbell topology is built to evaluate whether the multipath BBR session can behave friendly to single BBR session. You know, one of the goal of multipath congestion conrol is “do not harm”[3]:
Goal 2 (Do no harm) A multipath flow should not take up more capacity from any of the resources shared by its different paths than if it were a single flow using only one of these paths. This guarantees it will not unduly harm other flows.
/** Network topology
*
* 100Mb/s, 20ms 100Mb/s, 20ms
* n0--------------| |---------------n4
* | 5Mbps/s, 10ms |
* n2------------------n3
* 100Mb/s, 20ms | | 100Mb/s, 20ms
* n1--------------| |---------------n5
*
*
*/
n0--L0--n2--L1--n3--L2--n4
n1--L3--n2--L1--n3--L4--n5
Parameters on each link:
typedef struct
{
uint64_t bps;// bandiwidth
uint32_t msDelay;//propagation delay
uint32_t msQdelay; //maxmium buffer length bps*msQdelay
}link_config_t;
Four flows are tested. And flow1 and flow4 are two subflows of a multipath session. flow2 and flow3 take origin BBR for rate control. flow1 and flow2 take route(n0->n4). flow3 and flow4 take route(n1->n5).
Test on two paths with same propagation delay
Link configuration on above dumbbell topology
link_config_t p4pLinks[]={
[0]={100*1000000,20,200},
[1]={5*1000000,10,200},
[2]={100*1000000,20,200},
[3]={100*1000000,20,200},
[4]={100*1000000,20,200},
};
When flow1 and flow4 follow the congestion control rule of couple BBR.
The sending rate of each flow:
Packets received rate, here mp denotes the total throughput of the multipath session:
When flow1 and flow4 perform congestion control seperately.
The sending rate of each flow:
Packets received rate(calculated at every 5 seconds):
Comments
The couple BBR session indeed behaves friendly to single path BBR.
Test on two paths with different propagation delay
Link configuration on above dumbbell topology
link_config_t p4pLinks4[]={
[0]={100*1000000,10,200},
[1]={8*1000000,10,200},
[2]={100*1000000,10,200},
[3]={100*1000000,20,200},
[4]={100*1000000,20,200},
};
When flow1 and flow4 follow the congestion control rule of couple BBR.
The sending rate of each flow:
Packets received rate:
BBR has a known issue that it flavors towards flows with longer rtt. That’s the reason that flow3 can achieve higher rate than flow2.
When flow1 and flow4 perform congestion control seperately.
The sending rate of each flow:
Packets received rate:
[1] Measurement and Redesign of BBR-based MPTCP
[2] Leveraging Coupled BBR and Adaptive Packet Scheduling to Boost MPTCP
[3] Coupled Congestion Control for Multipath Transport Protocols
[4] mptcp耦合式拥塞控制
[5] C-MPBBR
边栏推荐
- Ubuntu通过apt安装Mysql
- TypeScript
- 使用1D-1D EPE的光波导布局设计工具
- MATLAB绘图命令fimplicit绘制隐函数图形入门详解
- 开心一下,9/28名场面合集
- Detailed explanation of Golang garbage collection mechanism
- Open the door of power and electricity "Circuit" (2): Power Calculation and Judgment
- cmake configure libtorch error Failed to compute shorthash for libnvrtc.so
- 剑指offer:在O(1)时间删除链表结点
- 7.Redis
猜你喜欢
随机推荐
第二十九章:树的基本概念和性质
pygame draw arc
shader入门精要3
仿真结果的格式&定制
px和em和rem的区别
7.Redis
LeetCode 2353. 设计食物评分系统 维护哈希表+set
第三十二章:二叉树的存储与遍历
专硕与学硕
饥荒联机版Mod开发——配置代码环境(二)
Cmd Markdown 公式指导手册
unity Domain Reload & scene Reload 静态变量重置
饥荒联机版Mod开发——准备工具(一)
Article pygame drag the implementation of the method
冷读123
Qt | 播放音频文件 QMediaplayer
pygame image rotate continuously
二叉排序树与 set、map
Unity-PlayMaker
企业的电子签名、私钥签名