[piosenka i odliczanie: 7, 6, 5, 4, 3, 2, 1] Internet: Pakiety, routing i niezawodność Cześć nazywam się Lynn. Jestem inżynierem oprogramowania w firmie Spotify. Jako pierwsza przyznam, że niezawodność Internetu jest oczywista. Już sama liczba krążących w nim informacji jest zadziwiająca. Jak to możliwe, że dane są Wam doręczane w sposób niezawodny? Przyjmijmy, że chcecie odtworzyć piosenkę ze Spotify. Można odnieść wrażenie, że komputer łączy się bezpośrednio z serwerami Spotify, a Spotify wysyła Ci piosenkę bezpośrednią linię. Cóż, Internet tak nie działa. Jeśli Internet opierałby na bezpośrednich połączeniach, nie zdołałby obsługiwać milionów dołączających osób. Zwłaszcza, że nie ma gwarancji działania każdego kabla i komputera przez cały czas. Dane krążą w Internecie znacznie mniej bezpośrednio. Dawno temu, w latach 70. XX w. zaczęliśmy z Bobem Kahnem pracę projektując coś, co obecnie nosi miano Internetu. Naszym zadaniem, a jednocześnie szansą było projektowanie protokołów i jego architektury. Uczestniczymy w procesie rozrastania się i ewolucji internetu przez cały czas, aż do dnia dzisiejszego. Sposób przechodzenia informacji z jednego komputera na drugi jest interesujący. Nie musimy podążać utartym szlakiem; może się on zmieniać w czasie, gdy komputer rozmawia z innym komputerem. Informacje w Internecie przechodzą z komputera na komputer w formie pakietu informacji, a pakiet wędruje z jednego miejsca w Internecie w inne na zasadzie przejazdu z miejsca na miejsce samochodem. W zależności od natężenia ruchu czy warunków drogowych, możemy lub jesteśmy zmuszeni do obrania innej trasy, za każdym razem, gdy jedziemy w to samo miejsce. Podobnie jak można przewozić różne rzeczy samochodem, rożne informacje cyfrowe można wysyłać w pakietach IP, ale są pewne limity. Co zrobić, gdy musimy przewieźć statek kosmiczny z miejsca produkcji do miejsca wystrzelenia. Nie zmieści się w jednej ciężarówce, więc dzieli się go na części i przewozi wieloma pojazdami. Każdy z nich może obrać inną trasę, mogą też dotrzeć na miejsce w różnym czasie. Gdy jednak dotrą na miejsce, części można zmontować w statek i przygotować do wystrzelenia. Drobne elementy w Internecie funkcjonują podobnie. Jeśli mamy duży obraz do wysłania znajomemu lub na stronę internetową, obraz może obejmować dziesiątki milionów bitów, zer i jedynek, zbyt wielu, by wysłać je jednym pakietem. Są to dane w komputerze, zatem komputer wysyłający obraz może szybko podzielić go na setki, tysiące mniejszych elementów zwanych pakietami. Inaczej niż samochody te pakiety nie mają kierowców i nie wybierają trasy. Każdy pakiet posiada adres internetowy, z którego pochodzi i do którego zmierza. Specjalne komputery w Internecie zwane routerami kierują ruchem, by pakiety płynnie przesuwały się w sieci. Jeśli jedna trasa jest zakorkowana, pakiety indywidualne mogą przejść innymi trasami w Internecie i mogą dotrzeć do miejsc przeznaczenia o innych godzinach lub w innej kolejności. Jak to działa? W ramach protokołu internetowego każdy router śledzi różne trasy wysyłania pakietów i obiera najtańszą, dostępną trasę dla każdej informacji w oparciu o IP miejsca przeznaczenia dla pakietu. Najtańsze nie oznacza tutaj kosztu, ale czas i czynniki pozatechniczne takie jak polityka i relacje między firmami. Często najlepsza trasa do przemieszczenia danych nie jest najbardziej bezpośrednia. Dzięki opcjom tras sieć cechuje tolerancja błędu. Oznacza to, ze siecią można wysyłać pakiety nawet, gdy coś poważnie szwankuje. To jest podstawa kluczowej zasady Internetu - niezawodności. A jeśli występuje zapotrzebowanie na dane i nie wszystko zostanie doręczone? Powiedzmy, chcemy posłuchać piosenki. Skąd można mieć 100% pewności otrzymania danych tak, by można było ją odsłuchać. Oto nowy kolega, TCP (protokół sterowania transmisją). TCP reguluje wysyłanie i odbiór wszystkich danych jako pakietów. Jak list polecony. Gdy chcesz piosenkę na swoje urządzenie, Spotify wysyła ją rozbitą na pakiety. Gdy pakiet dociera, TCP przeprowadza pełny remanent i odsyła potwierdzenie każdego otrzymanego pakietu. Jeśli są wszystkie, kwituje odbiór i gotowe. (Piosenka w tle). Jeśli stwierdzi, że któregoś brakuje, nie kwituje, gdyż piosenka nie brzmiałaby jak należy lub brakowałoby jej części. Spotify przesyła ponownie każdy brakujący lub niepełny pakiet. Gdy TCP zweryfikuje dostawę wielu pakietów w ramach zamówienia piosenki, zacznie ją odtwarzać. TCP i system routera są świetne, bo można je dopasować do skali. Współdziałają z 8 i 8 miliardami urządzeń. Z uwagi na zasady tolerancji błędu i zapasów, im więcej doda się routerów, tym wyższa niezawodność Internetu. Fantastyczne jest to, że można zwiększać i dostosowywać internet do skali bez zakłócania obsługi użytkowników. Internet to setki tysięcy sieci i miliardy połączonych fizycznie urządzeń. Te systemy tworzące Internet, łączą nas, umożliwiają nam komunikację i współpracę dzięki wypracowanym normom na potrzeby przesyłania danych w Internecie. Urządzenia informatyczne lub routery w w internecie pomagają przesyłać pakiety do miejsca przeznaczenia, gdzie, w razie potrzeby ponownie się je montuje. To dzieje się miliardy razy dziennie, gdy ktoś wysyła email, wchodzi na stronę internetową, prowadzi czat, korzysta z aplikacji mobilnej lub gdy komunikują się ze sobą czujniki lub urządzenia w internecie (muzyka cichnie).