IP-pakketheader: formaat, velden

⚡ Slimme samenvatting

De IP-header is de metadata die aan het begin van elk IP-pakket wordt geplaatst en velden bevat zoals versie, headerlengte, totale lengte, time-to-live, protocol, checksum en de bron- en bestemmingsadressen die routers lezen om gegevens te verzenden.

  • 🧭 Doel: De IP-header bevat routerings- en afleveringsgegevens, zodat elk pakket de juiste bestemming bereikt, ongeacht het netwerk.
  • 📏 Afmetingen: Een IPv4-header heeft een lengte van 20 tot 60 bytes, afhankelijk van het veld Internet Header Length.
  • 🧱 Kernvelden: De belangrijkste velden zijn onder andere versie, IHL, servicetype, totale lengte, TTL, protocol, checksum en adressen.
  • 🔀 Fragmentatie: Identificatie, vlaggen en fragmentverschuiving zorgen ervoor dat grote datagrammen correct kunnen worden opgesplitst en opnieuw samengesteld.
  • 🆚 IPv4 versus IPv6: IPv6 vervangt de variabele header door een vaste header van 40 bytes en laat het checksumveld weg.
  • 🤖 AI-assistentie: AI-pakketanalysatoren analyseren automatisch IP-headers om afwijkingen te signaleren en het oplossen van problemen te versnellen.

Indeling en velden van de IP-pakketheader

Wat is een IP-header?

De IP-header is meta-informatie aan het begin van een IP-pakket. Deze bevat gegevens zoals de IP-versie, de lengte van het pakket, de bron en de bestemming.

De IPv4-header heeft een lengte van 20 tot 60 bytes en bevat de informatie die nodig is voor routering en aflevering. Deze header bestaat uit velden zoals Versie, Headerlengte, Totale lengte, Identificatie, Vlaggen, Checksum, het bron-IP-adres en het bestemmings-IP-adres. Samen vormen deze velden de essentiële gegevens die nodig zijn voor de routering en aflevering van e-mails. transmit Het datapakket wordt betrouwbaar van de ene host naar de andere verzonden.

IPv4-headercomponenten/velden

Onderstaande afbeelding toont het volledige IPv4-headerformaat, waarbij elk veld op de juiste positie en met de juiste bitbreedte is weergegeven:

Diagram van de IPv4-pakketheaderindeling met alle velden en hun bitposities.

Hieronder volgen de verschillende onderdelen/velden van de IP-pakketheader:

  • Versie: Het eerste veld in de IP-header is een 4-bits versie-indicator. In IPv4 is de waarde van deze vier bits ingesteld op 0100, wat binair overeenkomt met 4. Als de router de opgegeven versie niet ondersteunt, wordt het pakket verworpen.
  • Lengte internetheader: De Internet Header Length, afgekort IHL, is 4 bits groot. Het wordt ook wel HELEN (Header Length) genoemd. Deze IP-component geeft aan hoeveel 32-bits woorden er in de header aanwezig zijn.
  • Type dienst: Dit type dienstverlening wordt ook wel gedifferentieerde dienstverlening genoemd. Code Punt, of DSCP. Dit veld biedt kenmerken met betrekking tot de kwaliteit van de dienstverlening voor datastreaming of VoIP-gesprekken. De eerste 3 bits zijn de prioriteitsbits. Het specificeert ook hoe een datagram moet worden verwerkt.
  • Totale lengte: De totale lengte wordt gemeten in bytes. De minimale grootte van een IP-datagram is 20 bytes en de maximale is 65,535 bytes. HELEN en Total Length kunnen worden gebruikt om de grootte van de payload te berekenen. Alle hosts moeten in staat zijn om datagrammen van 576 bytes te lezen. Als een datagram echter te groot is voor de hosts in het netwerk, wordt de fragmentatiemethode veelvuldig gebruikt.
  • Identificatie: Identificatie is een veld dat wordt gebruikt om de fragmenten van een IP-datagram uniek te identificeren. Sommigen hebben aanbevolen dit veld voor andere doeleinden te gebruiken, zoals het toevoegen van informatie voor pakketten. tracIng.
  • IP-vlaggen: Flags is een veld van drie bits waarmee je fragmenten kunt beheren en identificeren. De mogelijke configuraties zijn: Bit 0 is gereserveerd en moet op nul worden gezet; Bit 1 betekent niet fragmenteren; en Bit 2 betekent meer fragmenten.
  • Fragmentcompensatie: Fragment Offset geeft het aantal databytes aan dat zich vóór een bepaald fragment in het betreffende datagram bevindt. Deze waarde wordt uitgedrukt in eenheden van 8 bytes en heeft een maximumwaarde van 65,528 bytes.
  • Tijd om te leven: Dit is een 8-bits veld dat de maximale tijd aangeeft dat een datagram in het internetnetwerk mag bestaan. Telkens wanneer een datagram wordt verwerkt, wordt de TTL-waarde met één verlaagd. Wanneer de TTL-waarde nul bereikt, wordt het datagram verwijderd, zodat pakketten niet eindeloos worden verzonden. De TTL-waarde kan variëren van 0 tot 255.
  • Protocol: Dit IPv4-headerveld geeft aan welk internetprotocol in het laatste deel van het datagram wordt meegestuurd. Zo wordt bijvoorbeeld het getal 6 gebruikt om TCP aan te duiden en 17 om het UDP-protocol aan te duiden.
  • Kopcontrolesom: Het volgende onderdeel is een 16-bits headerchecksumveld, dat wordt gebruikt om de header te controleren op fouten. De IP-header wordt vergeleken met de waarde van de checksum. Als de headerchecksum niet overeenkomt, wordt het pakket verworpen.
  • Bron adres: Het bronadres is een 32-bits adres van de bron die voor het IPv4-pakket wordt gebruikt.
  • Bestemmingsadres: Het bestemmingsadres is ook 32 bits groot en bevat het adres van de ontvanger.
  • IP-opties: Dit is een optioneel veld in de IPv4-header, dat wordt gebruikt wanneer de waarde van IHL (Internet Header Length) groter is dan 5. Het bevat waarden en instellingen met betrekking tot beveiliging, route-recording, tijdstempel en vergelijkbare opties. De lijst met opties eindigt meestal met een End of Options List (EOL)-markering.
  • Datum: In dit veld worden de gegevens opgeslagen van de protocollaag die de gegevens heeft doorgegeven aan de IP-laag.

Hoe bereken je de lengte van een IPv4-header?

Het Internet Header Length (IHL)-veld vertelt een router precies hoe lang de header is, zodat deze weet waar de header eindigt en de data begint. Omdat het veld slechts 4 bits breed is, slaat het de lengte niet direct in bytes op. In plaats daarvan telt het de header in 32-bits woorden, waarbij elk woord gelijk is aan 4 bytes.

Om de IHL-waarde naar bytes om te zetten, vermenigvuldigt u deze met 4:

  • Minimum: De kleinste wettelijk toegestane IHL-waarde is 5, dus 5 × 4 = 20 bytes. Dit is een header zonder opties.
  • maximaal: De grootste IHL-waarde is 15, dus 15 × 4 = 60 bytes. De extra 40 bytes bevatten optionele velden.

Laten we een uitgewerkt voorbeeld bekijken. Als een pakket aankomt met een IHL-waarde van 6, is de lengte van de header 6 × 4 = 24 bytes, wat betekent dat er 4 bytes aan opties aanwezig zijn na de standaard header van 20 bytes. Om de grootte van de payload te vinden, substitueer je deze.tracDe lengte van de header wordt bepaald aan de hand van het veld 'Totale lengte'. Als de totale lengte 1,500 bytes is en de header 24 bytes, dan is de payload 1,500 − 24 = 1,476 bytes.

Deze berekening is belangrijk tijdens fragmentatie, omdat een router de headergrootte moet kennen om te bepalen hoeveel data elk fragment kan bevatten zonder de maximale capaciteit van het netwerk te overschrijden. Transmission Eenheid (MTU).

IPv4 versus IPv6-header

De IPv6-header is opnieuw ontworpen om eenvoudiger en sneller te verwerken te zijn dan de IPv4-header. Hij gebruikt een vaste lengte en verplaatst zelden gebruikte opties naar aparte extensieheaders, zodat routers pakketten met lijnsnelheid kunnen doorsturen. De onderstaande tabel vergelijkt de twee headers veld voor veld:

Kenmerk IPv4-header IPv6-header
Koptekstgrootte 20 tot 60 bytes (variabel) 40 bytes (vast)
Aantal velden 13 velden plus opties 8-velden
Adreslengte 32-bits bron en bestemming 128-bits bron en bestemming
Header checksum Presenteer verwijderd
Fragmentatievelden In de basisheader (Identificatie, Vlaggen, Offset) Verplaatst naar een Fragment-extensieheader
opties Onder de koptekst weergegeven Overgedragen in extensieheaders
Lengteveld Totale lengte (header plus data) Lengte van de lading (alleen de lading)

Doordat IPv6 de checksum en de opties voor variabele lengte achterwege laat, bevat de header minder velden en kan deze in hardware worden verwerkt zonder herberekening per hop.

Waarom de IP-header belangrijk is

Elk veld in de IP-header is er zodat routers en hosts een pakket over meerdere netwerken kunnen versturen zonder een permanente verbinding ertussen. De header is essentieel voor de werking van pakketschakeling.

  • routing: Het bestemmingsadres vertelt elke router waar het pakket naartoe moet worden doorgestuurd, terwijl het bronadres het mogelijk maakt om antwoorden en foutmeldingen terug te sturen.
  • Voorkomen van lussen: Het veld Time to Live wordt bij elke hop verlaagd, zodat een verkeerd gerouteerd pakket wordt verworpen in plaats van eindeloos over het internet te blijven circuleren.
  • Levering volgens het juiste protocol: Het veld Protocol geeft de ontvangende host aan of de payload moet worden doorgegeven aan TCP, UDP of een ander protocol.
  • Integrity en herassemblage: De checksum beschermt de header tegen corruptie, en de velden Identification, Flags en Fragment Offset maken het mogelijk om een ​​gefragmenteerd datagram in de juiste volgorde te reconstrueren.

Voor netwerkengineers is het lezen van deze velden in een TCP / IP Het vastleggen van gegevens is vaak de snelste manier om verloren pakketten, routeringslussen en verkeerd geconfigureerde systemen te diagnosticeren. IP adressen.

Veelgestelde vragen

De headerlengte (IHL) meet alleen de header, in 32-bits woorden, en varieert van 20 tot 60 bytes. De totale lengte meet het hele datagram — header plus data — in bytes, tot maximaal 65,535. SubtracDoor de ene waarde van de andere af te trekken, verkrijgt men de grootte van de lading.

Fragmentatie splitst een datagram dat groter is dan de maximale grootte van een link. Transmission Een pakket wordt in kleinere stukken verdeeld. De velden Identification, Flags en Fragment Offset stellen de bestemming in staat de stukken weer in de juiste volgorde samen te stellen. Dit gebeurt wanneer een pakket een netwerk met een kleinere MTU moet passeren.

Een IPv4-header heeft 13 vaste velden: Versie, IHL, Type service, Totale lengte, Identificatie, Vlaggen, Fragmentoffset, TTL, Protocol, Checksum, Bronadres, Bestemmingsadres, plus een optioneel veld Opties. Het gedeelte Gegevens dat volgt, is de payload, geen header-veld.

Nee. De IPv4-headerchecksum dekt alleen de velden in de header, niet de payload. Protocollen van hogere lagen, zoals TCP en UDP, gebruiken hun eigen checksums om de gegevens te beschermen. Omdat de TTL bij elke hop verandert, berekenen routers de headerchecksum bij elke doorstuuractie opnieuw.

Wanneer de TTL nul bereikt, laat de router het pakket vallen en stuurt een ICMP Time Exceeded-bericht terug naar de bron. Dit voorkomt dat pakketten verloren gaan.ping Voor altijd in een routeringslus. traceroute De tool maakt gebruik van dit gedrag om elke stap langs een pad in kaart te brengen.

Het veld Protocol geeft aan welk protocol op de bovenliggende laag de gegevens op de bestemming moet ontvangen. Veelvoorkomende waarden zijn 6 voor TCP, 17 voor UDP en 1 voor ICMP. De ontvangende host leest dit nummer om de gegevens door te geven aan de juiste handler.

AI- en machine learning-tools analyseren vastgelegde IP-headers om afwijkingen te detecteren, zoals vervalste bronadressen, abnormale TTL-waarden of fragmentatieaanvallen. Ze classificeren verkeer en signaleren bedreigingen sneller dan handmatige inspectie, hoewel een engineer de bevindingen nog steeds bevestigt voordat er actie wordt ondernomen.

GitHub-copiloot kan opstellen Python Of C-code die IP-header-velden uitpakt, vlaggen decodeert en checksums valideert op basis van een korte opmerking. RevBekijk de gegenereerde bitmaskeringslogica zorgvuldig, aangezien afwijkingen van één een veelvoorkomende bron van parseerfouten zijn.

Vat dit bericht samen met: