Slow-Start

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

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 dona. 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 la 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 dona 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

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

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

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

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

Enllaços externs

  • TCP Diagrama de seqüència de Slow Start Arxivat 2007-09-30 a Wayback Machine. (anglès)