IPv4-paketti
IP-paketti koostuu pakollisista otsikkotiedoista ja data-osiosta:
| colspan='1'
| 0 - 3
| 4 - 7
| 8 - 15
| 16 - 18
| 19 - 31
|
| 0
| versio
| otsikon pituus
| palveluluokka
| kokonaispituus
|
| 32
| fragmenttitunnus
| liput
| fragmentin paikka
|
| 64
| elinaika
| protokollan numero
| otsikon tarkistussumma
|
| 96
| lähdeosoite
|
| 128
| kohdeosoite
|
| 160
| Optiot
|
| 192
| Data
|
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 paloittelemaan 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:
- 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 lähettäjän 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 kohdeaseman 32-bittisen IP-osoitteen.
Optiot
- Ilmoittaa paketin optiot jos niitä on. Optioita käytetään nykyisin erittäin harvoin ja enimmäkseen ne ovatkin krakkerienen 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 data, joka yleensä alkaa seuraavan tason protokollan otsikolla.
IPv6-paketti
IPv6-paketti koostuu otsikkotiedoista ja data-osiosta. Otsikkotiedot ovat tarpeen mukaan vaihtelevan mittaisia.
Pakolliset otsikkotiedot
| +
| 0 - 3
| 4 - 11
| 12 - 15
| 16 - 23
| 24 - 31
|
| 0
| Versio
| Luokkakenttä
| Vuon tunniste
|
| 32
| Kuorman pituus
| Seuraava otsikko
| Elinikä
|
| 64
| Lähdeosoite
|
| 96
|
| 128
|
| 160
|
| 192
| Kohdeosoite
|
| 224
|
| 256
|
| 288
|
Bitit 0-3 (Versio) ilmoittavat protokollan version, joka tässä tapauksessa on siis kuusi.
Biteillä 4-11 (Luokkakenttä) ilmoitetaan paketille haluttu luokka sen tarvitseman palvelun laadun perusteella.
Biteillä 12-31 (Vuon tunniste) ilmoitetaan mihin vuohon paketti kuuluu. Lähdeasemasta kohdeasemaan saattaa olla samanaikaisesti useampi vuo, jotka voidaan tällä kentällä eritellä.
Biteillä 32-47 (Kuorman pituus) ilmoitetaan IPv6-paketin pakollisen otsikon jälkeisen osan pituutta okteteissa (tavuissa). Arvo 0 tarkoittaa poikkeuksellisesti 65535 (kentän maksimiarvo) tavua suurempaa megapakettia.
Biteillä 48-55 (Seuraava otsikko) ilmoitetaan mahdollisen seuraavan otsikon tunniste.
Biteillä 56-63 (Elinikä) ilmoitetaan paketille haluttu elinikä. 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ä.
Biteillä 64-191 (Lähdeosoite) ilmoitetaan lähdeaseman 128-bittinen IPv6-osoite.
Biteillä 192-319 (Kohdeosoite) ilmoitetaan kohdeaseman 128-bittinen IPv6-osoite.
Lisäotsikot
Hyppyoptio-otsikko
(Pituus on 32 bitin monikerta)
| 0 - 7
| 8 - 15
| 16 - 31
|
| Seuraava otsikko
| Lisäotsikon pituus
| Optiot
|
Optiot jatkuvat
|
Kohdeoptio-otsikko
Rakenne täsmälleen sama kuin Hyppyoptio-otsikolla.
Reititysotsikko
(Pituus on 32 bitin monikerta)
| 0 - 7
| 8 - 15
| 16 - 23
| 24 - 31
|
| Seuraava otsikko
| Lisäotsikon pituus
| Reititystyyppi
| Solmuja jäljellä
|
Data
|
Lohkomisotsikko
(Pituus: 64-bittiä)
| +
| 0 - 7
| 8 - 15
| 16 - 28
| 29 - 30
| 31
|
| 0
| Seuraava otsikko
| Varattu
| Fragment Offset
| Res
| M
|
| 32
| Tunnistus
|
Todennusotsikko
(Pituus on 32 bitin monikerta)
| +
| 0 - 7
| 8 - 15
| 16 - 31
|
| 0
| Seuraava otsikko
| Kuorman pituus
| Reserved
|
| 32
| Turvallisuusindeksi
|
| 64
| Järjestysnumero
|
| 96-
| Autentikointidata (pituus vaihtelee)
|
Salausotsikko
(Pituus on 32-bitin monikerta)
| 0 - 7
| 0 - 15
| 16 - 23
| 24 - 31
|
| Turvallisuusindeksi
|
| Järjestysnumero
|
Dataa (pituus vaihtelee)
|
| lisää dataa
| Täyte (0 - 2040 bittiä)
|
| lisää täytettä
| Täytteen pituus
| Seuraava otsikko
|
Autentikointidataa (pituus vaihtelee)
|
Katso myös