Definicja #
TCP/IP (Transmission Control Protocol / Internet Protocol) to stos protokołów komunikacyjnych będący fundamentem Internetu i większości sieci komputerowych. Nazwa odnosi się do dwóch kluczowych protokołów, choć stos obejmuje wiele warstw i protokołów.
Model TCP/IP składa się z czterech warstw:
- Warstwa dostępu do sieci (Link) — Ethernet, Wi-Fi (802.11), ARP; fizyczne przesyłanie ramek w sieci lokalnej
- Warstwa Internetu (Internet) — IP (IPv4, IPv6): adresowanie i routing pakietów między sieciami; ICMP (ping)
- Warstwa transportowa (Transport) — TCP: niezawodne, połączeniowe przesyłanie z potwierdzeniami (ACK), kontrolą przepływu i retransmisją; UDP: bezpołączeniowe, szybkie przesyłanie bez gwarancji dostarczenia
- Warstwa aplikacji (Application) — HTTP/HTTPS, DNS, SMTP, FTP, SSH, TLS; protokoły aplikacyjne korzystające z TCP lub UDP
TCP a UDP — kluczowa różnica:
- TCP — trójfazowy handshake (SYN-SYN/ACK-ACK), gwarantuje dostarczenie i kolejność; stosowany dla HTTP, HTTPS, SSH, SMTP
- UDP — brak połączenia i potwierdzeń; szybszy, stosowany dla DNS, VoIP, gier online, video streaming
IP addressing:
- IPv4 — 32-bitowe adresy (np. 192.168.1.1); przestrzeń adresowa wyczerpana; NAT jako obejście
- IPv6 — 128-bitowe adresy (np. 2001:db8::1); nieograniczona przestrzeń adresowa; stopniowo wdrażany
- Porty — identyfikują aplikacje na hoście; well-known ports: 80 (HTTP), 443 (HTTPS), 22 (SSH), 53 (DNS)
Zastosowania #
TCP/IP stosuje się do:
- Komunikacji między serwisami w architekturze mikrousług — REST API, gRPC i inne protokoły działają na TCP/IP
- Diagnostyki sieci — znajomość TCP/IP niezbędna do analizy problemów sieciowych (Wireshark, netstat, traceroute)
- Konfiguracji firewalli i reguł bezpieczeństwa — filtrowanie ruchu po adresach IP, portach i protokołach
- Optymalizacji wydajności sieci — TCP window scaling, Nagle's algorithm, keep-alive connections, connection pooling
- Certyfikacji sieciowych — CCNA, CompTIA Network+ wymagają dogłębnej znajomości TCP/IP
Ścieżka nauki #
TCP/IP to fundament wiedzy sieciowej — wymagany dla DevOps, administratorów sieci i programistów systemów rozproszonych.
Zacznij od:
- Model TCP/IP vs model OSI — 4 vs 7 warstw; mapowanie protokołów na warstwy
- Adresowanie IPv4: klasy adresów, maska podsieci (CIDR), subnetting (
192.168.1.0/24) - TCP handshake: SYN → SYN/ACK → ACK; stany połączenia (ESTABLISHED, TIME_WAIT, CLOSE_WAIT)
- Podstawowe narzędzia diagnostyczne:
ping,traceroute/tracert,netstat,nslookup
Następnie pogłębiaj:
- Wireshark — analiza pakietów TCP/IP w czasie rzeczywistym; filtrowanie po protokole, IP, porcie
- DNS — rekordy A, AAAA, CNAME, MX, TXT; resolver, autoritatywny NS
- TLS/SSL — szyfrowanie na warstwie aplikacji; handshake TLS, certyfikaty X.509
- IPv6 — adresy, autoconfiguration (SLAAC), dual-stack
- Certyfikacje: CompTIA Network+, Cisco CCNA — formalizują wiedzę TCP/IP
FAQ #
- Czym różni się TCP od UDP?
- TCP (Transmission Control Protocol) jest połączeniowy — wymaga trójfazowego handshake, gwarantuje dostarczenie i kolejność pakietów przez potwierdzenia (ACK) i retransmisje. UDP (User Datagram Protocol) jest bezpołączeniowy — wysyła pakiety bez potwierdzenia i gwarancji kolejności. TCP jest niezawodny ale wolniejszy; UDP jest szybszy ale zawodny. HTTP i SSH używają TCP; DNS, VoIP i streaming używają UDP.
- Co to jest port w kontekście TCP/IP?
- Port to 16-bitowy numer (0–65535) identyfikujący konkretną aplikację lub usługę na hoście. Adres IP identyfikuje maszynę, port identyfikuje usługę. Well-known ports: 80 (HTTP), 443 (HTTPS), 22 (SSH), 3306 (MySQL), 5432 (PostgreSQL). Para (IP:port) nazywana jest gniazdem (socket) i jednoznacznie identyfikuje połączenie.
- Czym jest adresowanie CIDR?
- CIDR (Classless Inter-Domain Routing) to notacja adresu IP z maską podsieci, np. 192.168.1.0/24. Liczba po ukośniku oznacza liczbę bitów przeznaczonych na adres sieci. /24 oznacza 256 adresów (254 użytecznych hostów). CIDR zastąpił starszy system klas adresów (A, B, C) i pozwala na elastyczne przydzielanie przestrzeni adresowej.
- Dlaczego programista powinien znać TCP/IP?
- TCP/IP jest fundamentem każdej komunikacji sieciowej — REST API, websockets, bazy danych, mikroserwisy. Znajomość protokołów pomaga debugować problemy sieciowe (timeouty, refused connections), konfigurować firewall reguły, optymalizować wydajność połączeń i zrozumieć bezpieczeństwo sieciowe. DevOps i backend developerzy szczególnie korzystają z tej wiedzy.