De tre huvudkomponenterna i TCP-trängselkontrollalgoritmer är:
1. långsam start: Detta är den inledande fasen av trängselkontroll. När en TCP -anslutning upprättas startar avsändaren att sända paket med en liten överbelastningsfönsterstorlek (vanligtvis 1 MSS, där MSS är den maximala segmentstorleken). Varje gång ett erkännande (ACK) tas emot för ett överfört paket ökar trängselfönsterstorleken med 1 MSS. Detta leder till exponentiell tillväxt av överföringshastigheten. Långsam start hjälper avsändaren snabbt att hitta lämplig överföringshastighet utan att överväldiga nätverket.
2. trängsel Undvikande: När överbelastningsfönstret når en viss tröskel (vanligtvis den långsamma starttröskeln, Ssthresh), kommer avsändaren in i fasen av överbelastning. I denna fas ökas trängselfönstret långsammare-med 1 MSS för varje rundturtid (RTT) av erkännande som erhållits. Denna tillsatsökning syftar till att gradvis undersöka nätverkskapaciteten utan att orsaka överbelastning. Algoritmen fortsätter att öka trängselfönstret tills trängsel upptäcks.
3. trängseldetektering och återhämtning: Denna komponent utlöses när trängsel upptäcks. Denna detektion inträffar vanligtvis när paketförlust inträffar (t.ex. på grund av tappade paket eller timeouts). Vid upptäckt av trängsel vidtar algoritmen drastiska åtgärder för att minska överföringshastigheten. Den vanligaste återhämtningsmekanismen är att halvera överbelastningsfönsterstorleken (multiplikativ minskning). Denna plötsliga minskning hjälper snabbt att lindra trängseln. Den långsamma starttröskeln (SSThresh) uppdateras vanligtvis också till hälften av storleken på överbelastningsfönstret vid tidpunkten för trängseldetektering, för att förhindra att avsändaren aggressivt ökar överföringshastigheten igen för snabbt.
Det är viktigt att notera att många variationer och förfiningar finns inom dessa tre kärnkomponenter över olika TCP -trängselskontrollalgoritmer (t.ex. Tahoe, Reno, New Reno, Cubic). Dessa variationer fokuserar huvudsakligen på hur trängsel upptäcks, hur trängselfönstret justeras och hur långsam startgränsen uppdateras.