IPv6
IPv6, to jest Internet protokol verzija 6, je protokol sloja mreže, naslednik internet protokola vrezije 4 (IPv4), osmišljen od strane IETFa (engl. Internet Engineering Task Force).
U IPv6, novi (ali ne još široko korišćen) standardni internet protokol, gde su adrese 128 bita široke, što bi, čak i sa velikim dodelama netblokova, trebalo da zadovolji blisku budućnost. Teoretski, postojalo bi tačno 2128, ili 3.403×1038 unikatnih adresa domaćinskih interfejsa. Kada bi zemlja bila sačinjena kompletno od zrna peska od 1 cm³, onda bi mogla da se dodeli jedinstvena adresa svakom zrnu u 300 miliona planeta veličine zemlje. Ovaj veliki prostor za adrese će biti retko popunjen, što omogućava da se ponovo kodira više informacija za rutovanje u same adrese.
Adresa verzije 6 se piše kao osam četvorocifrenih heksadecimalnih brojeva (8 puta po 16 bitova) odvojenih dvotačkama. Jedan niz nula po adresi može da se izostavi, pa je 1080::800:0:417A isto što i 1080:0:0:0:0:800:0:417A.
Globalne adrese koje se šalju ka jednom odredištu se sastoje iz dva dela: 64-bitni deo za rutiranje i 64-bitni identifikator domaćina.
Netblokovi se određuju kao moderne alternative IPv4: broj mreže, koga prati kosa crta i broj značajnih bitova (u decimalnom zapisu). Primer: 12AB::CD30:0:0:0:0/60 uključuje sve adrese koje počinju sa 12AB00000000CD3.
IPv6 ima dosta poboljšanja u odnosu na IPv4, pored samo većeg prostora za adrese, uključujući i samostalno ponovno odbrojavanje i obaveznu upotrebu IPsec-a.
Jedan IPv6 paket ima sledeću opštu formu:
Jedino potrebno zaglavlje se odnosi na IPv6 zaglavlje. Ovo je fiksna veličina sa dužinom od 40 bajtova, u poređenju sa 20 bajtova pomoćnog dela IPv4. Sledeća produžena zaglavlja su definisana:
- Zaglavlje Hop-by-Hop opcija: Definišu specijalne opcije koje zahtevaju hop-by-hop procesiranje.
- Zaglavlje rutiranja: Obezbeđuje prošireno rutiranje, slično izvorišnom rutiranju u IPv4.
- Zaglavlje fragmenata: Sadrži informacije o fragmentaciji i ponovnom sklapanju.
• Zaglavlje autentičnosti: Ovezbeđuje integritet i autentičnost svakog paketa. • Zaglavlje enkapsulacije sigurnosti podatka: Obezbeđuje privatnost. • Zaglavlje odredišnih opcija: Sadrži fakultativne informacije koje će ispitati odredišni čvor.
U slučaju kada se koristi više produženih zaglavlja, IPv6 preporučuje da se redosled zaglavlja pojavi u sledećem redosledu:
- IPv6 zaglavlje: Obavezno, mora uvek da bude prvo.
- Zaglavlje Hop-by-Hop opcija
- Zaglavlje Destinacionih Opcija: Za opcije koje će biti obrađene od strane prvog odredišta koje se pojavljuje u polju IPv6 Odredišne Adrese plus naknadnih odredišta koja su nabrojana u zaglavlju rutiranja.
- Zaglavlje rutiranja
- Zaglavlje fragmenata
- Zaglavlje autentičnosti
- Zaglavlje enkapsulacije sigurnosti podatka
- Zaglavlje odredišnih opcija: Za opcije koje će biti obrađene samo u krajnjem odredištu paketa.
Slika prikazuje primer primer jednog IPv6 paketa koji uključuje deo svakog zaglavlja osim onih koja su povezana sa sigurnošću. IPv6 zaglavlje i svako produženo zaglavlje sadrže polje Sledeće Zaglavlje. Ovo polje identifikuje tip sledećeg zaglavlja. Ako je sledeće zaglavlje jedno od produženih zaglavlja, onda ovo polje sadrži identifikator tipa tog zaglavlja. U protivnom, ovo polje sadrži identifikator protokola za protokol višeg sloja koji koristi IPv6 (obično protokol transportnog sloja), koriste se iste veličine kao i polja IPv4 protokola. Na slici, protokol višeg sloja je TCP, tako da se podaci viših slojeva koje nosi IPv6 paket sadrže od zaglavlja TCP-a koje prati blok aplikacionih podataka.
IPv6 adrese su dugačke 128 bita. Adrese se dodeljuju pojedinačnim interfejsima na čvorovima, a ne čvorovima lično. Pojedinačni interfejs može da ima višestruku unicast adresu. Bilo koja od unicast adresa povezana sa čvornim interfejsom može biti iskorišćena kako bi jedinstveno predstavila taj čvor. Kombinacija dugih adresa i višestrukih adresa po interfejsu omogućava efikasnije rutiranje u odnosu na IPv4. U IPv4, adresa generalno nema konstrukciju koja pomaže rutiranju i zbog toga ruter mora da vodi veliku tabelu putanja rutiranja. Duže internet adrese dozvoljavaju veliki broj adresa od strane hijerarhija mreža, dobavljača pristupa, geografije, preduzeća itd. Takav broj bi trebalo da učini da tabele rutiranja budu manje, a pregled tabela brži. Dopuštanje višestrukih adresa po interfejsu bi trenalo da obezbedi pretplatniku koji koristi višestruke dobavljače pristupa po istom interfejsu da ima odvojenu adresnu gomilu kod svakog dobavljača. IPv6 dozvoljava tri tipa adresa:
- Unicast: Identifikator za jedan interfejs. Paket poslat unicast adresi se isporučuje interfejsu koji je identifikovan tom adresom.
- Anycast: Identifikator za set interfejsa (koji pripadaju različitim čvorovima). Paket poslat anycast adresi se isporučuje nekom od interfejsa koji je identifikovan tom adresom (nejbližem, gledajući po protokolu rutiranja).
- Multicast: Identifikator za set interfejsa (koji pripadaju različitim čvorovima). Paket poslat multicast adresi se isporučuje svim interfejsima koji su identifikovani tom adresom.
IPv6 standard definiše tok kao posledicu slanja paketa sa određenog izvorišta ka određenom odredištu (unicast ili multicast) pri kome izvorište traži da interventni ruteri sa paketom posebno postupaju. Tok je jedinstveno definisan tako što se kombinuju izvorišna i odredišna adresa sa 20-bitnom oznakom protoka koja nije nula. Stoga, izvorište dodeljuje istu oznaku toka svim paketima koji su deo istog toka. Gledano iz ugla izvorišta, tok je, u suštini, niz paketa koje je generisao jedan deo aplikacije u izvorištu, a koja ima iste zahteve transportnog servisa. Tok može obuhvatati jednu TCP konekciju ili čak više TCP konekcija. Jedna aplikacija može da generiše jedan tok ili više tokova. Primer dva toka je multimedijalni sastanak, koji može da ima jedan tok za zvuk i drugi za grafiku, svaki sa drugačijim zehtevima transfera u pogledu prenosa podataka, kašnjenja ili odstupanja od kašnjenja. Ako se pogleda iz ugla rutera, tok je niz paketa koji dele atribute koji utiču na to kako će se ruter ponašati prema ovim paketima. To ubraja put, dodeljivanje sredstava, zahteve odbacivanja, obračun i atribute sigurnosti. Ruter može drugačije da se ponaša prema paketima koji nisu sa istog toka, uključujući dodeljivanje drugačijeg prostora u baferu, davanjem drugačijeg prvenstva u slučaju prosleđivanja i zahtevom za drugačijim kvalitetom usluge od strane mreža. Ne postoji poseban značaj bilo koje oznake toka. Umesto toga, da bi se obezbedio specijalni postupak tok se mora objaviti na neki drugi način. Na primer, izvorište može da pregovara sa ruterom ili zatraži od rutera specijali postupak ispred vremena na pomoću kontrolnog protokola ili u toku transmisije tako što će postaviti informaciju u jedno od produženih zaglavlja u paketu, kao što je recimo zaglavlje Hop-by-Hop opcija. Primeri specijalnog postupka koji mogu biti zatraženi uključuju neku vrstu ne standardnog kvaliteta servisa i neku vrstu servisa u realnom vremenu. U načelu, svi korisnički zahtevi za određenim tokom mogu biti definisani u produženom zaglavlju i uključeni u svaki paket. Ako želimo da ostavimo koncept toka otvoren da bi se uključilo mnoštvo zahteva, ovaj plan pristupa mogao bi rezultirati u veoma velikim zaglavljima paketa. Alternativa, usvojena za IPv6, je oznaka toka, u kojoj su zahtevi toka definisani pre početka toka i jedinstvena oznaka toka je dodeljena toku. U ovom slučaju ruter mora da sačuva informacije zahteva toka o svakom toku. Sledeća pravila važe za oznake toka:
- Hostovi ili ruteri koji ne podržavaju polje Oznake Toka moraju da postave polje na nulu kada prave paket, sprovedu polja nepromenjena pri prosleđivanju paketa i ignorišu polja kada prime paket.
- Svi paketi koji su proizvedeni u datom izvorištu sa istom nenultom Oznakom Toka moraju da imaju istu Odredišnu Adresu, Izvorišnu Adresu, sadržinu zaglavlja Hop-by-Hop opcija (ako je zaglavlje prisutno) i sadržaj zaglavlja Rutiranja (ako je ovo zaglavlje prisutno). Svrha je ta da ruter može da obradi paket tako što će jednostavno pogledati oznaku toka u tabeli bez ispitivanja ostalih zaglavlja.
- Izvorište dodeljuje toku oznaku toka. Nova oznaka toka mora biti izabrana (prividno) slučajno i ujednačeno u opsegu od 1 do 220-1, pod uslovom da izvorište ne iskoristi ponovo oznaku toka za novi tok dok je postojeći tok u životu. Nula Oznaka Toka je rezervisana da naznači da se ne koristi ni jedna oznaka toka.
Ova poslednja tačka zahteva malo razrade. Ruter mora da pruži neke informacije o karakteristikama svakog aktivnog toka koji prolazi kroz njega, verovatno u nekoj vrsti tabele. Da bi uspešnije i brže prosledio paket, pogled na tabelu mora biti brži. Jedna alternativa je da ima tabelu sa 220 (oko milion) tačaka, jedna za svaku moguću oznaku toka što nameće nepotrebni memorijski teret ruteru. Još jedna alternativa je imati jednu tačku u tabeli po aktivnom toku, uključiti oznaku toka u svaku tačku, i tražiti od rutera da pretražuje tabelu svaki put kada naiđe paket. Ovo ruteru nameće nepotrebni teret pri obradi. Umesto toga, mnogi ruteri koriste neku vrstu mešane tabele. Sa ovakvim pristupom koriste se tabele umerene veličine i svaki tok se uvrštava u tabelu koristeći funkciku za melanziranje nad oznakaam tokova. Melanzna funkcija može jednostavno biti nekoliko najmanje značajnih bita (recimo 8. ili 10.) oznake toka ili jednostavno računanje nad 20 bita oznaka tokova koje su ujednačeno deljene na njihove moguće opsege.
Zaglavlje Hop-by-Hop opcija nosi fakultativne informacije koje, ukoliko je ovo polje prisutno, moraju biti ispitane od strane svakog rutera koji se nalazi na putanji. Ovo polje se sastoji od sledećih polja :
- Sledeće Zaglavlje (8 bita): Identifikuje tip zaglavlja koje ide odmah iza ovog zaglavlja.
- Dužina produženosti zaglavlja (8 bita): Dužina ovog zaglavlja iskazana u jedinicama od 64 bita, ne uključujući prvih 64 bita.
- Opcije: Polje promenljive dužine koje se sastoji od jedne ili više definicija opcija. Svaka definicija je sastavljena od tri podpolja: Tip Opcije (8 bita), koje identifikuje opciju; Dužina (8 bita), koje određuje dužinu polja Opcije Podataka u bajtovim; i Opcije Podataka, koje je specifikacija opcija promenljive dužine.
U stvari koriste se najnižih pet bitova da bi se opisala neka određena opcija. Najviša dva bita ukazuju na to koja će se akcija primeniti od strane čvora koji koji ne prepoznaje ovaj tip opcija, to su sledeće akcije: • 00 – Preskoči ovu opciju i nastavi sa obradom zaglavlja. • 01 – Odbaci paket. • 10 – Odbaci paket i pošalji ICMP poruku o problemu sa parametima peketovoj izvorišnoj adresi, pokazujući na ne prepoznavanje tipa opcija. • 11 – Odbaci paket i samo ako odredišna adresa nije multicast adresa, pošalji ICMP poruku o problemu sa parametrima izvorišnoj adresi paketa, pokazujući na neprepoznatljiv tip opcija. Treći najviši bit specificira da li se polje Opcija Podataka ne menja (0) ili se može menjati (1) na ruti od izvorišta do odredišta. Podaci koji se mogu menjati moraju biti isključeni iz računanja autentičnosti. Dogovor za Tip Opcija se odnosi i na zaglavlje Destinacionih Opcija. Četiri hop-by-hop opcija je trenutno određeno:
- Podmetač 1: Koristi se da bi se predeo zaglavlja sa Opcijama napunio sa jednim bajtom.
- Podmetač N: Koristi se da bi se predeo sa Opcijama napunio sa N (N2) bajtova. Dva punjenja uveravaju da zaglavlje ima više od 8 bajtova dužine. ≥
- Ogroman Koristan Teret: Koristi se da bi se poslao IPv6 paket sa teretom koji je duži od 65 535 okteta. Polje Opcija Podataka ove opcije je dugačko 32 bita i daje dužinu paketa u oktetima, uključujući IPv6 zaglavlje. Za takve pakete, polje Dužina Podataka u IPv6 zaglavlju mora biti postavljeno na nulu i ne sme biti prisutno zaglavlje fragmenata. Sa ovom opcijom, IPv6 podržava veličine paketa do 4 miliona bajta. Ovo olakšava prenos velikih video paketa i omogućava IPv6 da najbolje iskoristi postojeći kapacitet tranmisionog medijuma.
- Upozoravanje rutera: Informiše ruter da je sadržaj paketa koristan za ruter i da treba rukovati bilo kojom kontrolom podataka na taj način. Izostanak ove opcije u IPv6 datagramu informiše ruter da paket ne sadrži informacije koje trebaju ruteru, pa stoga paket može biti bezbedno rutiran bez daljeg raščlanjivanja paketa. Hostovi koji proizvode IPv6 pakete treba da uključe ovu opciju pod određenim uslovima. Cilj ove opcije je da obezbedi efikasnu pomoć protokolima kao što su RSVP, koji proizvode pakete koji treba da budu ispitani od strane usputnih rutera za svrhu kontrole saobraćaja. Umesto da se zehteva od među-rutera da gledaju detalje produženih zaglavlja paketa, ova opcija govori ruterima kada je tako nešto potrebno.
U IPv6, fragmentaciju mogu odraditi samo izvorišne tačke, a ne ruteri koji se nalaze na putu paketa. Da bi iskoristila kompletne prednosti međuumrežavanja, izvorišna tačka mora primeniti algoritam za otkrivanje puta, koji joj omogućava da sazna koja je najmanja maksimalna transmisiona jedinica (Maximum Transmission Unit – MTU), koju podržava neka od mreža na putu paketa. Znajući koja je najmanja MTU izvorišna tačka će fragmentovati, kao što se od nje traži, za svaku datu odredišnu mrežu. U suprotnom, izvorište mora da ograniči sve pakete na 1280 bajtova, koji je maksimalni MTU koji mora da podrži svaka mreža. Zaglavlje fragmenta se sastoji od sledećih polja (slika 4.4):
- Sledeće Zaglavlje (8 bita): Identifikuje tip zaglavlja koje je odmah posle ovog zalavlja.
- Rezervisano (8 bita): Za buduću upotrebu.
- Ofset Fragmenata (13 bita): Pokazuje gde u originalnom paketu je mesto korisnom delu ovog fragmenta. Meri se u jedinicama od 64 bita. Ovo znači da fragment (drugačiji od prethodnog fragmenta) mora da sadrži polje podataka koje je duže od 64 bita.
- Res (2 bita): Rezervisano za buduću uptrebu.
- M fleg (1 bit): 1 = još fragmenata; 0 = poslednji fragment.
- Identifikacija (32 bita): Služi da jedinstveno identifikuje originalni paket. Identifikator mora biti jedinstven za izvorišnu i odredišnu adresu paketa za vreme dok je paket u inetrnetu. Svi fragmenti sa istim identifikatorom, izvorišnom adresom i odredišnom adresom se ponovo sklapaju kako bi se napravio originalni paket.
Algoritam fragmentacije je isti kao što je opisano ranije.
Zaglavlje rutiranja sadrži listu jednog ili više usputnih čvorova koje treba posetiti na putu do odredišta paketa. Sva zaglavlja rutiranja počinju 32-bitnim blokom koji se sastoji od četiri 8-bitnih polja, praćena od strane podataka rutiranja koji su specifični za određeni tip rutiranja . Četiri 8-bitna polja su sledeća:
- Sledeće Zaglavlje: Identifikuje tip zaglavlja odmah posle ovog zalavlja.
- Dužina produženosti zaglavlja: Dužina ovog zaglavlja iskazana u jedinicama od 64 bita, ne uključujući prvih 64 bita.
- Tip Rutiranja: Identifikuje određenu varijantu zaglavlja rutiranja. Ako ruter ne prepozna vrednost tipa rutiranja, on mora da odbaci paket.
- Ostalo Segmenata: Broj preostalih segmenata rutiranja; to je broj jasno nabrojanih među-čvorova koje jpaket mora da poseti pre dolaska do odredišta.
Jedino specifično zaglavlje rutiranja koje je definisano RFC-om 2460 je zaglavlje rutiranja Tip 0. Kada se koristi Tip 0 zaglavlja rutiranja, izvorišna tačka ne postavlja krajnju odredišnu adresu u IPv6 zaglavlje. Umesto toga, adresa je ona koja je poslednja u listi adresa u zaglavlju rutiranja, a IPv6 zaglavlje sadrži adresu prvog željenog rutera na trasi. Zaglavlje rutiranja neće biti ispitivano dok paket ne dođe do tačke koju je navedena od strane IPv6 zaglavlja. U tački, sadržaji zaglavlja rutiranja i IPv6 zaglavlja se ažuriraju i paket se prosleđuje dalje. Ažuriranje se sastoji od postavljanja sledeće adrese koju treba posetiti u IPv6 zaglavlje i dekrementiranju polja Ostalo Segmenata u zaglavlju rutiranja.
Zaglavlje Odredišnih Opcija, nosi fakultativne informacije koje, ukoliko je zaglavlje prisutno, ispituje samo odredišna tačka paketa. Format ovog zaglavlja je isti kao i format zaglavlja Hop-by-Hop opcija.