Ideja da se dva internet linka, na primer jedan od 500 Mbps i drugi od 200 Mbps, jednostavno povežu u ruter i magično daju brzinu od 700 Mbps pri preuzimanju fajla, jedan je od najčešćih mitova u mrežnom inženjeringu. Iako na papiru takav zahtev korisnika ili menadžmenta deluje logično, arhitektura TCP/IP protokola na ivici mreže ne funkcioniše po principu prostog sabiranja protoka. Spajanje više internet linkova bez učešća samog provajdera i tehnika poput LACP-a ili BGP multihoming-a, oslanja se isključivo na balansiranje saobraćaja, odnosno Load Balancing.
Glavni problem sa naivnim pristupom balansiranju je priroda TCP sesija. Kada vaš računar uspostavi komunikaciju sa udaljenim serverom, on očekuje konzistentnost. Ako bi ruter ravnomerno delio pojedinačne pakete iste konekcije preko dva različita internet provajdera, odredišni server bi te pakete dobijao sa dve različite javne IP adrese, često van originalnog redosleda. Server bi ovakav saobraćaj posmatrao kao grešku u prenosu ili potencijalni napad, što bi rezultiralo trenutnim prekidom konekcije.
Najpouzdaniji metod za distribuciju saobraćaja preko više linkova, koji je standard na naprednoj mrežnoj opremi poput MikroTik rutera, jeste Per-Connection Classifier (PCC). PCC rešava problem asimetrije i pucanja sesija tako što ne deli pakete, već kompletne konekcije, oslanjajući se na jednostavnu ali izuzetno efikasnu matematiku.
PCC algoritam uzima specifične parametre iz zaglavlja svakog paketa, najčešće izvornu i odredišnu IP adresu (src-address i dst-address), a po potrebi i portove. Ove vrednosti se propuštaju kroz heš algoritam koji generiše jedinstvenu 32-bitnu vrednost. Zatim se ta vrednost deli sa brojem raspoloživih putanja, uvažavajući težinski faktor asimetričnih linkova, pomoću modulo operacije. Ostatak pri deljenju koji ova operacija daje predstavlja egzaktan pokazatelj ruteru preko kog WAN interfejsa ta konekcija mora da izađe.
Upravo ovaj matematički pristup obezbeđuje sigurnost i stabilnost osetljivih servisa poput e-bankinga. Svaki put kada pristupate portalu banke, heš vrednost vaše lokalne IP adrese i IP adrese bankinog servera biće identična. Modulo operacija će dati isti ostatak, i ruter će kompletnu komunikaciju sa bankom rutirati isključivo preko provajdera broj jedan. Kada bi ruter nasumično menjao linkove za istu konekciju, banka bi detektovala promenu vaše IP adrese usred sesije i automatski bi vas izbacila iz sistema iz bezbednosnih razloga.
Da bi se ovaj proces odvijao u realnom vremenu bez opterećivanja procesora rutera, PCC kalkulacija se ne radi za svaki pojedinačni paket. Matematika se primenjuje samo na prvi paket koji inicira novu konekciju. Čim ruter donese odluku o ruti, on koristi sistem za praćenje konekcija (Connection Tracking) i dodeljuje specifičan "connection mark". Svi naredni paketi koji pripadaju toj sesiji zaobilaze PCC kalkulaciju i automatski prate već markiranu putanju.
Zato je važno razumeti pravu prirodu Load Balancing-a. Spajanje dva linka neće omogućiti jednom korisniku da obori brzinski rekord na Speedtest-u preko jedne konekcije. Matematika koja stoji iza PCC metoda dizajnirana je da skalira kapacitet celokupne mreže. Brzina se ne sabira po uređaju, već po ukupnom broju paralelnih sesija, omogućavajući da stotine korisnika u mreži istovremeno iskoriste pun kapacitet svih dostupnih linkova, uz besprekornu stabilnost.
Nema komentara