Paketbearbetning
I digitala kommunikationsnätverk hänvisar paketbearbetning till det stora utbudet av algoritmer som tillämpas på ett paket med data eller information när det rör sig genom de olika nätverkselementen i ett kommunikationsnätverk. Med den ökade prestandan hos nätverksgränssnitt finns det ett motsvarande behov av snabbare paketbehandling.
Det finns två breda klasser av paketbehandlingsalgoritmer som är i linje med den standardiserade nätverksuppdelningen av kontrollplan och dataplan . Algoritmerna tillämpas på antingen:
- Kontrollinformation som finns i ett paket som används för att överföra paketet säkert och effektivt från ursprung till destination
- eller
- Datainnehållet (kallas ofta nyttolasten) för paketet som används för att tillhandahålla någon innehållsspecifik transformation eller vidta en innehållsdriven åtgärd .
Inom alla nätverksaktiverade enheter (t.ex. router , switch , nätverkselement eller terminal som en dator eller smartphone) är det paketbearbetningsundersystemet som hanterar genomgången av det flerskiktiga nätverket eller protokollstacken från de lägre, fysiska och nätverksskikten alla vägen fram till appliceringsskiktet .
Historia
Historien om paketbearbetning är historien om Internet och paketväxling . Milstolpar för paketbearbetning inkluderar:
- 1962–1968: Tidig forskning om paketförmedling
- 1969: De två första noderna av ARPANET anslutna; 15 sajter anslutna i slutet av 1971 med e-post som en ny applikation
- 1973: Paketkopplade röstanslutningar över ARPANET med Network Voice Protocol . FTP ( File Transfer Protocol) specificerat
- 1974: Transmission Control Protocol (TCP) specificeras
- 1979: VoIP – NVP körs på tidiga versioner av IP
- 1981: IP och TCP standardiserade
- 1982: TCP/IP standardiserad
- 1991: World Wide Web (WWW) släppt av CERN , författad av Tim Berners-Lee
- 1998: IPv6 publicerades första gången
Historiska referenser och tidslinje finns i avsnittet Externa resurser nedan.
Kommunikationsmodeller
För att nätverk ska lyckas är det nödvändigt att ha en enande standard som definierar arkitekturen för nätverkssystem. Det grundläggande kravet för en sådan standard är att tillhandahålla ett ramverk som gör det möjligt för hårdvaru- och mjukvarutillverkarna runt om i världen att utveckla nätverkstekniker som kommer att fungera tillsammans och att utnyttja deras kumulativa investeringskapacitet för att föra nätverksläget framåt.
På 1970-talet initierade två organisationer, International Organization for Standardization (ISO) och International Telegraph and Telephone Consultative Committee (CCITT, nu kallad International Telecommunication Union (ITU-T) vardera projekt med målet att utveckla internationella nätverksstandarder. 1983 slogs dessa ansträngningar samman och 1984 publicerades standarden, kallad The Basic Reference Model for Open Systems Interconnection , av ISO och som standard X.200 av ITU-T.
OSI-modellen är en 7-lagers modell som beskriver hur ett nätverksoperativsystem fungerar. En lagermodell har många fördelar, inklusive möjligheten att ändra ett lager utan att påverka de andra och som en modell för att förstå hur ett nätverksoperativsystem fungerar. Så länge som sammankopplingen mellan lager upprätthålls kan leverantörer förbättra implementeringen av ett enskilt lager utan att påverka andra lager.
Parallellt med utvecklingen av OSI-modellen implementerades ett forskningsnätverk av United States Defense Advanced Research Projects Agency ( DARPA ). Internetarbetsprotokollet som utvecklats för att stödja nätverket, kallat ARPAnet , kallades TCP eller Transmission Control Program. Allt eftersom forskning och utveckling fortskred och storleken på nätverket växte, fastställdes det att den internetarbetande designen som användes blev otymplig och den följde inte exakt OSI-modellens skiktade tillvägagångssätt. Detta ledde till uppdelningen av den ursprungliga TCP och skapandet av TCP/IP- arkitekturen - TCP står nu för Transmission Control Protocol och IP står för Internet Protocol.
Tillkomsten av paketbearbetning
Paketnätverk kom till som ett resultat av behovet i början av 1960-talet att göra kommunikationsnäten mer tillförlitliga. Det kan ses som implementeringen av den skiktade modellen med hjälp av en paketstruktur.
Tidiga kommersiella nätverk var sammansatta av dedikerade, analoga kretsar som användes för röstkommunikation. Konceptet med paketförmedling introducerades för att skapa ett kommunikationsnätverk som skulle fortsätta att fungera trots utrustningsfel i hela nätverket. I detta paradigmskifte ses nätverk som samlingar av system som sänder data i små paket som arbetar sig från utgångspunkt till destination via valfritt antal vägar. Initiala paketbearbetningsfunktioner stödde routing av paket genom nätverket, upptäckt och korrigering av överföringsfel och andra nätverkshanteringsfunktioner .
Paketväxling med dess stödjande paketbearbetningsfunktioner har flera praktiska fördelar jämfört med traditionella kretskopplade nätverk:
- En helt digital miljö som stöder flera datatyper (som röst, data och video) berikade inte bara användarnas liv, den ökade avsevärt effektiviteten för nätverksleverantörer som tidigare var tvungna att implementera olika nätverk för att stödja olika datatyper.
- Större bandbreddsutnyttjande, med flera "logiska kretsar" som använder samma fysiska länkar
- Kommunikationsöverlevnadsförmåga på grund av flera vägar genom nätverket från vilket ursprung som helst till vilken destination som helst
- Mervärdesinformationstjänster kan introduceras med hjälp av paketbearbetningsfunktioner för att tillhandahålla den nödvändiga behandlingen
Paketstruktur
Ett nätverkspaket är den grundläggande byggstenen för paketkopplade nätverk. När ett objekt som en fil, e-postmeddelande, röst- eller videoström sänds genom nätverket delas det upp i bitar som kallas paket som kan flyttas mer effektivt genom nätverket än ett stort datablock. Många standarder täcker strukturen av paket, men vanligtvis består paket av tre element:
- Rubrik – innehåller information om paketet, inklusive ursprung, destination, längd och paketnummer.
- Nyttolast (eller kropp) – innehåller data som utgör paketet
- Trailer – indikerar slutet på paketet och innehåller ofta feldetekterings- och korrigeringsinformation
I ett paketkopplat nätverk paketerar den sändande värddatorn det ursprungliga objektet och varje paket dirigeras genom nätverket till sin destination. Vissa nätverk använde paket med fast längd, vanligtvis 1024 bitar, medan andra använder paket med variabel längd och inkluderar paketlängden i rubriken.
Enskilda paket kan ta olika vägar till destinationen och anlända till destinationen i ur funktion. Destinationsdatorn verifierar riktigheten av data i varje paket (med hjälp av information i trailern), sätter ihop originalföremålet med hjälp av paketnummerinformationen i rubriken och presenterar föremålet för den mottagande applikationen eller användaren.
Detta grundläggande exempel inkluderar de tre mest grundläggande paketbearbetningsfunktionerna, paketering, routing och montering. Paketbehandlingsfunktionerna sträcker sig från det enkla till mycket komplexa. Som ett exempel är routingfunktionen faktiskt en flerstegsprocess som involverar olika optimeringsalgoritmer och tabelluppslagningar. En grundläggande routingfunktion på Internet ser ut ungefär så här:
- 1. Kontrollera om destinationen är en adress som "ägs" av den här datorn. Bearbeta i så fall paketet. Om inte:
- a. Kontrollera om IP-vidarebefordran är inställd på "Ja". Om nej, förstörs paketet. Om ja, då
- jag. Kontrollera om ett nätverk anslutet till den här datorn äger destinationsadressen. Om ja, dirigera paketet till rätt nätverk. Om nej,
- 1. Kontrollera om det finns någon väg till destinationsnätverket. Om ja, dirigera paketet till nästa hop-gateway. Om nej, förstör paketet.
- jag. Kontrollera om ett nätverk anslutet till den här datorn äger destinationsadressen. Om ja, dirigera paketet till rätt nätverk. Om nej,
- a. Kontrollera om IP-vidarebefordran är inställd på "Ja". Om nej, förstörs paketet. Om ja, då
Mer avancerade routingfunktioner inkluderar nätverksbelastningsbalansering och snabbaste ruttalgoritmer. Dessa exempel illustrerar omfånget av paketbearbetningsalgoritmer som är möjliga och hur de kan införa betydande förseningar i överföringen av en artikel. Nätverksutrustningsdesigners använder ofta en kombination av hårdvaru- och mjukvaruacceleratorer för att minimera latensen i nätverket.
Nätverksutrustningsarkitektur
IP-baserad utrustning kan delas upp i tre grundelement: dataplan, kontrollplan och förvaltningsplan.
Dataplan
Dataplanet är ett delsystem till en nätverksnod som tar emot och skickar paket från ett gränssnitt, bearbetar dem enligt det tillämpliga protokollet och levererar, släpper eller vidarebefordrar dem efter behov .
Kontrollplan
Styrplanet upprätthåller information som kan användas för att ändra data som används av dataplanet . Att underhålla denna information kräver hantering av komplexa signaleringsprotokoll. Att implementera dessa protokoll i dataplanet skulle leda till dålig vidarebefordran. Ett vanligt sätt att hantera dessa protokoll är att låta dataplanet detektera inkommande signaleringspaket och lokalt vidarebefordra dem till kontrollplanet. Styrplanets signaleringsprotokoll kan uppdatera dataplansinformationen och injicera utgående signaleringspaket i dataplanet. Denna arkitektur fungerar eftersom signaltrafik är en mycket liten del av den globala trafiken.
Förvaltningsplan
Förvaltningsplanet ger ett administrativt gränssnitt in i det övergripande systemet. Den innehåller processer som stöder operativ administration, hantering eller konfigurering/tillgångsåtgärder som:
- Faciliteter för att stödja statistikinsamling och aggregering,
- Stöd för implementering av förvaltningsprotokoll,
- Kommandoradsgränssnitt, grafiska användarkonfigurationsgränssnitt via webbsidor eller traditionell SNMP- hantering ( Simple Network Management Protocol ).
Mer sofistikerade lösningar baserade på XML ( eXtensible Markup Language ) kan också inkluderas.
Exempel
Listan över paketbearbetningsapplikationer är vanligtvis uppdelad i två kategorier. Följande är några exempel valda för att illustrera den sort som används idag.
Styr applikationer
- Vidarebefordran , den grundläggande driften av en router
- Kryptering/Dekryptering , skydd av information i nyttolasten med hjälp av kryptografiska algoritmer
- Quality of Service (QOS) , behandlar paket olika, som att tillhandahålla prioriterade eller specialiserade tjänster beroende på paketets klass
Dataapplikationer
- Transcoding , omvandlingen av en viss videokodning till den speciella kodning som används av destinationen
- Transrating & Transizing, transformering av en bildstorlek och densitet som är lämplig för destinationsenheten
- Bild- eller röstigenkänning , detektering av ett visst mönster (bild eller röst) som matchas med dem i en databas med en deltagande åtgärd som vidtas när en matchning inträffar
- Avancerade applikationer inkluderar områden som säkerhet ( samtalsövervakning och förebyggande av dataläckor ), riktad reklam , nivåbaserade tjänster , upphovsrättsupprätthållande och statistik över nätverksanvändning. Dessa, och många andra innehållsmedvetna applikationer, är baserade på förmågan att urskilja specifik intelligens som finns i paketnyttolaster med hjälp av DPI-tekniker ( Deep Packet Inspection) .
Paketbehandlingsarkitekturer
Paketväxling introducerar också några arkitektoniska kompromisser. Utförande av paketbehandlingsfunktioner vid överföring av information introducerar förseningar som kan vara skadliga för den applikation som utförs. Till exempel i röst- och videoapplikationer kan den nödvändiga omvandlingen från analog till digital och tillbaka igen vid destinationen tillsammans med förseningar som introduceras av nätverket orsaka märkbara luckor som är störande för användarna. Latens är ett mått på tidsfördröjningen som upplevs av ett komplext system.
Flera arkitektoniska tillvägagångssätt för paketbearbetning har utvecklats för att möta prestanda- och funktionalitetskraven för ett specifikt nätverk och för att ta itu med latensproblemet.
Enkeltrådad arkitektur (standardoperativsystem)
En standard nätverksstack använder tjänster som tillhandahålls av operativsystemet (OS) som körs på en enda processor ( enkeltrådad) . Även om enkelgängade arkitekturer är de enklaste att implementera, utsätts de för omkostnader förknippade med prestanda för OS-funktioner såsom förhandsavgöranden, trådhantering, timers och låsning. Dessa OS-bearbetningskostnader läggs på varje paket som passerar genom systemet, vilket resulterar i en genomströmningsstraff.
Flertrådig arkitektur (operativsystem för flera processer)
Prestandaförbättringar kan göras för en OS-nätverksstack genom att anpassa programvaran för protokollstackbearbetning för att stödja flera processorer ( flertrådiga ), antingen genom användning av Symmetrical Multiprocessing (SMP) -plattformar eller multicore-processorarkitektur . Prestandaökningar realiseras för ett litet antal processorer, men lyckas inte skala linjärt över ett större antal processorer (eller kärnor) och en processor med till exempel åtta kärnor kanske inte bearbetar paket betydligt snabbare än en med två kärnor.
Snabb vägarkitektur (bypass av operativsystem)
I en implementering av snabb väg är dataplanet uppdelat i två lager. Det undre lagret, vanligtvis kallat den snabba vägen, bearbetar majoriteten av inkommande paket utanför OS-miljön och utan att ådra sig någon av de OS-omkostnader som försämrar den totala prestandan. Endast de paket som kräver komplex bearbetning vidarebefordras till OS-nätverksstacken (det övre lagret av dataplanet), som utför de nödvändiga hanterings-, signalerings- och kontrollfunktionerna. När komplexa algoritmer som routing eller säkerhet krävs, skickar OS-nätverksstacken vidare paketet till dedikerade programvarukomponenter i kontrollplanet.
En flerkärnig processor kan ge ytterligare prestandaförbättringar till en implementering av snabb väg. För att maximera den totala systemgenomströmningen kan flera kärnor dedikeras till att köra den snabba vägen, medan endast en kärna krävs för att köra operativsystemet, OS-nätverksstacken och applikationens kontrollplan.
Den enda begränsningen när du konfigurerar plattformen är att eftersom kärnorna som kör den snabba sökvägen körs utanför operativsystemet, måste de endast dedikeras till den snabba vägen och inte delas med annan programvara. Systemet kan också konfigureras om dynamiskt när trafikmönster förändras. Att dela upp dataplanet i två lager ökar också komplexiteten eftersom de två lagren måste ha samma information för att säkerställa systemkonsistens.
Teknik för paketbearbetning
För att skapa specialiserade paketbearbetningsplattformar har en mängd olika tekniker utvecklats och distribuerats. Dessa teknologier, som spänner över bredden av hårdvara och mjukvara, har alla utformats med syftet att maximera hastighet och genomströmning samtidigt som latensen minimeras.
Nätverksprocessorer
En nätverksprocessorenhet (NPU) liknar i många avseenden generella processorer (GPP) som driver de flesta datorer men med sin interna arkitektur och funktioner skräddarsydda för nätverkscentrerade operationer. NPU:er har vanligtvis nätverksspecifika funktioner som adresssökning, mönstermatchning och köhantering inbyggda i sin mikrokod . Paketbehandlingsoperationer på högre nivå, såsom säkerhet eller intrångsdetektering, är ofta inbyggda i NPU-arkitekturer. Exempel på nätverksprocessorer skulle vara:
- Intel - IXP2xxx-familjen
- Netronome - NFP-6xxx/4xxx/32xx-familjer
- PMC Sierra – familjen Winpath
- EZChip – NP-x familj
Flerkärniga processorer
En flerkärnig processor är ett enda halvledarpaket som har 2 eller flera kärnor, som var och en representerar en individuell processorenhet, som kan exekvera kod parallellt. Generella processorer som Intel Xeon stöder nu upp till 8 kärnor. Vissa flerkärniga processorer integrerar dedikerade paketbearbetningsmöjligheter för att ge en komplett SoC (System on Chip). De integrerar i allmänhet Ethernet- gränssnitt, kryptomotorer , mönstermatchningsmotorer , hårdvaruköer för QoS och ibland mer sofistikerade funktioner som använder mikrokärnor . Alla dessa hårdvarufunktioner kan avlasta mjukvarupaketbearbetningen. Nya exempel på dessa specialiserade flerkärniga paket, såsom Cavium OCTEON II, kan stödja från 2 upp till 32 kärnor.
- Tilera - TILE-Gx-processorfamiljen
- Cavium Networks - OCTEON & OCTEON II flerkärniga processorfamiljer
- Freescale – QorIQ Processing Platforms
- NetLogic Microsystems – XLP-, XLR- och XLS-processorfamiljer
Hårdvaruacceleratorer
För tydligt definierbara och repetitiva åtgärder kommer att skapa en dedikerad accelerator som är inbyggd direkt i en halvledarhårdvarulösning påskynda driften jämfört med programvara som körs på en processor för allmänna ändamål. Initiala implementeringar använde FPGA (fältprogrammerbar gate array) eller ASIC (Application-specific Integrated Circuit), men nu är specifika funktioner som kryptering och komprimering inbyggda i både GPP och NPU som interna hårdvaruacceleratorer. Aktuella flerkärniga processorexempel med nätverksspecifika hårdvaruacceleratorer inkluderar Cavium CN63xx med acceleration för säkerhet, TCP/IP, QOS och HFA-mönstermatchning och Netlogic Microsystems XFS-processorfamilj med nätverks- och säkerhetsaccelerationsmotorer.
Djup paketinspektion
Att kunna fatta beslut baserat på innehållet i individuella paket möjliggör ett brett utbud av nya applikationer såsom Policy Charging and Rules Functions ( PCRF ) och Quality of Service. Paketbearbetningssystem separerar specifika trafiktyper genom användning av DPI-tekniker (Deep Packet Inspection). DPI-tekniker använder mönstermatchningsalgoritmer för att titta in i datanyttolasten för att identifiera innehållet i varje paket som strömmar genom en nätverksenhet. Framgångsrika mönstermatchningar rapporteras till den kontrollerande applikationen för att eventuella ytterligare åtgärder ska kunna vidtas.
Programvara för paketbearbetning
Operativsystemsmjukvara kommer att innehålla vissa standardnätverksstackar som kommer att fungera i både en- och flerkärniga miljöer. För att kunna implementera bypass-arkitekturer för operativsystem (snabb väg) krävs användning av specialiserad paketbearbetningsprogramvara såsom 6WINDs 6WINDGate . Denna typ av programvara tillhandahåller en uppsättning nätverksprotokoll som kan distribueras över flera blad, processorer eller kärnor och skalas på lämpligt sätt.
externa länkar
- Levande historia. " Internethistorik "
- Hur, Walt. (2010) " En kort historia om internet "
- Internetsamhälle. " Internets historia "
- Levande historia. " Paketväxlingshistorik "
- Roberts, Dr Lawrence G. (november 1978). " Utvecklingen av paketväxling "
- Marshall, Dave. “ Internets historia – Tidslinje. ”
- Rami Rosen " Network acceleration with DPDK ", artikel i lwn.net, juli 2017.
- Rami Rosen " Userspace Networking with DPDK ", artikel i Linux Journal, april 2018.