[sang tæller ned: 7, 6, 5, 4, 3, 2, 1]
Internettet:
Pakker, routing og pålidelighed
Hej, mit navn er Lynn Root. Jeg er
softwareingeniør her hos Spotify, og jeg
må indrømme, at jeg ofte tager
internettets pålidelighed for givet.
Mængden af information, der suser omkring
internettet er utrolig.
Men hvordan er det muligt for hver stykke
data at blive sikkert leveret til dig?
Hvis du f.eks. ønsker at spille
en sang fra Spotify.
Det synes som om din computer forbinder
direkte til Spotify-serverne, og at
Spotify sender dig en sang på en direkte,
dedikeret linje.
Men faktisk virker internettet ikke sådan.
Hvis internettet var lavet af direke,
dedikerede forbindelser, ville det være
umuligt at holde ting kørende, når
millioner af brugere slutter sig til.
Særligt siden der ikke er nogen garanti
for at hver ledning og computer virker
hele tiden.
I stedet sendes data på internettet på en
meget mindre direkte facon.
For mange år siden i de tidlige 1970'ere
begyndte min partner Bob Kahn og jeg at
arbejde på designet af, hvad vi nu kalder
internettet. Bob og jeg havde ansvaret og
muligheden for at designe internettets
protokoller og dets arkitektur.
Så vi fortsatte med at deltage i
internettets vækst og udvikling hele tiden
frem til i dag.
Den måde information overføres fra én
computer til en anden er ret interessant.
Den behøver ikke følge en fast sti.
Faktisk kan din sti skifte midtvejs
i en samtale mellem computere.
Information på internettet går fra én
computer til en anden, i hvad vi kalder en
informationspakke, og en pakke overføres
fra ét sted til en anden på internettet på
meget samme manér, som du måske ville
tage fra ét sted til et andet sted i bil.
Afhængigt af trafikpropper og
vejbetingelser kunne du vælge eller blive
tvunget til at tage en anden rute for at
komme samme sted hen, hver gang du rejser.
Og på samme vis, som du kan transportere
al slags ting i en bil, kan mange slags
digital information sendes med IP-pakker,
men der er visse begrænsninger.
Hvad nu hvis du skulle flytte en rumfærge
fra der, hvor den blev bygget, til hvor
den skal affyres.
Færgen vil ikke passe i én lastbil, så den
skal brydes ned i dele og transporteres
med en flåde af lastbiler.
De kunne alle tage forskellige ruter og
ankomme på forskellige tider.
Men når alle delene er der, kan du
samle delene igen til den komplette færge,
og den vil være klar til at blive affyret.
På internettet virker tingene på meget
lignede vis.
Hvis du har et meget stort billede, som du
ønsker at sende til en ven eller uploade
til en webside, kan det billede bestå af
tusinder af millioner af 1'er og 0'er, alt
for mange til at sende i én pakke.
Da det er data på en computer, kan
computeren, der sender billedet, hurtigt
dele den op i hundredevis eller tusindvis
af mindre dele, der hedder pakker.
Til forskel fra biler og lastbiler, har
disse pakker ikke chauffører og vælger
ikke selv deres rute.
Hver pakke har internetadressen til
stedt, den kom fra, og hvor det skal hen.
Særlige computere på internettet, der
hedder routere agerer som trafikstyrere
for at sikre at pakkerne bevæger sig
gennem netværkene uden problem.
Hvis en rute er overlæsset, kan
individuelle pakker tage andre ruter
gennem internettet og kan ankomme ved
destinationen på lidt forskellige tider
eller sågar ikke i rækkefølge.
Lad os snakke om, hvordan det virker.
Som en del af internetprotokollen holder
hver router styr på flere stier til at
sende pakker, og den vælger den billigste
tilgængelige sti for hvert stykke data,
baseret på pakkens destinations-
IP-adresse.
I dette tilfælde betyder billig ikke pris,
men tid og ikke-tekniske faktorer såsom
politikker og forhold mellem virksomheder.
Ofte er dataenes bedste overførselsrute
ikke nødvendigvis den mest direkte.
Rute-valgmuligheder gør netværket
tolerante over for fejl.
Hvilket betyder at netværket kan sende
pakker, selv hvis noget går meget galt.
Det er grundlaget for et af internettets
hovedprincipper: pålidelighed.
Hvad nu hvis du ønsker at anmode om nogle
data, men ikke alt leveres?
Sig, for eksempel, du ønsker at lytte til
en sang.
Hvordan kan du være 100% sikker på, at
al dataen vil leveres,
så sangen spiller perfekt?
Sig hej til din nye bedste ven, TCP
(transmissionskontrol-protokol).
TCP tager sig af afsendelsen og
modtagelse af alle dine pakker som data.
Forestil dig det som værende en anbefalet
posttjeneste.
Når du anmoder om en sang på din enhed,
sender Spotify en sang
opdelt i mange pakker.
Når dine pakker ankommer, gør TCP komplet
status og sender bekræftelse for hver
modtagne pakke.
Hvis alle pakker er der, kvitterer TCP
for din leverence, og du er færdig.
(Sang spilles)
Hvis TCP opdager, at der mangler pakker,
vil den ikke kvittere.
Ellers ville din sang ikke lyde så god,
eller dele af sangen kunne mangle.
For hver manglende eller ufuldstændig
pakke, vil Spotify sende dem igen.
Når TCP bekræfter levering af mange af
pakkerne til den ene sanganmodning,
vil din sang begynde at spille.
Det fantastiske ved TCP- og router-
systemerne er, at de er skalerbare.
De kan virke med 8 eller 8 milliarder
enheder.
På grund af disse fejltolerence- og
redundansprincipper, bliver internettet
mere pålidelig, desto flere routere, vi
tilføjer.
En anden god ting er, at vi kan
udvide og opskalere internettet uden at
afbryde tjenesten for nogen,
der anvender den.
Internettet består af hundred tusind-vis
af netværk og milliarder af computere og
enheder, der er fysisk forbundne.
Disse forskellige systemer, som danner
internettet, forbinder til hinanden,
taler med hinanden og arbejder sammen, på
grund af aftalte standarder,
for hvordan data sendes omkring på
internettet.
Computerenheder eller routere på
internettet hjælper alle pakker på vej til
den destination, hvor de, om nødvendigt,
samles igen i rette rækkefølge.
Dette sker milliarder af gange om dagen,
uanset om du og andre sender en e-mail,
besøger en webside, holder en video-chat,
bruger en mobilapp, eller når sensorer
eller enheder på internettet taler
med hinanden.