IP (Internet Protocol, RFC 791) a TCP/IP referenciamodell általános adatszállításra szolgáló hálózati réteg protokollja. Összeköttetés mentes (datagram) szolgáltatást nyújt a szállítási réteg felé. Az IP fejrész minimum 5, maximum 15 db 32 bites szóból áll. Az Ethernet keret típusmezőjének értéke 0x0800.
Internet fejrész szerkezete:
IP fejrész első szó:
Az első szó általános információkat tartalmaz: Verziószám; IP fejrész hossza (szavakban); szolgáltatás típusa (TOS); adatmező hossza (bájtokban mérve).
IP fejrész második szó:
Az IP fejrész második szava a csomag darabolásával kapcsolatos információkat tartalmazza. Darabolásra akkor van szükség, ha a csomag (túl nagy mérete miatt) nem ágyazható be az adatkapcsolati réteg keret adatmezőjébe. Az azonosító a csomagdarabok összetartozását jelzi. A DF jelzőbit a csomag darabolhatatlan voltát jelzi. Az MF jelzőbit 0 értéke jelzi, hogy az adott darab (fragment) a sorozat utolsó eleme. Az offset érték a darab eredeti csomagbeli helyét mutatja (8 bájtos egységben mérve).
IP csomagok darabolása (fregmentálás):
Az azonosítót az adó állomás adja, és minden fregmentben változatlan marad. Az offset kezdetben nulla étékű. Darabolást bármely állomás (router) végezhet a csomag ill. csomagdarab küldése előtt. (Datalink MTU miatt). Darabolás az adatmező valamely 8 bájtos egységhatárán következhet be. Az offset értékben a fregment első bájtjának az eredeti (nem darabolt) csomagbeli helyét jelezzük 8 bájtos egységben számolva. A darabok összeillesztését a célállomás végzi az IP fejrész második szavának adatai alapján.
Darabolás példa:
A forrás állomáson küldésre vár egy 2000 bájt méretű csomag (+20 bájt IP fej).
A forrás 1024+20 bájt MTU értékű linkhez kapcsolódik.
Az első forgalomirányító 512+20 bájt MTU értékű linken küldi tovább a csomagot.
Az eredeti (darabolatlan) csomag IP fejrészének 2. szava:
Offset = 0
A forrás által feladott csomagok információi (2. szó):
Offset = 0
Offset = 0 + 1024/8 = 128
A router által továbbküldött csomagok információi (2. szó):
Offset = 0
Offset = 0 + 512/8 = 64
Offset = 128
Offset = 128 + 512/8 = 192
Harmadik szó:
A harmadik szó adatai - általános információk:
8 bit: TTL a csomag „hátralevő életidejének” jelzése. Az útválasztónak kötelező legalább 1-et levonni a rajtuk áthaladó csomag TTL értékéből. Ha a TTL mező értéke nullára csökken, akkor a csomag "halottnak" tekintendő, s el kell dobni.
8 bit: Felsőbb (transzport) rétegbeli protokoll kódja – RFC 1700.
16 bit: A fejrész ellenőrző összege.
Negyedik és ötödik szó:
A negyedik és ötödik szó adatai - címzések:
32 bit: A „forrás” IP címe.
32 bit: A „cél” IP címe.
Hatodik szótól:
A hatodik szótól - 32 bites opcionális információk, pl.:
Record route - A továbbítás útvonalának naplózása.
Timestamp - A késleltetési idők naplózása.