TCP (Transmission Control Protocol) oraz UDP (User Datagram Protocol) to protokół warstwy transportowej w modelu TCP/IP, używany do niezawodnej wymiany danych między aplikacjami w sieciach komputerowych.
| TCP (Transmission Control Protocol) | UDP (User Datagram Protocol) | |
|---|---|---|
| Typ połączenia | Połączeniowy (3-way handshake) | Bezpołączeniowy |
| Niezawodność | Gwarantuje dostarczenie, retransmisje w razie utraty | Brak gwarancji, pakiety mogą ginąć lub przychodzić w złej kolejności |
| Kolejność danych | Zachowana (numeracja segmentów) | Nie jest zachowana (jeśli aplikacja tego nie obsłuży) |
| Kontrola przepływu | Tak (okno TCP) | Nie |
| Kontrola przeciążenia | Tak (algorytmy: slow start, congestion avoidance) | Nie |
| Nagłówek | Minimum 20 bajtów | 8 bajtów |
| Szybkość transmisji | Wolniejszy, większy narzut | Szybszy, mały narzut |
| Typowe zastosowanie | Tam, gdzie kluczowa jest niezawodność i spójność danych: WWW (HTTP/HTTPS), e-mail (SMTP, IMAP, POP3), SSH | Tam, gdzie liczy się szybkość i niskie opóźnienie: DNS, VoIP, streaming audio/wideo, gry online |
| Strumień vs. datagram | Strumieniowy (ciąg bajtów bez granic) | Datagramowy (każdy pakiet oddzielny) |
| Broadcasting | Nie wspiera | Wspiera |