Pakkeforarbejdning - Packet processing
I digital kommunikation netværk, pakkebehandling refererer til de mange forskellige algoritmer , der anvendes til en pakke af data eller information, som den bevæger sig gennem de forskellige netværkselementer i et kommunikationsnet. Med den øgede ydelse af netværksgrænseflader er der et tilsvarende behov for hurtigere pakkebehandling.
Der er to brede klasser af pakkebehandlingsalgoritmer, der stemmer overens med den standardiserede netværksinddeling af kontrolplan og dataplan . Algoritmerne anvendes til enten:
- Kontrolinformation indeholdt i en pakke, der bruges til at overføre pakken sikkert og effektivt fra oprindelse til destination
- eller
- Dataindholdet (ofte kaldet nyttelasten) på pakken, der bruges til at give en vis indholdsspecifik transformation eller tage en indholdsdrevet handling.
Inden for en hvilken som helst netværksaktiveret enhed (f.eks. Router , switch , netværkselement eller terminal, såsom en computer eller smartphone), er det pakkebehandlingsundersystemet, der styrer traverseringen af flerlagsnetværket eller protokolstakken fra det nederste, fysiske og netværkslag alle vejen igennem til applikationslaget .
Historie
Historien om pakkebehandling er historien om Internettet og pakkeomskiftning . Milepæle for pakkebehandling inkluderer:
- 1962–1968: Tidlig forskning i pakkeomskiftning
- 1969: 1. to noder af ARPANET forbundet; 15 websteder er forbundet ved udgangen af 1971 med e-mail som en ny applikation
- 1973: Pakkeskiftede stemmeforbindelser via ARPANET med Network Voice Protocol . Filoverførselsprotokol (FTP) specificeret
- 1974: Transmission Control Protocol (TCP) specificeret
- 1979: VoIP - NVP, der kører på tidlige versioner af IP
- 1981: IP og TCP standardiseret
- 1982: TCP / IP standardiseret
- 1991: World Wide Web (WWW) udgivet af CERN , forfattet af Tim Berners-Lee
- 1998: IPv6 først offentliggjort
Historiske referencer og tidslinje kan findes i afsnittet Eksterne ressourcer nedenfor.
Kommunikationsmodeller
For at netværk skal lykkes, er det nødvendigt at have en samlende standard, som definerer arkitekturen i netværkssystemer. Det grundlæggende krav til en sådan standard er at tilvejebringe en ramme, der gør det muligt for hardware- og softwareproducenter overalt i verden at udvikle netværksteknologier, der vil arbejde sammen og at udnytte deres kumulative investeringsmuligheder til at bevæge netværksstatus fremad.
I 1970'erne iværksatte to organisationer, Den Internationale Organisation for Standardisering (ISO) og Den Internationale Telegraf- og Telefonrådgivende Komité (CCITT, nu kaldet Den Internationale Telekommunikationsunion (ITU-T)) projekter med det mål at udvikle internationale netværksstandarder. I 1983 blev disse bestræbelser slået sammen, og i 1984 blev standarden, kaldet The Basic Reference Model for Open Systems Interconnection , udgivet af ISO og som standard X.200 af ITU-T.
OSI-modellen er en 7-lags model, der beskriver, hvordan et netværksoperativsystem fungerer. En lagdelt model har mange fordele, herunder evnen til at ændre et lag uden at påvirke de andre og som en model til forståelse af, hvordan et netværks-OS fungerer. Så længe sammenkoblingen mellem lag opretholdes, kan leverandører forbedre implementeringen af et individuelt lag uden at påvirke andre lag.
Parallelt med udviklingen af OSI-modellen blev et forskningsnetværk implementeret af United States Defense Advanced Research Projects Agency ( DARPA ). Internetbearbejdningsprotokollen, der blev udviklet til at understøtte netværket, kaldet ARPAnet , blev kaldt TCP eller Transmission Control Program. Efterhånden som forskningen og udviklingen skred frem, og størrelsen af netværket voksede, blev det bestemt, at det internetbearbejdningsdesign, der blev brugt, blev uhåndterligt, og at det ikke nøjagtigt fulgte OSI-modelens lagdelte tilgang. Dette førte til opdeling af den oprindelige TCP og oprettelsen af TCP / IP- arkitekturen - TCP står nu for Transmission Control Protocol og IP-status for Internet Protocol.
Fremkomst af pakkeforarbejdning
Pakkenetværk opstod som et resultat af behovet i begyndelsen af 1960'erne for at gøre kommunikationsnetværk mere pålideligt. Det kan ses som implementeringen af den lagdelte model ved hjælp af en pakkestruktur.
Tidlige kommercielle netværk blev sammensat af dedikerede, analoge kredsløb, der blev brugt til stemmekommunikation. Konceptet med pakkeomskiftning blev introduceret for at skabe et kommunikationsnetværk, der fortsat ville fungere på trods af udstyrsfejl i hele netværket. I dette paradigmeskift betragtes netværk som samlinger af systemer, der transmitterer data i små pakker, der arbejder sig fra oprindelse til destination ved et vilkårligt antal ruter. Indledende pakkebehandlingsfunktioner understøttede routing af pakker gennem netværket, transmissionsfejlregistrering og -korrektion og andre netværksadministrationsfunktioner .
Pakkeskift med dets understøttende pakkebehandlingsfunktioner har flere praktiske fordele i forhold til traditionelle kredsløbskoblede netværk:
- Et helt digitalt miljø, der understøtter flere datatyper (såsom tale, data og video), berikede ikke kun brugernes liv, det øgede effektiviteten hos netværksudbydere, der tidligere var nødt til at implementere forskellige netværk for at understøtte forskellige datatyper.
- Større båndbreddeudnyttelse med flere 'logiske kredsløb' ved hjælp af de samme fysiske links
- Kommunikationsoverlevelsesevne på grund af flere stier gennem netværket fra enhver oprindelse til enhver destination
- Merværdiinformationstjenester kan indføres ved hjælp af pakkebehandlingsfunktioner for at give den nødvendige behandling
Pakkestruktur
En netværkspakke er den grundlæggende byggesten for pakkekoblede netværk. Når et element som en fil, e-mail-besked, tale- eller videostream transmitteres gennem netværket, brydes det i stykker kaldet pakker, der kan flyttes mere effektivt gennem netværket end en stor datablok. Talrige standarder dækker strukturen af pakker, men typisk består pakker af tre elementer:
- Overskrift - indeholder information om pakken, inklusive oprindelse, destination, længde og pakkenummer.
- Nyttelast (eller body) - indeholder de data, der indeholder pakken
- Trailer - angiver slutningen af pakken og inkluderer ofte fejlregistrerings- og korrektionsoplysninger
I et pakkeomskiftet netværk pakker den afsendende værtscomputer det originale element, og hver pakke dirigeres gennem netværket til dets destination. Nogle netværk brugte pakker med fast længde, typisk 1024 bits, mens andre bruger pakker med variabel længde og inkluderer pakkelængden i overskriften.
Individuelle pakker kan tage forskellige ruter til destinationen og ankomme til destinationen uden for ordre. Destinationscomputeren verificerer rigtigheden af dataene i hver pakke (ved hjælp af oplysninger i traileren), samler det originale emne igen ved hjælp af pakkenummeroplysningerne i overskriften og præsenterer varen for den modtagende applikation eller bruger.
Dette grundlæggende eksempel inkluderer de tre mest grundlæggende funktioner til pakkeforarbejdning, pakning, routing og samling. Pakkebehandlingsfunktioner spænder fra det enkle til det meget komplekse. Som et eksempel er rutefunktionen faktisk en flertrinsproces, der involverer forskellige optimeringsalgoritmer og tabelopslag. En grundlæggende rutefunktion på Internettet ligner:
- 1. Kontroller, om destinationen er en adresse, der ejes af denne computer. I så fald skal du behandle pakken. Hvis ikke:
- en. Kontroller, om IP-videresendelse er indstillet til 'Ja'. Hvis nej, ødelægges pakken. Hvis ja, så
- jeg. Kontroller, om et netværk tilknyttet denne computer ejer destinationsadressen. Hvis ja, diriger pakken til det relevante netværk. Hvis nej, så
- 1. Kontroller, om der er nogen rute til destinationsnetværket. Hvis ja, diriger pakken til den næste hop-gateway. Hvis nej, ødelæg pakken.
- jeg. Kontroller, om et netværk tilknyttet denne computer ejer destinationsadressen. Hvis ja, diriger pakken til det relevante netværk. Hvis nej, så
- en. Kontroller, om IP-videresendelse er indstillet til 'Ja'. Hvis nej, ødelægges pakken. Hvis ja, så
Mere avancerede routing funktioner omfatter netværk load balancing og hurtigste rute algoritmer. Disse eksempler illustrerer rækken af mulige pakkebehandlingsalgoritmer, og hvordan de kan indføre betydelige forsinkelser i transmissionen af en vare. Netværksudstyrsdesignere bruger ofte en kombination af hardware og softwareacceleratorer for at minimere latenstiden i netværket.
Netværksudstyrsarkitektur
IP-baseret udstyr kan opdeles i tre grundlæggende elementer: dataplan, kontrolplan og styringsplan.
Dataplan
Den data plan er et delsystem af et netværk node, der modtager og sender pakker fra en grænseflade, behandler dem som kræves af den gældende protokol, og leverer, dråber, eller fremad dem efter behov.
Kontrolplan
Den kontrol flyet vedligeholder oplysninger, der kan bruges til at ændre data, der anvendes af den registrerede fly. Vedligeholdelse af disse oplysninger kræver håndtering af komplekse signalprotokoller. Implementering af disse protokoller i dataplanet vil føre til dårlig videresendelsesydelse. En almindelig måde at styre disse protokoller på er at lade dataplanet registrere indgående signalpakker og videresende dem lokalt til kontrolplanet. Kontrolplanets signalprotokoller kan opdatere dataplaninformationen og injicere udgående signalpakker i dataplanet. Denne arkitektur fungerer, fordi signalering af trafik er en meget lille del af den globale trafik.
Ledelsesplan
Ledelsesplanet giver en administrativ grænseflade til det samlede system. Den indeholder processer, der understøtter operationel administration, styring eller konfiguration / klargøringshandlinger såsom:
- Faciliteter til understøttelse af statistikindsamling og aggregering
- Støtte til implementering af styringsprotokoller
- Kommandolinjegrænseflade, grafiske brugerkonfigurationsgrænseflader via websider eller traditionel SNMP- styring ( Simple Network Management Protocol ).
Mere sofistikerede løsninger baseret på XML ( eXtensible Markup Language ) kan også inkluderes.
Eksempler
Listen over pakkebehandlingsapplikationer er normalt opdelt i to kategorier. Følgende er et par eksempler valgt for at illustrere den sort, der anvendes i dag.
Kontrol applikationer
- Videresendelse , den grundlæggende funktion af en router
- Kryptering / dekryptering , beskyttelse af information i nyttelast ved hjælp af kryptografiske algoritmer
- Quality of Service (QOS) , der behandler pakker forskelligt, såsom levering af prioriterede eller specialiserede tjenester afhængigt af pakkens klasse
Dataprogrammer
- Transkodning , transformation af en bestemt videokodning til den bestemte kodning, der bruges af destinationen
- Transrating & Transizing, transformere en billedstørrelse og tæthed, der passer til destinationsenheden
- Billed- eller stemmegenkendelse , detektering af et bestemt mønster (billede eller stemme), der matches med dem i en database med en vis deltagende handling, der udføres, når en kamp opstår
- Avancerede applikationer omfatter områder som sikkerhed ( opkaldsovervågning og forebyggelse af datalækage ), målrettet reklame , differentierede tjenester , copyrighthåndhævelse og netværksbrugsstatistikker. Disse og mange andre indholdsbevidste applikationer er baseret på evnen til at skelne specifik intelligens indeholdt i pakke nyttelast ved hjælp af Deep Packet Inspection (DPI) teknologier.
Arkitekturer til pakkeforarbejdning
Pakkeskift introducerer også nogle arkitektoniske kompromiser. Udførelse af pakkebehandlingsfunktioner i transmission af information indfører forsinkelser, der kan være skadelige for den applikation, der udføres. For eksempel i tale- og videoapplikationer kan den nødvendige konvertering fra analog til digital og tilbage igen på destinationen sammen med forsinkelser indført af netværket forårsage mærkbare huller, der er forstyrrende for brugerne. Latency er et mål for den tidsforsinkelse, som et komplekst system oplever.
Flere arkitektoniske tilgange til pakkebehandling er udviklet til at imødekomme ydeevne og funktionalitetskrav for et specifikt netværk og for at løse latenstidsproblemet.
Enkelt gevind arkitektur (standard operativsystem)
En standard netværksstabel bruger tjenester leveret af operativsystemet (OS), der kører på en enkelt processor ( enkelt gevind ). Selvom enkelttrådede arkitekturer er de mest enkle at implementere, er de underlagt omkostninger forbundet med udførelsen af OS-funktioner såsom præemptions, trådadministration, timere og låsning. Disse OS-behandlingsomkostninger pålægges hver pakke, der passerer gennem systemet, hvilket resulterer i en overførselsstraf.
Multitrådet arkitektur (operativsystem til flere processer)
Ydelsesforbedringer kan foretages i en OS-netværksstak ved at tilpasse protokolstakbehandlingssoftwaren til at understøtte flere processorer ( multi-threaded ) enten ved brug af Symmetrical Multiprocessing (SMP) -platforme eller multicore-processorarkitektur . Ydelsesforøgelser realiseres for et lille antal processorer, men kan ikke skaleres lineært over større antal processorer (eller kerner), og en processor med for eksempel otte kerner behandler muligvis ikke pakker signifikant hurtigere end en med to kerner.
Hurtig sti-arkitektur (bypass-operativsystem)
I en hurtig stiimplementering er dataplanet opdelt i to lag. Det nederste lag, typisk kaldet den hurtige sti, behandler størstedelen af indgående pakker uden for OS-miljøet og uden at pådrage sig nogen af OS-omkostningerne, der forringer den samlede ydeevne. Kun de pakker, der kræver kompleks behandling, videresendes til OS-netværksstakken (det øverste lag af dataplanet), der udfører de nødvendige styrings-, signal- og kontrolfunktioner. Når der kræves komplekse algoritmer som routing eller sikkerhed, videresender OS-netværkspakken pakken til dedikerede softwarekomponenter i kontrolplanet.
En processor med flere kerner kan give yderligere ydelsesforbedring til en hurtig stiimplementering. For at maksimere den samlede systemgennemstrømning kan flere kerner dedikeres til at køre den hurtige sti, mens der kun kræves en kerne til at køre operativsystemet, OS-netværksstakken og applikationens kontrolplan.
Den eneste begrænsning ved konfiguration af platformen er, at da kernerne, der kører den hurtige sti, kører uden for operativsystemet, skal de udelukkende være dedikeret til den hurtige sti og ikke deles med anden software. Systemet kan også omkonfigureres dynamisk, når trafikmønstre ændres. Opdeling af dataplanet i to lag tilføjer også kompleksitet, da de to lag skal have de samme oplysninger for at sikre systemkonsistens.
Pakkeforarbejdningsteknologier
For at skabe specialiserede pakkebehandlingsplatforme er en række teknologier blevet udviklet og implementeret. Disse teknologier, der spænder over bredden af hardware og software, er alle designet med det formål at maksimere hastighed og gennemstrømning og samtidig minimere latenstid.
Netværksprocessorer
En netværksprocessorenhed (NPU) svarer i mange henseender til almindelige processorer (GPP), der driver de fleste computere, men med sin interne arkitektur og funktioner skræddersyet til netværkscentrerede operationer. NPU'er har almindeligvis netværksspecifikke funktioner såsom adresseopslag, mønstermatchning og køadministration indbygget i deres mikrokode . Pakkebehandlingsoperationer på højere niveau såsom sikkerhed eller detektion af indtrængen er ofte indbygget i NPU-arkitekturer. Eksempler på netværksprocessorer vil omfatte:
- Intel - IXP2xxx-familien
- Netronome - NFP-6xxx / 4xxx / 32xx familier
- PMC Sierra - Winpath-familie
- EZChip - NP-x familie
Multicore processorer
En multicore-processor er en enkelt halvlederpakke, der har 2 eller flere kerner, der hver repræsenterer en individuel behandlingsenhed, der er i stand til at udføre kode parallelt. Generelle CPU'er såsom Intel Xeon understøtter nu op til 8 kerner. Nogle multicore-processorer integrerer dedikerede pakkebehandlingsfunktioner for at give et komplet SoC (System on Chip). De integrerer generelt Ethernet interfaces, krypto-motorer , mønster matchende motorer, hardware køer for QoS og nogle gange mere sofistikerede funktioner ved hjælp mikro-kerner. Alle disse hardwarefunktioner er i stand til at downloade behandling af softwarepakker. Nylige eksempler på disse specialiserede multicore-pakker, såsom Cavium OCTEON II, kan understøtte fra 2 til 32 kerner.
- Tilera - TILE-Gx Processorfamilie
- Cavium Networks - OCTEON & OCTEON II processorerfamilier med flere kerner
- Freescale - QorIQ-behandlingsplatforme
- NetLogic Microsystems - XLP-, XLR- og XLS-processorfamilier
Hardware acceleratorer
For klart definerbare og gentagne handlinger vil oprettelse af en dedikeret accelerator, der er indbygget direkte i en halvlederhardwareløsning, fremskynde driften sammenlignet med software, der kører på en almindelig processor. Indledende implementeringer brugte FPGA'er (feltprogrammerbar gate array) eller ASIC (Application-specific Integrated Circuit), men nu er specifikke funktioner såsom kryptering og komprimering indbygget i både GPP'er og NPU'er som interne hardwareacceleratorer. Nuværende multicore-processoreksempler med netværksspecifikke hardwareacceleratorer inkluderer Cavium CN63xx med acceleration for sikkerhed, TCP / IP, QOS og HFA-mønstermatchning og Netlogic Microsystems XFS-processorfamilien med netværks- og sikkerhedsaccelerationmotorer.
Dyb pakkeinspektion
At være i stand til at træffe beslutninger baseret på indholdet af individuelle pakker muliggør en bred vifte af nye applikationer såsom Policy Charging og Rules Functions ( PCRF ) og servicekvalitet. Pakkebehandlingssystemer adskiller specifikke trafiktyper ved hjælp af Deep Packet Inspection (DPI) teknologier. DPI-teknologier bruger mønstermatchingsalgoritmer til at se inde i datanyttelasten for at identificere indholdet af hver eneste pakke, der flyder gennem en netværksenhed. Vellykkede mønsterkampe rapporteres til den kontrollerende applikation for at foretage passende yderligere handlinger.
Pakkebehandlingssoftware
Operativsystemsoftware indeholder visse standardnetværksstakke, der fungerer i både enkelt- og multicore-miljøer. For at være i stand til at implementere bypass-system (hurtig sti) -arkitekturer, kræves der brug af specialiseret pakkebehandlingssoftware såsom 6WINDs 6WINDGate . Denne type software giver en række netværksprotokoller, der kan distribueres på tværs af flere blade, processorer eller kerner og skaleres korrekt.
Referencer
eksterne links
- Levende historie. “ Internethistorik ”
- Howe, Walt. (2010) “ En kort historie på Internettet ”
- Internetsamfund. “ Internets historier ”
- Levende historie. " Pakkeomskiftningshistorik "
- Roberts, Dr. Lawrence G. (november 1978). “ Udviklingen af pakkeskift ”
- Marshall, Dave. “ Internethistorie - tidslinje. ”
- Rami Rosen " Netværksacceleration med DPDK ", artikel i lwn.net, juli 2017.
- Rami Rosen " Userspace Networking with DPDK ", artikel i Linux Journal, april 2018.