IPv4

IPv4 on IP-protokollan yleisesti käytetty versio. Sen seuraajaksi on kehitetty IPv6.

IPv4:ssä IP-osoite on 32-bittinen numero, jota on kasvatettu IPv6:ssa 128-bittiseksi useiden muiden muutosten ohella.

IPv4-paketti 
IP-paketti koostuu pakollisista otsikkotiedoista ja data-osiosta:

Versio

Ilmoittaa protokollan versionumeron, tässä tapauksessa 4 eli binäärijärjestelmällä ilmoitettuna 0100.

Otsikon pituus (IHL, Internet header length)

Ilmoittaa IP-otsikon pituuden 32-bittisinä sanoina. Data-osiota ei lasketa tähän mukaan. Jos optioita ei käytetä niin kentän arvo on 5.

Palveluluokka (TOS, Type of service)

Ilmoittaa toivomuksen palveluluokasta. Alkuperäisessä määrittelyssä () ensimmäiset kolme bittiä (precedence) määriteltiin liikenteen luokitteluun ja merkkaukseen. Seuraavat kolme bittiä sisältävät toivomuksen palvelulaadusta. Kaksi viimeistä bittiä jätettiin tulevia tarpeita varten. Nykyään TOS-kenttää käytetään DiffServ:iä ja ECN:ää varten.

Kokonaispituus

Ilmoittaa IP-paketin kokonaispituuden (otsikko + data) okteteissa eli kahdeksan bitin mittaisissa tavuissa.

Fragmenttitunnus

Ilmoittaa paloittelutunnuksen, jos dataa on jouduttu lohkomaan matkan varrella. Samaan alkuperäiseen data-osioon kuuluvat palaset saavat saman tunnuksen, jotta kokoaminen onnistuisi.

Liput

Ensimmäinen bitti näistä on varattu ja sen täytyy olla aina 0. Toinen bitti ilmaisee saako pakettia paloitella; saa, jos ja vain jos se on arvossa 1. Jäljelle jäänyt bitti ilmaisee onko alun perin paloitellun paketin tapauksessa tulossa vielä lisää palasia; arvo 1 ilmaisee, että lisää palasia on tulossa ja 0 paketin olevan viimeinen palanen.

Fragmentin paikka

Ilmoittaa mihin kohtaan kokonaisuudesta mikin paloitellun paketin palanen kuuluu. Ensimmäinen palanen saa tähän kenttään arvon 0, joka tarkoittaa paloittelun aloittamista data-kentän alusta. Lailliset paketit on paloiteltava 64-bitin monikertojen kohdilta.

Paketin elinaika (TTL, Time to live)

Ilmoittaa paketin elinajan. Alun perin kenttä ilmoitti paketin elinajan sekunteina mutta nykyään kenttä on ns. hyppylaskuri. Kentän suurin mahdollinen arvo on 255 eli kaikki kahdeksan bittiä ykkösiä. Arvoa vähennetään aina yhdellä sen kulkiessa reitittimen läpi. Kun elinajan arvo on 0, paketin vastaanottava reitin pudottaa sen liikenteestä ja lähettää normaalisti lähettäjäasemalle ICMP time exeeded -virheilmoituksen lähetyksen epäonnistumisesta.

Protokolla

Ilmoittaa seuraavan kerroksen (kapseloidun) protokollan, jonka paketti kuljetetaan on IP-paketin data-osiossa. Esimerkiksi:
 1: ICMP
 2: IGMP
 6: TCP
 17: UDP

Tarkistussumma

Ilmoittaa otsikon tarkistussumman. Tarkistussummaa tarvitaan, jotta voidaan havaita onko IP-paketin otsikko muuttunut matkalla kohdeasemaan, joka saattaa olla erittäinkin kriittistä yhteyden kannalta. Data-osiota ei lasketa tarkistuksessa mukaan ja sen oikeellisuuden tarkistus täytyy hoitaa ylemmän tason protokollalla.

Lähdeosoite

Ilmoittaa paketin lähettävän verkkosovittimen 32-bittisen IPv4 osoitteen. IP-osoitteen väärentäminen on käytännössä niinkin helppoa, että lähettäjä asettaa tämän kohdan otsikosta itse. Ongelmia saattaa tosin ilmentyä reitityksessä kohdeasemaan mutta sekin on suhteellisen helposti ratkaistava ongelma.

Kohdeosoite

Ilmoittaa paketin kohteena olevan verkkosovittimen 32-bittisen IP-osoitteen. 

Optiot

Ilmoittaa paketin optiot jos niitä on. Optioita käytetään nykyisin erittäin harvoin ja enimmäkseen ne ovatkin krakkerien suosiossa sillä niillä voidaan muun muassa manipuloida paketin reititystä. Mikäli optiot jäävät vajaaksi 32-bitin monikerrasta täytyy perään lisätä täytettä, koska IP-otsikon täytyy olla 32-bitin monikerran kokoinen.

Data

Sisältää luonnollisesti IP-paketin varsinaisen datan, joka yleensä alkaa seuraavan tason protokollan otsikolla.

Standardit 
  (korvaa: ) − IPv4
  - IP Mobility Support for IPv4, Revised

TCP/IP