Facebook testuje nowy algorytm kontroli zatorów COPA w porównaniu z BBR i CUBIC

Facebook opublikowany wyniki eksperymentów z nowym algorytmem kontroli zatorów - COPA, zoptymalizowany do przesyłania treści wideo. Algorytm został zaproponowany przez naukowców z Massachusetts Institute of Technology. Zaproponowany do testów prototyp COPA napisany jest w języku C++, otwarty licencjonowane na podstawie MIT i zawarte w mvfst — implementacja protokołu QUIC rozwijanego na Facebooku.

Algorytm COPA koncentruje się na rozwiązywaniu problemów pojawiających się podczas przesyłania wideo w sieci. W zależności od rodzaju wideo algorytmom kontroli zatorów stawiane są niemal odmienne wymagania – w przypadku wideo interaktywnego konieczne jest zapewnienie minimalnych opóźnień, nawet kosztem jakości, a w przypadku emisji wcześniej przygotowanego wideo wysokiej jakości priorytet ma do utrzymania jakości. Wcześniej twórcy aplikacji byli ograniczeni do możliwości stosowania różnych algorytmów w zależności od wymagań dotyczących jakości lub opóźnień. Naukowcy, którzy opracowali COPA, podjęli próbę stworzenia uniwersalnego algorytmu zarządzania przeciążeniem wideo TCP, który można by dostosować do wymagań wideo.

Zadaniem algorytmu kontroli przeciążenia jest określenie optymalnego balansu podczas wysyłania pakietów - wysłanie zbyt wielu pakietów może doprowadzić do utraty pakietów i pogorszenia wydajności ze względu na konieczność ich ponownego wysłania, natomiast zbyt wolne wysyłanie prowadzi do opóźnień, które również negatywnie wpływają na wydajność . Do eksperymentów wybrano protokół QUIC, gdyż umożliwia on implementację algorytmów kontroli przeciążenia w przestrzeni użytkownika bez ingerencji w jądro.

Aby zapobiec przeciążeniu kanału komunikacyjnego, COPA wykorzystuje modelowanie charakterystyk kanału w oparciu o analizę zmian opóźnień podczas dostarczania pakietu (COPA zmniejsza rozmiar okna przeciążenia w miarę wzrostu opóźnień, manipulując tym, że opóźnienia zaczynają rosnąć nawet na etapie przed wystąpieniem utraty pakietu) . Równowagę pomiędzy opóźnieniami i przepustowością reguluje się za pomocą specjalnego parametru delta. Zwiększanie delty zwiększa wrażliwość na opóźnienia, ale zmniejsza przepustowość, natomiast zmniejszanie delty pozwala na wyższą przepustowość kosztem zwiększonych opóźnień. Delta=0.04 jest definiowana jako optymalna równowaga pomiędzy jakością i opóźnieniem.

Facebook testuje nowy algorytm kontroli zatorów COPA w porównaniu z BBR i CUBIC

W oparciu o usługę transmisji strumieniowej Facebook Live COPA została przetestowana w porównaniu z popularnymi algorytmami CUBIC i BBR. Domyślny algorytm CUBIC w systemie Linux polega na stopniowym zwiększaniu rozmiaru okna przeciążenia, aż do wystąpienia utraty pakietów, po czym rozmiar okna jest przywracany do wartości sprzed rozpoczęcia utraty.

CUBIC pozostawia wiele do życzenia w zakresie buforowania pakietów na nowoczesnym sprzęcie sieciowym, co spowalnia utratę pakietów. Algorytm kontroli przeciążenia nie jest świadomy buforowania i nadal zwiększa prędkość, nawet jeśli kanał jest już fizycznie przeciążony. Niewysłane pakiety są raczej buforowane niż odrzucane, a algorytm kontroli przeciążenia protokołu TCP uruchamia się dopiero wtedy, gdy bufor jest pełny i nie jest w stanie zrównoważyć natężenia przepływu z szybkością łącza fizycznego. Aby rozwiązać ten problem, Google zaproponował ulepszony algorytm BBR, który przewiduje dostępną przepustowość na podstawie kontroli sekwencyjnych i szacowania czasu podróży w obie strony (RTT).

Przy delta=0.04 wskaźniki COPA okazały się bliskie CUBIC i BBR. W testach przeprowadzonych na szybkim połączeniu sieciowym z niskimi opóźnieniami w transmisji pakietów, COPA osiągnęła mniejsze opóźnienia (479 ms) w porównaniu do CUBIC (499 ms), ale nieznacznie pozostawała w tyle za BBR (462 ms). Gdy jakość połączenia uległa pogorszeniu, najlepsze wyniki wykazywała COPA – opóźnienia były o 27% mniejsze niż przy zastosowaniu CUBIC i BBR.

Facebook testuje nowy algorytm kontroli zatorów COPA w porównaniu z BBR i CUBIC

Facebook testuje nowy algorytm kontroli zatorów COPA w porównaniu z BBR i CUBIC

Jednocześnie na słabym kanale komunikacyjnym COPA i BBR umożliwiły osiągnięcie znacznie większej przepustowości w porównaniu do CUBIC. Zysk BBR w porównaniu do CUBIC wyniósł 4.8% i 5.5%, a COPA - 6.2% i 16.3%.

Facebook testuje nowy algorytm kontroli zatorów COPA w porównaniu z BBR i CUBIC

Źródło: opennet.ru

Dodaj komentarz