IP-paketti
IP-paketti on Internet-protokollan perusyksikkö. Kaikki Internetissä liikennöitävä tieto pakataan IP-paketteihin, joita Internetin reitittimet siirtelevät keskenään.
IP-paketin omissa otsakkeissa tärkein tieto on "kohdeosoite". Se on itse asiassa ainoa tieto koko IP-paketissa (mukaan lukien sisimmät otsakkeet), jota pakettia kuljettavat reitittimet yleensä tutkivat. Tästä syystä IP-osoitteen väärentäminen on useimmiten helppoa. Vastaanottajaa taas useimmiten kiinnostaa eniten "lähdeosoite", johon hän lähettää vastauksensa.
Periaatteessa IP-paketin maksimikoko on 65 535 tavua, mutta useimmiten liikennöivät koneet pyrkivät käyttämään suurinta mahdollista 2. tason verkkotekniikoille sopivaa pakettikokoa, joka on yleisesti n. 1 500 tavua tai jopa vain 500 tavua. Mikäli koneet lähettävät sitä suurempia paketteja, joutuu liian ahtaan verkon reunalla oleva laite lohkomaan tai paloittelemaan paketit pienempiin osiin ().
Jottei hidasta lohkomista tapahtuisi, liikennöivät koneet pyrkivät tunnistamaan ahtaimman verkon, jota väliltä löytyy.
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ä RFC791:ssä 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 protokollan, jonka paketti on IP-paketin data-osiossa. Esimerkiksi:
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-väärennös 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.
IPv6-paketti koostuu otsikkotiedoista ja data-osiosta. Otsikkotiedot ovat tarpeen mukaan vaihtelevan mittaisia.
Versio
Ilmoittaa protokollan version, joka tässä tapauksessa on kuusi.
Luokkakenttä
Ilmoittaa paketille halutun luokan sen tarvitseman palvelun perusteella.
Vuon tunniste
Ilmoittaa mihin vuohon paketti kuuluu. Lähdeasemasta kohdeasemaan saattaa olla samanaikaisesti useampi vuo, jotka voidaan tällä kentällä eritellä.
Kuorman pituus
Ilmoittaa IPv6-paketin pakollisen otsikon jälkeisen osan pituutta okteteissa (tavuissa). Arvo 0 tarkoittaa poikkeuksellisesti 65535 (kentän maksimiarvo) tavua suurempaa megapakettia.
Seuraava otsikko
Ilmoittaa mahdollisen seuraavan otsikon tunnisteen.
Elinaika
Ilmoittaa paketille halutun elinajan. Normaalisti tämä asetetaan maksimiin eli 255:een, koska jokainen reititin vähentää vastaanottamansa paketin elinikää yhdellä. Eliniän saavuttaessa arvon 0 reitittimen on pudotettava se liikenteestä.
Lähdeosoite
Ilmoittaa lähettävän verkkosovittimen 128-bittisen IPv6-osoitteen.
Kohdeosoite
Ilmoittaa kohteena olevan verkkosovittimen 128-bittisen IPv6-osoitteen.
Rakenne täsmälleen sama kuin Hyppyoptio-otsikolla.