După ce TCP stabilește o sesiune, poate urmări conversația din acea sesiune. Datorită acestei abilități a TCP-ului, aceste este considerat un protocol dinamic. Un protocol dinamic este un protocol care urmărește starea sesiunii de comunicare. De exemplu, atunci când datele sunt transmise folosind TCP, expeditorul se așteaptă ca destinatarul să confirme că a primit datele. TCP urmărește ce informații au fost trimise și ce informații au fost confirmate. Dacă datele nu sunt confirmate, expeditorul presupune că datele nu au ajuns la destinație și le retrimite. Sesiunea dinamică începe cu stabilirea sesiunii și se oprește cu terminarea sesiunii.
Notă:Păstrarea acestor informații de stare necesită resurse care nu sunt necesare pentru un protocol cum ar fi UDP.
TCP realizează supraîncărcarea pentru a obține aceste funcții. Așa cum se arată în figură, fiecare segment TCP are 20 octeți de supraîncărcare în header-ul care încapsulează datele layer-ului aplicație. Asta înseamnă mai mult decât un segment UDP, care are doar 8 octeți. Traficul suplimentar include:
- Numărul de secvneță (32 biți) - Folosit pentru reasamblarea datelor.
- Numărul de confirmare (32 biți) - Indică datele care au fost primite.
- Lungimea header-ului (4 biți) - Cunoscut ca ʺdata offsetʺ. Indică lungimea header-ului segmentului TCP.
- Rezervat (6 biți) - Acest câmp este rezervat pentru viitor.
- Biți de control (6 biți) - Include flag-uri care indică scopul și funcția segmentului TCP.
- Dimensiunea ferestrei (16 biți) - Indică numărul de segmente ce poate fi acceptat la un anumit moment de timp.
- Checksum (16 biți) - Folosit pentru verificarea erorilor din datele și header-ul segmentului.
- Urgent (16 biți) - Indică dacă datele sunt urgente.
Exemple de aplicații care folosesc TCP sunt navigatoarele web, email-urile și transferurile de fișiere.