TCP/IP to rodzina protokołów sieciowych, na której stoi cały internet i większość sieci lokalnych. Nazwa łączy dwa najważniejsze elementy: IP (Internet Protocol), który adresuje i dostarcza pakiety między urządzeniami, oraz TCP (Transmission Control Protocol), który dba o to, żeby dane dotarły w komplecie i w dobrej kolejności. W praktyce mówiąc „TCP/IP” mamy na myśli cały zestaw, czyli także UDP, ICMP czy protokoły aplikacyjne, które na tym fundamencie działają.
Żeby to ogarnąć, wyobraź sobie model warstwowy. TCP/IP dzieli komunikację na cztery warstwy: łącza (Ethernet, Wi-Fi), internetu (IP — trasowanie pakietów po adresach), transportowa (TCP i UDP) oraz aplikacji (HTTP, DNS, SMTP). Każda warstwa robi swoje i przekazuje robotę dalej, dzięki czemu twoja przeglądarka nie musi wiedzieć, czy siedzisz na kablu, czy na Wi-Fi.
Kluczowa różnica, którą warto zapamiętać: TCP jest połączeniowy i niezawodny — nawiązuje połączenie tzw. three-way handshake (SYN, SYN-ACK, ACK), numeruje segmenty, potwierdza odbiór i retransmituje to, co zginęło. Dlatego używają go strony WWW, e-mail czy SSH. UDP z kolei wysyła pakiety „na żywioł”, bez gwarancji dostarczenia, za to szybko i bez narzutu — stąd jego miłość do streamingu, gier online i DNS.
Przykład z praktyki
Chcesz sprawdzić, czy serwer w ogóle przyjmuje połączenia na danym porcie? Zamiast zgadywać, odpalasz w terminalu:
nc -zv example.com 443
To otwiera połączenie TCP na port 443 (HTTPS) i mówi ci, czy port jest otwarty. Jeśli chcesz zajrzeć głębiej i zobaczyć handshake na żywo, łapiesz ruch przez tcpdump -i any port 443 albo otwierasz Wireshark i filtrujesz po tcp.port == 443. Zobaczysz tam dokładnie pakiety SYN i ACK — teoria z podręcznika nagle staje się namacalna.
Częste błędy i mity
- „TCP/IP to jeden protokół” — nie, to cała rodzina. TCP i IP to tylko dwa najgłośniejsze nazwiska.
- Mylenie portu z adresem IP — IP wskazuje maszynę, port wskazuje konkretną usługę na niej.
- Założenie, że „ping działa, więc aplikacja zadziała” — ping to ICMP, a nie TCP. Otwarty host nie znaczy otwarty port.
- Zapominanie o NAT — w sieci lokalnej masz adres prywatny, na świat wychodzisz pod innym IP.
Pojęcia powiązane: model OSI, UDP, port, gniazdo (socket), DNS, NAT, three-way handshake, pakiet, MTU, IPv4 i IPv6.