copa是mit提出的拥塞控制算法[1],在mvfst[2]中实现。mvfst是facebook实现的quic协议。我把mvfst中实现的代码,移植到ns3[4]平台上,评价一下这个算法的性能。
建立一条点到点的链路,链路带宽3Mbps,单向时延100ms,队列长度300ms。一共测试了三条数据流。收据数据包每次发送时的带宽,以及数据传输到对端时的单向时延。
当网络中三条数据流全是copa协议时,数据流的带宽变化:
数据包传输的单向时延:
评价,当三条流全使用copa作为拥塞控制时,能够保证带宽公平性,数据包传输时延也比较小。
第二条数据流采用BBR拥塞控制协议时,数据流的带宽变化:
数据包传输的单向时延:
第二条数据流采用Cubic拥塞控制协议时,数据流的带宽变化:
数据包传输的单向时延:
结论,当有其他的拥塞控制存在于网络中时,copa的竞争能力不行。低时延拥塞控制算法的通病。
[1] Copa: Practical Delay-Based Congestion Control for the Internet
[2] mvfst
[3] Facebook:对比COPA 与CUBIC,BBR v1在拥塞控制及视频质量的表现
[4] copa simulaiton on ns3
相关文章: