Facebook resultater af eksperimenter med en ny overbelastningskontrolalgoritme - , optimeret til overførsel af videoindhold. Algoritmen blev foreslået af forskere fra Massachusetts Institute of Technology. COPA-prototypen foreslået til test er skrevet i C++, licenseret under MIT og inkluderet i — en implementering af QUIC-protokollen, der udvikles på Facebook.
COPA-algoritmen er designet til at imødegå udfordringerne ved videotransmission over et netværk. Afhængigt af videotypen har algoritmer til kontrol af overbelastning næsten modsatte krav: interaktiv video kræver minimale forsinkelser, selv på bekostning af kvaliteten, mens bevarelse af kvalitet er en prioritet, når man udsender video i høj kvalitet. Tidligere var applikationsudviklere begrænset til at bruge forskellige algoritmer afhængigt af kvalitets- eller forsinkelseskrav. Forskerne, der udviklede COPA, forsøgte at skabe en universel algoritme til TCP-kontrol af overbelastning under videotransmission, der kunne justeres afhængigt af kravene til videoen.
Algoritmen til kontrol af overbelastning fungerer ved at bestemme den optimale balance, når der sendes pakker - at sende for mange pakker kan føre til pakketab og en ydeevneforringelse på grund af behovet for at sende dem igen, mens at sende for langsomt fører til forsinkelser, hvilket også påvirker ydeevnen negativt. QUIC-protokollen blev valgt til eksperimenterne, da den tillader implementering af algoritmerne til kontrol af overbelastning i brugerområdet uden at forstyrre kernen.
For at forhindre overbelastning af kommunikationskanaler bruger COPA modellering af kanalkarakteristika baseret på analysen af ændringer i forsinkelser under pakkelevering (COPA reducerer størrelsen af overbelastningsvinduet, efterhånden som forsinkelserne øges, og manipulerer det faktum, at forsinkelser begynder at stige selv på stadiet før pakketab opstår). Balancen mellem forsinkelser og gennemløb justeres ved hjælp af en speciel delta-parameter. Forøgelse af delta øger følsomheden over for forsinkelser, men reducerer gennemløbet, mens faldende delta giver mulighed for højere gennemløb på bekostning af øget latenstid. Delta=0.04 er defineret som den optimale balance mellem kvalitet og latens.
COPA blev testet mod de populære CUBIC- og BBR-algoritmer ved hjælp af Facebook Live-streamingtjenesten. CUBIC-algoritmen bruges som standard i Linux og koger ned til en gradvis stigning i størrelsen af overbelastningsvinduet, indtil der opstår pakketab, hvorefter vinduesstørrelsen rulles tilbage til værdien, før tabet begyndte.
CUBIC lader meget tilbage at ønske, når det kommer til mellemliggende pakkebuffering på moderne netværksudstyr, hvilket forsinker pakketab. Overbelastningskontrolalgoritmen er ikke opmærksom på bufferingen og fortsætter med at øge hastigheden, selvom kanalen allerede er fysisk overbelastet. Usendte pakker bufferes, ikke tabes, og TCP-overbelastningskontrolalgoritmen fungerer kun, når bufferen er fuld, og kan ikke finde den rette balance af flowhastighed, der er relateret til hastigheden på det fysiske link. For at løse dette problem foreslog Google en forbedret BBR-algoritme, der forudsiger den tilgængelige båndbredde gennem successive kontroller og et estimat af round-trip-tiden (RTT).
Ved delta=0.04 var COPAs ydeevne tæt på CUBIC og BBR. I tests udført under højhastighedsnetværksforhold med lave pakketransmissionsforsinkelser opnåede COPA lavere forsinkelser (479 ms) sammenlignet med CUBIC (499 ms), men haltede en smule bagefter BBR (462 ms). Med reduceret forbindelseskvalitet viste COPA de bedste resultater - forsinkelserne var 27 % lavere end ved brug af CUBIC og BBR.
Samtidig har COPA og BBR på en dårlig kommunikationskanal gjort det muligt at opnå markant højere gennemstrømning sammenlignet med CUBIC. Forøgelsen af BBR sammenlignet med CUBIC var 4.8 % og 5.5 %, og COPA - 6.2 % og 16.3 %.
Kilde: opennet.ru
