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 
IPv4-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 IPv4-otsikon pituuden 32-bittisinä sanoina. Dataosiota 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 IPv4-paketin kokonaispituuden (otsikko + data) okteteissa eli kahdeksan bitin mittaisissa tavuissa.

Tunnus

Pilkotut IPv4-paketit saavat pilkottaessa (fragmentointi) saman tunnuksen, jotta alkuperäisen datagrammin uudelleenkoostaminen (defragmentointi) onnistuisi vastaanottajapäässä.

Liput

Ensimmäinen bitti näistä on varattu, ja sen täytyy olla aina 0. Toinen bitti ilmaisee saako paketin pilkkoa; arvossa 1 saa, muutoin ei. Kolmas bitti ilmaisee onko pilkottu paketti sarjansa eli alkuperäisen datagrammin viimeinen; arvo 1 ilmaisee, että sarja jatkuu, ja arvo 0 ilmaisee, että kyseessä on sarjan viimeinen paketti.

Fragmentin paikka

Ilmoittaa mihin kohtaan alkuperäistä datagrammia fragmentti kuuluu. Ensimmäinen fragmentti saa arvon 0, joka tarkoittaa, että fragmentti tulee uudelleenkoostettavassa paketissa ensimmäiseksi. Protokollan mukaan 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ä ovat 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ää usein lähettäjäasemalle ICMP elinaika ylitetty eli Time exceeded -virheilmoituksen lähetyksen epäonnistumisesta.

Protokolla

Ilmoittaa seuraavan kerroksen (kapseloidun) protokollan, jota kuljetetaan IPv4-paketin datagrammina. Esimerkiksi:
 1: ICMP
 2: IGMP
 6: TCP
 17: UDP

Tarkistussumma

Ilmoittaa otsikon tarkistussumman. Tarkistussummaa tarvitaan, jotta voidaan havaita onko IPv4-paketin otsikko muuttunut matkalla kohdeasemaan, mikä saattaa olla erittäinkin kriittistä yhteyden kannalta. Datagrammia 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 tarkoittaa, että lähdeosoitteeksi väärennetään jokin muu kuin verkkosovittimen todellinen IPv4-osoite. Jotkin reitittimet tosin hylkäävät paketteja, jos pakettien lähettäjäosoite ei kuulu niihin IPv4-aliverkkoihin, jotka reititetään verkkosovittimeen, josta paketti saapui. Toisin sanoen paketti hylätään, jos se saapuu eri paikasta, kuin mistä sen luonnollisesti pitäisi tulla. Tätä ominaisuutta kutsutaan reverse path forwarding -suodatukseksi. 

Kohdeosoite

Ilmoittaa paketin kohteena olevan verkkosovittimen 32-bittisen IPv4-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ää IP-paketin varsinaisen datan eli datagrammin, joka yleensä alkaa seuraavan tason protokollan otsikolla.

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

TCP/IP