IPv6

**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&nbsp;&sdot;&nbsp;1036) yksilöllistä osoitetta kun taas IPv4-osoitteen pituus on 32 bittiä, jossa on noin neljä miljardia (4&nbsp;&sdot;&nbsp;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  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 ().

## 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 *[[Solmu (tietojenkäsittelytiede)|solmuja]]* (*node*), solmu joka yhdistää verkkoja toisiinsa on nimeltään *[[reititin]]* (*router*).

## Osoitteen esitys

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

**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  (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)

#### Kohdeoptio-otsikko

Rakenne täsmälleen sama kuin Hyppyoptio-otsikolla. 

#### Reititysotsikko

(Pituus on 32 bitin monikerta)

#### Lohkomisotsikko

(Pituus: 64-bittiä)

#### Todennusotsikko

(Pituus on 32 bitin monikerta)

#### Salausotsikko

(Pituus on 32-bitin monikerta)

### Jumbogram
*Jumbogram* on IPv6-paketti, joka on suurempi kuin  (). 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  (216-1) ja  (232-1) välillä.

Suurempien pakettien siirron tarkoitus nostaa verkon suorituskykyä.

## Standardit
*  - IPv6 Jumbograms
*  - IP Version 6 Addressing Architecture
*  - Unique Local IPv6 Unicast Addresses
*  - Internet Control Message Protocol (ICMPv6) for the Internet Protocol Version 6 (IPv6) Specification
*  - IPv6 Stateless Address Autoconfiguration
*  - IPv6 Flow Label Specification
*  - Default Address Selection for Internet Protocol Version 6 (IPv6)
*  - Transmission and Processing of IPv6 Extension Headers
*  - Internet Protocol, Version 6 (IPv6) Specification

## Katso myös
* 6LoWPAN
* TCP/IP

## Lähteet

## Aiheesta muualla

* The IPv6 Portal – All the IPv6 News
* Viestintäviraston alainen IPv6-työryhmän kotisivu