Zašto Tor deluje sporije od VPN-a: klikovi nasuprot preuzimanjima
Kašnjenje Tora i VPN-a pogađa različita opterećenja: dijagnostikuj zaglavljenu stranicu pre nego što okriviš propusnost, pa menjaj jednu promenljivu po testu.
Stranice koje deluju zaglavljeno dok preuzimanja idu normalnom brzinom opisuju povratna putovanja, a ne propusnost. VPN dodaje jedan šifrovani skok, a Tor krug dodaje nekoliko, i svaki dodatni skok košta rukovanje pre nego što se pomeri ijedan korisni bajt. Taj trošak se vidi na stranici koja otvara mnogo kratkih veza i gotovo nestaje pri jednom velikom prenosu. Kad obrazac postane vidljiv, rasprava prestaje da bude o tome koji je alat brži.
Simptom upućuje na trošak postavljanja, a ne na kapacitet
Učitavanje stranice je lanac zavisnih razmena: traženje imena, transportno rukovanje, TLS rukovanje, pa prvi zahtev. Svaki skok na putu ubacuje svoje povratno putovanje u taj lanac pre nego što se bilo šta iscrta. Veliko preuzimanje plaća isti trošak postavljanja jednom i zatim struji, i upravo zato se dva opterećenja razilaze.
Čitaj u mrežnom panelu vreme provedeno u čekanju pre prvog bajta, a ne ukupno. Dugo čekanje s kratkim preuzimanjem sadržaja upućuje na povratna putovanja, dok dugo preuzimanje s kratkim čekanjem upućuje na propusnost. Ponovi prema drugom odredištu, jer jedan host iza zauzetog releja ništa ne dokazuje. Kad je prenos dobar a klik spor, sumnjaj na trošak postavljanja mnogo pre nego na propusnost.
Kašnjenje i kapacitet posrću na različite načine
Uzmi dva očitavanja i većina zabune se sama reši. Latencija je fiksni trošak po razmeni, a kapacitet je brzina kroz vreme, pa jedan put može biti dobar u prvom i loš u drugom. Udaljena krajnja tačka s besposlenim procesorom brzo odgovara na mali zahtev i ipak ograničava trajni prenos na ono što njen uzlazni kanal dopušta. Korisnici taj rasep doživljavaju kao brz klik nakon kojeg sledi traka napretka koja jedva mrda.
Testiraj kapacitet trajnim prenosom i gledaj da li se brzina drži stabilno ili testerasto. Testiraj latenciju malim zahtevom ponovljenim mnogo puta i čitaj raspršenje umesto najboljeg uzorka, jer široko raspršenje deluje gore nego što njegov prosek sugeriše. Zabeleži oba broja pre i posle svake promene, inače ćeš kasnije pripisati zaslugu pogrešnoj promenljivoj.
Tretiranje dvaju kao jednog broja proizvodi popravke koje nikad ne pomeraju merenje do kojeg ti je stalo. To je najčešći način da se žalba na latenciju odgovori nadogradnjom propusnosti.
Onion rutiranje dodaje skokove koje nisi odabrao
Tor krug obično koristi tri releja — čuvara, srednji čvor i izlaz — a klijent ih bira iz konsenzusa, ne s mape. Put zato može biti mnogo duži od prave linije do odredišta. Svaki relej nosi i tuđi saobraćaj, pa tvoj tok deli onaj kapacitet koji je tom releju ostao.
Ponovno korišćenje kruga ublažava trošak, jer novi tok može jahati na postojećem krugu umesto da plaća još jednu izgradnju. Klijent koji gradi svež krug za svaki zahtev plaća trošak postavljanja iznova i deluje mnogo gore od onog koji ga koristi ponovo. Izbor izlaza je takođe važan, jer neki izlazi nose teži teret i ništa u sučelju ti ne kaže na koji si sleteo. To deljenje je smisao dizajna i razlog zašto se latencija ne može podesiti na fiksnu vrednost, pa je jedan spor izlaz slab razlog za napuštanje takvog rasporeda.
Promena redosleda lanca menja eksperiment
VPN prvo pa Tor drugo je drugačiji eksperiment od Tora prvo pa VPN-a drugo. U prvom rasporedu VPN krajnja tačka nosi ceo krug, pa tvoja pristupna mreža saznaje samo VPN adresu. U drugom se VPN veza sama nosi unutar lukovitog puta, a izlaz vidi VPN saobraćaj. Oba su legitimni dizajni, a poređenje bilo kojeg s golim VPN-om meri nešto drugo, zato stranica projekta Tor o kombinovanju dvaju to postavlja kao pitanje šta pokušavaš da sakriješ pre nego kao pitanje tajminga.
Drži uređaj, pristupnu mrežu i odredište fiksnim i menjaj tačno jedan element između pokretanja. Premeštanje servera, krugova i testnih hostova zajedno proizvodi razliku koju niko ne može da pripiše. Zapiši šta svaki raspored skriva od koga pre nego što ga optimizuješ, jer brz lanac koji otkriva ono što si hteo da sakriješ nije poboljšanje.
Poređenje koje preživi drugo pokretanje
Izaberi dva ili tri odredišta koja zaista koristiš i izmeri istu interakciju na svakom, uključujući stranicu koja vuče mnogo malih resursa i jedan veliki prenos. Ponovi ceo set u drugi sat dana.
Izvesti medijanu i najgori slučaj umesto najbržeg uzorka, jer se interaktivni rad procenjuje po lošim trenucima. Zabeleži klijenta, krajnju tačku ili izlaz i da li je krug ili tunel ponovo korišćen za to pokretanje. Ako promena poboljša medijanu a pogorša rep, to je razmena, a ne pobeda, i odluka hoće li korisnici to primetiti jeste prava odluka.