7.611 pregleda

Switching i routing: jučer, danas, sutra (drugi dio)

0

U nizu članka autor Hrvoje Horvat upoznat će nas s osnovama i načinom rada switcheva (preklopnika) i routera (usmjernika), te će podijeliti brojne korisne savjete iz praktičnog iskustva.

U dizajnu switcheva u pravilu postoje dva pristupa:

  1. CPU + Switching chip ili
  2. CPU + Switching chip + ASIC.

Već kod standardnih switcheva (koji odluke o preklapanju donose na OSI sloju 2), funkcionalnosti koje su implementirane uswitching chipovenisu dostatne za sve operacije koje jedan switch treba podržavati, već su uglavnom implementirane najrudimentarnije funkcije. Čak i kontrolu za dobar dio  mrežnih protokola mora odraditi CPU. Važnost odabira dobrog “switching chipa” je krucijalna budući da dobar dio njih već u nižoj srednjoj klasi nudi dobar dio funkcionalnosti implementiran u sam chip. Time se rasterećuje CPU koji ionako nije sposoban za obavljanje tih zadataka na gigabitnim brzinama.

I ovdje imamo veliku raznolikost. Prva varijanta: više manjih i slabijih switching chipova povezanih preko zajedničke sabirnice (slika dolje).

 

Ovakav dizajn mnogi koriste jer drastično snižava cijenu. Problemi su uglavnom sporost sabirnice te samim time komunikacija između switching chipova. U ovom slučaju sve ide donekle brzo u komunikaciji između portova 1- 4, u komunikaciji između portova 5-8, te između portova 9-12. U slučaju da komunikacija treba ići između portova koji su na različitim switching chipovima – nastupa problem odnosno usporavanja.

Dodatna je mana u tome što se u ovoj (najgoroj) varijanti ugrađuju switching chipovi koji nemaju gotovo nikakve funkcionalnosti osim onih najosnovnijih. Ispravno bi bilo da ih proizvođači niti ne omogućavaju, no u praksi nailazimo na uređaje koji podržavaju cijelu gomilu funkcionalnosti i protokola ali koriste ovakav dizajn u kojemu na kraju većinu toga mora odraditi CPU pa se uređaj počinje ponašati užasno usporeno.

Druga varijanta je upotreba naprednijih switching chipova, koji podržavaju više funkcionalnosti kao i neke mrežne protokole, a uz to pokrivaju veći broj portova zbog čega komunikacija ne mora ići preko još uvijek spore sabirnice. Taj je model vidljiv na slici:

 

Problem oba ova modela je još uvijek odabir prilično slabih switching chipova te prebacivanje previše funkcija na CPU (naravno, preko iste sabirnice). Najčešći je odabir CPU-a za switcheve iz područja ARM ili MIPS arhitekture procesora, koji za vrlo nisku cijenu i malu potrošnju energije nude solidne karakteristike. Nažalost, u svijetu u kojemu su potrebne analize i obrade svakog pojedinog mrežnog paketa – dakle switchinga (Layer 2) ili routinga (Layer 3 i 4), pogotovo na gigabitnim brzina, ovi procesori ne nude zadovoljavajuće brzine obrade paketa. Stoga mnogi odabiru procesore sa što više jezgri.

Dodatni problem je i u tome što recimo specifikacija koja govori da se koristi ARM procesor na 1GHz ne znači zapravo ništa. Da malo razjasnim: ARM nije model ili tvrtka koja u  konačnici proizvodi procesore. Tvrtka ARM zapravo dizajnira procesore. Dakle, bilo koji proizvođač može kupiti licencu za ARM dizajn i arhitekturu procesora te ga i izraditi. I tih ARM licenci (dizajna) ima cijelo čudo:

  • Cortex-A (A72, A57, A17, A15, A53, A35, A7, …,
  • arhitekture ARM v7, ARM v8, …),
  • Cortex-R (R4,R5,R7, …),
  • Cortex-M (…).

Postoji samo nekoliko velikih proizvođača koji izrađuju ARM procesore (a postoji na desetke onih za koje ih izrađuju) prema ARM licenci i prema željama onih koji ih naručuju (uključite ovo, isključite ono, dodajte ovu funkcionalnost, izbacite onu, …). U tome zapravo leži dio problema. Neki procesori imaju mnoge dobre funkcionalnosti ali su malo skuplji, dok neki imaju samo najosnovnije ali su jeftiniji… ne moram dalje pričati. Uostalom, pogledajmo “proizvođače” ili  proizvođače ARM procesora za pametne telefone –  lista je dugačka.

Gruba računica govori da prosječan ARM Cortex-A procesor takta 1GHz po moći obrade mrežnih paketa jednak je Pentium 3 procesoru radnog takta 300MHz.

 

 

Preporuka za routing

Ako pogledamo Multilayer funkcionalnosti (vrijedi za routere ali i multilayer switcheve), neke generalne preporuke za CPU snagu su (na osnovi samo dva interface-a – WAN i LAN):

  • CPU: Pentum 4 klasa, 2GHz, 100-500Mbps (ovisno što se sve treba procesirati), možemo zaključiti:
    • 6 x ARM CPU na 1 GHz = 1 x Pentium 3 CPU na 2 GHz (budimo jako optimistični pa recimo da je Pentium 3 = Pentium 4).
    • Dakle 6 x ARM 1Ghz je dovoljno za max 2 mrežna interfacea brzine procesiranja između 100Mbps i 500Mbps.
    • Za 1Gbps u najboljem slučaju to znači 12 x ARM 1GHz CPU za 1Gbps propusnosti između dva mrežna interface-a.

Budući da 1Gbps omogućava “Full duplex” rad, to znači da nam je za popunjavanje pune propusnosti 2 mrežna interfacea koja oba rade u “Full duplex” načinu rada potrebna propusnost od 4Gbps. To znači 12 x ARM 1GHz x 4 =  48 Core ARM CPU na 1GHz.

Ako uzmemo u obzir da su switchevi koji se najčešće koriste, minimalno sa 24 x 1Gbps porta, to bi značilo da bi morali imati 576 Core ARM CPU na 1GHz. To je računica u slučaju da switching chip ne odrađuje veći dio funkcionalnosti – što je i slučaj kod niže do niže srednje  kategorije ovih chipova. Ako i ovdje budemo optimistični pa kažemo da switching chip odrađuje 50% potrebnih funkcionalnosti tada nam je za sve navedeno potrebno “samo”  288 Core ARM CPU na 1GHz.

Ovakav pristup zapravo i imaju neki od proizvođača switcheva odnosno multilayer switcheva ali pri tome nisu došli niti blizu broja CPU jezgri koje bi bile potrebne za brzine o kojima smo govorili.

 

 

Sabirnica

Pri svemu ovome nisam niti spominjao brzinu sabirnice između switching chipa i CPU-a, koja bi morala moći podnjeti sve ove brzine, kao i brzine memorijske sabirnice, te u konačnici RAM memorije koja bi to morala također moći podnjeti. Probajmo kratko analizirati i to:

  • Switch sa 24 x 1Gbps portova mora imati minimalnu unutarnju propusnost od 48Gbps (zbog full duplexa).
  • Brzina od 1Gbps = znači maksimalno 125MB/s.
  • Full duplex 1Gbps je maksimalno 250 MB/s.
  • U ovom slučaju 48Gbps = 125 MB/s * 48 = 6.000 MB/s = 5.8 GB/s.

Sjetimo se samo da recimo Intel Skylake arhitektura sa pripadajućim Z170 chipsetom ima maksimalnu propusnost sabirnice između CPU-a i “Southbridgechipseta (DMI v.3.0) od nekih 4 GB/s. U ovom slučaju niti Intelova 6 generacija Pentium 4 procesora (i5-6xxx ili i7-6xxx) nema dovoljnu propusnost za takvo što. Memorisjka sabirnica u ovom slučaju ima propusnost od 34 GB/s pa bi ona zadovoljila ali nedostaje brzine prema “Southbridge” dijelu na koji je spojena mreža. Za više informacija o arhitekturi računala pogledajte ovdje.

Probajmo sada “odokativno” izračunati koji Intel Pentium 4 CPU bi bio potreban za to:

  • Ako je 2GHz jedan CPU core dovoljan za 500Mbps obrade, trebaju nam 2 CPU core za 1Gbps odnosno 4 CPU core za 1Gbps full duplex.
  • Dakle, trebalo bi nam samo 96 CPU core Intel Pentium 4 na 2GHz, ako imamo CPU na 4GHz tada bi nam trebalo samo 48 CPU core Intel Pentium 4 i još 1.8GB/s brža sabirnica prema “Southbridgechipsetu i mrežnim karticama.

Mislim da je sada sve jasno. Osim toga, koliko god procesor bio brz, baratanje mrežnim paketima će se i dalje događati unutar granica milisekundi. Pozitivno je da ipak određeni postotak obrade paketa uspije odraditi switching chip ali na kraju sve ovisi o proizvođaču koji je točno model switching chipa odabrao (odnosno koliko je bio spreman platiti – mada su često razlike u cijeni smiješne – razlika od 1$ na milijun primjeraka je milijun $). Samo ću reći da postoje proizvođači i “proizvođači”. Čak ovisi i o seriji tj. modelu uređaja gdje proizvođač za relativno malu razliku od nekoliko stotina KN ili malo više nudi poprilično više (ili manje).

 

Postoji  li rješenje?

Zbog ovih ograničenja većina “jačih” proizvođača počela je tražiti rješenje koje stvarno može riješiti ovaj problem vrlo loše propusnosti switcheva (i jačih verzija routera). Rješenje je implementacija tzv. ASIC chipova. Ova ideja zapravo nije nova – u širokoj upotrebi je barem desetak, samo što je u današnje vrijeme postalo široko dostupno (i relativno jeftino).

 

 

 

Autor: Hrvoje Horvat

Članak preuzet, uređen i objavljen uz izričito dopuštenje autora.

Izvor: Open Source Osijek

VN:F [1.9.22_1171]
Rating: 0.0/5 (0 votes cast)

Povezani članci:

Podsjetnik za sve!
Switching i routing: juče...
Switching i routing: juče...
Budi dobar susjed, dijeli...
Projekt Kanta: Minecraft ...

Ostavi komentar

© 2017 Linux Za Sve. | Impressum | Sadržaj je licenciran pod CC-SA-3.0 ako nije drugačije naznačeno.
Proudly designed by Theme Junkie.