Slow-Start

De Viquipèdia
Dreceres ràpides: navegació, cerca

Slow-Start (de l'anglès, arrencada lenta) és part de l'estratègia de control de congestió utilitzada per TCP, el protocol de transmissió de dades fet servir per moltes aplicacions d'Internet, com HTTP i Secure Shell. Slow-Start es fa servir juntament amb altres algorismes per a evitar enviar més dades de les que la xarxa és capaç de transmetre, és a dir, evitar la congestió de xarxa.

Algorisme[modifica | modifica el codi]

Un algorisme de Slow-Start consisteix en dues fases diferents: la fase de creixement exponencial, i la fase de creixement lineal. Durant la fase de creixement exponencial, Slow-Start treballa incrementant la finestra de congestió TCP en un segment per cada confirmació (o ACK per l'anglès acknowledgment) rebuda. Això passa fins que una confirmació no és rebuda per a algun segment o un valor llindar predeterminat per a la finestra és assolit. Si ocorre un succés de pèrdua, TCP assumeix que és degut a la congestió de la xarxa i pren mesures per reduir la càrrega que li dóna. Un cop un succés de pèrdua s'ha donat o el llindar ha estat assolit, TCP entra en la fase de creixement lineal (o “evitació de congestió” per l'anglès congestion avoidance). En aquest punt, la finestra és incrementada en 1 segment per a cada RTT (de l'anglés Round Trip Time, o temps d'anada i tornada). Això passa fins que es dóna un succés de pèrdua.

Tot i que l'estratègia és coneguda com a "Slow-Start", el seu creixement de la finestra de congestió és bastant agressiu.[1]

Slow-Start[modifica | modifica el codi]

L'algorisme comença en la fase de creixement exponencial inicialment amb 1 o 2 segments (depenent de la variant) com a valor de la finestra de congestió (o cwnd per l'anglès congestion window), i incrementa la seva mida exponencialment (cwnd = cwnd * 2) fins que un llindar de Slow-Start predefinit és assolit. Un cop el llindar és assolit, la mida de la finestra de congestió és incrementada linealment (cwnd = cwnd + (1/cwnd)). Quan les confirmacions de segment no són rebudes, el llindar de slow-start passa a ser la meitat de la finestra de congestió, i l'algorisme es reinicia.

Fast Recovery[modifica | modifica el codi]

Hi ha una variació de l'algorisme slow-start coneguda com a fast recovery (de l'anglès, recuperació ràpida). En l'algorisme fast recovery, quan els paquets no són rebuts (detectat mitjançant 3 ACKs duplicats), la mida de la finestra de congestió és reduïda al llindar de slow-start, en comptes de fer-ho al valor inicial (menor).

Problemes[modifica | modifica el codi]

Slow-Start assumeix que els segments no confirmats són deguts a la congestió de la xarxa. Mentre que aquesta és una assumpció acceptable per a moltes xarxes, els segments es poden perdre per altres raons, com a la baixa qualitat de la transmissió de la capa d'enllaç de dades. Així, slow-start pot donar un baix rendiment en situacions amb recepció pobre, com en les xarxes sense fils.

Referències[modifica | modifica el codi]

  1. Jacobson, Van L. Congestion avoidance and control (en anglès). SIGCOMM '88 Symposium proceedings on Communications architectures and protocols, 1988. 

Enllaços externs[modifica | modifica el codi]