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.
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:
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.


