GNU/Linux >> Tutoriels Linux >  >> Linux

Pourquoi un routeur matériel fonctionne-t-il mieux qu'un routeur Linux avec de meilleures spécifications (RAM et CPU) ?

Solution 1 :

ASIC.

Au lieu d'utiliser un processeur à usage général et un logiciel spécifique à une tâche, vous pouvez ignorer le logiciel et laisser le silicium gérer la tâche directement.

Le matériel réseau hautes performances utilise des ASIC au lieu de logiciels pour les tâches lourdes de calcul (mais relativement simples d'un point de vue logique) telles que la comparaison d'une adresse IP à une énorme table de routage Internet, la vérification d'une table CAM pour une décision de commutation ou la vérification d'un paquet par rapport à une ACL. . Cela fait une énorme différence dans la vitesse de ces opérations sensibles au temps, offrant un avantage significatif par rapport à un processeur à usage général.

Solution 2 :

Un routeur dédié haut de gamme peut être plus performant qu'un PC doté d'un processeur plus rapide et de plus de RAM, car il peut effectuer davantage de routage dans le matériel.

C'est la même raison pour laquelle un commutateur Gigabit Ethernet à 60 $ peut surpasser un PC à 2 000 $ avec 4 cartes GigE à deux ports agissant comme un commutateur Ethernet. L'interrupteur est construit à partir de zéro pour être un interrupteur.

Solution 3 :

"Autre qu'IOS" ?

IOS fait presque toute la différence. CentOS est un système d'exploitation à usage général. Il est conçu pour fonctionner suffisamment bien dans un très large éventail de scénarios, en utilisant une vaste gamme de configurations matérielles différentes. IOS, d'autre part, est extrêmement bien réglé pour gérer uniquement le type de charges de travail que vous attendez d'un équipement réseau, en utilisant les types de matériel très spécifiques que vous trouverez dans les équipements Cisco.

Savoir exactement les composants matériels pour lesquels vous programmez vous amèneront très loin en termes de performances par rapport à la compatibilité.

Solution 4 :

Le logiciel et le matériel ont tous deux leur mot à dire. J'ai la comparaison d'Intel et de TP-Link NIC (qui utilise une puce Realtek en son cœur) sur du matériel de serveur générique, ainsi que des logiciels de routage spécialement conçus et à usage générique.

Du côté matériel, si l'ASIC à bord peut faire une certaine gestion du trafic IP, la charge du processeur peut être plus faible et donc plus rapide. J'ai remarqué que les deux puces NIC INtel embarquées communiquaient directement par DMA, contournant le processeur principal pour gérer le transfert de paquets ; pendant ce temps, la puce Realtek s'interrompt chaque fois qu'un paquet arrive.

Du côté logiciel, si le logiciel est conçu pour être utilisé dans le routage, il peut être rendu plus efficace. J'ai utilisé à la fois pfSense + PF (un FreeBSD modifié destiné à être utilisé comme routeur) et Ubuntu 12.04 + iptables à usage générique comme logiciel de routage et le premier bascule clairement le trafic beaucoup plus rapidement. (Ubuntu 14.04 est maintenant presque aussi rapide, grâce aux nouveaux nftables du noyau Linux 3.13.)

Cependant, les routeurs dédiés ont un inconvénient majeur :ils ne peuvent pas effectuer autre chose que la commutation de trafic et ils ne peuvent pas être virtualisés. Mon routeur de périphérie actuel est une machine virtuelle à l'intérieur de mon cluster ESXi exécutant Ubuntu 14.04, et il agit également comme un système de détection d'intrusion et un équilibreur de charge.

Solution 5 :

AFAIK, c'est la surcharge d'un système d'exploitation à usage général ; quelle que soit la vitesse de vos connexions, les paquets sont traités paquet par paquet dans le contexte du noyau, ce qui augmente la latence et la pression sur le système. Je crois que cela a déjà été expliqué dans les autres réponses mieux que je ne pourrais le faire.

Cela dit, il existe de nouvelles technologies "plutôt" prometteuses qui gagnent en popularité et en faisabilité et qui pourraient créer un concurrent plus redoutable des systèmes Linux à cet égard ainsi qu'à d'autres égards; c'est-à-dire InfiniBand

Jetez un œil aux questions et réponses suivantes sur StackOverflow : Comment le contournement du noyau TCP est-il implémenté ?

Lectures complémentaires :

  • Tutoriel à CCGrid '11 :Infiniband et 10-Gigabit Ethernet pour les nuls
  • InfiniBand et Linux dans un article du LinuxJournal
  • Accès à InfiniBand depuis Linux – Intel DeveloperZone
  • Projet Open Source InfiniBand

Linux
  1. Linux - Comment la charge moyenne fonctionne-t-elle avec les processeurs modernes ?

  2. Pourquoi un VPS Linux est-il un meilleur choix qu'un VPS Windows

  3. Pourquoi un Lun World Wide ID commence-t-il par le numéro 3 dans Linux dm-multipath

  4. Pourquoi rand() répète-t-il beaucoup plus souvent les nombres sous Linux que sur Mac ?

  5. Pourquoi Linux utilise-t-il une partition swap plutôt qu'un fichier ?

8 raisons pour lesquelles Linux Mint est meilleur qu'Ubuntu pour les débutants Linux

11 raisons pour lesquelles Linux est meilleur que Windows

Linux vs Mac :7 raisons pour lesquelles Linux est un meilleur choix que Mac

Comment exécuter un logiciel Windows sur Linux avec des bouteilles

Trouver des informations sur le matériel du système Linux avec Hwinfo

Personnalisez Grub pour obtenir une meilleure expérience avec Linux