Introduzione
Cosa fa esattamente un router? E come lo fa? Anche se la risposta alla prima domanda può essere relativamente semplice - un router indirizza pacchetti di dati attraverso le reti - la complessità è capire "come" lo fa. I router sono disponibili in molte forme e dimensioni: una stanza piena di rack, sistemi dedicati al cloud aziendale; dispositivi commerciali di produttori come Linksys o D-Link e soluzioni fai da te costruite su piattaforme come Raspberry Pi.
Lasciando da parte il sistema di scambio dei pacchetti, l'hardware un moderno router commerciale - destinato alle piccole imprese e al mercato casalingo - è differente da quello delle soluzioni enterprise o per specifiche applicazioni. In particolare, quel tipo di router pone l'accento sulla convenienza. Esistono singoli prodotti che agiscono come un modem DSL, router, access point wireless, media server e altro. Processore e connettività sono orientati verso un profilo totalmente diverso (uso a elevato bandwidth per gaming e streaming, insieme a connessioni simultanee da più dispositivi, inclusi smartphone e frigoriferi) rispetto alle piattaforme enterprise.
Questo articolo si concentra sull'hardware presente nei moderni router consumer. Questi prodotti sono universalmente basati su piattaforme SoC - system on chip. Queste soluzioni sono disponibili in una varietà di configurazioni con capacità differenti che pur complicando il nostro lavoro d'indagine, semplificano il processo di progettazione dei router.
Ciò non significa che i sistemi totalmente integrati siano le uniche configurazioni degne di considerazione. Persino nel mondo dei SoC fattori come costo, consumi e requisiti OEM creano un mondo di SoC molto variegato, per rispondere a specifiche necessità. Esistono soluzioni con RAM dedicata o moduli di memoria flash e ricetrasmettitori con chip radio separati, anche se sono poche. Per questo ci focalizziamo su due classi di SoC maggiormente disponibili: processore/chip all in one e ricetrasmettitori.
Una nota sul Software/Firmware
I router commerciali usano maggiormente Linux come sistema operativo e spesso usano una versione personalizzata. Sui router è quasi sempre installato un leggero server web per consentire all'utente di configurare il dispositivo.
Un altro sistema operativo, VxWorks, è usato solo nei sistemi di classe enterprise, ma merita di essere citato se non altro perché è usato sul Mars Reconnaissance Orbiter. Infine, un sempre maggior numero di OEM ha abbracciato uno standard aperto basato su Linux, OpenWrt. In precedenza era usato maggiormente dagli appassionati del settore.
I componenti di un SoC per router
In un SoC di un router i dati pacchettizzati arrivano dalle porte d'ingresso, e sono poi direzionati usando una rete di connessioni chiamate Switching Fabric (a cui si può pensare come fili che connettono ogni componente con tutti gli altri) che lasciano passare tramite le porte d'uscita.
I SoC dei router mantengono in memoria una look-up table di indirizzi associati a ogni pacchetto e il processore usa vari insiemi di regole per determinare il percorso migliore per l'invio di dati. Rimane inoltre in ascolto per mantenere coscienza del traffico di rete, aggiornando il percorso "disponibile" e/o "migliore" per i pacchetti in base ai livelli di carico.
La memoria a bordo del SoC mantiene tabelle di routing, fatte di indirizzi di rete e host. Per determinare il percorso migliore per portare un pacchetto alla sua destinazione, la tabella di routing include tutti gli indirizzi di rete noti, istruzioni per connettersi alle altre reti, possibili percorsi tra i router e una misura della distanza tra i nodi o indirizzi di rete noti nella forma di funzioni di costo. Questa memoria integrata solitamente è fatta di una memoria flash o EEPROM. La capacità di un chip di memoria è meno importante della sua velocità.
Per loro natura i router non comunicano direttamente con i dispositivi finali come portatili o PC desktop ma con i loro adattatori di rete. Ogni NIC ha un indirizzo di rete - switch Ethernet, adattatori, ricevitori Wi-Fi e radio sono tutti NIC.
L'hardware aggiuntivo può supportare la CPU principale. Un chip criptografico può scaricare funzioni di codifica e hashing dal processore principale. Un bilanciatore di carico dedicato può entrare in gioco per ottimizzare differenti tipi di flussi dati - streaming video contro navigazione tradizionale di pagine web, per esempio. USB, SATA e altri tipi di capacità possono essere integrate nei router sotto forma di schede d'interfaccia, spesso integrate direttamente sulla motherboard principale del processore.
L'architettura è più complessa quando considerate che molti router forniscono anche un cavo xDSL o un modem dati cellulare. In questo caso la scheda d'interfaccia del router è il componente che gestisce il dato tra il modem e il chip di commutazione.
Un modem modula e demodula segnali digitali in analogici e viceversa affinché siano inviati tramite la linea - cavo o xDSL. Non ci occuperemo dei modem per reti cellulari in questo articolo; hanno un'architettura e un protocollo differente dai modem xDSL o via cavo.