O opóźnieniach, kompatybilności i dyliżansach, czyli jak działa Internet | Politechnika Gdańska

Treść strony

Aktualności

Data dodania: 2021-07-09

O opóźnieniach, kompatybilności i dyliżansach, czyli jak działa Internet

Internet sieć
Pandemia wymusiła na wielu z nas codzienny wielogodzinny kontakt z Internetem, przez Internet. To już nie tylko przesyłanie maili, zaglądanie do bibliotecznych baz, dokonywanie zakupów, ściąganie plików. To często długie sesje multimedialne (m.in. prowadzenie wykładów, ćwiczeń laboratoryjnych, udział w konferencjach, wielogodzinne narady).

I tutaj okazuje się, że popularny mem dobrze odzwierciedla jakość naszego kontaktu z Internetem i przez Internet. Jakże często spotykamy się z sytuacją, iż prowadzący spotkanie prosi, abyśmy wyłączyli kamerki i mikrofony, bo może wtedy prowadzący będzie dobrze słyszany i widziany.

Jak to jest – przecież ustaliliśmy z naszym operatorem internetowym (i za to często płacimy mu niemałe kwoty) dostęp rzędu setek Mb/s (megabitów na sekundę), a nasze mikrofony czy kamerki generują ruch dziesiątki razy mniejszy. Przecież operatorzy Internetowi pracują na terabitowych łączach światłowodowych mających tysiące razy większe możliwości niż to, czego od nich żądamy.

Dlaczego gracze gier typu MOBA (Multiplayer Online Battle Arena), np. LoL (League of Legends – ponad 100 milionów graczy), narzekają, że przez długie, nawet stumilisekundowe, internetowe „lagi” nie mogą praktycznie grać (tu uwaga terminologiczna: gracze operują równoważnymi dla nich pojęciami lag = ping = opóźnienie).

Co powoduje, że oglądanie przez Internet meczów jest mało komfortowe? Mieszkam na dużym osiedlu, na którym większość mieszkańców ma telewizję kablową, naziemną lub satelitarną. Mając dostęp do TV przez Internet, widziałem na ostatnich mistrzostwach świata w piłce nożnej akcję pod bramką, piękne podanie… a za oknem usłyszałem jęk zawodu (otwarte okna, lato). To sąsiedzi posiadający antyczną telewizję na kilka sekund przede mną już wiedzieli, że akcja jest nieudana. Nawet na kilka sekund…

Dlaczego podczas niedawnej transmisji ze światowej imprezy The Best FIFA Football Awards 2020, gdy łączono się z różnymi laureatami, nie zawsze było ich dobrze widać, czasami wręcz nie było ich słychać, a wszyscy komentatorzy usprawiedliwiali ten fakt tym, że przecież… „to połączenie przez Internet” (Roberta Lewandowskiego, moim zdaniem, na wszelki wypadek sprowadzono do studia, aby mieć pewność, że będzie można go zobaczyć i „normalnie” z nim porozmawiać).

I to wszystko w dobie nowoczesnego Internetu, podobno o nieograniczonych możliwościach!

Budowa Internetu

Czym jest Internet (od strony technicznej)?

Popularna definicja określa Internet jako sieć sieci. Wszystkie dane są transportowane w pewnych zunifikowanych porcjach – pakietach IP. Jeżeli chcemy przesłać dużą ilość danych, to dzielimy je na porcje i przesyłamy każdą z nich, często inną trasą, z osobna (nazywamy to komutacją pakietów). Sieci wchodzące w skład Internetu mogą być różne (przewodowe albo bezprzewodowe; lokalne albo rozległe; przenoszące dane w ramkach, pakietach, komórkach, blokach itd.). Istotne jest, aby potrafiły przenosić pakiety IP (wewnątrz ramek, pakietów, komórek, bloków itd.). Projektanci Internetu zaproponowali rozdzielenie funkcji transportowych (przesyłania danych) od funkcji usługowych – tzw. zasada end-to-end. Sprowadza się to do budowania „głupiego” rdzenia sieciowego i podłączonych do niego „mądrych” urządzeń realizujących usługi. Ich wspólną cechą jest umiejętność dogadywania się w określonym języku protokołów TCP/IP, stanowiących zestaw uzgodnień, według których łączą się sieci [nazwę przyjęto od dwóch głównych protokołów: IP (Internet Protocol) i TCP (Transmission Control Protocol)].

Widać tutaj dużą analogię do systemów logistycznych. Istnieje wiele sieci transportowych: drogowe, kolejowe, morskie, lotnicze. Każda z nich pracuje według zupełnie innych przepisów i zasad, używa innych środków transportu. Aby umożliwić łatwość przeładunku i transportu towarów, wprowadzono (i po raz pierwszy ustandaryzowano w 1968 r.) kontenery jako zunifikowane jednostki transportowe. Mimo swoich odrębności wszystkie sieci transportowe potrafią obsługiwać kontenery. Dany kontener w drodze do celu określonego przez adres geograficzny może być transportowany TIR-em, pociągiem, następnie statkiem i na samym końcu np. znowu TIR-em. Żeby było to możliwe, każda stacja kolejowa czy też port wyposażony jest w specjalizowany sprzęt załadunkowo-rozładunkowy oraz magazyny do składowania kontenerów. W Internecie taką rolę pełnią rutery. Rutery brzegowe przyjmują zlecenie do transportu i wysyłają pakiety w sieć, do jednego z wielu ruterów wewnętrznych. Ten z kolei dowiaduje się o możliwościach transportowych „okolicznych” ruterów (np. szacowany czas transportu do celu) i wysyła dane do tego, którego ocenił najlepiej (zakłada, że przez niego będzie najszybciej albo najpewniej, albo najbezpieczniej, albo…) – teleinformatycy nazywają to postępowanie rutingiem.

Oczywiście występuje tu problem jednoznacznego określenia miejsca, gdzie dane mają zostać przesłane (w Internecie jest to adres IP), czy też pewności, że wszystkie pakiety nadawcy dotarły do odbiorcy (w Internecie zapewnia to np. protokół TCP). Warto tutaj zaznaczyć, że tym ostatnim zajmują się tylko urządzenia na brzegu sieci. Sieć wewnętrzna (głupi rdzeń) nie tylko nie wie, czy dane zostały podzielone, ale również z czym te dane są związane, np. czy jest to numer konta bankowego, czy też kilka pikseli z transmisji meczu. Wszystkie dane traktuje tak samo.

Nie tylko opóźnienia

W czym tkwi problem „marności” Internetu, którego pomysł zrodził się pół wieku temu (ciekawe, że wtedy też pojawiły się kontenery)? W założeniach towarzyszących jego projektowaniu twórcy Internetu nie przewidywali:

  • ani tak wielkiego jego rozmiaru – stąd założyli, iż pula kilku miliardów identyfikatorów użytkowników (nazywanych adresami IP) jest praktycznie niewyczerpalna i można oprzeć działanie całego systemu na unikatowości tych identyfikatorów;
  • ani jego znaczenia biznesowego – stąd założyli, że najważniejsze jest, aby jakoś działał, niekoniecznie szybko (z małymi, stałymi opóźnieniami), niekoniecznie niezawodnie, czyli w tzw. trybie best effort – najlepiej, jak to możliwe (transmitujemy w danym czasie jak najwięcej danych, ale bez gwarancji poziomu jakości usług);
  • ani różnorodności technologii wykorzystywanych w Internecie; do cech zawsze wymienianych w podręcznikach o sieciach TCP/IP zalicza się m.in. wspieranie wszystkich rodzajów sieci (zarówno rozległych i satelitarnych o rozpiętości tysięcy kilometrów, jak i lokalnych o zasięgach metrowych).

Prędkość sygnału (fale elektromagnetyczne) propagowanego w medium nie może przekraczać prędkości światła (v = 3*10^8 m/s) –
a to oznacza, że np. 3 tys. km (d = 3*10^6 m) fala przebiega w czasie nie krótszym niż t = d/v = 3*10^6 m / 3*10^8 m/s = 10^(-2) s, czyli 10 milisekund. Jeżeli po drodze będzie jeszcze kilka(dziesiąt) urządzeń, które przesyłane wiadomości będą buforować i przetwarzać (rutery, przełączniki, punkty dostępowe, karty sieciowe, zapory, a nawet telewizory), to do tego opóźnienia trzeba dodać kolejne dziesiątki czy setki milisekund. Zatem jeżeli nadawca jest daleko, to dotarcie wiadomości do odbiorcy musi trwać, a jeżeli jest to przez Internet, to te urządzenia pośredniczące powodują, iż musi to trwać długo.

Z kolei w sieci lokalnej mamy odległości metrowe i opóźnienia mikrosekundowe (np. zasięg 300-metrowy generuje opóźnienia: 3*10^2 m / 3*10^8 m/ s = 10^(-6) s, czyli 1 mikrosekundę) oraz co najwyżej kilka urządzeń pośredniczących. Opóźnienia są nawet o kilka rzędów mniejsze od tych w sieciach rozległych.
To wspieranie przez TCP/IP wszystkich rodzajów sieci powoduje również, że opracowane mechanizmy i procedury (przez teleinformatyków dumnie nazywane „protokołami”) próbują być uniwersalne; a wszystko, co uniwersalne, z reguły nigdzie nie działa bardzo dobrze. Często realizacja samych protokołów nie jest czasooszczędna. I tak np. organizując  transfer danych zgodnie z protokołem TCP (uzgadnianie trójetapowe –  three-way handshake), zanim zostanie wysłana pierwsza porcja danych, nadawca zaprasza odbiorcę do konwersacji (i proponuje jej parametry), odbiorca wyraża zgodę – lub nie (i podaje swoje parametry),
w końcu nadawca potwierdza, że zrozumiał odbiorcę. To często trwa dziesiątki milisekund.

Pierwsze wspomniane już wymaganie stawiane sieci Internet to unikatowość adresów IP w całej sieci. Całe zarządzanie Internetem, wszystkie protokoły są oparte na tym fakcie. Adresów może być nieco ponad 4 miliardy (na tyle pozwala sposób ich zapisu – 32 bity), co przy 7 mld ludzi na świecie, miliardzie urządzeń sieciowych, kilkunastu miliardach urządzeń końcowych (w tym tzw. Internecie Rzeczy) wymaga wielu sztuczek, które teleinformatycy opatrują tajemniczymi terminami: NAT, VLSM, DHCP i in. Wymagają one dodatkowego buforowania danych i ich przetwarzania, czyli mamy kolejne, zazwyczaj zmienne opóźnienia.
Nowsze rozwiązanie oparte na protokole IPv6 rozwiązałoby (teoretycznie – rozwiązuje) problem adresowania, gdyż pozwala na zaadresowanie 4 mld * 4 mld * 4 mld * 4 mld urządzeń. Ale jest to rozwiązanie niekompatybilne ze starymi rozwiązaniami opartymi na protokole IPv4, dominującymi w sieci. Sieć IPv6 jest inną siecią. Jej styk ze starą siecią wymaga postawienia między sieciami „tłumaczy” (tzw. „bram”), które znowu przetwarzają, czyli opóźniają. I chociaż operatorzy internetowi u siebie wewnątrz używają IPv6, to już oferowanie jej możliwości użytkownikom końcowym jest rzadkością. Wdrożenie IPv6 w sieci Internet to wyzwanie porównywalne z próbą wprowadzenia na obszarze całego świata ruchu lewostronnego przy dominującym prawostronnym.
Dużym wyzwaniem dla Internetu stało się utrzymywanie zasady kompatybilności wstecznej. W sieciach komputerowych istnieje wiele rozwiązań wynikających z ograniczeń, które dzisiaj nie mają żadnego uzasadnienia technicznego. Na przykład:

  • system DNS, umożliwiający używanie nazw typu pg.edu.pl zamiast magicznych dla przeciętnego użytkownika 153.19.40.170, jest oparty na trzynastu tzw. serwerach najwyższego poziomu. Liczba 13 była uzasadniana ograniczoną długością jednostek danych wykorzystywanych w tym systemie (datagramu UDP). Przyjęto, że wynosi ona 512 bajtów. Nie miało i nie ma to żadnego technicznego uzasadnienia;
  • minimalna długość ramki ethernetowej [jednostka danych w sieciach Ethernet (SE), które są dominującym rozwiązaniem sieci przewodowych], nie może być mniejsza niż 512 bitów. Ograniczenie to było istotne, gdy SE działały w oparciu o wykrywanie kolizji – dzisiaj zasada ta nie jest już wykorzystywana. Stąd chcąc przesłać komunikat włącz/wyłącz (1 bit) albo idź w lewo/idź w prawo (1 bit) lub fragment mowy (kilkaset bitów), dorzucamy do niego fantastycznie wielki nadmiar kilkuset bitów (stanowi to nawet kilka tysięcy procent). Przyjmuje się także, że maksymalna długość ramki ethernetowej nie może przekraczać pojedynczych kilobajtów, co było uzasadnione w czasach, kiedy stopa błędów w sieciach lokalnych wynosiła 10^(-8), czyli w ubiegłym wieku – dzisiaj, w dobie światłowodów, błędy zdarzają się co najmniej tysiąc razy rzadziej i moglibyśmy używać struktur danych tysiąckrotnie większych. Ale zasada kompatybilności wstecznej na to nie pozwala. Więc dzielimy i scalamy, czyli przetwarzamy, przetwarzamy, przetwarzamy…
  • do Internetu trafiają transfery wielkie i mikroskopijne, dane wymagające błyskawicznego dostarczenia i takie, które tego nie wymagają, strumienie, których fragmenty mogą zaginąć (multimedia), i takie, dla których to jest niedopuszczalne. W klasycznej konstrukcji Internetu urządzenia pośredniczące w przesyłaniu danych nie wiedzą, co przesyłają. Starają się więc wszystko przesyłać „jak najlepiej potrafią” (best effort), często niepotrzebnie. A istnieją wydajne rozwiązania (np. głębokiej inspekcji danych – DPI), które pozwalają rozpoznawać rodzaj przesyłanych danych;
  • w nagłówku datagramu IPv4 istnieje pole suma kontrolna nagłówka, które zostało stworzone, aby chronić nagłówek przed błędami występującymi w sieciach rozległych – bo w tamtych czasach (lata 70./80. XX wieku) błędy występowały raz na kilka tysięcy bitów. W dobie światłowodów jest to milion razy rzadziej. Milion razy! Więc suma ta przestała być potrzebna. Ale zasada kompatybilności wstecznej nie pozwala jej wyeliminować. Więc sumę przesyłamy, przeliczamy, czyli przetwarzamy, przetwarzamy, przetwarzamy…

Takich pozostałości z ubiegłego wieku jest oczywiście wiele, wiele więcej.

W każdej innej dziedzinie życia takie podejście, czyli kurczowe trzymanie się zasady kompatybilności, uważane byłoby za dziwactwo. Kiedyś, aby dyliżanse mogły spełniać swoje zadanie, w każdej miejscowości, do której docierały, musiały być stajnie, a obowiązkowy postój koni nie mógł być krótszy niż kilka godzin. Mimo iż dzisiaj mogłyby one (dyliżanse i furmanki) toczyć się po autostradach, nikomu nie przychodzi do głowy na to pozwalać, a tym bardziej budować przyautostradowe parkingi, tak aby koniki miały gdzie się popaść. Dyliżanse dzisiaj – tylko w muzeum. Urządzenia i rozwiązania sieciowe dostosowane do wymagań z ubiegłego wieku – tylko w muzeum!

Wymagania użytkowników Internetu stale rosną. Widać to dobrze, gdy czytamy o właśnie wdrażanych sieciach 5G lub planowanych na przyszłą dekadę sieciach 6G. Zarówno naukowcy, jak i firmy opracowują wiele nowych fantastycznych internetowych rozwiązań. Wśród nich był projekt „Inżynieria Internetu Przyszłości” (mostwiedzy.pl/pl/project/inzynieria-internetu-przyszlosci,66-1), w którym brali udział naukowcy z WETI. Jednak bariera kompatybilności, czyli dopasowania do ram TCP/IP, cały czas jest nie do przeskoczenia.

Krzysztof Nowicki / Wydział Elektroniki, Telekomunikacji i Informatyki
know@eti.pg.edu.pl

992 wyświetleń