Řešení 1:
ASIC.
Namísto použití univerzálního CPU a softwaru specifického pro úlohu můžete software přeskočit a jednoduše přimět křemík, aby úlohu zvládl přímo.
Vysoce výkonný síťový hardware používá ASIC místo softwaru pro výpočetně náročné (ale relativně logicky jednoduché) úkoly, jako je porovnávání IP adresy s obrovskou internetovou směrovací tabulkou, kontrola CAM tabulky pro rozhodnutí o přepnutí nebo kontrola paketu proti ACL. . To představuje obrovský rozdíl v rychlosti těchto časově citlivých operací, což poskytuje významnou výhodu oproti univerzálnímu CPU.
Řešení 2:
Špičkový, specializovaný router může překonat počítač s rychlejším CPU a více RAM, protože dokáže udělat více směrování v hardwaru.
Je to stejný důvod, proč může gigabitový ethernetový přepínač za 60 USD překonat počítač za 2 000 USD se 4 dvouportovými GigE kartami fungujícími jako ethernetový přepínač. Přepínač je od základu postaven jako přepínač.
Řešení 3:
"Jiné než IOS"?
IOS dělá téměř veškerý rozdíl. CentOS je operační systém pro všeobecné použití. Je navržen tak, aby fungoval dostatečně dobře ve velmi širokém spektru scénářů s využitím široké škály různých hardwarových konfigurací. Na druhou stranu je IOS extrémně vyladěný tak, aby zvládl pouze takové pracovní zátěže, které byste očekávali od síťového zařízení, s použitím velmi specifických typů hardwaru, které najdete v zařízení Cisco.
Vědět přesně to, pro jaké části hardwaru programujete, vám zabere velmi dlouhou cestu, pokud jde o výkon vs. kompatibilitu.
Řešení 4:
Software i hardware mají co říct. Mám srovnání Intel a TP-Link NIC (které ve svém srdci používá čip Realtek) na generickém serverovém hardwaru a také na účelově vytvořeném a generickém softwaru ve směrování.
Na hardwarové stránce, pokud ASIC na desce může provádět nějakou manipulaci s IP provozem, může být zatížení procesoru nižší, a tedy rychlejší. Všiml jsem si, že dva integrované čipy INtel NIC komunikují přímo přes DMA a obcházejí hlavní CPU při manipulaci s předáváním paketů; mezitím čip Realtek přeruší, kdykoli dorazí paket.
Na straně softwaru, pokud je software navržen pro použití při směrování, může být efektivnější. Použil jsem jak pfSense+PF (upravený FreeBSD určený k použití jako router), tak obecný Ubuntu 12.04+iptables jako směrovací software a první jasně přepínal provoz mnohem rychleji. (Ubuntu 14.04 je nyní téměř stejně rychlé díky novým nftables v jádře Linuxu 3.13.)
Dedikovaný router má však jednu velkou nevýhodu:nemůže vykonávat nic jiného než přepínání provozu a nelze jej virtualizovat. Můj současný okrajový router je virtuální stroj uvnitř mého clusteru ESXi se systémem Ubuntu 14.04 a funguje také jako systém detekce narušení a vyrovnávání zatížení.
Řešení 5:
AFAIK, je to režie operačního systému pro obecné účely; bez ohledu na to, jak rychle jsou vaše připojení, jsou pakety zpracovávány na bázi paketu po paketu v kontextu jádra, což zvyšuje latenci a zatížení systému. Věřím, že to již bylo vysvětleno v ostatních odpovědích lépe, než bych to dokázal já.
Jak již bylo řečeno, existují slibné nové "ish" technologie zvyšující popularitu a proveditelnost, které by mohly vytvořit impozantnějšího konkurenta ze systémů Linux v tomto i v jiných ohledech; tj. InfiniBand
Podívejte se na následující otázky a odpovědi na StackOverflow:Jak je implementováno TCP Kernel-bypass
Další čtení:
- Výukový program na CCGrid ’11:Infiniband a 10gigabitový Ethernet pro figuríny
- InfiniBand a Linux v článku LinuxJournal
- Přístup k InfiniBand z Linuxu – Intel DeveloperZone
- Projekt InfiniBand OpenSource