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が減少しています。
90パーセンタイルの時は、COPAがBBRとCUBICの両方よりも低いRTTになっています。CUBIC・BBRと比較すると、27%(5.4ms→3.9ms) となっています。
遅延と同様にCOPAはBBRよりもgoodputを改善することができます。CUBICと比較すると、10パーセンタイルの時にはBBRが4.8%、COPAは5.5%、50パーセンタイルの時は、BBRは5.5%ですが、COPAは16.3%もgoodputを向上させています。