Diferența cheie între TCP și UDP este fiabilitatea. Fiabilitatea unei comunicații TCP este obținută prin utilizarea sesiunilor orientate pe conexiune. Înainte ca un host care folosește TCP să trimită datele către un alt host, TCP inițiază procesul de realizare a conexiunii cu destinația. Conexiunea dinamică permite urmărirea unei sesiuni sau existența stream-ului de comunicare între hosturi. Acest proces se asigură că fiecare host este conștient și pregătit pentru stream-ul de comunicare. O conversație TCP necesită stabilirea unei sesiuni între hosturi în ambele direcții, așa cum se arată în animație.

După ce a fost stabilită o sesiune, iar transferul de date a început, destinația trimite confirmări către sursă pentru segmentele pe care le-a primit. Aceste confirmări formează baza de fiabilitate pentru sesiunea TCP. Atunci când sursa primește o confirmare, știe că datele au fost livrate cu succes și pot renunța la urmărirea datelor. Dacă sursa nu primește confirmare într-o anumită perioadă de timp, se retransmit datele către destinație.

O parte din traficul adițional generat utilizând TCP este cel generat de confirmări de primire și retransmiteri. Stabilirea sesiunilor realizează supraîncărcarea sub forma unor segmente adiționale ce sunt interschimbate. Există și supraîncărcare adițională pe hosturi individuale create din nevoia de a urmări ce segmente așteaptă confirmarea și de procesul de retransmisie.