IP-pakkehoved: Format, felter

⚡ Smart opsummering

IP-header er de metadata, der placeres i starten af ​​hver IP-pakke og indeholder felter som version, headerlængde, total længde, levetid, protokol, kontrolsum og kilde- og destinationsadresser, som routere læser for at levere data.

  • 🧭 Formål: IP-headeren gemmer routing- og leveringsoplysninger, så hver pakke når den korrekte destination på tværs af netværk.
  • 📏 Størrelse: En IPv4-header varierer fra 20 til 60 bytes, styret af feltet Internet Header Length.
  • 🧱 Nøglefelter: Kernefelter omfatter version, international humanitær reference (IHL), tjenestetype, total længde, TTL, protokol, kontrolsum og adresser.
  • 🔀 Fragmentering: Identifikation, flag og fragmentforskydning gør det muligt at opdele og samle store datagrammer korrekt.
  • 🆚 IPv4 vs IPv6: IPv6 erstatter den variable header med en fast 40-byte header og fjerner checksumfeltet.
  • 🤖 AI assistance: AI-pakkeanalysatorer analyserer IP-headere automatisk for at markere uregelmæssigheder og fremskynde fejlfinding.

IP-pakkeheaderformat og -felter

Hvad er IP-header?

IP-headeren er metainformation i begyndelsen af ​​en IP-pakke. Den viser information såsom IP-version, pakkens længde, kilde og destination.

IPv4-headerformatet er 20 til 60 bytes langt og indeholder de oplysninger, der er nødvendige for routing og levering. Det består af felter som Version, Headerlængde, Total Længde, Identifikation, Flag, Kontrolsum, kilde-IP-adressen og destinations-IP-adressen. Sammen giver disse felter de vigtigste data, der er nødvendige for at transmit pakken pålideligt fra én vært til en anden.

IPv4 Header-komponenter/felter

Diagrammet nedenfor viser det komplette IPv4-headerformat, hvor hvert felt tegnes på sin korrekte position og bitbredde:

IPv4-pakkeheaderformatdiagram, der viser alle felter og deres bitpositioner

Følgende er de forskellige komponenter/felter i IP-pakkeheaderen:

  • Version: Det første IP-headerfelt er en 4-bit versionsindikator. I IPv4 er værdien af ​​disse fire bits sat til 0100, hvilket angiver 4 i binært format. Hvis routeren ikke understøtter den angivne version, tabes pakken.
  • Internet-headerlængde: Internet Header Length, kort kendt som IHL, er 4 bit i størrelse. Det kaldes også HELEN (Header Length). Denne IP-komponent viser, hvor mange 32-bit ord der er til stede i headeren.
  • Type service: Servicetypen kaldes også differentierede tjenester Code Punkt eller DSCP. Dette felt indeholder funktioner relateret til servicekvaliteten for datastreaming eller VoIP-opkald. De første 3 bits er prioritetsbits. Det angiver også, hvordan et datagram skal håndteres.
  • Total længde: Den samlede længde måles i bytes. Minimumsstørrelsen på et IP-datagram er 20 bytes, og maksimumsstørrelsen er 65,535 bytes. HELEN og Total Length kan bruges til at beregne størrelsen på nyttelasten. Alle værter skal kunne læse 576-byte datagrammer. Men hvis et datagram er for stort til værterne i netværket, anvendes fragmenteringsmetoden i vid udstrækning.
  • Identifikation: Identifikation er et felt, der bruges til at identificere fragmenterne af et IP-datagram entydigt. Nogle har anbefalet at bruge dette felt til andre formål, såsom at tilføje oplysninger til pakker tracIng.
  • IP-flag: Flags er et tre-bit felt, der hjælper dig med at kontrollere og identificere fragmenter. De mulige konfigurationer er: Bit 0 er reserveret og skal sættes til nul; Bit 1 betyder fragmenter ikke; og Bit 2 betyder flere fragmenter.
  • Fragment offset: Fragmentoffset repræsenterer antallet af databytes foran et bestemt fragment i det specifikke datagram. Det er angivet i enheder på 8 bytes og har en maksimal værdi på 65,528 bytes.
  • Tid til at leve: Dette er et 8-bit felt, der angiver den maksimale tid, datagrammet må forblive i internetsystemet. Hver gang et datagram behandles, reduceres dets TTL-værdi med én. Når værdien af ​​TTL når nul, kasseres datagrammet, så pakkerne ikke leveres uendeligt. Værdien af ​​TTL kan variere fra 0 til 255.
  • protokol: Dette IPv4-headerfelt angiver, hvilken internetprotokol der findes i den sidste del af datagrammet. For eksempel bruges tallet 6 til at angive TCP, og 17 bruges til at betegne UDP-protokollen.
  • Overskrift kontrolsum: Den næste komponent er et 16-bit header-checksumfelt, som bruges til at kontrollere headeren for eventuelle fejl. IP-headeren sammenlignes med værdien af ​​dens checksum. Når header-checksummen ikke stemmer overens, kasseres pakken.
  • Kildeadresse: Kildeadressen er en 32-bit adresse på den kilde, der bruges til IPv4-pakken.
  • Destinationsadresse: Destinationsadressen er også 32 bit i størrelse og gemmer modtagerens adresse.
  • IP-indstillinger: Dette er et valgfrit felt i IPv4-headeren, der bruges, når værdien af ​​IHL (Internet Header Length) er sat til større end 5. Det indeholder værdier og indstillinger relateret til sikkerhed, postrute, tidsstempel og lignende indstillinger. Listen over indstillinger slutter normalt med en EOL-markør (End of Options List).
  • dato: Dette felt gemmer dataene fra det protokollag, der har overleveret dataene til IP-laget.

Sådan beregner du IPv4-headerlængden

Feltet Internet Header Length (IHL) fortæller en router præcis, hvor lang headeren er, så den ved, hvor headeren slutter, og dataene begynder. Da feltet kun er 4 bit bredt, gemmer det ikke længden direkte i bytes. I stedet tæller det headeren i 32-bit ord, hvor hvert ord er lig med 4 bytes.

For at konvertere IHL-værdien til bytes skal du gange den med 4:

  • Minimum: Den mindste værdi i henhold til den internationale menneskelovgivning er 5, så 5 × 4 = 20 bytes. Dette er en header uden indstillinger.
  • Maksimum: Den største værdi i henhold til den internationale livscyklus (IHL) er 15, så 15 × 4 = 60 bytes. De ekstra 40 bytes indeholder valgfrie felter.

Overvej et bearbejdet eksempel. Hvis en pakke ankommer med en IHL-værdi på 6, er headerlængden 6 × 4 = 24 bytes, hvilket betyder, at der er 4 bytes med muligheder efter standard 20-byte headeren. For at finde størrelsen på nyttelasten skal du bruge subtracheaderlængden fra feltet Total længde. Hvis Total længde er 1,500 bytes, og headeren er 24 bytes, så er nyttelasten 1,500 − 24 = 1,476 bytes.

Denne beregning er vigtig under fragmentering, fordi en router skal kende headerstørrelsen for at kunne beregne, hvor meget data hvert fragment kan bære uden at overskride netværkets maksimale værdi. Transmission Enhed (MTU).

IPv4 vs. IPv6-header

IPv6-headeren blev redesignet for at være enklere og hurtigere at behandle end IPv4-headeren. Den bruger en fast længde og flytter sjældent anvendte muligheder til separate udvidelsesheadere, så routere kan videresende pakker med linjehastighed. Tabellen nedenfor sammenligner de to headere felt for felt:

Feature IPv4-header IPv6-header
Størrelse på overskriften 20 til 60 bytes (variabel) 40 bytes (fast)
Antal felter 13 felter plus muligheder 8 felter
Adresselængde 32-bit kilde og destination 128-bit kilde og destination
Header-kontrolsum Præsenter fjernet
Fragmenteringsfelter I basisoverskriften (Identifikation, Flag, Offset) Flyttet til en header for Fragment-udvidelsen
Indstillinger Båret inde i overskriften Båret i forlængelseshoveder
Længdefelt Total længde (header plus data) Nyttelastlængde (kun nyttelast)

Fordi IPv6 dropper checksummen og indstillingerne for variabel længde, indeholder headeren færre felter og kan behandles i hardware uden genberegning per hop.

Hvorfor IP-headeren er vigtig

Hvert felt i IP-headeren findes, så routere og værter kan flytte en pakke på tværs af mange netværk uden en permanent forbindelse mellem dem. Headeren er det, der får pakkekobling til at fungere.

  • Routing: Destinationsadressen fortæller hver router, hvor pakken skal videresendes, mens kildeadressen tillader svar og fejlmeddelelser at returneres.
  • Løkkeforebyggelse: Feltet "Livstid" mindskes ved hvert hop, så en fejlrutet pakke kasseres i stedet for at cirkle rundt på internettet for evigt.
  • Levering i henhold til den rigtige protokol: Protokolfeltet fortæller den modtagende vært, om nyttelasten skal overføres til TCP, UDP eller en anden protokol.
  • Integrity og genmontering: Kontrolsummen beskytter headeren mod korruption, og felterne Identifikation, Flag og Fragment Offset gør det muligt at genopbygge et fragmenteret datagram i den korrekte rækkefølge.

For netværksingeniører er det vigtigt at læse disse felter i en TCP / IP Optagelse er ofte den hurtigste måde at diagnosticere mistede pakker, routing-løkker og fejlkonfigurerede data. IP-adresser.

Ofte Stillede Spørgsmål

Header Length (IHL) måler kun headeren i 32-bit ord og varierer fra 20 til 60 bytes. Total Length måler hele datagrammet - header plus data - i bytes, op til 65,535. SubtracAt dele den ene fra den anden giver nyttelastens størrelse.

Fragmentering opdeler et datagram, der er større end et link's maksimum Transmission Enhed i mindre dele. Felterne Identifikation, Flag og Fragment Offset lader destinationen samle delene igen i rækkefølge. Det sker, når en pakke skal krydse et netværk med en mindre MTU.

En IPv4-header har 13 faste felter — Version, IHL, Servicetype, Total længde, Identifikation, Flag, Fragmentforskydning, TTL, Protokol, Kontrolsum, Kildeadresse, Destinationsadresse plus et valgfrit felt med indstillinger. Den efterfølgende datasektion er nyttelasten, ikke et headerfelt.

Nej. IPv4-header-checksummen dækker kun headerfelterne, ikke dataene. Øvre lagsprotokoller som TCP og UDP har deres egne checksums for at beskytte dataene. Fordi TTL ændres ved hvert hop, genberegner routere header-checksummen ved hver videresendelse.

Når TTL når nul, dropper routeren pakken og returnerer en ICMP Time Exceeded-meddelelse til kilden. Dette forhindrer pakker i at blive tabt.ping for evigt i en routingløkke. traceroute Værktøjet bruger denne adfærd til at kortlægge hvert hop langs en sti.

Protokolfeltet identificerer, hvilken protokol på det øvre lag, der skal modtage nyttelasten på destinationen. Almindelige værdier er 6 for TCP, 17 for UDP og 1 for ICMP. Den modtagende vært læser dette tal for at sende dataene til den korrekte handler.

AI- og maskinlæringsværktøjer analyserer indfangede IP-headere for at opdage anomalier såsom forfalskede kildeadresser, unormale TTL-værdier eller fragmenteringsangreb. De klassificerer trafik og markerer trusler hurtigere end manuel inspektion, selvom en tekniker stadig bekræfter resultaterne, før der handles.

GitHub Copilot kan udkaste Python eller C-kode, der udpakker IP-headerfelter, afkoder flag og validerer checksummer fra en kort kommentar. RevSe den genererede bitmaskeringslogik omhyggeligt, da off-by-one-offsets er en almindelig kilde til parsingfejl.

Opsummer dette indlæg med: