IP-pakethuvud: Format, Fält

⚡ Smart sammanfattning

IP-header är metadata som placeras i början av varje IP-paket och innehåller fält som version, headerlängd, total längd, tid till levnadsdatum, protokoll, kontrollsumma och käll- och destinationsadresser som routrar läser för att leverera data.

  • 🧭 Syfte: IP-headern lagrar routing- och leveransinformation så att varje paket når rätt destination över nätverk.
  • 📏 Storlek: En IPv4-header sträcker sig från 20 till 60 byte, styrd av fältet Internet Header Length.
  • 🧱 Viktiga fält: Kärnfält inkluderar version, internationell humaniora, tjänstetyp, total längd, TTL, protokoll, kontrollsumma och adresser.
  • 🔀 Splittring: Identifiering, flaggor och fragmentförskjutning gör att stora datagram kan delas och sättas ihop korrekt.
  • ???? IPv4 vs IPv6: IPv6 ersätter den variabla rubriken med en fast 40-byte-rubrik och tar bort kontrollsummefältet.
  • 🤖 AI-hjälp: AI-paketanalysatorer analyserar IP-rubriker automatiskt för att flagga avvikelser och påskynda felsökning.

IP-paketets rubrikformat och fält

Vad är IP-header?

IP-headern är metainformation i början av ett IP-paket. Den visar information som IP-version, paketets längd, källa och destination.

IPv4-headerformatet är 20 till 60 byte långt och innehåller den information som behövs för routing och leverans. Det består av fält som Version, Headerlängd, Total längd, Identifiering, Flaggor, Kontrollsumma, käll-IP-adress och destinations-IP-adress. Tillsammans ger dessa fält den viktiga information som behövs för att transmit paketet tillförlitligt från en värd till en annan.

IPv4 Header-komponenter/fält

Diagrammet nedan visar det kompletta IPv4-headerformatet, med varje fält ritat på rätt position och bitbredd:

IPv4-pakethuvudformatdiagram som visar alla fält och deras bitpositioner

Följande är de olika komponenterna/fälten i IP-paketets rubrik:

  • Version: Det första IP-headerfältet är en 4-bitars versionsindikator. I IPv4 är värdet på dessa fyra bitar satt till 0100, vilket indikerar 4 i binärt format. Om routern inte stöder den angivna versionen tas paketet bort.
  • Internethuvudets längd: Internet Header Length, kort känt som IHL, är 4 bitar stort. Det kallas även HELEN (Header Length). Denna IP-komponent visar hur många 32-bitarsord som finns i headern.
  • Typ av service: Tjänstetyp kallas även differentierade tjänster Code Punkt eller DSCP. Detta fält tillhandahåller funktioner relaterade till tjänstens kvalitet för dataströmning eller VoIP-samtal. De första 3 bitarna är prioritetsbitarna. Det anger också hur ett datagram ska hanteras.
  • Total längd: Den totala längden mäts i byte. Den minsta storleken på ett IP-datagram är 20 byte och den maximala är 65 535 byte. HELEN och Total Length kan användas för att beräkna nyttolastens storlek. Alla värdar måste kunna läsa 576-byte datagram. Men om ett datagram är för stort för värdarna i nätverket används fragmenteringsmetoden i stor utsträckning.
  • Identifiering: Identifiering är ett fält som används för att unikt identifiera fragmenten av ett IP-datagram. Vissa har rekommenderat att använda detta fält för andra ändamål, till exempel att lägga till information för paket. tracIng.
  • IP-flaggor: Flags är ett trebitarsfält som hjälper dig att kontrollera och identifiera fragment. Möjliga konfigurationer är: Bit 0 är reserverad och måste sättas till noll; Bit 1 betyder att fragmentera inte; och Bit 2 betyder fler fragment.
  • Fragmentoffset: Fragmentförskjutning representerar antalet databyte före ett visst fragment i det specifika datagrammet. Det anges i enheter om 8 byte och har ett maximalt värde på 65 528 byte.
  • Tid att leva: Detta är ett 8-bitarsfält som anger den maximala tid ett datagram får finnas i internetsystemet. Varje gång ett datagram bearbetas minskas dess TTL-värde med ett. När värdet på TTL når noll kasseras datagrammet så att paket inte levereras oavbrutet. Värdet på TTL kan variera från 0 till 255.
  • Protokoll: Detta IPv4-headerfält anger vilket internetprotokoll som används i den senare delen av datagrammet. Till exempel används siffran 6 för att indikera TCP och 17 för att beteckna UDP-protokollet.
  • Header Checksum: Nästa komponent är ett 16-bitars header-checksumfält, som används för att kontrollera headern för eventuella fel. IP-headern jämförs med värdet på dess checksumma. När header-checksumman inte matchar, kasseras paketet.
  • Käll adress: Källadressen är en 32-bitars adress till källan som används för IPv4-paketet.
  • Destinations adress: Destinationsadressen är också 32 bitar stor och lagrar mottagarens adress.
  • IP-alternativ: Detta är ett valfritt fält i IPv4-rubriken, som används när värdet för IHL (Internet Header Length) är satt till större än 5. Det innehåller värden och inställningar relaterade till säkerhet, postväg, tidsstämpel och liknande alternativ. Listan med alternativ avslutas vanligtvis med en EOL-markör (End of Options List).
  • Data: Det här fältet lagrar data från protokollet som har överfört data till IP-lagret.

Hur man beräknar IPv4-headerlängden

Fältet Internet Header Length (IHL) talar om för routern exakt hur lång headern är så att den vet var headern slutar och data börjar. Eftersom fältet bara är 4 bitar brett lagrar det inte längden i byte direkt. Istället räknar det headern i 32-bitarsord, där varje ord är lika med 4 byte.

För att konvertera IHL-värdet till byte, multiplicera det med 4:

  • Minimum: Det minsta värdet enligt laglig internationell humanitär rättsprincip är 5, så 5 × 4 = 20 byte. Detta är en rubrik utan alternativ.
  • Maximal: Det största IHL-värdet är 15, så 15 × 4 = 60 byte. De extra 40 byten innehåller valfria fält.

Betrakta ett fungerande exempel. Om ett paket anländer med ett IHL-värde på 6, är headerlängden 6 × 4 = 24 byte, vilket innebär att 4 byte med alternativ finns efter standardheadern på 20 byte. För att hitta nyttolastens storlek, subtracHämta rubriklängden från fältet Total längd. Om Total längd är 1 500 byte och rubriken är 24 byte, då är nyttolasten 1 500 − 24 = 1 476 byte.

Denna beräkning är viktig under fragmentering, eftersom en router måste känna till headerstorleken för att beräkna hur mycket data varje fragment kan bära utan att överskrida nätverkets maximala värde. Transmission Enhet (MTU).

IPv4 vs IPv6-rubrik

IPv6-headern har omdesignats för att vara enklare och snabbare att bearbeta än IPv4-headern. Den använder en fast längd och flyttar sällan använda alternativ till separata tilläggsheaders, så att routrar kan vidarebefordra paket med linjehastighet. Tabellen nedan jämför de två headrarna fält för fält:

Leverans IPv4-rubrik IPv6-rubrik
Rubrikstorlek 20 till 60 byte (variabel) 40 byte (fast)
Antal fält 13 fält plus alternativ 8 fält
Adresslängd 32-bitars källa och destination 128-bitars källa och destination
Kontrollsumma för rubrik Presentera avlägsnas
Fragmenteringsfält I basrubriken (Identifiering, Flaggor, Offset) Flyttad till en rubrik för fragmenttillägget
Montering Bärs inuti rubriken Bärs i förlängningshuvuden
Längdfält Total längd (rubrik plus data) Nyttolastlängd (endast nyttolast)

Eftersom IPv6 tar bort kontrollsumman och alternativen för variabel längd innehåller dess rubrik färre fält och kan bearbetas i hårdvara utan omberäkning per hop.

Varför IP-rubriken är viktig

Varje fält i IP-headern finns så att routrar och värdar kan flytta ett paket över många nätverk utan en permanent anslutning mellan dem. Headern är det som gör att paketväxling fungerar.

  • routing: Destinationsadressen anger vart varje router ska vidarebefordra paketet, medan källadressen tillåter svar och felmeddelanden att returneras.
  • Loopförebyggande: Fältet Time to Live minskas vid varje hopp, så ett feldirigerat paket kasseras istället för att cirkulera på internet för alltid.
  • Leverans enligt rätt protokoll: Protokollfältet anger för den mottagande värden om nyttolasten ska överföras till TCP, UDP eller ett annat protokoll.
  • Integrity och återmontering: Kontrollsumman skyddar rubriken mot korruption, och fälten Identifiering, Flaggor och Fragmentförskjutning låter ett fragmenterat datagram byggas om i rätt ordning.

För nätverksingenjörer, läsning av dessa fält i en TCP / IP- Capture är ofta det snabbaste sättet att diagnostisera tappade paket, routingloopar och felkonfigurerade data. IP-adresser.

Vanliga frågor

Header Length (IHL) mäter endast headern, i 32-bitars ord, och sträcker sig från 20 till 60 byte. Total Length mäter hela datagrammet – header plus data – i byte, upp till 65 535. SubtracAtt skilja den ena från den andra ger nyttolastens storlek.

Fragmentering delar upp ett datagram som är större än en länks maximala värde Transmission Enhet i mindre delar. Fälten Identifiering, Flaggor och Fragmentförskjutning låter destinationen sätta ihop delarna i ordning. Det händer när ett paket måste korsa ett nätverk med en mindre MTU.

En IPv4-header har 13 fasta fält – Version, IHL, Tjänsttyp, Total längd, Identifiering, Flaggor, Fragmentförskjutning, TTL, Protokoll, Kontrollsumma, Källadress, Destinationsadress, plus ett valfritt alternativfält. Dataavsnittet som följer är nyttolasten, inte ett headerfält.

Nej. IPv4-headerns kontrollsumma täcker endast headerfälten, inte nyttolasten. Övre lagerprotokoll som TCP och UDP har sina egna kontrollsummor för att skydda data. Eftersom TTL ändras vid varje hopp beräknar routrar om headerns kontrollsumma vid varje vidarebefordran.

När TTL når noll, släpper routern paketet och returnerar ett ICMP Time Exceeded-meddelande till källan. Detta förhindrar att paketen förloras.ping för alltid i en routingloop. Den traceroute Verktyget förlitar sig på detta beteende för att kartlägga varje hopp längs en väg.

Protokollfältet identifierar vilket protokoll på det övre lagret som ska ta emot nyttolasten vid destinationen. Vanliga värden är 6 för TCP, 17 för UDP och 1 för ICMP. Den mottagande värden läser detta nummer för att skicka data till rätt hanterare.

AI och maskininlärningsverktyg analyserar infångade IP-rubriker för att upptäcka avvikelser som förfalskade källadresser, onormala TTL-värden eller fragmenteringsattacker. De klassificerar trafik och flaggar hot snabbare än manuell inspektion, även om en ingenjör fortfarande bekräftar resultaten innan de agerar.

GitHub Copilot kan utarbeta Python eller C-kod som packar upp IP-headerfält, avkodar flaggor och validerar kontrollsummor från en kort kommentar. RevGranska den genererade bitmaskningslogiken noggrant, eftersom offsets som är olika är en vanlig källa till parsningsfel.

Sammanfatta detta inlägg med: