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