Pakettien käsittely - Packet processing

In digitaalisen viestinnän verkot, pakettien käsittely viittaa erilaisia algoritmeja , joita sovelletaan pakettivälitteisen datan tai tiedon, kun se liikkuu läpi erilaisten verkkoelementtien viestintäverkon. Verkkoliitäntöjen lisääntyneen suorituskyvyn myötä on vastaava tarve nopeuttaa pakettien käsittelyä.

On olemassa kaksi laajaa luokkaa paketin algoritmeja, jotka ovat kohdakkain standardoitu verkon osa-alue on ohjaustason ja datatason . Algoritmeja käytetään joko:

  • Ohjausinformaatio, joka sisältyy pakettiin, jota käytetään siirtämään paketti turvallisesti ja tehokkaasti lähtöpaikasta määränpäähän
tai
  • Paketin tietosisältö (jota usein kutsutaan hyötykuormaksi), jota käytetään jonkin sisällökohtaisen muunnoksen aikaansaamiseen tai sisältöohjatun toiminnan suorittamiseen.

Kaikissa verkoissa yhteensopivan laitteen (esim reititin , kytkin , verkkoelementti tai päätelaite, kuten tietokone tai älypuhelin) se on paketti prosessointialajärjestelmä, joka hallitsee läpikulun monikerroksisen verkon tai protokollapinon alemmasta, fyysinen ja verkko kerrokset kaikki tie läpi sovelluskerroksen .

Historia

Pakettiprosessoinnin historia on Internetin ja pakettikytkennän historia . Pakettien käsittelyn virstanpylväitä ovat:

Historialliset viitteet ja aikajana löytyvät alla olevasta Ulkoiset resurssit -osiosta.

Viestintämallit

Verkkojen menestyminen edellyttää, että käytössä on yhtenäistävä standardi, joka määrittelee verkkojärjestelmien arkkitehtuurin. Perusvaatimus tällaiselle standardille on tarjota kehys, jonka avulla laitteisto- ja ohjelmistovalmistajat ympäri maailmaa voivat kehittää verkkotekniikoita, jotka toimivat yhdessä, ja hyödyntää kumulatiivisia sijoitusmahdollisuuksiaan verkkotoiminnan edistämiseksi.

1970-luvulla kaksi organisaatiota, Kansainvälinen standardointijärjestö (ISO) ja Kansainvälinen sähke- ja puhelinneuvontakomitea (CCITT, nykyisin nimellä Kansainvälinen televiestintäliitto (ITU-T)), aloittivat kumpikin hankkeet kansainvälisten verkkostandardien kehittämiseksi. Vuonna 1983 nämä ponnistelut yhdistettiin ja vuonna 1984 julkaistiin ISO, ja ITU-T standardina X.200 avoimen järjestelmän yhteenliittämisen perusviitemalli .

OSI-malli on 7-kerroksinen malli, joka kuvaa verkon käyttöjärjestelmän toimintaa. Kerroksisella mallilla on monia etuja, kuten kyky vaihtaa yhtä kerrosta vaikuttamatta muihin ja malli verkko-käyttöjärjestelmän toiminnan ymmärtämiseksi. Niin kauan kuin kerrosten välinen yhteys on ylläpidetty, toimittajat voivat parantaa yksittäisen kerroksen toteutusta vaikuttamatta muihin kerroksiin.

OSI-mallin kehittämisen rinnalla Yhdysvaltain puolustusalan edistyneiden tutkimushankkeiden virasto ( DARPA ) toteutti tutkimusverkoston . Verkkoa varten kehitetty verkkotyöprotokolla, nimeltään ARPAnet , nimeltään TCP tai Transmission Control Program. Tutkimuksen ja kehityksen edetessä ja verkon koon kasvaessa todettiin, että käytetyn verkkotyöskentelyn suunnittelu oli tulossa raskaaksi eikä se noudattanut tarkalleen OSI-mallin kerrostettua lähestymistapaa. Tämä johti alkuperäisen TCP: n jakamiseen ja TCP / IP- arkkitehtuurin luomiseen - TCP on nyt Transmission Control Protocol ja IP Internet Protocol.

Pakettien käsittelyn tulo

Pakettiverkot syntyivät 1960-luvun alun tarpeen vuoksi tehdä viestintäverkoista luotettavampia. Sitä voidaan pitää kerrostetun mallin toteutuksena pakettirakennetta käyttämällä.

Varhaiset kaupalliset verkot koostuivat erillisistä analogisista piireistä, joita käytettiin puheviestintään. Pakettikytkennän käsite otettiin käyttöön luomaan tietoliikenneverkko, joka toimisi edelleen huolimatta laitteiden häiriöistä koko verkossa. Tässä paradigman muutoksessa verkkoja pidetään järjestelmäkokoelmina, jotka lähettävät tietoja pienissä paketeissa, jotka kulkevat tiensä alusta määränpäähän millä tahansa reitillä. Alkuperäiset pakettinkäsittelytoiminnot tukivat pakettien reititystä verkon kautta, lähetysvirheiden havaitsemista ja korjaamista sekä muita verkonhallintatoimintoja .

Pakettikytkennällä ja sitä tukevilla pakettinkäsittelytoiminnoilla on useita käytännön etuja perinteisiin piirikytkentäisiin verkkoihin verrattuna:

  • Täysin digitaalinen ympäristö, joka tukee useita tietotyyppejä (kuten ääni, data ja video), ei vain rikastanut käyttäjien elämää, vaan lisäsi merkittävästi niiden verkkopalvelujen tarjoajien tehokkuutta, jotka aiemmin joutuivat ottamaan käyttöön erilaisia ​​verkkoja erilaisten tietotyyppien tukemiseksi.
  • Parempi kaistanleveyden käyttö, useita "loogisia piirejä" käyttäen samoja fyysisiä linkkejä
  • Viestinnän selviytymiskyky, koska verkon kautta kulkee useita polkuja mistä tahansa lähtöpaikasta mihin tahansa määränpäähän
  • Lisäarvoa tuottavat tietopalvelut voidaan ottaa käyttöön käyttämällä pakettinkäsittelytoimintoja tarvittavan käsittelyn tarjoamiseksi

Pakettirakenne

Verkko paketti on keskeinen rakennuspalikka pakettikytkentäisiä verkkoja. Kun kohde, kuten tiedosto, sähköpostiviesti, ääni- tai videovirta, lähetetään verkon kautta, se jaetaan paloiksi, joita kutsutaan paketeiksi, joita voidaan siirtää tehokkaammin verkon kautta kuin yksi iso tietolohko. Lukuisat standardit kattavat pakettien rakenteen, mutta tyypillisesti paketit koostuvat kolmesta osasta:

  • Otsikko - sisältää tietoja paketista, mukaan lukien alkuperä, määränpää, pituus ja paketin numero.
  • Hyötykuorma (tai runko) - sisältää paketin sisältävän datan
  • Trailer - ilmaisee paketin lopun ja sisältää usein virheiden havaitsemista ja korjaamista koskevia tietoja

Vuonna pakettikytkentäisen verkon lähettävä isäntäkone paketoi alkuperäinen kohde ja kukin paketti reititetään verkon kautta sen määränpäähän. Jotkut verkot käyttivät kiinteän pituisia paketteja, tyypillisesti 1024 bittiä, kun taas toiset käyttävät vaihtelevan pituisia paketteja ja sisällyttävät paketin pituuden otsikkoon.

Yksittäiset paketit voivat viedä eri reittejä määränpäähän ja saapua määränpäähän epäkunnossa. Kohdetietokone tarkistaa jokaisen paketin tietojen oikeellisuuden (käyttäen perävaunun tietoja), kokoaa alkuperäisen kohteen uudelleen otsikossa olevien pakettien numerotietojen avulla ja esittelee kohteen vastaanottavalle sovellukselle tai käyttäjälle.

Tämä perusesimerkki sisältää kolme tärkeintä pakettinkäsittelytoimintoa, paketointi, reititys ja kokoonpano. Pakettien käsittelytoiminnot vaihtelevat yksinkertaisesta erittäin monimutkaiseen. Esimerkiksi reititystoiminto on itse asiassa monivaiheinen prosessi, joka sisältää erilaisia ​​optimointialgoritmeja ja taulukoiden hakuja. Perusreititystoiminto Internetissä näyttää tältä:

1. Tarkista, onko kohde tämän tietokoneen "omistama" osoite. Jos on, käsittele paketti. Jos ei:
a. Tarkista, onko IP-edelleenlähetys asetettu Kyllä. Jos ei, paketti tuhoutuu. Jos kyllä, niin
i. Tarkista, onko tähän tietokoneeseen liitetyssä verkossa kohdeosoite. Jos kyllä, reititä paketti sopivaan verkkoon. Jos ei, niin
1. Tarkista, onko kohdeverkkoon reittiä. Jos kyllä, reititä paketti seuraavaan hyppyyhdyskäytävään. Jos ei, tuhota paketti.

Kehittyneemmät reititystoiminnot sisältävät verkon kuormituksen tasaamisen ja nopeimmat reittialgoritmit. Nämä esimerkit havainnollistavat mahdollista pakettinkäsittelyalgoritmien aluetta ja kuinka ne voivat aiheuttaa merkittäviä viiveitä kohteen lähettämisessä. Verkkolaitteiden suunnittelijat käyttävät usein laitteisto- ja ohjelmistokiihdyttimien yhdistelmää verkon viiveen minimoimiseksi .

Verkkolaitteiden arkkitehtuuri

IP-pohjaiset laitteet voidaan jakaa kolmeen peruselementtiin: tietotasoon, ohjaustasoon ja hallintatasoon.

Tietotaso

Datataso on osajärjestelmä verkkosolmun, joka vastaanottaa ja lähettää paketteja rajapinnan, käsittelee niitä edellytetään kyseistä protokollaa, ja tuottaa, putoaa, tai eteenpäin niitä tarvittaessa.

Ohjaustaso

Ohjaustaso ylläpitää informaatiota, jota voidaan käyttää muuttamaan tietoja käytetään datatason. Tämän tiedon ylläpito edellyttää monimutkaisten merkinantoprotokollien käsittelyä. Näiden protokollien käyttöönotto datasarjassa johtaisi heikkoon edelleenlähetystehoon. Yleinen tapa hallita näitä protokollia on antaa datatason havaita saapuvat signalointipaketit ja välittää ne paikallisesti ohjaustasolle. Ohjaustason signalointiprotokollat ​​voivat päivittää datatasotiedot ja injektoida lähteviä signalointipaketteja datatasoon. Tämä arkkitehtuuri toimii, koska liikenteen merkinanto on hyvin pieni osa globaalista liikenteestä.

Hallintataso

Hallintataso tarjoaa hallinnollisen käyttöliittymän koko järjestelmään. Se sisältää prosesseja, jotka tukevat operatiivista hallintoa, hallintaa tai määritys- / valmistelutoimintoja, kuten

  • Tilastotietojen keräämisen ja yhdistämisen tukeminen
  • Tuki hallintaprotokollien toteuttamiselle,
  • Komentorivikäyttöliittymä, graafiset käyttäjän määritysrajapinnat verkkosivujen kautta tai perinteinen SNMP ( Simple Network Management Protocol ) -hallinta.

Mukana voi olla myös kehittyneempiä ratkaisuja, jotka perustuvat XML: ään ( eXtensible Markup Language ).

Esimerkkejä

Pakettiprosessointisovellusten luettelo on yleensä jaettu kahteen luokkaan. Seuraavassa on muutama esimerkki, joka on valittu havainnollistamaan nykyään käytettyä lajiketta.

Ohjaussovellukset

Tietosovellukset

Pakettien käsittelyarkkitehtuurit

Pakettikytkentä tuo myös joitain arkkitehtonisia kompromisseja. Pakettinkäsittelytoimintojen suorittaminen tiedonsiirrossa aiheuttaa viiveitä, jotka voivat olla haitallisia suoritettavalle sovellukselle. Esimerkiksi ääni- ja videosovelluksissa tarvittava muunnos analogisesta digitaaliseksi ja takaisin määränpäähän sekä verkon aiheuttamat viiveet voivat aiheuttaa huomattavia aukkoja, jotka häiritsevät käyttäjiä. Latenssi on monimutkaisen järjestelmän aikaviiveen mitta.

Pakettien käsittelyyn on kehitetty useita arkkitehtonisia lähestymistapoja, jotta voidaan vastata tietyn verkon suorituskyky- ja toiminnallisuusvaatimuksiin ja ratkaista viiveongelma.

Yksisäikeinen arkkitehtuuri (vakio-käyttöjärjestelmä)

Standardi verkko pino käyttää tarjoamista palveluista käyttöjärjestelmä (OS) käynnissä yksi suoritin ( Yksisäikeisessä ). Vaikka yksisäikeiset arkkitehtuurit ovat yksinkertaisin toteuttaa, niihin kohdistuu käyttöjärjestelmän toimintojen, kuten ennakkoedellytysten, langanhallinnan, ajastinten ja lukituksen, yleiskustannuksia. Nämä käyttöjärjestelmän käsittelyn yleiskustannukset asetetaan jokaiselle järjestelmän läpi kulkevalle paketille, mikä johtaa suoritussakkoon.

Monisäikeinen arkkitehtuuri (moniprosessorinen käyttöjärjestelmä)

Suorituskykyparannuksia voidaan tehdä käyttöjärjestelmän verkkopinosta mukauttamalla protokollapinon käsittelyohjelmisto tukemaan useita prosessoreita ( monisäikeisiä ) joko Symmetrisen moniprosessoinnin (SMP) alustojen tai monisydämisten prosessoriarkkitehtuurin avulla . Suorituskyvyn kasvu tapahtuu pienelle määrälle prosessoreita, mutta se ei skaalaudu lineaarisesti suurempaan määrään prosessoreita (tai ytimiä) ja esimerkiksi kahdeksan ytimen omaava prosessori ei välttämättä käsittele paketteja merkittävästi nopeammin kuin yksi, jossa on kaksi ydintä.

Nopea polkuarkkitehtuuri (käyttöjärjestelmän ohitus)

Vuonna nopean reitin toteutuksessa datatasoon jaetaan kahteen kerrokseen. Alempi kerros, jota kutsutaan tyypillisesti nopeaksi poluksi, käsittelee suurimman osan saapuvista paketeista käyttöjärjestelmän ulkopuolella ja ilman mitään käyttöjärjestelmän yleiskustannuksia, jotka heikentävät yleistä suorituskykyä. Ainoastaan ​​monimutkaista käsittelyä vaativat paketit välitetään käyttöjärjestelmän verkkopinolle (datatason ylempi kerros), joka suorittaa tarvittavat hallinta-, signalointi- ja ohjaustoiminnot. Kun tarvitaan monimutkaisia ​​algoritmeja, kuten reititys tai suojaus, käyttöjärjestelmän verkkopino välittää paketin ohjaustasossa oleville ohjelmistokomponenteille.

Moniydinprosessori voi parantaa suorituskykyä nopean polun toteuttamiseen. Järjestelmän kokonaistehon maksimoimiseksi nopean polun ajamiselle voidaan osoittaa useita ytimiä, kun taas käyttöjärjestelmän, käyttöjärjestelmän verkkopinon ja sovelluksen ohjaustason suorittamiseen tarvitaan vain yksi ydin.

Ainoa rajoitus alustan määrityksessä on, että koska nopeaa polkua käyttävät ytimet ovat käyttöjärjestelmän ulkopuolella, niiden on oltava omistettu yksinomaan nopealle polulle eikä niitä saa jakaa muiden ohjelmistojen kanssa. Järjestelmä voidaan myös konfiguroida uudelleen dynaamisesti liikennemallien muuttuessa. Tietotason jakaminen kahteen kerrokseen lisää myös monimutkaisuutta, koska kahdella kerroksella on oltava samat tiedot järjestelmän yhtenäisyyden varmistamiseksi.

Pakettien käsittelytekniikat

Erikoistuneiden pakettinkäsittelyalustojen luomiseksi on kehitetty ja otettu käyttöön erilaisia ​​tekniikoita. Nämä tekniikat, jotka kattavat laitteistojen ja ohjelmistojen laajuuden, on suunniteltu siten, että ne maksimoivat nopeuden ja läpimenon sekä minimoivat viiveen.

Verkkoprosessorit

Verkko prosessori yksikkö (NPU) on samanlainen monessa suhteessa yleiskäyttöisiä prosessoreja (GPP) että eniten tehoa tietokoneita, mutta sen sisäinen arkkitehtuuri ja toiminnot räätälöity verkkokeskeinen toimintaa. NPU: lla on yleensä mikrokoodiinsa sisäänrakennetut verkkokohtaiset toiminnot, kuten osoitteen haku, mallien sovitus ja jonojen hallinta . Korkeamman tason pakettinkäsittelytoiminnot, kuten turvallisuus tai tunkeutumisen havaitseminen, on usein rakennettu NPU-arkkitehtuureihin. Verkkoprosessoriesimerkkejä ovat:

Moniydinprosessorit

Moniytiminen prosessori on yksi puolijohde paketti, joka on 2 tai enemmän ytimiä, joista kukin edustaa yksittäinen käsittely-yksikön, joka pystyy suorittamaan koodia rinnakkain. Yleiskäyttöiset suorittimet, kuten Intel Xeon, tukevat nyt jopa 8 ydintä. Jotkut moniytimiset prosessorit integroivat erilliset pakettinkäsittelyominaisuudet, jotta saadaan täydellinen SoC (System on Chip). Ne yleensä yhdistää Ethernet- liitännät, krypto-moottorit , kaavoja moottorit, laitteisto jonot QoS ja joskus kehittyneempiä toimintoja käyttämällä mikro-ydintä. Kaikki nämä laitteisto-ominaisuudet pystyvät purkamaan ohjelmistopakettien käsittelyn. Viimeaikaiset esimerkit näistä erikoistuneista monisydämisistä paketeista, kuten Cavium OCTEON II, voivat tukea 2 - 32 ydintä.

Laitteistokiihdyttimet

Selvästi määriteltäviä ja toistuvia toimintoja varten suoraan puolijohdelaitteistoon rakennetun erityisen kiihdyttimen luominen nopeuttaa toimintaa verrattuna yleiskäyttöisessä prosessorissa toimivaan ohjelmistoon. Alustavat toteutukset käyttivät FPGA: ita (kenttäohjelmoitavaa porttiryhmää) tai ASIC: itä (sovelluskohtainen integroitu piiri), mutta nyt erityiset toiminnot, kuten salaus ja pakkaus, on rakennettu sekä GPP: iin että NPU: iin sisäisinä laitteistokiihdyttiminä. Nykyisiä esimerkkejä verkkokohtaisista laitteistokiihdyttimistä sisältävistä monisydämisprosessoreista ovat Cavium CN63xx kiihdytyksellä suojausta varten, TCP / IP, QOS ja HFA -mallien sovitus ja Netlogic Microsystems XFS -prosessoriperhe verkko- ja tietoturvakiihdytysmoottoreilla.

Pakettien syvällinen tarkastus

Mahdollisuus tehdä päätöksiä yksittäisten pakettien sisällön perusteella mahdollistaa laajan valikoiman uusia sovelluksia, kuten politiikkalataus ja sääntötoiminnot ( PCRF ) ja palvelun laatu. Pakettiprosessointijärjestelmät erottavat tietyt liikennetyypit käyttämällä Deep Packet Inspection (DPI) -tekniikkaa. DPI-tekniikat käyttävät kaavojen sovitusalgoritmeja etsimään datan hyötykuormaa kunkin verkkolaitteen läpi virtaavan paketin sisällön tunnistamiseksi. Onnistuneet kaavavastaavuudet ilmoitetaan ohjaavalle sovellukselle tarvittavien jatkotoimenpiteiden toteuttamiseksi.

Pakettien käsittely-ohjelmisto

Käyttöjärjestelmäohjelmisto sisältää tiettyjä vakioverkkopinoja, jotka toimivat sekä yhden että monisydämisissä ympäristöissä. Käyttöjärjestelmän ohitus (nopea polku) -arkkitehtuurien toteuttaminen edellyttää erikoistuneiden pakettinkäsittelyohjelmistojen, kuten 6WIND: n 6WINDGate, käyttöä . Tämän tyyppinen ohjelmisto tarjoaa joukon verkkoprotokollia, jotka voidaan jakaa useille terille, prosessoreille tai ytimille ja skaalata asianmukaisesti.

Viitteet

Ulkoiset linkit