Data packet, czyli pakiet danych, to porcja informacji przesyłana przez sieć razem z nagłówkiem technicznym. Nagłówek mówi, skąd pakiet pochodzi, dokąd ma trafić i jak ma zostać obsłużony, a payload przenosi właściwe dane albo dane wyższej warstwy protokołu.
Pakiet nie jest całym plikiem ani całą stroną internetową. Jedno zapytanie do serwera, pobranie obrazu, rozmowa wideo albo otwarcie strony może składać się z wielu pakietów. Po tym, jak DNS pozwoli ustalić adres IP usługi, właściwa komunikacja odbywa się przez kolejne jednostki danych przesyłane w sieci.
Co to jest data packet?
Sieci pakietowe działają inaczej niż połączenie, które na czas transmisji rezerwuje całą linię dla jednego nadawcy. Dane są dzielone na mniejsze jednostki, dzięki czemu wiele rozmów, zapytań i transferów może współdzielić tę samą infrastrukturę. Router nie musi znać całego pliku ani całej wiadomości; wystarczy, że obsłuży kolejny pakiet.
Taki model ułatwia skalowanie sieci. Pakiety z różnych aplikacji mogą być kolejkowane, przekazywane i obsługiwane niezależnie. Jeśli zmieni się topologia albo część trasy przestanie działać, routing może wskazać inną drogę dla kolejnych pakietów, zamiast wymagać jednego stałego toru transmisji od początku do końca.
Elastyczność ma swoją cenę. Pakiety mogą dotrzeć z opóźnieniem, w innej kolejności, zostać zduplikowane albo zginąć. To, czy aplikacja finalnie zobaczy dane jako uporządkowany strumień, zależy od protokołów wyższych warstw, najczęściej TCP, albo od mechanizmów samej aplikacji.
Z czego składa się pakiet danych?
Najprostszy model pakietu to nagłówek i payload. Nagłówek zawiera informacje potrzebne do obsługi pakietu, a payload jest zawartością przenoszoną przez daną warstwę. Na niższych warstwach może pojawić się także trailer, czyli pole końcowe używane na przykład do kontroli błędów.
| Część | Rola | Przykład |
|---|---|---|
| Nagłówek | Opisuje, jak obsłużyć jednostkę danych. | Adres źródłowy, adres docelowy, TTL/Hop Limit, protokół następnej warstwy. |
| Payload | Przenosi dane właściwe z punktu widzenia danej warstwy. | Segment TCP, datagram UDP albo dane aplikacji. |
| Trailer | Występuje na niektórych warstwach, zwykle do kontroli integralności. | FCS/CRC w ramce Ethernet. |
Nie każdy „pakiet” ma dokładnie taką samą budowę. Pakiet IP nie jest tym samym co ramka Ethernet, a segment TCP nie jest tym samym co datagram UDP. W praktyce jedna warstwa opakowuje dane poprzedniej warstwy i dodaje własny nagłówek.
Pakiet, ramka, segment i datagram
W potocznej rozmowie mówi się często „pakiety”, ale w sieciach nazwa jednostki zależy od warstwy. To ważne w diagnostyce, bo inny problem dotyczy ramki Ethernet, inny pakietu IP, a jeszcze inny segmentu TCP.
| Nazwa | Warstwa | Co oznacza? |
|---|---|---|
| Ramka | Łącze danych | Jednostka przesyłana lokalnie, np. w Ethernet albo Wi-Fi. |
| Pakiet / datagram IP | Sieciowa | Jednostka routowana między sieciami na podstawie adresów IP. |
| Segment TCP | Transportowa | Jednostka TCP zawierająca m.in. porty, numery sekwencyjne i flagi. |
| Datagram UDP | Transportowa | Jednostka UDP z portami, długością i sumą kontrolną. |
| Payload | Zależna od kontekstu | Dane przenoszone przez daną warstwę; często jest to cała jednostka warstwy wyższej. |
Przykład: dla Ethernetu payloadem może być pakiet IP. Dla IP payloadem może być segment TCP. Dla TCP payloadem mogą być dane aplikacji, na przykład fragment komunikacji HTTP. To dlatego jedno słowo „pakiet” bywa wygodne, ale technicznie nie zawsze wystarczająco precyzyjne.
Jak pakiet przechodzi przez stos sieciowy?
Komunikacja sieciowa działa warstwowo. Aplikacja przygotowuje dane, warstwa transportowa dodaje własny nagłówek, warstwa IP dodaje adresację sieciową, a warstwa łącza danych opakowuje całość w ramkę odpowiednią dla lokalnego medium.
dane aplikacji
→ segment TCP / datagram UDP
→ pakiet IP
→ ramka Ethernet/Wi-Fi
Przy odbiorze dzieje się proces odwrotny. Karta sieciowa odbiera ramkę, system odczytuje pakiet IP, warstwa transportowa interpretuje TCP albo UDP, a aplikacja dostaje dane w formie, którą potrafi obsłużyć.
Routery po drodze nie analizują całej zawartości aplikacyjnej. Ich podstawowym zadaniem jest przekazanie pakietu dalej na podstawie informacji z nagłówka IP. Urządzenia bezpieczeństwa, takie jak firewall, mogą dodatkowo podejmować decyzje na podstawie adresów, portów, protokołów, stanu połączenia albo reguł wyższej warstwy.
Co znajduje się w nagłówku IP?
Nagłówek IP zawiera informacje potrzebne do dostarczenia pakietu przez sieć. IPv4 i IPv6 różnią się formatem, ale logika jest podobna: pakiet ma źródło, cel, informację o następnym protokole i mechanizm ograniczający jego życie w sieci.
| Pole | IPv4 / IPv6 | Znaczenie |
|---|---|---|
| Source Address | IPv4 i IPv6 | Adres IP nadawcy pakietu. |
| Destination Address | IPv4 i IPv6 | Adres IP odbiorcy pakietu. |
| TTL / Hop Limit | IPv4 / IPv6 | Ogranicza liczbę przeskoków pakietu w sieci, żeby nie krążył bez końca. |
| Protocol / Next Header | IPv4 / IPv6 | Wskazuje, co znajduje się dalej, np. TCP, UDP albo ICMP. |
| Total Length / Payload Length | IPv4 / IPv6 | Określa rozmiar pakietu albo payloadu zależnie od wersji IP. |
| Header Checksum | IPv4 | Służy do kontroli błędów nagłówka IPv4. W IPv6 tego pola nie ma. |
Pole TTL w IPv4 i Hop Limit w IPv6 ma bardzo praktyczne znaczenie. Każdy router zmniejsza tę wartość. Jeśli spadnie ona do zera, pakiet jest odrzucany. Dzięki temu błędnie zapętlony ruch nie krąży po sieci w nieskończoność.
TCP, UDP i pakiet danych
Sam IP nie gwarantuje, że pakiet zostanie dostarczony, nie zapewnia kolejności i nie składa danych w uporządkowany strumień. Tym zajmują się protokoły transportowe albo aplikacja. Najczęściej widać tu różnicę między TCP i UDP.
TCP dzieli dane na segmenty, numeruje je, potwierdza odbiór i może retransmitować utracone fragmenty. Dzięki temu aplikacja zwykle otrzymuje uporządkowany strumień danych, nawet jeśli po drodze pojedyncze pakiety zostały zgubione albo dotarły w innej kolejności.
UDP działa prościej. Datagram UDP zawiera port źródłowy, port docelowy, długość i sumę kontrolną, ale nie zapewnia mechanizmów znanych z TCP: zestawiania połączenia, potwierdzeń, retransmisji ani porządkowania danych. Jeśli aplikacja korzysta z UDP i potrzebuje kontroli utraty pakietów, musi rozwiązać to sama albo użyć protokołu wyższej warstwy.
MTU, fragmentacja i rozmiar pakietu
MTU, czyli Maximum Transmission Unit, określa maksymalny rozmiar jednostki danych, jaką można przesłać przez dany odcinek sieci bez dzielenia jej na mniejsze części. Jeśli pakiet jest za duży dla ścieżki, musi zostać podzielony albo odrzucony, zależnie od wersji IP, flag i konfiguracji.
W IPv4 istnieje mechanizm fragmentacji pakietów, choć w nowoczesnych sieciach zwykle dąży się do jej unikania. Fragmentacja zwiększa narzut i utrudnia obsługę ruchu. Gdy zgubi się jeden fragment, cały pierwotny pakiet może stać się bezużyteczny.
W IPv6 routery po drodze nie fragmentują pakietów tak jak w klasycznym IPv4. Źródło powinno dobrać rozmiar pakietów do ścieżki, korzystając z mechanizmu Path MTU Discovery. Dlatego problemy z MTU potrafią objawiać się dziwnie: małe pakiety działają, ale większe transfery, VPN albo niektóre strony zaczynają się zawieszać.
Utrata, duplikaty i kolejność pakietów
Pakiety mogą zostać utracone, zduplikowane albo dostarczone w innej kolejności. To normalna właściwość sieci pakietowej, a nie automatycznie dowód awarii. Router może odrzucić pakiet przy przeciążeniu, błędnej trasie, przekroczeniu TTL/Hop Limit albo przez regułę bezpieczeństwa.
TCP zwykle ukrywa część tych problemów przed aplikacją, bo potrafi wykrywać braki i ponawiać transmisję. UDP tego nie robi. Dlatego aplikacje czasu rzeczywistego, gry, VoIP albo streaming często wolą zaakceptować stratę części danych niż czekać na retransmisję, która przyszłaby za późno.
Jak pakiety są widoczne w diagnostyce?
W diagnostyce sieci pakiety pojawiają się w różnych narzędziach, ale każde narzędzie pokazuje inny fragment rzeczywistości. ping używa ICMP i mierzy odpowiedzi na konkretne pakiety testowe. Nie jest pełnym testem aplikacji, DNS, HTTP, TLS ani przepustowości.
traceroute albo tracert wykorzystują zachowanie TTL/Hop Limit, aby pokazać kolejne skoki na trasie. Nie oznacza to, że narzędzie zawsze pokazuje pełną i idealną drogę ruchu aplikacji, ale dobrze ujawnia, na którym etapie pakiety przestają wracać.
Wireshark i tcpdump pozwalają zobaczyć przechwycone ramki, pakiety, segmenty i datagramy. Przy szyfrowanym ruchu, na przykład HTTPS, treść aplikacyjna jest chroniona, ale nagłówki IP i część informacji transportowych nadal są potrzebne do routingu oraz obsługi połączenia.
Typowe pomyłki przy pojęciu data packet
Najczęstsza pomyłka jest terminologiczna: pakiet, ramka, segment i datagram bywają używane zamiennie, ale nie zawsze oznaczają tę samą warstwę komunikacji. Pakiet nie jest też całym plikiem ani całą wiadomością. Payload na jednej warstwie może być kompletną jednostką kolejnej warstwy, dlatego w analizie sieci trzeba zawsze pytać: o której warstwie mówimy?
Druga pomyłka dotyczy diagnostyki. Utrata pakietów, wysoki ping, problem z DNS i blokada przez firewall to różne zjawiska, nawet jeśli dla użytkownika końcowego objawiają się jednym zdaniem: „internet nie działa”. Firewall może blokować ruch po nagłówkach i portach, TLS może ukrywać treść aplikacyjną, a router może odrzucić pakiet z powodu TTL albo MTU. Bez rozdzielenia tych warstw diagnoza zwykle zamienia się w zgadywanie.
Data packet – co trzeba zapamiętać?
Data packet to jednostka przesyłania danych, która zawiera informacje kontrolne i payload. Na różnych warstwach ta jednostka ma różne nazwy: ramka, pakiet IP, segment TCP albo datagram UDP.
IP odpowiada za routowanie pakietów, TCP i UDP organizują transport na różne sposoby, a MTU, TTL, fragmentacja i utrata pakietów decydują o praktycznym zachowaniu sieci. To dlatego analiza pakietów jest podstawą realnej diagnostyki sieci, a nie tylko definicją ze słownika.
