Facebook rezultati eksperimenata sa novim algoritmom kontrole zagušenja - , optimiziran za prijenos video sadržaja. Algoritam su predložili istraživači sa Massachusetts Institute of Technology. COPA prototip predložen za testiranje napisan je na C++, licencirano pod MIT-om i uključeno u — implementacija QUIC protokola koji se razvija u Facebooku.
COPA algoritam je fokusiran na rješavanje problema koji se javljaju prilikom prijenosa videa preko mreže. Ovisno o vrsti videa, na algoritme kontrole zagušenja postavljaju se gotovo suprotni zahtjevi - za interaktivni video potrebno je osigurati minimalna kašnjenja, čak i nauštrb kvaliteta, a pri emitovanju unaprijed pripremljenog visokokvalitetnog videa prednost se daje za održavanje kvaliteta. Ranije su programeri aplikacija bili ograničeni na mogućnost primjene različitih algoritama ovisno o zahtjevima kvalitete ili kašnjenja. Istraživači koji su razvili COPA pokušali su stvoriti univerzalni algoritam za upravljanje TCP video zagušenjem koji bi se mogao prilagoditi na osnovu video zahtjeva.
Zadatak algoritma za kontrolu zagušenja je da odredi optimalnu ravnotežu prilikom slanja paketa – slanje previše paketa može dovesti do gubitka paketa i degradacije performansi zbog potrebe za njihovim ponovnim slanjem, a presporo slanje dovodi do kašnjenja, što također negativno utiče na performanse. . Za eksperimente je odabran QUIC protokol, jer omogućava implementaciju algoritama kontrole zagušenja u korisničkom prostoru bez ometanja kernela.
Kako bi spriječio zagušenje komunikacionih kanala, COPA koristi modeliranje karakteristika kanala na osnovu analize promjena u kašnjenjima tokom isporuke paketa (COPA smanjuje veličinu prozora zagušenja kako se kašnjenja povećavaju, manipulirajući time da kašnjenja počinju rasti čak i u fazi prije gubitka paketa) . Balans između kašnjenja i protoka se podešava pomoću posebnog parametra delta. Povećanje delte povećava osjetljivost na kašnjenja, ali smanjuje propusnost, dok smanjenje delta omogućava veću propusnost po cijenu povećane latencije. Delta=0.04 se definiše kao optimalna ravnoteža između kvaliteta i latencije.
COPA je testiran u odnosu na popularne CUBIC i BBR algoritme koristeći Facebook Live streaming servis. CUBIC algoritam se koristi po zadanim postavkama u Linux i svodi se na postepeno povećanje veličine prozora zagušenja sve dok ne dođe do gubitka paketa, nakon čega se veličina prozora vraća na vrijednost prije početka gubitka.
CUBIC ostavlja mnogo da se poželi kod baferovanja paketa na modernoj mrežnoj opremi, što usporava ispuštanje paketa. Algoritam kontrole zagušenja nije svjestan baferovanja i nastavlja povećavati brzinu čak i ako je kanal već fizički zagušen. Neposlani paketi su baferovani, a ne odbačeni, a TCP-ov algoritam za kontrolu zagušenja pokreće se samo kada je bafer pun i ne može uravnotežiti brzinu protoka sa brzinom fizičke veze. Da bi riješio ovaj problem, Google je predložio poboljšani BBR algoritam koji predviđa dostupnu širinu pojasa kroz sekvencijalne provjere i procjenu vremena povratnog putovanja (RTT).
Sa delta=0.04, pokazalo se da su indikatori COPA blizu CUBIC i BBR. U testovima sprovedenim preko mrežne veze velike brzine sa malim kašnjenjima u prenosu paketa, COPA je postigao niže kašnjenje (479 ms) u poređenju sa CUBIC-om (499 ms), ali je malo zaostao za BBR (462 ms). Kada se kvalitet veze smanjio, COPA je pokazao najbolje rezultate - kašnjenja su bila 27% manja nego kod korištenja CUBIC i BBR.
Istovremeno, na lošem komunikacijskom kanalu, COPA i BBR su omogućili postizanje znatno veće propusnosti u odnosu na CUBIC. Porast BBR-a u odnosu na CUBIC iznosio je 4.8% i 5.5%, a COPA - 6.2% i 16.3%.
izvor: opennet.ru
