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.