Kluczową różnicą pomiędzy TCP i UDP jest niezawodność. Niezawodność komunikacji TCP dokonywana jest przez sesje zorientowane połączeniowo. Zanim host będzie mógł wysłać dane przy pomocy TCP, warstwa transportowa inicjuje proces zestawienia połączenia z hostem docelowym. Ten rodzaj połączenia umożliwia śledzenie sesji lub strumienia komunikacyjnego pomiędzy hostami. Dzięki temu, obie strony są świadome komunikacji i są do niej odpowiednio przygotowane. Kompletna konwersacja TCP wymaga ustanowienia sesji pomiędzy hostami w obu kierunkach, jak to przedstawiono na rysunku.

Po ustanowieniu sesji i rozpoczęciu transferu danych, host docelowy wysyła do źródła potwierdzenie o odebranych segmentach. Potwierdzenia te stanowią podstawę niezawodności w sesji TCP. Jeśli źródło otrzyma potwierdzenie, to wie że dane zostały prawidłowo dostarczone i można przestać monitorować dostarczone dane. Jeśli zaś host źródłowy takiego potwierdzenia w określonym czasie nie otrzyma, będzie zmuszony retransmitować dane.

Część dodatkowego narzutu wynikającego z użycia TCP, to ruch sieciowy generowany przez potwierdzenia i retransmisje. Ustanawianie sesji tworzy dodatkowy narzut w postaci segmentów, wymienianych podczas tego procesu. Prócz tego hosty muszą na bieżąco śledzić stan sesji, oczekiwać na potwierdzenia dostarczenia segmentów i dokonywać ewentualnych retransmisji.