Sieci cz. 3. Jak działa internet i czym jest Wi-fi? Trasowanie i DNS.

5/12/2018
Bartek Cis

Siedzisz tyle w tym internecie a czy wiesz jak on w ogóle działa? Jeśli nie to koniecznie przeczytaj ten artykuł. To wiedza która się przyda.

Czego się dzisiaj dowiesz?

Na początku skupię się na tym jak działa Wi-fi i w jaki sposób komputery się łączą z taką siecią. Potem opiszę najważniejsze mechanizmy sterujące komunikacją w internecie. Będzie o tym jak to się dzieje, że Twoje wiadomości docierają dokładnie do tego miejsca do jakiego chcesz je wysłać. Magia internetu zostanie objawiona!

Na końcu opiszę strukturę współczesnego internetu czyli kto to wszystko ogarnia. A przynajmniej próbuje to robić 🙂

Seria Sieci

Ta seria ma na celu zapoznanie z tematem sieci komputerowych i zrozumienia zasad komunikacji między aplikacjami w internecie. Bo Web Dev bez znajomości sieci to jak kierowca bez znajomości zasad ruchu drogowego 🙂

W skład serii wchodzą:

  1. Sieci cz. 1. Jak myślą komputery? System binarny i adres IP w JavaScript. 
  2. Sieci cz. 2. Jak komunikują się komputery? Protokół TCP/IP. 
  3. Sieci cz. 3. Czym jest internet i jak działa Wi-fi? Trasowanie i DNS.
  4. Sieci cz. 4. Jak komunikują się aplikacje internetowe? Porty i protokół HTTP.
  5. Sieci cz. 5. Strumieniowanie danych czyli muzyka i video w internecie.
  6. Sieci cz. 6. Chmura. Czym jest i jak zrozumieć tą koncepcje?

Wi-fi i fale radiowe

Zanim zaczniesz czytać ten wpis sprawdź poprzednie wpisy z serii. Wprowadzą Cię w temat. No chyba, że masz już podstawy 🙂 Zaczynamy.

Medium transmisyjne

Tradycyjnym medium transmisyjnym jeśli chodzi o sieci komputerowe jest kabel sieciowy lub jego bardziej nowoczesne odsłony jak np. światłowód. Sprawdzają się one znakomicie gdyż transmisja danych jest szybka i stabilna jednak wraz z rozwojem technologii mobilnych potrzebne było inne medium.

Fale radiowe

Są znane już od dawna i używane np. w radiu lub telewizji więc dlaczego by nie używać go do transmisji danych w internecie?

Bez zagłębiania się w fizykę teoretyczną można stwierdzić, że Nasz Wszechświat ma naturę falową. Znaczy to tyle, że wszystko jest kwestią drań odpowiednich cząstek czyli ważna jest częstotliwość i amplituda. Ohh… Ile ja się napatrzyłem na te fale kiedy byłem Geofizykiem… 

Ciekawym jest to, że choć zostało to dowiedzione naukowo to wiele nurtów filozoficzno-duchowych głosi ten postulat od tysiącleci…

Wi-fi

Sieć Wi-fi jest to odpowiedni zakres częstotliwości fal radiowych wykorzystywany do transmisji danych sieciowych. Mamy różne standardy Wi-fi np. 802.11c/d/e które opisują w jakich pasmach i z jaką prędkością dane mogą być przesyłane. Każde urządzenie posiadające odpowiedni interfejs czyli kartę sieciową może używać Wi-Fi. Potem obowiązują już te same zasady ruchu drogowego czyli protokół TCP/IP

Bezpieczeństwo Wi-fi

Choć użycie sieci bezprzewodowej jest bardzo wygodne to niesie ze sobą wiele niebezpieczeństw. Jest bardzo łatwo przechwycić taki pakiet z danymi który leci w przestrzeni… Jeśli komunikacja nie jest odpowiednio zaszyfrowana to wiesz…

Rodzaje Wi-Fi

Kiedyś popularna była tzw. radiówka. Działało to w ten sposób, że w danej okolicy ktoś stawiał odbiornik zdolny to przesyłania i odbierania danych na duże odległości. Stanowił on lokalną bramę która łączyła komputery w okolicy z internetem. Potem w domach ludzie montowali anteny i odbierali sygnał z bramy. Na podobnej zasadnie działa dzisiaj internet komórkowy ale o tym później.

Hotspot

Czyli zwykła sieć WLAN. Najczęściej jakiś router jest podpięty do infrastruktury sieciowej i bezprzewodowo udostępnia internet w najbliższej okolicy. Może to być na lotnisku, mieście czy w Twoim domu. Urządzenia w sąsiedztwie podłączają się do routera i mają dostęp do internetu.

Protokół DHCP

Do każdego routera może podpiąć się wiele różnych urządzeń. Wiesz już, że każde musi mieć swoją unikalną tożsamość czyli adres IP. Nikt nie wie kiedy i kto się podłączy dlatego żaden admin nie siedzi i nie monitoruje takich spraw. Wymyślono do tego protokół DHCP. Działa on na poziomie warstwy aplikacyjnej w protokole TCP/IP.

Pierwszym krokiem jest połączenie się z routerem. Zazwyczaj Twoja karta sieciowa widzi kilka sieci w okolicy. Niektóre są otwarte a niektóre wymagają hasła abyś mógł/a się do nich podpiąć. Jeśli próbujesz się połączyć z routerem Twoja ikona Wi-Fi robi charakterystyczne miganie/łączenie. Napewno widziałeś/aś to wielokrotnie 🙂 Zaraz się dowiesz co się w tym czasie dzieje! Zaczyna działać DHCP!

Działanie DHCP

Cały proces polega na tym, aby Twoje urządzenie połączyło się z najbliższym serwerem DCHP i otrzymało unikalny adres IP, maskę podsieci i adres DNS (o tym później). Kiedy masz już te dane możesz surfować po internecie. Odbywa się to w 4 krokach:

DHCPDiscover

Twoje urządzenie wysyła datagram rozgłoszeniowy przy użyciu protokołu UDP do wszystkich serwerów DHCP w okolicy. Najważniejszym polem w datagramie jest adres fizyczny MAC Twojej karty sieciowej. Docelowym portem w komunikacji jest port 67.

DHCPOffer

Na tym etapie serwer DHCP wysyła odpowiedź na Twoje urządzenie w którym znajduje się jego własny adres fizyczny i adres IP oraz adres IP i maskę podsieci jaką przydzielił Tobie. Jeżeli połączyłeś się z kilkoma serwerami DHCP na raz akceptowana jest odpowiedź która przyszła jako pierwsza.

DHCPRequest

Kiedy już masz swój adres IP to Twoje urządzenie po raz kolejny wysyła komunikat zawierający przydzielony adres IP oraz dane serwera DHCP od którego ten adres pochodzi. W ten sposób informujesz dany serwer, że zaakceptowałeś jego dane a wszystkie inne serwery też o tym wiedzą.

DHCPack

Ostatnim krokiem jest odpowiedź z Twojego serwera potwierdzająca cały proces i dodatkowo wysyła Ci bardziej szczegółowe dane jak np. adresy DNS, Domyślną Bramę itp.

Co jeszcze?

Jeżeli serwer DHCP znajduje się daleko i jest poza segmentem Twojej sieci ten proces może się wydłużyć i w komunikacji mogą pomagać agenci pośredniczący DHCP lub BOOTP.

Adresy przydzielane przez DHCP są dynamiczne tzn. jeśli przez dłuższy czas nie korzystasz z sieci to Twój adres jest przypisywany gdzie indziej a Ty dostaniesz jakiś nowy.

Kiedy cały proces zakończy się sukcesem Twoja ikonka Wi-fi przestaje migać 🙂

Sieci komórkowe czyli standard MIP

Kiedy się przemieszczasz ciągłe łączenie z różnymi routerami identyfikacja i uwierzytelnienie Twojego urządzenia jest trudne. Wymyślono więc inny mechanizm tzn. standard MIP ‘Mobile IP’. Przydziela on urządzeniu dwa adresy IP, jeden stały a drugi dynamiczny zwany ‘Care-of address’.

Twój smartfon ma przydzielony stały adres IP w zależności od Twojego operatora komórkowego. Każdy operator ma dany zasięg sieci czyli nadajniki na obrębie określonego terenu służące jako bramy/routery agent macierzysty, home agent’.

Każda z tym bram ma listę wszystkich stałych adresów IP w danej sieci gdzie każdy z nich może się połączyć z bramą w obrębie danej sieci podając również swoje położenie. Kiedy urządzenie jest uprawnione do połączenia przypisywany jest mu drugi dynamiczny adres IP za pomocą serwera DHCP.

Jeśli użytkownik przemieści się poza zasięg danej sieci i próbuje się połączyć z internetem to nawiązuje komunikację z ‘agentem obcym, foreign agent’. Ten wysyła zapytanie do agenta macierzystego który odpowiada listą swoich abonentów. Jeśli Twój telefon się na niej znajduje dopisuje Cię do listy gości i przydziela dynamiczny adres IP. Uff… Znowu masz zasięg 🙂

Domeny w internecie i serwery DNS

Skoro już wiesz jak działa przypisywanie adresów IP i łączenie się z internetem czas na koleją zagadkę. Jak łączysz się z odpowiednimi stronami internetowymi?

Każdy serwer przechowujący aplikacje w sieci ma unikalny adres IP. Komputer wie jak go rozpoznać jednak człowiekowi ciąg liczb poprzerywany kropkami nic nie mówi. Wprowadzono więc specjalne nazwy które są dla nas bardziej intuicyjne. Te nazwy to domeny np. www.bedekodzic.pl.

Odwzorowywanie nazw

Kiedy wpisujesz w przeglądarce daną nazwę domeny Twój komputer stara się znaleść odpowiedź na to gdzie może znaleźć serwer docelowy. Służy do tego protokół DNS i serwery DNS ‘Domain Name Sytem’. Jak to działa?

W sieci działają specjalne komputery posiadające listy ze wszystkimi domenami w obrębie ich segmentu sieci. Nazywają się serwerami DNS. Twój komputer wysyła zapytanie do najbliższego serwera DNS o to czy zna konkretną domenę. Jeżeli odpowiedź jest pozytywna to Twój komputer dostaje dokładny adres serwera na którym znajduje się dana strona. Wtedy może się dopiero połączyć z docelowym serwerem.

Co jeśli serwer DNS nic nie znalazł?

Wtedy zwraca informacje gdzie należy zapytać ponownie tzn. może inny serwer DNS będzie coś wiedział. I generalnie tak w kółko do skutku aż któryś z serwerów DNS prześle Ci informacje które Cię interesują… To skąd te serwery DNS wiedzą gdzie pytać?

Nazwy FQDN

Każda domena ma adres o charakterystycznej strukturze która składa się z segmentów. Dla domeny https://bedekodzic.pl tymi segmentami są kolejno .pl i bedekodzic. Dodatkowo https informuje, że chodzi o dane dla protokołu HTTPS.

Przydzielaniem nazw domen zajmuje się korporacja ICANN oraz jej pośrednicy.

Serwery DNS analizują kolejno każdy segment i o ile nie znajdą tej domeny u siebie to starają się Cię przekierować na podstawie tej struktury. Wygląda to tak:

Schemat działania DNS

Aby lepiej zobrazować cały proces związany z poszukiwaniem adresu serwera docelowego przygotowałem taką grafikę:

System DNSSEC

DNS jak każdy system jest wrażliwy na ataki dlatego wymyślono też bezpieczną wersję w której komunikacja zachodzi tylko między zaufanymi serwerami. Gwarantuje to, że odpowiedź zawsze jest prawidłowa i nikt nie wysłał fałszywego komunikatu.

Adres URI i URL

Na tym etapie pasuje wspomnieć o dwóch pojęciach tzn:

Uniform Resource Identifier – URI

Tutaj definicja jest bardzo mglista… URI jest łańcuchem znaków zawierających nazwę zasobu pozwalającym na ich identyfikację w sieci. Nie zawiera on jednak informacji na temat sposobu dostępu do zasobu. Jego specyficznym rodzajem jest:

Uniform Resource Locator – URL

Definicja URL jest taka sama jak URI tylko URL już zawiera informację o dostępie do zasobu. Nie było by w tym nic dziwnego gdyby nie to, że URL zawiera się w URI czyli jak jakaś informacja jest w URL to musi być też w URI. Ehhh…

Podobno różnica między URI a URL ma znaczenie w technologii RDF. Tak podaje Wikipedia

Wracając do URL…

Struktura URL

Teraz po ludzku, URL to adres na podstawie którego identyfikujemy zasoby w sieci. Ma od odpowiednią strukturę:

schemat://podmiot/ścieżka?zapytanie#fragment

lub inaczej:

https://bedekodzic.pl/dhcp-dns/#struktura-url

Schemat

Mówi o tym z jakim zasobem mamy do czynienia i jakie protokołu użyć np. HTTP, FTP, POP, NFS. Każdy z protokołów jest obsługiwany przez unikalny port i na tej podstawie serwer wyszukuje odpowiednie dane. Jeśli widzie schemat w postaci http to wie, że chodzi nam o stronę internetową, jak widzi ftp to kieruje nas w stronę plików do pobrania itp.

Podmiot

Czyli nazwa domeny. Z części o DNS już wiesz, że na tej podstawie wyszukiwany jest odpowiedni serwer.

Ścieżka

Tu sprawa jest prosta bo jest to po prostu podstrona na danym podmiocie. Spójrz teraz w pasek adresu w Twojej przeglądarce. Co jest tam ścieżką?

Zapytanie

To już nie zawsze się pojawia w tych czasach. Zazwyczaj mamy z tym do czynienia przy pracy z wyszukiwarkami np. google.

Fragment

To można często zobaczyć przy artykułach gdzie po kliknięciu w dany link przenosi nas gdzieś dalej w obrębie artykułu. Spróbuj kliknąć TUTAJ 🙂

Trasowanie

No, to już masz lepsze zrozumienie co się dzieje gdy przeglądasz internet. Jak widzisz zadziwiające jest, jak wiele operacji musi wykonać Twój (i inne) komputery w sieci aby np. wyświetlić Ci ten artykuł.

Dane często błądzą między różnymi serwerami a mimo to, zazwyczaj nie czekamy zbyt długo na załadowanie stron… Jednym z mechanizmów który usprawnia cały proces jest trasowanie. Ma on na celu zadbanie, aby dane zawsze wędrowały jak najkrótszymi drogami w swojej podróży między serwerami. Coś jak GPS w telefonie kiedy jedziesz autem… Tylko Twoje dane zazwyczaj nie kończą gdzieś na gruntowej drodze w środku lasu…

Jak działa trasowanie

Sercem wszystkich sieci są routery. To one są łącznikami między miliardami urządzeń w internecie. Każdy komunikat musi na swojej drodze przejść przez wiele routerów zanim dotrze do miejsca przeznaczenia. Jak routery to robią?

Router

To urządzenie jest w stanie przetwarzać dane na poziomie warstwy sieciowej. Znaczy to tyle, że poza adresem fizycznym MAC jest w stanie zinterpretować adres logiczny IP (sprawdź poprzedni wpis jeśli potrzebujesz odświeżenia).

Router usuwa ramkę z pakietu danych i analizuje adres IP komputera docelowego. Każdy router ma swoją tabelę trasowania w której zapisane są wszystkie znane routery w okolicy.

Tabela trasowania

Zawiera informacje na temat położenia znanych sieci docelowych lub dalszych routerów które będą wiedzieć gdzie szukać dalej. Sytuacja jest podobna jak w przypadku DNS jednak routerów jest znacznie więcej niż serwerów więc jest to zdecydowanie częstszy proces.

Rodzaj trasowania

Jeżeli tabela trasowania jest tworzona przez administratora sieci to mamy do czynienia z trasowaniem statycznym. Oczywiście w przypadku większych sieci i internetu jest to abstrakcyjne rozwiązanie. Wtedy routery same wymieniają się informacjami na temat znanych sieci automatycznie uzupełniając tabele trasowania. Mamy wtedy do czynienia z trasowaniem dynamicznym.

Algorytmy trasowania dynamicznego

Kocham słowo algorytmy 🙂 Ma taki wydźwięk… Wydźwięk pełen grozy 🙂

Teraz będę pisał o bardzo skomplikowanych rzeczach jednak napiszę o nich prosto. Są dwie podstawowe metody:

Trasowanie typu wektor odległości

Przesłanie danych między dwoma routerami nazywa się skokiem. Ten algorytm ma na celu przesłanie danych przy jak najmniejszej liczbie skoków. Routery regularnie wymieniają się informacjami i aktualizują tabelę trasowania. Jest tam też informacja ile skoków należy wykonać aby dostać się w dano miejsce. Jeśli algorytm uzna, że to dobry ruch to skoczy sobie dalej 🙂

Ta metoda jednak została w dużym stopniu wyparta przez:

Trasowanie typu stan łącza

W tym wypadu oprócz ilości skoków tabela jest uzupełniana też o stan połączenia z sąsiednimi routerami. Ten algorytm po prostu łączy się z najszybszymi routerami w okolicy licząc na to, że w końcu znajdzie to czego potrzebuje. Nawet jeśli ostatecznie wykona większą liczbę skoków to i tak dane dotrą na miejsce szybciej.

Struktura współczesnego internetu

Konia z rzędem temu kto dokładnie wie jak działa internet… To monstrum już dawno wymknęło się spod pełnej kontroli jednak nie myśl sobie, że panuje w nim kompletny chaos.

Wszystko zaczęło się w USA a protoplastą internetu był sieć ARPANET która wyewoluowała w NSFNET używaną przez instytucje państwowe i uniwersytety.

W połowie lat 90 powstał nowy bardziej zdecentralizowany system który znasz jako Internet. Jest to konglomerat ogromnej ilości sieci, głównie prywatnych. Rdzeniem systemu jest pierścień o nazwie Poziom 1.

Poziom 1

Są to prywatne sieci kilku największych dostawców m.in. Verizon, Sprint, AT&T i Qwest. Choć ich sieci są ogromne to stanowią tylko część internetu. Ci dostawcy mają wspólnie podpisane poufne umowy które pozwalają na bezpłatny przepływ danych między prywatnymi sieciami. Sieci Poziomu 1 są połączone punktami styku z sieciami Poziomu 2. Te punkty nazywają się IXP.

Punkty IXP – Internet Exchange Points 

Duże kompleksy w których łączą się ze sobą setki sieci. Raczej działają na poziomie warstwy dostępowej więc nie oferują usługi trasowania.

Poziom 2

Czyli regionalni operatorzy. Ci też bezpłatnie pozwalają na wymianę danych w obrębie własnych sieci. Zazwyczaj zarabiają na udostępnianiu swoich sieci lokalnym dostawcom Poziomu 3. Punkty styku między poziomem 2 a 1 to punty POP – Point of Presence.

Poziom 3

To już są dostawcy którzy sprzedają dostęp do internetu firmom i indywidualnym użytkownikom. Znasz ich z reklam i ulotek. Wykupują oni dostęp do globalnych sieci od operatorów poziomu 2 i o ile mają swoją własną infrastrukturę (bo mogą np. dzierżawić lub współużytkować) to do niej podpinają poszczególnych odbiorców.

Internet

Jak widzisz jest to zbiór wielu prywatnych sieci często całkiem niezależnych od siebie jednak to co łączy to wszystko w jedną całość to:

  1. Ten sam język komunikacji – TCP/IP
  2. Utrzymywanie i zarządzanie sieciami przez konkretne organizacje
  3. Ogólnie panujące zasady

Organizacjami sprawującymi kontrolę ogólną nad internetem są IAB, IETF czy ICANN.

Podsumowanie

I tym sposobem dotarłeś/aś do końca trzeciej odsłony mojej serii o sieciach! Mam nadzieję, że wpis był ciekawy.

Już wiesz czym są: Protokół DHCP, Protokół DNS, Trasowanie i jak wygląda struktura Internetu.

Sprawdź też inne wpisy z tej serii!

Podziel się z innymi 🙂

Piszę dla was tego bloga bo lubię aplikacje internetowe. Mogę je projektować, kodować a potem o nich pisać czując dreszczyk ekscytacji za każdym razem gdy trafię na coś nowego. Bo uczymy się całe życie. Prawda?

warto

partnerzy:

dane kontaktowe:

kontakt@bedekodzic.pl

Social media & sharing icons powered by UltimatelySocial

Podoba Ci się ten blog? Podziel się ze znajomymi!

  • Facebook
    Facebook
  • Twitter
    Visit Us