Záhlaví IP paketu: Formát, Pole

⚡ Chytré shrnutí

IP hlavička jsou metadata umístěná na začátku každého IP paketu a obsahují pole jako verze, délka hlavičky, celková délka, doba platnosti (TTL), protokol, kontrolní součet a zdrojové a cílové adresy, které routery čtou pro doručení dat.

  • 🧭 Účel: IP hlavička ukládá podrobnosti o směrování a doručení, aby každý paket dosáhl správného cíle napříč sítěmi.
  • 📏 Velikost: Délka záhlaví IPv4 se pohybuje od 20 do 60 bajtů a je řízena polem Délka internetové záhlaví.
  • 🧱 Klíčové oblasti: Mezi klíčová pole patří verze, IHL, typ služby, celková délka, TTL, protokol, kontrolní součet a adresy.
  • 🔀 Fragmentace: Identifikace, příznaky a posun fragmentu umožňují správné rozdělení a opětovné sestavení velkých datagramů.
  • 🆚 IPv4 vs IPv6: IPv6 nahrazuje variabilní hlavičku pevnou 40bajtovou hlavičkou a odstraňuje pole kontrolního součtu.
  • 🤖 Asistence AI: Analyzátory paketů s umělou inteligencí automaticky analyzují IP hlavičky, aby označily anomálie a urychlily řešení problémů.

Formát a pole záhlaví IP paketu

Co je hlavička IP?

Záhlaví IP adresy je metainformace na začátku IP paketu. Zobrazuje informace, jako je verze IP adresy, délka paketu, zdroj a cíl.

Záhlaví IPv4 má délku 20 až 60 bajtů a obsahuje informace potřebné pro směrování a doručování. Skládá se z polí jako Verze, Délka záhlaví, Celková délka, Identifikace, Příznaky, Kontrolní součet, zdrojová IP adresa a cílová IP adresa. Tato pole dohromady poskytují základní data potřebná pro... transmit spolehlivě přenášet paket z jednoho hostitele na druhého.

Součásti/pole záhlaví IPv4

Níže uvedený diagram znázorňuje kompletní formát záhlaví IPv4, kde je každé pole vykresleno ve správné pozici a s odpovídající bitovou šířkou:

Diagram formátu záhlaví paketu IPv4 zobrazující všechna pole a jejich bitové pozice

Následují různé komponenty/pole záhlaví IP paketu:

  • Verze: První pole IP záhlaví je 4bitový indikátor verze. V IPv4 je hodnota těchto čtyř bitů nastavena na 0100, což v binárním součtu znamená 4. Pokud router nepodporuje zadanou verzi, paket je zahozen.
  • Délka internetového záhlaví: Délka internetové hlavičky, zkráceně IHL, má velikost 4 bity. Nazývá se také HELEN (Header Length - délka hlavičky). Tato IP složka ukazuje, kolik 32bitových slov je v hlavičce přítomno.
  • Typ služby: Typ služby se také nazývá diferencované služby. Code Bod neboli DSCP. Toto pole poskytuje funkce týkající se kvality služby pro streamování dat nebo VoIP hovory. První 3 bity jsou prioritní bity. Také určuje, jak má být s datagramem zacházeno.
  • Celková délka: Celková délka se měří v bajtech. Minimální velikost IP datagramu je 20 bajtů a maximální je 65 535 bajtů. Pro výpočet velikosti datového zatížení lze použít HELEN a celkovou délku. Všichni hostitelé musí být schopni číst datagramy o délce 576 bajtů. Pokud je však datagram pro hostitele v síti příliš velký, široce se používá metoda fragmentace.
  • Identifikace: Identifikace je pole používané k jedinečné identifikaci fragmentů IP datagramu. Někteří doporučují použití tohoto pole i pro jiné účely, například pro přidání informací pro pakety. tracIng.
  • IP příznaky: Flags je tříbitové pole, které pomáhá řídit a identifikovat fragmenty. Možné konfigurace jsou: Bit 0 je rezervovaný a musí být nastaven na nulu; Bit 1 znamená nefragmentovat; a Bit 2 znamená více fragmentů.
  • Offset fragmentu: Posun fragmentu představuje počet datových bajtů před konkrétním fragmentem v daném datagramu. Je specifikován v jednotkách po 8 bajtech a má maximální hodnotu 65 528 bajtů.
  • Čas žít: Toto je 8bitové pole, které udává maximální dobu, po kterou může datagram žít v internetovém systému. Pokaždé, když je datagram zpracován, jeho hodnota TTL se sníží o jedna. Když hodnota TTL dosáhne nuly, datagram se zahodí, aby pakety nebyly doručovány donekonečna. Hodnota TTL se může pohybovat od 0 do 255.
  • Protokol: Toto pole záhlaví IPv4 označuje, který internetový protokol je přenášen v druhé části datagramu. Například číslo 6 se používá k označení TCP a 17 k označení protokolu UDP.
  • Kontrolní součet záhlaví: Další komponentou je 16bitové pole kontrolního součtu záhlaví, které se používá ke kontrole chyb v záhlaví. IP záhlaví je porovnáno s hodnotou kontrolního součtu. Pokud se kontrolní součet záhlaví neshoduje, paket je zahozen.
  • Adresa zdroje: Zdrojová adresa je 32bitová adresa zdroje použitého pro paket IPv4.
  • Cílová adresa: Cílová adresa má také 32 bitů a ukládá adresu příjemce.
  • Možnosti IP: Toto je volitelné pole záhlaví IPv4, které se používá, pokud je hodnota IHL (Internet Header Length) nastavena na větší než 5. Obsahuje hodnoty a nastavení týkající se zabezpečení, trasy záznamu, časového razítka a podobných možností. Seznam možností obvykle končí značkou End of Options List (EOL).
  • Datum: Toto pole ukládá data z protokolové vrstvy, která data předala vrstvě IP.

Jak vypočítat délku záhlaví IPv4

Pole Délka internetové hlavičky (IHL) sděluje routeru přesnou délku hlavičky, aby věděl, kde končí a začínají data. Protože pole má šířku pouze 4 bity, neukládá délku přímo v bajtech. Místo toho počítá hlavičku ve 32bitových slovech, kde každé slovo se rovná 4 bajtům.

Chcete-li převést hodnotu IHL na bajty, vynásobte ji číslem 4:

  • Minimální: Nejmenší povolená hodnota dle IHL je 5, takže 5 × 4 = 20 bajtů. Toto je záhlaví bez možností.
  • Maximum: Největší hodnota IHL je 15, takže 15 × 4 = 60 bajtů. Zbývajících 40 bajtů obsahuje volitelná pole.

Uvažujme praktický příklad. Pokud paket dorazí s hodnotou IHL 6, délka záhlaví je 6 × 4 = 24 bajtů, což znamená, že za standardní 20bajtovou záhlaví jsou přítomny 4 bajty voleb. Velikost dat zjistíme subsystémemtracdélku záhlaví z pole Celková délka. Pokud je celková délka 1 500 bajtů a záhlaví má 24 bajtů, pak je datová zátěž 1 500 − 24 = 1 476 bajtů.

Tento výpočet je důležitý během fragmentace, protože router musí znát velikost záhlaví, aby mohl zjistit, kolik dat může každý fragment přenášet, aniž by překročil maximální povolenou velikost sítě. Transmission Jednotka (MTU).

Záhlaví IPv4 vs. IPv6

Záhlaví IPv6 bylo přepracováno tak, aby bylo jednodušší a rychlejší na zpracování než záhlaví IPv4. Používá pevnou délku a zřídka používané možnosti přesouvá do samostatných rozšiřujících záhlaví, takže routery mohou přeposílat pakety rychlostí linky. Následující tabulka porovnává obě záhlaví pole po poli:

vlastnost Záhlaví IPv4 Záhlaví IPv6
Velikost záhlaví 20 až 60 bajtů (proměnná) 40 bajtů (pevně stanoveno)
Počet polí 13 polí plus možnosti 8 polí
Délka adresy 32bitový zdroj a cíl 128bitový zdroj a cíl
Kontrolní součet záhlaví Současnost Odstraněno
Fragmentační pole V základní hlavičce (Identifikace, Příznaky, Offset) Přesunuto do záhlaví rozšíření fragmentu
možnosti Neseno uvnitř záhlaví Přenášeno v rozšiřujících záhlavích
Pole délky Celková délka (záhlaví plus data) Délka užitečného zatížení (pouze užitečné zatížení)

Protože IPv6 ruší kontrolní součet a možnosti proměnné délky, jeho hlavička obsahuje méně polí a lze ji hardwarově zpracovat bez přepočítávání na každý krok.

Proč je IP hlavička důležitá

Každé pole v IP záhlaví existuje proto, aby routery a hostitelé mohli přesouvat pakety přes mnoho sítí bez trvalého spojení mezi nimi. Záhlaví je to, co umožňuje fungování přepínání paketů.

  • Směrování: Cílová adresa říká každému routeru, kam má paket přeposlat, zatímco zdrojová adresa umožňuje vracet odpovědi a chybové zprávy.
  • Prevence smyček: Pole Time to Live se při každém skoku snižuje, takže chybně směrovaný paket je zahozen, místo aby kroužil internetem donekonečna.
  • Dodání dle správného protokolu: Pole Protocol říká přijímajícímu hostiteli, zda má datovou zátěž předat protokolu TCP, UDP nebo jinému.
  • Integrity a opětovná montáž: Kontrolní součet chrání hlavičku před poškozením a pole Identification (Identifikace), Flags (Příznaky) a Fragment Offset (Offset fragmentu) umožňují znovu sestavit fragmentovaný datagram ve správném pořadí.

Pro síťové inženýry je čtení těchto polí v TCP / IP Zachycení je často nejrychlejší způsob, jak diagnostikovat zahozené pakety, směrovací smyčky a špatně nakonfigurované IP adresy.

Nejčastější dotazy

Délka záhlaví (IHL) měří pouze záhlaví v 32bitových slovech a pohybuje se od 20 do 60 bajtů. Celková délka měří celý datagram – záhlaví plus data – v bajtech, až do 65 535.tracOddělením jednoho od druhého získáme velikost užitečného zatížení.

Fragmentace rozděluje datagram, který je větší než maximální hodnota pro daný odkaz. Transmission Rozdělit na menší části. Pole Identifikace, Příznaky a Posun fragmentu umožňují cíli znovu sestavit části v pořadí. K tomu dochází vždy, když musí paket projít sítí s menší MTU.

Záhlaví IPv4 má 13 pevných polí – Verze, IHL, Typ služby, Celková délka, Identifikace, Příznaky, Posun fragmentu, TTL, Protokol, Kontrolní součet, Zdrojová adresa, Cílová adresa a navíc volitelné pole Možnosti. Následující sekce Data je datová část, nikoli záhlaví.

Ne. Kontrolní součet záhlaví IPv4 pokrývá pouze pole záhlaví, nikoli užitečné zatížení. Protokoly vyšší vrstvy, jako jsou TCP a UDP, nesou své vlastní kontrolní součty pro ochranu dat. Protože se TTL mění při každém směrování, routery přepočítávají kontrolní součet záhlaví při každém přesměrování.

Když TTL dosáhne nuly, router zahodí paket a vrátí zdroji zprávu ICMP Time Exceeded. To zabrání doručení paketů.ping navždy ve směrovací smyčce. traceroute Nástroj se na toto chování spoléhá při mapování každého skoku podél cesty.

Pole Protokol určuje, který protokol vyšší vrstvy by měl přijmout datovou zátěž v cíli. Běžné hodnoty jsou 6 pro TCP, 17 pro UDP a 1 pro ICMP. Přijímající hostitel toto číslo přečte, aby předal data správnému obslužnému programu.

Nástroje umělé inteligence a strojového učení analyzují zachycené IP hlavičky a detekují anomálie, jako jsou falešné zdrojové adresy, abnormální hodnoty TTL nebo útoky fragmentací. Klasifikují provoz a označují hrozby rychleji než manuální kontrola, i když technik stále potvrzuje zjištění předtím, než zasáhne.

GitHub Copilot může navrhovat Python nebo kód v jazyce C, který rozbaluje pole záhlaví IP adres, dekóduje příznaky a ověřuje kontrolní součty z krátkého komentáře. RevPečlivě si prohlédněte vygenerovanou logiku maskování bitů, protože posuny o jednu jsou běžným zdrojem chyb při analýze.

Shrňte tento příspěvek takto: