GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Warum schneidet ein Hardware-Router besser ab als ein Linux-Router mit besseren Spezifikationen (RAM und CPU)?

Lösung 1:

ASICs.

Anstatt eine Allzweck-CPU und aufgabenspezifische Software zu verwenden, können Sie die Software überspringen und den Chip einfach die Aufgabe direkt erledigen lassen.

Hochleistungs-Netzwerkhardware verwendet ASICs anstelle von Software für die rechenintensiven (aber relativ logisch einfachen) Aufgaben wie den Vergleich einer IP-Adresse mit einer riesigen Internet-Routing-Tabelle, das Überprüfen einer CAM-Tabelle auf eine Umschaltentscheidung oder das Überprüfen eines Pakets mit einer ACL . Dies macht einen enormen Unterschied in der Geschwindigkeit dieser zeitkritischen Vorgänge und bietet einen erheblichen Vorteil gegenüber einer Allzweck-CPU.

Lösung 2:

Ein dedizierter High-End-Router kann einen PC mit einer schnelleren CPU und mehr RAM übertreffen, da er mehr Routing in der Hardware erledigen kann.

Aus dem gleichen Grund kann ein 60-Dollar-Gigabit-Ethernet-Switch einen 2.000-Dollar-PC mit 4 GigE-Karten mit zwei Ports, die als Ethernet-Switch fungieren, übertreffen. Der Switch ist von Grund auf als Switch aufgebaut.

Lösung 3:

"Andere als IOS" ?

IOS macht fast den ganzen Unterschied. CentOS ist ein universelles Betriebssystem. Es ist so konzipiert, dass es in einer Vielzahl von Szenarien mit einer Vielzahl unterschiedlicher Hardwarekonfigurationen gut genug funktioniert. IOS hingegen ist extrem fein abgestimmt, um nur die Art von Workloads zu bewältigen, die Sie von einem Stück Netzwerkausrüstung erwarten würden, wobei die sehr spezifischen Arten von Hardware verwendet werden, die Sie in Cisco-Geräten finden würden.

genau wissen Welche Hardware Sie programmieren, wird Sie in Bezug auf Leistung und Kompatibilität sehr weit bringen.

Lösung 4:

Sowohl Software als auch Hardware haben etwas zu sagen. Ich habe den Vergleich von Intel und TP-Link NIC (das im Kern einen Realtek-Chip verwendet) auf generischer Serverhardware sowie speziell entwickelter und generischer Software im Routing.

Auf der Hardwareseite kann die Prozessorlast niedriger und damit schneller sein, wenn der ASIC an Bord einen Teil des IP-Verkehrs verarbeiten kann. Mir ist aufgefallen, dass die beiden integrierten INtel-NIC-Chips direkt per DMA kommunizieren und die Haupt-CPU bei der Paketweiterleitung umgehen. währenddessen unterbricht der Realtek-Chip jedes Mal, wenn ein Paket ankommt.

Auf der Softwareseite kann, wenn die Software für die Verwendung beim Routing ausgelegt ist, sie effizienter gemacht werden. Ich habe sowohl pfSense + PF (ein modifiziertes FreeBSD, das als Router verwendet werden soll) als auch Ubuntu 12.04 + iptables für allgemeine Zwecke als Routing-Software verwendet, und das erste schaltet den Datenverkehr deutlich schneller um. (Ubuntu 14.04 ist jetzt dank der neuen nftables im Linux 3.13-Kernel fast genauso schnell.)

Dedizierte Router haben jedoch einen großen Nachteil:Sie können nicht viel mehr leisten als den Datenverkehr zu schalten, und sie können nicht virtualisiert werden. Mein aktueller Edge-Router ist eine virtuelle Maschine in meinem ESXi-Cluster, auf der Ubuntu 14.04 ausgeführt wird, und er fungiert auch als Angriffserkennungssystem und Load Balancer.

Lösung 5:

AFAIK, es ist der Overhead eines Allzweck-Betriebssystems; Unabhängig davon, wie schnell Ihre Verbindungen sind, werden die Pakete Paket für Paket im Kontext des Kernels verarbeitet, was die Latenz erhöht und das System belastet. Ich glaube, es wurde bereits in den anderen Antworten besser erklärt, als ich es könnte.

Abgesehen davon gibt es vielversprechende neue "artige" Technologien, die an Popularität und Durchführbarkeit zunehmen und Linux-Systemen in dieser und in anderer Hinsicht einen formidableren Konkurrenten verschaffen könnten; d.h. InfiniBand

Werfen Sie einen Blick auf die folgenden Fragen und Antworten zu StackOverflow:How is TCP Kernel-bypass Implemented

Weiterführende Literatur:

  • Ein Tutorial bei CCGrid '11:Infiniband und 10-Gigabit-Ethernet für Dummies
  • InfiniBand und Linux in einem LinuxJournal-Artikel
  • Zugriff auf InfiniBand von Linux aus – Intel DeveloperZone
  • InfiniBand OpenSource-Projekt

Linux
  1. Warum Programmierer die Linux-Paketierung lieben

  2. Linux – Wie funktioniert Load Average mit modernen CPUs?

  3. Warum ist ein Linux-VPS die bessere Wahl als ein Windows-VPS?

  4. Warum wiederholt rand() Zahlen viel öfter unter Linux als auf Mac?

  5. Warum verwendet Linux eine Swap-Partition und keine Datei?

8 Gründe, warum Linux Mint für Linux-Anfänger besser ist als Ubuntu

11 Gründe, warum Linux besser ist als Windows

Linux vs. Mac:7 Gründe, warum Linux die bessere Wahl ist als Mac

So führen Sie Windows-Software unter Linux mit Flaschen aus

Finden Sie Informationen zur Linux-Systemhardware mit Hwinfo

Passen Sie Grub an, um ein besseres Erlebnis mit Linux zu erhalten