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