Podcast o Modele i zasady przesyłania danych
Modele i zasady transmisji danych: przewodnik po SEO dla studentów
Podcast
Modele i zasady przesyłania danych
Délka: 11 minut
Přepis
Tereza: No czekaj, czyli cała ta droga wiadomości z mojego telefonu do telefonu koleżanki to tak naprawdę taki skomplikowany łańcuch składający się z dziesiątek kroków? To jest niewiarygodne!
Tomáš: Dokładnie tak! To nie tylko takie proste „wyślij”. To cała symfonia operacji, które muszą się wydarzyć, żeby twoje zdjęcie z wakacji dotarło w całości.
Tereza: No to muszę tego posłuchać. I myślę, że nie tylko ja. Witajcie z powrotem w Studyfi Podcast, gdzie dziś z ekspertem Tomaszem rozłożymy na czynniki pierwsze właśnie cyfrowe systemy komunikacji.
Tomáš: Cześć wszystkim. To tak jak cyfrowa poczta, tylko nieskończenie szybsza i o wiele sprytniejsza.
Tereza: Dobra, to gdzie ta droga się zaczyna? Powiedzmy, że chcę wysłać wiadomość głosową. Mój głos jest przecież analogowy, co nie?
Tomáš: Świetny początek. Dokładnie tak. Pierwszy krok to formatowanie i digitalizacja. Twój analogowy głos musi zostać przekształcony w dane cyfrowe, czyli jedynki i zera. Robi się to w trzech krokach: próbkowanie, kwantyzacja i kodowanie.
Tereza: To brzmi… technicznie.
Tomáš: Wyobraź sobie, że rysujesz. Próbkowanie jest jak robienie kropek na papierze wzdłuż krzywej, którą chcesz narysować. Kwantyzacja następnie zaokrągla każdą kropkę do najbliższego, z góry ustalonego poziomu – na przykład do całego milimetra. A kodowanie przypisuje każdemu takiemu poziomowi unikalny kod z zer i jedynek.
Tereza: Aha, czyli trochę stracę na dokładności, ale zyskam dane cyfrowe. Rozumiem.
Tomáš: Dokładnie. I im więcej tych poziomów masz, tym wierniejszy jest ten cyfrowy obraz. Kolejnym krokiem jest kodowanie źródłowe. Tutaj staramy się dane zmniejszyć, skompresować.
Tereza: Jakbym zrobiła z plików ZIP?
Tomáš: To jest perfekcyjny przykład kompresji bezstratnej. Dane zmniejszasz, ale po rozpakowaniu są dokładnie takie same. Potem istnieje też kompresja stratna, jak w przypadku zdjęć w formacie JPEG czy muzyki w MP3. Tam jakieś informacje są odrzucane, ale dla naszych zmysłów jest to prawie niezauważalne.
Tereza: Dobra, dane mam małe. Co dalej? Chcę, żeby były bezpieczne.
Tomáš: Dokładnie. Następuje szyfrowanie. Mamy dwa główne typy. Symetryczne, gdzie nadawca i odbiorca mają ten sam klucz. Jest szybkie, super do dużych danych, ale jak ten tajny klucz bezpiecznie przekazać?
Tereza: To jest dobre pytanie. Wyślę go w niezaszyfrowanej wiadomości?
Tomáš: To nie byłoby zbyt sprytne. I dlatego istnieje szyfrowanie asymetryczne. Każdy ma klucz publiczny, który możesz dać każdemu, i prywatny, który zostawiasz sobie. Jest wolniejsze, ale rozwiązuje problem z przekazaniem klucza.
Tereza: Czyli mam dane małe, zaszyfrowane... ale co jeśli po drodze się uszkodzą? Na przykład z powodu jakiegoś zakłócenia.
Tomáš: I od tego jest ostatni kluczowy krok po stronie nadajnika: kodowanie kanałowe. Dodajemy do danych jakieś dodatkowe bity kontrolne. To jest jak ubezpieczenie.
Tereza: Jak to działa?
Tomáš: Najprostszy przykład to bit parzystości. Masz dane 1011. Liczba jedynek to 3, czyli nieparzysta. Jeśli umówimy się na parzystość parzystą, dodamy na koniec jedynkę, żeby całkowita liczba jedynek była parzysta: 10111. Kiedy potem odbiorca dostanie wiadomość, gdzie liczba jedynek się nie zgadza, wie, że nastąpił błąd.
Tereza: A odbiorca potem zrobi to wszystko na odwrót?
Tomáš: Dokładnie tak! Dekodowanie kanałowe naprawi błędy, deszyfrowanie przywróci czytelną treść, dekodowanie źródłowe z tego zrobi znowu dźwięk albo obraz... to jest takie idealne lustro procesu nadawania.
Tereza: Fascynujące. A istnieje jakiś limit, jak szybko mogę wysyłać dane?
Tomáš: Tak, i to jest przepustowość kanału. Opisuje ją twierdzenie Shannona-Hartleya. Upraszczając, mówi, że maksymalna prędkość transmisji zależy od dwóch rzeczy: od szerokości pasma, co jest jak szerokość autostrady, i od stosunku sygnału do szumu – czyli jak bardzo ten sygnał jest czysty w porównaniu do zakłóceń.
Tereza: Czyli im szersza autostrada i mniej „hałasu” na niej, tym więcej samochodów, czyli danych, przejedzie. To ma sens.
Tomáš: Dokładnie. I to jest w skrócie cały ten cud, który dzieje się za każdym razem, gdy klikniesz „wyślij”.
Tereza: Czyli mamy sygnał i szum... ale jak to się ma do tego, ile danych możemy właściwie wysłać? To jest przecież kluczowe, co nie?
Tomáš: Dokładnie tak! I tutaj dochodzimy do pojęcia pojemności kanału, oznaczanej jako C. Jest to w zasadzie maksymalna prędkość, z jaką możesz przesyłać dane.
Tereza: A od czego to zależy? Zakładam, że od szerokości pasma, o której mówiliśmy.
Tomáš: Oczywiście. Pojemność zależy od szerokości pasma B, mocy sygnału S i mocy szumu N. Ogólnie rzecz biorąc, im szersze pasmo masz, tym więcej informacji przepchniesz.
Tereza: Jak szersza autostrada dla większej liczby samochodów?
Tomáš: Idealne porównanie! Dokładnie tak jest.
Tereza: Ale życie nie zawsze jest takie proste, prawda? Co jeśli ten stosunek sygnału do szumu nie jest wszędzie taki sam?
Tomáš: Świetne pytanie! W realnym świecie tak często bywa. Na niektórych częstotliwościach szum może być silniejszy niż na innych.
Tereza: Czyli ta nasza autostrada ma w niektórych pasach dziury?
Tomáš: Dokładnie! I dlatego potrzebujemy sprytniejszego narzędzia. Istnieje ogólniejszy wzór z całką, który to uwzględnia.
Tereza: Ten wygląda strasznie... Dlaczego akurat całka?
Tomáš: Ponieważ ten wzór właściwie sumuje pojemności wszystkich tych poszczególnych 'pasów' lub częstotliwości razem. Da nam to dokładny obraz całkowitej pojemności.
Tereza: Jasne! Czyli teraz rozumiemy, co ogranicza prędkość transmisji. A skoro już mówimy o problemach... co się stanie, gdy w tych danych pojawią się błędy?
Tereza: Czyli mamy dane zakodowane. Ale jak ich dostać więcej naraz jednym kablem? To się tam przecież musi jakoś sprytnie poskładać, co nie?
Tomáš: Dokładnie tak! I to się nazywa multipleksowanie. To sposób, jak połączyć więcej strumieni danych w jeden kanał. Wyobraź sobie autostradę z wieloma pasami.
Tereza: A jakie te „pasy” istnieją?
Tomáš: Podstawą jest podział czasowy, TDM, gdzie każdy dostaje swój mały odcinek czasu. Albo częstotliwościowy FDM, gdzie każdy ma własne pasmo częstotliwości. W optyce z kolei używa się falowego WDM – różne kolory światła dla różnych danych.
Tereza: Różne kolory? To brzmi prawie magicznie.
Tomáš: A jeszcze jest podział kodowy, CDM. Wyobraź sobie, że w pokoju wszyscy mówią naraz, ale każdy w innym języku. Ty rozumiesz tylko swój. Genialne, co?
Tereza: Dobra, dane mamy uporządkowane. Ale jak z jedynek i zer stanie się sygnał, który naprawdę leci kablem albo powietrzem?
Tomáš: To jest zadanie modulacji. Ona przekształca dane cyfrowe na sygnał fizyczny. Możemy zmieniać na przykład fazę sygnału, to jest PSK, albo jego częstotliwość, co jest FSK.
Tereza: A ten sygnał potem po prostu leci kanałem transmisyjnym, jak kabel albo powietrze?
Tomáš: Dokładnie. Tyle że ten kanał nie jest idealny. Powoduje tłumienie, szum i zniekształcenia. To jest jak próba słuchania szeptu przez ruchliwą ulicę.
Tereza: Czyli po drugiej stronie musimy ten pierwotny sygnał znowu jakoś... rozszyfrować?
Tomáš: Oczywiście. Najpierw następuje demodulacja, która z sygnału odzyska z powrotem pierwotne dane. A na koniec detekcja zdecyduje, czy przyszedł bit 0, czy 1.
Tereza: Świetnie. Czyli mamy cały cykl. Od multipleksu przez modulację aż po detekcję. Teraz jednak musimy rozwiązać, jak sieci poznają, dokąd dokładnie te dane wysłać...
Tereza: Czyli informacja ma swój cel, czy to wyświetlacz, czy ludzkie ucho. Ale jak się tam niezawodnie dostanie przez tę skomplikowaną sieć?
Tomáš: Świetne pytanie! Właśnie dlatego mamy coś, co nazywamy modelem warstwowym. To sposób, jak tę ogromną złożoność podzielić na mniejsze, łatwiejsze do zarządzania kawałki.
Tereza: Jak krojenie tortu?
Tomáš: Dokładnie tak. Każda warstwa ma jedno konkretne zadanie i komunikuje się tylko ze swoimi sąsiadami – warstwą poniżej i powyżej siebie. To ogromnie upraszcza projektowanie sieci i szukanie błędów.
Tereza: Dobra, to jakie to są warstwy?
Tomáš: Najbardziej znany jest siedmiowarstwowy model OSI. W praktyce co prawda częściej używa się prostszego modelu TCP/IP, ale do zrozumienia OSI jest super.
Tereza: No to chodźmy na to, od dołu.
Tomáš: Całkiem na dole jest warstwa fizyczna – to są tylko bity i kable. Nad nią łącza danych, która ogarnia połączenie na przykład między komputerem a switchem za pomocą adresów MAC.
Tereza: A dalej?
Tomáš: Potem warstwa sieciowa, ta wysyła dane przez internet za pomocą adresów IP. A warstwa transportowa zapewnia komunikację między konkretnymi aplikacjami.
Tereza: Tam jest ta różnica między TCP a UDP, co nie?
Tomáš: Dokładnie! TCP jest niezawodne, jak list polecony. UDP jest raczej jak krzyknąć z okna i mieć nadzieję, że ktoś to usłyszy. Szybkie, ale bez gwarancji.
Tereza: Czyli do gier online super, do wysyłania zadań już niezbyt.
Tomáš: Dokładnie! A całkiem na górze jest warstwa aplikacji, gdzie znajdziesz protokoły takie jak HTTP dla sieci. Te pozostałe – sesyjna i prezentacji – są dziś często jej częścią.
Tereza: A jak te dane przejdą przez warstwy? Tak po prostu?
Tomáš: Skądże. Każda warstwa doda do danych swój nagłówek. To się nazywa enkapsulacja. To jest jak wkładanie listu do koperty, a tę potem do kolejnej, większej koperty.
Tereza: Rozumiem. Czyli żeby było jasne, model warstwowy pomaga nam zrozumieć, jak dane podróżują od kabla aż po aplikację, którą widzimy na ekranie. Dzieli problem na mniejsze, logiczne części.
Tomáš: Lepiej bym tego nie ujął. I to na dziś z naszej strony wszystko. Mamy nadzieję, że pomogło wam to trochę zorientować się w świecie sieci.
Tereza: Dziękujemy za wysłuchanie i będziemy na was czekać znowu następnym razem przy kolejnym odcinku Studyfi Podcastu. Trzymajcie się!
Tomáš: Cześć!