Protokół UDP (User Datagram Protocol) należy do warstwy transportowej modelu TCP/IP. Jego kluczową cechą jest bezpołączeniowość: przed wysłaniem danych nie ustanawia się sesji ani nie wykonuje procedury zestawienia połączenia. Dane są przesyłane w postaci datagramów, a protokół nie dostarcza mechanizmów, które gwarantowałyby, że datagram dotrze, dotrze w odpowiedniej kolejności albo że zostanie automatycznie wysłany ponownie po utracie.
W praktyce oznacza to brak typowych dla niezawodnego transportu funkcji takich jak: potwierdzenia odbioru (ACK), retransmisje, kontrola przepływu oraz sekwencjonowanie. UDP może mieć sumę kontrolną, ale nawet jeśli wykryje błąd, nie uruchamia mechanizmu "naprawy" poprzez ponowne wysłanie – ewentualna obsługa strat/błędów jest przeniesiona do aplikacji.
Odpowiedź TCP jest błędna, ponieważ TCP także jest warstwy transportowej, ale jest połączeniowy i zapewnia niezawodność dzięki mechanizmom kontroli poprawności dostarczania (m.in. potwierdzenia i retransmisje). Odpowiedzi IP oraz ICMP są błędne z innego powodu: te protokoły nie są transportowe. IP odpowiada za adresację i routing w warstwie internetu (zbliżonej do warstwy sieciowej OSI), a ICMP służy do komunikatów diagnostycznych i błędów (np. wykorzystywany przez narzędzia typu ping).
Warto zapamiętać zastosowania: UDP często wybiera się tam, gdzie liczy się niskie opóźnienie i dopuszcza się sporadyczne straty, np. DNS, VoIP, streaming czy gry online. TCP wybiera się tam, gdzie kluczowa jest kompletność i kolejność danych, np. transmisja plików czy wiele połączeń WWW.