De ce ai ping mare chiar și pe fibră
Săptămânal ne scrie cineva că plătește o linie de un gigabit și tot are 120 ms în joc. Cele două cifre n-au aproape nicio legătură între ele, iar odată ce vezi de ce, restul nu mai pare deloc misterios.
Lățimea de bandă nu e latență
Lățimea de bandă înseamnă cât de lată e țeava. Latența înseamnă cât de lungă e țeava. Trecerea de la 100 Mbps la 1 Gbps face țeava mai lată — o descărcare se termină mai repede — dar un pachet tot trebuie să parcurgă aceeași distanță fizică, prin aceleași routere, la aproximativ două treimi din viteza luminii în fibră.
Un joc vechi de LAN trimite pachete mici, adesea sub 200 kbps pe jucător. N-a fost limitat niciodată de lățimea ta de bandă. E limitat în întregime de cât durează să ajungă fiecare dintre pachetele alea mici și de cât de constant ajung.
Unde se duc milisecundele
Un buget aproximativ pentru un jucător din București care se conectează la un host din Berlin, într-o zi bună:
| Etapă | Tipic | De ce |
|---|---|---|
| De la PC la router | 0,3–1 ms | Cablu. Pe Wi-Fi devine 2–15 ms și sare de colo-colo. |
| De la router la furnizor | 2–6 ms | Bucla locală. Aici fibra chiar e mai bună decât cablul TV sau DSL-ul. |
| Prin rețeaua furnizorului | 3–10 ms | Depinde cât de bine face peering. |
| București–Berlin, fizica | ~9 ms | 1.300 km la două treimi din viteza luminii. Nimic nu bate asta. |
| Ocolișuri de rutare | 0–60 ms | Partea interesantă. Traficul trece des prin Viena, uneori prin Londra. |
| Cozi pe legături aglomerate | 0–40 ms | Vârful de seară. De aici vine și jitter-ul. |
| Linia hostului | 1–30 ms | Wi-Fi-ul și uploadul lui sunt și problema ta. |
Adună tot și ajungi ușor la 120 ms fără ca ceva să fie stricat. Partea de fizică e de 9 ms. Tot ce e peste vine din rutare și din cozi, adică exact partea care se poate schimba.
Regulă practică: dacă pingul tău către un host e de peste trei ori mai mare decât estimarea fizică în linie dreaptă, nu ai o problemă de distanță. Ai o problemă de traseu.
Ce poți repara efectiv
Renunță la Wi-Fi
În majoritatea caselor, ăsta e cel mai mare câștig și e gratuit. Wi-Fi-ul adaugă în medie câteva milisecunde, dar multă variație, iar variația e cea care face ca un shooter să se simtă prost. Douăzeci de milisecunde de jitter sunt mai rele decât patruzeci de milisecunde de ping constant.
Scapă de coada de la propria ușă
Dacă cineva din casă face upload, pachetele tale așteaptă în spatele alor lui. Majoritatea routerelor moderne au SQM sau fq_codel la QoS. Activarea te costă câteva procente din viteză și elimină mare parte din bufferbloat.
Schimbă traseul
Nu-i poți cere furnizorului să facă peering mai bun, dar poți trimite traficul printr-un alt set de noduri. Asta e toată ideea din spatele rutării LanOrbit: măsurăm continuu mai multe trasee, îl folosim pe cel care răspunde cel mai repede chiar acum și schimbăm când se degradează. În exemplul București–Berlin de mai sus, asta coboară de obicei de la 120 ms undeva pe la 30.
Ce nu poți repara
Distanța. Dacă hostul e în Sydney, 250 ms e pragul minim și niciun produs de pe pământ nu-l schimbă — cine susține altceva încearcă să-ți vândă ceva. La fel, uploadul hostului: dacă are 1 Mbps upload și opt jucători în cameră, suferă toată lumea, iar soluția e să găzduiască altcineva.
Cum măsori corect
Un test de viteză din browser îți spune ceva despre TCP până la un CDN din apropiere. Nu-ți spune nimic despre UDP până la calculatorul cu care joci de fapt. Dă ping direct la host dacă poți, urmărește variația, nu media, și verifică pierderile pe parcursul a câteva minute, nu a câtorva secunde. Pagina noastră de test de ping îți arată partea dinspre noduri, iar aplicația măsoară restul după ce o instalezi.