1/55
Wprowadzenie do modelu TCP/IP

Prezentacja przedstawia model TCP/IP, będący praktycznym standardem komunikacji w dzisiejszym internecie, wywodzącym się z sieci ARPANET. Omówiono cztery warstwy modelu: dostępu do sieci, internetową, transportową i aplikacji, wraz z porównaniem do modelu ISO/OSI. Przedstawiono najważniejsze protokoły, adresację, routing, zarządzanie połączeniami oraz zagadnienia bezpieczeństwa i przyszłości TCP/IP.

Model TCP/IP - grafika tytułowa

Model TCP/IP (Transmission Control Protocol / Internet Protocol) jest praktycznym standardem komunikacji w dzisiejszym internecie. W przeciwieństwie do teoretycznego modelu OSI, TCP/IP powstał w wyniku rzeczywistych potrzeb sieci ARPANET i był projektowany z myślą o niezawodnej komunikacji w warunkach awarii części sieci.

Piąta część wykładu poświęcona jest szczegółowej analizie czterech warstw TCP/IP: dostępu do sieci, internetowej, transportowej i aplikacji. Omówione zostaną kluczowe protokoły, mechanizmy działania oraz narzędzia diagnostyczne używane w codziennej pracy administratora sieci.

W przeciwieństwie do modelu OSI, który ma 7 warstw, TCP/IP łączy funkcje warstw fizycznej i łącza danych w jedną warstwę dostępu do sieci, a warstwy sesji, prezentacji i aplikacji w jedną warstwę aplikacji. To uproszczenie sprawia, że model jest łatwiejszy w implementacji i bardziej praktyczny.

Znajomość modelu TCP/IP jest absolutnie niezbędna dla każdego specjalisty IT. Wszystkie współczesne systemy operacyjne, urządzenia sieciowe i aplikacje internetowe korzystają z protokołów TCP/IP, a diagnostyka problemów sieciowych opiera się na zrozumieniu działania poszczególnych warstw.

2/55
Plan prezentacji modelu TCP/IP

Plan części 5

  • Historia TCP/IP i ARPANET
  • Warstwa dostępu do sieci
  • Warstwa internetowa
  • Warstwa transportowa
  • Warstwa aplikacji
  • Porównanie ISO/OSI vs TCP/IP
  • Najważniejsze protokoły
  • Adresacja w TCP/IP
  • Routing
  • Zarządzanie połączeniami
  • Bezpieczeństwo
  • Przyszłość TCP/IP
  • Podsumowanie i pytania
Plan części 5

Plan piatej części wykładu obejmuje wszystkie kluczowe zagadnienia zwiazane z modelem TCP/IP. Rozpoczniemy od historii ARPANET i okolicznosci powstania protokołu TCP/IP, a następnie przejdziemy do szczegółówego opisu każdej z czterech warstw modelu.

W części poświęconej warstwie internetowej omowimy protokoły IP, ICMP, ARP i IGMP, że szczególnym uwzglednieniem adresacji IPv4 i IPv6 oraz mechanizmów routingu. Warstwa transportowa zostanie przeanalizowana poprzez porownanie protokołów TCP i UDP, ich nagłówków i mechanizmów działania.

Warstwa aplikacji obejmie najwazniejsze protokoły: HTTP, DNS, DHCP, FTP i SMTP. Omowimy również zagadnienia bezpieczenstwa, takie jak TLS/SSL, IPsec, a takze mechanizm NAT i problem wyczerpania adresow IPv4.

Czesc praktyczna obejmie ćwiczenia z Wireshark, traceroute i netstat, a takze pytania kontrolne sprawdzajace zrozumienie materialu. Na zakończenie przewidziano podsumowanie i ściągawkę najwazniejszych protokołów TCP/IP.

3/55
Historia ARPANET i początki internetu

Początki internetu

  • 1969: ARPANET – 4 węzły (UCLA, Stanford, UCSB, Utah)
  • 1974: Vint Cerf i Bob Kahn publikują „A Protocol for Packet Network Interconnection" – narodziny TCP/IP
  • 1983: ARPANET przechodzi z NCP na TCP/IP (Flag Day)
  • 1989: Tim Berners-Lee tworzy WWW (HTTP, HTML, URL)
  • 1990: ARPANET wyłączony – rodzi się nowoczesny internet
Mapa ARPANET 1969 vs dzisiejszy internet

ARPANET, stworzony w 1969 roku przez ARPA (Advanced Research Projects Agency) Departamentu Obrony USA, był pierwsza siecia z komutacja pakietow. Cztery początkowe węzły znajdowały się na uniwersytetach: UCLA, Stanford, UCSB i Utah, a łącza miały przepustowość zaledwie 50 kb/s.

Przełomowym momentem była publikacja Vinta Cerfa i Boba Kahna w 1974 roku, która opisała protokół TCP (Transmission Control Program). Protokół ten został później podzielony na TCP i IP, co doprowadziło do powstania stosu TCP/IP w jego obecnej formie.

Dzien 1 stycznia 1983 roku, znany jako Flag Day, był momentem, w którym ARPANET całkowicie przełączył się z protokołu NCP na TCP/IP. To wydarzenie uznaje się za narodziny nowoczesnego internetu, ponieważ wszystkie podłączone sieci musiały używać tych samych protokołów.

Tim Berners-Lee, pracując w CERN w 1989 roku, zaproponował system hipertekstowy, który stał się podstawą World Wide Web. Połączenie HTTP, HTML i URL z istniejącą infrastrukturą TCP/IP doprowadziło do eksplozji internetu w latach 90.

4/55
Twórcy protokołu TCP/IP

Ojcowie internetu

Vinton Cerf i Robert Kahn zaprojektowali protokół TCP/IP w 1974 roku.

Cerf znany jako „ojciec internetu" – przewodniczący ICANN, wiceprezes Google.

Kahn – wynalazca protokołu TCP, twórca koncepcji „open architecture".

Vint Cerf i Bob Kahn

Vinton Cerf, często nazywany ojcem internetu, otrzymał liczne nagrody za swoj wk lad w rozwoj sieci, w tym Medal Turinga w 2004 roku (wspolnie z Bobem Kahnem). Cerf pelnil funkcje przewodniczacego ICANN (Internet Corporation for Assigned Names and Numbers) i pracowal jako wiceprezes Google.

Robert Kahn jest twórca koncepcji open architecture networking, która zakladala, że sieci mogą że soba współpracować bez wzgledu na używana technologie. Ta wizja stała się fundamentem dzisiejszego internetu, gdzie różne sieci (Ethernet, Wi-Fi, 5G) mogą się że soba łączyc.

Protokół TCP/IP został zaprojektowany z myślą o odporności na uszkodzenia - w razie zniszczenia części sieci, pakiety mają być automatycznie kierowane alternatywnymi trasami. Ta właściwość, znana jako survivability, była kluczowym wymogiem Departamentu Obrony USA.

Co ciekawe, pierwotna nazwa protokołu brzmiala Transmission Control Program, a dopiero później został podzielony na TCP (warstwa transportowa) i IP (warstwa internetowa). RFC 675 z 1974 roku opisuje oryginalny protokół, a RFC 791 i 793 z 1981 roku definiują obecne wersje IP i TCP.

5/55
Cztery warstwy modelu TCP/IP

Cztery warstwy TCP/IP

  1. Dostępu do sieci (Network Access) – odpowiada warstwom 1 i 2 OSI
  2. Internetowa (Internet) – odpowiada warstwie 3 OSI (IP, routing)
  3. Transportowa (Transport) – odpowiada warstwie 4 OSI (TCP, UDP)
  4. Aplikacji (Application) – odpowiada warstwom 5–7 OSI

TCP/IP jest prostszy i bardziej praktyczny niż OSI.

Wieża 4 warstw TCP/IP

Model TCP/IP sklada się z czterech warstw, z których każda odpowiada za określony zakres funkcji komunikacyjnych. Warstwa dostępu do sieci (Network Access) łączy funkcje warstw fizycznej i łącza danych modelu OSI, obsługując przesyłanie ramek przez fizyczne medium.

Warstwa internetowa (Internet) odpowiada za adresację logiczna, routing i fragmentację pakietow. Jej głównym protokołem jest IP (Internet Protocol), który działa w trybie best effort - nie gwarantuje dostarczenia pakietu, ale star się go dostarczyć, jeśli to możliwe.

Warstwa transportowa (Transport) zapewnia komunikację między aplikacjami na różnych hostach. TCP oferuje niezawodne połączenie z potwierdzeniami i kontrola przepływu, podczas gdy UDP zapewnia szybka, ale zawodna transmisję datagramow.

Warstwa aplikacji (Application) łączy funkcje warstw sesji, prezentacji i aplikacji modelu OSI. Dzialaja w niej protokoły takie jak HTTP, DNS, DHCP, FTP, SMTP i SSH, które są bezpośrednio używane przez programy użytkownika.

6/55
Warstwa dostępu do sieci

Warstwa 1: Network Access

Łączy w sobie warstwę fizyczną i łącza danych modelu OSI.

  • Odpowiada za: wysyłanie i odbieranie ramek przez fizyczne medium
  • Nie jest ściśle zdefiniowana w RFC – zależy od implementacji
  • Protokoły: Ethernet, Wi-Fi (802.11), PPP, DSL, DOCSIS

W praktyce: to tutaj działa karta sieciowa i sterownik.

Karta sieciowa i medium transmisyjne

Warstwa dostępu do sieci jest najbardziej zróżnicowana wśród warstw TCP/IP, ponieważ jej implementacja zależy od konkretnej technologii sieciowej. W sieciach Ethernet odpowiedzialność za te warstwę spoczywa na karcie sieciowej i jej sterowniku, które obsługują formatowanie ramek i adresację MAC.

W standardzie IEEE 802.3 (Ethernet) warstwa dostępu obejmuje podwarstwę MAC (Media Access Control) odpowiedzialna za adresację fizyczna i mechanizm CSMA/CD, oraz podwarstwę LLC (Logical Link Control) odpowiedzialna za multipleksowanie protokołów warstwy wyższej.

W sieciach bezprzewodowych Wi-Fi (IEEE 802.11) warstwa dostępu do sieci obejmuje dodatkowe mechanizmy, takie jak CSMA/CA (Collision Avoidance), autoryzacja WPA3, zarządzanie oszczędzaniem energii i kontrola dostępu do medium oparta na potwierdzeniach.

Protokół PPP (Point-to-Point Protocol) jest używany w łączach szeregowych i DSL, oferując uwierzytelnianie (PAP, CHAP), kompresję nagłówków i wykrywanie błędów. DOCSIS (Data Over Cable Service Interface Specification) jest standardem dla sieci kablowych.

7/55
Warstwa internetowa i protokół IP

Warstwa 2: Internet (IP)

Serce TCP/IP – protokół IP (Internet Protocol).

  • Odpowiada za adresację i routing pakietów
  • Działa w trybie „best effort" – nie gwarantuje dostarczenia
  • IPv4: 32-bitowe adresy (ok. 4,3 miliarda)
  • IPv6: 128-bitowe adresy (340 undecylionów)
Pakiety IP wędrujące przez routery

Protokół IP (Internet Protocol) jest najwazniejszym protokołem warstwy internetowej i całego stosu TCP/IP. Jego głównym zadaniem jest adresacja urządzeń w sieci oraz routowanie pakietow między różnymi sieciami. IP działa w trybie bezpolaczeniowym i nie gwarantuje dostarczenia pakietu.

Adresacja IP ma kluczowe znaczenie dla działania internetu. IPv4 używa 32-bitowych adresow, co daje teoretycznie okolo 4,3 miliarda unikalnych adresow. W praktyce, że wzgledu na hierarchiczna strukturę i rezerwy, dostępnych jest znacznie mniej, co doprowadziło do wyczerpania puli adresow w 2011 roku.

IPv6, opracowany jako rozwiazanie problemu wyczerpania adresow, używa 128-bitowych adresow, co daje astronomiczna liczbę 340 undecylionow adresow. IPv6 wprowadza również inne usprawnienia: wbudowane IPsec, brak NAT, uproszczony nagłówek, NDP zamiast ARP i autokonfigurację.

Routing IP polega na przekazywaniu pakietow między sieciami przez routery. Kazdy router przechowuje tablice routingu, która zawiera informacje o dostępnych sieciach i interfejsach, przez które można do nich dotrzec. Decyzje routingu są podejmowane na podstawie prefiksow sieci i metryk.

8/55
Protokoły warstwy internetowej

Rodzina IP

  • IP (Internet Protocol): adresacja, fragmentacja, routing
  • ICMP (Internet Control Message Protocol): błędy, diagnostyka (ping, traceroute)
  • ARP (Address Resolution Protocol): mapowanie IP → MAC
  • IGMP (Internet Group Management Protocol): zarządzanie grupami multicast
  • IPsec: bezpieczeństwo na poziomie IP (AH, ESP)
Protokoły na tle warstwy internetowej

ICMP (Internet Control Message Protocol) jest protokołem warstwy internetowej uzywanym do diagnostyki sieci i raportowania błędów. Komunikaty ICMP są przenoszone bezpośrednio w pakietach IP (Protocol=1) i nie korzystają z TCP ani UDP, co oznacza, że nie mają portow.

Najwazniejsze typy komunikatow ICMP to: Echo Request i Echo Reply (używane przez ping), Destination Unreachable (siec, host lub port nieosiagalny), Time Exceeded (TTL=0 - używane przez traceroute), Redirect (lepsza trasa) i Parameter Problem (błędny nagłówek).

ARP (Address Resolution Protocol) działa pomiędzy warstwa internetowa a warstwa dostępu do sieci. Jego zadaniem jest mapowanie adresow IP na adresy MAC w obrebie jednej sieci LAN. ARP działa poprzez rozglaszanie zadania broadcastem: Kto ma adres IP X.X.X.X?.

IGMP (Internet Group Management Protocol) jest używany do zarządzania grupami multicast. Hosty używają IGMP do informowania routerow o checi odbierania ruchu multicast dla konkretnej grupy. IPsec to zestaw protokołów (AH, ESP, IKE) zapewniajacych bezpieczenstwo na poziomie IP.

9/55
Diagnostyka sieci za pomocą ICMP

ICMP w akcji

# ping – wysyła ICMP Echo Request i czeka na Echo Reply
ping 8.8.8.8

# traceroute – wysyła pakiety z rosnącym TTL
traceroute google.com

ICMP przekazuje też komunikaty błędów: Destination Unreachable, Time Exceeded, Redirect.

Zrzut ekranu z ping

Narzedzie ping (Packet INternet Groper) jest jednym z najstarszych i najbardziej podstawowych narzędzi diagnostycznych w sieciach TCP/IP. Wysyla pakiety ICMP Echo Request do docelowego hosta i mierzy czas potrzebny na otrzymanie odpowiedzi Echo Reply, co pozwala okreslic opóźnienie i dostępność hosta.

W systemie Windows ping wysyła domyślnie 4 pakiety, w Linux ping działa w nieskonczonosc az do przerwania Ctrl+C. Flagi ping: -c (liczba pakietow), -i (odstep między pakietami), -s (rozmiar pakietu), -t (TTL), -f (fragmentacja). Ping można używać do testowania MTU ścieżki.

traceroute (w systemach Unix/Linux) lub tracert (w Windows) to narzędzie sledzace trase pakietu przez siec. Wysyla serie pakietow z rosnacym TTL (1, 2, 3,...) i analizuje komunikaty ICMP Time Exceeded zwracane przez kolejne routery na trasie.

W systemie Linux narzędzie mtr (My TraceRoute) łączy funkcjonalnosc ping i traceroute, wykonując ciagle pomiary opóźnienia i utraty pakietow na każdym hopie trasy. Wyniki prezentowane są w formie dynamicznie aktualizowanej tabeli, co jest szczególnie przydatne w diagnostyce ciaglej.

10/55
Warstwa transportowa TCP i UDP

Warstwa 3: Transport

Dwa główne protokoły:

  • TCP: niezawodny, połączeniowy, z potwierdzeniami
  • UDP: szybki, bezpołączeniowy, bez gwarancji

Oba dzielą dane na mniejsze jednostki (segmenty/datagramy) i identyfikują aplikacje przez porty.

TCP vs UDP

Warstwa transportowa w modelu TCP/IP odpowiada za komunikację między aplikacjami na hostach źródłowym i docelowym, niezaleznie od liczby routerow posrednich. Dwa główne protokoły tej warstwy to TCP i UDP, które oferują różne poziomy niezawodności i wydajności.

TCP (Transmission Control Protocol) jest protokołem zorientowanym na połączenie, co oznacza, że przed rozpoczeciem transmisji danych musi zostac nawiązane połączenie między nadawca a odbiorca. TCP zapewnia niezawodne dostarczenie danych, zachowanie kolejnoci i kontrolę przepływu.

UDP (User Datagram Protocol) jest protokołem bezpolaczeniowym, który nie gwarantuje dostarczenia datagramow ani zachowania ich kolejności. W zamian oferuje minimalny narzut (8 bajtow nagłówka) i małe opóźnienie, co jest kluczowe dla aplikacji czasu rzeczywistego.

Oba protokoły identyfikują aplikacje za pomoca 16-bitowych portow (0-65535). Porty 0-1023 są zarezerwowane dla znanych uslug (HTTP 80, HTTPS 443, DNS 53), porty 1024-49151 są zarejestrowane, a porty 49152-65535 są dynamiczne.

11/55
Budowa nagłówka TCP

TCP Header

| Source Port (16b) | Destination Port (16b) |
| Sequence Number (32b) |
| Acknowledgment Number (32b) |
| Data Offset (4b) | Reserved (6b) | Flags (6b) | Window (16b) |
| Checksum (16b) | Urgent Pointer (16b) |

Flagi TCP: SYN, ACK, FIN, RST, PSH, URG.

Nagłówek TCP z kolorami

Naglowek TCP ma minimalna dlugosc 20 bajtow (bez opcji) i zawiera kilka kluczowych pol. Porty źródłowy i docelowy (po 16 bitow) identyfikują aplikacje na hostach. Sequence Number i Acknowledgment Number (po 32 bity) sluza do sekwencjonowania segmentow i potwierdzania odbioru.

Pole Data Offset (4 bity) określa dlugosc nagłówka w 32-bitowych slowach (minimum 5, maksimum 15). Pole Reserved (6 bitow) jest zarezerwowane do przyszlego uzycia. Flagi TCP (6 bitow) to: URG (pilne dane), ACK (potwierdzenie), PSH (push), RST (reset), SYN (synchronizacja), FIN (koniec).

Pole Window (16 bitow) określa rozmiar okna odbioru (rwnd), czyli maksymalna liczbę bajtow, jaka odbiorca może przyjac bez potwierdzenia. Pole Checksum (16 bitow) sluzy do wykrywania błędów w naglowku i danych. Urgent Pointer (16 bitow) wskazuje na pilne dane, jeśli flaga URG jest ustawiona.

Opcje TCP są umieszczane na końcu nagłówka i mogą wydluzyc go do maksymalnie 60 bajtow. Najwazniejsze opcje to: MSS (Maximum Segment Size) - maksymalny rozmiar segmentu, Window Scale - skalowanie okna (RFC 1323), SACK (Selective Acknowledgment) - selektywne potwierdzenia i Timestamps.

12/55
Trójfazowe uzgadnianie połączenia TCP

Three-Way Handshake

  1. SYN: klient → serwer: chcemy nawiązać połączenie
  2. SYN-ACK: serwer → klient: potwierdzam, gotowy
  3. ACK: klient → serwer: potwierdzam, połączenie otwarte

Po zakończeniu: FIN → ACK → FIN → ACK (lub RST).

Schemat trójfazowego uzgadniania

Trójfazowe uzgadnianie TCP (Three-Way Handshake) jest mechanizmem nawiązywania połączenia TCP. Proces rozpoczyna się od wyslania przez klienta pakietu z flaga SYN i losowym numerem sekwencyjnym (SEQ=x). Serwer odpowiada pakietem SYN-ACK z SEQ=y i ACK=x+1.

Klient kończy uzgadnianie, wysyłając pakiet ACK z SEQ=x+1 i ACK=y+1. Po tym momencie połączenie przechodzi w stan ESTABLISHED i może rozpoczac się właściwa transmisja danych. Mechanizm ten zapobiega nawiazywaniu połączeń z nieistniejacymi lub niegotowymi hostami.

Zakonczenie połączenia TCP wymaga czterech krokow (Four-Way Handshake): klient wysyła FIN, serwer odpowiada ACK, następnie serwer wysyła FIN, a klient odpowiada ACK. Po otrzymaniu ostatniego ACK serwer zamyka połączenie, a klient przechodzi w stan TIME-WAIT na 2*MSL (Maximum Segment Lifetime).

Flaga RST (Reset) sluzy do natychmiastowego przerwania połączenia, bez koniecznosci przechodzenia przez procedure FIN. RST jest używany, gdy host otrzymuje pakiet dla nieistniejacego połączenia lub w przypadku błędów protokołu. W Wireshark RST jest sygnalizowany jako [TCP Reset].

13/55
Analiza TCP w programie Wireshark

Widok TCP w analizatorze

Wireshark pokazuje:

  • SYN – żądanie połączenia
  • SYN, ACK – odpowiedź
  • ACK – potwierdzenie
  • [TCP Retransmission] – retransmisja (utrata pakietu)
  • [TCP Dup ACK] – duplikat potwierdzenia (szybka retransmisja)
Zrzut ekranu Wireshark z flagami TCP

Analiza TCP w Wireshark pozwala na szczegółowe sledzenie przebiegu połączenia TCP. Po przechwyceniu sesji HTTP widac pakiety SYN, SYN-ACK, ACK (nawiazywanie), następnie wymiane danych z flagami PSH-ACK, a na końcu FIN-ACK (zamykanie).

Wireshark oznacz etykieta [TCP Retransmission] pakiety, które zostały wysłane ponownie, ponieważ nadawca nie otrzymał potwierdzenia w ciagu RTO (Retransmission Timeout). Retransmisje są najlepszym wskaznikiem problemów z siecia - utraty pakietow, przeciążenia lub błędów w laczu.

[TCP Dup ACK] - duplikat potwierdzenia - to mechanizm szybkiej retransmisji (Fast Retransmit). Gdy odbiorca otrzyma segment spoza kolejności, wysyła potwierdzenie z numerem ACK oczekiwanego segmentu. Po trzech duplikatach ACK nadawca natychmiast retransmituje utracony segment, bez czekania na timeout.

Wireshark umozliwia również analize opcji TCP negocjowanych podczas Three-Way Handshake: MSS (domyślnie 1460 bajtow dla Ethernet), Window Scale (wspolczynnik skalowania okna), SACK (selektywne potwierdzenia) i Timestamps (dokladny pomiar RTT).

14/55
Okno TCP i kontrola przepływu

TCP Window – zarządzanie przeciążeniem

TCP używa mechanizmu okna (window) do kontroli przepływu:

  • Receiver Window (rwnd): ile danych odbiorca może przyjąć
  • Congestion Window (cwnd): ile danych nadawca może wysłać
  • Slow Start: cwnd rośnie wykładniczo, aż do progu
  • Congestion Avoidance: po utracie – cwnd spada o połowę
Wykres okna TCP w czasie

Mechanizm okna TCP jest kluczowy dla efektywnego wykorzystania przepustowości łącza. Receiver Window (rwnd) jest oglaszany przez odbiorce i informuje nadawce, ile danych może przyjac bufor odbiorczy. Congestion Window (cwnd) jest zarządzany przez nadawce i ogranicza ilość danych wyslanych w celu unikniecia przeciążenia sieci.

Slow Start to faza, w której cwnd rozpoczyna od 1 segmentu (lub 10 segmentow w nowszych implementacjach) i podwaja się co RTT. Gdy cwnd osiagnie próg ssthresh (slow start threshold), TCP przechodzi w faze Congestion Avoidance, gdzie cwnd rosnie liniowo o 1 segment na RTT.

Po wykryciu utraty pakietu (potrojny Dup ACK lub timeout) algorytm TCP zaklada przeciążenie sieci i gwal townie zmniejsza cwnd. W trybie Fast Recovery cwnd jest ustawiany na polowe wartosci sprzed utraty, a ssthresh na ta wartosc, po czym TCP kontynuuje w trybie Congestion Avoidance.

Wspolczesne implementacje TCP (Cubic, BBR, NewReno) stosuja zaawansowane algorytmy kontroli przeciążeń, które są dostosowane do specyfiki nowoczesnych łączy. Na przykład TCP BBR (Bottleneck Bandwidth and Round-trip) mierzy rzeczywista przepustowość i RTT, aby optymalnie zarzadzac wysylaniem.

15/55
Budowa nagłówka UDP

UDP Header

| Source Port (16b) | Destination Port (16b) |
| Length (16b) | Checksum (16b) |

UDP ma tylko 8 bajtów nagłówka (TCP ma 20).

Brak: potwierdzeń, okna, retransmisji, kontroli przepływu.

Zastosowania: DNS, DHCP, VoIP, streaming, gry online.

Nagłówek UDP

Naglowek UDP ma stała dlugosc 8 bajtow i zawiera tylko cztery pola: Source Port (16b), Destination Port (16b), Length (16b) - dlugosc datagramu łącznie z naglowkiem, oraz Checksum (16b) - opcjonalna sume kontrolna (w IPv4 może być 0, w IPv6 jest wymagana).

Brak mechanizmów niezawodności w UDP sprawia, że protokół ten jest idealny dla aplikacji, które mogą tolerowac sporadyczna utrate pakietow, ale wymagają niskiego opóźnienia. DNS używa UDP (oraz TCP dla transferow stref), ponieważ zapytania są krótkie i szybkie.

DHCP wykorzystuje UDP do komunikacji z serwerem DHCP (port 67/68). W przypadku braku odpowiedzi, klient ponawia probe po określonym czasie, co jest przykładem niezawodności zaimplementowanej na poziomie aplikacji, a nie protokołu transportowego.

VoIP i streaming wideo używają UDP, ponieważ opóźnienie wynikające z retransmisji TCP byloby bardziej szkodliwe dla jakosci rozmowy niz sporadyczna utrata pakietow. Aplikacje takie jak Zoom, Skype i Netflix używają UDP z dodatkowymi mechanizmami korekcji błędów (FEC) na poziomie aplikacji.

16/55
Warstwa aplikacji i jej protokoły

Warstwa 4: Aplikacji

W TCP/IP warstwa aplikacji łączy funkcje warstw 5–7 OSI.

  • HTTP/HTTPS: przeglądanie stron
  • DNS: tłumaczenie nazw na IP
  • DHCP: automatyczna konfiguracja IP
  • FTP/SFTP: transfer plików
  • SMTP/POP3/IMAP: poczta
  • SSH: zdalny dostęp
Ikony protokołów warstwy aplikacji

Warstwa aplikacji w modelu TCP/IP łączy funkcje trzech warstw modelu OSI: sesji, prezentacji i aplikacji. Oznacza to, że protokoły warstwy aplikacji są odpowiedzialne nie tylko za interfejs dla programow, ale takze za zarządzanie sesjami, kodowanie i szyfrowanie danych.

HTTP (Hypertext Transfer Protocol) jest najpopularniejszym protokołem warstwy aplikacji. Dziala w modelu zadanie-odpowiedz (request-response) na porcie 80. HTTPS (HTTP Secure) dodaje warstwę szyfrowania TLS na porcie 443, zapewniając poufnosc i integralnosc transmisji.

DNS (Domain Name System) jest krytycznym protokołem, bez którego internet nie moglby funkcjonowac w obecnej formie. Tlumaczy łatwe do zapamietania nazwy domen (jak google.com) na adresy IP, które są niezbędne do routowania pakietow przez siec.

DHCP (Dynamic Host Configuration Protocol) automatyzuje konfigurację sieciowa urządzeń. Oprocz adresu IP przydziela maske podsieci, brame domyslna i adresy serwerow DNS. Bez DHCP każde urządzenie musialoby być recznie konfigurowane, co w dużych sieciach byloby niemozliwe.

17/55
System nazw domenowych DNS

System Nazw Domenowych

DNS tłumaczy nazwy (google.pl) na adresy IP (142.250.185.78).

  1. Przeglądarka → lokalny resolver DNS
  2. Resolver → Root DNS (13 serwerów)
  3. Root → TLD (.pl, .com, .org)
  4. TLD → autorytatywny DNS (google.pl)
  5. Odpowiedź: IP serwera
Hierarchia DNS

System DNS (Domain Name System) ma strukturę hierarchiczna, która zapewnia skalowalnosc i odporność na awarie. U samej gory znajduje się 13 głównych serwerow korzenia (root servers), zarzadzanych przez organizacje takie jak ICANN, Verisign, NASA i University of Maryland.

Domeny najwyzszego poziomu (TLD) dziela się na generyczne (gTLD): .com, .org, .net, .edu oraz krajowe (ccTLD): .pl (Polska), .de (Niemcy), .uk (Wielka Brytania). Kazda TLD jest zarządzana przez inny rejestr, np. NASK zarządza domena .pl.

Zapytanie DNS przechodzi przez kilka etapow: resolver lokalny (np. w routerze lub systemie operacyjnym) zadaje pytanie serwerowi root, który kieruje do wlasciwego serwera TLD, a ten do autorytatywnego serwera DNS dla danej domeny. Wynik jest buforowany (cached) dla przyspieszenia kolejnych zapytan.

Typy rekordow DNS: A (adres IPv4), AAAA (adres IPv6), CNAME (alias domeny), MX (serwer poczty), NS (serwer nazw), TXT (dowolny tekst, używany m.in. do weryfikacji domen i SPF). Narzedzie dig (Linux) lub nslookup (Windows) sluzy do recznego wykonywania zapytan DNS.

18/55
Automatyczna konfiguracja przez DHCP

Dynamic Host Configuration Protocol

DHCP automatycznie przydziela adresy IP urządzeniom.

  1. DISCOVER: klient szuka serwera DHCP (broadcast)
  2. OFFER: serwer oferuje adres IP
  3. REQUEST: klient prosi o ten adres
  4. ACK: serwer potwierdza
DORA - Discover, Offer, Request, ACK

Protokół DHCP działa w modelu klient-serwer, gdzie serwer DHCP przydziela adresy IP z określonej puli na określony czas (lease time). Standardowy czas dzierzawy wynosi 24 godziny, ale w sieciach korporacyjnych może być krotszy (np. 8 godzin) dla lepszego zarządzania adresami.

Proces DORA (Discover, Offer, Request, ACK) rozpoczyna się od wyslania przez klienta komunikatu DHCPDISCOVER na adres broadcast 255.255.255.255 z źródłowym adresem 0.0.0.0. Serwer DHCP odpowiada DHCPOFFER z proponowanym adresem IP, maska, brama i DNS.

Klient wybiera jedna z ofert (jeśli jest wiele serwerow DHCP) i wysyła DHCPREQUEST z wybranym adresem. Serwer potwierdza DHCPACK, a klient konfiguruje interfejs sieciowy. Jeśli adres jest juz zajety, serwer wysyła DHCPNAK i proces rozpoczyna się od nowa.

Po uplynie polowy czasu dzierzawy (T1) klient probuje przedłużyć dzierzave, wysyłając DHCPREQUEST bezpośrednio do serwera. Po uplynie 87,5% czasu (T2) klient probuje przedłużyć dzierzave przez broadcast. Jeśli dzierzawa wygasnie bez przedluzenia, adres wraca do puli.

19/55
Routing i tablice routingu

Jak pakiety wędrują do celu?

Routing to proces wyboru trasy dla pakietu przez sieć.

  • Router: urządzenie warstwy 3, które przekazuje pakiety między sieciami
  • Tablica routingu: zestaw reguł: „dla sieci X → wyślij przez interfejs Y do routera Z"
  • Routing statyczny: administrator ręcznie wpisuje trasy
  • Routing dynamiczny: protokoły OSPF, BGP, EIGRP automatycznie uczą się tras
Router z tablicą routingu

Routing to proces przekazywania pakietow między sieciami przez routery. Kazdy router przechowuje tablice routingu, która zawiera wpisy okreslajace, przez który interfejs i do którego routera posredniego (next-hop) należy przekazać pakiet dla danej sieci docelowej.

Routing statyczny polega na recznym dodawaniu wpisow do tablicy routingu przez administratora. Jest bezpieczny i przewidywalny, ale nie skaluje się do dużych sieci - każda zmiana topologii wymaga recznej aktualizacji tras na wszystkich routerach.

Routing dynamiczny używa protokołów routingu, które automatycznie wykrywaja topologie sieci i aktualizuja tablice routingu. OSPF (Open Shortest Path First) jest protokołem typu link-state, uzywanym w sieciach ISP i korporacyjnych, który wybiera trase na podstawie kosztu.

BGP (Border Gateway Protocol) jest protokołem typu path-vector, uzywanym do routingu między systemami autonomicznymi (AS) w internecie. BGP podejmuje decyzje na podstawie polityk (policy-based routing), a nie tylko metryk, co pozwala ISP na kontrolę ruchu między sieciami.

20/55
Śledzenie trasy pakietu

Śledzenie trasy pakietu

tracert google.com # Windows
traceroute google.com # Linux/macOS

Wynik: lista routerów z opóźnieniami – widać, którędy pakiet wędruje.

Zrzut ekranu z traceroute

Narzedzie traceroute (tracert w Windows) jest niezastapione w diagnostyce problemów z routowaniem. Wysyla ono serie pakietow (zwykle UDP lub ICMP) z rosnacym polem TTL: pierwszy pakiet ma TTL=1, drugi TTL=2, i tak dalej. Kazdy router, który zmniejszy TTL do 0, odrzuca pakiet i wysyła ICMP Time Exceeded.

Wynik traceroute pokazuje liste wszystkich routerow na trasie od źródła do celu wraz z opoznieniami (RTT) mierzonymi dla każdego hopa. Wyswietlenie gwiazdek (* * *) na hopie może oznaczac, że router nie odpowiada na ICMP (firewall blokuje), ale pakiet mimo to przechodzi dalej.

Roznica w liczbie hopow między polaczeniem lokalnym (np. do serwera uczelnianego - zwykle 1-3 hopy) a odleglym (np. do serwera w USA - 10-20 hopow) ilustruje, jak działa routing w internecie. Im wiecej hopow, tym większe opóźnienie całkowite (suma opóźnień na każdym hopie).

W systemie Linux narzędzie mtr łączy traceroute z ciaglym pomiarem ping, pokazujac statystyki opóźnienia i utraty pakietow dla każdego hopa w czasie rzeczywistym. Jest to szczególnie przydatne przy diagnostyce problemów z utrata pakietow na konkretnym laczu.

21/55
Przejście z IPv4 na IPv6

Dlaczego IPv6?

IPv4 ma 32 bity = ~4,3 miliarda adresów. W 2011 roku ICANN rozdała ostatnie bloki.

IPv6: 128 bitów = 3,4×1038 adresów – wystarczy dla każdego ziarnka piasku na Ziemi.

Przejście: dual stack (oba stosy jednocześnie), tunnelowanie (6to4, Teredo), translacja (NAT64).

IPv4 vs IPv6

Wyczerpanie puli adresow IPv4 było przewidywane juz w latach 90. XX wieku. 3 lutego 2011 roku ICANN (Internet Corporation for Assigned Names and Numbers) rozdzielila ostatnie duże bloki adresow IPv4 między regionalne rejestry internetowe (RIR). Od tego momentu nowi operatorzy muszą korzystać z IPv6 lub NAT.

Dual Stack to najprostsza metoda przejścia na IPv6 - urządzenie ma jednocześnie skonfigurowany stos IPv4 i IPv6. Aplikacja wybiera protokół wedlug preferencji (zwykle IPv6 jest preferowany). DNS zwraca rekord A (IPv4) i AAAA (IPv6), a klient wybiera adres IPv6 jeśli jest dostępny.

Tunnelowanie (6to4, Teredo, ISATAP) pozwala na przesyłanie pakietow IPv6 przez istniejąca infrastrukturę IPv4. Pakiety IPv6 są enkapsulowane w pakiety IPv4, co umozliwia komunikację IPv6 między hostami, które mają tylko łączność IPv4. Mechanizm ten jest jednak obarczony wiekszym opóźnieniem.

NAT64 jest mechanizmem translacji, który umozliwia hostom IPv6 komunikację z serwerami IPv4. Serwer NAT64 tlumaczy adresy IPv6 na IPv4 i odwrotnie, pozwalajac na stopniowe przejście na IPv6 bez utraty dostępu do zasobow IPv4.

22/55
Porównanie modeli OSI i TCP/IP

Dwie perspektywy

CechaOSITCP/IP
Liczba warstw74
Rok opracowania19841974 (RFC 675)
PodejścieTeoretycznePraktyczne
PopularnośćEdukacjaInternet
ProtokołyZdefiniowane, ale mało używaneIP, TCP, UDP, HTTP – powszechne
OSI vs TCP/IP

Porownanie modeli OSI i TCP/IP pokazuje fundamentalne różnice w podejsciu do abstrakcji sieciowej. OSI (1984) był projektowany jako uniwersalny standard miedzynarodowy, podczas gdy TCP/IP (1974) powstał z praktycznej potrzeby l aczenia różnych sieci w ramach ARPANET.

Glowna różnica liczby warstw wynika z faktu, że OSI szczegółowo definiuje funkcje każdej warstwy, podczas gdy TCP/IP łączy funkcje, które w praktyce są trudne do rozdzielenia. Warstwy 5-7 OSI (sesji, prezentacji, aplikacji) są w TCP/IP pojedyncza warstwa aplikacji.

TCP/IP jest modelem w pełni funkcjonalnym - definiuje konkretne protokoły (IP, TCP, UDP, HTTP), które są powszechnie zaimplementowane i używane. OSI definiuje jedynie abstrakcyjne interfejsy między warstwami, pozostawiajac implementacje protokołów producentom.

Mimo że OSI przegral rywalizacje rynkowa, jego terminologia jest powszechnie używana do opisu TCP/IP. Administratorzy i inżynierówie sieciowi często mówią o warstwie 2, 3, 4 czy 7, odnoszac się do numeracji OSI, nawet gdy mówią o protokołach TCP/IP.

23/55
Stany połączeń TCP

Stany połączeń TCP

TCP przechodzi przez stany: LISTEN, SYN-SENT, SYN-RECEIVED, ESTABLISHED, FIN-WAIT-1/2, CLOSE-WAIT, CLOSING, TIME-WAIT, CLOSED.

netstat -an # Zobacz stan połączeń

Widząc TIME-WAIT – połączenie zamknięte, ale czeka na ewentualne spóźnione pakiety.

Diagram stanów TCP

Stany połączeń TCP są kluczowe dla zrozumienia i diagnostyki komunikacji sieciowej. Narzedzie netstat (Windows) lub ss (Linux) pozwala na podglad aktualnych stanow połączeń TCP na danym hoscie, co jest niezbędne przy rozwiazywaniu problemów z aplikacjami sieciowymi.

Stan LISTEN oznacza, że serwer nasluchuje na określonym porcie na połączenia przychodzace. SYN-SENT i SYN-RECEIVED to stany przejsciowe podczas Three-Way Handshake. ESTABLISHED to stan aktywnego połączenia, w którym może odbywac się wymiana danych.

Stany FIN-WAIT-1, FIN-WAIT-2, CLOSE-WAIT, CLOSING i TIME-WAIT są zwiazane z zamykaniem połączenia. TIME-WAIT trwa 2*MSL (Maximum Segment Lifetime, domyślnie 60 sekund) i zapobiega problemom że spoznionymi pakietami z zamknietego juz połączenia.

Duza liczba połączeń w stanie TIME-WAIT lub CLOSE-WAIT może wskazywać na problem z aplikacja, która nie zamyka poprawnie połączeń. Stan CLOSE-WAIT oznacza, że strona lokalna otrzymała FIN, ale aplikacja jeszcze nie zamknela gniazda - czesty problem przy bledach w kodzie.

24/55
Zagrożenia i zabezpieczenia TCP/IP

Zagrożenia i zabezpieczenia

  • IP spoofing: podszywanie się pod adres IP
  • TCP hijacking: przejęcie sesji TCP
  • SYN flood: atak DoS na zasoby serwera
  • DNS spoofing: fałszywe odpowiedzi DNS

Zabezpieczenia: IPsec, TLS/SSL, DNSSEC, firewall.

Ikony zagrożeń sieciowych

IP spoofing to technika ataku polegajaca na podszywaniu się pod inny adres IP. Atakujacy wysyła pakiety z falszywym adresem źródłowym IP, aby ukryc swoja tozsamosci lub oszukac mechanizmy uwierzytelniania. Zabezpieczeniem przed IP spoofingiem są listy ACL na routerach i firewallach.

TCP hijacking (przeciecie sesji TCP) to zaawansowany atak, w którym atakujacy wstrzykuje sfa lszowane pakiety TCP do istniejacego połączenia, przejmujac kontrolę nad sesja. Zabezpieczeniem jest stosowanie szyfrowania TLS/SSL i losowych Initial Sequence Numbers (RFC 1948).

SYN flood to atak DoS (Denial of Service) polegajacy na wysylaniu ogromnej liczby pakietow SYN do serwera, który odpowiada SYN-ACK i czeka na ACK. Nieotrzymujac ACK, serwer utrzymuje polotwarte połączenia (half-open), wyczerpujac zasoby. Zabezpieczeniem jest SYN cookies.

DNSSEC (DNS Security Extensions) to zestaw rozszerzen protokołu DNS zapewniajacych autentycznosc i integralnosc odpowiedzi DNS. DNSSEC używa podpisu cyfrowego do weryfikacji, czy odpowiedz DNS pochodzi z autorytatywnego źródła i nie została zmodyfikowana po drodze.

25/55
Szyfrowanie TLS w warstwie aplikacji

Szyfrowanie na poziomie aplikacji

TLS (Transport Layer Security) zapewnia szyfrowanie między klientem a serwerem.

  • HTTPS = HTTP + TLS (port 443)
  • TLS handshake: wymiana certyfikatów, uzgodnienie kluczy
  • Wireshark: ruch TLS jest zaszyfrowany – widać tylko „Application Data"
TLS handshake

TLS (Transport Layer Security) jest protokołem kryptograficznym zapewniajacym bezpieczna komunikację w sieci. TLS działa pomiędzy warstwa transportowa a warstwa aplikacji - szyfruje dane przed przekazaniem do TCP i deszyfruje po odebraniu z TCP.

Proces TLS Handshake rozpoczyna się od ClientHello (klient przesyła liste obsługiwanych algorytmow szyfrowania), na co serwer odpowiada ServerHello (wybór algorytmu), następnie przesyła certyfikat X.509 i ewentualnie zada certyfikatu klienta (mutual TLS).

Po wymianie certyfikatow klient i serwer uzgadniaja klucz sesji za pomoca algorytmu Diffie-Hellman (lub RSA). Klucz sesji jest używany do szyfrowania symetrycznego dalszej komunikacji (np. AES), co zapewnia poufnosc i integralnosc danych.

Wireshark może odszyfrowac ruch TLS, jeśli dostarczymy mu klucz prywatny serwera lub klucz sesji (poprzez zmienna SSLKEYLOGFILE w przegladarce). Bez kluczy Wireshark pokazuje jedynie zaszyfrowane Application Data, bez możliwości odczytania tresci.

26/55
NAT i oszczędzanie adresów IPv4

Oszczędzanie adresów IPv4

NAT pozwala wielu urządzeniom w sieci prywatnej (192.168.x.x) korzystać z jednego publicznego IP.

  • SNAT (Source NAT): zmiana źródłowego adresu IP
  • DNAT (Destination NAT): przekierowanie portów do serwera wewnętrznego
  • PAT (Port Address Translation): wiele urządzeń na jednym IP przez różne porty
NAT - wiele komputerów na jednym publicznym IP

NAT (Network Address Translation) to mechanizm, który pozwala wielu urzadzeniom w sieci prywatnej (adresy RFC 1918: 10.x.x.x, 172.16-31.x.x, 192.168.x.x) wspoldzielic jeden publiczny adres IP. Bez NAT wyczerpanie adresow IPv4 nastapiloby znacznie wczesniej.

SNAT (Source NAT) zmienia źródłowy adres IP w pakietach wychodzacych z sieci prywatnej na publiczny adres routera. Router zapamietuje tez port źródłowy, aby móc przekierowac odpowiedz z powrotem do odpowiedniego urządzenia w sieci wewnętrznej (PAT).

DNAT (Destination NAT), zwany również port forwarding, przekierowuje ruch przychodzacy na określony port publicznego IP do określonego urządzenia w sieci wewnętrznej. Jest to niezbędne do udostepniania uslug (np. serwer WWW, FTP) z sieci LAN do internetu.

PAT (Port Address Translation) to odmiana NAT, w której wiele urządzeń wewnętrznych używa tego samego publicznego IP, ale z różnymi portami zrodlowymi. Router przechowuje tablice translacji (NAT table), która mapuje wewnętrzne IP:port na zewnętrzny IP:port.

27/55
Podsumowanie wiedzy o TCP/IP

Co już wiemy?

  • TCP/IP to praktyczny model komunikacji w internecie
  • Ma 4 warstwy: dostępu, internetową, transportową, aplikacji
  • IP odpowiada za adresację i routing
  • TCP za niezawodność, UDP za szybkość
  • Warstwa aplikacji łączy protokoły takie jak HTTP, DNS, DHCP
Mapa myśli TCP/IP

Model TCP/IP jest praktycznym fundamentem działania wspolczesnego internetu. Jego cztery warstwy - dostępu do sieci, internetowa, transportowa i aplikacji - zapewniają kompletny stos protokołów, od przesyłania bitow po interfejs dla aplikacji użytkownika.

Protokół IP, jako serce warstwy internetowej, odpowiada za adresację urządzeń i routowanie pakietow. IPv4, mimo wyczerpania puli adresow, wciaz dominuje, ale IPv6 stopniowo zdobywa udzial dzięki wsparciu najwiekszych operatorow i producentow sprzętu.

TCP i UDP to dwa odmienne podejscia do komunikacji transportowej. TCP jest niezbędny dla aplikacji wymagających niezawodności (WWW, poczta, bazy danych), podczas gdy UDP sprawdza się tam, gdzie liczy się szybkość i małe opóźnienie (VoIP, streaming, gry).

Warstwa aplikacji łączy bogaty zestaw protokołów, które definiują sposób komunikacji między programami. HTTP, DNS, DHCP, FTP i inne protokoły są fundamentem internetu i każdy specjalista IT powinien znac ich działanie.

28/55
Kluczowe różnice TCP i UDP

Kluczowe różnice TCP vs UDP

TCPUDP
PołączeniowyBezpołączeniowy
Potwierdzenia ACKBrak potwierdzeń
Kontrola przepływuBrak
Kolejność gwarantowanaKolejność niegwarantowana
Nagłówek 20+ bajtówNagłówek 8 bajtów
TCP vs UDP

Kluczowa różnica między TCP a UDP lezy w podejsciu do niezawodności. TCP jest protokołem zorientowanym na połączenie, który gwarantuje dostarczenie danych w odpowiedniej kolejności dzięki mechanizmom potwierdzen, retransmisji, sekwencjonowania i kontroli przepływu.

UDP jest protokołem bezpolaczeniowym, który nie daje zadnych gwarancji - datagram może zostac utracony, dostarczony w innej kolejności lub zduplikowany bez powiadomienia aplikacji. W zamian UDP oferuje minimalny narzut protokółarny (8 bajtow vs 20+ bajtow dla TCP).

Kontrola przepływu w TCP realizowana jest przez mechanizm okna (window), który dynamicznie dostosowuje ilość danych wysylanych przez nadawce do możliwości odbiorcy (rwnd) i przepustowości sieci (cwnd). UDP nie ma zadnego mechanizmu kontroli przepływu.

Wybór między TCP a UDP zależy od wymagan aplikacji: poczta elektroniczna i WWW wymagają TCP dla niezawodności, podczas gdy gry online i transmisję strumieniowe używają UDP dla minimalizacji opóźnienia. Niektore aplikacje, jak DNS, używają obu protokołów.

29/55
Pytanie o cztery warstwy TCP/IP

Sprawdź swoją wiedzę

Pytanie: Wymień 4 warstwy modelu TCP/IP.

Odpowiedź: 1) Dostępu do sieci, 2) Internetowa, 3) Transportowa, 4) Aplikacji.

Ikona znaku zapytania

Cztery warstwy modelu TCP/IP to: dostępu do sieci (Network Access) - odpowiada za przesyłanie ramek przez medium fizyczne, internetowa (Internet) - odpowiada za adresację IP i routing, transportowa (Transport) - zapewnia komunikację między aplikacjami, oraz aplikacji (Application) - dostarcza interfejs dla programow użytkownika.

Warstwa dostępu do sieci łączy w sobie funkcje warstw fizycznej i łącza danych modelu OSI. Nie jest ściśle zdefiniowana w dokumentach RFC, ponieważ zależy od konkretnej technologii (Ethernet, Wi-Fi, PPP), co daje elastycznosc w implementacji.

Warstwa internetowa to serce TCP/IP - protokół IP jest jedynym protokołem, który musi być zaimplementowany, aby urządzenie moglo uczestniczyc w komunikacji TCP/IP. Wszystkie wyższe i nizsze warstwy komunikują się przez IP.

Warstwy transportowa i aplikacji są implementowane w systemie operacyjnym i aplikacjach. System operacyjny dostarcza interfejs gniazd (sockets) dla programistow, co umozliwia tworzenie aplikacji sieciowych bez znajomości szczegółów działania nizszych warstw.

30/55
Pytanie o różnicę TCP i UDP

Sprawdź swoją wiedzę

Pytanie: Jaka jest różnica między TCP a UDP?

Odpowiedź: TCP jest połączeniowy, niezawodny, z potwierdzeniami, zachowuje kolejność. UDP jest bezpołączeniowy, szybki, bez gwarancji dostarczenia.

TCP dla niezawodności (WWW, e-mail), UDP dla szybkości (VoIP, streaming, DNS).
Ikona znaku zapytania

TCP i UDP różnią się fundamentalnie pod wzgledem mechanizmów komunikacji. TCP nawiązuje połączenie (connection-oriented) przed transmisja danych, podczas gdy UDP wysyła datagramy bez nawiązywania połączenia (connectionless), co eliminuje narzut zwiazany z uzgadnianiem.

TCP zapewnia niezawodność poprzez potwierdzenia (ACK) - każdy wysłany segment musi zostac potwierdzony przez odbiorce. W przypadku braku potwierdzenia, nadawca retransmituje segment po uplynieciu RTO (Retransmission Timeout). UDP nie wysyła potwierdzen ani nie retransmituje.

TCP gwarantuje zachowanie kolejności segmentow dzięki 32-bitowym numerom sekwencyjnym. Odbiorca sklada segmenty w oryginalnej kolejności, nawet jeśli dotarly w innej kolejności. UDP nie gwarantuje kolejności - datagramy mogą dotrzec w dowolnej kolejności.

Naglowek TCP ma minimalnie 20 bajtow (z opcjami do 60 bajtow), podczas gdy nagłówek UDP ma stale 8 bajtow. Ta różnica wynika z dodatkowych pol TCP potrzebnych do zarządzania polaczeniem, potwierdzeniami i kontrola przepływu.

31/55
Pytanie o protokół ARP

Sprawdź swoją wiedzę

Pytanie: Do czego służy protokół ARP?

Odpowiedź: ARP (Address Resolution Protocol) mapuje adres IP na adres MAC w sieci LAN.

Schemat ARP Request/Reply

ARP (Address Resolution Protocol) jest kluczowym protokołem umozliwiajacym komunikację w sieci lokalnej. Gdy host zna adres IP docelowego urządzenia (np. bramy domyslnej 192.168.1.1), ale nie zna jego adresu MAC, wysyła broadcastowe zapytanie ARP: Kto ma adres IP 192.168.1.1?.

Urzadzenie z adresem 192.168.1.1 odpowiada unicastem, podajac swoj adres MAC. Host zapisuje to mapowanie w lokalnej pamieci podrecznej ARP (ARP cache), co przyspiesza kolejne transmisję. W systemie Windows polecenie arp -a wyświetla zawartosc tablicy ARP.

Atak ARP spoofing (ARP poisoning) polega na wyslaniu falszywej odpowiedzi ARP, w której atakujacy podszywa się pod inny host (np. brame domyslna). Wszystkie pakiety ofiary są kierowane do atakującego, co umozliwia przechwycenie (man-in-the-middle) i modyfikacje ruchu.

Zabezpieczeniem przed ARP spoofingiem jest stosowanie: statycznych wpisow ARP (arp -s), Dynamic ARP Inspection (DAI) na przelacznikach Cisco, oraz szyfrowania komunikacji (TLS, SSH, IPsec), które uniemozliwia odczytanie przechwyconych danych.

32/55
Pytanie o protokół ICMP

Sprawdź swoją wiedzę

Pytanie: Co oznacza skrót ICMP i jakie ma zastosowanie?

Odpowiedź: Internet Control Message Protocol – służy do diagnostyki sieci (ping, traceroute) i raportowania błędów (Destination Unreachable, Time Exceeded).

Zrzut ekranu z ping

ICMP (Internet Control Message Protocol) jest protokołem warstwy internetowej, uzywanym do diagnostyki i raportowania błędów. Komunikaty ICMP są przenoszone bezpośrednio w pakietach IP (pole Protocol = 1). Najwazniejsze typy to: 0 (Echo Reply), 3 (Destination Unreachable), 8 (Echo Request) i 11 (Time Exceeded).

ping wykorzystuje typy 8 (Echo Request) i 0 (Echo Reply) do testowania łączności. Czas odpowiedzi (RTT) mierzony przez ping jest podstawą do oceny opóźnienia sieci. Wzorzec RTT i ewentualne utraty pakietow (brak odpowiedzi) pomagaja w diagnostyce problemów.

Komunikat Destination Unreachable (typ 3) ma kilka kodow: 0 (Network Unreachable), 1 (Host Unreachable), 2 (Protocol Unreachable), 3 (Port Unreachable). Na przykład kod 3 jest zwracany, gdy serwer nie ma aplikacji nasłuchującej na danym porcie TCP/UDP.

Time Exceeded (typ 11) jest generowany, gdy TTL pakietu spadnie do 0. Jest to podstawą działania traceroute. Atak typu ICMP flood polega na zalewaniu ofiary ogromna liczba pakietow ICMP Echo Request, co może doprowadzic do wyczerpania zasobow sieciowych.

33/55
Pytanie o trójfazowe uzgadnianie TCP

Sprawdź swoją wiedzę

Pytanie: Jak działa trójfazowe uzgadnianie TCP?

Odpowiedź: 1) SYN – klient żąda połączenia, 2) SYN-ACK – serwer potwierdza, 3) ACK – klient potwierdza. Po tym stan ESTABLISHED.

Schemat Three-Way Handshake

Trójfazowe uzgadnianie TCP (Three-Way Handshake) jest standardowym mechanizmem nawiązywania połączenia TCP. Klient rozpoczyna od wyslania pakietu SYN z losowym numerem sekwencyjnym (SEQ=x). Serwer odpowiada SYN-ACK z własnym losowym SEQ=y i ACK=x+1.

Klient kończy handshake pakietem ACK z SEQ=x+1 i ACK=y+1. Po tym momencie obie strony mają ustalone początkowe numery sekwencyjne i mogą rozpoczac wymiane danych. Numery SEQ sluza do numerowania bajtow w strumieniu danych, a ACK do potwierdzania ich odbioru.

Mechanizm SYN cookies (RFC 4987) jest zabezpieczeniem przed atakiem SYN flood. Serwer zamiast alokowac pamiec na polotwarte połączenie, koduje informacje o połączeniu w poczatkowym numerze SEQ (cookie). Po otrzymaniu ACK od klienta, serwer odtwarza informacje z cookie.

W Wireshark można latwo zidentyfikowac Three-Way Handshake, filtrujac tcp.flags.syn==1. Pakiety SYN, SYN-ACK i ACK są widoczne jako pierwsze trzy pakiety każdej sesji TCP, a ich analiza pozwala sprawdzić negocjowane opcje TCP.

34/55
Pytanie o pole TTL w IP

Sprawdź swoją wiedzę

Pytanie: Co to jest TTL i do czego służy?

Odpowiedź: Time To Live – 8-bitowe pole w nagłówku IP. Zapobiega zapętleniu pakietów. Każdy router dekrementuje TTL. Gdy TTL=0, pakiet jest odrzucany (ICMP Time Exceeded).

Schemat pakietu z polem TTL

TTL (Time To Live) to 8-bitowe pole w naglowku IPv4 (Hop Limit w IPv6), które sluzy do ograniczenia czasu zycia pakietu w sieci. Kazdy router na trasie pakietu zmniejsza TTL o 1. Gdy TTL osiagnie 0, router odrzuca pakiet i wysyła komunikat ICMP Time Exceeded do nadawcy.

Domyslna wartosc TTL zależy od systemu operacyjnego: Linux i macOS używają 64, Windows domyślnie 128, a urządzenia sieciowe Cisco 255. Wybor wartosci jest kompromisem między ochrona przed petlami a maksymalna srednica sieci (najdluzsza dozwolona trasa).

TTL jest kluczowym mechanizmem zabezpieczajacym siec przed zapetleniem pakietow (routing loops). W przypadku bledu w tablicy routingu, pakiet moglby krazyc w nieskonczonosc, wyczerpujac przepustowość łączy między routerami.

Narzedzie traceroute wykorzystuje TTL do mapowania trasy: wysyła pakiety z TTL=1, 2, 3, ... i analizuje adresy routerow, które odrzucily pakiet z komunikatem ICMP Time Exceeded. Pozwala to na identyfikacje wszystkich routerow na trasie od źródła do celu.

35/55
Pytanie o warstwę odpowiedzialną za routing

Sprawdź swoją wiedzę

Pytanie: Która warstwa TCP/IP odpowiada za routing?

Odpowiedź: Warstwa internetowa (Internet Layer) – protokół IP odpowiada za adresację i wybór trasy.

Router z tablicą routingu

Routing jest funkcja warstwy internetowej (Internet Layer) modelu TCP/IP. Protokół IP, dzialajacy w tej warstwie, odpowiada za adresację urządzeń i wybór optymalnej trasy dla pakietow. Routery, jako urządzenia warstwy 3, podejmuja decyzje routingu na podstawie tablic routingu.

Tablica routingu zawiera wpisy okreslajace: siec docelowa (prefix), maske sieci, adres nastepnego skoku (next-hop), interfejs wyjsciowy oraz metryke (koszt trasy). W systemie Linux polecenie route -n lub ip route wyświetla zawartosc tablicy routingu.

Routing statyczny wymaga recznego dodania każdej trasy przez administratora. Sprawdza się w malych sieciach o stalej topologii. Routing dynamiczny używa protokołów takich jak OSPF (wewnątrz systemu autonomicznego) lub BGP (między systemami autonomicznymi).

OSPF (Open Shortest Path First) używa algorytmu Dijkstry do znalezienia najkrotszej ścieżki w sieci. Protokół ten dzieli się na obszary (areas), co poprawia skalowalnosc. BGP (Border Gateway Protocol) jest podstawowym protokołem routingu między operatorami internetu.

36/55
Pytanie o porty HTTP i HTTPS

Sprawdź swoją wiedzę

Pytanie: Jakie są domyślne porty dla HTTP i HTTPS?

Odpowiedź: HTTP – port 80 (TCP), HTTPS – port 443 (TCP).

Ikony HTTP i HTTPS z numerami portów

Standardowe porty TCP są zdefiniowane przez organizacje IANA (Internet Assigned Numbers Authority). HTTP (Hypertext Transfer Protocol) używa domyślnie portu 80 do niezaszyfrowanej komunikacji. HTTPS (HTTP Secure) używa portu 443, dodając szyfrowanie TLS.

Port 80 jest standardowo otwarty na serwerach WWW dla ruchu HTTP. Poniewaz HTTP przesyła dane w czystym tekscie, port 80 jest podatny na przechwycenie i modyfikacje danych przez atakującego. Dlatego nowoczesne strony domyślnie przekierowują ruch z HTTP na HTTPS.

Port 443 jest używany przez HTTPS, który szyfruje ruch za pomoca TLS. Certyfikat SSL/TLS na serwerze umozliwia uwierzytelnienie tozsamosci serwera i ustanowienie szyfrowanego połączenia. Przegladarki oznaczają połączenia HTTPS ikoną kłódki.

W systemie Windows polecenie netstat -an | findstr :80 pokazuje wszystkie aktywne połączenia na porcie 80. W systemie Linux polecenie ss -tlnp sport = :80 pokazuje nasłuchujące gniazda na porcie 80 wraz z procesami.

37/55
Pytanie o definicję socketu

Sprawdź swoją wiedzę

Pytanie: Co to jest socket?

Odpowiedź: Socket = adres IP + numer portu + protokół (TCP/UDP). Identyfikuje jednoznacznie połączenie sieciowe.

Schemat gniazda (IP:Port)

Socket (gniazdo) to abstrakcyjne pojecie programistyczne, które łączy adres IP, numer portu i protokół transportowy (TCP lub UDP) w jedna jednostke identyfikujaca punkt końcowy komunikacji sieciowej. W systemach Unix/Linux gniazda są reprezentowane jako deskryptory plikow.

W programowaniu sieciowym API Berkeley Sockets definiuje funkcje do tworzenia i zarządzania gniazdami: socket() - tworzy gniazdo, bind() - przypisuje adres IP i port, connect() - łączy się z serwerem, listen() - rozpoczyna nasluchiwanie, accept() - przyjmuje połączenie.

Gniazdo jest jednoznacznie identyfikowane przez piec elementów: protokół (TCP/UDP), adres IP źródła, port źródła, adres IP celu, port celu. Dzięki temu jeden serwer może ob slugiwac tysiące jednoczesnych połączeń - każde połączenie ma unikalna kombinacje tych parametrow.

Narzedzie netstat (Windows/Linux) lub ss (Linux) wyświetla liste aktywnych gniazd na systemie. Dla każdego gniazda pokazuje: protokół, adres lokalny (IP:port), adres zdalny (IP:port) i stan połączenia. Jest to niezbędne narzędzie w diagnostyce problemów sieciowych.

38/55
Pytanie o routing statyczny i dynamiczny

Sprawdź swoją wiedzę

Pytanie: Czym różni się routing statyczny od dynamicznego?

Odpowiedź: Statyczny – administrator ręcznie wpisuje trasy (bezpieczny, prosty). Dynamiczny – protokoły (OSPF, BGP, EIGRP) automatycznie uczą się tras.

Schemat routerów z tablicami routingu

Routing statyczny i dynamiczny różnią się przede wszystkim sposobem zarządzania tablica routingu. W routingu statycznym administrator recznie dodaje, usuwa i modyfikuje wpisy w tablicy routingu na każdym routerze. Jest to bezpieczne, przewidywalne, ale czasochłonne w dużych sieciach.

Routing statyczny jest zalecany w następujących przypadkach: małe sieci (do kilku routerow), sieci typu stub (tylko jedno połączenie z reszta sieci), łącza typu backup (statyczna trasa domyslna), oraz gdy wymagana jest pełna kontrola nad przepływem ruchu.

Routing dynamiczny, realizowany przez protokoły takie jak OSPF, BGP i EIGRP, automatycznie wykrywa topologie sieci i aktualizuje tablice routingu. W przypadku zmiany topologii (awaria łącza, dodanie nowego routera), protokoły dynamiczne szybko dostosowuja trasy.

Routing dynamiczny skaluje się do dużych sieci i jest odporny na awarie - jeśli jedno łącze ulegnie awarii, protokół routingu automatycznie przekieruje ruch przez alternatywna trase. Wadami są: większe zuzycie pasma (pakiety hello) i CPU, oraz ryzyko niestabilności (flapping).

39/55
Pytanie o mechanizm NAT

Sprawdź swoją wiedzę

Pytanie: Co to jest NAT i dlaczego powstał?

Odpowiedź: Network Address Translation – tłumaczy prywatne adresy IP na publiczny. Powstał z powodu wyczerpania adresów IPv4.

NAT nie jest zabezpieczeniem! To tylko oszczędność adresów.
NAT - sieć LAN na jeden publiczny IP

NAT (Network Address Translation) powstał jako rozwiazanie problemu wyczerpania adresow IPv4. Mechanizm pozwala wielu urzadzeniom w sieci prywatnej (adresy RFC 1918) korzystać z jednego lub kilku publicznych adresow IP, co znacznie opoznilo wyczerpanie puli adresow IPv4.

NAT działa na routerze lub firewallu, modyfikujac adresy IP i porty w naglowkach pakietow. Router przechowuje tablice translacji (NAT table), która mapuje wewnętrzne adresy IP i porty na zewnętrzne. Gdy pakiet powrotny przychodzi, router odszukuje wpis w tablicy i przekazuje pakiet do odpowiedniego urządzenia.

Wazne jest zrozumienie, że NAT nie jest mechanizmem bezpieczenstwa. Choc utrudnia bezpośrednie połączenie z urządzeniami w sieci wewnętrznej (co jest czasem mylone z firewallem), jego celem jest oszczednosc adresow, a nie ochrona. Prawdziwe zabezpieczenie wymaga firewalla.

NAT w połączeniu z prywatnymi adresami IP jest szeroko krytykowany, ponieważ lamie fundamentalna zasade internetu - każdy host powinien mieć unikalny adres IP. NAT utrudnia debugowanie, działanie P2P, VoIP i gier online. Rozwiazaniem jest migracja na IPv6.

40/55
Pytanie o stany połączeń TCP

Sprawdź swoją wiedzę

Pytanie: Jakie są stany połączeń TCP?

Odpowiedź: LISTEN, SYN-SENT, SYN-RECEIVED, ESTABLISHED, FIN-WAIT-1/2, CLOSE-WAIT, CLOSING, TIME-WAIT, CLOSED.

Diagram stanów TCP

Stany połączeń TCP są szczegółowo zdefiniowane w RFC 793. Diagram stanow TCP (TCP State Diagram) opisuje wszystkie możliwe przejścia między stanami w odpowiedzi na zdarzenia, takie jak: wysłanie SYN, odebranie SYN-ACK, wysłanie FIN, timeout itp.

LISTEN - serwer czeka na połączenie. SYN-SENT - klient wysłał SYN, czeka na SYN-ACK. SYN-RECEIVED - serwer otrzymał SYN, wysłał SYN-ACK, czeka na ACK. ESTABLISHED - połączenie nawiązane, można wymieniać dane. To stan większości aktywnych połączeń.

FIN-WAIT-1 - strona wysłała FIN, czeka na ACK i FIN. FIN-WAIT-2 - otrzymano ACK na FIN, czeka na FIN. CLOSE-WAIT - otrzymano FIN, aplikacja zamyka połączenie. CLOSING - obie strony wysłały FIN jednocześnie. TIME-WAIT - czeka 2*MSL na ewentualne spóźnione pakiety.

Połączenia w stanie TIME-WAIT są często mylnie interpretowane jako problem. To normalny stan po poprawnym zamknięciu połączenia, trwający zwykle 60 sekund. Jeśli jednak liczba połączeń TIME-WAIT jest bardzo duża (tysiące), może to wyczerpać dostępne porty źródłowe (szczególnie przy laczu o wysokiej przepustowości).

41/55
Pytanie o działanie DNS

Sprawdź swoją wiedzę

Pytanie: Do czego służy DNS i jak działa?

Odpowiedź: DNS tłumaczy nazwy domenowe na adresy IP. Hierarchia: root → TLD → autorytatywny → odpowiedź.

Hierarchia DNS z przykładami

DNS (Domain Name System) jest jednym z najstarszych i najwazniejszych protokołów internetu, zdefiniowanym w RFC 1034 i RFC 1035 z 1987 roku. Przed DNS, tlumaczenie nazw na adresy IP odbywalo się za pomoca pliku HOSTS.TXT, który był recznie aktualizowany przez Network Information Center.

Zapytanie DNS rozpoczyna się od klienta (przegladarki), który zadaje pytanie lokalnemu resolverowi DNS (zwykle w systemie operacyjnym lub routerze). Resolver najpierw sprawdza pamiec podreczna (cache DNS), a jeśli adres nie jest buforowany, wysyła zapytanie do serwera DNS.

Hierarchia DNS ma strukturę drzewiasta: korzen (root) jest zarządzany przez 13 serwerow root (oznaczonych A-M). Ponizej znajdują się serwery TLD (.com, .org, .pl), a nizej autorytatywne serwery DNS dla poszczególnych domen (np. google.com).

Narzedzie nslookup (Windows) lub dig (Linux) umozliwia reczne wykonywanie zapytan DNS i jest niezastapione w diagnostyce problemów z rozwi azywaniem nazw. dig google.com ANY pokazuje wszystkie typy rekordow dla domeny google.com.

42/55
Pytanie o protokół DHCP

Sprawdź swoją wiedzę

Pytanie: Do czego służy DHCP?

Odpowiedź: DHCP automatycznie przydziela adresy IP, maskę, bramę, DNS urządzeniom w sieci. Proces DORA: Discover, Offer, Request, ACK.

Schemat DORA

DHCP (Dynamic Host Configuration Protocol) jest rozszerzeniem protokołu BOOTP, zdefiniowanym w RFC 2131. Automatyzuje proces konfiguracji sieciowej urządzeń, przydzielajac adresy IP, maski podsieci, bramy domyslne i adresy serwerow DNS.

Proces DORA (Discover, Offer, Request, ACK) jest standardowym mechanizmem uzyskiwania adresu IP przez klienta DHCP. Klient wysyła broadcastowy DHCPDISCOVER, odbiera oferty od serwerow DHCP, wybiera jedna i wysyła DHCPREQUEST, a serwer potwierdza DHCPACK.

Serwer DHCP przechowuje baze przypisan adresow IP do adresow MAC, co zapewnia, że to samo urządzenie zawsze otrzyma ten sam adres IP (stała dzierzawa - static lease). Jest to przydatne dla urządzeń takich jak serwery, drukarki czy punkty dostępowe Wi-Fi.

Ataki na DHCP: DHCP starvation (wyczerpanie puli adresow przez fałszywe zapytania) i rogue DHCP server (nieautoryzowany serwer DHCP, który może przydzielić adres z fałszywa brama domyslna - atak Man-in-the-Middle). Zabezpieczeniem jest DHCP snooping na przelacznikach.

43/55
Pytanie o różnice IPv4 i IPv6

Sprawdź swoją wiedzę

Pytanie: Czym różni się IPv4 od IPv6?

Odpowiedź: IPv4: 32 bity (4,3 mld adresów), IPv6: 128 bitów (340 undecylionów). IPv6 ma wbudowane IPsec, NDP zamiast ARP, brak NAT.

Tabela porównawcza IPv4 vs IPv6

Glowna różnica między IPv4 a IPv6 lezy w dlugosci adresu i wynikajacej z tego liczbie dostępnych adresow. IPv4 używa 32-bitowych adresow (okolo 4,3 miliarda), co okazalo się niewystarczajace dla wspolczesnej liczby urządzeń podlaczonych do internetu.

IPv6 używa 128-bitowych adresow, co daje 340 undecylionow adresow - wystarczająco duzo, aby każde urządzenie na Ziemi moglo mieć unikalny adres globalny, bez koniecznosci stosowania NAT. Adres IPv6 zapisuje się w formacie szesnastkowym, np. 2001:db8::1.

Oprocz wiekszej przestrzeni adresowej, IPv6 wprowadza inne usprawnienia: brak NAT (koniec z problemami P2P), wbudowane IPsec (autoryzacja i szyfrowanie), uproszczony nagłówek (szybsze przetwarzanie przez routery), NDP (Neighbor Discovery Protocol) zamiast ARP i autokonfigurację (SLAAC).

Migracja z IPv4 na IPv6 postepuje wolniej niz oczekiwano. Wedlug danych Google, w 2024 roku okolo 40-45% użytkowników na swiecie łączylo się przez IPv6. Liderami są Indie (okolo 80%), Francja i Niemcy (okolo 70%). W Polsce udzial IPv6 wynosi okolo 20%.

44/55
Pytanie o jednostkę MTU

Sprawdź swoją wiedzę

Pytanie: Co to jest MTU?

Odpowiedź: Maximum Transmission Unit – maksymalny rozmiar pakietu w bajtach, który może być przesłany przez interfejs bez fragmentacji. Dla Ethernet: 1500 bajtów.

Porównanie MTU 1500 vs 9000

MTU (Maximum Transmission Unit) to maksymalny rozmiar pakietu (łącznie z nagłówkami), który może być przeslany przez dany interfejs sieciowy bez koniecznosci fragmentacji. Dla standardowego Ethernetu MTU wynosi 1500 bajtow, a dla Jumbo Frame może być ustawione na 9000 bajtow.

MTU ma kluczowe znaczenie dla wydajności sieci. Wieksze MTU oznacza mniejszy narzut nagłówków na jednostke danych (wiecej danych użytkownika w każdym pakiecie), ale tez większe opóźnienie przy retransmisji w przypadku utraty pakietu.

Jeśli pakiet jest większy niz MTU łącza, router musi go fragmentowac (podzielic na mniejsze części). Fragmentacja zwiększa narzut i ryzyko utraty pakietu (jeśli jeden fragment zginie, cały pakiet musi być retransmitowany). Dlatego nowoczesne protokoły (TCP) wykrywaja MTU ścieżki (Path MTU Discovery).

Path MTU Discovery (PMTUD) polega na wysylaniu pakietow z flaga DF (Don't Fragment) i sprawdzaniu, czy nie pojawia się komunikat ICMP Fragmentation Needed. W ten sposób TCP może dostosowac rozmiar segmentu do minimalnego MTU na całej trasie.

45/55
Pytanie o narzędzia diagnostyczne TCP/IP

Sprawdź swoją wiedzę

Pytanie: Jakie są podstawowe narzędzia diagnostyczne TCP/IP?

Odpowiedź: ping (łączność ICMP), traceroute/tracert (trasa), netstat (połączenia), nslookup/dig (DNS), ipconfig/ifconfig (konfiguracja), arp (tablica ARP), route (routing).

Ikony narzędzi CLI

ping jest podstawowym narzędziem diagnostycznym sprawdzajacym łączność IP (warstwa 3). Wysyla pakiety ICMP Echo Request i mierzy czas odpowiedzi. ping 8.8.8.8 testuje łączność z internetem, a ping 192.168.1.1 testuje łączność z brama domyslna.

traceroute (tracert w Windows) sledzi trase pakietu od źródła do celu, pokazujac wszystkie routery posrednie z opoznieniami. Wynik pozwala na identyfikacje wezla powodujacego opóźnienia lub utrate pakietow. mtr łączy funkcje ping i traceroute w czasie rzeczywistym.

netstat (Linux/Windows) i ss (Linux) wyświetlają aktywne połączenia sieciowe, tablice routingu i statystyki interfejsow. netstat -tulpn pokazuje wszystkie nasłuchujące gniazda TCP i UDP z nazwami procesow, co jest przydatne w audycie bezpieczenstwa.

nslookup i dig sluza do recznego wykonywania zapytan DNS, co pozwala na sprawdzenie, czy domena poprawnie się rozwi azuje. ipconfig (Windows) i ifconfig (Linux) wyświetlają konfigurację interfejsow sieciowych, a arp pokazuje tablice ARP.

46/55
Pytanie o zasadę best effort

Sprawdź swoją wiedzę

Pytanie: Co oznacza „best effort" w kontekście IP?

Odpowiedź: IP nie gwarantuje dostarczenia pakietu – może go zgubić, opóźnić, dostarczyć w innej kolejności. Gwarancje zapewniają dopiero wyższe warstwy (np. TCP).

IP best effort vs TCP niezawodność

Zasada best effort (najlepszych staran) jest fundamentalna cecha protokołu IP. Oznacza, że IP nie daje zadnych gwarancji co do dostarczenia pakietu, jego opóźnienia czy kolejność. Siec IP robi wszystko, co może, aby dostarczyć pakiet, ale jeśli to się nie uda, po prostu go odrzuca.

IP może zgubic pakiet (gdy bufor routera jest przepełniony), opoznic go (gdy kolejki na routerach są dlugie), dostarczyć w innej kolejności (gdy pakiety wedruja różnymi trasami) lub zduplikowac (gdy retransmisja na nizszej warstwie powoduje wysłanie dwoch kopii).

Gwarancje niezawodności są zapewniane przez protokoły wyzszych warstw, głównie TCP. TCP wykrywa utrate pakietow (brak ACK), opóźnienia (RTO), błędy kolejności (numery SEQ) i duplikaty, a następnie odpowiednio koryguje te problemy przez retransmisje i sekwencjonowanie.

Dla aplikacji czasu rzeczywistego (VoIP, streaming) zasada best effort IP jest akceptowalna, ponieważ sporadyczna utrata pakietu jest mniej szkodliwa niz opóźnienie wynikające z retransmisji TCP. Te aplikacje same implementuja mechanizmy korekcji błędów (FEC) i adaptacyjne bufory.

47/55
Pytanie o różnice OSI i TCP/IP

Sprawdź swoją wiedzę

Pytanie: Czym różni się OSI od TCP/IP?

Odpowiedź: OSI ma 7 warstw (teoretyczny), TCP/IP ma 4 warstwy (praktyczny). TCP/IP jest standardem internetu, OSI jest używany głównie w edukacji.

Porównanie modeli OSI i TCP/IP

Model OSI ma 7 warstw: fizyczna, łącza danych, sieciowa, transportowa, sesji, prezentacji i aplikacji. Model TCP/IP ma 4 warstwy: dostępu do sieci, internetowa, transportowa i aplikacji. Roznica wynika z połączenia warstw 1-2 i 5-7 w TCP/IP w pojedyncze warstwy.

OSI jest modelem teoretycznym, opracowanym przez ISO w 1984 roku jako uniwersalny standard. Definiuje abstrakcyjne interfejsy między warstwami, ale nie określa konkretnych protokołów. Jest używany głównie w edukacji i dokumentacji technicznej.

TCP/IP jest modelem praktycznym, który powstał w latach 70. jako wynik prac nad ARPANET. Definiuje konkretne protokoły (IP, TCP, UDP), które są standardem w dzisiejszym internecie. TCP/IP jest bardziej elastyczny i łatwiejszy w implementacji niz OSI.

Mimo różnic, oba modele mają wspolna koncepcje warstwowa i enkapsulacje. W praktyce segmentacja warstw OSI jest używana do opisu funkcji, nawet gdy mowa o protokołach TCP/IP. Na przykład mowi się, że router działa w warstwie 3 (sieciowej OSI), a przełącznik w warstwie 2.

48/55
Ćwiczenie z Wireshark i TCP

Wykonaj samodzielnie

  1. Uruchom Wireshark i przechwyć pakiet SYN podczas nawiązywania połączenia z dowolną stroną WWW
  2. Zidentyfikuj w nagłówku TCP flagę SYN, Sequence Number
  3. Sprawdź, jakie opcje TCP negocjują klient i serwer (MSS, Window Scale, SACK)
  4. Zapisz zrzut ekranu z widocznymi flagami TCP
Wireshark z zaznaczonym pakietem SYN

Ćwiczenie z Wireshark pozwala na praktyczne zaobserwowanie mechanizmów TCP w rzeczywistym ruchu sieciowym. Przechwycenie pakietu SYN podczas nawiązywania połączenia ze stroną WWW pokazuje strukturę nagłówka TCP i negocjowane opcje.

W pakiecie SYN warto zwrócić uwagę na: Source Port (losowy port klienta), Destination Port (80 lub 443), Sequence Number (32-bitowa liczba losowa), Flags (SYN=1) oraz opcje TCP: MSS (Maximum Segment Size, zwykle 1460), Window Scale i SACK.

Serwer odpowiada pakietem SYN-ACK z własnym SEQ, ACK (SEQ klienta + 1), oraz opcjami, które akceptuje. Roznice w MSS i Window Scale między klientem a serwerem mogą wskazywać na różne limity MTU lub strategie buforowania.

Po zakończeniu ćwiczenia warto zapisać przechwycone pakiety do pliku .pcapng i oznaczyć interesujące pakiety komentarzami. Pliki te mogą być uzyte jako dowód w dokumentacji diagnostycznej lub udostępnione innym inżynierom do analizy.

49/55
Ćwiczenie z traceroute

Wykonaj samodzielnie

  1. Wykonaj traceroute do google.pl i do twojej uczelni
  2. Porównaj liczbę hopów i opóźnienia na każdym skoku
  3. Sprawdź, jaka jest różnica między routowaniem do lokalnego a odległego serwera
  4. Zapisz wyniki w tabeli z kolumnami: Hop, IP, Opóźnienie 1/2/3
Zrzut ekranu z traceroute

Ćwiczenie z traceroute do google.pl i do serwera uczelnianego pozwala na praktyczne zaobserwowanie różnicy w routingu do lokalnych i odleglych serwerow. Serwer uczelniany znajduje się zwykle w tej samej sieci ISP (1-5 hopow), podczas gdy google.pl może wymagac kilkunastu hopow.

Wynik traceroute pokazuje adresy IP routerow na trasie oraz opóźnienia (RTT) mierzone dla każdego z trzech sond. Gwiazdki (* * *) oznaczaja, że router nie odpowiedzial na sondy ICMP/UDP - może to być spowodowane blokada ICMP na firewallu.

Porownanie liczby hopow między polaczeniem lokalnym a odleglym ilustruje, jak działa routing w internecie. Lokalny serwer (np. uczelniany) ma zwykle 1-5 hopow, ogolnopolski serwer 5-10 hopow, a zagraniczny 10-20 hopow.

Warto zwrócić uwagę na ostatni hop przed serwerem docelowym - często jest to router ISP, który ma najwieksze opóźnienie. Skok opóźnienia między dwoma hopami może wskazywać na waskie gardlo w sieci, szczególnie jeśli jest to łącze miedzynarodowe.

50/55
Ćwiczenie dopasowania protokołów do warstw

Dopasuj protokół do warstwy TCP/IP

ProtokółWarstwa TCP/IP
HTTP?
TCP?
IP?
Ethernet?

Odpowiedzi: HTTP – aplikacji, TCP – transportowa, IP – internetowa, Ethernet – dostępu do sieci.

Tabela z warstwami w modelu TCP/IP

Ćwiczenie dopasowania protokołów do warstw TCP/IP pomaga w zrozumieniu, na której warstwie działa każdy protokół. HTTP jest protokołem warstwy aplikacji (4), ponieważ definiuje format zadania i odpowiedzi dla przegladarek WWW, korzystając z TCP na nizszej warstwie.

TCP jest protokołem warstwy transportowej (3), ponieważ zapewnia niezawodna komunikację między aplikacjami na różnych hostach. TCP działa na IP (warstwa internetowa) i oferuje gniazda (sockets) dla aplikacji warstwy 4.

IP jest protokołem warstwy internetowej (2), odpowiedzialnym za adresację i routing. IP przenosi segmenty TCP lub datagramy UDP i jest niezalezne od technologii warstwy dostępu do sieci (Ethernet, Wi-Fi, PPP).

Ethernet jest protokołem warstwy dostępu do sieci (1), ponieważ definiuje format ramki, adresację MAC i mechanizm dostępu do medium. Ethernet przenosi pakiety IP i jest implementowany w sprzecie (karta sieciowa, przełącznik).

51/55
Podsumowanie najważniejszych informacji

Co już wiemy?

  • TCP/IP to praktyczny model komunikacji – 4 warstwy
  • IP odpowiada za adresację i routing, TCP za niezawodność
  • DNS tłumaczy nazwy na IP, DHCP automatycznie konfiguruje
  • NAT oszczędza adresy IPv4, IPv6 rozwiązuje problem wyczerpania
  • Narzędzia: ping, traceroute, netstat, nslookup, Wireshark
Mapa myśli podsumowująca TCP/IP

Model TCP/IP jest praktycznym fundamentem działania internetu, skladajacym się z czterech warstw: dostępu do sieci, internetowej, transportowej i aplikacji. Zrozumienie tych warstw i ich protokołów jest niezbędne dla każdego specjalisty IT.

IP zapewnia adresację i routing, dzięki czemu pakiety mogą wedrowac przez internet do celu. TCP gwarantuje niezawodna dostarczenie danych, podczas gdy UDP oferuje szybka transmisję bez gwarancji.

DNS tlumaczy nazwy domenowe na adresy IP, umozliwiajac użytkownikom korzystanie z latwych do zapamietania adresow. DHCP automatyzuje konfigurację sieciowa, przydzielajac adresy IP i inne parametry.

NAT oszczedza adresy IPv4, pozwalajac wielu urzadzeniom w sieci prywatnej korzystać z jednego publicznego IP. IPv6 jest rozwiazaniem problemu wyczerpania adresow, oferując praktycznie nieograniczona przestrzeń adresowa.

52/55
Ściągawka protokołów TCP/IP

Najważniejsze protokoły TCP/IP

WarstwaProtokołyJednostka PDU
AplikacjiHTTP, DNS, DHCP, FTP, SMTP, SSHDane
TransportowaTCP, UDPSegment / Datagram
InternetowaIP, ICMP, ARP, IGMPPakiet
DostępuEthernet, Wi-FiRamka
Wieża TCP/IP z protokołami

Warstwa aplikacji gromadzi protokoły najblizsze uzytkownikowi: HTTP (WWW), DNS (tlumaczenie nazw), DHCP (konfiguracja IP), FTP (transfer plikow), SMTP (poczta wychodzaca), IMAP/POP3 (poczta przychodzaca) i SSH (zdalne zarządzanie).

Warstwa transportowa oferuje dwa protokoły: TCP (segmenty, niezawodny) i UDP (datagramy, szybki). TCP jest używany przez większość aplikacji internetowych, a UDP przez aplikacje czasu rzeczywistego i DNS.

Warstwa internetowa operuje na pakietach i zawiera protokoły IP, ICMP (diagnostyka), ARP (mapowanie IP na MAC) i IGMP (multicast). Routery działają w tej warstwie, przekazujac pakiety między sieciami.

Warstwa dostępu do sieci operuje na ramkach i zawiera technologie takie jak Ethernet i Wi-Fi. Przelaczniki działają w tej warstwie, przekazujac ramki na podstawie adresow MAC.

53/55
Pytania powtórkowe do samodzielnej nauki

Pytania do samodzielnego sprawdzenia

  1. Jakie są porty TCP dla HTTP i HTTPS?
  2. Co to jest trójfazowe uzgadnianie TCP?
  3. Jakie są stany połączeń TCP?
  4. Co to jest okno TCP (window)?
  5. Jakie są typy zapytań DNS?
Ikona znaku zapytania

HTTP domyślnie używa portu 80 TCP, a HTTPS portu 443 TCP. Wazne jest, aby pamietac, że port 443 jest używany przez TLS/SSL na HTTP, a nie przez osobny protokół. Wiele fire walli blokuje port 80, przepuszczajac tylko 443 dla bezpieczenstwa.

Trójfazowe uzgadnianie TCP (Three-Way Handshake) to sekwencja SYN -> SYN-ACK -> ACK, która nawiązuje połączenie przed transmisja danych. Jest to mechanizm zapobiegajacy nawiazywaniu połączeń z nieistniejacymi hostami.

Stany połączeń TCP obejmują: LISTEN (nasluchiwanie), SYN-SENT (oczekiwanie na SYN-ACK), ESTABLISHED (aktywne połączenie), FIN-WAIT (inicjacja zamkniecia), TIME-WAIT (oczekiwanie na spóźnione pakiety), CLOSED (zamknięte).

Okno TCP (window) to mechanizm kontroli przepływu, w którym rwnd (receiver window) jest oglaszany przez odbiorce, a cwnd (congestion window) jest zarządzany przez nadawce. Rzeczywiste okno (swnd) to minimum z rwnd i cwnd.

54/55
Odpowiedzi do pytań powtórkowych

Odpowiedzi

  1. HTTP: 80, HTTPS: 443
  2. SYN → SYN-ACK → ACK
  3. LISTEN, SYN-SENT, ESTABLISHED, FIN-WAIT, TIME-WAIT, CLOSED
  4. Okno TCP kontroluje przepływ (rwnd + cwnd = swnd)
  5. A, AAAA, CNAME, MX, NS, TXT
Ikona odpowiedzi

Porty HTTP (80) i HTTPS (443) są standardowo zarejestrowane w IANA. HTTP przesyła dane w czystym tekscie, co umozliwia przechwycenie tresci przez atakującego. HTTPS dodaje szyfrowanie TLS, chroniac poufnosc i integralnosc danych.

Three-Way Handshake to proces nawiązywania połączenia TCP: klient wysyła SYN z losowym SEQ, serwer odpowiada SYN-ACK z własnym SEQ i ACK=SEQ+1, klient kończy ACK z SEQ+1 i ACK=serwer_SEQ+1. Po tym połączenie jest otwarte.

Stany TCP: LISTEN (serwer czeka), SYN-SENT (klient wysłał SYN), ESTABLISHED (połączenie aktywne), FIN-WAIT-1/2 (inicjacja zamkniecia), CLOSE-WAIT (oczekiwanie na zamknięcie aplikacji), TIME-WAIT (2*MSL).

Okno TCP (swnd = min(rwnd, cwnd)) dynamicznie dostosowuje się do warunkow sieciowych. rwnd jest oglaszane przez odbiorce w naglowku TCP, a cwnd jest wewnetrznie zarzadzane przez nadawce w oparciu o algorytm kontroli przeciążeń.

55/55
Zakończenie części piątej

Koniec części 5

Następna część: Protokoły warstwy aplikacji i transportowej – szczegółowa analiza HTTP, DNS, DHCP, TCP, UDP.

Praca własna: przechwyć w Wiresharku sesję HTTP, znajdź metodę GET, kod odpowiedzi, nagłówki. Wykonaj traceroute do 5 różnych serwerów.

Zapowiedź części 6

Piąta część wykładu o modelu TCP/IP stanowi solidne wprowadzenie do praktycznej strony komunikacji sieciowej. Poznalismy 4 warstwy modelu, kluczowe protokoły (IP, TCP, UDP, HTTP, DNS, DHCP) oraz mechanizmy ich działania.

Nastepna część wykładu poświęcona bedzie szczegółowej analizie protokołu IPv4 - adresacji, podzialowi na podsieci, maskom i routowaniu. Poznamy narzędzia do zarządzania adresacja IPv4 oraz techniki obliczania podsieci.

Po opanowaniu TCP/IP bedziemy gotowi do przejścia do praktycznej diagnostyki sieciowej - analizy ruchu za pomoca Wireshark, pomiarow wydajności z iperf3 i rozwiazywania typowych problemów sieciowych.

Zachecam do samodzielnych ćwiczeń: przechwycenie sesji HTTP w Wireshark, analiza połączenia TCP, testowanie przepustowości łącza za pomoca iperf3 i sledzenie trasy pakietow za pomoca traceroute. Praktyka jest kluczem do opanowania wiedzy o sieciach.