# Control de congestió TCP

El protocol de control de transmissió (TCP) utilitza un algorisme de control de congestió que inclou diversos aspectes d'un esquema d'augment additiu/disminució multiplicativa (AIMD), juntament amb altres esquemes, com ara l'inici lent i la finestra de congestió (CWND), per aconseguir evitar la congestió. L'algoritme TCP per evitar la congestió és la base principal per al control de la congestió a Internet. Segons el principi d'extrem a extrem, el control de la congestió és en gran manera una funció dels amfitrions d'Internet, no de la xarxa en si. Hi ha diverses variacions i versions de l'algorisme implementades en les piles de protocols dels sistemes operatius d'ordinadors que es connecten a Internet.
Per evitar el col·lapse congestiu, TCP utilitza una estratègia de control de congestió multifacètica. Per a cada connexió, TCP manté un CWND, limitant el nombre total de paquets no reconeguts que poden estar en trànsit d'extrem a extrem. Això és una mica anàleg a la finestra lliscant de TCP utilitzada per al control de flux.

## Augment additiu/disminució multiplicativa

L'algorisme d'augment additiu/disminució multiplicativa (AIMD) és un algorisme de control de bucle tancat. AIMD combina el creixement lineal de la finestra de congestió amb una reducció exponencial quan es produeix una congestió. Múltiples fluxos que utilitzen el control de congestió AIMD eventualment convergiran per utilitzar quantitats iguals d'un enllaç disputat.
Aquest és l'algorisme que es descriu a per a l'estat "evitació de congestió".

## Finestra de congestió

A TCP, la finestra de congestió (CWND) és un dels factors que determina el nombre de bytes que es poden enviar en qualsevol moment. La finestra de congestió la manté l'emissor i és un mitjà per evitar que un enllaç entre l'emissor i el receptor es sobrecarregui amb massa trànsit. Això no s'ha de confondre amb la finestra lliscant que manté l'emissor que existeix per evitar que el receptor es sobrecarregui. La finestra de congestió es calcula estimant quanta congestió hi ha a l'enllaç.
Quan es configura una connexió, la finestra de congestió, un valor que es manté independentment a cada host, s'estableix en un petit múltiple de la mida màxima del segment (MSS) permesa en aquesta connexió. Una variació addicional en la finestra de congestió està dictada per un enfocament d'augment additiu/disminució multiplicativa (AIMD). Això vol dir que si es reben tots els segments i els reconeixements arriben al remitent a temps, s'afegeix alguna constant a la mida de la finestra. Seguirà diferents algorismes.
Un administrador del sistema pot ajustar el límit màxim de mida de la finestra o ajustar la constant afegida durant l'augment additiu, com a part de l'ajust de TCP.
El flux de dades a través d'una connexió TCP també es controla mitjançant l'ús de la finestra de recepció anunciada pel receptor. Un remitent pot enviar dades menys que la seva pròpia finestra de congestió i la finestra de recepció.

## Inici lent

Inici lent, definit per Inici lent, definit per RFC 5681, forma part de l'estratègia de control de congestió que utilitza TCP juntament amb altres algorismes per evitar l'enviament de més dades de les que la xarxa és capaç de reenviar, és a dir, per evitar provocar congestió de la xarxa, forma part de l'estratègia de control de congestió que utilitza TCP juntament amb altres algorismes per evitar l'enviament de més dades de les que la xarxa és capaç de reenviar, és a dir, per evitar provocar congestió de la xarxa.

## Retransmissió ràpida

La retransmissió ràpida és una millora de TCP que redueix el temps que un remitent espera abans de retransmetre un segment perdut. Un remitent TCP normalment utilitza un temporitzador simple per reconèixer els segments perduts. Si no es rep un reconeixement per a un segment concret dins d'un temps especificat (en funció del temps de retard d'anada i tornada estimat), l'emissor assumirà que el segment s'ha perdut a la xarxa i retransmetrà el segment.

## Algorismes

La convenció de nomenclatura per als algorismes de control de congestió (CCA) pot haver-se originat en un article de 1996 de Kevin Fall i Sally Floyd.
La següent és una classificació possible segons les propietats següents:
* el tipus i la quantitat de comentaris rebuts de la xarxa.
* desplegabilitat incremental a Internet actual.
* l'aspecte de rendiment que pretén millorar: xarxes de productes amb gran ample de banda amb retard (B); enllaços amb pèrdua (L); equitat (F); avantatge als cabals curts (S); enllaços de taxa variable (V); velocitat de convergència (C)
* el criteri d'equitat que utilitza.
Alguns mecanismes d'evitació de congestió coneguts es classifiquen per aquest esquema de la següent manera:
| Variant | Feedback | Canvis necessaris | Beneficis | Imparcialitat |
| (Nou) Reno | Pèrdua | Retard |
| Vegas | Retard | Remitent | Menys pèrdues | Proporcional |
| Alta velocitat | Pèrdua | Remitent | Gran amplada de banda | |
| BIC | Pèrdua | Remitent | Gran amplada de banda | |
| CÚBIC | Pèrdua | Remitent | Gran amplada de banda | |
| C2TCP | Pèrdua/Retard | Remitent | Latència molt baixa i amplada de banda alta | |
| NATCP | Senyal multibit | Remitent | Rendiment gairebé òptim | |
| Elàstic-TCP | Pèrdua/Retard | Remitent | Gran amplada de banda / curta i llarga distància | |
| Àgil-TCP | Pèrdua | Remitent | Gran amplada de banda/ curta distància | |
| H-TCP | Pèrdua | Remitent | Gran amplada de banda | |
| RÀPID | Retard | Remitent | Gran amplada de banda | Proporcional |
| TCP compost | Pèrdua/Retard | Remitent | Gran amplada de banda | Proporcional |
| Westwood | Pèrdua/Retard | Remitent | Enllaços amb pèrdua | |
| Jersey | Pèrdua/Retard | Remitent | Enllaços amb pèrdua | |
| BBR | Retard | Remitent | BLVC, Bufferbloat | |
| PINÇA | Senyal multibit | Receptor, encaminador | Enllaços de tarifa variable | Màxim-mín |
| TFRC | Pèrdua | Emissor, receptor | Sense retransmissió | Retard mínim |
| XCP | Senyal multibit | Emissor, receptor, encaminador | BLFC | Màxim-mín |
| VCP | senyal de 2 bits | Emissor, receptor, encaminador | BLF | Proporcional |
| MaxNet | Senyal multibit | Emissor, receptor, encaminador | BLFSC | Màxim-mín |
| JetMax | Senyal multibit | Emissor, receptor, encaminador | Gran amplada de banda | Màxim-mín |
| VERMELL | Pèrdua | Encaminador | Reducció de retard | |
| ECN | Senyal d'un sol bit | Emissor, receptor, encaminador | Pèrdua reduïda | |

## Referències

* ↑ «TCP Congestion Avoidance Explained via a Sequence Diagram» (en anglès). eventhelix.com. Arxivat de l'original el 2010-11-22. [Consulta: 11 novembre 2023].
* ↑ Blanton, Ethan; Paxson, Vern; Allman, Mark "TCP Congestion Control", 9-2009.
* ↑ Blanton, Ethan; Paxson, Vern; Allman, Mark "TCP Congestion Control", 9-2009.
* ↑ Abbasloo et al., 2019.
* ↑ Cardwell, Neal; Cheng, Yuchung; Gunn, C. Stephen; Yeganeh, Soheil Hassas; Jacobson, Van Queue, 14, 5, 2016, pàg. 20–53. DOI: 10.1145/3012426.3022184 [Consulta: free].