Sicra Header Logo
  • Karriere
  • Om oss
  • Folk
NorskEnglish
Kontakt oss
  1. Kunnskap
  2. Innsikter
  3. Blogg
Blogg
23.09.2025
min tid å lese

Packet Processing Architecture: Oversikt

Hva skiller et system som klarer 10+ Gbps fra ett som stopper på 1? Svaret ligger i detaljene i nettverksstakken – fra kernel- og user space-separasjon til minnekopiering, interrupts og zero-copy-teknikker. Forståelsen av disse mekanismene er avgjørende når ytelse, skalerbarhet og sikkerhet skal balanseres på terabit-nivå.
<span id="hs_cos_wrapper_name" class="hs_cos_wrapper hs_cos_wrapper_meta_field hs_cos_wrapper_type_text" style="" data-hs-cos-general-type="meta_field" data-hs-cos-type="text" >Packet Processing Architecture: Oversikt</span>
Sicra_Portrait_Crop_1200x1500px_9141
Filip FogSikkerhetsanalytiker
Filip har en lidenskap for sikkerhets- og hendelseshåndtering. Han har også utviklet og ledet en hendelsesoperasjonssentral for private og offentlige kunder. I Sicra bruker han spesielt Arctic Wolf sin verktøykasse.

Nettverksprosessering er en av de mest ytelseskritiske aspektene av alle operativsystemer, enten det fungerer som en klient, server, ruter, eller brannmur.
- Vet du hvordan en brannmur håndterer nettverkspakker?

I begynnelsen av internett, typisk hastighet lå på 14kbps (kilobits per sekund) (1993), deretter 512kbps (2000 – Introduksjonen av ADSL), 2Mbps (megabits per sekund) (2005), og det eskalerte til 500Mbps (2015 – Introduksjon av fiber-optikk).

Vi er nå på et stadium der store virksomheter krever enda høyere hastighet, en hastighet på terabits per sekund. Nettverks-stakken er derfor i kontinuerlig utvikling for å øke kapasiteten for å håndtere flere nettverkspakker samtidig som sikkerheten opprettholdes.

Hvorfor er det derfor viktig å vite om nettverks-stakken?

Feil eller dårlig implementasjon av programvare og sikkerhetsløsninger vil skape treghet og innvirke drift. Istedenfor å oppnå 10+ Gbps prosesseringsevne, oppnår man kun ytelsesevne på 1Gbps.

Screenshot 2025-08-31 194214

Grunnleggende begreper

La oss definere to nøkkelbegreper: Kernel Space og User Space.

Fundament i systemsikkerhet: Separasjon mellom Kernel og User Space

Skillet mellom Kernel Space (kjernen) og User Space er en grunnleggende designbeslutning i operativsystemer. Dette har en direkte påvirkning på ytelse og databeskyttelse i hvordan nettverkspakker blir håndtert.


Kernel Space
har full tilgang til maskinen, inkludert:

  • Fysisk minnehåndtering og virtuell adressering

  • Hardware interrupt og driverbehandling

  • Nettverkspakkehåndtering, med tilhørende protokoller

  • Sikkerhetskontroll og filtrering


User Space
er et begrenset miljø:

  • Applikasjoner kjører innenfor et beskyttet minneområde

  • Aksess til minne er håndtert gjennom systemkall til kjernen.

  • Nettverkstilgang skjer gjennom sockets, API fra kjernen.

Analogi – Husinndeling:

Se for deg huset ditt med inngang, stue, kjøkken og oppholdsrom; Inngangen er kjernen, og rommene er applikasjoner med best formål (User Space).

Minnekopiering: Et ytelsesproblem

Operativsystem skiller minne inn i to deler (over-simplifisert): Kjerne- og applikasjonsområde. Applikasjoner i User Space kan ikke aksessere kjerneminne direkte.

Men med bruk av spesielle drivere kan applikasjonen aksessere et delt minneområde hva nettverkspakkene blir lagt. Men dette er ikke standard metode i operativsystemer.

For at applikasjoner skal håndtere pakker fra nettverkskortet må data ifra kjerneminnet kopieres over til user-space minne. Denne operasjon tar tid og krever litt av CPUen og gjennomføre, og derfor kan båndbredden bli begrenset under slike operasjoner.

Analogi – Pakkeflytting

En stor pakke ankommer foran døren, og du får den bæret inn i gangen (kjernen). Deretter er du nødt til å flytte den inn i riktig rom (user space), noe som krever litt energi. Se for deg at du får en del slike store pakker, og det blir veldig slitsomt etter hvert.

Løsning: Nettverksdriver (zero-copy)

Det er en metode som kalles zero-copy aksess. Denne metoden gjør det mulig for applikasjoner i user space å aksessere direkte nettverksbufferen, noe som eliminerer kopiering fra kjerneminne til user space minne.

Når en slik metode blir brukt, så blir et minnesegment allokert med delt tilgang for applikasjoner. Nettverkspakker som kommer inn blir plassert på det minnesegmenet, tilgjengelig for håndtering av både kjernen og eventuelle applikasjoner.

Det sparer CPUen millioner av sykluser (cycles) ved bruk av denne metoden, avhengig av implementasjon.

Analogi – Etterlate bokser i gangen

Istedenfor å flytte bokser inn hvert tildelte rom, så kan personen som vil ha pakken komme å håndtere den selv. Pakken blir da værende i gangen.

Interrupt-basert datahåndtering

4b392bbc-3700-46d1-a315-743bafc3832b-1

Når nettverkspakker ankommer nettverksporten, NIC kontrolleren vil da sende et interrupt signal til CPUen. Kjernen vil deretter prosesser pakkene gjennom nettverks-stakken.


Analogi – Interrupt håndtering

  1. Interrupt generering (IRQ): Ringeklokken ved døren lager lyd
  2. Kontekstbytte: Du lager middag men så ringer ringeklokken, da må du stoppe det du gjør å gå mot døren.
  3. ISR: Du titter gjennom kikkhullet (eller bruker kameraet) for å se hvem ringte på – postbud, nabo, eller fremmed person. Dette vil avgjøre hvordan du håndterer situasjonen. La oss si at det kom et postbud.
  4. SoftIRQ: Du åpner døren, signerer for å motta pakken, og bærer pakken på innsiden av døren. På pakken leser du navnet som pakken er til. Nå antar jeg du ikke bor alene.
  5. Applikasjonsvekking: Til slutt vil du rope ut det navnet som du leste

DoS (tjenestenekt) angrep – Hva skjer på systemet?

55883921-bee1a300-5bd9-11e9-98a9-15552c0b7b07

Bildet ovenfor viser at 8 CPU kjerner blir overbelastet med håndtering interrupt signalkø (si), og prosessen ansvarlig er ksoftirqd. Årsaken til signalkøen er en backlog av datapakker, og dette vil redusere tilgjengelig ressurser for kjørende applikasjoner.

Dette er ikke så vanskelig å få til. Ved å sende mange små pakker (single flow) til en maskin med en av disse metodene:

  • hping3 -S -p 80 --rand-source --flood target_ip

  • nmap -sS --max-rate 10000 -p 80 target_ip


Analogi – Konstante avbrudd

Se for deg at 50 postmenn møter opp hyppig etterhverandre, og alle sammen skal ringe på dørklokken.

  • Du blir konstant avbrutt fra det du holder på med

  • Du bruker mesteparten av tiden på å svare på døren

  • Matlaging og TV-titting blir det liten tid til

Dette er det som skjer under et tjenestenektangrep – CPUen bruker mesteparten av tiden med å håndtere interrupt signaler.

Ingress – Device Processing

Screenshot 2025-09-02 203409

Denne fasen er en av de stadiene hvor vi kan implementere kontrollfunksjoner for å håndtere store mengder trafikk (DoS). Det er to steg i denne fasen: (1) klassifisering og (2) forming.


Hva er nettverks-klassifisering?

Klassifisering er prosessen med å kategorisere nettverkspakker in i forskjellige classes og flows basert på forskjellige egenskaper som:

  • Lag 3/4 Headers: Source/Destination IP addresser, protokoll type (TCP/UDP/ICMP), port numre

  • Lag 2 Informasjon: VLAN tagger, MAC addresser, nettverksport ID

  • QoS Markering: DSCP (Differentiated Services Code Point), Traffic Class, IP precedence

  • Flow karakteristikk: Pakkestørrelse, ankomsttid, koblingsstatus


Hva er nettverks-forming?

Traffic shaping kontrollerer hvordan nettverkspakkene flyter:

  • Frekvensbegrensning: Setter en begrensning på antall pakker i sekundet (båndbredde)

  • Burst kontroll: Utjevner trafikk spikes ved bruk av algoritmer

  • Køhåndtering: Organiserer nettverkspakker in prioritert rekkefølge

  • Overbelastning unngåelse: Kaste nettverkspakker før køen overfylles

  • Forsinkelse: Legge til kontrollert forsinkelse på spesifiserte trafikkgrupper

Målet med denne fasen – “Device Processing” – er å optimalisere nettverksytelsen imens kritiske systemer får prioritert båndbredde.

 

Analogi – Forskjellige typer gjester (Nettverkspakker)

  • Nødtjenester (high-priority packets):

      • Alltid er rask med svare og oppmerskom

  • Vanlig postbud (normal packets):

      • Håndterer det i rolig, normal tilstand

  • Tulle-ringere (junk packets):

      • Prøver å bruke minst mulig energi på dem

Filtrering – Policy Engine

4f79b350-8529-494a-8dd2-32c7e9057ac3-1

«Policy Engine» er et kontrollpunkt i kjernen hvor nettverkspakker blir håndtert imot regler i en definert rekkefølge. Reglene bestemmer hva som skal tillates, kastes, endres på, eller sende videre til et program for dypere analyse.


Analogi – Husregler

Du har regler og en standard i hjemmet ditt, på hva som er tillat. Du tar for eksempel ikke inn en boks som har insekter i seg. Eller hvis pakken ikke inneholder noe du har bestilt, så kommer du kanskje til å returnere den eller kaste den.

Og når du bor med andre, så holder sikkert et øye med hvem som bestiller hva. Når partneren din bestiller en rekke med pakker så vet du at det er til han/henne, atter en gang.

Nettverksruting

packet_routing_flowchart-1

Etter at filtrering og policy listen er utført, blir hver pakke underlagt en rutings-beslutning. En av de viktigste valgene i en slik beslutning er enten:

  • Lokal mottakelse: Nettverkspakker som er angitt med en lokal adresse går denne veien. Pakkene blir levert til en applikasjon som lytter på en socket.

  • Videresending: Nettverkspakker med adresse som ikke tilhører system går via denne veien. Transit-pakker blir sent ut en annen nettverksport i henhold til ruting tabell.

Disse valgene blir håndtert ved at system slår opp i ruting tabellen (Forwarding Information Base/FIB). Ruting tabellene kartlegger destinasjonsadresse til enten lokalhåndtering, utgående nettverksport og next-hop gateway.


Ruting oppslag og Policy

Vanlig rutingsoppslag involverer spørringer om lengste prefiks-treff mot en eller flere rutingstabeller. Men det er ikke den eneste måte å gjøre det på, systemene har også støtte for:

  • Policybasert ruting: Beslutninger er basert på mer enn bare destinasjons IP, for eksempel: nettverksport, source-IP, eller merker/tags.

  • Virtuell ruting/VRF: Segregerte "rutingdomener" på ett system.

  • Flerveis ruting: Pakken kan bli sendt til flere tilgjengelige destinasjoner.

Merk: «Policy Engine» kan påvirke nettverkspakkene både før og etter nettverksruting.


Analogi – Kjent mottager

Det er naturlig at du er klar over dem som bor i sammen med deg, og du er litt kjent med naboene dine. Så når det kommer en pakke på døren så vet du om den skal til en i huset, eller om den er feilplassert og du legger den foran naboens dør.

Socket og applikasjon

8de2f4c1-1664-4a60-92ba-261d1cf129fc-1

Når nettverkspakken har passert hele kjernens nettverkssystem, ender nettverkspakken i brukerapplikasjonen. Denne overgangen fra kjernen til User Space foregår via Sockets.

En Socket er en abstraksjon formidlet av kjernen for å forenkle nettverkskommunikasjon. Brukerapplikasjonen vil starte kommunikasjonen med å opprette en socket som enten skal opprette kobling eller lytte til innkommende tilkoblinger.

Når et signal fra kjernen blir utløst (SoftIRQ) og blir videresendt til applikasjonen, vil applikasjonen vite at det er nødvendig å lese fra minne til socket’en. Pakkene vil deretter blir håndtert i henhold til den programmerte logikken i applikasjonen. Og som oftest vil applikasjonen være programmert til å sende et svar igjennom den samme socket som nettverkspakken kom på.


Analogi – Å gi en pakke

Når du har fått en pakke innenfor gangen, roper du ut mottakerens navn og begynner å bære pakken inn. Du vet hvilket rom du skal gå til, med pakken. Når du kommer inn i rommet finner du en ledig plass å legge pakken. Mottageren av pakken vil deretter åpne og håndtere den slik mottageren ønsker.

Oppsummering

Primære prosesseringssteg:

  1. Fysisk Lag – Mottak av nettverkspakker og signal generering

  2. Driver Lag – OS-spesifikk nettverksdriver-prosessering

    • Valgfri “Fast-Path Bypass”– Høytytende nullkopieringsmekanisme

    • Reinjeksjon – Mekanisme for å returnere pakker tilbake til nettverksstakken

  3. Device Processing - Trafikkontroll, forming, køhåndtering

    • Valgfri Overvåkings Tap– Passiv pakkefangst for analyse

  4. Policy Engine – Sikkerhetsregler, brannmur, NAT, og tilgangskontroll

  5. Nettverksruting – Bestemme pakkedestinasjon (lokal vs videresending)

  6. Socket tilkobling – Tilkobling til lyttende eller etablert socket

  7. Applikasjonsbehandling – Applikasjon mottar pakker fra

    socket

Analogisammendrag: Hjemlevering

Nettverksstakken har blitt representert som et organisert hus som mottar pakker ved inngangsdøren (nettverksport).

  • Inngangen (Kernel Space): Hver pakke må først stoppe ved inngangen for å bli håndtert av deg. Du har full oversikt over hvem som bor i huset.

  • Dørklokke (Interrupts): Når du mottar en pakke, blir du alltid varslet av dørklokken. Men det kan hende at mange leveranser ankommer hyppig, og du vil bli avbrutt og distrahert fra viktig arbeid.

  • Ulike besøkende (Pakketyper): Du vet, ved å se på pakkene, hvilke som er viktige og hvilke som ikke er det. Basert på dette kan du prioritere én av dem foran den andre.

  • Flytte esker inn (Minnekopiering): Du må drasse hver pakke fra inngangen gjennom smale ganger (kernel-user space kopiering), noe som tar krefter og tid.

      • Alternativ: Behandling ved døren (Zero-Copy): Riktig person kommer til inngangen for å hente pakken sin direkte, noe som sparer tid og energi.

  • Husregler (Security Policies): Du har standarder i huset – avvis feil, rapporter uventede leveranser, godtar pakker adressert til kjente beboere og videresender nabopakker etter behov.

  • Sende den videre (Socket): Etter at pakken er godtatt, havner den hos den tiltenkte mottakeren (applikasjonen) som åpner den og får innholdet.

Ønsker du å bli en del av Sicra laget?

Vi leter etter en Sr. DevSecOps Hybrid/Cloud konsulent.
Søk på stillingen her

Les mer

Cybersikkerhet og verdiskaping: En balansekunst
Blogg

Cybersikkerhet og verdiskaping: En balansekunst

Sikkerhet skal skape muligheter, ikke begrensninger.
Hva gjør du når du blir utsatt for et cyberangrep?
Blogg

Hva gjør du når du blir utsatt for et cyberangrep?

Unngå feilgrep – lær hva du bør gjøre i starten av et cyberangrep.
Fra default til sikkert – slik gjør du Windows-innstillingene tryggere
Blogg

Fra default til sikkert – slik gjør du Windows-innstillingene tryggere

Over tid kan et Windows-miljø fylt med tilpasninger og tillegg utvikle seg til å bli komplekst, uoversiktlig og mer sårbart.
Kunstig intelligens og cyberkriminalitet: En ny økonomi i vekst
Blogg

Kunstig intelligens og cyberkriminalitet: En ny økonomi i vekst

Når AI driver cyberkriminalitet, må sikkerhet bygges inn fra starten av.

Skreddersydd cybersikkerhet for virksomheter og institusjoner – så dere kan vokse, innovere og jobbe uten bekymringer.

Ta kontaktRing oss +47 648 08 488
Hold deg oppdatert
Motta siste nytt fra Sicra

Linker
BærekraftFAQPartnereSertifiseringerKarrierePresse
Kontakt

Tel: +47 648 08 488
E-post: firmapost@sicra.no

Tollbugata 8, 0152 Oslo. Norge

Følg oss på LinkedIn
Sertifiseringer
iso27001-white
ISO 27001
miljofyrtarnlogo-hvit-rgb
Miljøfyrtårn
Sicra Footer Logo
Sicra © 2025
Personvern