-
Internet: Paketit, Reititys ja Luotettavuus
-
Hei, nimeni on Lynn. Olen Spotifyn
ohjelmistoinsinööri ja myönnän, että
-
käytän internetin luotettavuutta usein
hyväkseni. Saatavilla olevan tiedon määrä
-
on päätähuimaavaa. Mutta miten on
mahdollista, että kaikki tieto
-
on luotettavaa? Sanotaan, että haluat
soittaa kappaleen Spotifystä. Tuntuu siltä,
-
että tietokoneesi yhdistäisi suoraan
Spotifyn palvelimiin ja Spotify lähettää
-
kappaleen suoratoistona. Tämä ei
itseasiassa ole totta. Jos internet
-
olisi luotu suorien yhteyksien avulla,
olisi mahdotonta pitää asiat toiminnassa
-
miljoonien ihmisten käyttäessä samaa
ohjelmistoa. Varsinkin, koska
-
emme voi varmistaa että jokainen johto
ja kone toimii oikein koko ajan. Sen sijaan
-
data kulkee paljon epäsuoremmin. 1970-
luvun alussa ryhdyin yrityskumppanini
-
Bob Kahnin kanssa suunnittelemaan
internetiä. Minulla ja Bobilla oli vastuu
-
ja mahdollisuus suunnitella internetin
protokollat ja arkkitehtuuri. Joten
-
jatkoimme Internetin kasvuun osallistumista
ja kehittämistä nykypäivään saakka.
-
Tapa, jolla tiedot siirretään tietokoneesta
toiseen, on aika mielenkiintoista.
-
Sen ei tarvitse seurata tiettyä polkua,
vaan polku saattaa vaihdella koneiden
-
välisestä keskustelusta riippuen.
Internetissä kulkeva tieto menee
-
koneesta toiseen niin kutsuttuina
tietopaketteina ja paketti kulkee
-
paikasta toiseen samaan tapaan, kun
autolla ajaessa.
-
Ruuhkasta ja teiden kunnosta riippuen,
saatat joutua valitsemaan eri reitin
-
joka kerta kun ajat tiettyyn kohteeseen.
Ja aivan kuten voit kuljettaa eri tavaroita
-
auton sisällä, voidaan IP-paketeilla myös
lähettää monenlaisia digitaalisia tietoja.
-
Mutta niillä on joitakin rajoituksia. Mitä
jos sinun tulee esimerkiksi kuljettaa
-
avaruussukkula sen rakennuspaikasta
sen laukaisupaikalle. Sukkula ei mahdu
-
yhteen rekkaan, joten se pitää purkaa
pienempiin osiin ja kuljettaa useiden
-
rekkojen avulla. Rekat voivat kulkea
eri reittejä pitkin ja saapua
-
laukausupaikalle eri aikoihin. Kun kaikki
osat ovat saapuneet, voit koota palat
-
sukkulaksi ja olet valmis laukaisuun.
Internet toimii samalla tavalla. Jos
-
sinulla on suuri valokuva jonka haluat
lähettää kaverillesi tai ladata nettisivulle,
-
kuva saattaa koostua 10 miljoonasta
bitistä, eli ykkösistä ja nollista.
-
Tämä on liian paljon yhdelle paketille.
Koska kuvan tiedot ovat tietokoneella,
-
kuvan lähettävä tietokone voi hajottaa
sen nopeasti sadoiksi tai jopa tuhansiksi
-
pienemmiksi osiksi, joita kutsutaan
paketeiksi. Toisin kuin autot tai rekat,
-
näissä paketeissa ei ole kuljettajia eivätkä
ne valitse reittiään. Jokaisessa
-
paketissa on sen alkuperän ja
määränpään osoite. Reitittimet
-
toimivat liikenteen ohjaajina varmistaen,
että paketit liikkuvat verkoissa sujuvasti.
-
Jos yksi reitti on tukossa, voivat yksittäiset
paketit kulkea eri reittejä pitkin ja saapua
-
päämääräänsä eri aikoihin tai väärässä
järjestyksessä. Miten tämä toimii?
-
Internet-protokollan osana, jokainen reititin
seuraa useita polkuja pakettien
-
lähettämiseen ja valitsee datalle halvimman
saatavilla olevan reitin niiden
-
kohde-IP-osoitteen perusteella. Tässä
tapauksessa "halvin" ei tarkoita kustannuksia,
-
mutta aikaa ja ei-teknisiä tekijöitä, kuten
politiikkaa ja yritysten välisiä suhteita.
-
Usein paras reitti tiedon kulkemiseen ei
välttämättä ole suorin. Polkuvaihtoehdot
-
tekevät verkkovirheistä sietokykyisiä.
Mikä tarkoittaa, että verkko voi jatkaa
-
pakettien lähettämistä, vaikka jokin menisi
pieleen. Tämä on perusta Internetin
-
pääperiaatteelle: luotettavuudelle.
Entä jos haluat pyytää tietoja,
-
mutta kaikkea ei toimiteta? Haluat
kuunnella kappaleen. Kuinka voit olla
-
100% varma siitä, että kaikki tiedot
toimitetaan ja kappale soi täydellisesti?
-
Tapaa uusi paras ystäväsi, TCP (lähetyksen
ohausprotokolla). TCP hallinnoi kaikkien
-
tietojen lähettämistä ja vastaanottamista
paketteina. Ajattele sitä postipalveluna.
-
Kun pyydät kappaletta laitteellasi, Spotify
lähettää kappaleen, joka on hajotettu moniin
-
paketteihin. Kun paketti saapuu, TCP
tekee täyden kartoituksen ja lähettää
-
Spotifylle kuittaukset jokaisesta
vastaanotetusta paketista. Kun kaikki
-
paketit on vastaanotettu, TCP kuittaa
lähetyksen ja olet valmis.
-
Jos TCP huomaa, että jotkut paketit
puuttuvat, se ei kuittaa lähetystä.
-
Muutoin kappaleesi ei kuulostaisi hyvältä
tai jotkut sen osista puuttuvat.
-
Spotify lähettää uuden paketin jokaista
puuttuvaa pakettia kohti.
-
Kun TCP on varmistanut uudet paketit,
kappale alkaa soimaan.
-
TCP:ssä ja reitittimissä on hienoa se,
että ne osaavat sopeutua. Ne toimivat
-
8 tai 8 biljoonassa laitteessa. Näiden
virheiden sieto-ominaisuuksien ja
-
redundanssin takia, mitä enemmän
reitittimiä lisäämme, sitä luotettavampi
-
Internetistä tulee. On myös hienoa, että
voimme kasvattaa ja skaalata Internetiä
-
keskeyttämättä palveluita niiden käyttäjille.
Internet on tehty satoja tuhansia verkkoja
-
ja miljardeja tietokoneita ja laitteita käyttäen,
jotka on kytketty fyysisesti toisiinsa. Nämä
-
erilaiset internetin muodostamat järjestelmät
luovat yhteyden toisiinsa, kommunikoivat
-
ja toimivat yhdessä sovittujen standardien
mukaan siitä, miten tietoja lähetetään.
-
Tietokonelaitteet tai reitittimet auttavat
paketteja kulkemaan järjestyksessä
-
määränpäähän, jossa ne
kootaan uudelleen.
-
Tämä tapahtuu miljardeja kertoja päivässä
riippumatta siitä lähetätkö sähköpostia,
-
käytät nettisivuja, soitat videopuheluita,
käytät mobiilisovelluksia tai kun
-
Internetin anturit tai laitteet puhuvat
keskenään.