Warstwa transportowa świadczy swoje usługi poprzez:

Protokoły UDP i TCP są protokołami warstwy transportowej.

Datagramy UDP i segmenty TCP posiadają nagłówki (dodawane na początku), zawierające m .in. port źródłowy i docelowy. Te numery portów pozwalają na skierowanie danych do odpowiedniej aplikacji adresata.

Protokół TCP nie wysyła danych dopóki nie ustali, że adresat jest gotowy do ich odbioru. Protokół TCP zarządza przepływem danych i ponawia wysyłkę każdego segmentu, którego odbiór nie zostanie potwierdzony. W celu zapewnienia niezawodności dostarczenia danych, protokół TCP używa mechanizmu trójetapowego uzgadniania, parametrów czasowych, potwierdzeń oraz przesuwnego okna. To zapewnienie niezawodności ma z kolei wpływ na zwiększenie obciążenia sieci z powodu większych rozmiarów nagłówków oraz przesyłania większej ilości informacji kontrolnych, zarządzających komunikacją między klientem i serwerem.

W przypadku, gdy aplikacja potrzebuje dostarczyć dane przez sieć szybko oraz przepustowość sieci nie jest wystarczająca dla przesyłania dodatkowych informacji kontrolnych między klientem i serwerem, programiści w warstwie transportowej wybiorą raczej protokół UDP. Spowodowane jest to tym, że protokół UDP nie śledzi przebiegającej komunikacji, nie potwierdza otrzymania datagramów przez adresata i również nie ponawia wysłania utraconych datagramów - po prostu przekazuje dane jak tylko je scali do warstwy aplikacji. Jednakże, to niekoniecznie oznacza, że ten sposób komunikacji nie jest godny zaufania. W warstwie aplikacji, jeśli tylko będzie to konieczne, mogą zostać zastosowane protokoły i usługi, które odpowiednio obsłużą zagubione lub otrzymane w złej kolejności datagramy.

Wybór protokołu w warstwie transportowej zależy od projektantów oprogramowania i dokonywany jest tak, aby spełnić wymagania aplikacji. Jest niezmiernie ważnym, aby pamiętać, że także inne warstwy mają wpływ na komunikację w sieci i jej wydajność.