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.