Upravo ste kupili server s namjenskim kanalom koji jamči isporuku 1Gbit/s (ili više) i razočarani ste kada otkrijete da prijenosi datoteka nisu tako brzi kako ste očekivali. Prije nego što napišete tehničkoj podršci i potražite mrežne probleme, pokušajte procijeniti stvarnu TCP propusnost s jednog hosta na drugi.
Postoje dva najvažnija faktora za uspješan prijenos podataka putem TCP-a:
- Veličina TCP prozora - je broj bajtova koje će jedna strana prihvatiti bez potvrde;
- Kružno kašnjenje prijenosa-prijema (latencija) - vrijeme potrebno za slanje paketa i potvrdu njegove isporuke.
- Poznavanje obje ove stvari omogućit će vam izračun maksimalne moguće propusnosti koja se može podijeliti između dva hosta, neovisno o propusnosti.
Formula za izračun TCP propusnosti
TCP propusnost (bits/s) = Veličina TCP prozora (bits) / Kružna latencija (s)
Razložimo to jednostavnim primjerom. Imamo gigabitnu Ethernet vezu između servera s kružnom latencijom od 30 ms. Trebamo poslati veliku datoteku s jednog servera na drugi server putem FTP-a. Koju stvarnu propusnost možemo očekivati?
Prvo trebate pretvoriti veličinu TCP prozora iz bajtova u bitove. U ovom slučaju, koristit ćemo standardnu veličinu TCP prozora Windows stroja od 64 KB = 65 536 B = 65 536 * 8 = 524 288 bitova.
Zatim trebate uzeti veličinu TCP prozora u bitovima i podijeliti je s kružnom latencijom kanala, izraženom u sekundama. Za potrebe ovih izračuna, 30 ms pretvara se u 0.030 s.
Maksimalna TCP propusnost = 524,288 bitova / 0.030 s = 17,476,266 bps = 17.4 Mbps
Iako postoji gigabitna Ethernet veza između dva servera, ne možete očekivati više od 17 Mbit/s prilikom prijenosa datoteka.
Kako možemo učiniti mrežu bržom? Odgovor je očit: povećati veličinu TCP prozora i/ili smanjiti kašnjenje signala.
Za pregovaranje veće veličine TCP prozora potrebna je individualna ručna konfiguracija svakog servera. To, zauzvrat, dovodi do sljedećeg pitanja: koja je optimalna veličina TCP prozora? Da biste to saznali, potrebno je napraviti obrnuti izračun temeljen na propusnosti.
Formula za izračun optimalne veličine TCP prozora
Veličina TCP prozora (bajti) = Veličina TCP prozora (bitovi) / 8 = Propusnost (bits/s) * Kružna latencija (s) / 8
U gornjem primjeru za gigabitnu Ethernet rutu između servera s kružnom latencijom od 30 ms, dobiva se sljedeća vrijednost:
1,000,000,000 bits/s * 0.030 s = 30,000,000 bitova / 8 = 3,750,000 bajtova.
Drugim riječima, ako konfigurirate oba servera za TCP prozor od 3,750 KB, FTP veza će potpuno popuniti propusnost i postići propusnost od 1 Gbit/s.
Trebali biste biti svjesni da povećanje veličine TCP prozora ima svoje nedostatke.
Prvo, zahtijevat će više memorije za međuspremanje servera, što je potrebno za pohranu nepotvrđenih podataka u slučaju da je prisutno.
Drugo, povećana veličina TCP prozora može rezultirati više izgubljenih paketa, što zauzvrat zahtijeva ponovno slanje cijelog prozora. To može imati negativan utjecaj na performanse. Za rješavanje ovog problema, TCP/IP stack servera može aktivirati opciju "selektivnog priznanja", koja je onemogućena po zadanim postavkama.
Kako bi se riješio problem, WAN Acceleratori - pedale za ubrzanje globalne mreže - mogu biti postavljeni na oba kraja linije. Mogu učiniti sljedeće:
- Otvoriti prošireni TCP prozor;
- pružiti mogućnost fine optimizacije TCP protokola (npr., selektivno priznanje samo između pedala za ubrzanje);
- ne zahtijevaju posebnu konfiguraciju servera ili dodatnu memoriju međuspremnika;
- mogu koristiti posebne funkcije aplikacijskog sloja OSI modela (Layer 7 - pristup mrežnim uslugama) za smanjenje kružne latencije.
Latencija
Želite smanjiti kašnjenje signala? Može li se to u načelu učiniti? Budući da ne možemo prevladati brzinu svjetlosti, ne možemo utjecati na to koliko dugo traje signalu da prijeđe određenu udaljenost. Najbolji način za optimizaciju cijelog sustava je instalirati WAN-accelerator na svakom kraju linije, koji prenosi primljene TCP-pakete lokalnom serveru, time ga "varajući" o stvarnoj stopi prijenosa podataka. Umjesto čekanja zakasnelog odgovora od udaljenog servera, lokalni server prima trenutna priznanja od pedale za ubrzanje. To nas spašava od potrebe za podešavanjem veličine TCP prozora na samim serverima. Par WAAS uređaja koristi povećanu veličinu TCP prozora i selektivna priznanja preko cijelog segmenta linije.
Uz to, WAAS učinkovito pročišćava TCP stream od suvišnih podataka, pružajući iznimno visoku razinu kompresije. Svaka pedala za ubrzanje pamti prethodno pregledane podatke. Ako se duplikat fragmenta ponovo pojavi, uklanja se i zamjenjuje sitnom oznakom od 2 bajta. Ovu sićušnu oznaku prepoznaje udaljena pedala za ubrzanje, koja umeće originalni fragment podataka na njegovo mjesto prije slanja prometa lokalnom serveru.
Dokazani rezultat optimizacije je veća propusnost između servera bez ikakve posebne TCP podešavanja lokalnih servera.
Formula za izračun maksimalno dopuštenog kašnjenja za danu propusnost
Primjer. Na stranici između dva udaljena servera, morate jamčiti 10 Gbps FTP propusnost koristeći standardnu veličinu TCP prozora (64KB). Koja je maksimalna latencija signala dopuštena?
Kružna latencija (ms) = Veličina TCP prozora (bitovi) / potrebna propusnost (bps)
524,288 bitova / 10,000,000 bps = 52.4 mikrosekunde
Što učiniti?
U osnovi, ne trebate povećavati TCP prozor ili instalirati WAN pojačivače. Samo koristite višenitnost i možete koristiti kanal na 100% njegove propusnosti!