**IPv6** on IP-protokollan versio, joka on kehitetty IPv4:n seuraajaksi. IPv6 tunnettiin varhaisessa kehitysvaiheessaan myös nimellä **IPng** eli *IP next generation*. Sen tärkein ero IPv4:ään on IP-osoitteen pituus ja osoiteavaruuden laajuus. IPv6:ssa käytetään 128-bittisiä osoitteita, jossa on yli 340 sekstiljoonaa (340 · 1036) yksilöllistä osoitetta kun taas IPv4-osoitteen pituus on 32 bittiä, jossa on noin neljä miljardia (4 · 109) yksilöllistä osoitetta. 

IPv6 on verkossa toimivalle laitteelle vastaava asia kuin puhelinnumero puhelimelle: jokaisella laitteella on oma osoitteensa ja siihen saadaan suora kaksisuuntainen yhteys. IPv6-protokollaa voi hyödyntää esimerkiksi IoT-palveluissa.

IPv4-osoitteiden puute
----------------------

Tärkein syy IPv6:n kehittämiseen oli IPv4-protokollan osoiteavaruuden pienuus. IPv4-osoitteiden loppumisesta on esitetty useita arvioita. Euroopassa IP-osoitteita hallinnoivan RIPEn vuonna 2007 esittämän arvion mukaan IPv4-osoiteavaruus olisi loppunut vuoteen 2011 mennessä.

IPv4-osoitteiden loppumista on kyetty siirtämään käyttämällä osoitteenmuunnostekniikoita ja muuttamalla IP-osoitteiden jakamista tehokkaammaksi. Osoitteenmuutoksien avulla suurikin joukko koneita voi jakaa yhtä aikaa yhden IP-osoitteen. Toisaalta juuri osoitteenmuunnostekniikat vaikeuttavat monien uusien palvelujen, kuten IP-puheen tai vertaisverkkojen käyttöä. Osoitteiden jakamista on tehostettu jakamalla organisaatioille entistä sopivamman kokoisia osoitenippuja, mikä on vähentänyt käyttämättömien mutta varattujen osoitteiden määrää. Toisaalta muuttamalla verkkojen konfigurointia dynaamisemmaksi esimerkiksi DHCP-protokollan avulla on voitu kierrättää entistä pienempää määrää osoitteita niille jotka sitä sillä hetkellä tarvitsevat.

Kun IPv4:ssä on 4 294 967 296 mahdollista osoitetta IPv6:ssa on 340 282 366 920 938 463 463 374 607 431 768 211 456 mahdollista osoitetta.

IPv6:n uusia ominaisuuksia
--------------------------

IPv6:ssa on pyritty siihen, että tietoliikenneverkon perustehtävä – pakettien välittäminen päätelaitteelta toiselle – on mahdollisimman yksinkertainen. Ylimääräisistä tarkistussummien laskemisesta on luovuttu.

Perus-IPv6:n ohella on kehitetty myös muita tekniikoita täydentämään IPv4:n puutteita:

* IPsec on Internetin tietoturva-arkkitehtuuri, joka suojaa yhteyksiä salakuuntelulta ja väärinkäytöksiltä
* Mobile IPv6 mahdollistaa Internet-laitteiden liikkumisen verkosta toiseen ilman, että yhteydet katkeavat
* SSM (*Single Source Multicasting*) on tehokas ja skaalautuva tapa lähettää vaikkapa videolähetettä Internetissä monille vastaanottajille
* Tilaton autokonfiguraatio (*stateless autoconfiguration*) on IPv6:n uusi tapa konfiguroida IP-laitteelle osoite ja muut asetukset automaattisesti ilman, että käyttäjän tarvitsee tehdä laitteelle muuta kuin kytkeä se verkkoon

Kaikki näistä tekniikoista on sovitettu myös nykyisen IPv4:n päälle. IPsec on saanut kohtalaisen hyvin suosiota etäkäytössä ja lähiverkkojen yhdistämisessä. Osa salaustarpeista ratkaistaan jo nyt TLS:llä (ent. SSL).

**MobileIPv6:n** käyttö on vielä vähäistä. Osan liikkuvuuden hallinnasta pystytään toteuttamaan peruskerroksen ratkaisuilla (esimerkiksi GPRS).

**SSM** edellyttää Internetin runkoreitittimien tukea. Operaattorit eivät ole nähneet SSM:lle vielä olevan kysyntää eivätkä tue sitä.

**Tilaton autokonfiguraatio** on toteutettu IPv4:n yhteydessä APIPA-standardina (*Automatic Private IP Addressing*). Niin APIPA kuin IPv6:n tilaton autokonfiguraatio eivät kykene konfiguroimaan kaikkia verkon ominaisuuksia, kuten DNS-palvelimia, joten automaattiseen konfigurointiin käytetty protokolla DHCP (DHCPv6) on edelleen tarpeellinen IPv6:n kanssa.

ICMPv6 on ICMP-protokollan versio, joka toimii IPv6-protokollan kanssa ja on myös keskeinen osa IPv6:n toimintaa (RFC 4443).

IPv6-sanastoa
-------------

IPv6:n yhteydessä on pyritty irtautumaan vanhasta ARPANET-verkon ajoilta periytyvästä sanastosta, kuten *verkkoasemista* (*isäntäkone*, *host computer*) ja *yhdyskäytävistä* (*gateway*). IPv6-verkossa on *solmuja* (*node*), solmu joka yhdistää verkkoja toisiinsa on nimeltään *reititin* (*router*).

Osoitteen esitys
----------------

IPv6-osoitteen esitysmuodon purkaminen binäärimuotoon.
Tekstimuodossa esitettäessä 128-bittiset IPv6-osoitteet jakautuvat kahdeksaan 16-bittiseen heksadesimaalisarjaan. Esimerkiksi 2001:0db8:85a3:08d3:1319:8a2e:0370:7334 on kelvollinen IPv6-osoite. Kaikki sarjan etunollat voidaan jättää esittämättä. Pelkkiä nollia sisältävät peräkkäiset sarjat voidaan lyhentää kahdella kaksoispisteellä '::' yhdessä kohtaa osoitetta. Esimerkiksi seuraavat osoitteet ovat kaikki kelvollisia ja viittaavat samaan osoitteeseen:

```
 2001:0db8:0000:0000:0000:0000:1420:57ab
 2001:0db8:0000:0000:0000::1420:57ab
 2001:0db8:0:0:0:0:1420:57ab
 2001:0db8:0:0::1420:57ab
 2001:0db8::1420:57ab
 2001:db8::1420:57ab

```

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 | Elinaika |
| 64 | Lähdeosoite |
| 96 |
| 128 |
| 160 |
| 192 | Kohdeosoite |
| 224 |
| 256 |
| 288 |

**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 eli kahdeksan bitin mittaisissa tavuissa. Arvo 0 tarkoittaa poikkeuksellisesti suurempaa jumbopakettia, jossa pituus on suurempi kuin 65 535 oktettia (kentän maksimiarvo). 

**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.

### 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 | 8-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) |

### Jumbogram

*Jumbogram* on IPv6-paketti, joka on suurempi kuin 65 535 oktettia (RFC 2675). IPv6-paketissa kuorman pituuden kertova kenttä on 16-bittinen ja Jumbo-paketeissa on lisäkenttä, jossa on 32-bittinen pituuskenttä. 32-bittinen lisäkenttä mahdollistaa kuormat, joiden pituus on 65 536 oktetin (216-1) ja 4 294 967 295 oktetin (232-1) välillä.

Suurempien pakettien siirron tarkoitus nostaa verkon suorituskykyä.

Standardit
----------

* RFC 2675 - IPv6 Jumbograms
* RFC 4291 - IP Version 6 Addressing Architecture
* RFC 4193 - Unique Local IPv6 Unicast Addresses
* RFC 4443 - Internet Control Message Protocol (ICMPv6) for the Internet Protocol Version 6 (IPv6) Specification
* RFC 4862 - IPv6 Stateless Address Autoconfiguration
* RFC 6437 - IPv6 Flow Label Specification
* RFC 6724 - Default Address Selection for Internet Protocol Version 6 (IPv6)
* RFC 7045 - Transmission and Processing of IPv6 Extension Headers
* RFC 8200 - Internet Protocol, Version 6 (IPv6) Specification

Katso myös
----------

* 6LoWPAN
* TCP/IP

Lähteet
-------

1. ↑  IPv6 avittaa kännyköiden lisäksi IoT-yhteyksiä - Uusiteknologia.fi *Uusiteknologia.fi*.  7.12.2017. Viitattu 9.5.2018.
2. ↑
3. ↑  Fall, Kevin R. & Stevens, W. Richard: *TCP/IP Illustrated, Volume*. Second Edition. Addison-Wesley. ISBN 978-0-321-33631-6.
4. ↑  Performance evaluation of IPv6 jumbogram packets transmission using jumbo frames *ieeexplore.ieee.org*.  25.12.2017. doi:10.1109/EECSI.2017.8239188.  Viitattu 26.5.2022. (englanniksi)

Aiheesta muualla
----------------

CommonsCommons
Wikimedia Commonsissa on kuvia tai muita tiedostoja aiheesta **IPv6**.
* The IPv6 Portal – All the IPv6 News
* Viestintäviraston alainen IPv6-työryhmän kotisivu