Po ustanowieniu sesji, protokół TCP ma możliwość kontrolowania transmisji. Ze względu na możliwość kontroli aktualnej transmisji, protokół TCP uważa się za połączeniowy (ang. stateful). Protokół połączeniowy to taki, który na bieżąco nadzoruje stan transmisji. Dla przykładu, kiedy dane są wysyłane przy użyciu protokołu TCP, nadawca oczekuje potwierdzenia dostarczenia informacji od odbiorcy. TCP śledzi czy informacje zostały wysłane i czy ich dostarczenie zostało potwierdzone. Jeżeli dostarczenie nie zostało potwierdzone, nadawca zostaje zobligowany do ich ponownego wysłania. Sesja połączeniowa zaczyna się podczas ustanawiania połączenia i kończy podczas jej zamknięcia.

Uwaga: Utrzymanie sesji połączeniowej wymaga dodatkowych zasobów, które nie są wymagane przez protokoły bezpołączeniowe, takie jak np. UDP.

TCP wprowadza pewien dodatkowy narzut, ze względu na większą liczbę realizowanych funkcji. Jak przedstawiono na rysunku, każdy segment TCP dodaje aż 20 dodatkowych bajtów w nagłówku, podczas procesu enkapsulacji, podczas gdy datagram UDP dodaje tylko 8 dodatkowych bajtów. Można więc zauważyć zwiększenie narzutu przez TCP, względem UDP. Dodatkowe informacje, dodawane w nagłówku TCP to:

Przykładem aplikacji, wykorzystujących TCP jest przeglądarka internetowa, klient poczty elektronicznej oraz programy oferujące przesyłanie plików.