GNU/Linux >> Linux Esercitazione >  >> Linux

Perché un router hardware funziona meglio di un router Linux con specifiche migliori (RAM e CPU)?

Soluzione 1:

ASIC.

Invece di utilizzare una CPU generica e un software specifico per attività, puoi saltare il software e fare in modo che il silicio gestisca direttamente l'attività.

L'hardware di rete ad alte prestazioni utilizza gli ASIC invece del software per le attività computazionalmente pesanti (ma relativamente semplici dal punto di vista logico) di qualcosa come confrontare un indirizzo IP con un'enorme tabella di routing Internet, controllare una tabella CAM per una decisione di commutazione o controllare un pacchetto rispetto a un ACL . Ciò fa un'enorme differenza nella velocità di quelle operazioni urgenti, fornendo un vantaggio significativo rispetto a una CPU generica.

Soluzione 2:

Un router dedicato di fascia alta può superare le prestazioni di un PC con una CPU più veloce e più RAM perché può eseguire più routing nell'hardware.

È lo stesso motivo per cui uno switch Gigabit Ethernet da $ 60 può superare un PC da $ 2.000 con 4 schede GigE a due porte che fungono da switch Ethernet. L'interruttore è costruito da zero per essere un interruttore.

Soluzione 3:

"Diverso da IOS" ?

IOS fa quasi tutta la differenza. CentOS è un sistema operativo generico. È progettato per funzionare abbastanza bene in una vasta gamma di scenari, utilizzando una vasta gamma di diverse configurazioni hardware. IOS, d'altra parte, è estremamente preciso per gestire solo il tipo di carichi di lavoro che ti aspetteresti da un'apparecchiatura di rete, utilizzando i tipi di hardware molto specifici che potresti trovare nelle apparecchiature Cisco.

Conoscere esattamente i componenti hardware per i quali stai programmando ti porteranno molto lontano in termini di prestazioni rispetto alla compatibilità.

Soluzione 4:

Sia il software che l'hardware hanno qualcosa da dire. Ho il confronto tra Intel e TP-Link NIC (che utilizza un chip Realtek al suo interno) su hardware server generico, nonché software appositamente creato e generico nel routing.

Dal punto di vista hardware, se l'ASIC integrato è in grado di gestire in parte il traffico IP, il carico del processore può essere inferiore e quindi più veloce. Ho notato che i due chip NIC INtel integrati comunicano direttamente tramite DMA, bypassando la CPU principale nella gestione dell'inoltro dei pacchetti; nel frattempo il chip Realtek si interrompe ogni volta che arriva un pacchetto.

Per quanto riguarda il software, se il software è progettato per essere utilizzato nel routing, può essere reso più efficiente. Ho usato sia pfSense + PF (un FreeBSD modificato destinato ad essere utilizzato come router) sia Ubuntu 12.04 + iptables per scopi generici come software di routing e il primo chiaramente cambia il traffico molto più velocemente. (Ora Ubuntu 14.04 è quasi altrettanto veloce, grazie ai nuovi nftables nel kernel Linux 3.13.)

Tuttavia, i router dedicati presentano un grosso svantaggio:non possono eseguire molto altro che commutare il traffico e non possono essere virtualizzati. Il mio attuale edge router è una macchina virtuale all'interno del mio cluster ESXi che esegue Ubuntu 14.04 e funge anche da sistema di rilevamento delle intrusioni e bilanciamento del carico.

Soluzione 5:

AFAIK, è il sovraccarico di un sistema operativo generico; indipendentemente dalla velocità delle connessioni, i pacchetti vengono gestiti pacchetto per pacchetto all'interno del contesto del kernel, aumentando la latenza e la tensione del sistema. Credo che sia già stato spiegato nelle altre risposte meglio di quanto potessi fare io.

Detto questo, ci sono promettenti nuove tecnologie "ish" in aumento in popolarità e fattibilità che potrebbero creare un formidabile concorrente dei sistemi Linux in questo così come in altri aspetti; ovvero InfiniBand

Dai un'occhiata alle seguenti domande e risposte su StackOverflow:Come viene implementato il bypass del kernel TCP

Ulteriori letture:

  • Un tutorial su CCGrid '11:Infiniband e 10-Gigabit Ethernet for Dummies
  • InfiniBand e Linux in un articolo di LinuxJournal
  • Accesso a InfiniBand da Linux - Intel DeveloperZone
  • Progetto InfiniBand OpenSource

Linux
  1. Perché mi attengo a xterm

  2. Gestire l'hardware collegato su Linux con systemd-udevd

  3. Perché mi sono innamorato di Antergos Linux

  4. Perché Printf è meglio di Echo?

  5. Come eseguire Chroot con gli spazi dei nomi Linux?

8 motivi per cui Linux Mint è migliore di Ubuntu per principianti di Linux

11 motivi per cui Linux è migliore di Windows

Linux vs Mac:7 motivi per cui Linux è una scelta migliore del Mac

Come eseguire il software Windows su Linux con Bottles

Trova le informazioni sull'hardware del sistema Linux con Hwinfo

Personalizza Grub per ottenere un'esperienza migliore con Linux