Wprowadzenie do warstwy sieciowej
- Witam Państwa ponownie.
- Po zgłębieniu warstwy fizycznej i łącza danych, które pozwoliły nam zbudować solidną, lokalną
sieć bezprzewodową, nadszedł czas, aby wyjść poza jej granice.
- Dzisiaj zajmiemy się warstwą 3, czyli warstwą sieciową.
- To właśnie ta warstwa jest odpowiedzialna za to, co czyni Internet globalną siecią – za logiczne
adresowanie i znajdowanie najlepszej drogi do odległych celów.
- Zobaczymy, jak nasze urządzenia Wi-Fi uzyskują unikalne adresy IP, jak komunikują się ze światem
poza naszą siecią lokalną i jaka jest w tym wszystkim rola routera, czyli kluczowego urządzenia
warstwy 3.
Wyznaczanie trasy przez Internet
- Głównym zadaniem warstwy sieciowej jest zapewnienie komunikacji między hostami znajdującymi się
w różnych sieciach.
- Podczas gdy warstwa 2 zajmowała się dostarczaniem ramek w obrębie jednej sieci lokalnej (np.
między laptopem a punktem dostępowym / routerem), warstwa 3 odpowiada za przesłanie danych z
naszej sieci domowej do serwera znajdującego się na drugim końcu świata.
- Aby to osiągnąć, warstwa sieciowa realizuje dwa kluczowe zadania: adresowanie logiczne
(przypisywanie urządzeniom unikalnych adresów IP) oraz routing (wyznaczanie najlepszej
ścieżki dla pakietów przez labirynt połączonych ze sobą sieci).
Tożsamość vs. Lokalizacja
- Aby zrozumieć warstwę 3, musimy jasno rozróżnić adres MAC (warstwa 2) od adresu IP (warstwa 3).
- Adres MAC jest jak numer seryjny urządzenia lub numer PESEL – jest unikalny, przypisany
na stałe i nie zmienia się.
- Identyfikuje on konkretną kartę sieciową.
- Adres IP jest jak adres zamieszkania – jest logiczny, tymczasowy i zmienia się w
zależności od tego, do jakiej sieci jesteśmy podłączeni.
- Kiedy jesteśmy w domu, nasz laptop ma jeden adres IP; kiedy podłączymy się do Wi-Fi w kawiarni,
otrzyma zupełnie inny.
- Routery używają adresów IP do globalnej nawigacji, a gdy pakiet dotrze do docelowej sieci
lokalnej, używany jest adres MAC do dostarczenia go do konkretnego urządzenia.
Fundament komunikacji sieciowej
- Koniem pociągowym warstwy sieciowej jest Protokół Internetowy (Internet Protocol - IP).
- Jest to zbiór reguł, które definiują format pakietów oraz system adresowania, umożliwiając
komunikację w Internecie.
- Protokół IP jest protokołem bezpołączeniowym, co oznacza, że nie ustanawia on stałego
połączenia między nadawcą a odbiorcą przed wysłaniem danych.
- Każdy pakiet jest traktowany jako niezależna jednostka i wysyłany w sieć "w ciemno".
- IP jest również protokołem zawodnym (unreliable) – nie gwarantuje on, że pakiety dotrą do
celu, ani że dotrą w odpowiedniej kolejności.
- Za zapewnienie niezawodności i uporządkowanie danych odpowiada dopiero warstwa transportowa
(TCP), o której będziemy mówić na kolejnym wykładzie.
"Koperta" warstwy 3
- Jednostką danych w warstwie sieciowej jest pakiet.
- Każdy pakiet IP składa się z dwóch części: nagłówka i danych (ładunku).
- Nagłówek IP zawiera wszystkie informacje niezbędne do jego przesłania przez sieć.
- Najważniejsze z nich to oczywiście 32-bitowy źródłowy adres IP oraz 32-bitowy docelowy
adres IP.
- Oprócz tego w nagłówku znajdziemy takie informacje jak wersja protokołu (np. 4 dla IPv4), czas
życia pakietu (TTL), informacje potrzebne do fragmentacji oraz sumę kontrolną samego nagłówka.
- Ładunek pakietu to dane z wyższej warstwy, czyli najczęściej cały segment TCP lub
datagram UDP.
Świat 32-bitowych adresów
- Najpopularniejsza wersja protokołu IP, wciąż dominująca w Internecie, to IPv4.
- Adres IPv4 to 32-bitowa liczba.
- Aby ułatwić ludziom jej odczytywanie, zapisujemy ją w postaci czterech 8-bitowych liczb
(oktetów) oddzielonych kropkami, gdzie każda liczba jest w systemie dziesiętnym (np.
`192.168.1.10`).
- Każdy z czterech oktetów może przyjąć wartość od 0 do 255.
- Teoretyczna liczba wszystkich możliwych adresów IPv4 to 2^32, czyli około 4.3 miliarda.
- W czasach tworzenia Internetu wydawało się to astronomiczną liczbą.
- Dziś wiemy, że pula ta jest na wyczerpaniu, co doprowadziło do stworzenia następcy – protokołu
IPv6.
Identyfikator ulicy i numer domu
- Każdy adres IP składa się z dwóch części.
- Część sieciowa (Network ID) identyfikuje sieć, w której znajduje się urządzenie – jest
jak nazwa ulicy.
- Wszystkie urządzenia w tej samej sieci lokalnej muszą mieć tę samą część sieciową adresu IP.
- Część hosta (Host ID) identyfikuje unikalne urządzenie w tej sieci – jest jak numer domu
na danej ulicy.
- Żadne dwa urządzenia w tej samej sieci nie mogą mieć tej samej części hosta.
- To, gdzie przebiega granica między częścią sieciową a hostową, jest określane przez maskę
podsieci.
Wyznaczanie granic sieci
- Maska podsieci to 32-bitowa liczba, która służy komputerom i routerom do określenia,
która część adresu IP jest częścią sieciową, a która hostową.
- Maska w zapisie binarnym składa się z ciągu jedynek, po którym następuje ciąg zer.
- Jedynki w masce odpowiadają bitom części sieciowej adresu IP, a zera – bitom części hostowej.
- Najczęściej spotykaną maską w sieciach domowych jest `255.255.255.0`.
- Oznacza to, że pierwsze trzy oktety adresu IP (24 bity) identyfikują sieć, a ostatni oktet (8
bitów) jest dostępny do adresowania hostów.
Skrócony zapis maski
- Zapisywanie pełnej maski w formacie dziesiętnym jest niewygodne.
- Dlatego powszechnie stosuje się notację CIDR (Classless Inter-Domain Routing).
- Polega ona na dodaniu na końcu adresu IP ukośnika, po którym następuje liczba jedynek w masce
podsieci.
- Jest to prosty i zwięzły sposób na określenie, ile bitów adresu IP stanowi część sieciową.
- Na przykład, adres `192.168.1.10` z maską `255.255.255.0` zapiszemy w notacji CIDR jako
`192.168.1.10/24`, ponieważ maska ta ma 24 jedynki w zapisie binarnym (8+8+8=24).
- Podobnie, adres `10.0.0.5` z maską `255.0.0.0` to `10.0.0.5/8`.
Adresy do użytku wewnętrznego i zewnętrznego
- Z powodu ograniczonej liczby adresów IPv4, organizacja IANA (Internet Assigned Numbers
Authority) zarezerwowała pewne zakresy adresów do użytku w sieciach prywatnych.
- Adresy te, zwane adresami prywatnymi, nie są unikalne globalnie i mogą być używane przez
każdego w jego sieci lokalnej.
- Nie są one jednak routowalne w publicznym internecie.
- Aby urządzenie z adresem prywatnym mogło komunikować się z internetem, musi skorzystać z "usług"
routera, który posiada adres publiczny – unikalny w skali globalnej i przydzielony przez
dostawcę internetu (ISP).
- Mechanizm, który na to pozwala, nazywa się NAT.
Tłumacz adresów, brama do Internetu
- NAT (Network Address Translation) to mechanizm działający na routerze, który pozwala
wielu urządzeniom w sieci lokalnej (z adresami prywatnymi) na współdzielenie jednego publicznego
adresu IP.
- Kiedy laptop z adresem `192.168.1.10` wysyła pakiet do serwera Google, router "łapie" ten
pakiet.
- W nagłówku IP zamienia on źródłowy adres prywatny `192.168.1.10` na swój własny adres publiczny
(np. `83.10.20.30`) i zapisuje tę "transakcję" w swojej tablicy.
- Gdy odpowiedź wraca z serwera Google na adres publiczny routera, ten sprawdza swoją tablicę,
widzi, że odpowiedź dotyczy laptopa, ponownie zamienia adres docelowy na `192.168.1.10` i
przesyła pakiet do sieci lokalnej.
Rola serwera DHCP
- Ręczne konfigurowanie adresów IP na każdym urządzeniu byłoby koszmarem.
- Dlatego w sieciach Wi-Fi (i nie tylko) używamy protokołu DHCP (Dynamic Host Configuration
Protocol).
- W typowej sieci domowej, serwer DHCP jest uruchomiony na naszym routerze Wi-Fi.
- Kiedy nowe urządzenie (np. smartfon) łączy się z siecią, na poziomie warstwy 2 przechodzi proces
asocjacji.
- Zaraz po tym wysyła w sieć lokalną rozgłoszeniową (broadcast) wiadomość DHCP Discover z
pytaniem: "Czy jest tu jakiś serwer DHCP, który może przydzielić mi adres IP?".
"Mam dla Ciebie ten adres"
- Serwer DHCP na routerze, po otrzymaniu wiadomości DHCP Discover, sprawdza swoją pulę wolnych
adresów IP i przygotowuje ofertę dla klienta.
- Następnie wysyła do niego (używając jego adresu MAC) wiadomość DHCP Offer.
- Wiadomość ta zawiera proponowany adres IP dla klienta, a także inne kluczowe informacje
konfiguracyjne: maskę podsieci, adres IP bramy domyślnej (czyli samego routera) oraz adresy
serwerów DNS.
- Oferta ta ma również określony "czas dzierżawy" (lease time), czyli informację, jak długo klient
może używać tego adresu, zanim będzie musiał go odnowić.
"Biorę!" - "Zatwierdzone."
- Klient, po otrzymaniu oferty (lub kilku ofert, jeśli w sieci jest więcej niż jeden serwer DHCP),
wybiera jedną z nich i wysyła wiadomość rozgłoszeniową DHCP Request.
- Informuje w niej: "Akceptuję ofertę adresu 192.168.1.101 od serwera X".
- Wiadomość jest wysyłana jako broadcast, aby inne serwery DHCP, które również mogły złożyć
ofertę, wiedziały, że ich propozycja została odrzucona i mogą przydzielić oferowany adres komuś
innemu.
- Na koniec, serwer DHCP, którego oferta została wybrana, odsyła do klienta wiadomość DHCP ACK
(Acknowledgement), która jest ostatecznym potwierdzeniem: "OK, adres 192.168.1.101 jest
oficjalnie Twój".
- Od tego momentu klient ma pełną konfigurację warstwy 3 i może komunikować się w sieci.
Drzwi do świata zewnętrznego
- Kiedy urządzenie chce wysłać pakiet IP, musi podjąć decyzję: czy odbiorca jest w mojej sieci
lokalnej, czy na zewnątrz?
- Sprawdza to, porównując adres IP odbiorcy ze swoim własnym adresem i maską podsieci.
- Jeśli okaże się, że odbiorca jest w tej samej sieci (ma to samo ID sieci), pakiet jest wysyłany
bezpośrednio do niego (przy użyciu warstwy 2).
- Jeśli jednak odbiorca jest w sieci zewnętrznej (np. w internecie), urządzenie nie wie, jak do
niego dotrzeć.
- Wtedy wysyła pakiet na adres skonfigurowany jako brama domyślna (default gateway).
- W sieciach domowych i biurowych, adresem bramy domyślnej jest zawsze adres IP naszego routera.
- To on jest "drzwiami", przez które musi przejść cały ruch wychodzący z naszej sieci.
Centrum dowodzenia siecią
- W typowej domowej sieci Wi-Fi, urządzenie, które nazywamy "routerem", jest w rzeczywistości
urządzeniem wielofunkcyjnym, łączącym w sobie rolę trzech różnych urządzeń.
- Po pierwsze, jest to punkt dostępowy (Access Point), który zarządza warstwą 1 i 2, czyli
komunikacją radiową z klientami.
- Po drugie, jest to przełącznik (Switch), posiadający kilka portów Ethernet do podłączenia
urządzeń przewodowych.
- Po trzecie, i najważniejsze, jest to router, czyli urządzenie warstwy 3.
- To właśnie ta funkcja odpowiada za przydzielanie adresów IP (serwer DHCP), translację adresów
(NAT) i, co kluczowe, za przekazywanie pakietów między naszą siecią lokalną a siecią dostawcy
internetu (WAN).
Mapa drogowa routera
- Każdy router (oraz każdy komputer) posiada tablicę rutingu (routing table).
- Jest to prosta tabela, która działa jak mapa drogowa dla pakietów IP.
- Zawiera ona wpisy, które mówią: "Aby dotrzeć do sieci X, wyślij pakiet przez interfejs Y na
adres następnego routera Z".
- W najprostszej formie, na komputerze klienckim, tablica ta ma dwa wpisy.
- Pierwszy mówi: "Sieć lokalna (np. 192.168.1.0/24) jest bezpośrednio podłączona".
- Drugi, najważniejszy, to tzw. trasa domyślna (default route), która mówi: "Aby dotrzeć do
WSZYSTKICH innych sieci (oznaczonych jako 0.0.0.0/0), wyślij pakiet do bramy domyślnej (czyli
naszego routera)".
Łącznik między warstwą 3 a 2
- Wiemy już, że routery używają adresów IP do znajdowania drogi, ale w sieci lokalnej ramki są
adresowane za pomocą adresów MAC.
- Jak więc komputer, znając adres IP innego urządzenia w tej samej sieci, dowiaduje się, jaki jest
jego adres MAC?
- Służy do tego protokół ARP (Address Resolution Protocol).
- Komputer A, chcąc wysłać pakiet do komputera B (o znanym IP), wysyła rozgłoszeniową (broadcast)
ramkę z zapytaniem ARP: "Kto ma adres IP 192.168.1.20? Proszę, podaj mi swój adres MAC".
- Wszystkie urządzenia w sieci odbiorą to zapytanie, ale tylko komputer B na nie odpowie,
wysyłając (tym razem unicastem) odpowiedź ARP: "Ja mam ten IP, a mój MAC to...".
- Komputer A zapisuje tę informację w swojej pamięci podręcznej (ARP cache) i może już zaadresować
ramkę.
Książka telefoniczna Internetu
- Ludzie nie posługują się adresami IP; używamy łatwych do zapamiętania nazw, takich jak
`www.google.com`.
- Jak więc komputer dowiaduje się, jaki adres IP kryje się za tą nazwą?
- Tutaj do gry wkracza DNS (Domain Name System), który działa jak globalna książka
telefoniczna.
- Kiedy wpisujemy w przeglądarce adres strony, nasz komputer wysyła zapytanie do serwera DNS
(którego adres otrzymał z DHCP): "Jaki jest adres IP dla `www.google.com`?".
- Serwer DNS odpytuje inne serwery w globalnej hierarchii DNS i w końcu odsyła odpowiedź, np.
"Adres IP dla `www.google.com` to `142.250.203.196`".
- Dopiero mając ten adres IP, nasz komputer może utworzyć pakiet i wysłać go w świat.
Posłaniec sieciowy
- ICMP (Internet Control Message Protocol) to protokół pomocniczy w warstwie 3, który służy
do przesyłania wiadomości kontrolnych i informacji o błędach.
- Nie służy on do transportu danych użytkownika, ale jest niezbędny do diagnostyki sieci.
- Najbardziej znanym zastosowaniem ICMP jest polecenie ping.
- Kiedy "pingujemy" jakiś adres IP, nasz komputer wysyła do niego specjalny pakiet "ICMP Echo
Request".
- Jeśli docelowy host jest osiągalny i nie blokuje ICMP, odpowiada pakietem "ICMP Echo Reply".
- Pozwala to na sprawdzenie, czy istnieje łączność z danym hostem i zmierzenie czasu odpowiedzi
(opóźnienia).
Co może pójść nie tak?
- Oprócz zapytań i odpowiedzi echo, ICMP definiuje wiele innych komunikatów, które informują
nadawcę o problemach napotkanych na trasie pakietu.
- Na przykład, jeśli router otrzyma pakiet, ale nie ma w swojej tablicy rutingu trasy do celu,
odsyła do nadawcy komunikat "Destination Unreachable".
- Jeśli czas życia pakietu (TTL) spadnie do zera, router, który go odrzuci, wysyła komunikat
"Time Exceeded".
- To właśnie ten mechanizm jest wykorzystywany przez narzędzie traceroute (tracert) do
mapowania całej ścieżki, jaką pakiety pokonują w drodze do celu.
- Inne komunikaty mogą informować o potrzebie fragmentacji czy prosić o spowolnienie transmisji.
Zabezpieczenie przed wiecznymi pętlami
- W nagłówku każdego pakietu IP znajduje się 8-bitowe pole TTL (Time to Live).
- Działa ono jak licznik "przeskoków".
- Nadawca ustawia początkową wartość TTL (np. 64 lub 128).
- Każdy router na trasie pakietu, zanim przekaże go dalej, zmniejsza wartość TTL o jeden.
- Jeśli router otrzyma pakiet z TTL równym 1, zmniejsza go do 0, odrzuca pakiet i wysyła do
nadawcy komunikat ICMP "Time Exceeded".
- Mechanizm ten jest niezwykle ważny, ponieważ zapobiega sytuacji, w której pakiety, z powodu
błędu w konfiguracji rutingów, krążyłyby w nieskończoność w pętlach sieciowych, zapychając
łącza.
Dzielenie zbyt dużych pakietów
- Różne technologie sieciowe (warstwy 2) mają różne maksymalne rozmiary ramek (MTU).
- Co się stanie, jeśli router musi przesłać duży pakiet (np. 1500 bajtów) z sieci Ethernet do
sieci, której MTU wynosi tylko 576 bajtów?
- Router musi dokonać fragmentacji.
- Dzieli on oryginalny pakiet na mniejsze fragmenty, z których każdy staje się nowym, samodzielnym
pakietem IP.
- Wszystkie fragmenty dziedziczą większość oryginalnego nagłówka, ale mają specjalne flagi i pola
"przesunięcia" (fragment offset), które informują odbiorcę, jak złożyć je z powrotem w całość.
- Fragmentacja jest procesem niepożądanym, ponieważ obciąża routery i zwiększa ryzyko utraty
danych (zgubienie jednego fragmentu unieważnia cały pakiet), dlatego stara się jej unikać.
Koniec pewnej epoki
- Jak wspomnieliśmy, pula około 4.3 miliarda adresów IPv4 okazała się niewystarczająca dla
rosnącej liczby urządzeń podłączanych do Internetu – smartfonów, laptopów, serwerów, a teraz
także miliardów urządzeń IoT.
- Ostatnie wolne bloki adresów IPv4 zostały rozdysponowane przez regionalnych rejestratorów
internetowych w latach 2011-2019.
- Oznacza to, że nie ma już nowych, wolnych adresów do przydzielenia.
- Obecnie adresy IPv4 są "odziedziczane", odsprzedawane lub współdzielone na jeszcze większą skalę
(np. przez Carrier-Grade NAT).
- Problem ten był przewidziany już dawno, co doprowadziło do opracowania nowej generacji protokołu
IP.
Ocean adresów
- IPv6 to następca protokołu IPv4, zaprojektowany w celu rozwiązania problemu wyczerpania
adresów.
- Adres IPv6 ma długość 128 bitów, w przeciwieństwie do 32 bitów w IPv4.
- Daje to 2^128 możliwych adresów – jest to liczba tak niewyobrażalnie wielka (około 340
sekstylionów), że wystarczyłaby do przydzielenia bilionów adresów każdemu atomowi na powierzchni
Ziemi.
- Adresy IPv6 zapisuje się jako osiem 16-bitowych bloków w systemie szesnastkowym, oddzielonych
dwukropkami, np. `2001:0db8:85a3:0000:0000:8a2e:0370:7334`.
- Oprócz ogromnej przestrzeni adresowej, IPv6 wprowadza też inne ulepszenia, takie jak uproszczony
nagłówek i wbudowane mechanizmy bezpieczeństwa (IPsec).
Jak klient Wi-Fi uzyskuje adres IPv6?
- W świecie IPv6 nie ma już potrzeby stosowania NAT, ponieważ każde urządzenie może otrzymać swój
własny, unikalny globalnie adres publiczny.
- Konfiguracja adresu IPv6 na kliencie Wi-Fi jest znacznie bardziej zautomatyzowana.
- Najczęściej wykorzystywany jest mechanizm SLAAC (Stateless Address Autoconfiguration).
- Router rozgłasza w sieci lokalnej ramki "Router Advertisement", które zawierają prefiks sieciowy
(odpowiednik części sieciowej w IPv4).
- Klient, po otrzymaniu takiego prefiksu, sam generuje resztę swojego adresu (część hostową),
najczęściej bazując na swoim adresie MAC.
- W ten sposób urządzenie samo tworzy sobie globalnie unikalny adres IP, bez potrzeby pytania
serwera DHCP.
Życie w dwóch światach
- Przejście całego Internetu z IPv4 na IPv6 jest procesem powolnym i długotrwałym.
- Obecnie żyjemy w okresie przejściowym, w którym oba protokoły muszą współistnieć.
- Najpopularniejszym mechanizmem, który to umożliwia, jest Dual Stack.
- Polega on na tym, że urządzenia (zarówno klienci, jak i serwery) oraz routery mają jednocześnie
skonfigurowane adresy z obu pul – posiadają zarówno adres IPv4, jak i IPv6.
- Kiedy przeglądarka chce połączyć się z serwerem, najpierw próbuje uzyskać jego adres IPv6.
- Jeśli się uda, komunikacja odbywa się natywnie przez IPv6.
- Jeśli nie, przeglądarka prosi o adres IPv4 i komunikacja odbywa się "po staremu".
- Dzięki temu zachowana jest pełna kompatybilność.
Przenoszenie IPv6 przez sieć IPv4
- Innym mechanizmem przejściowym jest tunelowanie.
- Stosuje się je w sytuacji, gdy dwie sieci obsługujące IPv6 są oddzielone od siebie siecią, która
obsługuje tylko IPv4 (np. sieć starszego dostawcy internetu).
- W takiej sytuacji router na granicy pierwszej sieci "pakuje" cały pakiet IPv6 do środka pakietu
IPv4, tak jakby był on zwykłymi danymi.
- Ten "opakowany" pakiet jest przesyłany przez sieć IPv4 do routera na granicy drugiej sieci.
- Ten z kolei "rozpakowuje" oryginalny pakiet IPv6 i wysyła go dalej.
- Z perspektywy obu sieci IPv6, są one ze sobą połączone bezpośrednio, a sieć IPv4 jest dla nich
przezroczystym "tunelem".
Filtrowanie ruchu w warstwie 3
- Jedną z najważniejszych funkcji bezpieczeństwa realizowanych w warstwie sieciowej jest
filtrowanie pakietów.
- Firewall (zapora sieciowa) to urządzenie lub oprogramowanie, które analizuje nagłówki
pakietów IP i na podstawie zdefiniowanych reguł decyduje, czy dany pakiet może przejść, czy ma
zostać odrzucony.
- Reguły te, zwane listami kontroli dostępu (ACL - Access Control Lists), mogą filtrować
ruch na podstawie różnych kryteriów, takich jak źródłowy adres IP, docelowy adres IP, a także
informacji z warstwy 4, jak numer portu TCP/UDP.
- W typowym routerze domowym firewall jest skonfigurowany tak, aby blokować cały ruch przychodzący
z internetu, który nie jest odpowiedzią na wcześniejsze zapytanie z naszej sieci.
Oddzielanie zaufanych od niezaufanych
- Wiele routerów Wi-Fi oferuje funkcję sieci gościnnej (Guest Network).
- Z perspektywy warstwy 2 jest to po prostu osobne, wirtualne SSID, często przypisane do osobnego
VLAN-u.
- Jednak prawdziwa magia dzieje się w warstwie 3.
- Router jest skonfigurowany tak, aby ruch z sieci gościnnej był całkowicie odizolowany od głównej
sieci domowej.
- Urządzenia w sieci gościnnej mogą uzyskać dostęp do internetu (ich ruch jest normalnie
NAT-owany), ale firewall na routerze blokuje wszelkie próby komunikacji z urządzeniami w głównej
sieci LAN.
- Często włączana jest również izolacja klientów (Client Isolation), która uniemożliwia
komunikację nawet między urządzeniami podłączonymi do tej samej sieci gościnnej, co dodatkowo
zwiększa bezpieczeństwo.
Ręczne mapy czy GPS?
- Skąd router wie, którędy wysłać pakiet?
- Istnieją dwie metody budowania tablicy rutingu.
- Routing statyczny polega na ręcznym wpisaniu wszystkich tras przez administratora.
- Jest to rozwiązanie proste i bezpieczne, ale nieelastyczne – nie adaptuje się do zmian w
topologii sieci.
- Sprawdza się w małych, niezmiennych sieciach.
- Routing dynamiczny polega na tym, że routery "rozmawiają" ze sobą, używając specjalnych
protokołów (np. OSPF, EIGRP, BGP), i wymieniają się informacjami o znanych im sieciach.
- Na tej podstawie same budują swoje tablice rutingu i potrafią dynamicznie znaleźć nową drogę,
jeśli dotychczasowa ulegnie awarii.
- To właśnie protokoły rutingu dynamicznego sprawiają, że globalny Internet jest w stanie
funkcjonować.
Routing wewnątrz firmy i między dostawcami
- Protokoły rutingu dynamicznego dzielimy na dwie kategorie.
- Protokoły bramy wewnętrznej (IGP - Interior Gateway Protocol), takie jak OSPF czy EIGRP,
są używane do wymiany informacji o trasach wewnątrz jednej, dużej organizacji (zwanej Systemem
Autonomicznym - AS), np. w sieci korporacyjnej czy uniwersyteckiej.
- Ich celem jest znalezienie najszybszej ścieżki.
- Natomiast protokół BGP (Border Gateway Protocol) jest jedynym używanym protokołem
bramy zewnętrznej (EGP - Exterior Gateway Protocol).
- Służy on do wymiany informacji o trasach między różnymi systemami autonomicznymi, czyli między
dostawcami internetu, wielkimi korporacjami i uniwersytetami.
- BGP jest "klejem", który spaja cały globalny Internet w jedną całość.
Typy transmisji w warstwie 3
- W warstwie sieciowej wyróżniamy trzy podstawowe typy transmisji, definiowane przez adres
docelowy.
- Unicast to komunikacja jeden-do-jednego, od jednego nadawcy do jednego, konkretnego
odbiorcy.
- Jest to najczęstszy typ ruchu.
- Broadcast to komunikacja jeden-do-wszystkich, od jednego nadawcy do wszystkich hostów w
danej podsieci.
- Przykładem jest zapytanie DHCP Discover.
- Multicast to komunikacja jeden-do-wielu, od jednego nadawcy do zdefiniowanej grupy
odbiorców, którzy "zapisali się" na odbiór danego strumienia.
- Multicast jest używany np. w telewizji internetowej (IPTV) czy wideokonferencjach, aby
efektywnie wysyłać ten sam strumień do wielu odbiorców bez potrzeby tworzenia oddzielnych
połączeń unicast.
Wyzwanie dla medium bezprzewodowego
- Obsługa ruchu multicast w sieciach Wi-Fi jest problematyczna.
- Ponieważ ramka multicast jest adresowana do grupy, a nie do jednego odbiorcy, jej dostarczenie
nie jest potwierdzane ramką ACK.
- W zawodnym medium radiowym oznacza to, że nie ma gwarancji, iż wszyscy członkowie grupy ją
otrzymają.
- Aby zwiększyć prawdopodobieństwo sukcesu, punkty dostępowe wysyłają ramki multicast z bardzo
niską, podstawową prędkością (np. 6 Mb/s), która jest najbardziej niezawodna.
- Ma to jednak katastrofalny skutek uboczny: jedna transmisja multicast o wysokiej przepływności
(np. streaming wideo HD) może całkowicie "zapchać" całe pasmo radiowe, ponieważ jest wysyłana
bardzo wolno, blokując czas antenowy dla wszystkich innych.
Rozmowa z samym sobą
- W puli adresów IPv4 zarezerwowano całą sieć `127.0.0.0/8` do celów specjalnych.
- Adres z tej puli, najczęściej `127.0.0.1`, jest znany jako adres pętli zwrotnej
(loopback).
- Każdy komputer odnosi się do tego adresu, aby komunikować się "sam ze sobą" poprzez stos
sieciowy.
- Kiedy wysyłamy pakiet na adres `127.0.0.1`, nigdy nie opuszcza on naszego komputera i nie jest
wysyłany do sieci.
- Zamiast tego, jest on "zawracany" na wyższych warstwach stosu.
- Jest to niezwykle użyteczne do testowania, czy oprogramowanie sieciowe na naszym komputerze
działa poprawnie, bez angażowania fizycznej karty sieciowej.
- Polecenie `ping 127.0.0.1` jest podstawowym testem diagnostycznym poprawności działania stosu
TCP/IP.
Co się dzieje, gdy DHCP zawiedzie?
- Co się stanie, jeśli klient Wi-Fi połączy się z siecią, ale nie będzie w stanie znaleźć serwera
DHCP, aby uzyskać adres IP?
- W takiej sytuacji, zamiast pozostać bez adresu, systemy operacyjne (począwszy od Windows 98)
implementują mechanizm APIPA (Automatic Private IP Addressing).
- Urządzenie samo przydziela sobie losowy adres IP z zarezerwowanego zakresu
`169.254.0.0/16`.
- Przed przydzieleniem adresu, wysyła zapytanie ARP, aby upewnić się, że nikt inny w sieci go nie
używa.
- Adresy te, zwane też adresami link-local, pozwalają na komunikację tylko w obrębie lokalnego
segmentu sieci.
- Urządzenia z adresami APIPA nie mogą komunikować się z internetem.
- Widząc taki adres na swoim komputerze, możemy być pewni, że wystąpił problem z DHCP.
Dzielenie dużej sieci na mniejsze
- Subnetting to proces logicznego podziału jednej dużej sieci IP na wiele mniejszych
podsieci.
- Robi się to z kilku powodów: dla lepszej organizacji, zwiększenia bezpieczeństwa (można
filtrować ruch między podsieciami) oraz dla poprawy wydajności (zmniejszenie ruchu
rozgłoszeniowego).
- Technicznie, subnetting polega na "pożyczeniu" bitów z części hostowej adresu IP i przeznaczeniu
ich na identyfikację podsieci.
- Osiągamy to poprzez "wydłużenie" maski podsieci.
- Na przykład, sieć `192.168.1.0/24` możemy podzielić na dwie mniejsze podsieci, używając maski
/25: `192.168.1.0/25` i `192.168.1.128/25`.
Podsieci o różnych rozmiarach
- VLSM (Variable Length Subnet Mask) to technika, która pozwala na dzielenie przestrzeni
adresowej na podsieci o różnych rozmiarach, w zależności od potrzeb.
- Zamiast dzielić sieć na wiele równych części, możemy wydzielić małą podsieć dla połączenia
punkt-punkt między routerami (która potrzebuje tylko 2 adresów), średnią dla działu księgowości
(30 adresów) i dużą dla sieci Wi-Fi dla gości (200 adresów).
- Pozwala to na znacznie bardziej efektywne wykorzystanie dostępnej puli adresów IP i uniknięcie
marnotrawstwa.
- VLSM jest podstawą projektowania nowoczesnych, skalowalnych sieci IP.
Dwa zarezerwowane adresy
- W każdej podsieci IP, dwa adresy są zarezerwowane i nie mogą być przydzielone hostom.
- Pierwszy adres w podsieci, ten z samymi zerami w części hostowej, to adres sieci (Network
Address).
- Służy on do identyfikacji całej podsieci (np. w tablicach rutingu).
- Ostatni adres, ten z samymi jedynkami w części hostowej, to adres rozgłoszeniowy (Broadcast
Address).
- Pakiety wysłane na ten adres są dostarczane do wszystkich hostów w danej podsieci.
- Dlatego, obliczając liczbę dostępnych adresów dla hostów, zawsze musimy odjąć te dwa.
- W sieci /24 (2^8 = 256 adresów) mamy dostępne 254 adresy dla hostów.
Jak rozmawiają ze sobą różne VLAN-y?
- VLAN-y, jak pamiętamy, tworzą logicznie odizolowane domeny rozgłoszeniowe w warstwie 2.
- Domyślnie, urządzenia w różnych VLAN-ach nie mogą się ze sobą komunikować.
- Aby umożliwić taką komunikację, potrzebujemy urządzenia warstwy 3 – routera.
- Proces ten nazywamy routingiem między VLAN-ami (inter-VLAN routing).
- Najczęściej realizuje się go za pomocą konfiguracji zwanej "router-on-a-stick".
- Tworzymy na routerze wirtualne subinterfejsy, po jednym dla każdego VLAN-u, a następnie
fizycznie łączymy router z przełącznikiem za pomocą jednego portu skonfigurowanego jako trunk.
- Router staje się wtedy bramą domyślą dla każdej podsieci (VLAN) i może przekazywać pakiety
między nimi, o ile pozwalają na to listy kontroli dostępu (ACL).
Zmiana sieci w L2 vs. zmiana sieci w L3
- Warto odróżnić roaming w warstwie 2 od mobilności w warstwie 3.
- Roaming Wi-Fi (L2), o którym mówiliśmy, ma miejsce, gdy klient przełącza się między AP w
ramach tej samej podsieci IP (ESS).
- Z perspektywy warstwy 3 nic się nie zmienia – klient zachowuje ten sam adres IP.
- Mobilność IP (L3) to znacznie bardziej złożony problem, który pojawia się, gdy urządzenie
fizycznie przenosi się z jednej podsieci IP do zupełnie innej (np. przełącza się z Wi-Fi na sieć
komórkową 4G/5G).
- Wymaga to uzyskania nowego adresu IP, co normalnie zerwałoby wszystkie istniejące połączenia
(np. sesję VPN).
- Istnieją specjalne protokoły (np. Mobile IP), które próbują rozwiązać ten problem,
"przekierowując" pakiety ze starego adresu na nowy, ale w praktyce rzadko się je stosuje.
Zabezpieczanie komunikacji w warstwie 3
- Chociaż szyfrowanie w Wi-Fi (WPA3) zabezpiecza naszą komunikację w warstwie 2 (między klientem a
AP), nie chroni jej w dalszej drodze przez Internet.
- Do zabezpieczenia komunikacji "od końca do końca" służą protokoły działające w warstwie 3, takie
jak IPsec (Internet Protocol Security).
- IPsec to zbiór protokołów, które zapewniają poufność (szyfrowanie), integralność i
uwierzytelnienie dla każdego pakietu IP.
- Jest on podstawą działania większości sieci VPN (Virtual Private Network).
- Kiedy łączymy się z firmową siecią VPN, nasz komputer tworzy bezpieczny, zaszyfrowany "tunel" do
serwera VPN w firmie.
- Cały nasz ruch internetowy jest kapsułkowany w pakiety IPsec, co uniemożliwia jego podsłuchanie,
nawet w niezabezpieczonej publicznej sieci Wi-Fi.
Jeden adres, wiele lokalizacji
- Oprócz unicast, broadcast i multicast, istnieje jeszcze czwarty, zaawansowany typ adresowania,
zwany anycast.
- Polega on na tym, że ten sam adres IP jest przypisany do wielu różnych serwerów, znajdujących
się w różnych lokalizacjach geograficznych.
- Kiedy wysyłamy pakiet na adres anycast, protokoły rutingu internetowego (BGP) automatycznie
kierują go do "najbliższego" (w sensie topologii sieciowej) serwera posiadającego ten adres.
- Technologia ta jest masowo wykorzystywana do dystrybucji usług krytycznych, takich jak serwery
DNS (np. główne serwery DNS lub publiczne DNS-y jak 8.8.8.8) oraz w sieciach dostarczania treści
(CDN), aby zapewnić użytkownikom szybki dostęp do danych z najbliższego im geograficznie
serwera.
Dodawanie nagłówków na każdym poziomie
- Aby w pełni zrozumieć rolę warstwy 3, musimy przypomnieć sobie proces kapsułkowania.
- Kiedy wysyłamy dane (np. e-mail), przechodzą one w dół stosu OSI, a każda warstwa dodaje swój
własny nagłówek.
-
- Warstwa transportowa (L4) bierze dane i dodaje nagłówek TCP, tworząc segment.
- Warstwa sieciowa (L3) bierze segment TCP i dodaje nagłówek IP, tworząc pakiet.
- Warstwa łącza danych (L2) bierze pakiet IP i dodaje nagłówek 802.11 (lub Ethernet),
tworząc ramkę.
- Warstwa fizyczna (L1) zamienia ramkę na bity i wysyła je jako sygnał radiowy.
- Po stronie odbiorcy zachodzi proces odwrotny – dekapsułkacja, czyli zdejmowanie kolejnych
nagłówków.
Adresowanie miliardów urządzeń
- W kontekście Internetu Rzeczy (IoT), warstwa sieciowa i protokół IPv6 odgrywają absolutnie
kluczową rolę.
- Miliardy małych, zasilanych bateryjnie czujników i urządzeń potrzebują unikalnych adresów IP,
aby komunikować się z serwerami w chmurze.
- Pula adresów IPv4 jest tu zdecydowanie niewystarczająca.
- IPv6, dzięki swojej ogromnej przestrzeni adresowej oraz mechanizmom autokonfiguracji (SLAAC),
jest idealnym rozwiązaniem.
- Ponadto, w świecie IoT powstają specjalne, uproszczone protokoły warstwy 3 i wyższych, takie jak
6LoWPAN (IPv6 over Low-Power Wireless Personal Area Networks), które pozwalają na efektywną
transmisję pakietów IPv6 przez bardzo ograniczone sieci radiowe (np. Zigbee, Thread),
oszczędzając cenną energię i pasmo.
Oznaczanie priorytetu pakietów
- O ile WMM zarządza priorytetami w lokalnej sieci Wi-Fi (L2), o tyle w globalnym internecie za
jakość usług (QoS) również odpowiada warstwa 3.
- W nagłówku pakietu IP (zarówno IPv4, jak i IPv6) znajduje się specjalne pole (dawniej ToS, dziś
DSCP - Differentiated Services Code Point), które służy do "oznaczania" pakietów różnymi
poziomami priorytetu.
- Routery na trasie pakietu mogą odczytywać te znaczniki i traktować pakiety o wyższym priorytecie
(np. z ruchem VoIP) w sposób preferencyjny – umieszczając je w szybszych kolejkach i odrzucając
w ostatniej kolejności w przypadku przeciążenia.
- Dzięki temu możliwe jest zapewnienie jakości usług na całej trasie pakietu, a nie tylko w sieci
lokalnej.
Nowoczesne podejście do routingu
- W dużych sieciach rozległych (WAN) coraz popularniejsze staje się podejście SD-WAN
(Software-Defined Wide Area Network).
- Jest to technologia, która wirtualizuje i centralizuje zarządzanie warstwą 3.
- Zamiast konfigurować każdy router z osobna, administrator definiuje ogólne polityki (np. "ruch
VoIP ma zawsze iść najszybszym łączem", "ruch do Facebooka ma iść tańszym łączem") na centralnym
kontrolerze.
- Kontroler ten automatycznie programuje tablice rutingu na wszystkich routerach w sieci.
- System SD-WAN potrafi w czasie rzeczywistym monitorować jakość wszystkich dostępnych łącz (MPLS,
internet, LTE) i dynamicznie przekierowywać ruch, aby zawsze zapewnić najlepszą możliwą jakość
dla danej aplikacji.
Unikanie fragmentacji
- Jak wspomnieliśmy, fragmentacja pakietów IP jest niepożądana.
- Aby jej uniknąć, nowoczesne systemy operacyjne stosują mechanizm Path MTU Discovery
(PMTUD).
- Zanim host zacznie wysyłać duże ilości danych, wysyła pakiety ze specjalną flagą "Don't
Fragment" (DF).
- Jeśli na trasie pakietu znajdzie się router, który musiałby go sfragmentować (bo następne łącze
ma mniejsze MTU), nie robi tego.
- Zamiast tego odrzuca pakiet i odsyła do nadawcy komunikat ICMP "Fragmentation Needed",
informując go o maksymalnym MTU na danym odcinku.
- Nadawca, po otrzymaniu takiej informacji, zmniejsza rozmiar swoich pakietów i próbuje ponownie.
- Proces ten pozwala na dynamiczne dostosowanie rozmiaru pakietów do najwęższego "wąskiego gardła"
(bottleneck) na całej trasie.
Pośrednik w komunikacji
- Choć serwer proxy działa na wyższych warstwach (głównie aplikacji), jego funkcjonowanie
jest ściśle związane z warstwą sieciową.
- Proxy to serwer pośredniczący w komunikacji między klientem a internetem.
- Kiedy komputer jest skonfigurowany do używania proxy, nie wysyła on pakietów bezpośrednio do
docelowego serwera.
- Zamiast tego, wysyła wszystkie swoje żądania (np. żądania stron WWW) do serwera proxy.
- To serwer proxy, we własnym imieniu, nawiązuje połączenie z docelowym serwerem, pobiera dane, a
następnie przekazuje je do klienta.
- Z perspektywy serwera docelowego, to adres IP serwera proxy jest widoczny jako źródło, a nie
adres IP klienta.
- Proxy są używane do filtrowania treści, buforowania (caching) i zapewniania anonimowości.
Jeden adres IP dla wielu kontrolerów
- W dużych, scentralizowanych wdrożeniach Wi-Fi (np. na uniwersytetach), gdzie setki punktów
dostępowych są zarządzane przez centralne kontrolery WLAN, technologia anycast znajduje ciekawe
zastosowanie.
- Można skonfigurować ten sam adres IP (adres anycast) na kilku fizycznie różnych kontrolerach.
- Punkty dostępowe są konfigurowane tak, aby łączyły się z tym jednym, wirtualnym adresem.
- Dzięki protokołom rutingu dynamicznego (np. OSPF) w sieci szkieletowej, ruch od danego AP jest
automatycznie kierowany do najbliższego mu, działającego kontrolera.
- W przypadku awarii jednego z kontrolerów, routing dynamicznie przekierowuje punkty dostępowe do
kolejnego najbliższego, zapewniając wysoką dostępność i odporność na awarie.
Podłączenie do wielu dostawców internetu
- Multihoming to technika stosowana w celu zwiększenia niezawodności połączenia z
internetem.
- Polega ona na podłączeniu sieci firmowej do dwóch lub więcej różnych dostawców usług
internetowych (ISP) jednocześnie.
- Wymaga to posiadania własnej puli publicznych adresów IP oraz własnego Systemu Autonomicznego
(AS) i "rozmawiania" z oboma dostawcami za pomocą protokołu BGP.
- Router brzegowy firmy ogłasza swoją sieć obu dostawcom.
- Dzięki temu, w przypadku awarii łącza do jednego ISP, BGP automatycznie przekierowuje cały ruch
(zarówno przychodzący, jak i wychodzący) przez drugie, zapasowe łącze.
- Zapewnia to ciągłość działania usług nawet w przypadku poważnej awarii u jednego z operatorów.
Podszywanie się i podsłuchiwanie
- Warstwa sieciowa również jest celem wielu ataków.
- Jednym z klasycznych jest IP Spoofing, czyli podszywanie się pod inny adres IP.
- Atakujący wysyła pakiety ze sfałszowanym adresem źródłowym, aby ukryć swoją tożsamość lub
podszyć się pod zaufane urządzenie.
- Inny groźny atak to ARP Poisoning (ARP Spoofing).
- Atakujący w sieci lokalnej rozgłasza sfałszowane odpowiedzi ARP, wmawiając np. naszemu
laptopowi, że adresem MAC routera (bramy domyślnej) jest adres MAC komputera atakującego.
- Od tego momentu cały nasz ruch do internetu, zamiast iść bezpośrednio do routera, przechodzi
przez maszynę atakującego, co pozwala mu na podsłuchiwanie i modyfikowanie całej komunikacji
(atak Man-in-the-Middle).
Zapychanie łącza i zasobów
- Warstwa sieciowa jest często wykorzystywana do przeprowadzania ataków typu Denial of Service
(DoS) i Distributed Denial of Service (DDoS).
- Celem takich ataków jest uniemożliwienie działania usługi poprzez wyczerpanie jej zasobów –
najczęściej przepustowości łącza internetowego.
- Atakujący, często używając sieci przejętych komputerów (botnetu), generuje ogromny ruch w
kierunku serwera ofiary, wysyłając miliony pakietów IP.
- Ten zalew bezużytecznych danych zapycha łącze serwera, sprawiając, że legalni użytkownicy nie
mogą się z nim połączyć.
- Przykładem jest atak typu "ICMP Flood", polegający na zalaniu ofiary ogromną liczbą zapytań
ping.
Jak połączyć się z kimś za NAT-em?
- Mechanizm NAT, choć niezbędny, stwarza duży problem dla aplikacji peer-to-peer (P2P), takich jak
gry online, komunikatory czy telefonia internetowa.
- Jak dwa urządzenia, oba ukryte za swoimi routerami NAT, mogą nawiązać ze sobą bezpośrednie
połączenie?
- Problem ten rozwiązują techniki zwane NAT Traversal.
- Najpopularniejsze z nich to STUN (Session Traversal Utilities for NAT) i TURN
(Traversal Using Relays around NAT).
- Serwer STUN pomaga urządzeniu poznać jego własny publiczny adres IP i typ NAT-u.
- Jeśli bezpośrednie połączenie jest możliwe (np. przy użyciu techniki "UDP hole punching"), jest
ono ustanawiane.
- Jeśli nie, komunikacja jest przekazywana przez serwer pośredniczący TURN, co jest mniej wydajne,
ale zawsze działa.
Wyznaczanie trasy w zdecentralizowanej sieci
- W mobilnych sieciach Ad-Hoc (MANET), gdzie nie ma stałej infrastruktury, a urządzenia ciągle się
przemieszczają, routing staje się ogromnym wyzwaniem.
- Klasyczne protokoły, jak OSPF, nie sprawdzają się w tak dynamicznym środowisku.
- Dlatego opracowano specjalne protokoły rutingu dla sieci Ad-Hoc, takie jak AODV (Ad-hoc
On-demand Distance Vector) czy DSR (Dynamic Source Routing).
- Działają one w sposób reaktywny – trasa jest wyszukiwana dopiero wtedy, gdy jest potrzebna.
- Nadawca rozgłasza zapytanie o trasę (Route Request), które jest przekazywane przez kolejne
węzły.
- Gdy zapytanie dotrze do celu, ten odsyła odpowiedź (Route Reply) tą samą ścieżką, informując
pośrednie węzły o znalezionej trasie.
Wirtualne sieci w centrach danych
- W nowoczesnych centrach danych i chmurach publicznych (jak AWS czy Azure), warstwa sieciowa jest
w dużej mierze zwirtualizowana.
- Technologie takie jak VXLAN (Virtual Extensible LAN) pozwalają na tworzenie tysięcy
odizolowanych od siebie sieci warstwy 2 (VLAN-ów) i "przenoszenie" ich przez istniejącą
infrastrukturę sieciową warstwy 3.
- Działa to na zasadzie kapsułkowania całych ramek Ethernet w pakiety UDP/IP.
- Dzięki temu można dynamicznie tworzyć i przenosić wirtualne maszyny między fizycznymi serwerami,
nawet jeśli znajdują się one w różnych podsieciach IP, bez potrzeby zmiany ich konfiguracji
sieciowej.
- Jest to fundament tzw. sieci definiowanych programowo (SDN - Software-Defined Networking).
Globalna nawigacja dla bezprzewodowych klientów
- Warstwa sieciowa jest kluczowa dla użyteczności sieci Wi-Fi, ponieważ to ona przekształca
lokalną łączność w bramę do globalnego Internetu.
- Podczas gdy warstwy 1 i 2 budują "lokalną drogę" między klientem a punktem dostępowym, warstwa 3
dostarcza "mapę" i "system adresowy" umożliwiający podróż do dowolnego miejsca na świecie.
- Procesy takie jak dynamiczne przydzielanie adresów IP przez DHCP, tłumaczenie adresów przez NAT
oraz podejmowanie decyzji o routingu przez bramę domyślną, są fundamentalnymi operacjami warstwy
3, które zachodzą za każdym razem, gdy łączymy się z siecią Wi-Fi i otwieramy przeglądarkę
internetową.
Najważniejsze pojęcia z dzisiejszego wykładu:
- Adres IP vs MAC: Adres logiczny, zależny od sieci (IP) vs. adres fizyczny, stały (MAC).
- Protokół IP: Bezpołączeniowy i zawodny "język" Internetu, którego jednostką jest pakiet.
- Adresy prywatne i NAT: Pozwalają wielu urządzeniom w sieci LAN współdzielić jeden
publiczny adres IP.
- DHCP: Protokół dynamicznego przydzielania adresów IP i innych parametrów konfiguracyjnych
klientom w sieci.
- Rola routera: Urządzenie warstwy 3, które łączy różne sieci i wyznacza trasę dla
pakietów.
- ARP i DNS: ARP tłumaczy IP na MAC w sieci lokalnej, a DNS tłumaczy nazwy domen na adresy
IP globalnie.
- IPv6: Nowa generacja adresacji, rozwiązująca problem wyczerpania adresów IPv4.
- Dziękuję Państwu za uwagę.
- Na następnym wykładzie wejdziemy na wyższe piętra modelu OSI, zajmując się warstwą transportową,
która odpowiada za niezawodność i kontrolę przepływu danych.