Evaluating COPA congestion control for improved video performance

engineering.fb.com

FacebookがLive Videoというアプリケーションで、新しい輻輳制御アルゴリズムのCOPAをCUBIC・BBRと比較したという記事です。

COPAを使うことで、goodputとアプリケーションのRTTの2つの観点で、CUBIC, BBRよりも良い結果を得られています。

COPAとBBRはアプリケーションの遅延を減らすだけではなく、より品質が良い動画を提供できるといえそうです。

この記事では、QUIC-CUBIC, QUIC-BBR, QUIC-COPAの3つを比較しています。比較には、goodputの平均とアプリケーションのRTTの平均を用いています。

goodputはアプリケーションが送信したバイト数を時間で割った値です。Facebook Liveセッションは10秒から数分の長さで、その間にgoodputとqueue sizeに応じてビットレートを変更します。 goodputが良ければよいほど、良い品質の動画を遅れることが可能です。再送が発生した場合、再送した情報はアプリケーションの新しいデータではないのでgoodputを向上させません。

アプリケーションのRTTはLiveの取り込み遅延の代わりの値になります。毎秒小さいダミーペイロードをサーバーに投げてそのACKを待ちます。それをもとにRTTを計算しその平均をアプリケーションのRTTとします。もし、ビットレートが同じか高いのであれば、アプリのRTTが短くなるとビデオの取り込み遅延が短くなります。

RTTとgoodput の比較

50パーセンタイルの時は、COPAはCUBICと比較して4%(499ms → 479ms)、BBRはCUBICと比較して8%(499ms→462ms) RTTが減少しています。

f:id:neko--suki:20200118130535j:plain
引用元: https://engineering.fb.com/video-engineering/copa/

90パーセンタイルの時は、COPAがBBRとCUBICの両方よりも低いRTTになっています。CUBIC・BBRと比較すると、27%(5.4ms→3.9ms) となっています。

f:id:neko--suki:20200118130554j:plain
引用元: https://engineering.fb.com/video-engineering/copa/

遅延と同様にCOPAはBBRよりもgoodputを改善することができます。CUBICと比較すると、10パーセンタイルの時にはBBRが4.8%、COPAは5.5%、50パーセンタイルの時は、BBRは5.5%ですが、COPAは16.3%もgoodputを向上させています。

f:id:neko--suki:20200118130749j:plain
引用元: https://engineering.fb.com/video-engineering/copa/