[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.