Zpracování paketů - Packet processing
V digitálních komunikačních sítích se zpracování paketů týká široké škály algoritmů, které se aplikují na paket dat nebo informací při jeho pohybu různými síťovými prvky komunikační sítě. Se zvýšeným výkonem síťových rozhraní existuje odpovídající potřeba rychlejšího zpracování paketů.
Existují dvě široké třídy algoritmů zpracování paketů, které jsou v souladu se standardizovaným rozdělením sítě na řídicí rovinu a datovou rovinu . Algoritmy se aplikují na:
- Řídicí informace obsažené v paketu, který se používá k bezpečnému a efektivnímu přenosu paketu z místa původu do cíle
- nebo
- Datový obsah (často nazývaný užitečné zatížení) paketu, který se používá k provedení určité transformace specifické pro obsah nebo k provedení akce řízené obsahem.
Uvnitř povolen jakýkoli síťové zařízení (např router , switch , síťový prvek nebo terminál jako je počítač nebo smartphone) se jedná o zpracování paketů subsystém, který řídí průchod vícevrstvé sítě nebo zásobník protokolu z nižší fyzické a síťové vrstvy ve všech až k aplikační vrstvě .
Dějiny
Historie zpracování paketů je historie internetu a přepínání paketů . Milníky zpracování paketů zahrnují:
- 1962–1968: První výzkum přepínání paketů
- 1969: připojeny první dva uzly ARPANETU ; 15 webů propojených do konce roku 1971 s e-mailem jako novou aplikací
- 1973: Paketové přepojování hlasových připojení přes ARPANET se síťovým hlasovým protokolem . Specifikován protokol FTP ( File Transfer Protocol )
- 1974: Zadán protokol přenosu (TCP)
- 1979: VoIP - NVP běžící na dřívějších verzích IP
- 1981: IP a TCP standardizovány
- 1982: Standardizovaný protokol TCP / IP
- 1991: World Wide Web (WWW) vydaný CERNem , jehož autorem je Tim Berners-Lee
- 1998: První zveřejnění protokolu IPv6
Historické odkazy a časovou osu najdete níže v části Externí zdroje.
Komunikační modely
Aby sítě uspěly, je nutné mít sjednocující standard, který definuje architekturu síťových systémů. Základním požadavkem na takový standard je poskytnout rámec, který výrobcům hardwaru a softwaru po celém světě umožní vyvíjet síťové technologie, které budou spolupracovat, a využít své kumulativní investiční schopnosti k posunu stavu sítí vpřed.
V 70. letech dvě organizace, Mezinárodní organizace pro normalizaci (ISO) a Mezinárodní telegrafický a telefonní poradní výbor (CCITT), nyní nazývané Mezinárodní telekomunikační unie (ITU-T), každá zahájila projekty s cílem vyvinout mezinárodní síťové standardy. V roce 1983 byly tyto snahy sloučeny a v roce 1984 byl publikován standard nazvaný The Basic Reference Model for Open Systems Interconnection , který byl publikován ISO a jako standard X.200 vydán ITU-T.
Model OSI je 7vrstvý model popisující fungování síťového operačního systému. Vrstvený model má mnoho výhod, včetně možnosti měnit jednu vrstvu bez ovlivnění ostatních a jako model pro pochopení toho, jak funguje síťový operační systém. Dokud je zachováno propojení mezi vrstvami, mohou prodejci vylepšit implementaci jednotlivé vrstvy bez dopadu na ostatní vrstvy.
Souběžně s vývojem modelu OSI byla výzkumná síť implementována Agenturou Spojených států pro obranné pokročilé výzkumné projekty ( DARPA ). Internetworkingový protokol vyvinutý pro podporu sítě, nazývaný ARPAnet , se nazýval TCP nebo Transmission Control Program. Jak výzkum a vývoj postupoval a velikost sítě rostla, bylo zjištěno, že používaný návrh mezinárodní sítě se stal nepraktickým a nerespektoval přesně vrstvený přístup modelu OSI. To vedlo k rozdělení původního TCP a vytvoření architektury TCP / IP - TCP nyní znamená Transmission Control Protocol a IP znamená Internet Protocol.
Příchod zpracování paketů
Paketové sítě vznikly v důsledku potřeby na počátku 60. let zvýšit spolehlivost komunikačních sítí. Lze na ni pohlížet jako na implementaci vrstveného modelu pomocí struktury paketu.
Rané komerční sítě byly složeny z vyhrazených analogových obvodů používaných pro hlasovou komunikaci. Koncept přepojování paketů byl představen za účelem vytvoření komunikační sítě, která bude i nadále fungovat i přes poruchy zařízení v celé síti. V tomto posunu paradigmatu se na sítě pohlíží jako na soubory systémů, které přenášejí data v malých paketech, které procházejí z místa původu do cíle libovolným počtem cest. Funkce počátečního zpracování paketů podporovaly směrování paketů po síti, detekci a opravu chyb přenosu a další funkce správy sítě .
Přepínání paketů s jeho podpůrnými funkcemi zpracování paketů má oproti tradičním sítím s přepojováním okruhů několik praktických výhod:
- Plně digitální prostředí podporující více datových typů (například hlas, data a video) nejen obohatilo životy uživatelů, ale také výrazně zvýšilo efektivitu poskytovatelů sítí, kteří dříve museli implementovat různé sítě, aby podporovali různé datové typy.
- Větší využití šířky pásma s více „logickými obvody“ využívajícími stejné fyzické odkazy
- Přežití komunikace díky několika cestám v síti z jakéhokoli původu do jakéhokoli cíle
- Informační služby s přidanou hodnotou lze zavést pomocí funkcí zpracování paketů k zajištění nezbytného zpracování
Struktura paketů
Síťový paket je základním stavebním kamenem pro sítě s přepojováním paketů. Když se položka jako soubor, e-mailová zpráva, hlasový nebo video stream přenáší přes síť, rozdělí se na bloky zvané pakety, které lze v síti efektivněji přesouvat než jeden velký blok dat. Strukturu paketů pokrývá řada standardů, ale pakety se obvykle skládají ze tří prvků:
- Záhlaví - obsahuje informace o paketu, včetně původu, cíle, délky a čísla paketu.
- Užitečné zatížení (nebo tělo) - obsahuje data, která tvoří paket
- Trailer - označuje konec paketu a často obsahuje informace o detekci a opravě chyb
V síti s přepínáním paketů odesílající hostitelský počítač paketizuje původní položku a každý paket je směrován přes síť na místo určení. Některé sítě používaly pakety s pevnou délkou, obvykle 1024 bitů, zatímco jiné používají pakety s proměnnou délkou a zahrnují délku paketu v záhlaví.
Jednotlivé balíčky mohou do cíle směřovat různými cestami a dorazit do cíle mimo pořadí. Cílový počítač ověří správnost dat v každém paketu (pomocí informací v přívěsu), znovu sestaví původní položku pomocí informací o čísle paketu v záhlaví a předloží položku přijímající aplikaci nebo uživateli.
Tento základní příklad zahrnuje tři nejzákladnější funkce zpracování paketů, paketizaci, směrování a sestavení. Funkce zpracování paketů se pohybují od jednoduchých po velmi složité. Jako příklad je funkce směrování ve skutečnosti vícestupňový proces zahrnující různé optimalizační algoritmy a vyhledávání tabulek. Základní funkce směrování na internetu vypadá asi takto:
- 1. Zkontrolujte, zda je cílem adresa „vlastněná“ tímto počítačem. Pokud ano, paket zpracujte. Pokud ne:
- A. Zkontrolujte, zda je IP Forwarding nastaveno na „Yes“. Pokud ne, paket je zničen. Pokud ano, pak
- i. Zkontrolujte, zda síť připojená k tomuto počítači vlastní cílovou adresu. Pokud ano, směrujte paket do příslušné sítě. Pokud ne, tak
- 1. Zkontrolujte, zda existuje nějaká cesta do cílové sítě. Pokud ano, směrujte paket na další hop bránu. Pokud ne, zničte balíček.
- i. Zkontrolujte, zda síť připojená k tomuto počítači vlastní cílovou adresu. Pokud ano, směrujte paket do příslušné sítě. Pokud ne, tak
- A. Zkontrolujte, zda je IP Forwarding nastaveno na „Yes“. Pokud ne, paket je zničen. Pokud ano, pak
Mezi pokročilejší funkce směrování patří vyvažování zátěže sítě a nejrychlejší algoritmy směrování. Tyto příklady ilustrují rozsah možných algoritmů zpracování paketů a to, jak mohou zavést významná zpoždění při přenosu položky. Návrháři síťových zařízení často používají kombinaci hardwarových a softwarových akcelerátorů k minimalizaci latence v síti.
Architektura síťových zařízení
Zařízení na bázi IP lze rozdělit do tří základních prvků: datová rovina, řídicí rovina a rovina správy.
Datová rovina
Dat rovina je subsystém síťového uzlu, který přijímá a odesílá pakety z rozhraní, zpracovává je podle potřeby použitelným protokolu, a dodává, kapky, nebo předává je podle potřeby.
Ovládací rovina
Řídící rovina uchovává informace, které lze použít ke změně data používaná datové rovině. Údržba těchto informací vyžaduje zpracování složitých signalizačních protokolů. Implementace těchto protokolů v datové rovině by vedla ke špatnému výkonu předávání. Běžným způsobem správy těchto protokolů je nechat datovou rovinu detekovat příchozí signalizační pakety a lokálně je předávat do řídicí roviny. Signální protokoly řídicí roviny mohou aktualizovat informace o datové rovině a vkládat odchozí signalizační pakety do datové roviny. Tato architektura funguje, protože signalizační provoz je velmi malá část globálního provozu.
Rovina řízení
Rovina správy poskytuje administrativní rozhraní do celého systému. Obsahuje procesy, které podporují akce provozní správy, správy nebo konfigurace / zajišťování, jako jsou:
- Zařízení pro podporu sběru a agregace statistik,
- Podpora implementace řídících protokolů,
- Rozhraní příkazového řádku, grafické uživatelské konfigurační rozhraní prostřednictvím webových stránek nebo tradiční správa SNMP ( Simple Network Management Protocol ).
Mohou být také zahrnuta sofistikovanější řešení založená na XML ( eXtensible Markup Language ).
Příklady
Seznam aplikací pro zpracování paketů je obvykle rozdělen do dvou kategorií. Následuje několik příkladů vybraných k ilustraci rozmanitosti, která se dnes používá.
Ovládejte aplikace
- Přeposílání , základní operace routeru
- Šifrování / dešifrování , ochrana informací v užitečném zatížení pomocí kryptografických algoritmů
- Quality of Service (QOS) , zacházení s pakety odlišně, například poskytování prioritních nebo specializovaných služeb v závislosti na třídě paketu
Datové aplikace
- Překódování , transformace konkrétního kódování videa na konkrétní kódování používané cílem
- Transating & Transizing, transformace velikosti a hustoty obrazu odpovídající cílovému zařízení
- Rozpoznávání obrazu nebo hlasu , detekce konkrétního vzoru (obrazu nebo hlasu), který je porovnán s těmi v databázi, s nějakou doprovodnou akcí provedenou při shodě
- Mezi pokročilé aplikace patří oblasti jako zabezpečení ( monitorování hovorů a prevence úniku dat ), cílená reklama , víceúrovňové služby , vymáhání autorských práv a statistiky využití sítě. Tyto a mnoho dalších aplikací s vědomím obsahu jsou založeny na schopnosti rozeznat konkrétní inteligenci obsaženou v datovém toku paketů pomocí technologií DPI ( Deep Packet Inspection ).
Architektury zpracování paketů
Přepínání paketů také přináší některé architektonické kompromisy. Provádění funkcí zpracování paketů při přenosu informací zavádí zpoždění, která mohou být škodlivá pro prováděnou aplikaci. Například v hlasových a video aplikacích může nutný převod z analogového na digitální a zpět v cílovém místě spolu se zpožděním zavedeným sítí způsobit viditelné mezery, které jsou pro uživatele rušivé. Latence je měřítkem časového zpoždění komplexního systému.
Pro řešení požadavků na výkon a funkčnost konkrétní sítě a řešení latence bylo vyvinuto několik architektonických přístupů ke zpracování paketů.
Architektura s jedním vláknem (standardní operační systém)
Standardní síťový stack využívá služby poskytované operačního systému (OS) běží na jednom procesoru ( single závitem ). I když se architektury s jedním vláknem implementují nejjednodušší, podléhají režijním nákladům spojeným s výkonem funkcí OS, jako jsou předvolby, správa vláken, časovače a zamykání. Tyto režijní náklady na zpracování OS se ukládají na každý paket procházející systémem, což má za následek pokutu za propustnost.
Vícevláknová architektura (operační systém s více procesory)
Vylepšení výkonu lze provést v síťovém zásobníku OS přizpůsobením softwaru pro zpracování protokolu zásobníku tak, aby podporoval více procesorů ( vícevláknové ), a to buď pomocí platforem SMP (Symmetrical Multiprocessing) nebo vícejádrové architektury procesorů . Zvýšení výkonu je realizováno u malého počtu procesorů, ale nedokáže lineárně škálovat větší počet procesorů (nebo jader) a procesor s například osmi jádry nemusí zpracovávat pakety výrazně rychleji než jeden se dvěma jádry.
Architektura rychlé cesty (by-pass operačního systému)
V implementaci rychlé cesty je datová rovina rozdělena na dvě vrstvy. Nižší vrstva, obvykle nazývaná rychlá cesta, zpracovává většinu příchozích paketů mimo prostředí OS a bez vzniku režijních nákladů OS, které snižují celkový výkon. Pouze ty pakety, které vyžadují komplexní zpracování, jsou předány do síťového zásobníku OS (horní vrstva datové roviny), který provádí nezbytné funkce pro správu, signalizaci a řízení. Pokud jsou vyžadovány složité algoritmy, jako je směrování nebo zabezpečení, síťový zásobník operačního systému předá paket vyhrazeným softwarovým komponentám v řídicí rovině.
Vícejádrový procesor může poskytnout další zlepšení výkonu při implementaci rychlé cesty. Aby se maximalizovala celková propustnost systému, může být pro provoz rychlé cesty vyhrazeno více jader, zatímco pro provoz operačního systému, síťového zásobníku OS a řídicí roviny aplikace je vyžadováno pouze jedno jádro.
Jediným omezením při konfiguraci platformy je to, že protože jádra používající rychlou cestu běží mimo operační systém, musí být vyhrazena výhradně pro rychlou cestu a nesmí být sdílena s jiným softwarem. Systém lze také dynamicky překonfigurovat, jak se mění dopravní vzorce. Rozdělení datové roviny na dvě vrstvy také zvyšuje složitost, protože dvě vrstvy musí mít stejné informace, aby byla zajištěna konzistence systému.
Technologie zpracování paketů
Aby bylo možné vytvořit specializované platformy pro zpracování paketů, byla vyvinuta a nasazena celá řada technologií. Tyto technologie, které pokrývají široký rozsah hardwaru a softwaru, byly navrženy s cílem maximalizovat rychlost a propustnost při minimalizaci latence.
Síťové procesory
Jednotka síťového procesoru (NPU) je v mnoha ohledech podobná procesorům pro všeobecné účely (GPP), které napájí většinu počítačů, ale s vnitřní architekturou a funkcemi přizpůsobenými pro operace zaměřené na síť. NPU mají obvykle ve svém mikrokódu zabudované funkce specifické pro síť, jako je vyhledávání adres, porovnávání vzorů a správa front . Operace zpracování paketů na vyšší úrovni, jako je zabezpečení nebo detekce narušení, jsou často zabudovány do architektur NPU. Mezi příklady síťových procesorů patří:
- Rodina Intel - IXP2xxx
- Netronome - rodiny NFP-6xxx / 4xxx / 32xx
- PMC Sierra - rodina Winpath
- EZChip - rodina NP-x
Vícejádrové procesory
Vícejádrové procesory je jeden polovodičový balíček, který má 2 nebo více jader, z nichž každá představuje jednu jednotku pro zpracování, který je schopen provádět kód paralelně. CPU pro všeobecné účely, jako je Intel Xeon, nyní podporují až 8 jader. Některé vícejádrové procesory integrují vyhrazené možnosti zpracování paketů a poskytují tak kompletní SoC (System on Chip). Obecně integrují ethernetová rozhraní, krypto-motory , motory pro porovnávání vzorů , hardwarové fronty pro QoS a někdy i sofistikovanější funkce využívající mikrojádra. Všechny tyto hardwarové funkce jsou schopné odlehčit zpracování softwarových paketů. Nedávné příklady těchto specializovaných vícejádrových balíčků, jako je Cavium OCTEON II, mohou podporovat 2 až 32 jader.
- Tilera - rodina procesorů TILE-Gx
- Cavium Networks - vícejádrové rodiny procesorů OCTEON & OCTEON II
- Freescale - platformy pro zpracování QorIQ
- NetLogic Microsystems - rodiny procesorů XLP, XLR a XLS
Hardwarové akcelerátory
Pro jasně definovatelné a opakující se akce vytvoří vyhrazený akcelerátor zabudovaný přímo do polovodičového hardwarového řešení zrychlení operací ve srovnání se softwarem běžícím na univerzálním procesoru. Počáteční implementace používaly FPGA (pole programovatelné hradlové pole) nebo ASIC (Application-specific Integrated Circuit), ale nyní jsou do GPP i NPU integrovány specifické funkce jako šifrování a komprese jako interní hardwarové akcelerátory. Aktuální příklady vícejádrových procesorů s hardwarovými akcelerátory specifickými pro síť zahrnují Cavium CN63xx s akcelerací pro zabezpečení, TCP / IP, QOS a HFA porovnávání vzorů a rodinu procesorů Netlogic Microsystems XFS se síťovými a bezpečnostními akceleračními motory.
Hluboká kontrola paketů
Schopnost rozhodovat na základě obsahu jednotlivých paketů umožňuje širokou škálu nových aplikací, jako je Policy Charging and Rules Functions ( PCRF ) a Quality of Service. Systémy zpracování paketů oddělují konkrétní typy provozu pomocí technologií Deep Packet Inspection (DPI). Technologie DPI využívají algoritmy porovnávání vzorů , aby nahlédly dovnitř datové části dat a identifikovaly obsah každého paketu protékajícího síťovým zařízením. Úspěšné shody vzorů jsou hlášeny řídicí aplikaci pro další příslušná další opatření, která mají být přijata.
Software pro zpracování paketů
Software operačního systému bude obsahovat určité standardní síťové komíny, které budou fungovat v jedno i vícejádrovém prostředí. Aby bylo možné implementovat architektury by-pass (rychlá cesta) operačního systému, vyžaduje použití specializovaného softwaru pro zpracování paketů, jako je 6WIND's 6WINDGate . Tento typ softwaru poskytuje sadu síťových protokolů, které lze distribuovat mezi více blade serverů, procesorů nebo jader a vhodně je škálovat.
Reference
externí odkazy
- Živá historie. „ Historie internetu “
- Howe, Walte. (2010) „ Stručná historie internetu “
- Internetová společnost. „ Historie internetu “
- Živá historie. „ Historie přepínání paketů “
- Roberts, Dr. Lawrence G. (listopad 1978). „ Evoluce přepínání paketů “
- Marshall, Dave. " Historie internetu - časová osa." “
- Rami Rosen „ Network acceleration with DPDK “, článek na lwn.net, červenec 2017.
- Rami Rosen „ Userpace Networking with DPDK “, článek v Linux Journal, duben 2018.