31
REDES DE COMPUTADORAS 2 Clase 9

Redes de Computadoras 1 · Principios de control de congestión Congestión: Informalmente: “demasiadas fuentes enviando muchos datos muy rápido para que la red lo maneje” Es

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Redes de Computadoras 1 · Principios de control de congestión Congestión: Informalmente: “demasiadas fuentes enviando muchos datos muy rápido para que la red lo maneje” Es

REDES DE

COMPUTADORAS 2 Clase 9

Agenda

Servicios de la capa transporte

Multiplexing y demultiplexing

Transporte sin conexioacuten UDP

Principios de transferencia confiable de datos

Transporte orientado a la conexioacuten TCP

bull Estructura de un segmento

bull Transferencia confiable de datos

bull Control de flujo

bull Gestioacuten de la conexioacuten

Principios del control de congestioacuten

Control de congestioacuten en TCP

Principios de control de congestioacuten

Congestioacuten

Informalmente ldquodemasiadas fuentes enviando muchos

datos muy raacutepido para que la red lo manejerdquo

Es distinto a control de flujo eacuteste ocurre entre dos

aplicaciones

Manifestaciones

bull Peacuterdidas de paquetes (buffer overflow en routers)

bull Grandes retardos (en las colas en los router)

Uno de los problemas top-10

La capa de red no ofrece garantiacuteas de

entrega de paquetes en orden tasas de

transferencia fija llegada confiable de datos

y retardo acotado desde transmisioacuten hasta

recepcioacuten iquestCuaacuteles de estos requerimientos

son posibles de garantizar viacutea una

programacioacuten adecuada de la capa de

transporte

Entrega de paquetes en orden y llegada confiable

de datos

Causascostos de congestioacuten escenario

1 (buffer infinito sin re-enviacuteo) dos transmisores dos receptores

un router buffer tamantildeo infinito

sin retransmisioacuten

λin datos enviados por la aplicacioacuten (bytessec)

λout datos recibidos por la

aplicacioacuten (bytessec)

grandes retardos en estado congestionado (muchos paquetes esperando en cola)

maacuteximo flujo posible (throughput = C) de datos

unlimited shared

output link buffers

(C = link capacity)

Host A in original data

Host B

out

Causascostos de congestioacuten escenario

2 (buffer no infinito con re-enviacuteo) un router buffer finito

Se pierden paquetes que no tienen espacio en

buffer

transmisor retransmite paquetes perdidos

Buffer enlace de salida

finito compartido

Host A in original

data

Host B

out

in original data plus

retransmitted data

Causascostos de congestioacuten escenario 2 (a) caso perfecto sin peacuterdidas ni retransmisiones λin = λrsquoin

(b) retransmisioacuten soacutelo en caso de peacuterdida de segmentos (no por timeout

prematuro) λrsquoin gt λout

(b) retransmisioacuten de paquetes hace que λrsquoin sea maacutes grande (que el caso

perfecto) para el mismo λout (No necesariamente R3 como cota)

(c) retransmisiones innecesarias (timeout prematuros) enlaces enviacutean muacuteltiples

copias del paquete (eg dos re-enviacuteos por paquete)

ldquocostosrdquo de congestioacuten

maacutes trabajo (retransmisioacuten) para lograr el transporte de datos ldquogoodputrdquo

R2

R2 in

out

b

R2

R2 in

out

a

R2

R2 in

out

c

R4

R3

Causascostos de congestioacuten escenario 3

cuatro transmisores

rutas con multihops

timeoutretransmisiones

iquestQueacute pasa cuando λin se incrementa y λrsquoin crece

finite shared output

link buffers

Host A in original data

Host B out

in original data plus

retransmitted data

Causascostos de congestioacuten escenario 3

Otro ldquocostordquo de congestioacuten

cuando se descartan paquetes cualquier capacidad (de router) usada anteriormente pasa a ser un recurso desperdiciado

Estrategias para control de congestioacuten

Control de congestioacuten

extremo a extremo

No hay informacioacuten de

realimentacioacuten expliacutecita de la red

La congestioacuten es inferida desde

las peacuterdidas y retardos

observados por terminales en los

extremos

Es la estrategia usada por TCP

Control de congestioacuten asistido

por la red

routers proveen realimentacioacuten a

sistemas extremos

Un Bit uacutenico indicando

congestioacuten (ej SNA DECbit

TCPIP ECN ATM)

Expliacutecitamente se informa al Tx

la tasa que el router puede

soportar

Los podemos clasificar en dos grupos amplios

Caso de estudio Control de congestioacuten en ATM

ABR (tecnologiacutea de red capa 3 y menores)

ABR Available Bit Rate

Es un servicio ldquoelaacutesticordquo o flexible

Si camino del Tx tiene poca

carga

bull Tx deberiacutea usar ancho de

banda disponible

Si camino de Tx a Rx estaacute

congestionado

bull Tx reduce a un miacutenimo la

tasa garantizada

Celdas RM (Resource

Management)

Enviadas a intervalos por Tx entre

celdas de datos

bits en celda RM son modificados

por switches

Bit NI no incrementar tasa (=

congestioacuten moderada)

Bit CI Congestion Indication

Celdas RM son retornadas al Tx por

el Rx con bits intactos

ATM Asynchronous Transfer Mode

Caso de estudio Control de congestioacuten

en ATM ABR

En celda RM hay campo ER (explicit rate) de dos bytes

bull Un Switch congestionado puede bajar valor de ER en la celda

bull Tasa de enviacuteo del Tx se ajusta a la tasa miacutenima soportable en el camino entre fuente y destino (la del switch maacutes criacutetico)

En celda de datos hay Bit EFCI (explicit forward congestion indicator) eacuteste es fijado en 1 por switch congestionado

bull Si celda de datos precedente a celda RM tiene el EFCI marcado el destino marca bit CI en celda RM retornada

TCP corriendo sobre IP espera hasta recibir tres

paquetes ACK duplicados para iniciar una

retransmisioacuten raacutepida iquestPor queacute piensa usted que los

disentildeadores de TCP no escogieron iniciar la

retransmisioacuten raacutepida tan pronto llega el primer ACK

duplicado iquestSe justifica la espera por tres ACKs

duplicados en la implementacioacuten de un protocolo

confiable en una red ATM

La retransmisioacuten no se efectuacutea ante la llegada del primer duplicado pues es posible que el primer paquete haya tomado una ruta maacutes larga y llegue con posterioridad al segundo En este caso un cambio de orden de llegada genera acuses de recibo duplicados pero no constituye peacuterdida de paquete No se justifica esperar tres ACKs en ATM pues eacutesta establece una conexioacuten entre fuente y destino luego todos los paquetes deben usar la misma ruta y con ello el orden de salida y llegada se mantiene cuando no hay peacuterdidas

Control de Congestioacuten en TCP Usa control extremo a extremo (sin

asistencia de la red)

Tx limita su ventana de transmisioacuten

Si Rx tiene espacio se tiene

CongWin es dinaacutemica y funcioacuten de la

congestioacuten percibida de la red

RcvWindow es el nuacutemero de bytes que

el Rx puede recibir en su buffer la suponemos grande y no limita la tasa de enviacuteo

iquestCoacutemo el Tx percibe la

congestioacuten

Evento de peacuterdida = timeout oacute 3

acks duplicados

Tx TCP reduce tasa (CongWin)

despueacutes de un evento de

peacuterdida

Hay tres mecanismos

AIMD (Additive-Increase

Multiplicative-Decrease)

ldquoPartida lentardquo

Conservativo despueacutes de

evento de timeout

tasaAprox

= CongWin

RTT

[Bytessec]

LastByteSentminus LastByteAckedle minCongWin RcvWindow

TCP AIMD (Additive-Increase

Multiplicative-Decrease)

Decrecimiento

multiplicativo reducir

CongWin a la mitad luego

de peacuterdida

Aumento aditivo aumenta CongWin en 1 MSS cada RTT en ausencia de peacuterdida En algunas implementaciones CongWin incrementa en MSSx(MSSCongWin) por cada ACK recibido

MSS (Maximum Segment Size) es la maacutexima cantidad de datos que se enviacutea en cada segmento sin fragmentarse

Indique queacute protocolo usa el tamantildeo de

segmento maacuteximo (MSS Maximum

Segment Size) iquestA queacute corresponde

El MSS es usado por TCP Corresponde al

MTU (Maximum Transmission Unit) maacutes

pequentildeo en la ruta de la fuente al destino

Usando segmentos de tamantildeo MSS TCP

asegura que sus paquetes no seraacuten

fragmentados

Aumento aditivo La idea es aumentar un MSS luego de un RTT

Podemos aproximarnos aumentando la CongWin cada vez

que se recibe un ACK de manera que al completar 1 RTT

hayamos sumado un MSS

Se enviacutea como maacuteximo CongWin bytes y esperamos por el acuse de recibo

NumSegmentos= NumAkcs=CongWin

MSS

Incr=MSS

NumAkcs=

MSS

CongWin

MSS

=MSSlowast MSS

CongWin

Incr Incremento por cada ACK

RTT

CongWin

Si hay ACK retardados el incremento debe ser

mayor

Partida lenta en TCP (slow start)

Cuando la conexioacuten comienza CongWin = 1

MSS

bull Ejemplo MSS = 500 bytes

amp RTT = 200 msec

bull Tasa inicial = 20 kbps

Ancho de banda disponible

puede ser gtgt MSSRTT

bull Es deseable aumentar tasa

raacutepidamente hasta una tasa

respetable

Cuando la conexioacuten comienza aumentar tasa exponencialmente raacutepido hasta tener primer evento de peacuterdida

Se le llama Slow Start porque parte desde tasa muy abaja

Partida lenta en TCP

Cuando la conexioacuten

comienza aumentar tasa

exponencialmente hasta

primera peacuterdida

bull Duplicar CongWin cada RTT

bull Es hecho incrementando CongWin en 1 MSS por cada

ACK recibido

Resumen tasa inicial es lenta

pero se acelera

exponencialmente raacutepido

Host A

RT

T

Host B

time

Reaccioacuten ante eventos de timeout

iquestCuaacutendo deberiacutea cambiar el aumento de exponencial a lineal

Un buen criterio es Cuando CongWin llega a 12 de su valor antes del timeout

Implementacioacuten Umbral variable (variable threshold)

Ante evento de peacuterdidas el umbral es fijado en 12 de CongWin justo antes de la peacuterdida

Tahoe primera versioacuten de control de congestioacuten en TCP No distinguiacutea entre timeout o ACK duplicados Reno versioacuten siguiente en TCP Siacute distingue timeout de ACK duplicados Es como TCP opera hoy

3 ACKs Duplicados Evento

umbral

Mejor

Reaccioacuten ante eventos de timeout

Despueacutes de 3 ACKs

duplicados

bull CongWin baja a la mitad

bull Luego la ventana crece

linealmente

Despueacutes de un timeout

bull CongWin es fijada en 1

MSS

bull Luego la ventana crece

exponencialmente hasta un

umbral luego crece

linealmente

3 ACKs duplicados indican

que la red es capaz de

transportar algunos

segmentos (soacutelo llegan

fuera de orden en el Rx)

Se perdioacute uno pero

llegaron los otros y por

eso tenemos ACKs

duplicados

timeout antes de 3

duplicados es ldquomaacutes

alarmanterdquo (no llegaron)

En ausencia de errores y cuando el buffer de recepcioacuten es

muy grande la tasa promedio de transferencia de TCP

durante un RTT se puede aproximar por (Tamantildeo de

Ventana de congestioacuten)RTT Muestre un diagrama que

explique la deduccioacuten de esta expresioacuten iquestEs esta expresioacuten

vaacutelida para todo valor de ldquoVentana de Congestioacutenrdquo

Luego de enviar la ventana W el Tx debe esperar la llegada del acuse de recibo maacutes antiguo para retomar la transmisioacuten

No es vaacutelida siempre pues conforme la ventana de congestioacuten aumenta aumenta la utilizacioacuten del canal y cuando eacutesta alcanza 100 no es posible seguir aumentando la tasa pues la tasa de transmisioacuten del enlace pone una cota maacutexima

Tx Rx

RT

T W

Resumen Control de Congestioacuten en TCP

Cuando CongWin estaacute bajo el Threshold (umbral) Tx estaacute en fase slow-start la ventana de transmisioacuten crece exponencialmente (un MSS por cada ACK)

Cuando CongWin estaacute sobre Threshold Tx estaacute en fase abolicioacuten de congestioacuten la ventana crece linealmente (aprox un MSS por cada RTT)

Al tercer ACK duplicados Threshold pasa a CongWin2 y CongWin pasa a Threshold

Cuando ocurre un timeout Threshold pasa a CongWin2 y CongWin se lleva a 1 MSS

Control de Congestioacuten del Tx TCP

SS or CA

SS or CA

SS or CA

Congestion

Avoidance (CA)

Slow Start (SS)

State

CongWin y Threshold no

cambian

Increment duplicate ACK count for

segment being acked

Duplicate ACK

Ingresa a Partida Lenta (slow

start)

Threshold = CongWin2

CongWin = 1 MSS

Set state to ldquoSlow Startrdquo

Timeout

Recuperacioacuten raacutepida

implementando reduccioacuten

multiplicativa CongWin no

caeraacute a 1 MSS

Threshold = CongWin2

CongWin = Threshold

Set state to ldquoCongestion Avoidancerdquo

Loss event

detected by

triple duplicate

ACK

Aumento aditivo resulta en

aumento de CongWin en apox

1 MSS cada RTT

CongWin = CongWin+MSS

(MSSCongWin)

ACK receipt for

previously

unacked data

Resulta en una duplicacioacuten de

CongWin cada RTT

CongWin = CongWin + MSS

If (CongWin gt Threshold)

set state to ldquoCongestion

Avoidancerdquo

ACK receipt for

previously

unacked data

Commentary TCP Sender Action Event

Throughput Simplificado de TCP (tasa de

transferencia de datos lograda) iquestCuaacutel es el throughput promedio de TCP como una funcioacuten del tamantildeo

de ventana CongWin y RTT

bull Ignoremos slow start ya que al ser exponencial es una fase muy

corta

TCP pide ancho de banda adicional al incrementar W en 1 MSS por

cada RTT hasta una peacuterdida

Sea W el tamantildeo de la ventana (en bytes) cuando ocurre una peacuterdida

Cuando la ventana es W el throughput es WRTT

Justo despueacutes de la peacuterdida la ventana cae a W2 y el throughput a

W2RTT

Throughput promedio entre W2RTT y WRTT es 075 WRTT

Esto debido a que el throughput crece linealmente entre ambos

valores

Futuro de TCP Ejemplo segmentos de 1500 bytes RTT de 100ms queremos

throughput de 10 Gbps

Requiere tamantildeo de ventana CongWin W = 83333 (segmentos

en traacutensito)

Throughput en teacuterminos de tasa de peacuterdida (L) es

L=(bytes perdidos)(Nuacutemero total enviados)

Para el throughput deseado con el algoritmo de control de

congestioacuten actual se toleran probabilidades de peacuterdida de soacutelo L

= 210-10 Wow (1 cada 5 mil millones de segmentos)

Se requieren nuevas versiones de TCP para enlaces de alta

velocidad (interesados ver RFC 3649)

LRTT

MSS=hputAvgThroug

122

iquestPor queacute la ventana de congestioacuten de

TCP soacutelo se reduce a la mitad cuando

la peacuterdida es detectada por 3 ACKs

duplicados mientras que se reduce a 1

MSS cuando la peacuterdida es detectada

por timeout

Porque la llegada de 3 ACKs duplicados es una

indicacioacuten que paquetes posteriores al perdido siacute

llegaron luego esta situacioacuten de congestioacuten es

menos criacutetica que cuando hay timeout sin 3 ACKs

duplicados

Equidad en TCP

Objetivo de la Equidad (fairness) Si K sesiones TCP

comparten un mismo enlace de ancho de banda R cada

una deberiacutea tener una tasa promedio de RK

TCP connection 1

Router cuello de botella de capacidad R

TCP connection 2

iquestPor queacute TCP es justo

Supongamos dos sesiones compitiendo

Aumento aditivo da pendiente de 1 como aumento de throughout

Reduccioacuten multiplicativa reduce throughput proporcionalmente

R

R

Recta de Igual tasa capacidad compartida

Throughput Conexioacuten 1

Through

put Cone

xioacuten 2

Peacuterdida decrece tasa en factor de 2

Abolicioacuten de congestioacuten aumento aditivo

Abolicioacuten de congestioacuten aumento aditivo

Peacuterdida decrece tasa en factor de 2

Equidad

Equidad y UDP

Aplicaciones Multimedia no

usan TCP

bull No quieren tasa limitada

por control de congestioacuten

En su lugar usan UDP

bull Enviacutean audioviacutedeo a tasa

constante y toleran

peacuterdidas de paquetes

Aacuterea de investigacioacuten

Hacerlas amistosas con

TCP (TCP friendly)

Equidad y conexiones TCP

paralelas

Nada previene a las aplicaciones de

abrir conexiones paralelas entre

dos hosts

Navegadores WEB hacen esto

Ejemplo Sea un enlace de tasa R

soportando 9 conexiones

Una aplicacioacuten nueva pide 1

conexioacuten TCP obtendraacute R10

Si la aplicacioacuten nueva pide 11

conexiones TCP eacutesta obtendraacute

11R20 maacutes de R2

En una subred hay 6 usuarios viendo

viacutedeos de Youtubecom viacutea conexiones

TCP iquestSi eacutestos fueran los uacutenicos

usuarios queacute fraccioacuten de la capacidad

de un enlace congestionado le deberiacutea

corresponder a cada uno

16

Nota Se supone que ese es el uacutenico traacutefico en el

enlace congestionado en otro caso seraacute la misma

fraccioacuten del traacutefico para cada conexioacuten

Page 2: Redes de Computadoras 1 · Principios de control de congestión Congestión: Informalmente: “demasiadas fuentes enviando muchos datos muy rápido para que la red lo maneje” Es

Agenda

Servicios de la capa transporte

Multiplexing y demultiplexing

Transporte sin conexioacuten UDP

Principios de transferencia confiable de datos

Transporte orientado a la conexioacuten TCP

bull Estructura de un segmento

bull Transferencia confiable de datos

bull Control de flujo

bull Gestioacuten de la conexioacuten

Principios del control de congestioacuten

Control de congestioacuten en TCP

Principios de control de congestioacuten

Congestioacuten

Informalmente ldquodemasiadas fuentes enviando muchos

datos muy raacutepido para que la red lo manejerdquo

Es distinto a control de flujo eacuteste ocurre entre dos

aplicaciones

Manifestaciones

bull Peacuterdidas de paquetes (buffer overflow en routers)

bull Grandes retardos (en las colas en los router)

Uno de los problemas top-10

La capa de red no ofrece garantiacuteas de

entrega de paquetes en orden tasas de

transferencia fija llegada confiable de datos

y retardo acotado desde transmisioacuten hasta

recepcioacuten iquestCuaacuteles de estos requerimientos

son posibles de garantizar viacutea una

programacioacuten adecuada de la capa de

transporte

Entrega de paquetes en orden y llegada confiable

de datos

Causascostos de congestioacuten escenario

1 (buffer infinito sin re-enviacuteo) dos transmisores dos receptores

un router buffer tamantildeo infinito

sin retransmisioacuten

λin datos enviados por la aplicacioacuten (bytessec)

λout datos recibidos por la

aplicacioacuten (bytessec)

grandes retardos en estado congestionado (muchos paquetes esperando en cola)

maacuteximo flujo posible (throughput = C) de datos

unlimited shared

output link buffers

(C = link capacity)

Host A in original data

Host B

out

Causascostos de congestioacuten escenario

2 (buffer no infinito con re-enviacuteo) un router buffer finito

Se pierden paquetes que no tienen espacio en

buffer

transmisor retransmite paquetes perdidos

Buffer enlace de salida

finito compartido

Host A in original

data

Host B

out

in original data plus

retransmitted data

Causascostos de congestioacuten escenario 2 (a) caso perfecto sin peacuterdidas ni retransmisiones λin = λrsquoin

(b) retransmisioacuten soacutelo en caso de peacuterdida de segmentos (no por timeout

prematuro) λrsquoin gt λout

(b) retransmisioacuten de paquetes hace que λrsquoin sea maacutes grande (que el caso

perfecto) para el mismo λout (No necesariamente R3 como cota)

(c) retransmisiones innecesarias (timeout prematuros) enlaces enviacutean muacuteltiples

copias del paquete (eg dos re-enviacuteos por paquete)

ldquocostosrdquo de congestioacuten

maacutes trabajo (retransmisioacuten) para lograr el transporte de datos ldquogoodputrdquo

R2

R2 in

out

b

R2

R2 in

out

a

R2

R2 in

out

c

R4

R3

Causascostos de congestioacuten escenario 3

cuatro transmisores

rutas con multihops

timeoutretransmisiones

iquestQueacute pasa cuando λin se incrementa y λrsquoin crece

finite shared output

link buffers

Host A in original data

Host B out

in original data plus

retransmitted data

Causascostos de congestioacuten escenario 3

Otro ldquocostordquo de congestioacuten

cuando se descartan paquetes cualquier capacidad (de router) usada anteriormente pasa a ser un recurso desperdiciado

Estrategias para control de congestioacuten

Control de congestioacuten

extremo a extremo

No hay informacioacuten de

realimentacioacuten expliacutecita de la red

La congestioacuten es inferida desde

las peacuterdidas y retardos

observados por terminales en los

extremos

Es la estrategia usada por TCP

Control de congestioacuten asistido

por la red

routers proveen realimentacioacuten a

sistemas extremos

Un Bit uacutenico indicando

congestioacuten (ej SNA DECbit

TCPIP ECN ATM)

Expliacutecitamente se informa al Tx

la tasa que el router puede

soportar

Los podemos clasificar en dos grupos amplios

Caso de estudio Control de congestioacuten en ATM

ABR (tecnologiacutea de red capa 3 y menores)

ABR Available Bit Rate

Es un servicio ldquoelaacutesticordquo o flexible

Si camino del Tx tiene poca

carga

bull Tx deberiacutea usar ancho de

banda disponible

Si camino de Tx a Rx estaacute

congestionado

bull Tx reduce a un miacutenimo la

tasa garantizada

Celdas RM (Resource

Management)

Enviadas a intervalos por Tx entre

celdas de datos

bits en celda RM son modificados

por switches

Bit NI no incrementar tasa (=

congestioacuten moderada)

Bit CI Congestion Indication

Celdas RM son retornadas al Tx por

el Rx con bits intactos

ATM Asynchronous Transfer Mode

Caso de estudio Control de congestioacuten

en ATM ABR

En celda RM hay campo ER (explicit rate) de dos bytes

bull Un Switch congestionado puede bajar valor de ER en la celda

bull Tasa de enviacuteo del Tx se ajusta a la tasa miacutenima soportable en el camino entre fuente y destino (la del switch maacutes criacutetico)

En celda de datos hay Bit EFCI (explicit forward congestion indicator) eacuteste es fijado en 1 por switch congestionado

bull Si celda de datos precedente a celda RM tiene el EFCI marcado el destino marca bit CI en celda RM retornada

TCP corriendo sobre IP espera hasta recibir tres

paquetes ACK duplicados para iniciar una

retransmisioacuten raacutepida iquestPor queacute piensa usted que los

disentildeadores de TCP no escogieron iniciar la

retransmisioacuten raacutepida tan pronto llega el primer ACK

duplicado iquestSe justifica la espera por tres ACKs

duplicados en la implementacioacuten de un protocolo

confiable en una red ATM

La retransmisioacuten no se efectuacutea ante la llegada del primer duplicado pues es posible que el primer paquete haya tomado una ruta maacutes larga y llegue con posterioridad al segundo En este caso un cambio de orden de llegada genera acuses de recibo duplicados pero no constituye peacuterdida de paquete No se justifica esperar tres ACKs en ATM pues eacutesta establece una conexioacuten entre fuente y destino luego todos los paquetes deben usar la misma ruta y con ello el orden de salida y llegada se mantiene cuando no hay peacuterdidas

Control de Congestioacuten en TCP Usa control extremo a extremo (sin

asistencia de la red)

Tx limita su ventana de transmisioacuten

Si Rx tiene espacio se tiene

CongWin es dinaacutemica y funcioacuten de la

congestioacuten percibida de la red

RcvWindow es el nuacutemero de bytes que

el Rx puede recibir en su buffer la suponemos grande y no limita la tasa de enviacuteo

iquestCoacutemo el Tx percibe la

congestioacuten

Evento de peacuterdida = timeout oacute 3

acks duplicados

Tx TCP reduce tasa (CongWin)

despueacutes de un evento de

peacuterdida

Hay tres mecanismos

AIMD (Additive-Increase

Multiplicative-Decrease)

ldquoPartida lentardquo

Conservativo despueacutes de

evento de timeout

tasaAprox

= CongWin

RTT

[Bytessec]

LastByteSentminus LastByteAckedle minCongWin RcvWindow

TCP AIMD (Additive-Increase

Multiplicative-Decrease)

Decrecimiento

multiplicativo reducir

CongWin a la mitad luego

de peacuterdida

Aumento aditivo aumenta CongWin en 1 MSS cada RTT en ausencia de peacuterdida En algunas implementaciones CongWin incrementa en MSSx(MSSCongWin) por cada ACK recibido

MSS (Maximum Segment Size) es la maacutexima cantidad de datos que se enviacutea en cada segmento sin fragmentarse

Indique queacute protocolo usa el tamantildeo de

segmento maacuteximo (MSS Maximum

Segment Size) iquestA queacute corresponde

El MSS es usado por TCP Corresponde al

MTU (Maximum Transmission Unit) maacutes

pequentildeo en la ruta de la fuente al destino

Usando segmentos de tamantildeo MSS TCP

asegura que sus paquetes no seraacuten

fragmentados

Aumento aditivo La idea es aumentar un MSS luego de un RTT

Podemos aproximarnos aumentando la CongWin cada vez

que se recibe un ACK de manera que al completar 1 RTT

hayamos sumado un MSS

Se enviacutea como maacuteximo CongWin bytes y esperamos por el acuse de recibo

NumSegmentos= NumAkcs=CongWin

MSS

Incr=MSS

NumAkcs=

MSS

CongWin

MSS

=MSSlowast MSS

CongWin

Incr Incremento por cada ACK

RTT

CongWin

Si hay ACK retardados el incremento debe ser

mayor

Partida lenta en TCP (slow start)

Cuando la conexioacuten comienza CongWin = 1

MSS

bull Ejemplo MSS = 500 bytes

amp RTT = 200 msec

bull Tasa inicial = 20 kbps

Ancho de banda disponible

puede ser gtgt MSSRTT

bull Es deseable aumentar tasa

raacutepidamente hasta una tasa

respetable

Cuando la conexioacuten comienza aumentar tasa exponencialmente raacutepido hasta tener primer evento de peacuterdida

Se le llama Slow Start porque parte desde tasa muy abaja

Partida lenta en TCP

Cuando la conexioacuten

comienza aumentar tasa

exponencialmente hasta

primera peacuterdida

bull Duplicar CongWin cada RTT

bull Es hecho incrementando CongWin en 1 MSS por cada

ACK recibido

Resumen tasa inicial es lenta

pero se acelera

exponencialmente raacutepido

Host A

RT

T

Host B

time

Reaccioacuten ante eventos de timeout

iquestCuaacutendo deberiacutea cambiar el aumento de exponencial a lineal

Un buen criterio es Cuando CongWin llega a 12 de su valor antes del timeout

Implementacioacuten Umbral variable (variable threshold)

Ante evento de peacuterdidas el umbral es fijado en 12 de CongWin justo antes de la peacuterdida

Tahoe primera versioacuten de control de congestioacuten en TCP No distinguiacutea entre timeout o ACK duplicados Reno versioacuten siguiente en TCP Siacute distingue timeout de ACK duplicados Es como TCP opera hoy

3 ACKs Duplicados Evento

umbral

Mejor

Reaccioacuten ante eventos de timeout

Despueacutes de 3 ACKs

duplicados

bull CongWin baja a la mitad

bull Luego la ventana crece

linealmente

Despueacutes de un timeout

bull CongWin es fijada en 1

MSS

bull Luego la ventana crece

exponencialmente hasta un

umbral luego crece

linealmente

3 ACKs duplicados indican

que la red es capaz de

transportar algunos

segmentos (soacutelo llegan

fuera de orden en el Rx)

Se perdioacute uno pero

llegaron los otros y por

eso tenemos ACKs

duplicados

timeout antes de 3

duplicados es ldquomaacutes

alarmanterdquo (no llegaron)

En ausencia de errores y cuando el buffer de recepcioacuten es

muy grande la tasa promedio de transferencia de TCP

durante un RTT se puede aproximar por (Tamantildeo de

Ventana de congestioacuten)RTT Muestre un diagrama que

explique la deduccioacuten de esta expresioacuten iquestEs esta expresioacuten

vaacutelida para todo valor de ldquoVentana de Congestioacutenrdquo

Luego de enviar la ventana W el Tx debe esperar la llegada del acuse de recibo maacutes antiguo para retomar la transmisioacuten

No es vaacutelida siempre pues conforme la ventana de congestioacuten aumenta aumenta la utilizacioacuten del canal y cuando eacutesta alcanza 100 no es posible seguir aumentando la tasa pues la tasa de transmisioacuten del enlace pone una cota maacutexima

Tx Rx

RT

T W

Resumen Control de Congestioacuten en TCP

Cuando CongWin estaacute bajo el Threshold (umbral) Tx estaacute en fase slow-start la ventana de transmisioacuten crece exponencialmente (un MSS por cada ACK)

Cuando CongWin estaacute sobre Threshold Tx estaacute en fase abolicioacuten de congestioacuten la ventana crece linealmente (aprox un MSS por cada RTT)

Al tercer ACK duplicados Threshold pasa a CongWin2 y CongWin pasa a Threshold

Cuando ocurre un timeout Threshold pasa a CongWin2 y CongWin se lleva a 1 MSS

Control de Congestioacuten del Tx TCP

SS or CA

SS or CA

SS or CA

Congestion

Avoidance (CA)

Slow Start (SS)

State

CongWin y Threshold no

cambian

Increment duplicate ACK count for

segment being acked

Duplicate ACK

Ingresa a Partida Lenta (slow

start)

Threshold = CongWin2

CongWin = 1 MSS

Set state to ldquoSlow Startrdquo

Timeout

Recuperacioacuten raacutepida

implementando reduccioacuten

multiplicativa CongWin no

caeraacute a 1 MSS

Threshold = CongWin2

CongWin = Threshold

Set state to ldquoCongestion Avoidancerdquo

Loss event

detected by

triple duplicate

ACK

Aumento aditivo resulta en

aumento de CongWin en apox

1 MSS cada RTT

CongWin = CongWin+MSS

(MSSCongWin)

ACK receipt for

previously

unacked data

Resulta en una duplicacioacuten de

CongWin cada RTT

CongWin = CongWin + MSS

If (CongWin gt Threshold)

set state to ldquoCongestion

Avoidancerdquo

ACK receipt for

previously

unacked data

Commentary TCP Sender Action Event

Throughput Simplificado de TCP (tasa de

transferencia de datos lograda) iquestCuaacutel es el throughput promedio de TCP como una funcioacuten del tamantildeo

de ventana CongWin y RTT

bull Ignoremos slow start ya que al ser exponencial es una fase muy

corta

TCP pide ancho de banda adicional al incrementar W en 1 MSS por

cada RTT hasta una peacuterdida

Sea W el tamantildeo de la ventana (en bytes) cuando ocurre una peacuterdida

Cuando la ventana es W el throughput es WRTT

Justo despueacutes de la peacuterdida la ventana cae a W2 y el throughput a

W2RTT

Throughput promedio entre W2RTT y WRTT es 075 WRTT

Esto debido a que el throughput crece linealmente entre ambos

valores

Futuro de TCP Ejemplo segmentos de 1500 bytes RTT de 100ms queremos

throughput de 10 Gbps

Requiere tamantildeo de ventana CongWin W = 83333 (segmentos

en traacutensito)

Throughput en teacuterminos de tasa de peacuterdida (L) es

L=(bytes perdidos)(Nuacutemero total enviados)

Para el throughput deseado con el algoritmo de control de

congestioacuten actual se toleran probabilidades de peacuterdida de soacutelo L

= 210-10 Wow (1 cada 5 mil millones de segmentos)

Se requieren nuevas versiones de TCP para enlaces de alta

velocidad (interesados ver RFC 3649)

LRTT

MSS=hputAvgThroug

122

iquestPor queacute la ventana de congestioacuten de

TCP soacutelo se reduce a la mitad cuando

la peacuterdida es detectada por 3 ACKs

duplicados mientras que se reduce a 1

MSS cuando la peacuterdida es detectada

por timeout

Porque la llegada de 3 ACKs duplicados es una

indicacioacuten que paquetes posteriores al perdido siacute

llegaron luego esta situacioacuten de congestioacuten es

menos criacutetica que cuando hay timeout sin 3 ACKs

duplicados

Equidad en TCP

Objetivo de la Equidad (fairness) Si K sesiones TCP

comparten un mismo enlace de ancho de banda R cada

una deberiacutea tener una tasa promedio de RK

TCP connection 1

Router cuello de botella de capacidad R

TCP connection 2

iquestPor queacute TCP es justo

Supongamos dos sesiones compitiendo

Aumento aditivo da pendiente de 1 como aumento de throughout

Reduccioacuten multiplicativa reduce throughput proporcionalmente

R

R

Recta de Igual tasa capacidad compartida

Throughput Conexioacuten 1

Through

put Cone

xioacuten 2

Peacuterdida decrece tasa en factor de 2

Abolicioacuten de congestioacuten aumento aditivo

Abolicioacuten de congestioacuten aumento aditivo

Peacuterdida decrece tasa en factor de 2

Equidad

Equidad y UDP

Aplicaciones Multimedia no

usan TCP

bull No quieren tasa limitada

por control de congestioacuten

En su lugar usan UDP

bull Enviacutean audioviacutedeo a tasa

constante y toleran

peacuterdidas de paquetes

Aacuterea de investigacioacuten

Hacerlas amistosas con

TCP (TCP friendly)

Equidad y conexiones TCP

paralelas

Nada previene a las aplicaciones de

abrir conexiones paralelas entre

dos hosts

Navegadores WEB hacen esto

Ejemplo Sea un enlace de tasa R

soportando 9 conexiones

Una aplicacioacuten nueva pide 1

conexioacuten TCP obtendraacute R10

Si la aplicacioacuten nueva pide 11

conexiones TCP eacutesta obtendraacute

11R20 maacutes de R2

En una subred hay 6 usuarios viendo

viacutedeos de Youtubecom viacutea conexiones

TCP iquestSi eacutestos fueran los uacutenicos

usuarios queacute fraccioacuten de la capacidad

de un enlace congestionado le deberiacutea

corresponder a cada uno

16

Nota Se supone que ese es el uacutenico traacutefico en el

enlace congestionado en otro caso seraacute la misma

fraccioacuten del traacutefico para cada conexioacuten

Page 3: Redes de Computadoras 1 · Principios de control de congestión Congestión: Informalmente: “demasiadas fuentes enviando muchos datos muy rápido para que la red lo maneje” Es

Principios de control de congestioacuten

Congestioacuten

Informalmente ldquodemasiadas fuentes enviando muchos

datos muy raacutepido para que la red lo manejerdquo

Es distinto a control de flujo eacuteste ocurre entre dos

aplicaciones

Manifestaciones

bull Peacuterdidas de paquetes (buffer overflow en routers)

bull Grandes retardos (en las colas en los router)

Uno de los problemas top-10

La capa de red no ofrece garantiacuteas de

entrega de paquetes en orden tasas de

transferencia fija llegada confiable de datos

y retardo acotado desde transmisioacuten hasta

recepcioacuten iquestCuaacuteles de estos requerimientos

son posibles de garantizar viacutea una

programacioacuten adecuada de la capa de

transporte

Entrega de paquetes en orden y llegada confiable

de datos

Causascostos de congestioacuten escenario

1 (buffer infinito sin re-enviacuteo) dos transmisores dos receptores

un router buffer tamantildeo infinito

sin retransmisioacuten

λin datos enviados por la aplicacioacuten (bytessec)

λout datos recibidos por la

aplicacioacuten (bytessec)

grandes retardos en estado congestionado (muchos paquetes esperando en cola)

maacuteximo flujo posible (throughput = C) de datos

unlimited shared

output link buffers

(C = link capacity)

Host A in original data

Host B

out

Causascostos de congestioacuten escenario

2 (buffer no infinito con re-enviacuteo) un router buffer finito

Se pierden paquetes que no tienen espacio en

buffer

transmisor retransmite paquetes perdidos

Buffer enlace de salida

finito compartido

Host A in original

data

Host B

out

in original data plus

retransmitted data

Causascostos de congestioacuten escenario 2 (a) caso perfecto sin peacuterdidas ni retransmisiones λin = λrsquoin

(b) retransmisioacuten soacutelo en caso de peacuterdida de segmentos (no por timeout

prematuro) λrsquoin gt λout

(b) retransmisioacuten de paquetes hace que λrsquoin sea maacutes grande (que el caso

perfecto) para el mismo λout (No necesariamente R3 como cota)

(c) retransmisiones innecesarias (timeout prematuros) enlaces enviacutean muacuteltiples

copias del paquete (eg dos re-enviacuteos por paquete)

ldquocostosrdquo de congestioacuten

maacutes trabajo (retransmisioacuten) para lograr el transporte de datos ldquogoodputrdquo

R2

R2 in

out

b

R2

R2 in

out

a

R2

R2 in

out

c

R4

R3

Causascostos de congestioacuten escenario 3

cuatro transmisores

rutas con multihops

timeoutretransmisiones

iquestQueacute pasa cuando λin se incrementa y λrsquoin crece

finite shared output

link buffers

Host A in original data

Host B out

in original data plus

retransmitted data

Causascostos de congestioacuten escenario 3

Otro ldquocostordquo de congestioacuten

cuando se descartan paquetes cualquier capacidad (de router) usada anteriormente pasa a ser un recurso desperdiciado

Estrategias para control de congestioacuten

Control de congestioacuten

extremo a extremo

No hay informacioacuten de

realimentacioacuten expliacutecita de la red

La congestioacuten es inferida desde

las peacuterdidas y retardos

observados por terminales en los

extremos

Es la estrategia usada por TCP

Control de congestioacuten asistido

por la red

routers proveen realimentacioacuten a

sistemas extremos

Un Bit uacutenico indicando

congestioacuten (ej SNA DECbit

TCPIP ECN ATM)

Expliacutecitamente se informa al Tx

la tasa que el router puede

soportar

Los podemos clasificar en dos grupos amplios

Caso de estudio Control de congestioacuten en ATM

ABR (tecnologiacutea de red capa 3 y menores)

ABR Available Bit Rate

Es un servicio ldquoelaacutesticordquo o flexible

Si camino del Tx tiene poca

carga

bull Tx deberiacutea usar ancho de

banda disponible

Si camino de Tx a Rx estaacute

congestionado

bull Tx reduce a un miacutenimo la

tasa garantizada

Celdas RM (Resource

Management)

Enviadas a intervalos por Tx entre

celdas de datos

bits en celda RM son modificados

por switches

Bit NI no incrementar tasa (=

congestioacuten moderada)

Bit CI Congestion Indication

Celdas RM son retornadas al Tx por

el Rx con bits intactos

ATM Asynchronous Transfer Mode

Caso de estudio Control de congestioacuten

en ATM ABR

En celda RM hay campo ER (explicit rate) de dos bytes

bull Un Switch congestionado puede bajar valor de ER en la celda

bull Tasa de enviacuteo del Tx se ajusta a la tasa miacutenima soportable en el camino entre fuente y destino (la del switch maacutes criacutetico)

En celda de datos hay Bit EFCI (explicit forward congestion indicator) eacuteste es fijado en 1 por switch congestionado

bull Si celda de datos precedente a celda RM tiene el EFCI marcado el destino marca bit CI en celda RM retornada

TCP corriendo sobre IP espera hasta recibir tres

paquetes ACK duplicados para iniciar una

retransmisioacuten raacutepida iquestPor queacute piensa usted que los

disentildeadores de TCP no escogieron iniciar la

retransmisioacuten raacutepida tan pronto llega el primer ACK

duplicado iquestSe justifica la espera por tres ACKs

duplicados en la implementacioacuten de un protocolo

confiable en una red ATM

La retransmisioacuten no se efectuacutea ante la llegada del primer duplicado pues es posible que el primer paquete haya tomado una ruta maacutes larga y llegue con posterioridad al segundo En este caso un cambio de orden de llegada genera acuses de recibo duplicados pero no constituye peacuterdida de paquete No se justifica esperar tres ACKs en ATM pues eacutesta establece una conexioacuten entre fuente y destino luego todos los paquetes deben usar la misma ruta y con ello el orden de salida y llegada se mantiene cuando no hay peacuterdidas

Control de Congestioacuten en TCP Usa control extremo a extremo (sin

asistencia de la red)

Tx limita su ventana de transmisioacuten

Si Rx tiene espacio se tiene

CongWin es dinaacutemica y funcioacuten de la

congestioacuten percibida de la red

RcvWindow es el nuacutemero de bytes que

el Rx puede recibir en su buffer la suponemos grande y no limita la tasa de enviacuteo

iquestCoacutemo el Tx percibe la

congestioacuten

Evento de peacuterdida = timeout oacute 3

acks duplicados

Tx TCP reduce tasa (CongWin)

despueacutes de un evento de

peacuterdida

Hay tres mecanismos

AIMD (Additive-Increase

Multiplicative-Decrease)

ldquoPartida lentardquo

Conservativo despueacutes de

evento de timeout

tasaAprox

= CongWin

RTT

[Bytessec]

LastByteSentminus LastByteAckedle minCongWin RcvWindow

TCP AIMD (Additive-Increase

Multiplicative-Decrease)

Decrecimiento

multiplicativo reducir

CongWin a la mitad luego

de peacuterdida

Aumento aditivo aumenta CongWin en 1 MSS cada RTT en ausencia de peacuterdida En algunas implementaciones CongWin incrementa en MSSx(MSSCongWin) por cada ACK recibido

MSS (Maximum Segment Size) es la maacutexima cantidad de datos que se enviacutea en cada segmento sin fragmentarse

Indique queacute protocolo usa el tamantildeo de

segmento maacuteximo (MSS Maximum

Segment Size) iquestA queacute corresponde

El MSS es usado por TCP Corresponde al

MTU (Maximum Transmission Unit) maacutes

pequentildeo en la ruta de la fuente al destino

Usando segmentos de tamantildeo MSS TCP

asegura que sus paquetes no seraacuten

fragmentados

Aumento aditivo La idea es aumentar un MSS luego de un RTT

Podemos aproximarnos aumentando la CongWin cada vez

que se recibe un ACK de manera que al completar 1 RTT

hayamos sumado un MSS

Se enviacutea como maacuteximo CongWin bytes y esperamos por el acuse de recibo

NumSegmentos= NumAkcs=CongWin

MSS

Incr=MSS

NumAkcs=

MSS

CongWin

MSS

=MSSlowast MSS

CongWin

Incr Incremento por cada ACK

RTT

CongWin

Si hay ACK retardados el incremento debe ser

mayor

Partida lenta en TCP (slow start)

Cuando la conexioacuten comienza CongWin = 1

MSS

bull Ejemplo MSS = 500 bytes

amp RTT = 200 msec

bull Tasa inicial = 20 kbps

Ancho de banda disponible

puede ser gtgt MSSRTT

bull Es deseable aumentar tasa

raacutepidamente hasta una tasa

respetable

Cuando la conexioacuten comienza aumentar tasa exponencialmente raacutepido hasta tener primer evento de peacuterdida

Se le llama Slow Start porque parte desde tasa muy abaja

Partida lenta en TCP

Cuando la conexioacuten

comienza aumentar tasa

exponencialmente hasta

primera peacuterdida

bull Duplicar CongWin cada RTT

bull Es hecho incrementando CongWin en 1 MSS por cada

ACK recibido

Resumen tasa inicial es lenta

pero se acelera

exponencialmente raacutepido

Host A

RT

T

Host B

time

Reaccioacuten ante eventos de timeout

iquestCuaacutendo deberiacutea cambiar el aumento de exponencial a lineal

Un buen criterio es Cuando CongWin llega a 12 de su valor antes del timeout

Implementacioacuten Umbral variable (variable threshold)

Ante evento de peacuterdidas el umbral es fijado en 12 de CongWin justo antes de la peacuterdida

Tahoe primera versioacuten de control de congestioacuten en TCP No distinguiacutea entre timeout o ACK duplicados Reno versioacuten siguiente en TCP Siacute distingue timeout de ACK duplicados Es como TCP opera hoy

3 ACKs Duplicados Evento

umbral

Mejor

Reaccioacuten ante eventos de timeout

Despueacutes de 3 ACKs

duplicados

bull CongWin baja a la mitad

bull Luego la ventana crece

linealmente

Despueacutes de un timeout

bull CongWin es fijada en 1

MSS

bull Luego la ventana crece

exponencialmente hasta un

umbral luego crece

linealmente

3 ACKs duplicados indican

que la red es capaz de

transportar algunos

segmentos (soacutelo llegan

fuera de orden en el Rx)

Se perdioacute uno pero

llegaron los otros y por

eso tenemos ACKs

duplicados

timeout antes de 3

duplicados es ldquomaacutes

alarmanterdquo (no llegaron)

En ausencia de errores y cuando el buffer de recepcioacuten es

muy grande la tasa promedio de transferencia de TCP

durante un RTT se puede aproximar por (Tamantildeo de

Ventana de congestioacuten)RTT Muestre un diagrama que

explique la deduccioacuten de esta expresioacuten iquestEs esta expresioacuten

vaacutelida para todo valor de ldquoVentana de Congestioacutenrdquo

Luego de enviar la ventana W el Tx debe esperar la llegada del acuse de recibo maacutes antiguo para retomar la transmisioacuten

No es vaacutelida siempre pues conforme la ventana de congestioacuten aumenta aumenta la utilizacioacuten del canal y cuando eacutesta alcanza 100 no es posible seguir aumentando la tasa pues la tasa de transmisioacuten del enlace pone una cota maacutexima

Tx Rx

RT

T W

Resumen Control de Congestioacuten en TCP

Cuando CongWin estaacute bajo el Threshold (umbral) Tx estaacute en fase slow-start la ventana de transmisioacuten crece exponencialmente (un MSS por cada ACK)

Cuando CongWin estaacute sobre Threshold Tx estaacute en fase abolicioacuten de congestioacuten la ventana crece linealmente (aprox un MSS por cada RTT)

Al tercer ACK duplicados Threshold pasa a CongWin2 y CongWin pasa a Threshold

Cuando ocurre un timeout Threshold pasa a CongWin2 y CongWin se lleva a 1 MSS

Control de Congestioacuten del Tx TCP

SS or CA

SS or CA

SS or CA

Congestion

Avoidance (CA)

Slow Start (SS)

State

CongWin y Threshold no

cambian

Increment duplicate ACK count for

segment being acked

Duplicate ACK

Ingresa a Partida Lenta (slow

start)

Threshold = CongWin2

CongWin = 1 MSS

Set state to ldquoSlow Startrdquo

Timeout

Recuperacioacuten raacutepida

implementando reduccioacuten

multiplicativa CongWin no

caeraacute a 1 MSS

Threshold = CongWin2

CongWin = Threshold

Set state to ldquoCongestion Avoidancerdquo

Loss event

detected by

triple duplicate

ACK

Aumento aditivo resulta en

aumento de CongWin en apox

1 MSS cada RTT

CongWin = CongWin+MSS

(MSSCongWin)

ACK receipt for

previously

unacked data

Resulta en una duplicacioacuten de

CongWin cada RTT

CongWin = CongWin + MSS

If (CongWin gt Threshold)

set state to ldquoCongestion

Avoidancerdquo

ACK receipt for

previously

unacked data

Commentary TCP Sender Action Event

Throughput Simplificado de TCP (tasa de

transferencia de datos lograda) iquestCuaacutel es el throughput promedio de TCP como una funcioacuten del tamantildeo

de ventana CongWin y RTT

bull Ignoremos slow start ya que al ser exponencial es una fase muy

corta

TCP pide ancho de banda adicional al incrementar W en 1 MSS por

cada RTT hasta una peacuterdida

Sea W el tamantildeo de la ventana (en bytes) cuando ocurre una peacuterdida

Cuando la ventana es W el throughput es WRTT

Justo despueacutes de la peacuterdida la ventana cae a W2 y el throughput a

W2RTT

Throughput promedio entre W2RTT y WRTT es 075 WRTT

Esto debido a que el throughput crece linealmente entre ambos

valores

Futuro de TCP Ejemplo segmentos de 1500 bytes RTT de 100ms queremos

throughput de 10 Gbps

Requiere tamantildeo de ventana CongWin W = 83333 (segmentos

en traacutensito)

Throughput en teacuterminos de tasa de peacuterdida (L) es

L=(bytes perdidos)(Nuacutemero total enviados)

Para el throughput deseado con el algoritmo de control de

congestioacuten actual se toleran probabilidades de peacuterdida de soacutelo L

= 210-10 Wow (1 cada 5 mil millones de segmentos)

Se requieren nuevas versiones de TCP para enlaces de alta

velocidad (interesados ver RFC 3649)

LRTT

MSS=hputAvgThroug

122

iquestPor queacute la ventana de congestioacuten de

TCP soacutelo se reduce a la mitad cuando

la peacuterdida es detectada por 3 ACKs

duplicados mientras que se reduce a 1

MSS cuando la peacuterdida es detectada

por timeout

Porque la llegada de 3 ACKs duplicados es una

indicacioacuten que paquetes posteriores al perdido siacute

llegaron luego esta situacioacuten de congestioacuten es

menos criacutetica que cuando hay timeout sin 3 ACKs

duplicados

Equidad en TCP

Objetivo de la Equidad (fairness) Si K sesiones TCP

comparten un mismo enlace de ancho de banda R cada

una deberiacutea tener una tasa promedio de RK

TCP connection 1

Router cuello de botella de capacidad R

TCP connection 2

iquestPor queacute TCP es justo

Supongamos dos sesiones compitiendo

Aumento aditivo da pendiente de 1 como aumento de throughout

Reduccioacuten multiplicativa reduce throughput proporcionalmente

R

R

Recta de Igual tasa capacidad compartida

Throughput Conexioacuten 1

Through

put Cone

xioacuten 2

Peacuterdida decrece tasa en factor de 2

Abolicioacuten de congestioacuten aumento aditivo

Abolicioacuten de congestioacuten aumento aditivo

Peacuterdida decrece tasa en factor de 2

Equidad

Equidad y UDP

Aplicaciones Multimedia no

usan TCP

bull No quieren tasa limitada

por control de congestioacuten

En su lugar usan UDP

bull Enviacutean audioviacutedeo a tasa

constante y toleran

peacuterdidas de paquetes

Aacuterea de investigacioacuten

Hacerlas amistosas con

TCP (TCP friendly)

Equidad y conexiones TCP

paralelas

Nada previene a las aplicaciones de

abrir conexiones paralelas entre

dos hosts

Navegadores WEB hacen esto

Ejemplo Sea un enlace de tasa R

soportando 9 conexiones

Una aplicacioacuten nueva pide 1

conexioacuten TCP obtendraacute R10

Si la aplicacioacuten nueva pide 11

conexiones TCP eacutesta obtendraacute

11R20 maacutes de R2

En una subred hay 6 usuarios viendo

viacutedeos de Youtubecom viacutea conexiones

TCP iquestSi eacutestos fueran los uacutenicos

usuarios queacute fraccioacuten de la capacidad

de un enlace congestionado le deberiacutea

corresponder a cada uno

16

Nota Se supone que ese es el uacutenico traacutefico en el

enlace congestionado en otro caso seraacute la misma

fraccioacuten del traacutefico para cada conexioacuten

Page 4: Redes de Computadoras 1 · Principios de control de congestión Congestión: Informalmente: “demasiadas fuentes enviando muchos datos muy rápido para que la red lo maneje” Es

La capa de red no ofrece garantiacuteas de

entrega de paquetes en orden tasas de

transferencia fija llegada confiable de datos

y retardo acotado desde transmisioacuten hasta

recepcioacuten iquestCuaacuteles de estos requerimientos

son posibles de garantizar viacutea una

programacioacuten adecuada de la capa de

transporte

Entrega de paquetes en orden y llegada confiable

de datos

Causascostos de congestioacuten escenario

1 (buffer infinito sin re-enviacuteo) dos transmisores dos receptores

un router buffer tamantildeo infinito

sin retransmisioacuten

λin datos enviados por la aplicacioacuten (bytessec)

λout datos recibidos por la

aplicacioacuten (bytessec)

grandes retardos en estado congestionado (muchos paquetes esperando en cola)

maacuteximo flujo posible (throughput = C) de datos

unlimited shared

output link buffers

(C = link capacity)

Host A in original data

Host B

out

Causascostos de congestioacuten escenario

2 (buffer no infinito con re-enviacuteo) un router buffer finito

Se pierden paquetes que no tienen espacio en

buffer

transmisor retransmite paquetes perdidos

Buffer enlace de salida

finito compartido

Host A in original

data

Host B

out

in original data plus

retransmitted data

Causascostos de congestioacuten escenario 2 (a) caso perfecto sin peacuterdidas ni retransmisiones λin = λrsquoin

(b) retransmisioacuten soacutelo en caso de peacuterdida de segmentos (no por timeout

prematuro) λrsquoin gt λout

(b) retransmisioacuten de paquetes hace que λrsquoin sea maacutes grande (que el caso

perfecto) para el mismo λout (No necesariamente R3 como cota)

(c) retransmisiones innecesarias (timeout prematuros) enlaces enviacutean muacuteltiples

copias del paquete (eg dos re-enviacuteos por paquete)

ldquocostosrdquo de congestioacuten

maacutes trabajo (retransmisioacuten) para lograr el transporte de datos ldquogoodputrdquo

R2

R2 in

out

b

R2

R2 in

out

a

R2

R2 in

out

c

R4

R3

Causascostos de congestioacuten escenario 3

cuatro transmisores

rutas con multihops

timeoutretransmisiones

iquestQueacute pasa cuando λin se incrementa y λrsquoin crece

finite shared output

link buffers

Host A in original data

Host B out

in original data plus

retransmitted data

Causascostos de congestioacuten escenario 3

Otro ldquocostordquo de congestioacuten

cuando se descartan paquetes cualquier capacidad (de router) usada anteriormente pasa a ser un recurso desperdiciado

Estrategias para control de congestioacuten

Control de congestioacuten

extremo a extremo

No hay informacioacuten de

realimentacioacuten expliacutecita de la red

La congestioacuten es inferida desde

las peacuterdidas y retardos

observados por terminales en los

extremos

Es la estrategia usada por TCP

Control de congestioacuten asistido

por la red

routers proveen realimentacioacuten a

sistemas extremos

Un Bit uacutenico indicando

congestioacuten (ej SNA DECbit

TCPIP ECN ATM)

Expliacutecitamente se informa al Tx

la tasa que el router puede

soportar

Los podemos clasificar en dos grupos amplios

Caso de estudio Control de congestioacuten en ATM

ABR (tecnologiacutea de red capa 3 y menores)

ABR Available Bit Rate

Es un servicio ldquoelaacutesticordquo o flexible

Si camino del Tx tiene poca

carga

bull Tx deberiacutea usar ancho de

banda disponible

Si camino de Tx a Rx estaacute

congestionado

bull Tx reduce a un miacutenimo la

tasa garantizada

Celdas RM (Resource

Management)

Enviadas a intervalos por Tx entre

celdas de datos

bits en celda RM son modificados

por switches

Bit NI no incrementar tasa (=

congestioacuten moderada)

Bit CI Congestion Indication

Celdas RM son retornadas al Tx por

el Rx con bits intactos

ATM Asynchronous Transfer Mode

Caso de estudio Control de congestioacuten

en ATM ABR

En celda RM hay campo ER (explicit rate) de dos bytes

bull Un Switch congestionado puede bajar valor de ER en la celda

bull Tasa de enviacuteo del Tx se ajusta a la tasa miacutenima soportable en el camino entre fuente y destino (la del switch maacutes criacutetico)

En celda de datos hay Bit EFCI (explicit forward congestion indicator) eacuteste es fijado en 1 por switch congestionado

bull Si celda de datos precedente a celda RM tiene el EFCI marcado el destino marca bit CI en celda RM retornada

TCP corriendo sobre IP espera hasta recibir tres

paquetes ACK duplicados para iniciar una

retransmisioacuten raacutepida iquestPor queacute piensa usted que los

disentildeadores de TCP no escogieron iniciar la

retransmisioacuten raacutepida tan pronto llega el primer ACK

duplicado iquestSe justifica la espera por tres ACKs

duplicados en la implementacioacuten de un protocolo

confiable en una red ATM

La retransmisioacuten no se efectuacutea ante la llegada del primer duplicado pues es posible que el primer paquete haya tomado una ruta maacutes larga y llegue con posterioridad al segundo En este caso un cambio de orden de llegada genera acuses de recibo duplicados pero no constituye peacuterdida de paquete No se justifica esperar tres ACKs en ATM pues eacutesta establece una conexioacuten entre fuente y destino luego todos los paquetes deben usar la misma ruta y con ello el orden de salida y llegada se mantiene cuando no hay peacuterdidas

Control de Congestioacuten en TCP Usa control extremo a extremo (sin

asistencia de la red)

Tx limita su ventana de transmisioacuten

Si Rx tiene espacio se tiene

CongWin es dinaacutemica y funcioacuten de la

congestioacuten percibida de la red

RcvWindow es el nuacutemero de bytes que

el Rx puede recibir en su buffer la suponemos grande y no limita la tasa de enviacuteo

iquestCoacutemo el Tx percibe la

congestioacuten

Evento de peacuterdida = timeout oacute 3

acks duplicados

Tx TCP reduce tasa (CongWin)

despueacutes de un evento de

peacuterdida

Hay tres mecanismos

AIMD (Additive-Increase

Multiplicative-Decrease)

ldquoPartida lentardquo

Conservativo despueacutes de

evento de timeout

tasaAprox

= CongWin

RTT

[Bytessec]

LastByteSentminus LastByteAckedle minCongWin RcvWindow

TCP AIMD (Additive-Increase

Multiplicative-Decrease)

Decrecimiento

multiplicativo reducir

CongWin a la mitad luego

de peacuterdida

Aumento aditivo aumenta CongWin en 1 MSS cada RTT en ausencia de peacuterdida En algunas implementaciones CongWin incrementa en MSSx(MSSCongWin) por cada ACK recibido

MSS (Maximum Segment Size) es la maacutexima cantidad de datos que se enviacutea en cada segmento sin fragmentarse

Indique queacute protocolo usa el tamantildeo de

segmento maacuteximo (MSS Maximum

Segment Size) iquestA queacute corresponde

El MSS es usado por TCP Corresponde al

MTU (Maximum Transmission Unit) maacutes

pequentildeo en la ruta de la fuente al destino

Usando segmentos de tamantildeo MSS TCP

asegura que sus paquetes no seraacuten

fragmentados

Aumento aditivo La idea es aumentar un MSS luego de un RTT

Podemos aproximarnos aumentando la CongWin cada vez

que se recibe un ACK de manera que al completar 1 RTT

hayamos sumado un MSS

Se enviacutea como maacuteximo CongWin bytes y esperamos por el acuse de recibo

NumSegmentos= NumAkcs=CongWin

MSS

Incr=MSS

NumAkcs=

MSS

CongWin

MSS

=MSSlowast MSS

CongWin

Incr Incremento por cada ACK

RTT

CongWin

Si hay ACK retardados el incremento debe ser

mayor

Partida lenta en TCP (slow start)

Cuando la conexioacuten comienza CongWin = 1

MSS

bull Ejemplo MSS = 500 bytes

amp RTT = 200 msec

bull Tasa inicial = 20 kbps

Ancho de banda disponible

puede ser gtgt MSSRTT

bull Es deseable aumentar tasa

raacutepidamente hasta una tasa

respetable

Cuando la conexioacuten comienza aumentar tasa exponencialmente raacutepido hasta tener primer evento de peacuterdida

Se le llama Slow Start porque parte desde tasa muy abaja

Partida lenta en TCP

Cuando la conexioacuten

comienza aumentar tasa

exponencialmente hasta

primera peacuterdida

bull Duplicar CongWin cada RTT

bull Es hecho incrementando CongWin en 1 MSS por cada

ACK recibido

Resumen tasa inicial es lenta

pero se acelera

exponencialmente raacutepido

Host A

RT

T

Host B

time

Reaccioacuten ante eventos de timeout

iquestCuaacutendo deberiacutea cambiar el aumento de exponencial a lineal

Un buen criterio es Cuando CongWin llega a 12 de su valor antes del timeout

Implementacioacuten Umbral variable (variable threshold)

Ante evento de peacuterdidas el umbral es fijado en 12 de CongWin justo antes de la peacuterdida

Tahoe primera versioacuten de control de congestioacuten en TCP No distinguiacutea entre timeout o ACK duplicados Reno versioacuten siguiente en TCP Siacute distingue timeout de ACK duplicados Es como TCP opera hoy

3 ACKs Duplicados Evento

umbral

Mejor

Reaccioacuten ante eventos de timeout

Despueacutes de 3 ACKs

duplicados

bull CongWin baja a la mitad

bull Luego la ventana crece

linealmente

Despueacutes de un timeout

bull CongWin es fijada en 1

MSS

bull Luego la ventana crece

exponencialmente hasta un

umbral luego crece

linealmente

3 ACKs duplicados indican

que la red es capaz de

transportar algunos

segmentos (soacutelo llegan

fuera de orden en el Rx)

Se perdioacute uno pero

llegaron los otros y por

eso tenemos ACKs

duplicados

timeout antes de 3

duplicados es ldquomaacutes

alarmanterdquo (no llegaron)

En ausencia de errores y cuando el buffer de recepcioacuten es

muy grande la tasa promedio de transferencia de TCP

durante un RTT se puede aproximar por (Tamantildeo de

Ventana de congestioacuten)RTT Muestre un diagrama que

explique la deduccioacuten de esta expresioacuten iquestEs esta expresioacuten

vaacutelida para todo valor de ldquoVentana de Congestioacutenrdquo

Luego de enviar la ventana W el Tx debe esperar la llegada del acuse de recibo maacutes antiguo para retomar la transmisioacuten

No es vaacutelida siempre pues conforme la ventana de congestioacuten aumenta aumenta la utilizacioacuten del canal y cuando eacutesta alcanza 100 no es posible seguir aumentando la tasa pues la tasa de transmisioacuten del enlace pone una cota maacutexima

Tx Rx

RT

T W

Resumen Control de Congestioacuten en TCP

Cuando CongWin estaacute bajo el Threshold (umbral) Tx estaacute en fase slow-start la ventana de transmisioacuten crece exponencialmente (un MSS por cada ACK)

Cuando CongWin estaacute sobre Threshold Tx estaacute en fase abolicioacuten de congestioacuten la ventana crece linealmente (aprox un MSS por cada RTT)

Al tercer ACK duplicados Threshold pasa a CongWin2 y CongWin pasa a Threshold

Cuando ocurre un timeout Threshold pasa a CongWin2 y CongWin se lleva a 1 MSS

Control de Congestioacuten del Tx TCP

SS or CA

SS or CA

SS or CA

Congestion

Avoidance (CA)

Slow Start (SS)

State

CongWin y Threshold no

cambian

Increment duplicate ACK count for

segment being acked

Duplicate ACK

Ingresa a Partida Lenta (slow

start)

Threshold = CongWin2

CongWin = 1 MSS

Set state to ldquoSlow Startrdquo

Timeout

Recuperacioacuten raacutepida

implementando reduccioacuten

multiplicativa CongWin no

caeraacute a 1 MSS

Threshold = CongWin2

CongWin = Threshold

Set state to ldquoCongestion Avoidancerdquo

Loss event

detected by

triple duplicate

ACK

Aumento aditivo resulta en

aumento de CongWin en apox

1 MSS cada RTT

CongWin = CongWin+MSS

(MSSCongWin)

ACK receipt for

previously

unacked data

Resulta en una duplicacioacuten de

CongWin cada RTT

CongWin = CongWin + MSS

If (CongWin gt Threshold)

set state to ldquoCongestion

Avoidancerdquo

ACK receipt for

previously

unacked data

Commentary TCP Sender Action Event

Throughput Simplificado de TCP (tasa de

transferencia de datos lograda) iquestCuaacutel es el throughput promedio de TCP como una funcioacuten del tamantildeo

de ventana CongWin y RTT

bull Ignoremos slow start ya que al ser exponencial es una fase muy

corta

TCP pide ancho de banda adicional al incrementar W en 1 MSS por

cada RTT hasta una peacuterdida

Sea W el tamantildeo de la ventana (en bytes) cuando ocurre una peacuterdida

Cuando la ventana es W el throughput es WRTT

Justo despueacutes de la peacuterdida la ventana cae a W2 y el throughput a

W2RTT

Throughput promedio entre W2RTT y WRTT es 075 WRTT

Esto debido a que el throughput crece linealmente entre ambos

valores

Futuro de TCP Ejemplo segmentos de 1500 bytes RTT de 100ms queremos

throughput de 10 Gbps

Requiere tamantildeo de ventana CongWin W = 83333 (segmentos

en traacutensito)

Throughput en teacuterminos de tasa de peacuterdida (L) es

L=(bytes perdidos)(Nuacutemero total enviados)

Para el throughput deseado con el algoritmo de control de

congestioacuten actual se toleran probabilidades de peacuterdida de soacutelo L

= 210-10 Wow (1 cada 5 mil millones de segmentos)

Se requieren nuevas versiones de TCP para enlaces de alta

velocidad (interesados ver RFC 3649)

LRTT

MSS=hputAvgThroug

122

iquestPor queacute la ventana de congestioacuten de

TCP soacutelo se reduce a la mitad cuando

la peacuterdida es detectada por 3 ACKs

duplicados mientras que se reduce a 1

MSS cuando la peacuterdida es detectada

por timeout

Porque la llegada de 3 ACKs duplicados es una

indicacioacuten que paquetes posteriores al perdido siacute

llegaron luego esta situacioacuten de congestioacuten es

menos criacutetica que cuando hay timeout sin 3 ACKs

duplicados

Equidad en TCP

Objetivo de la Equidad (fairness) Si K sesiones TCP

comparten un mismo enlace de ancho de banda R cada

una deberiacutea tener una tasa promedio de RK

TCP connection 1

Router cuello de botella de capacidad R

TCP connection 2

iquestPor queacute TCP es justo

Supongamos dos sesiones compitiendo

Aumento aditivo da pendiente de 1 como aumento de throughout

Reduccioacuten multiplicativa reduce throughput proporcionalmente

R

R

Recta de Igual tasa capacidad compartida

Throughput Conexioacuten 1

Through

put Cone

xioacuten 2

Peacuterdida decrece tasa en factor de 2

Abolicioacuten de congestioacuten aumento aditivo

Abolicioacuten de congestioacuten aumento aditivo

Peacuterdida decrece tasa en factor de 2

Equidad

Equidad y UDP

Aplicaciones Multimedia no

usan TCP

bull No quieren tasa limitada

por control de congestioacuten

En su lugar usan UDP

bull Enviacutean audioviacutedeo a tasa

constante y toleran

peacuterdidas de paquetes

Aacuterea de investigacioacuten

Hacerlas amistosas con

TCP (TCP friendly)

Equidad y conexiones TCP

paralelas

Nada previene a las aplicaciones de

abrir conexiones paralelas entre

dos hosts

Navegadores WEB hacen esto

Ejemplo Sea un enlace de tasa R

soportando 9 conexiones

Una aplicacioacuten nueva pide 1

conexioacuten TCP obtendraacute R10

Si la aplicacioacuten nueva pide 11

conexiones TCP eacutesta obtendraacute

11R20 maacutes de R2

En una subred hay 6 usuarios viendo

viacutedeos de Youtubecom viacutea conexiones

TCP iquestSi eacutestos fueran los uacutenicos

usuarios queacute fraccioacuten de la capacidad

de un enlace congestionado le deberiacutea

corresponder a cada uno

16

Nota Se supone que ese es el uacutenico traacutefico en el

enlace congestionado en otro caso seraacute la misma

fraccioacuten del traacutefico para cada conexioacuten

Page 5: Redes de Computadoras 1 · Principios de control de congestión Congestión: Informalmente: “demasiadas fuentes enviando muchos datos muy rápido para que la red lo maneje” Es

Causascostos de congestioacuten escenario

1 (buffer infinito sin re-enviacuteo) dos transmisores dos receptores

un router buffer tamantildeo infinito

sin retransmisioacuten

λin datos enviados por la aplicacioacuten (bytessec)

λout datos recibidos por la

aplicacioacuten (bytessec)

grandes retardos en estado congestionado (muchos paquetes esperando en cola)

maacuteximo flujo posible (throughput = C) de datos

unlimited shared

output link buffers

(C = link capacity)

Host A in original data

Host B

out

Causascostos de congestioacuten escenario

2 (buffer no infinito con re-enviacuteo) un router buffer finito

Se pierden paquetes que no tienen espacio en

buffer

transmisor retransmite paquetes perdidos

Buffer enlace de salida

finito compartido

Host A in original

data

Host B

out

in original data plus

retransmitted data

Causascostos de congestioacuten escenario 2 (a) caso perfecto sin peacuterdidas ni retransmisiones λin = λrsquoin

(b) retransmisioacuten soacutelo en caso de peacuterdida de segmentos (no por timeout

prematuro) λrsquoin gt λout

(b) retransmisioacuten de paquetes hace que λrsquoin sea maacutes grande (que el caso

perfecto) para el mismo λout (No necesariamente R3 como cota)

(c) retransmisiones innecesarias (timeout prematuros) enlaces enviacutean muacuteltiples

copias del paquete (eg dos re-enviacuteos por paquete)

ldquocostosrdquo de congestioacuten

maacutes trabajo (retransmisioacuten) para lograr el transporte de datos ldquogoodputrdquo

R2

R2 in

out

b

R2

R2 in

out

a

R2

R2 in

out

c

R4

R3

Causascostos de congestioacuten escenario 3

cuatro transmisores

rutas con multihops

timeoutretransmisiones

iquestQueacute pasa cuando λin se incrementa y λrsquoin crece

finite shared output

link buffers

Host A in original data

Host B out

in original data plus

retransmitted data

Causascostos de congestioacuten escenario 3

Otro ldquocostordquo de congestioacuten

cuando se descartan paquetes cualquier capacidad (de router) usada anteriormente pasa a ser un recurso desperdiciado

Estrategias para control de congestioacuten

Control de congestioacuten

extremo a extremo

No hay informacioacuten de

realimentacioacuten expliacutecita de la red

La congestioacuten es inferida desde

las peacuterdidas y retardos

observados por terminales en los

extremos

Es la estrategia usada por TCP

Control de congestioacuten asistido

por la red

routers proveen realimentacioacuten a

sistemas extremos

Un Bit uacutenico indicando

congestioacuten (ej SNA DECbit

TCPIP ECN ATM)

Expliacutecitamente se informa al Tx

la tasa que el router puede

soportar

Los podemos clasificar en dos grupos amplios

Caso de estudio Control de congestioacuten en ATM

ABR (tecnologiacutea de red capa 3 y menores)

ABR Available Bit Rate

Es un servicio ldquoelaacutesticordquo o flexible

Si camino del Tx tiene poca

carga

bull Tx deberiacutea usar ancho de

banda disponible

Si camino de Tx a Rx estaacute

congestionado

bull Tx reduce a un miacutenimo la

tasa garantizada

Celdas RM (Resource

Management)

Enviadas a intervalos por Tx entre

celdas de datos

bits en celda RM son modificados

por switches

Bit NI no incrementar tasa (=

congestioacuten moderada)

Bit CI Congestion Indication

Celdas RM son retornadas al Tx por

el Rx con bits intactos

ATM Asynchronous Transfer Mode

Caso de estudio Control de congestioacuten

en ATM ABR

En celda RM hay campo ER (explicit rate) de dos bytes

bull Un Switch congestionado puede bajar valor de ER en la celda

bull Tasa de enviacuteo del Tx se ajusta a la tasa miacutenima soportable en el camino entre fuente y destino (la del switch maacutes criacutetico)

En celda de datos hay Bit EFCI (explicit forward congestion indicator) eacuteste es fijado en 1 por switch congestionado

bull Si celda de datos precedente a celda RM tiene el EFCI marcado el destino marca bit CI en celda RM retornada

TCP corriendo sobre IP espera hasta recibir tres

paquetes ACK duplicados para iniciar una

retransmisioacuten raacutepida iquestPor queacute piensa usted que los

disentildeadores de TCP no escogieron iniciar la

retransmisioacuten raacutepida tan pronto llega el primer ACK

duplicado iquestSe justifica la espera por tres ACKs

duplicados en la implementacioacuten de un protocolo

confiable en una red ATM

La retransmisioacuten no se efectuacutea ante la llegada del primer duplicado pues es posible que el primer paquete haya tomado una ruta maacutes larga y llegue con posterioridad al segundo En este caso un cambio de orden de llegada genera acuses de recibo duplicados pero no constituye peacuterdida de paquete No se justifica esperar tres ACKs en ATM pues eacutesta establece una conexioacuten entre fuente y destino luego todos los paquetes deben usar la misma ruta y con ello el orden de salida y llegada se mantiene cuando no hay peacuterdidas

Control de Congestioacuten en TCP Usa control extremo a extremo (sin

asistencia de la red)

Tx limita su ventana de transmisioacuten

Si Rx tiene espacio se tiene

CongWin es dinaacutemica y funcioacuten de la

congestioacuten percibida de la red

RcvWindow es el nuacutemero de bytes que

el Rx puede recibir en su buffer la suponemos grande y no limita la tasa de enviacuteo

iquestCoacutemo el Tx percibe la

congestioacuten

Evento de peacuterdida = timeout oacute 3

acks duplicados

Tx TCP reduce tasa (CongWin)

despueacutes de un evento de

peacuterdida

Hay tres mecanismos

AIMD (Additive-Increase

Multiplicative-Decrease)

ldquoPartida lentardquo

Conservativo despueacutes de

evento de timeout

tasaAprox

= CongWin

RTT

[Bytessec]

LastByteSentminus LastByteAckedle minCongWin RcvWindow

TCP AIMD (Additive-Increase

Multiplicative-Decrease)

Decrecimiento

multiplicativo reducir

CongWin a la mitad luego

de peacuterdida

Aumento aditivo aumenta CongWin en 1 MSS cada RTT en ausencia de peacuterdida En algunas implementaciones CongWin incrementa en MSSx(MSSCongWin) por cada ACK recibido

MSS (Maximum Segment Size) es la maacutexima cantidad de datos que se enviacutea en cada segmento sin fragmentarse

Indique queacute protocolo usa el tamantildeo de

segmento maacuteximo (MSS Maximum

Segment Size) iquestA queacute corresponde

El MSS es usado por TCP Corresponde al

MTU (Maximum Transmission Unit) maacutes

pequentildeo en la ruta de la fuente al destino

Usando segmentos de tamantildeo MSS TCP

asegura que sus paquetes no seraacuten

fragmentados

Aumento aditivo La idea es aumentar un MSS luego de un RTT

Podemos aproximarnos aumentando la CongWin cada vez

que se recibe un ACK de manera que al completar 1 RTT

hayamos sumado un MSS

Se enviacutea como maacuteximo CongWin bytes y esperamos por el acuse de recibo

NumSegmentos= NumAkcs=CongWin

MSS

Incr=MSS

NumAkcs=

MSS

CongWin

MSS

=MSSlowast MSS

CongWin

Incr Incremento por cada ACK

RTT

CongWin

Si hay ACK retardados el incremento debe ser

mayor

Partida lenta en TCP (slow start)

Cuando la conexioacuten comienza CongWin = 1

MSS

bull Ejemplo MSS = 500 bytes

amp RTT = 200 msec

bull Tasa inicial = 20 kbps

Ancho de banda disponible

puede ser gtgt MSSRTT

bull Es deseable aumentar tasa

raacutepidamente hasta una tasa

respetable

Cuando la conexioacuten comienza aumentar tasa exponencialmente raacutepido hasta tener primer evento de peacuterdida

Se le llama Slow Start porque parte desde tasa muy abaja

Partida lenta en TCP

Cuando la conexioacuten

comienza aumentar tasa

exponencialmente hasta

primera peacuterdida

bull Duplicar CongWin cada RTT

bull Es hecho incrementando CongWin en 1 MSS por cada

ACK recibido

Resumen tasa inicial es lenta

pero se acelera

exponencialmente raacutepido

Host A

RT

T

Host B

time

Reaccioacuten ante eventos de timeout

iquestCuaacutendo deberiacutea cambiar el aumento de exponencial a lineal

Un buen criterio es Cuando CongWin llega a 12 de su valor antes del timeout

Implementacioacuten Umbral variable (variable threshold)

Ante evento de peacuterdidas el umbral es fijado en 12 de CongWin justo antes de la peacuterdida

Tahoe primera versioacuten de control de congestioacuten en TCP No distinguiacutea entre timeout o ACK duplicados Reno versioacuten siguiente en TCP Siacute distingue timeout de ACK duplicados Es como TCP opera hoy

3 ACKs Duplicados Evento

umbral

Mejor

Reaccioacuten ante eventos de timeout

Despueacutes de 3 ACKs

duplicados

bull CongWin baja a la mitad

bull Luego la ventana crece

linealmente

Despueacutes de un timeout

bull CongWin es fijada en 1

MSS

bull Luego la ventana crece

exponencialmente hasta un

umbral luego crece

linealmente

3 ACKs duplicados indican

que la red es capaz de

transportar algunos

segmentos (soacutelo llegan

fuera de orden en el Rx)

Se perdioacute uno pero

llegaron los otros y por

eso tenemos ACKs

duplicados

timeout antes de 3

duplicados es ldquomaacutes

alarmanterdquo (no llegaron)

En ausencia de errores y cuando el buffer de recepcioacuten es

muy grande la tasa promedio de transferencia de TCP

durante un RTT se puede aproximar por (Tamantildeo de

Ventana de congestioacuten)RTT Muestre un diagrama que

explique la deduccioacuten de esta expresioacuten iquestEs esta expresioacuten

vaacutelida para todo valor de ldquoVentana de Congestioacutenrdquo

Luego de enviar la ventana W el Tx debe esperar la llegada del acuse de recibo maacutes antiguo para retomar la transmisioacuten

No es vaacutelida siempre pues conforme la ventana de congestioacuten aumenta aumenta la utilizacioacuten del canal y cuando eacutesta alcanza 100 no es posible seguir aumentando la tasa pues la tasa de transmisioacuten del enlace pone una cota maacutexima

Tx Rx

RT

T W

Resumen Control de Congestioacuten en TCP

Cuando CongWin estaacute bajo el Threshold (umbral) Tx estaacute en fase slow-start la ventana de transmisioacuten crece exponencialmente (un MSS por cada ACK)

Cuando CongWin estaacute sobre Threshold Tx estaacute en fase abolicioacuten de congestioacuten la ventana crece linealmente (aprox un MSS por cada RTT)

Al tercer ACK duplicados Threshold pasa a CongWin2 y CongWin pasa a Threshold

Cuando ocurre un timeout Threshold pasa a CongWin2 y CongWin se lleva a 1 MSS

Control de Congestioacuten del Tx TCP

SS or CA

SS or CA

SS or CA

Congestion

Avoidance (CA)

Slow Start (SS)

State

CongWin y Threshold no

cambian

Increment duplicate ACK count for

segment being acked

Duplicate ACK

Ingresa a Partida Lenta (slow

start)

Threshold = CongWin2

CongWin = 1 MSS

Set state to ldquoSlow Startrdquo

Timeout

Recuperacioacuten raacutepida

implementando reduccioacuten

multiplicativa CongWin no

caeraacute a 1 MSS

Threshold = CongWin2

CongWin = Threshold

Set state to ldquoCongestion Avoidancerdquo

Loss event

detected by

triple duplicate

ACK

Aumento aditivo resulta en

aumento de CongWin en apox

1 MSS cada RTT

CongWin = CongWin+MSS

(MSSCongWin)

ACK receipt for

previously

unacked data

Resulta en una duplicacioacuten de

CongWin cada RTT

CongWin = CongWin + MSS

If (CongWin gt Threshold)

set state to ldquoCongestion

Avoidancerdquo

ACK receipt for

previously

unacked data

Commentary TCP Sender Action Event

Throughput Simplificado de TCP (tasa de

transferencia de datos lograda) iquestCuaacutel es el throughput promedio de TCP como una funcioacuten del tamantildeo

de ventana CongWin y RTT

bull Ignoremos slow start ya que al ser exponencial es una fase muy

corta

TCP pide ancho de banda adicional al incrementar W en 1 MSS por

cada RTT hasta una peacuterdida

Sea W el tamantildeo de la ventana (en bytes) cuando ocurre una peacuterdida

Cuando la ventana es W el throughput es WRTT

Justo despueacutes de la peacuterdida la ventana cae a W2 y el throughput a

W2RTT

Throughput promedio entre W2RTT y WRTT es 075 WRTT

Esto debido a que el throughput crece linealmente entre ambos

valores

Futuro de TCP Ejemplo segmentos de 1500 bytes RTT de 100ms queremos

throughput de 10 Gbps

Requiere tamantildeo de ventana CongWin W = 83333 (segmentos

en traacutensito)

Throughput en teacuterminos de tasa de peacuterdida (L) es

L=(bytes perdidos)(Nuacutemero total enviados)

Para el throughput deseado con el algoritmo de control de

congestioacuten actual se toleran probabilidades de peacuterdida de soacutelo L

= 210-10 Wow (1 cada 5 mil millones de segmentos)

Se requieren nuevas versiones de TCP para enlaces de alta

velocidad (interesados ver RFC 3649)

LRTT

MSS=hputAvgThroug

122

iquestPor queacute la ventana de congestioacuten de

TCP soacutelo se reduce a la mitad cuando

la peacuterdida es detectada por 3 ACKs

duplicados mientras que se reduce a 1

MSS cuando la peacuterdida es detectada

por timeout

Porque la llegada de 3 ACKs duplicados es una

indicacioacuten que paquetes posteriores al perdido siacute

llegaron luego esta situacioacuten de congestioacuten es

menos criacutetica que cuando hay timeout sin 3 ACKs

duplicados

Equidad en TCP

Objetivo de la Equidad (fairness) Si K sesiones TCP

comparten un mismo enlace de ancho de banda R cada

una deberiacutea tener una tasa promedio de RK

TCP connection 1

Router cuello de botella de capacidad R

TCP connection 2

iquestPor queacute TCP es justo

Supongamos dos sesiones compitiendo

Aumento aditivo da pendiente de 1 como aumento de throughout

Reduccioacuten multiplicativa reduce throughput proporcionalmente

R

R

Recta de Igual tasa capacidad compartida

Throughput Conexioacuten 1

Through

put Cone

xioacuten 2

Peacuterdida decrece tasa en factor de 2

Abolicioacuten de congestioacuten aumento aditivo

Abolicioacuten de congestioacuten aumento aditivo

Peacuterdida decrece tasa en factor de 2

Equidad

Equidad y UDP

Aplicaciones Multimedia no

usan TCP

bull No quieren tasa limitada

por control de congestioacuten

En su lugar usan UDP

bull Enviacutean audioviacutedeo a tasa

constante y toleran

peacuterdidas de paquetes

Aacuterea de investigacioacuten

Hacerlas amistosas con

TCP (TCP friendly)

Equidad y conexiones TCP

paralelas

Nada previene a las aplicaciones de

abrir conexiones paralelas entre

dos hosts

Navegadores WEB hacen esto

Ejemplo Sea un enlace de tasa R

soportando 9 conexiones

Una aplicacioacuten nueva pide 1

conexioacuten TCP obtendraacute R10

Si la aplicacioacuten nueva pide 11

conexiones TCP eacutesta obtendraacute

11R20 maacutes de R2

En una subred hay 6 usuarios viendo

viacutedeos de Youtubecom viacutea conexiones

TCP iquestSi eacutestos fueran los uacutenicos

usuarios queacute fraccioacuten de la capacidad

de un enlace congestionado le deberiacutea

corresponder a cada uno

16

Nota Se supone que ese es el uacutenico traacutefico en el

enlace congestionado en otro caso seraacute la misma

fraccioacuten del traacutefico para cada conexioacuten

Page 6: Redes de Computadoras 1 · Principios de control de congestión Congestión: Informalmente: “demasiadas fuentes enviando muchos datos muy rápido para que la red lo maneje” Es

Causascostos de congestioacuten escenario

2 (buffer no infinito con re-enviacuteo) un router buffer finito

Se pierden paquetes que no tienen espacio en

buffer

transmisor retransmite paquetes perdidos

Buffer enlace de salida

finito compartido

Host A in original

data

Host B

out

in original data plus

retransmitted data

Causascostos de congestioacuten escenario 2 (a) caso perfecto sin peacuterdidas ni retransmisiones λin = λrsquoin

(b) retransmisioacuten soacutelo en caso de peacuterdida de segmentos (no por timeout

prematuro) λrsquoin gt λout

(b) retransmisioacuten de paquetes hace que λrsquoin sea maacutes grande (que el caso

perfecto) para el mismo λout (No necesariamente R3 como cota)

(c) retransmisiones innecesarias (timeout prematuros) enlaces enviacutean muacuteltiples

copias del paquete (eg dos re-enviacuteos por paquete)

ldquocostosrdquo de congestioacuten

maacutes trabajo (retransmisioacuten) para lograr el transporte de datos ldquogoodputrdquo

R2

R2 in

out

b

R2

R2 in

out

a

R2

R2 in

out

c

R4

R3

Causascostos de congestioacuten escenario 3

cuatro transmisores

rutas con multihops

timeoutretransmisiones

iquestQueacute pasa cuando λin se incrementa y λrsquoin crece

finite shared output

link buffers

Host A in original data

Host B out

in original data plus

retransmitted data

Causascostos de congestioacuten escenario 3

Otro ldquocostordquo de congestioacuten

cuando se descartan paquetes cualquier capacidad (de router) usada anteriormente pasa a ser un recurso desperdiciado

Estrategias para control de congestioacuten

Control de congestioacuten

extremo a extremo

No hay informacioacuten de

realimentacioacuten expliacutecita de la red

La congestioacuten es inferida desde

las peacuterdidas y retardos

observados por terminales en los

extremos

Es la estrategia usada por TCP

Control de congestioacuten asistido

por la red

routers proveen realimentacioacuten a

sistemas extremos

Un Bit uacutenico indicando

congestioacuten (ej SNA DECbit

TCPIP ECN ATM)

Expliacutecitamente se informa al Tx

la tasa que el router puede

soportar

Los podemos clasificar en dos grupos amplios

Caso de estudio Control de congestioacuten en ATM

ABR (tecnologiacutea de red capa 3 y menores)

ABR Available Bit Rate

Es un servicio ldquoelaacutesticordquo o flexible

Si camino del Tx tiene poca

carga

bull Tx deberiacutea usar ancho de

banda disponible

Si camino de Tx a Rx estaacute

congestionado

bull Tx reduce a un miacutenimo la

tasa garantizada

Celdas RM (Resource

Management)

Enviadas a intervalos por Tx entre

celdas de datos

bits en celda RM son modificados

por switches

Bit NI no incrementar tasa (=

congestioacuten moderada)

Bit CI Congestion Indication

Celdas RM son retornadas al Tx por

el Rx con bits intactos

ATM Asynchronous Transfer Mode

Caso de estudio Control de congestioacuten

en ATM ABR

En celda RM hay campo ER (explicit rate) de dos bytes

bull Un Switch congestionado puede bajar valor de ER en la celda

bull Tasa de enviacuteo del Tx se ajusta a la tasa miacutenima soportable en el camino entre fuente y destino (la del switch maacutes criacutetico)

En celda de datos hay Bit EFCI (explicit forward congestion indicator) eacuteste es fijado en 1 por switch congestionado

bull Si celda de datos precedente a celda RM tiene el EFCI marcado el destino marca bit CI en celda RM retornada

TCP corriendo sobre IP espera hasta recibir tres

paquetes ACK duplicados para iniciar una

retransmisioacuten raacutepida iquestPor queacute piensa usted que los

disentildeadores de TCP no escogieron iniciar la

retransmisioacuten raacutepida tan pronto llega el primer ACK

duplicado iquestSe justifica la espera por tres ACKs

duplicados en la implementacioacuten de un protocolo

confiable en una red ATM

La retransmisioacuten no se efectuacutea ante la llegada del primer duplicado pues es posible que el primer paquete haya tomado una ruta maacutes larga y llegue con posterioridad al segundo En este caso un cambio de orden de llegada genera acuses de recibo duplicados pero no constituye peacuterdida de paquete No se justifica esperar tres ACKs en ATM pues eacutesta establece una conexioacuten entre fuente y destino luego todos los paquetes deben usar la misma ruta y con ello el orden de salida y llegada se mantiene cuando no hay peacuterdidas

Control de Congestioacuten en TCP Usa control extremo a extremo (sin

asistencia de la red)

Tx limita su ventana de transmisioacuten

Si Rx tiene espacio se tiene

CongWin es dinaacutemica y funcioacuten de la

congestioacuten percibida de la red

RcvWindow es el nuacutemero de bytes que

el Rx puede recibir en su buffer la suponemos grande y no limita la tasa de enviacuteo

iquestCoacutemo el Tx percibe la

congestioacuten

Evento de peacuterdida = timeout oacute 3

acks duplicados

Tx TCP reduce tasa (CongWin)

despueacutes de un evento de

peacuterdida

Hay tres mecanismos

AIMD (Additive-Increase

Multiplicative-Decrease)

ldquoPartida lentardquo

Conservativo despueacutes de

evento de timeout

tasaAprox

= CongWin

RTT

[Bytessec]

LastByteSentminus LastByteAckedle minCongWin RcvWindow

TCP AIMD (Additive-Increase

Multiplicative-Decrease)

Decrecimiento

multiplicativo reducir

CongWin a la mitad luego

de peacuterdida

Aumento aditivo aumenta CongWin en 1 MSS cada RTT en ausencia de peacuterdida En algunas implementaciones CongWin incrementa en MSSx(MSSCongWin) por cada ACK recibido

MSS (Maximum Segment Size) es la maacutexima cantidad de datos que se enviacutea en cada segmento sin fragmentarse

Indique queacute protocolo usa el tamantildeo de

segmento maacuteximo (MSS Maximum

Segment Size) iquestA queacute corresponde

El MSS es usado por TCP Corresponde al

MTU (Maximum Transmission Unit) maacutes

pequentildeo en la ruta de la fuente al destino

Usando segmentos de tamantildeo MSS TCP

asegura que sus paquetes no seraacuten

fragmentados

Aumento aditivo La idea es aumentar un MSS luego de un RTT

Podemos aproximarnos aumentando la CongWin cada vez

que se recibe un ACK de manera que al completar 1 RTT

hayamos sumado un MSS

Se enviacutea como maacuteximo CongWin bytes y esperamos por el acuse de recibo

NumSegmentos= NumAkcs=CongWin

MSS

Incr=MSS

NumAkcs=

MSS

CongWin

MSS

=MSSlowast MSS

CongWin

Incr Incremento por cada ACK

RTT

CongWin

Si hay ACK retardados el incremento debe ser

mayor

Partida lenta en TCP (slow start)

Cuando la conexioacuten comienza CongWin = 1

MSS

bull Ejemplo MSS = 500 bytes

amp RTT = 200 msec

bull Tasa inicial = 20 kbps

Ancho de banda disponible

puede ser gtgt MSSRTT

bull Es deseable aumentar tasa

raacutepidamente hasta una tasa

respetable

Cuando la conexioacuten comienza aumentar tasa exponencialmente raacutepido hasta tener primer evento de peacuterdida

Se le llama Slow Start porque parte desde tasa muy abaja

Partida lenta en TCP

Cuando la conexioacuten

comienza aumentar tasa

exponencialmente hasta

primera peacuterdida

bull Duplicar CongWin cada RTT

bull Es hecho incrementando CongWin en 1 MSS por cada

ACK recibido

Resumen tasa inicial es lenta

pero se acelera

exponencialmente raacutepido

Host A

RT

T

Host B

time

Reaccioacuten ante eventos de timeout

iquestCuaacutendo deberiacutea cambiar el aumento de exponencial a lineal

Un buen criterio es Cuando CongWin llega a 12 de su valor antes del timeout

Implementacioacuten Umbral variable (variable threshold)

Ante evento de peacuterdidas el umbral es fijado en 12 de CongWin justo antes de la peacuterdida

Tahoe primera versioacuten de control de congestioacuten en TCP No distinguiacutea entre timeout o ACK duplicados Reno versioacuten siguiente en TCP Siacute distingue timeout de ACK duplicados Es como TCP opera hoy

3 ACKs Duplicados Evento

umbral

Mejor

Reaccioacuten ante eventos de timeout

Despueacutes de 3 ACKs

duplicados

bull CongWin baja a la mitad

bull Luego la ventana crece

linealmente

Despueacutes de un timeout

bull CongWin es fijada en 1

MSS

bull Luego la ventana crece

exponencialmente hasta un

umbral luego crece

linealmente

3 ACKs duplicados indican

que la red es capaz de

transportar algunos

segmentos (soacutelo llegan

fuera de orden en el Rx)

Se perdioacute uno pero

llegaron los otros y por

eso tenemos ACKs

duplicados

timeout antes de 3

duplicados es ldquomaacutes

alarmanterdquo (no llegaron)

En ausencia de errores y cuando el buffer de recepcioacuten es

muy grande la tasa promedio de transferencia de TCP

durante un RTT se puede aproximar por (Tamantildeo de

Ventana de congestioacuten)RTT Muestre un diagrama que

explique la deduccioacuten de esta expresioacuten iquestEs esta expresioacuten

vaacutelida para todo valor de ldquoVentana de Congestioacutenrdquo

Luego de enviar la ventana W el Tx debe esperar la llegada del acuse de recibo maacutes antiguo para retomar la transmisioacuten

No es vaacutelida siempre pues conforme la ventana de congestioacuten aumenta aumenta la utilizacioacuten del canal y cuando eacutesta alcanza 100 no es posible seguir aumentando la tasa pues la tasa de transmisioacuten del enlace pone una cota maacutexima

Tx Rx

RT

T W

Resumen Control de Congestioacuten en TCP

Cuando CongWin estaacute bajo el Threshold (umbral) Tx estaacute en fase slow-start la ventana de transmisioacuten crece exponencialmente (un MSS por cada ACK)

Cuando CongWin estaacute sobre Threshold Tx estaacute en fase abolicioacuten de congestioacuten la ventana crece linealmente (aprox un MSS por cada RTT)

Al tercer ACK duplicados Threshold pasa a CongWin2 y CongWin pasa a Threshold

Cuando ocurre un timeout Threshold pasa a CongWin2 y CongWin se lleva a 1 MSS

Control de Congestioacuten del Tx TCP

SS or CA

SS or CA

SS or CA

Congestion

Avoidance (CA)

Slow Start (SS)

State

CongWin y Threshold no

cambian

Increment duplicate ACK count for

segment being acked

Duplicate ACK

Ingresa a Partida Lenta (slow

start)

Threshold = CongWin2

CongWin = 1 MSS

Set state to ldquoSlow Startrdquo

Timeout

Recuperacioacuten raacutepida

implementando reduccioacuten

multiplicativa CongWin no

caeraacute a 1 MSS

Threshold = CongWin2

CongWin = Threshold

Set state to ldquoCongestion Avoidancerdquo

Loss event

detected by

triple duplicate

ACK

Aumento aditivo resulta en

aumento de CongWin en apox

1 MSS cada RTT

CongWin = CongWin+MSS

(MSSCongWin)

ACK receipt for

previously

unacked data

Resulta en una duplicacioacuten de

CongWin cada RTT

CongWin = CongWin + MSS

If (CongWin gt Threshold)

set state to ldquoCongestion

Avoidancerdquo

ACK receipt for

previously

unacked data

Commentary TCP Sender Action Event

Throughput Simplificado de TCP (tasa de

transferencia de datos lograda) iquestCuaacutel es el throughput promedio de TCP como una funcioacuten del tamantildeo

de ventana CongWin y RTT

bull Ignoremos slow start ya que al ser exponencial es una fase muy

corta

TCP pide ancho de banda adicional al incrementar W en 1 MSS por

cada RTT hasta una peacuterdida

Sea W el tamantildeo de la ventana (en bytes) cuando ocurre una peacuterdida

Cuando la ventana es W el throughput es WRTT

Justo despueacutes de la peacuterdida la ventana cae a W2 y el throughput a

W2RTT

Throughput promedio entre W2RTT y WRTT es 075 WRTT

Esto debido a que el throughput crece linealmente entre ambos

valores

Futuro de TCP Ejemplo segmentos de 1500 bytes RTT de 100ms queremos

throughput de 10 Gbps

Requiere tamantildeo de ventana CongWin W = 83333 (segmentos

en traacutensito)

Throughput en teacuterminos de tasa de peacuterdida (L) es

L=(bytes perdidos)(Nuacutemero total enviados)

Para el throughput deseado con el algoritmo de control de

congestioacuten actual se toleran probabilidades de peacuterdida de soacutelo L

= 210-10 Wow (1 cada 5 mil millones de segmentos)

Se requieren nuevas versiones de TCP para enlaces de alta

velocidad (interesados ver RFC 3649)

LRTT

MSS=hputAvgThroug

122

iquestPor queacute la ventana de congestioacuten de

TCP soacutelo se reduce a la mitad cuando

la peacuterdida es detectada por 3 ACKs

duplicados mientras que se reduce a 1

MSS cuando la peacuterdida es detectada

por timeout

Porque la llegada de 3 ACKs duplicados es una

indicacioacuten que paquetes posteriores al perdido siacute

llegaron luego esta situacioacuten de congestioacuten es

menos criacutetica que cuando hay timeout sin 3 ACKs

duplicados

Equidad en TCP

Objetivo de la Equidad (fairness) Si K sesiones TCP

comparten un mismo enlace de ancho de banda R cada

una deberiacutea tener una tasa promedio de RK

TCP connection 1

Router cuello de botella de capacidad R

TCP connection 2

iquestPor queacute TCP es justo

Supongamos dos sesiones compitiendo

Aumento aditivo da pendiente de 1 como aumento de throughout

Reduccioacuten multiplicativa reduce throughput proporcionalmente

R

R

Recta de Igual tasa capacidad compartida

Throughput Conexioacuten 1

Through

put Cone

xioacuten 2

Peacuterdida decrece tasa en factor de 2

Abolicioacuten de congestioacuten aumento aditivo

Abolicioacuten de congestioacuten aumento aditivo

Peacuterdida decrece tasa en factor de 2

Equidad

Equidad y UDP

Aplicaciones Multimedia no

usan TCP

bull No quieren tasa limitada

por control de congestioacuten

En su lugar usan UDP

bull Enviacutean audioviacutedeo a tasa

constante y toleran

peacuterdidas de paquetes

Aacuterea de investigacioacuten

Hacerlas amistosas con

TCP (TCP friendly)

Equidad y conexiones TCP

paralelas

Nada previene a las aplicaciones de

abrir conexiones paralelas entre

dos hosts

Navegadores WEB hacen esto

Ejemplo Sea un enlace de tasa R

soportando 9 conexiones

Una aplicacioacuten nueva pide 1

conexioacuten TCP obtendraacute R10

Si la aplicacioacuten nueva pide 11

conexiones TCP eacutesta obtendraacute

11R20 maacutes de R2

En una subred hay 6 usuarios viendo

viacutedeos de Youtubecom viacutea conexiones

TCP iquestSi eacutestos fueran los uacutenicos

usuarios queacute fraccioacuten de la capacidad

de un enlace congestionado le deberiacutea

corresponder a cada uno

16

Nota Se supone que ese es el uacutenico traacutefico en el

enlace congestionado en otro caso seraacute la misma

fraccioacuten del traacutefico para cada conexioacuten

Page 7: Redes de Computadoras 1 · Principios de control de congestión Congestión: Informalmente: “demasiadas fuentes enviando muchos datos muy rápido para que la red lo maneje” Es

Causascostos de congestioacuten escenario 2 (a) caso perfecto sin peacuterdidas ni retransmisiones λin = λrsquoin

(b) retransmisioacuten soacutelo en caso de peacuterdida de segmentos (no por timeout

prematuro) λrsquoin gt λout

(b) retransmisioacuten de paquetes hace que λrsquoin sea maacutes grande (que el caso

perfecto) para el mismo λout (No necesariamente R3 como cota)

(c) retransmisiones innecesarias (timeout prematuros) enlaces enviacutean muacuteltiples

copias del paquete (eg dos re-enviacuteos por paquete)

ldquocostosrdquo de congestioacuten

maacutes trabajo (retransmisioacuten) para lograr el transporte de datos ldquogoodputrdquo

R2

R2 in

out

b

R2

R2 in

out

a

R2

R2 in

out

c

R4

R3

Causascostos de congestioacuten escenario 3

cuatro transmisores

rutas con multihops

timeoutretransmisiones

iquestQueacute pasa cuando λin se incrementa y λrsquoin crece

finite shared output

link buffers

Host A in original data

Host B out

in original data plus

retransmitted data

Causascostos de congestioacuten escenario 3

Otro ldquocostordquo de congestioacuten

cuando se descartan paquetes cualquier capacidad (de router) usada anteriormente pasa a ser un recurso desperdiciado

Estrategias para control de congestioacuten

Control de congestioacuten

extremo a extremo

No hay informacioacuten de

realimentacioacuten expliacutecita de la red

La congestioacuten es inferida desde

las peacuterdidas y retardos

observados por terminales en los

extremos

Es la estrategia usada por TCP

Control de congestioacuten asistido

por la red

routers proveen realimentacioacuten a

sistemas extremos

Un Bit uacutenico indicando

congestioacuten (ej SNA DECbit

TCPIP ECN ATM)

Expliacutecitamente se informa al Tx

la tasa que el router puede

soportar

Los podemos clasificar en dos grupos amplios

Caso de estudio Control de congestioacuten en ATM

ABR (tecnologiacutea de red capa 3 y menores)

ABR Available Bit Rate

Es un servicio ldquoelaacutesticordquo o flexible

Si camino del Tx tiene poca

carga

bull Tx deberiacutea usar ancho de

banda disponible

Si camino de Tx a Rx estaacute

congestionado

bull Tx reduce a un miacutenimo la

tasa garantizada

Celdas RM (Resource

Management)

Enviadas a intervalos por Tx entre

celdas de datos

bits en celda RM son modificados

por switches

Bit NI no incrementar tasa (=

congestioacuten moderada)

Bit CI Congestion Indication

Celdas RM son retornadas al Tx por

el Rx con bits intactos

ATM Asynchronous Transfer Mode

Caso de estudio Control de congestioacuten

en ATM ABR

En celda RM hay campo ER (explicit rate) de dos bytes

bull Un Switch congestionado puede bajar valor de ER en la celda

bull Tasa de enviacuteo del Tx se ajusta a la tasa miacutenima soportable en el camino entre fuente y destino (la del switch maacutes criacutetico)

En celda de datos hay Bit EFCI (explicit forward congestion indicator) eacuteste es fijado en 1 por switch congestionado

bull Si celda de datos precedente a celda RM tiene el EFCI marcado el destino marca bit CI en celda RM retornada

TCP corriendo sobre IP espera hasta recibir tres

paquetes ACK duplicados para iniciar una

retransmisioacuten raacutepida iquestPor queacute piensa usted que los

disentildeadores de TCP no escogieron iniciar la

retransmisioacuten raacutepida tan pronto llega el primer ACK

duplicado iquestSe justifica la espera por tres ACKs

duplicados en la implementacioacuten de un protocolo

confiable en una red ATM

La retransmisioacuten no se efectuacutea ante la llegada del primer duplicado pues es posible que el primer paquete haya tomado una ruta maacutes larga y llegue con posterioridad al segundo En este caso un cambio de orden de llegada genera acuses de recibo duplicados pero no constituye peacuterdida de paquete No se justifica esperar tres ACKs en ATM pues eacutesta establece una conexioacuten entre fuente y destino luego todos los paquetes deben usar la misma ruta y con ello el orden de salida y llegada se mantiene cuando no hay peacuterdidas

Control de Congestioacuten en TCP Usa control extremo a extremo (sin

asistencia de la red)

Tx limita su ventana de transmisioacuten

Si Rx tiene espacio se tiene

CongWin es dinaacutemica y funcioacuten de la

congestioacuten percibida de la red

RcvWindow es el nuacutemero de bytes que

el Rx puede recibir en su buffer la suponemos grande y no limita la tasa de enviacuteo

iquestCoacutemo el Tx percibe la

congestioacuten

Evento de peacuterdida = timeout oacute 3

acks duplicados

Tx TCP reduce tasa (CongWin)

despueacutes de un evento de

peacuterdida

Hay tres mecanismos

AIMD (Additive-Increase

Multiplicative-Decrease)

ldquoPartida lentardquo

Conservativo despueacutes de

evento de timeout

tasaAprox

= CongWin

RTT

[Bytessec]

LastByteSentminus LastByteAckedle minCongWin RcvWindow

TCP AIMD (Additive-Increase

Multiplicative-Decrease)

Decrecimiento

multiplicativo reducir

CongWin a la mitad luego

de peacuterdida

Aumento aditivo aumenta CongWin en 1 MSS cada RTT en ausencia de peacuterdida En algunas implementaciones CongWin incrementa en MSSx(MSSCongWin) por cada ACK recibido

MSS (Maximum Segment Size) es la maacutexima cantidad de datos que se enviacutea en cada segmento sin fragmentarse

Indique queacute protocolo usa el tamantildeo de

segmento maacuteximo (MSS Maximum

Segment Size) iquestA queacute corresponde

El MSS es usado por TCP Corresponde al

MTU (Maximum Transmission Unit) maacutes

pequentildeo en la ruta de la fuente al destino

Usando segmentos de tamantildeo MSS TCP

asegura que sus paquetes no seraacuten

fragmentados

Aumento aditivo La idea es aumentar un MSS luego de un RTT

Podemos aproximarnos aumentando la CongWin cada vez

que se recibe un ACK de manera que al completar 1 RTT

hayamos sumado un MSS

Se enviacutea como maacuteximo CongWin bytes y esperamos por el acuse de recibo

NumSegmentos= NumAkcs=CongWin

MSS

Incr=MSS

NumAkcs=

MSS

CongWin

MSS

=MSSlowast MSS

CongWin

Incr Incremento por cada ACK

RTT

CongWin

Si hay ACK retardados el incremento debe ser

mayor

Partida lenta en TCP (slow start)

Cuando la conexioacuten comienza CongWin = 1

MSS

bull Ejemplo MSS = 500 bytes

amp RTT = 200 msec

bull Tasa inicial = 20 kbps

Ancho de banda disponible

puede ser gtgt MSSRTT

bull Es deseable aumentar tasa

raacutepidamente hasta una tasa

respetable

Cuando la conexioacuten comienza aumentar tasa exponencialmente raacutepido hasta tener primer evento de peacuterdida

Se le llama Slow Start porque parte desde tasa muy abaja

Partida lenta en TCP

Cuando la conexioacuten

comienza aumentar tasa

exponencialmente hasta

primera peacuterdida

bull Duplicar CongWin cada RTT

bull Es hecho incrementando CongWin en 1 MSS por cada

ACK recibido

Resumen tasa inicial es lenta

pero se acelera

exponencialmente raacutepido

Host A

RT

T

Host B

time

Reaccioacuten ante eventos de timeout

iquestCuaacutendo deberiacutea cambiar el aumento de exponencial a lineal

Un buen criterio es Cuando CongWin llega a 12 de su valor antes del timeout

Implementacioacuten Umbral variable (variable threshold)

Ante evento de peacuterdidas el umbral es fijado en 12 de CongWin justo antes de la peacuterdida

Tahoe primera versioacuten de control de congestioacuten en TCP No distinguiacutea entre timeout o ACK duplicados Reno versioacuten siguiente en TCP Siacute distingue timeout de ACK duplicados Es como TCP opera hoy

3 ACKs Duplicados Evento

umbral

Mejor

Reaccioacuten ante eventos de timeout

Despueacutes de 3 ACKs

duplicados

bull CongWin baja a la mitad

bull Luego la ventana crece

linealmente

Despueacutes de un timeout

bull CongWin es fijada en 1

MSS

bull Luego la ventana crece

exponencialmente hasta un

umbral luego crece

linealmente

3 ACKs duplicados indican

que la red es capaz de

transportar algunos

segmentos (soacutelo llegan

fuera de orden en el Rx)

Se perdioacute uno pero

llegaron los otros y por

eso tenemos ACKs

duplicados

timeout antes de 3

duplicados es ldquomaacutes

alarmanterdquo (no llegaron)

En ausencia de errores y cuando el buffer de recepcioacuten es

muy grande la tasa promedio de transferencia de TCP

durante un RTT se puede aproximar por (Tamantildeo de

Ventana de congestioacuten)RTT Muestre un diagrama que

explique la deduccioacuten de esta expresioacuten iquestEs esta expresioacuten

vaacutelida para todo valor de ldquoVentana de Congestioacutenrdquo

Luego de enviar la ventana W el Tx debe esperar la llegada del acuse de recibo maacutes antiguo para retomar la transmisioacuten

No es vaacutelida siempre pues conforme la ventana de congestioacuten aumenta aumenta la utilizacioacuten del canal y cuando eacutesta alcanza 100 no es posible seguir aumentando la tasa pues la tasa de transmisioacuten del enlace pone una cota maacutexima

Tx Rx

RT

T W

Resumen Control de Congestioacuten en TCP

Cuando CongWin estaacute bajo el Threshold (umbral) Tx estaacute en fase slow-start la ventana de transmisioacuten crece exponencialmente (un MSS por cada ACK)

Cuando CongWin estaacute sobre Threshold Tx estaacute en fase abolicioacuten de congestioacuten la ventana crece linealmente (aprox un MSS por cada RTT)

Al tercer ACK duplicados Threshold pasa a CongWin2 y CongWin pasa a Threshold

Cuando ocurre un timeout Threshold pasa a CongWin2 y CongWin se lleva a 1 MSS

Control de Congestioacuten del Tx TCP

SS or CA

SS or CA

SS or CA

Congestion

Avoidance (CA)

Slow Start (SS)

State

CongWin y Threshold no

cambian

Increment duplicate ACK count for

segment being acked

Duplicate ACK

Ingresa a Partida Lenta (slow

start)

Threshold = CongWin2

CongWin = 1 MSS

Set state to ldquoSlow Startrdquo

Timeout

Recuperacioacuten raacutepida

implementando reduccioacuten

multiplicativa CongWin no

caeraacute a 1 MSS

Threshold = CongWin2

CongWin = Threshold

Set state to ldquoCongestion Avoidancerdquo

Loss event

detected by

triple duplicate

ACK

Aumento aditivo resulta en

aumento de CongWin en apox

1 MSS cada RTT

CongWin = CongWin+MSS

(MSSCongWin)

ACK receipt for

previously

unacked data

Resulta en una duplicacioacuten de

CongWin cada RTT

CongWin = CongWin + MSS

If (CongWin gt Threshold)

set state to ldquoCongestion

Avoidancerdquo

ACK receipt for

previously

unacked data

Commentary TCP Sender Action Event

Throughput Simplificado de TCP (tasa de

transferencia de datos lograda) iquestCuaacutel es el throughput promedio de TCP como una funcioacuten del tamantildeo

de ventana CongWin y RTT

bull Ignoremos slow start ya que al ser exponencial es una fase muy

corta

TCP pide ancho de banda adicional al incrementar W en 1 MSS por

cada RTT hasta una peacuterdida

Sea W el tamantildeo de la ventana (en bytes) cuando ocurre una peacuterdida

Cuando la ventana es W el throughput es WRTT

Justo despueacutes de la peacuterdida la ventana cae a W2 y el throughput a

W2RTT

Throughput promedio entre W2RTT y WRTT es 075 WRTT

Esto debido a que el throughput crece linealmente entre ambos

valores

Futuro de TCP Ejemplo segmentos de 1500 bytes RTT de 100ms queremos

throughput de 10 Gbps

Requiere tamantildeo de ventana CongWin W = 83333 (segmentos

en traacutensito)

Throughput en teacuterminos de tasa de peacuterdida (L) es

L=(bytes perdidos)(Nuacutemero total enviados)

Para el throughput deseado con el algoritmo de control de

congestioacuten actual se toleran probabilidades de peacuterdida de soacutelo L

= 210-10 Wow (1 cada 5 mil millones de segmentos)

Se requieren nuevas versiones de TCP para enlaces de alta

velocidad (interesados ver RFC 3649)

LRTT

MSS=hputAvgThroug

122

iquestPor queacute la ventana de congestioacuten de

TCP soacutelo se reduce a la mitad cuando

la peacuterdida es detectada por 3 ACKs

duplicados mientras que se reduce a 1

MSS cuando la peacuterdida es detectada

por timeout

Porque la llegada de 3 ACKs duplicados es una

indicacioacuten que paquetes posteriores al perdido siacute

llegaron luego esta situacioacuten de congestioacuten es

menos criacutetica que cuando hay timeout sin 3 ACKs

duplicados

Equidad en TCP

Objetivo de la Equidad (fairness) Si K sesiones TCP

comparten un mismo enlace de ancho de banda R cada

una deberiacutea tener una tasa promedio de RK

TCP connection 1

Router cuello de botella de capacidad R

TCP connection 2

iquestPor queacute TCP es justo

Supongamos dos sesiones compitiendo

Aumento aditivo da pendiente de 1 como aumento de throughout

Reduccioacuten multiplicativa reduce throughput proporcionalmente

R

R

Recta de Igual tasa capacidad compartida

Throughput Conexioacuten 1

Through

put Cone

xioacuten 2

Peacuterdida decrece tasa en factor de 2

Abolicioacuten de congestioacuten aumento aditivo

Abolicioacuten de congestioacuten aumento aditivo

Peacuterdida decrece tasa en factor de 2

Equidad

Equidad y UDP

Aplicaciones Multimedia no

usan TCP

bull No quieren tasa limitada

por control de congestioacuten

En su lugar usan UDP

bull Enviacutean audioviacutedeo a tasa

constante y toleran

peacuterdidas de paquetes

Aacuterea de investigacioacuten

Hacerlas amistosas con

TCP (TCP friendly)

Equidad y conexiones TCP

paralelas

Nada previene a las aplicaciones de

abrir conexiones paralelas entre

dos hosts

Navegadores WEB hacen esto

Ejemplo Sea un enlace de tasa R

soportando 9 conexiones

Una aplicacioacuten nueva pide 1

conexioacuten TCP obtendraacute R10

Si la aplicacioacuten nueva pide 11

conexiones TCP eacutesta obtendraacute

11R20 maacutes de R2

En una subred hay 6 usuarios viendo

viacutedeos de Youtubecom viacutea conexiones

TCP iquestSi eacutestos fueran los uacutenicos

usuarios queacute fraccioacuten de la capacidad

de un enlace congestionado le deberiacutea

corresponder a cada uno

16

Nota Se supone que ese es el uacutenico traacutefico en el

enlace congestionado en otro caso seraacute la misma

fraccioacuten del traacutefico para cada conexioacuten

Page 8: Redes de Computadoras 1 · Principios de control de congestión Congestión: Informalmente: “demasiadas fuentes enviando muchos datos muy rápido para que la red lo maneje” Es

Causascostos de congestioacuten escenario 3

cuatro transmisores

rutas con multihops

timeoutretransmisiones

iquestQueacute pasa cuando λin se incrementa y λrsquoin crece

finite shared output

link buffers

Host A in original data

Host B out

in original data plus

retransmitted data

Causascostos de congestioacuten escenario 3

Otro ldquocostordquo de congestioacuten

cuando se descartan paquetes cualquier capacidad (de router) usada anteriormente pasa a ser un recurso desperdiciado

Estrategias para control de congestioacuten

Control de congestioacuten

extremo a extremo

No hay informacioacuten de

realimentacioacuten expliacutecita de la red

La congestioacuten es inferida desde

las peacuterdidas y retardos

observados por terminales en los

extremos

Es la estrategia usada por TCP

Control de congestioacuten asistido

por la red

routers proveen realimentacioacuten a

sistemas extremos

Un Bit uacutenico indicando

congestioacuten (ej SNA DECbit

TCPIP ECN ATM)

Expliacutecitamente se informa al Tx

la tasa que el router puede

soportar

Los podemos clasificar en dos grupos amplios

Caso de estudio Control de congestioacuten en ATM

ABR (tecnologiacutea de red capa 3 y menores)

ABR Available Bit Rate

Es un servicio ldquoelaacutesticordquo o flexible

Si camino del Tx tiene poca

carga

bull Tx deberiacutea usar ancho de

banda disponible

Si camino de Tx a Rx estaacute

congestionado

bull Tx reduce a un miacutenimo la

tasa garantizada

Celdas RM (Resource

Management)

Enviadas a intervalos por Tx entre

celdas de datos

bits en celda RM son modificados

por switches

Bit NI no incrementar tasa (=

congestioacuten moderada)

Bit CI Congestion Indication

Celdas RM son retornadas al Tx por

el Rx con bits intactos

ATM Asynchronous Transfer Mode

Caso de estudio Control de congestioacuten

en ATM ABR

En celda RM hay campo ER (explicit rate) de dos bytes

bull Un Switch congestionado puede bajar valor de ER en la celda

bull Tasa de enviacuteo del Tx se ajusta a la tasa miacutenima soportable en el camino entre fuente y destino (la del switch maacutes criacutetico)

En celda de datos hay Bit EFCI (explicit forward congestion indicator) eacuteste es fijado en 1 por switch congestionado

bull Si celda de datos precedente a celda RM tiene el EFCI marcado el destino marca bit CI en celda RM retornada

TCP corriendo sobre IP espera hasta recibir tres

paquetes ACK duplicados para iniciar una

retransmisioacuten raacutepida iquestPor queacute piensa usted que los

disentildeadores de TCP no escogieron iniciar la

retransmisioacuten raacutepida tan pronto llega el primer ACK

duplicado iquestSe justifica la espera por tres ACKs

duplicados en la implementacioacuten de un protocolo

confiable en una red ATM

La retransmisioacuten no se efectuacutea ante la llegada del primer duplicado pues es posible que el primer paquete haya tomado una ruta maacutes larga y llegue con posterioridad al segundo En este caso un cambio de orden de llegada genera acuses de recibo duplicados pero no constituye peacuterdida de paquete No se justifica esperar tres ACKs en ATM pues eacutesta establece una conexioacuten entre fuente y destino luego todos los paquetes deben usar la misma ruta y con ello el orden de salida y llegada se mantiene cuando no hay peacuterdidas

Control de Congestioacuten en TCP Usa control extremo a extremo (sin

asistencia de la red)

Tx limita su ventana de transmisioacuten

Si Rx tiene espacio se tiene

CongWin es dinaacutemica y funcioacuten de la

congestioacuten percibida de la red

RcvWindow es el nuacutemero de bytes que

el Rx puede recibir en su buffer la suponemos grande y no limita la tasa de enviacuteo

iquestCoacutemo el Tx percibe la

congestioacuten

Evento de peacuterdida = timeout oacute 3

acks duplicados

Tx TCP reduce tasa (CongWin)

despueacutes de un evento de

peacuterdida

Hay tres mecanismos

AIMD (Additive-Increase

Multiplicative-Decrease)

ldquoPartida lentardquo

Conservativo despueacutes de

evento de timeout

tasaAprox

= CongWin

RTT

[Bytessec]

LastByteSentminus LastByteAckedle minCongWin RcvWindow

TCP AIMD (Additive-Increase

Multiplicative-Decrease)

Decrecimiento

multiplicativo reducir

CongWin a la mitad luego

de peacuterdida

Aumento aditivo aumenta CongWin en 1 MSS cada RTT en ausencia de peacuterdida En algunas implementaciones CongWin incrementa en MSSx(MSSCongWin) por cada ACK recibido

MSS (Maximum Segment Size) es la maacutexima cantidad de datos que se enviacutea en cada segmento sin fragmentarse

Indique queacute protocolo usa el tamantildeo de

segmento maacuteximo (MSS Maximum

Segment Size) iquestA queacute corresponde

El MSS es usado por TCP Corresponde al

MTU (Maximum Transmission Unit) maacutes

pequentildeo en la ruta de la fuente al destino

Usando segmentos de tamantildeo MSS TCP

asegura que sus paquetes no seraacuten

fragmentados

Aumento aditivo La idea es aumentar un MSS luego de un RTT

Podemos aproximarnos aumentando la CongWin cada vez

que se recibe un ACK de manera que al completar 1 RTT

hayamos sumado un MSS

Se enviacutea como maacuteximo CongWin bytes y esperamos por el acuse de recibo

NumSegmentos= NumAkcs=CongWin

MSS

Incr=MSS

NumAkcs=

MSS

CongWin

MSS

=MSSlowast MSS

CongWin

Incr Incremento por cada ACK

RTT

CongWin

Si hay ACK retardados el incremento debe ser

mayor

Partida lenta en TCP (slow start)

Cuando la conexioacuten comienza CongWin = 1

MSS

bull Ejemplo MSS = 500 bytes

amp RTT = 200 msec

bull Tasa inicial = 20 kbps

Ancho de banda disponible

puede ser gtgt MSSRTT

bull Es deseable aumentar tasa

raacutepidamente hasta una tasa

respetable

Cuando la conexioacuten comienza aumentar tasa exponencialmente raacutepido hasta tener primer evento de peacuterdida

Se le llama Slow Start porque parte desde tasa muy abaja

Partida lenta en TCP

Cuando la conexioacuten

comienza aumentar tasa

exponencialmente hasta

primera peacuterdida

bull Duplicar CongWin cada RTT

bull Es hecho incrementando CongWin en 1 MSS por cada

ACK recibido

Resumen tasa inicial es lenta

pero se acelera

exponencialmente raacutepido

Host A

RT

T

Host B

time

Reaccioacuten ante eventos de timeout

iquestCuaacutendo deberiacutea cambiar el aumento de exponencial a lineal

Un buen criterio es Cuando CongWin llega a 12 de su valor antes del timeout

Implementacioacuten Umbral variable (variable threshold)

Ante evento de peacuterdidas el umbral es fijado en 12 de CongWin justo antes de la peacuterdida

Tahoe primera versioacuten de control de congestioacuten en TCP No distinguiacutea entre timeout o ACK duplicados Reno versioacuten siguiente en TCP Siacute distingue timeout de ACK duplicados Es como TCP opera hoy

3 ACKs Duplicados Evento

umbral

Mejor

Reaccioacuten ante eventos de timeout

Despueacutes de 3 ACKs

duplicados

bull CongWin baja a la mitad

bull Luego la ventana crece

linealmente

Despueacutes de un timeout

bull CongWin es fijada en 1

MSS

bull Luego la ventana crece

exponencialmente hasta un

umbral luego crece

linealmente

3 ACKs duplicados indican

que la red es capaz de

transportar algunos

segmentos (soacutelo llegan

fuera de orden en el Rx)

Se perdioacute uno pero

llegaron los otros y por

eso tenemos ACKs

duplicados

timeout antes de 3

duplicados es ldquomaacutes

alarmanterdquo (no llegaron)

En ausencia de errores y cuando el buffer de recepcioacuten es

muy grande la tasa promedio de transferencia de TCP

durante un RTT se puede aproximar por (Tamantildeo de

Ventana de congestioacuten)RTT Muestre un diagrama que

explique la deduccioacuten de esta expresioacuten iquestEs esta expresioacuten

vaacutelida para todo valor de ldquoVentana de Congestioacutenrdquo

Luego de enviar la ventana W el Tx debe esperar la llegada del acuse de recibo maacutes antiguo para retomar la transmisioacuten

No es vaacutelida siempre pues conforme la ventana de congestioacuten aumenta aumenta la utilizacioacuten del canal y cuando eacutesta alcanza 100 no es posible seguir aumentando la tasa pues la tasa de transmisioacuten del enlace pone una cota maacutexima

Tx Rx

RT

T W

Resumen Control de Congestioacuten en TCP

Cuando CongWin estaacute bajo el Threshold (umbral) Tx estaacute en fase slow-start la ventana de transmisioacuten crece exponencialmente (un MSS por cada ACK)

Cuando CongWin estaacute sobre Threshold Tx estaacute en fase abolicioacuten de congestioacuten la ventana crece linealmente (aprox un MSS por cada RTT)

Al tercer ACK duplicados Threshold pasa a CongWin2 y CongWin pasa a Threshold

Cuando ocurre un timeout Threshold pasa a CongWin2 y CongWin se lleva a 1 MSS

Control de Congestioacuten del Tx TCP

SS or CA

SS or CA

SS or CA

Congestion

Avoidance (CA)

Slow Start (SS)

State

CongWin y Threshold no

cambian

Increment duplicate ACK count for

segment being acked

Duplicate ACK

Ingresa a Partida Lenta (slow

start)

Threshold = CongWin2

CongWin = 1 MSS

Set state to ldquoSlow Startrdquo

Timeout

Recuperacioacuten raacutepida

implementando reduccioacuten

multiplicativa CongWin no

caeraacute a 1 MSS

Threshold = CongWin2

CongWin = Threshold

Set state to ldquoCongestion Avoidancerdquo

Loss event

detected by

triple duplicate

ACK

Aumento aditivo resulta en

aumento de CongWin en apox

1 MSS cada RTT

CongWin = CongWin+MSS

(MSSCongWin)

ACK receipt for

previously

unacked data

Resulta en una duplicacioacuten de

CongWin cada RTT

CongWin = CongWin + MSS

If (CongWin gt Threshold)

set state to ldquoCongestion

Avoidancerdquo

ACK receipt for

previously

unacked data

Commentary TCP Sender Action Event

Throughput Simplificado de TCP (tasa de

transferencia de datos lograda) iquestCuaacutel es el throughput promedio de TCP como una funcioacuten del tamantildeo

de ventana CongWin y RTT

bull Ignoremos slow start ya que al ser exponencial es una fase muy

corta

TCP pide ancho de banda adicional al incrementar W en 1 MSS por

cada RTT hasta una peacuterdida

Sea W el tamantildeo de la ventana (en bytes) cuando ocurre una peacuterdida

Cuando la ventana es W el throughput es WRTT

Justo despueacutes de la peacuterdida la ventana cae a W2 y el throughput a

W2RTT

Throughput promedio entre W2RTT y WRTT es 075 WRTT

Esto debido a que el throughput crece linealmente entre ambos

valores

Futuro de TCP Ejemplo segmentos de 1500 bytes RTT de 100ms queremos

throughput de 10 Gbps

Requiere tamantildeo de ventana CongWin W = 83333 (segmentos

en traacutensito)

Throughput en teacuterminos de tasa de peacuterdida (L) es

L=(bytes perdidos)(Nuacutemero total enviados)

Para el throughput deseado con el algoritmo de control de

congestioacuten actual se toleran probabilidades de peacuterdida de soacutelo L

= 210-10 Wow (1 cada 5 mil millones de segmentos)

Se requieren nuevas versiones de TCP para enlaces de alta

velocidad (interesados ver RFC 3649)

LRTT

MSS=hputAvgThroug

122

iquestPor queacute la ventana de congestioacuten de

TCP soacutelo se reduce a la mitad cuando

la peacuterdida es detectada por 3 ACKs

duplicados mientras que se reduce a 1

MSS cuando la peacuterdida es detectada

por timeout

Porque la llegada de 3 ACKs duplicados es una

indicacioacuten que paquetes posteriores al perdido siacute

llegaron luego esta situacioacuten de congestioacuten es

menos criacutetica que cuando hay timeout sin 3 ACKs

duplicados

Equidad en TCP

Objetivo de la Equidad (fairness) Si K sesiones TCP

comparten un mismo enlace de ancho de banda R cada

una deberiacutea tener una tasa promedio de RK

TCP connection 1

Router cuello de botella de capacidad R

TCP connection 2

iquestPor queacute TCP es justo

Supongamos dos sesiones compitiendo

Aumento aditivo da pendiente de 1 como aumento de throughout

Reduccioacuten multiplicativa reduce throughput proporcionalmente

R

R

Recta de Igual tasa capacidad compartida

Throughput Conexioacuten 1

Through

put Cone

xioacuten 2

Peacuterdida decrece tasa en factor de 2

Abolicioacuten de congestioacuten aumento aditivo

Abolicioacuten de congestioacuten aumento aditivo

Peacuterdida decrece tasa en factor de 2

Equidad

Equidad y UDP

Aplicaciones Multimedia no

usan TCP

bull No quieren tasa limitada

por control de congestioacuten

En su lugar usan UDP

bull Enviacutean audioviacutedeo a tasa

constante y toleran

peacuterdidas de paquetes

Aacuterea de investigacioacuten

Hacerlas amistosas con

TCP (TCP friendly)

Equidad y conexiones TCP

paralelas

Nada previene a las aplicaciones de

abrir conexiones paralelas entre

dos hosts

Navegadores WEB hacen esto

Ejemplo Sea un enlace de tasa R

soportando 9 conexiones

Una aplicacioacuten nueva pide 1

conexioacuten TCP obtendraacute R10

Si la aplicacioacuten nueva pide 11

conexiones TCP eacutesta obtendraacute

11R20 maacutes de R2

En una subred hay 6 usuarios viendo

viacutedeos de Youtubecom viacutea conexiones

TCP iquestSi eacutestos fueran los uacutenicos

usuarios queacute fraccioacuten de la capacidad

de un enlace congestionado le deberiacutea

corresponder a cada uno

16

Nota Se supone que ese es el uacutenico traacutefico en el

enlace congestionado en otro caso seraacute la misma

fraccioacuten del traacutefico para cada conexioacuten

Page 9: Redes de Computadoras 1 · Principios de control de congestión Congestión: Informalmente: “demasiadas fuentes enviando muchos datos muy rápido para que la red lo maneje” Es

Causascostos de congestioacuten escenario 3

Otro ldquocostordquo de congestioacuten

cuando se descartan paquetes cualquier capacidad (de router) usada anteriormente pasa a ser un recurso desperdiciado

Estrategias para control de congestioacuten

Control de congestioacuten

extremo a extremo

No hay informacioacuten de

realimentacioacuten expliacutecita de la red

La congestioacuten es inferida desde

las peacuterdidas y retardos

observados por terminales en los

extremos

Es la estrategia usada por TCP

Control de congestioacuten asistido

por la red

routers proveen realimentacioacuten a

sistemas extremos

Un Bit uacutenico indicando

congestioacuten (ej SNA DECbit

TCPIP ECN ATM)

Expliacutecitamente se informa al Tx

la tasa que el router puede

soportar

Los podemos clasificar en dos grupos amplios

Caso de estudio Control de congestioacuten en ATM

ABR (tecnologiacutea de red capa 3 y menores)

ABR Available Bit Rate

Es un servicio ldquoelaacutesticordquo o flexible

Si camino del Tx tiene poca

carga

bull Tx deberiacutea usar ancho de

banda disponible

Si camino de Tx a Rx estaacute

congestionado

bull Tx reduce a un miacutenimo la

tasa garantizada

Celdas RM (Resource

Management)

Enviadas a intervalos por Tx entre

celdas de datos

bits en celda RM son modificados

por switches

Bit NI no incrementar tasa (=

congestioacuten moderada)

Bit CI Congestion Indication

Celdas RM son retornadas al Tx por

el Rx con bits intactos

ATM Asynchronous Transfer Mode

Caso de estudio Control de congestioacuten

en ATM ABR

En celda RM hay campo ER (explicit rate) de dos bytes

bull Un Switch congestionado puede bajar valor de ER en la celda

bull Tasa de enviacuteo del Tx se ajusta a la tasa miacutenima soportable en el camino entre fuente y destino (la del switch maacutes criacutetico)

En celda de datos hay Bit EFCI (explicit forward congestion indicator) eacuteste es fijado en 1 por switch congestionado

bull Si celda de datos precedente a celda RM tiene el EFCI marcado el destino marca bit CI en celda RM retornada

TCP corriendo sobre IP espera hasta recibir tres

paquetes ACK duplicados para iniciar una

retransmisioacuten raacutepida iquestPor queacute piensa usted que los

disentildeadores de TCP no escogieron iniciar la

retransmisioacuten raacutepida tan pronto llega el primer ACK

duplicado iquestSe justifica la espera por tres ACKs

duplicados en la implementacioacuten de un protocolo

confiable en una red ATM

La retransmisioacuten no se efectuacutea ante la llegada del primer duplicado pues es posible que el primer paquete haya tomado una ruta maacutes larga y llegue con posterioridad al segundo En este caso un cambio de orden de llegada genera acuses de recibo duplicados pero no constituye peacuterdida de paquete No se justifica esperar tres ACKs en ATM pues eacutesta establece una conexioacuten entre fuente y destino luego todos los paquetes deben usar la misma ruta y con ello el orden de salida y llegada se mantiene cuando no hay peacuterdidas

Control de Congestioacuten en TCP Usa control extremo a extremo (sin

asistencia de la red)

Tx limita su ventana de transmisioacuten

Si Rx tiene espacio se tiene

CongWin es dinaacutemica y funcioacuten de la

congestioacuten percibida de la red

RcvWindow es el nuacutemero de bytes que

el Rx puede recibir en su buffer la suponemos grande y no limita la tasa de enviacuteo

iquestCoacutemo el Tx percibe la

congestioacuten

Evento de peacuterdida = timeout oacute 3

acks duplicados

Tx TCP reduce tasa (CongWin)

despueacutes de un evento de

peacuterdida

Hay tres mecanismos

AIMD (Additive-Increase

Multiplicative-Decrease)

ldquoPartida lentardquo

Conservativo despueacutes de

evento de timeout

tasaAprox

= CongWin

RTT

[Bytessec]

LastByteSentminus LastByteAckedle minCongWin RcvWindow

TCP AIMD (Additive-Increase

Multiplicative-Decrease)

Decrecimiento

multiplicativo reducir

CongWin a la mitad luego

de peacuterdida

Aumento aditivo aumenta CongWin en 1 MSS cada RTT en ausencia de peacuterdida En algunas implementaciones CongWin incrementa en MSSx(MSSCongWin) por cada ACK recibido

MSS (Maximum Segment Size) es la maacutexima cantidad de datos que se enviacutea en cada segmento sin fragmentarse

Indique queacute protocolo usa el tamantildeo de

segmento maacuteximo (MSS Maximum

Segment Size) iquestA queacute corresponde

El MSS es usado por TCP Corresponde al

MTU (Maximum Transmission Unit) maacutes

pequentildeo en la ruta de la fuente al destino

Usando segmentos de tamantildeo MSS TCP

asegura que sus paquetes no seraacuten

fragmentados

Aumento aditivo La idea es aumentar un MSS luego de un RTT

Podemos aproximarnos aumentando la CongWin cada vez

que se recibe un ACK de manera que al completar 1 RTT

hayamos sumado un MSS

Se enviacutea como maacuteximo CongWin bytes y esperamos por el acuse de recibo

NumSegmentos= NumAkcs=CongWin

MSS

Incr=MSS

NumAkcs=

MSS

CongWin

MSS

=MSSlowast MSS

CongWin

Incr Incremento por cada ACK

RTT

CongWin

Si hay ACK retardados el incremento debe ser

mayor

Partida lenta en TCP (slow start)

Cuando la conexioacuten comienza CongWin = 1

MSS

bull Ejemplo MSS = 500 bytes

amp RTT = 200 msec

bull Tasa inicial = 20 kbps

Ancho de banda disponible

puede ser gtgt MSSRTT

bull Es deseable aumentar tasa

raacutepidamente hasta una tasa

respetable

Cuando la conexioacuten comienza aumentar tasa exponencialmente raacutepido hasta tener primer evento de peacuterdida

Se le llama Slow Start porque parte desde tasa muy abaja

Partida lenta en TCP

Cuando la conexioacuten

comienza aumentar tasa

exponencialmente hasta

primera peacuterdida

bull Duplicar CongWin cada RTT

bull Es hecho incrementando CongWin en 1 MSS por cada

ACK recibido

Resumen tasa inicial es lenta

pero se acelera

exponencialmente raacutepido

Host A

RT

T

Host B

time

Reaccioacuten ante eventos de timeout

iquestCuaacutendo deberiacutea cambiar el aumento de exponencial a lineal

Un buen criterio es Cuando CongWin llega a 12 de su valor antes del timeout

Implementacioacuten Umbral variable (variable threshold)

Ante evento de peacuterdidas el umbral es fijado en 12 de CongWin justo antes de la peacuterdida

Tahoe primera versioacuten de control de congestioacuten en TCP No distinguiacutea entre timeout o ACK duplicados Reno versioacuten siguiente en TCP Siacute distingue timeout de ACK duplicados Es como TCP opera hoy

3 ACKs Duplicados Evento

umbral

Mejor

Reaccioacuten ante eventos de timeout

Despueacutes de 3 ACKs

duplicados

bull CongWin baja a la mitad

bull Luego la ventana crece

linealmente

Despueacutes de un timeout

bull CongWin es fijada en 1

MSS

bull Luego la ventana crece

exponencialmente hasta un

umbral luego crece

linealmente

3 ACKs duplicados indican

que la red es capaz de

transportar algunos

segmentos (soacutelo llegan

fuera de orden en el Rx)

Se perdioacute uno pero

llegaron los otros y por

eso tenemos ACKs

duplicados

timeout antes de 3

duplicados es ldquomaacutes

alarmanterdquo (no llegaron)

En ausencia de errores y cuando el buffer de recepcioacuten es

muy grande la tasa promedio de transferencia de TCP

durante un RTT se puede aproximar por (Tamantildeo de

Ventana de congestioacuten)RTT Muestre un diagrama que

explique la deduccioacuten de esta expresioacuten iquestEs esta expresioacuten

vaacutelida para todo valor de ldquoVentana de Congestioacutenrdquo

Luego de enviar la ventana W el Tx debe esperar la llegada del acuse de recibo maacutes antiguo para retomar la transmisioacuten

No es vaacutelida siempre pues conforme la ventana de congestioacuten aumenta aumenta la utilizacioacuten del canal y cuando eacutesta alcanza 100 no es posible seguir aumentando la tasa pues la tasa de transmisioacuten del enlace pone una cota maacutexima

Tx Rx

RT

T W

Resumen Control de Congestioacuten en TCP

Cuando CongWin estaacute bajo el Threshold (umbral) Tx estaacute en fase slow-start la ventana de transmisioacuten crece exponencialmente (un MSS por cada ACK)

Cuando CongWin estaacute sobre Threshold Tx estaacute en fase abolicioacuten de congestioacuten la ventana crece linealmente (aprox un MSS por cada RTT)

Al tercer ACK duplicados Threshold pasa a CongWin2 y CongWin pasa a Threshold

Cuando ocurre un timeout Threshold pasa a CongWin2 y CongWin se lleva a 1 MSS

Control de Congestioacuten del Tx TCP

SS or CA

SS or CA

SS or CA

Congestion

Avoidance (CA)

Slow Start (SS)

State

CongWin y Threshold no

cambian

Increment duplicate ACK count for

segment being acked

Duplicate ACK

Ingresa a Partida Lenta (slow

start)

Threshold = CongWin2

CongWin = 1 MSS

Set state to ldquoSlow Startrdquo

Timeout

Recuperacioacuten raacutepida

implementando reduccioacuten

multiplicativa CongWin no

caeraacute a 1 MSS

Threshold = CongWin2

CongWin = Threshold

Set state to ldquoCongestion Avoidancerdquo

Loss event

detected by

triple duplicate

ACK

Aumento aditivo resulta en

aumento de CongWin en apox

1 MSS cada RTT

CongWin = CongWin+MSS

(MSSCongWin)

ACK receipt for

previously

unacked data

Resulta en una duplicacioacuten de

CongWin cada RTT

CongWin = CongWin + MSS

If (CongWin gt Threshold)

set state to ldquoCongestion

Avoidancerdquo

ACK receipt for

previously

unacked data

Commentary TCP Sender Action Event

Throughput Simplificado de TCP (tasa de

transferencia de datos lograda) iquestCuaacutel es el throughput promedio de TCP como una funcioacuten del tamantildeo

de ventana CongWin y RTT

bull Ignoremos slow start ya que al ser exponencial es una fase muy

corta

TCP pide ancho de banda adicional al incrementar W en 1 MSS por

cada RTT hasta una peacuterdida

Sea W el tamantildeo de la ventana (en bytes) cuando ocurre una peacuterdida

Cuando la ventana es W el throughput es WRTT

Justo despueacutes de la peacuterdida la ventana cae a W2 y el throughput a

W2RTT

Throughput promedio entre W2RTT y WRTT es 075 WRTT

Esto debido a que el throughput crece linealmente entre ambos

valores

Futuro de TCP Ejemplo segmentos de 1500 bytes RTT de 100ms queremos

throughput de 10 Gbps

Requiere tamantildeo de ventana CongWin W = 83333 (segmentos

en traacutensito)

Throughput en teacuterminos de tasa de peacuterdida (L) es

L=(bytes perdidos)(Nuacutemero total enviados)

Para el throughput deseado con el algoritmo de control de

congestioacuten actual se toleran probabilidades de peacuterdida de soacutelo L

= 210-10 Wow (1 cada 5 mil millones de segmentos)

Se requieren nuevas versiones de TCP para enlaces de alta

velocidad (interesados ver RFC 3649)

LRTT

MSS=hputAvgThroug

122

iquestPor queacute la ventana de congestioacuten de

TCP soacutelo se reduce a la mitad cuando

la peacuterdida es detectada por 3 ACKs

duplicados mientras que se reduce a 1

MSS cuando la peacuterdida es detectada

por timeout

Porque la llegada de 3 ACKs duplicados es una

indicacioacuten que paquetes posteriores al perdido siacute

llegaron luego esta situacioacuten de congestioacuten es

menos criacutetica que cuando hay timeout sin 3 ACKs

duplicados

Equidad en TCP

Objetivo de la Equidad (fairness) Si K sesiones TCP

comparten un mismo enlace de ancho de banda R cada

una deberiacutea tener una tasa promedio de RK

TCP connection 1

Router cuello de botella de capacidad R

TCP connection 2

iquestPor queacute TCP es justo

Supongamos dos sesiones compitiendo

Aumento aditivo da pendiente de 1 como aumento de throughout

Reduccioacuten multiplicativa reduce throughput proporcionalmente

R

R

Recta de Igual tasa capacidad compartida

Throughput Conexioacuten 1

Through

put Cone

xioacuten 2

Peacuterdida decrece tasa en factor de 2

Abolicioacuten de congestioacuten aumento aditivo

Abolicioacuten de congestioacuten aumento aditivo

Peacuterdida decrece tasa en factor de 2

Equidad

Equidad y UDP

Aplicaciones Multimedia no

usan TCP

bull No quieren tasa limitada

por control de congestioacuten

En su lugar usan UDP

bull Enviacutean audioviacutedeo a tasa

constante y toleran

peacuterdidas de paquetes

Aacuterea de investigacioacuten

Hacerlas amistosas con

TCP (TCP friendly)

Equidad y conexiones TCP

paralelas

Nada previene a las aplicaciones de

abrir conexiones paralelas entre

dos hosts

Navegadores WEB hacen esto

Ejemplo Sea un enlace de tasa R

soportando 9 conexiones

Una aplicacioacuten nueva pide 1

conexioacuten TCP obtendraacute R10

Si la aplicacioacuten nueva pide 11

conexiones TCP eacutesta obtendraacute

11R20 maacutes de R2

En una subred hay 6 usuarios viendo

viacutedeos de Youtubecom viacutea conexiones

TCP iquestSi eacutestos fueran los uacutenicos

usuarios queacute fraccioacuten de la capacidad

de un enlace congestionado le deberiacutea

corresponder a cada uno

16

Nota Se supone que ese es el uacutenico traacutefico en el

enlace congestionado en otro caso seraacute la misma

fraccioacuten del traacutefico para cada conexioacuten

Page 10: Redes de Computadoras 1 · Principios de control de congestión Congestión: Informalmente: “demasiadas fuentes enviando muchos datos muy rápido para que la red lo maneje” Es

Estrategias para control de congestioacuten

Control de congestioacuten

extremo a extremo

No hay informacioacuten de

realimentacioacuten expliacutecita de la red

La congestioacuten es inferida desde

las peacuterdidas y retardos

observados por terminales en los

extremos

Es la estrategia usada por TCP

Control de congestioacuten asistido

por la red

routers proveen realimentacioacuten a

sistemas extremos

Un Bit uacutenico indicando

congestioacuten (ej SNA DECbit

TCPIP ECN ATM)

Expliacutecitamente se informa al Tx

la tasa que el router puede

soportar

Los podemos clasificar en dos grupos amplios

Caso de estudio Control de congestioacuten en ATM

ABR (tecnologiacutea de red capa 3 y menores)

ABR Available Bit Rate

Es un servicio ldquoelaacutesticordquo o flexible

Si camino del Tx tiene poca

carga

bull Tx deberiacutea usar ancho de

banda disponible

Si camino de Tx a Rx estaacute

congestionado

bull Tx reduce a un miacutenimo la

tasa garantizada

Celdas RM (Resource

Management)

Enviadas a intervalos por Tx entre

celdas de datos

bits en celda RM son modificados

por switches

Bit NI no incrementar tasa (=

congestioacuten moderada)

Bit CI Congestion Indication

Celdas RM son retornadas al Tx por

el Rx con bits intactos

ATM Asynchronous Transfer Mode

Caso de estudio Control de congestioacuten

en ATM ABR

En celda RM hay campo ER (explicit rate) de dos bytes

bull Un Switch congestionado puede bajar valor de ER en la celda

bull Tasa de enviacuteo del Tx se ajusta a la tasa miacutenima soportable en el camino entre fuente y destino (la del switch maacutes criacutetico)

En celda de datos hay Bit EFCI (explicit forward congestion indicator) eacuteste es fijado en 1 por switch congestionado

bull Si celda de datos precedente a celda RM tiene el EFCI marcado el destino marca bit CI en celda RM retornada

TCP corriendo sobre IP espera hasta recibir tres

paquetes ACK duplicados para iniciar una

retransmisioacuten raacutepida iquestPor queacute piensa usted que los

disentildeadores de TCP no escogieron iniciar la

retransmisioacuten raacutepida tan pronto llega el primer ACK

duplicado iquestSe justifica la espera por tres ACKs

duplicados en la implementacioacuten de un protocolo

confiable en una red ATM

La retransmisioacuten no se efectuacutea ante la llegada del primer duplicado pues es posible que el primer paquete haya tomado una ruta maacutes larga y llegue con posterioridad al segundo En este caso un cambio de orden de llegada genera acuses de recibo duplicados pero no constituye peacuterdida de paquete No se justifica esperar tres ACKs en ATM pues eacutesta establece una conexioacuten entre fuente y destino luego todos los paquetes deben usar la misma ruta y con ello el orden de salida y llegada se mantiene cuando no hay peacuterdidas

Control de Congestioacuten en TCP Usa control extremo a extremo (sin

asistencia de la red)

Tx limita su ventana de transmisioacuten

Si Rx tiene espacio se tiene

CongWin es dinaacutemica y funcioacuten de la

congestioacuten percibida de la red

RcvWindow es el nuacutemero de bytes que

el Rx puede recibir en su buffer la suponemos grande y no limita la tasa de enviacuteo

iquestCoacutemo el Tx percibe la

congestioacuten

Evento de peacuterdida = timeout oacute 3

acks duplicados

Tx TCP reduce tasa (CongWin)

despueacutes de un evento de

peacuterdida

Hay tres mecanismos

AIMD (Additive-Increase

Multiplicative-Decrease)

ldquoPartida lentardquo

Conservativo despueacutes de

evento de timeout

tasaAprox

= CongWin

RTT

[Bytessec]

LastByteSentminus LastByteAckedle minCongWin RcvWindow

TCP AIMD (Additive-Increase

Multiplicative-Decrease)

Decrecimiento

multiplicativo reducir

CongWin a la mitad luego

de peacuterdida

Aumento aditivo aumenta CongWin en 1 MSS cada RTT en ausencia de peacuterdida En algunas implementaciones CongWin incrementa en MSSx(MSSCongWin) por cada ACK recibido

MSS (Maximum Segment Size) es la maacutexima cantidad de datos que se enviacutea en cada segmento sin fragmentarse

Indique queacute protocolo usa el tamantildeo de

segmento maacuteximo (MSS Maximum

Segment Size) iquestA queacute corresponde

El MSS es usado por TCP Corresponde al

MTU (Maximum Transmission Unit) maacutes

pequentildeo en la ruta de la fuente al destino

Usando segmentos de tamantildeo MSS TCP

asegura que sus paquetes no seraacuten

fragmentados

Aumento aditivo La idea es aumentar un MSS luego de un RTT

Podemos aproximarnos aumentando la CongWin cada vez

que se recibe un ACK de manera que al completar 1 RTT

hayamos sumado un MSS

Se enviacutea como maacuteximo CongWin bytes y esperamos por el acuse de recibo

NumSegmentos= NumAkcs=CongWin

MSS

Incr=MSS

NumAkcs=

MSS

CongWin

MSS

=MSSlowast MSS

CongWin

Incr Incremento por cada ACK

RTT

CongWin

Si hay ACK retardados el incremento debe ser

mayor

Partida lenta en TCP (slow start)

Cuando la conexioacuten comienza CongWin = 1

MSS

bull Ejemplo MSS = 500 bytes

amp RTT = 200 msec

bull Tasa inicial = 20 kbps

Ancho de banda disponible

puede ser gtgt MSSRTT

bull Es deseable aumentar tasa

raacutepidamente hasta una tasa

respetable

Cuando la conexioacuten comienza aumentar tasa exponencialmente raacutepido hasta tener primer evento de peacuterdida

Se le llama Slow Start porque parte desde tasa muy abaja

Partida lenta en TCP

Cuando la conexioacuten

comienza aumentar tasa

exponencialmente hasta

primera peacuterdida

bull Duplicar CongWin cada RTT

bull Es hecho incrementando CongWin en 1 MSS por cada

ACK recibido

Resumen tasa inicial es lenta

pero se acelera

exponencialmente raacutepido

Host A

RT

T

Host B

time

Reaccioacuten ante eventos de timeout

iquestCuaacutendo deberiacutea cambiar el aumento de exponencial a lineal

Un buen criterio es Cuando CongWin llega a 12 de su valor antes del timeout

Implementacioacuten Umbral variable (variable threshold)

Ante evento de peacuterdidas el umbral es fijado en 12 de CongWin justo antes de la peacuterdida

Tahoe primera versioacuten de control de congestioacuten en TCP No distinguiacutea entre timeout o ACK duplicados Reno versioacuten siguiente en TCP Siacute distingue timeout de ACK duplicados Es como TCP opera hoy

3 ACKs Duplicados Evento

umbral

Mejor

Reaccioacuten ante eventos de timeout

Despueacutes de 3 ACKs

duplicados

bull CongWin baja a la mitad

bull Luego la ventana crece

linealmente

Despueacutes de un timeout

bull CongWin es fijada en 1

MSS

bull Luego la ventana crece

exponencialmente hasta un

umbral luego crece

linealmente

3 ACKs duplicados indican

que la red es capaz de

transportar algunos

segmentos (soacutelo llegan

fuera de orden en el Rx)

Se perdioacute uno pero

llegaron los otros y por

eso tenemos ACKs

duplicados

timeout antes de 3

duplicados es ldquomaacutes

alarmanterdquo (no llegaron)

En ausencia de errores y cuando el buffer de recepcioacuten es

muy grande la tasa promedio de transferencia de TCP

durante un RTT se puede aproximar por (Tamantildeo de

Ventana de congestioacuten)RTT Muestre un diagrama que

explique la deduccioacuten de esta expresioacuten iquestEs esta expresioacuten

vaacutelida para todo valor de ldquoVentana de Congestioacutenrdquo

Luego de enviar la ventana W el Tx debe esperar la llegada del acuse de recibo maacutes antiguo para retomar la transmisioacuten

No es vaacutelida siempre pues conforme la ventana de congestioacuten aumenta aumenta la utilizacioacuten del canal y cuando eacutesta alcanza 100 no es posible seguir aumentando la tasa pues la tasa de transmisioacuten del enlace pone una cota maacutexima

Tx Rx

RT

T W

Resumen Control de Congestioacuten en TCP

Cuando CongWin estaacute bajo el Threshold (umbral) Tx estaacute en fase slow-start la ventana de transmisioacuten crece exponencialmente (un MSS por cada ACK)

Cuando CongWin estaacute sobre Threshold Tx estaacute en fase abolicioacuten de congestioacuten la ventana crece linealmente (aprox un MSS por cada RTT)

Al tercer ACK duplicados Threshold pasa a CongWin2 y CongWin pasa a Threshold

Cuando ocurre un timeout Threshold pasa a CongWin2 y CongWin se lleva a 1 MSS

Control de Congestioacuten del Tx TCP

SS or CA

SS or CA

SS or CA

Congestion

Avoidance (CA)

Slow Start (SS)

State

CongWin y Threshold no

cambian

Increment duplicate ACK count for

segment being acked

Duplicate ACK

Ingresa a Partida Lenta (slow

start)

Threshold = CongWin2

CongWin = 1 MSS

Set state to ldquoSlow Startrdquo

Timeout

Recuperacioacuten raacutepida

implementando reduccioacuten

multiplicativa CongWin no

caeraacute a 1 MSS

Threshold = CongWin2

CongWin = Threshold

Set state to ldquoCongestion Avoidancerdquo

Loss event

detected by

triple duplicate

ACK

Aumento aditivo resulta en

aumento de CongWin en apox

1 MSS cada RTT

CongWin = CongWin+MSS

(MSSCongWin)

ACK receipt for

previously

unacked data

Resulta en una duplicacioacuten de

CongWin cada RTT

CongWin = CongWin + MSS

If (CongWin gt Threshold)

set state to ldquoCongestion

Avoidancerdquo

ACK receipt for

previously

unacked data

Commentary TCP Sender Action Event

Throughput Simplificado de TCP (tasa de

transferencia de datos lograda) iquestCuaacutel es el throughput promedio de TCP como una funcioacuten del tamantildeo

de ventana CongWin y RTT

bull Ignoremos slow start ya que al ser exponencial es una fase muy

corta

TCP pide ancho de banda adicional al incrementar W en 1 MSS por

cada RTT hasta una peacuterdida

Sea W el tamantildeo de la ventana (en bytes) cuando ocurre una peacuterdida

Cuando la ventana es W el throughput es WRTT

Justo despueacutes de la peacuterdida la ventana cae a W2 y el throughput a

W2RTT

Throughput promedio entre W2RTT y WRTT es 075 WRTT

Esto debido a que el throughput crece linealmente entre ambos

valores

Futuro de TCP Ejemplo segmentos de 1500 bytes RTT de 100ms queremos

throughput de 10 Gbps

Requiere tamantildeo de ventana CongWin W = 83333 (segmentos

en traacutensito)

Throughput en teacuterminos de tasa de peacuterdida (L) es

L=(bytes perdidos)(Nuacutemero total enviados)

Para el throughput deseado con el algoritmo de control de

congestioacuten actual se toleran probabilidades de peacuterdida de soacutelo L

= 210-10 Wow (1 cada 5 mil millones de segmentos)

Se requieren nuevas versiones de TCP para enlaces de alta

velocidad (interesados ver RFC 3649)

LRTT

MSS=hputAvgThroug

122

iquestPor queacute la ventana de congestioacuten de

TCP soacutelo se reduce a la mitad cuando

la peacuterdida es detectada por 3 ACKs

duplicados mientras que se reduce a 1

MSS cuando la peacuterdida es detectada

por timeout

Porque la llegada de 3 ACKs duplicados es una

indicacioacuten que paquetes posteriores al perdido siacute

llegaron luego esta situacioacuten de congestioacuten es

menos criacutetica que cuando hay timeout sin 3 ACKs

duplicados

Equidad en TCP

Objetivo de la Equidad (fairness) Si K sesiones TCP

comparten un mismo enlace de ancho de banda R cada

una deberiacutea tener una tasa promedio de RK

TCP connection 1

Router cuello de botella de capacidad R

TCP connection 2

iquestPor queacute TCP es justo

Supongamos dos sesiones compitiendo

Aumento aditivo da pendiente de 1 como aumento de throughout

Reduccioacuten multiplicativa reduce throughput proporcionalmente

R

R

Recta de Igual tasa capacidad compartida

Throughput Conexioacuten 1

Through

put Cone

xioacuten 2

Peacuterdida decrece tasa en factor de 2

Abolicioacuten de congestioacuten aumento aditivo

Abolicioacuten de congestioacuten aumento aditivo

Peacuterdida decrece tasa en factor de 2

Equidad

Equidad y UDP

Aplicaciones Multimedia no

usan TCP

bull No quieren tasa limitada

por control de congestioacuten

En su lugar usan UDP

bull Enviacutean audioviacutedeo a tasa

constante y toleran

peacuterdidas de paquetes

Aacuterea de investigacioacuten

Hacerlas amistosas con

TCP (TCP friendly)

Equidad y conexiones TCP

paralelas

Nada previene a las aplicaciones de

abrir conexiones paralelas entre

dos hosts

Navegadores WEB hacen esto

Ejemplo Sea un enlace de tasa R

soportando 9 conexiones

Una aplicacioacuten nueva pide 1

conexioacuten TCP obtendraacute R10

Si la aplicacioacuten nueva pide 11

conexiones TCP eacutesta obtendraacute

11R20 maacutes de R2

En una subred hay 6 usuarios viendo

viacutedeos de Youtubecom viacutea conexiones

TCP iquestSi eacutestos fueran los uacutenicos

usuarios queacute fraccioacuten de la capacidad

de un enlace congestionado le deberiacutea

corresponder a cada uno

16

Nota Se supone que ese es el uacutenico traacutefico en el

enlace congestionado en otro caso seraacute la misma

fraccioacuten del traacutefico para cada conexioacuten

Page 11: Redes de Computadoras 1 · Principios de control de congestión Congestión: Informalmente: “demasiadas fuentes enviando muchos datos muy rápido para que la red lo maneje” Es

Caso de estudio Control de congestioacuten en ATM

ABR (tecnologiacutea de red capa 3 y menores)

ABR Available Bit Rate

Es un servicio ldquoelaacutesticordquo o flexible

Si camino del Tx tiene poca

carga

bull Tx deberiacutea usar ancho de

banda disponible

Si camino de Tx a Rx estaacute

congestionado

bull Tx reduce a un miacutenimo la

tasa garantizada

Celdas RM (Resource

Management)

Enviadas a intervalos por Tx entre

celdas de datos

bits en celda RM son modificados

por switches

Bit NI no incrementar tasa (=

congestioacuten moderada)

Bit CI Congestion Indication

Celdas RM son retornadas al Tx por

el Rx con bits intactos

ATM Asynchronous Transfer Mode

Caso de estudio Control de congestioacuten

en ATM ABR

En celda RM hay campo ER (explicit rate) de dos bytes

bull Un Switch congestionado puede bajar valor de ER en la celda

bull Tasa de enviacuteo del Tx se ajusta a la tasa miacutenima soportable en el camino entre fuente y destino (la del switch maacutes criacutetico)

En celda de datos hay Bit EFCI (explicit forward congestion indicator) eacuteste es fijado en 1 por switch congestionado

bull Si celda de datos precedente a celda RM tiene el EFCI marcado el destino marca bit CI en celda RM retornada

TCP corriendo sobre IP espera hasta recibir tres

paquetes ACK duplicados para iniciar una

retransmisioacuten raacutepida iquestPor queacute piensa usted que los

disentildeadores de TCP no escogieron iniciar la

retransmisioacuten raacutepida tan pronto llega el primer ACK

duplicado iquestSe justifica la espera por tres ACKs

duplicados en la implementacioacuten de un protocolo

confiable en una red ATM

La retransmisioacuten no se efectuacutea ante la llegada del primer duplicado pues es posible que el primer paquete haya tomado una ruta maacutes larga y llegue con posterioridad al segundo En este caso un cambio de orden de llegada genera acuses de recibo duplicados pero no constituye peacuterdida de paquete No se justifica esperar tres ACKs en ATM pues eacutesta establece una conexioacuten entre fuente y destino luego todos los paquetes deben usar la misma ruta y con ello el orden de salida y llegada se mantiene cuando no hay peacuterdidas

Control de Congestioacuten en TCP Usa control extremo a extremo (sin

asistencia de la red)

Tx limita su ventana de transmisioacuten

Si Rx tiene espacio se tiene

CongWin es dinaacutemica y funcioacuten de la

congestioacuten percibida de la red

RcvWindow es el nuacutemero de bytes que

el Rx puede recibir en su buffer la suponemos grande y no limita la tasa de enviacuteo

iquestCoacutemo el Tx percibe la

congestioacuten

Evento de peacuterdida = timeout oacute 3

acks duplicados

Tx TCP reduce tasa (CongWin)

despueacutes de un evento de

peacuterdida

Hay tres mecanismos

AIMD (Additive-Increase

Multiplicative-Decrease)

ldquoPartida lentardquo

Conservativo despueacutes de

evento de timeout

tasaAprox

= CongWin

RTT

[Bytessec]

LastByteSentminus LastByteAckedle minCongWin RcvWindow

TCP AIMD (Additive-Increase

Multiplicative-Decrease)

Decrecimiento

multiplicativo reducir

CongWin a la mitad luego

de peacuterdida

Aumento aditivo aumenta CongWin en 1 MSS cada RTT en ausencia de peacuterdida En algunas implementaciones CongWin incrementa en MSSx(MSSCongWin) por cada ACK recibido

MSS (Maximum Segment Size) es la maacutexima cantidad de datos que se enviacutea en cada segmento sin fragmentarse

Indique queacute protocolo usa el tamantildeo de

segmento maacuteximo (MSS Maximum

Segment Size) iquestA queacute corresponde

El MSS es usado por TCP Corresponde al

MTU (Maximum Transmission Unit) maacutes

pequentildeo en la ruta de la fuente al destino

Usando segmentos de tamantildeo MSS TCP

asegura que sus paquetes no seraacuten

fragmentados

Aumento aditivo La idea es aumentar un MSS luego de un RTT

Podemos aproximarnos aumentando la CongWin cada vez

que se recibe un ACK de manera que al completar 1 RTT

hayamos sumado un MSS

Se enviacutea como maacuteximo CongWin bytes y esperamos por el acuse de recibo

NumSegmentos= NumAkcs=CongWin

MSS

Incr=MSS

NumAkcs=

MSS

CongWin

MSS

=MSSlowast MSS

CongWin

Incr Incremento por cada ACK

RTT

CongWin

Si hay ACK retardados el incremento debe ser

mayor

Partida lenta en TCP (slow start)

Cuando la conexioacuten comienza CongWin = 1

MSS

bull Ejemplo MSS = 500 bytes

amp RTT = 200 msec

bull Tasa inicial = 20 kbps

Ancho de banda disponible

puede ser gtgt MSSRTT

bull Es deseable aumentar tasa

raacutepidamente hasta una tasa

respetable

Cuando la conexioacuten comienza aumentar tasa exponencialmente raacutepido hasta tener primer evento de peacuterdida

Se le llama Slow Start porque parte desde tasa muy abaja

Partida lenta en TCP

Cuando la conexioacuten

comienza aumentar tasa

exponencialmente hasta

primera peacuterdida

bull Duplicar CongWin cada RTT

bull Es hecho incrementando CongWin en 1 MSS por cada

ACK recibido

Resumen tasa inicial es lenta

pero se acelera

exponencialmente raacutepido

Host A

RT

T

Host B

time

Reaccioacuten ante eventos de timeout

iquestCuaacutendo deberiacutea cambiar el aumento de exponencial a lineal

Un buen criterio es Cuando CongWin llega a 12 de su valor antes del timeout

Implementacioacuten Umbral variable (variable threshold)

Ante evento de peacuterdidas el umbral es fijado en 12 de CongWin justo antes de la peacuterdida

Tahoe primera versioacuten de control de congestioacuten en TCP No distinguiacutea entre timeout o ACK duplicados Reno versioacuten siguiente en TCP Siacute distingue timeout de ACK duplicados Es como TCP opera hoy

3 ACKs Duplicados Evento

umbral

Mejor

Reaccioacuten ante eventos de timeout

Despueacutes de 3 ACKs

duplicados

bull CongWin baja a la mitad

bull Luego la ventana crece

linealmente

Despueacutes de un timeout

bull CongWin es fijada en 1

MSS

bull Luego la ventana crece

exponencialmente hasta un

umbral luego crece

linealmente

3 ACKs duplicados indican

que la red es capaz de

transportar algunos

segmentos (soacutelo llegan

fuera de orden en el Rx)

Se perdioacute uno pero

llegaron los otros y por

eso tenemos ACKs

duplicados

timeout antes de 3

duplicados es ldquomaacutes

alarmanterdquo (no llegaron)

En ausencia de errores y cuando el buffer de recepcioacuten es

muy grande la tasa promedio de transferencia de TCP

durante un RTT se puede aproximar por (Tamantildeo de

Ventana de congestioacuten)RTT Muestre un diagrama que

explique la deduccioacuten de esta expresioacuten iquestEs esta expresioacuten

vaacutelida para todo valor de ldquoVentana de Congestioacutenrdquo

Luego de enviar la ventana W el Tx debe esperar la llegada del acuse de recibo maacutes antiguo para retomar la transmisioacuten

No es vaacutelida siempre pues conforme la ventana de congestioacuten aumenta aumenta la utilizacioacuten del canal y cuando eacutesta alcanza 100 no es posible seguir aumentando la tasa pues la tasa de transmisioacuten del enlace pone una cota maacutexima

Tx Rx

RT

T W

Resumen Control de Congestioacuten en TCP

Cuando CongWin estaacute bajo el Threshold (umbral) Tx estaacute en fase slow-start la ventana de transmisioacuten crece exponencialmente (un MSS por cada ACK)

Cuando CongWin estaacute sobre Threshold Tx estaacute en fase abolicioacuten de congestioacuten la ventana crece linealmente (aprox un MSS por cada RTT)

Al tercer ACK duplicados Threshold pasa a CongWin2 y CongWin pasa a Threshold

Cuando ocurre un timeout Threshold pasa a CongWin2 y CongWin se lleva a 1 MSS

Control de Congestioacuten del Tx TCP

SS or CA

SS or CA

SS or CA

Congestion

Avoidance (CA)

Slow Start (SS)

State

CongWin y Threshold no

cambian

Increment duplicate ACK count for

segment being acked

Duplicate ACK

Ingresa a Partida Lenta (slow

start)

Threshold = CongWin2

CongWin = 1 MSS

Set state to ldquoSlow Startrdquo

Timeout

Recuperacioacuten raacutepida

implementando reduccioacuten

multiplicativa CongWin no

caeraacute a 1 MSS

Threshold = CongWin2

CongWin = Threshold

Set state to ldquoCongestion Avoidancerdquo

Loss event

detected by

triple duplicate

ACK

Aumento aditivo resulta en

aumento de CongWin en apox

1 MSS cada RTT

CongWin = CongWin+MSS

(MSSCongWin)

ACK receipt for

previously

unacked data

Resulta en una duplicacioacuten de

CongWin cada RTT

CongWin = CongWin + MSS

If (CongWin gt Threshold)

set state to ldquoCongestion

Avoidancerdquo

ACK receipt for

previously

unacked data

Commentary TCP Sender Action Event

Throughput Simplificado de TCP (tasa de

transferencia de datos lograda) iquestCuaacutel es el throughput promedio de TCP como una funcioacuten del tamantildeo

de ventana CongWin y RTT

bull Ignoremos slow start ya que al ser exponencial es una fase muy

corta

TCP pide ancho de banda adicional al incrementar W en 1 MSS por

cada RTT hasta una peacuterdida

Sea W el tamantildeo de la ventana (en bytes) cuando ocurre una peacuterdida

Cuando la ventana es W el throughput es WRTT

Justo despueacutes de la peacuterdida la ventana cae a W2 y el throughput a

W2RTT

Throughput promedio entre W2RTT y WRTT es 075 WRTT

Esto debido a que el throughput crece linealmente entre ambos

valores

Futuro de TCP Ejemplo segmentos de 1500 bytes RTT de 100ms queremos

throughput de 10 Gbps

Requiere tamantildeo de ventana CongWin W = 83333 (segmentos

en traacutensito)

Throughput en teacuterminos de tasa de peacuterdida (L) es

L=(bytes perdidos)(Nuacutemero total enviados)

Para el throughput deseado con el algoritmo de control de

congestioacuten actual se toleran probabilidades de peacuterdida de soacutelo L

= 210-10 Wow (1 cada 5 mil millones de segmentos)

Se requieren nuevas versiones de TCP para enlaces de alta

velocidad (interesados ver RFC 3649)

LRTT

MSS=hputAvgThroug

122

iquestPor queacute la ventana de congestioacuten de

TCP soacutelo se reduce a la mitad cuando

la peacuterdida es detectada por 3 ACKs

duplicados mientras que se reduce a 1

MSS cuando la peacuterdida es detectada

por timeout

Porque la llegada de 3 ACKs duplicados es una

indicacioacuten que paquetes posteriores al perdido siacute

llegaron luego esta situacioacuten de congestioacuten es

menos criacutetica que cuando hay timeout sin 3 ACKs

duplicados

Equidad en TCP

Objetivo de la Equidad (fairness) Si K sesiones TCP

comparten un mismo enlace de ancho de banda R cada

una deberiacutea tener una tasa promedio de RK

TCP connection 1

Router cuello de botella de capacidad R

TCP connection 2

iquestPor queacute TCP es justo

Supongamos dos sesiones compitiendo

Aumento aditivo da pendiente de 1 como aumento de throughout

Reduccioacuten multiplicativa reduce throughput proporcionalmente

R

R

Recta de Igual tasa capacidad compartida

Throughput Conexioacuten 1

Through

put Cone

xioacuten 2

Peacuterdida decrece tasa en factor de 2

Abolicioacuten de congestioacuten aumento aditivo

Abolicioacuten de congestioacuten aumento aditivo

Peacuterdida decrece tasa en factor de 2

Equidad

Equidad y UDP

Aplicaciones Multimedia no

usan TCP

bull No quieren tasa limitada

por control de congestioacuten

En su lugar usan UDP

bull Enviacutean audioviacutedeo a tasa

constante y toleran

peacuterdidas de paquetes

Aacuterea de investigacioacuten

Hacerlas amistosas con

TCP (TCP friendly)

Equidad y conexiones TCP

paralelas

Nada previene a las aplicaciones de

abrir conexiones paralelas entre

dos hosts

Navegadores WEB hacen esto

Ejemplo Sea un enlace de tasa R

soportando 9 conexiones

Una aplicacioacuten nueva pide 1

conexioacuten TCP obtendraacute R10

Si la aplicacioacuten nueva pide 11

conexiones TCP eacutesta obtendraacute

11R20 maacutes de R2

En una subred hay 6 usuarios viendo

viacutedeos de Youtubecom viacutea conexiones

TCP iquestSi eacutestos fueran los uacutenicos

usuarios queacute fraccioacuten de la capacidad

de un enlace congestionado le deberiacutea

corresponder a cada uno

16

Nota Se supone que ese es el uacutenico traacutefico en el

enlace congestionado en otro caso seraacute la misma

fraccioacuten del traacutefico para cada conexioacuten

Page 12: Redes de Computadoras 1 · Principios de control de congestión Congestión: Informalmente: “demasiadas fuentes enviando muchos datos muy rápido para que la red lo maneje” Es

Caso de estudio Control de congestioacuten

en ATM ABR

En celda RM hay campo ER (explicit rate) de dos bytes

bull Un Switch congestionado puede bajar valor de ER en la celda

bull Tasa de enviacuteo del Tx se ajusta a la tasa miacutenima soportable en el camino entre fuente y destino (la del switch maacutes criacutetico)

En celda de datos hay Bit EFCI (explicit forward congestion indicator) eacuteste es fijado en 1 por switch congestionado

bull Si celda de datos precedente a celda RM tiene el EFCI marcado el destino marca bit CI en celda RM retornada

TCP corriendo sobre IP espera hasta recibir tres

paquetes ACK duplicados para iniciar una

retransmisioacuten raacutepida iquestPor queacute piensa usted que los

disentildeadores de TCP no escogieron iniciar la

retransmisioacuten raacutepida tan pronto llega el primer ACK

duplicado iquestSe justifica la espera por tres ACKs

duplicados en la implementacioacuten de un protocolo

confiable en una red ATM

La retransmisioacuten no se efectuacutea ante la llegada del primer duplicado pues es posible que el primer paquete haya tomado una ruta maacutes larga y llegue con posterioridad al segundo En este caso un cambio de orden de llegada genera acuses de recibo duplicados pero no constituye peacuterdida de paquete No se justifica esperar tres ACKs en ATM pues eacutesta establece una conexioacuten entre fuente y destino luego todos los paquetes deben usar la misma ruta y con ello el orden de salida y llegada se mantiene cuando no hay peacuterdidas

Control de Congestioacuten en TCP Usa control extremo a extremo (sin

asistencia de la red)

Tx limita su ventana de transmisioacuten

Si Rx tiene espacio se tiene

CongWin es dinaacutemica y funcioacuten de la

congestioacuten percibida de la red

RcvWindow es el nuacutemero de bytes que

el Rx puede recibir en su buffer la suponemos grande y no limita la tasa de enviacuteo

iquestCoacutemo el Tx percibe la

congestioacuten

Evento de peacuterdida = timeout oacute 3

acks duplicados

Tx TCP reduce tasa (CongWin)

despueacutes de un evento de

peacuterdida

Hay tres mecanismos

AIMD (Additive-Increase

Multiplicative-Decrease)

ldquoPartida lentardquo

Conservativo despueacutes de

evento de timeout

tasaAprox

= CongWin

RTT

[Bytessec]

LastByteSentminus LastByteAckedle minCongWin RcvWindow

TCP AIMD (Additive-Increase

Multiplicative-Decrease)

Decrecimiento

multiplicativo reducir

CongWin a la mitad luego

de peacuterdida

Aumento aditivo aumenta CongWin en 1 MSS cada RTT en ausencia de peacuterdida En algunas implementaciones CongWin incrementa en MSSx(MSSCongWin) por cada ACK recibido

MSS (Maximum Segment Size) es la maacutexima cantidad de datos que se enviacutea en cada segmento sin fragmentarse

Indique queacute protocolo usa el tamantildeo de

segmento maacuteximo (MSS Maximum

Segment Size) iquestA queacute corresponde

El MSS es usado por TCP Corresponde al

MTU (Maximum Transmission Unit) maacutes

pequentildeo en la ruta de la fuente al destino

Usando segmentos de tamantildeo MSS TCP

asegura que sus paquetes no seraacuten

fragmentados

Aumento aditivo La idea es aumentar un MSS luego de un RTT

Podemos aproximarnos aumentando la CongWin cada vez

que se recibe un ACK de manera que al completar 1 RTT

hayamos sumado un MSS

Se enviacutea como maacuteximo CongWin bytes y esperamos por el acuse de recibo

NumSegmentos= NumAkcs=CongWin

MSS

Incr=MSS

NumAkcs=

MSS

CongWin

MSS

=MSSlowast MSS

CongWin

Incr Incremento por cada ACK

RTT

CongWin

Si hay ACK retardados el incremento debe ser

mayor

Partida lenta en TCP (slow start)

Cuando la conexioacuten comienza CongWin = 1

MSS

bull Ejemplo MSS = 500 bytes

amp RTT = 200 msec

bull Tasa inicial = 20 kbps

Ancho de banda disponible

puede ser gtgt MSSRTT

bull Es deseable aumentar tasa

raacutepidamente hasta una tasa

respetable

Cuando la conexioacuten comienza aumentar tasa exponencialmente raacutepido hasta tener primer evento de peacuterdida

Se le llama Slow Start porque parte desde tasa muy abaja

Partida lenta en TCP

Cuando la conexioacuten

comienza aumentar tasa

exponencialmente hasta

primera peacuterdida

bull Duplicar CongWin cada RTT

bull Es hecho incrementando CongWin en 1 MSS por cada

ACK recibido

Resumen tasa inicial es lenta

pero se acelera

exponencialmente raacutepido

Host A

RT

T

Host B

time

Reaccioacuten ante eventos de timeout

iquestCuaacutendo deberiacutea cambiar el aumento de exponencial a lineal

Un buen criterio es Cuando CongWin llega a 12 de su valor antes del timeout

Implementacioacuten Umbral variable (variable threshold)

Ante evento de peacuterdidas el umbral es fijado en 12 de CongWin justo antes de la peacuterdida

Tahoe primera versioacuten de control de congestioacuten en TCP No distinguiacutea entre timeout o ACK duplicados Reno versioacuten siguiente en TCP Siacute distingue timeout de ACK duplicados Es como TCP opera hoy

3 ACKs Duplicados Evento

umbral

Mejor

Reaccioacuten ante eventos de timeout

Despueacutes de 3 ACKs

duplicados

bull CongWin baja a la mitad

bull Luego la ventana crece

linealmente

Despueacutes de un timeout

bull CongWin es fijada en 1

MSS

bull Luego la ventana crece

exponencialmente hasta un

umbral luego crece

linealmente

3 ACKs duplicados indican

que la red es capaz de

transportar algunos

segmentos (soacutelo llegan

fuera de orden en el Rx)

Se perdioacute uno pero

llegaron los otros y por

eso tenemos ACKs

duplicados

timeout antes de 3

duplicados es ldquomaacutes

alarmanterdquo (no llegaron)

En ausencia de errores y cuando el buffer de recepcioacuten es

muy grande la tasa promedio de transferencia de TCP

durante un RTT se puede aproximar por (Tamantildeo de

Ventana de congestioacuten)RTT Muestre un diagrama que

explique la deduccioacuten de esta expresioacuten iquestEs esta expresioacuten

vaacutelida para todo valor de ldquoVentana de Congestioacutenrdquo

Luego de enviar la ventana W el Tx debe esperar la llegada del acuse de recibo maacutes antiguo para retomar la transmisioacuten

No es vaacutelida siempre pues conforme la ventana de congestioacuten aumenta aumenta la utilizacioacuten del canal y cuando eacutesta alcanza 100 no es posible seguir aumentando la tasa pues la tasa de transmisioacuten del enlace pone una cota maacutexima

Tx Rx

RT

T W

Resumen Control de Congestioacuten en TCP

Cuando CongWin estaacute bajo el Threshold (umbral) Tx estaacute en fase slow-start la ventana de transmisioacuten crece exponencialmente (un MSS por cada ACK)

Cuando CongWin estaacute sobre Threshold Tx estaacute en fase abolicioacuten de congestioacuten la ventana crece linealmente (aprox un MSS por cada RTT)

Al tercer ACK duplicados Threshold pasa a CongWin2 y CongWin pasa a Threshold

Cuando ocurre un timeout Threshold pasa a CongWin2 y CongWin se lleva a 1 MSS

Control de Congestioacuten del Tx TCP

SS or CA

SS or CA

SS or CA

Congestion

Avoidance (CA)

Slow Start (SS)

State

CongWin y Threshold no

cambian

Increment duplicate ACK count for

segment being acked

Duplicate ACK

Ingresa a Partida Lenta (slow

start)

Threshold = CongWin2

CongWin = 1 MSS

Set state to ldquoSlow Startrdquo

Timeout

Recuperacioacuten raacutepida

implementando reduccioacuten

multiplicativa CongWin no

caeraacute a 1 MSS

Threshold = CongWin2

CongWin = Threshold

Set state to ldquoCongestion Avoidancerdquo

Loss event

detected by

triple duplicate

ACK

Aumento aditivo resulta en

aumento de CongWin en apox

1 MSS cada RTT

CongWin = CongWin+MSS

(MSSCongWin)

ACK receipt for

previously

unacked data

Resulta en una duplicacioacuten de

CongWin cada RTT

CongWin = CongWin + MSS

If (CongWin gt Threshold)

set state to ldquoCongestion

Avoidancerdquo

ACK receipt for

previously

unacked data

Commentary TCP Sender Action Event

Throughput Simplificado de TCP (tasa de

transferencia de datos lograda) iquestCuaacutel es el throughput promedio de TCP como una funcioacuten del tamantildeo

de ventana CongWin y RTT

bull Ignoremos slow start ya que al ser exponencial es una fase muy

corta

TCP pide ancho de banda adicional al incrementar W en 1 MSS por

cada RTT hasta una peacuterdida

Sea W el tamantildeo de la ventana (en bytes) cuando ocurre una peacuterdida

Cuando la ventana es W el throughput es WRTT

Justo despueacutes de la peacuterdida la ventana cae a W2 y el throughput a

W2RTT

Throughput promedio entre W2RTT y WRTT es 075 WRTT

Esto debido a que el throughput crece linealmente entre ambos

valores

Futuro de TCP Ejemplo segmentos de 1500 bytes RTT de 100ms queremos

throughput de 10 Gbps

Requiere tamantildeo de ventana CongWin W = 83333 (segmentos

en traacutensito)

Throughput en teacuterminos de tasa de peacuterdida (L) es

L=(bytes perdidos)(Nuacutemero total enviados)

Para el throughput deseado con el algoritmo de control de

congestioacuten actual se toleran probabilidades de peacuterdida de soacutelo L

= 210-10 Wow (1 cada 5 mil millones de segmentos)

Se requieren nuevas versiones de TCP para enlaces de alta

velocidad (interesados ver RFC 3649)

LRTT

MSS=hputAvgThroug

122

iquestPor queacute la ventana de congestioacuten de

TCP soacutelo se reduce a la mitad cuando

la peacuterdida es detectada por 3 ACKs

duplicados mientras que se reduce a 1

MSS cuando la peacuterdida es detectada

por timeout

Porque la llegada de 3 ACKs duplicados es una

indicacioacuten que paquetes posteriores al perdido siacute

llegaron luego esta situacioacuten de congestioacuten es

menos criacutetica que cuando hay timeout sin 3 ACKs

duplicados

Equidad en TCP

Objetivo de la Equidad (fairness) Si K sesiones TCP

comparten un mismo enlace de ancho de banda R cada

una deberiacutea tener una tasa promedio de RK

TCP connection 1

Router cuello de botella de capacidad R

TCP connection 2

iquestPor queacute TCP es justo

Supongamos dos sesiones compitiendo

Aumento aditivo da pendiente de 1 como aumento de throughout

Reduccioacuten multiplicativa reduce throughput proporcionalmente

R

R

Recta de Igual tasa capacidad compartida

Throughput Conexioacuten 1

Through

put Cone

xioacuten 2

Peacuterdida decrece tasa en factor de 2

Abolicioacuten de congestioacuten aumento aditivo

Abolicioacuten de congestioacuten aumento aditivo

Peacuterdida decrece tasa en factor de 2

Equidad

Equidad y UDP

Aplicaciones Multimedia no

usan TCP

bull No quieren tasa limitada

por control de congestioacuten

En su lugar usan UDP

bull Enviacutean audioviacutedeo a tasa

constante y toleran

peacuterdidas de paquetes

Aacuterea de investigacioacuten

Hacerlas amistosas con

TCP (TCP friendly)

Equidad y conexiones TCP

paralelas

Nada previene a las aplicaciones de

abrir conexiones paralelas entre

dos hosts

Navegadores WEB hacen esto

Ejemplo Sea un enlace de tasa R

soportando 9 conexiones

Una aplicacioacuten nueva pide 1

conexioacuten TCP obtendraacute R10

Si la aplicacioacuten nueva pide 11

conexiones TCP eacutesta obtendraacute

11R20 maacutes de R2

En una subred hay 6 usuarios viendo

viacutedeos de Youtubecom viacutea conexiones

TCP iquestSi eacutestos fueran los uacutenicos

usuarios queacute fraccioacuten de la capacidad

de un enlace congestionado le deberiacutea

corresponder a cada uno

16

Nota Se supone que ese es el uacutenico traacutefico en el

enlace congestionado en otro caso seraacute la misma

fraccioacuten del traacutefico para cada conexioacuten

Page 13: Redes de Computadoras 1 · Principios de control de congestión Congestión: Informalmente: “demasiadas fuentes enviando muchos datos muy rápido para que la red lo maneje” Es

TCP corriendo sobre IP espera hasta recibir tres

paquetes ACK duplicados para iniciar una

retransmisioacuten raacutepida iquestPor queacute piensa usted que los

disentildeadores de TCP no escogieron iniciar la

retransmisioacuten raacutepida tan pronto llega el primer ACK

duplicado iquestSe justifica la espera por tres ACKs

duplicados en la implementacioacuten de un protocolo

confiable en una red ATM

La retransmisioacuten no se efectuacutea ante la llegada del primer duplicado pues es posible que el primer paquete haya tomado una ruta maacutes larga y llegue con posterioridad al segundo En este caso un cambio de orden de llegada genera acuses de recibo duplicados pero no constituye peacuterdida de paquete No se justifica esperar tres ACKs en ATM pues eacutesta establece una conexioacuten entre fuente y destino luego todos los paquetes deben usar la misma ruta y con ello el orden de salida y llegada se mantiene cuando no hay peacuterdidas

Control de Congestioacuten en TCP Usa control extremo a extremo (sin

asistencia de la red)

Tx limita su ventana de transmisioacuten

Si Rx tiene espacio se tiene

CongWin es dinaacutemica y funcioacuten de la

congestioacuten percibida de la red

RcvWindow es el nuacutemero de bytes que

el Rx puede recibir en su buffer la suponemos grande y no limita la tasa de enviacuteo

iquestCoacutemo el Tx percibe la

congestioacuten

Evento de peacuterdida = timeout oacute 3

acks duplicados

Tx TCP reduce tasa (CongWin)

despueacutes de un evento de

peacuterdida

Hay tres mecanismos

AIMD (Additive-Increase

Multiplicative-Decrease)

ldquoPartida lentardquo

Conservativo despueacutes de

evento de timeout

tasaAprox

= CongWin

RTT

[Bytessec]

LastByteSentminus LastByteAckedle minCongWin RcvWindow

TCP AIMD (Additive-Increase

Multiplicative-Decrease)

Decrecimiento

multiplicativo reducir

CongWin a la mitad luego

de peacuterdida

Aumento aditivo aumenta CongWin en 1 MSS cada RTT en ausencia de peacuterdida En algunas implementaciones CongWin incrementa en MSSx(MSSCongWin) por cada ACK recibido

MSS (Maximum Segment Size) es la maacutexima cantidad de datos que se enviacutea en cada segmento sin fragmentarse

Indique queacute protocolo usa el tamantildeo de

segmento maacuteximo (MSS Maximum

Segment Size) iquestA queacute corresponde

El MSS es usado por TCP Corresponde al

MTU (Maximum Transmission Unit) maacutes

pequentildeo en la ruta de la fuente al destino

Usando segmentos de tamantildeo MSS TCP

asegura que sus paquetes no seraacuten

fragmentados

Aumento aditivo La idea es aumentar un MSS luego de un RTT

Podemos aproximarnos aumentando la CongWin cada vez

que se recibe un ACK de manera que al completar 1 RTT

hayamos sumado un MSS

Se enviacutea como maacuteximo CongWin bytes y esperamos por el acuse de recibo

NumSegmentos= NumAkcs=CongWin

MSS

Incr=MSS

NumAkcs=

MSS

CongWin

MSS

=MSSlowast MSS

CongWin

Incr Incremento por cada ACK

RTT

CongWin

Si hay ACK retardados el incremento debe ser

mayor

Partida lenta en TCP (slow start)

Cuando la conexioacuten comienza CongWin = 1

MSS

bull Ejemplo MSS = 500 bytes

amp RTT = 200 msec

bull Tasa inicial = 20 kbps

Ancho de banda disponible

puede ser gtgt MSSRTT

bull Es deseable aumentar tasa

raacutepidamente hasta una tasa

respetable

Cuando la conexioacuten comienza aumentar tasa exponencialmente raacutepido hasta tener primer evento de peacuterdida

Se le llama Slow Start porque parte desde tasa muy abaja

Partida lenta en TCP

Cuando la conexioacuten

comienza aumentar tasa

exponencialmente hasta

primera peacuterdida

bull Duplicar CongWin cada RTT

bull Es hecho incrementando CongWin en 1 MSS por cada

ACK recibido

Resumen tasa inicial es lenta

pero se acelera

exponencialmente raacutepido

Host A

RT

T

Host B

time

Reaccioacuten ante eventos de timeout

iquestCuaacutendo deberiacutea cambiar el aumento de exponencial a lineal

Un buen criterio es Cuando CongWin llega a 12 de su valor antes del timeout

Implementacioacuten Umbral variable (variable threshold)

Ante evento de peacuterdidas el umbral es fijado en 12 de CongWin justo antes de la peacuterdida

Tahoe primera versioacuten de control de congestioacuten en TCP No distinguiacutea entre timeout o ACK duplicados Reno versioacuten siguiente en TCP Siacute distingue timeout de ACK duplicados Es como TCP opera hoy

3 ACKs Duplicados Evento

umbral

Mejor

Reaccioacuten ante eventos de timeout

Despueacutes de 3 ACKs

duplicados

bull CongWin baja a la mitad

bull Luego la ventana crece

linealmente

Despueacutes de un timeout

bull CongWin es fijada en 1

MSS

bull Luego la ventana crece

exponencialmente hasta un

umbral luego crece

linealmente

3 ACKs duplicados indican

que la red es capaz de

transportar algunos

segmentos (soacutelo llegan

fuera de orden en el Rx)

Se perdioacute uno pero

llegaron los otros y por

eso tenemos ACKs

duplicados

timeout antes de 3

duplicados es ldquomaacutes

alarmanterdquo (no llegaron)

En ausencia de errores y cuando el buffer de recepcioacuten es

muy grande la tasa promedio de transferencia de TCP

durante un RTT se puede aproximar por (Tamantildeo de

Ventana de congestioacuten)RTT Muestre un diagrama que

explique la deduccioacuten de esta expresioacuten iquestEs esta expresioacuten

vaacutelida para todo valor de ldquoVentana de Congestioacutenrdquo

Luego de enviar la ventana W el Tx debe esperar la llegada del acuse de recibo maacutes antiguo para retomar la transmisioacuten

No es vaacutelida siempre pues conforme la ventana de congestioacuten aumenta aumenta la utilizacioacuten del canal y cuando eacutesta alcanza 100 no es posible seguir aumentando la tasa pues la tasa de transmisioacuten del enlace pone una cota maacutexima

Tx Rx

RT

T W

Resumen Control de Congestioacuten en TCP

Cuando CongWin estaacute bajo el Threshold (umbral) Tx estaacute en fase slow-start la ventana de transmisioacuten crece exponencialmente (un MSS por cada ACK)

Cuando CongWin estaacute sobre Threshold Tx estaacute en fase abolicioacuten de congestioacuten la ventana crece linealmente (aprox un MSS por cada RTT)

Al tercer ACK duplicados Threshold pasa a CongWin2 y CongWin pasa a Threshold

Cuando ocurre un timeout Threshold pasa a CongWin2 y CongWin se lleva a 1 MSS

Control de Congestioacuten del Tx TCP

SS or CA

SS or CA

SS or CA

Congestion

Avoidance (CA)

Slow Start (SS)

State

CongWin y Threshold no

cambian

Increment duplicate ACK count for

segment being acked

Duplicate ACK

Ingresa a Partida Lenta (slow

start)

Threshold = CongWin2

CongWin = 1 MSS

Set state to ldquoSlow Startrdquo

Timeout

Recuperacioacuten raacutepida

implementando reduccioacuten

multiplicativa CongWin no

caeraacute a 1 MSS

Threshold = CongWin2

CongWin = Threshold

Set state to ldquoCongestion Avoidancerdquo

Loss event

detected by

triple duplicate

ACK

Aumento aditivo resulta en

aumento de CongWin en apox

1 MSS cada RTT

CongWin = CongWin+MSS

(MSSCongWin)

ACK receipt for

previously

unacked data

Resulta en una duplicacioacuten de

CongWin cada RTT

CongWin = CongWin + MSS

If (CongWin gt Threshold)

set state to ldquoCongestion

Avoidancerdquo

ACK receipt for

previously

unacked data

Commentary TCP Sender Action Event

Throughput Simplificado de TCP (tasa de

transferencia de datos lograda) iquestCuaacutel es el throughput promedio de TCP como una funcioacuten del tamantildeo

de ventana CongWin y RTT

bull Ignoremos slow start ya que al ser exponencial es una fase muy

corta

TCP pide ancho de banda adicional al incrementar W en 1 MSS por

cada RTT hasta una peacuterdida

Sea W el tamantildeo de la ventana (en bytes) cuando ocurre una peacuterdida

Cuando la ventana es W el throughput es WRTT

Justo despueacutes de la peacuterdida la ventana cae a W2 y el throughput a

W2RTT

Throughput promedio entre W2RTT y WRTT es 075 WRTT

Esto debido a que el throughput crece linealmente entre ambos

valores

Futuro de TCP Ejemplo segmentos de 1500 bytes RTT de 100ms queremos

throughput de 10 Gbps

Requiere tamantildeo de ventana CongWin W = 83333 (segmentos

en traacutensito)

Throughput en teacuterminos de tasa de peacuterdida (L) es

L=(bytes perdidos)(Nuacutemero total enviados)

Para el throughput deseado con el algoritmo de control de

congestioacuten actual se toleran probabilidades de peacuterdida de soacutelo L

= 210-10 Wow (1 cada 5 mil millones de segmentos)

Se requieren nuevas versiones de TCP para enlaces de alta

velocidad (interesados ver RFC 3649)

LRTT

MSS=hputAvgThroug

122

iquestPor queacute la ventana de congestioacuten de

TCP soacutelo se reduce a la mitad cuando

la peacuterdida es detectada por 3 ACKs

duplicados mientras que se reduce a 1

MSS cuando la peacuterdida es detectada

por timeout

Porque la llegada de 3 ACKs duplicados es una

indicacioacuten que paquetes posteriores al perdido siacute

llegaron luego esta situacioacuten de congestioacuten es

menos criacutetica que cuando hay timeout sin 3 ACKs

duplicados

Equidad en TCP

Objetivo de la Equidad (fairness) Si K sesiones TCP

comparten un mismo enlace de ancho de banda R cada

una deberiacutea tener una tasa promedio de RK

TCP connection 1

Router cuello de botella de capacidad R

TCP connection 2

iquestPor queacute TCP es justo

Supongamos dos sesiones compitiendo

Aumento aditivo da pendiente de 1 como aumento de throughout

Reduccioacuten multiplicativa reduce throughput proporcionalmente

R

R

Recta de Igual tasa capacidad compartida

Throughput Conexioacuten 1

Through

put Cone

xioacuten 2

Peacuterdida decrece tasa en factor de 2

Abolicioacuten de congestioacuten aumento aditivo

Abolicioacuten de congestioacuten aumento aditivo

Peacuterdida decrece tasa en factor de 2

Equidad

Equidad y UDP

Aplicaciones Multimedia no

usan TCP

bull No quieren tasa limitada

por control de congestioacuten

En su lugar usan UDP

bull Enviacutean audioviacutedeo a tasa

constante y toleran

peacuterdidas de paquetes

Aacuterea de investigacioacuten

Hacerlas amistosas con

TCP (TCP friendly)

Equidad y conexiones TCP

paralelas

Nada previene a las aplicaciones de

abrir conexiones paralelas entre

dos hosts

Navegadores WEB hacen esto

Ejemplo Sea un enlace de tasa R

soportando 9 conexiones

Una aplicacioacuten nueva pide 1

conexioacuten TCP obtendraacute R10

Si la aplicacioacuten nueva pide 11

conexiones TCP eacutesta obtendraacute

11R20 maacutes de R2

En una subred hay 6 usuarios viendo

viacutedeos de Youtubecom viacutea conexiones

TCP iquestSi eacutestos fueran los uacutenicos

usuarios queacute fraccioacuten de la capacidad

de un enlace congestionado le deberiacutea

corresponder a cada uno

16

Nota Se supone que ese es el uacutenico traacutefico en el

enlace congestionado en otro caso seraacute la misma

fraccioacuten del traacutefico para cada conexioacuten

Page 14: Redes de Computadoras 1 · Principios de control de congestión Congestión: Informalmente: “demasiadas fuentes enviando muchos datos muy rápido para que la red lo maneje” Es

Control de Congestioacuten en TCP Usa control extremo a extremo (sin

asistencia de la red)

Tx limita su ventana de transmisioacuten

Si Rx tiene espacio se tiene

CongWin es dinaacutemica y funcioacuten de la

congestioacuten percibida de la red

RcvWindow es el nuacutemero de bytes que

el Rx puede recibir en su buffer la suponemos grande y no limita la tasa de enviacuteo

iquestCoacutemo el Tx percibe la

congestioacuten

Evento de peacuterdida = timeout oacute 3

acks duplicados

Tx TCP reduce tasa (CongWin)

despueacutes de un evento de

peacuterdida

Hay tres mecanismos

AIMD (Additive-Increase

Multiplicative-Decrease)

ldquoPartida lentardquo

Conservativo despueacutes de

evento de timeout

tasaAprox

= CongWin

RTT

[Bytessec]

LastByteSentminus LastByteAckedle minCongWin RcvWindow

TCP AIMD (Additive-Increase

Multiplicative-Decrease)

Decrecimiento

multiplicativo reducir

CongWin a la mitad luego

de peacuterdida

Aumento aditivo aumenta CongWin en 1 MSS cada RTT en ausencia de peacuterdida En algunas implementaciones CongWin incrementa en MSSx(MSSCongWin) por cada ACK recibido

MSS (Maximum Segment Size) es la maacutexima cantidad de datos que se enviacutea en cada segmento sin fragmentarse

Indique queacute protocolo usa el tamantildeo de

segmento maacuteximo (MSS Maximum

Segment Size) iquestA queacute corresponde

El MSS es usado por TCP Corresponde al

MTU (Maximum Transmission Unit) maacutes

pequentildeo en la ruta de la fuente al destino

Usando segmentos de tamantildeo MSS TCP

asegura que sus paquetes no seraacuten

fragmentados

Aumento aditivo La idea es aumentar un MSS luego de un RTT

Podemos aproximarnos aumentando la CongWin cada vez

que se recibe un ACK de manera que al completar 1 RTT

hayamos sumado un MSS

Se enviacutea como maacuteximo CongWin bytes y esperamos por el acuse de recibo

NumSegmentos= NumAkcs=CongWin

MSS

Incr=MSS

NumAkcs=

MSS

CongWin

MSS

=MSSlowast MSS

CongWin

Incr Incremento por cada ACK

RTT

CongWin

Si hay ACK retardados el incremento debe ser

mayor

Partida lenta en TCP (slow start)

Cuando la conexioacuten comienza CongWin = 1

MSS

bull Ejemplo MSS = 500 bytes

amp RTT = 200 msec

bull Tasa inicial = 20 kbps

Ancho de banda disponible

puede ser gtgt MSSRTT

bull Es deseable aumentar tasa

raacutepidamente hasta una tasa

respetable

Cuando la conexioacuten comienza aumentar tasa exponencialmente raacutepido hasta tener primer evento de peacuterdida

Se le llama Slow Start porque parte desde tasa muy abaja

Partida lenta en TCP

Cuando la conexioacuten

comienza aumentar tasa

exponencialmente hasta

primera peacuterdida

bull Duplicar CongWin cada RTT

bull Es hecho incrementando CongWin en 1 MSS por cada

ACK recibido

Resumen tasa inicial es lenta

pero se acelera

exponencialmente raacutepido

Host A

RT

T

Host B

time

Reaccioacuten ante eventos de timeout

iquestCuaacutendo deberiacutea cambiar el aumento de exponencial a lineal

Un buen criterio es Cuando CongWin llega a 12 de su valor antes del timeout

Implementacioacuten Umbral variable (variable threshold)

Ante evento de peacuterdidas el umbral es fijado en 12 de CongWin justo antes de la peacuterdida

Tahoe primera versioacuten de control de congestioacuten en TCP No distinguiacutea entre timeout o ACK duplicados Reno versioacuten siguiente en TCP Siacute distingue timeout de ACK duplicados Es como TCP opera hoy

3 ACKs Duplicados Evento

umbral

Mejor

Reaccioacuten ante eventos de timeout

Despueacutes de 3 ACKs

duplicados

bull CongWin baja a la mitad

bull Luego la ventana crece

linealmente

Despueacutes de un timeout

bull CongWin es fijada en 1

MSS

bull Luego la ventana crece

exponencialmente hasta un

umbral luego crece

linealmente

3 ACKs duplicados indican

que la red es capaz de

transportar algunos

segmentos (soacutelo llegan

fuera de orden en el Rx)

Se perdioacute uno pero

llegaron los otros y por

eso tenemos ACKs

duplicados

timeout antes de 3

duplicados es ldquomaacutes

alarmanterdquo (no llegaron)

En ausencia de errores y cuando el buffer de recepcioacuten es

muy grande la tasa promedio de transferencia de TCP

durante un RTT se puede aproximar por (Tamantildeo de

Ventana de congestioacuten)RTT Muestre un diagrama que

explique la deduccioacuten de esta expresioacuten iquestEs esta expresioacuten

vaacutelida para todo valor de ldquoVentana de Congestioacutenrdquo

Luego de enviar la ventana W el Tx debe esperar la llegada del acuse de recibo maacutes antiguo para retomar la transmisioacuten

No es vaacutelida siempre pues conforme la ventana de congestioacuten aumenta aumenta la utilizacioacuten del canal y cuando eacutesta alcanza 100 no es posible seguir aumentando la tasa pues la tasa de transmisioacuten del enlace pone una cota maacutexima

Tx Rx

RT

T W

Resumen Control de Congestioacuten en TCP

Cuando CongWin estaacute bajo el Threshold (umbral) Tx estaacute en fase slow-start la ventana de transmisioacuten crece exponencialmente (un MSS por cada ACK)

Cuando CongWin estaacute sobre Threshold Tx estaacute en fase abolicioacuten de congestioacuten la ventana crece linealmente (aprox un MSS por cada RTT)

Al tercer ACK duplicados Threshold pasa a CongWin2 y CongWin pasa a Threshold

Cuando ocurre un timeout Threshold pasa a CongWin2 y CongWin se lleva a 1 MSS

Control de Congestioacuten del Tx TCP

SS or CA

SS or CA

SS or CA

Congestion

Avoidance (CA)

Slow Start (SS)

State

CongWin y Threshold no

cambian

Increment duplicate ACK count for

segment being acked

Duplicate ACK

Ingresa a Partida Lenta (slow

start)

Threshold = CongWin2

CongWin = 1 MSS

Set state to ldquoSlow Startrdquo

Timeout

Recuperacioacuten raacutepida

implementando reduccioacuten

multiplicativa CongWin no

caeraacute a 1 MSS

Threshold = CongWin2

CongWin = Threshold

Set state to ldquoCongestion Avoidancerdquo

Loss event

detected by

triple duplicate

ACK

Aumento aditivo resulta en

aumento de CongWin en apox

1 MSS cada RTT

CongWin = CongWin+MSS

(MSSCongWin)

ACK receipt for

previously

unacked data

Resulta en una duplicacioacuten de

CongWin cada RTT

CongWin = CongWin + MSS

If (CongWin gt Threshold)

set state to ldquoCongestion

Avoidancerdquo

ACK receipt for

previously

unacked data

Commentary TCP Sender Action Event

Throughput Simplificado de TCP (tasa de

transferencia de datos lograda) iquestCuaacutel es el throughput promedio de TCP como una funcioacuten del tamantildeo

de ventana CongWin y RTT

bull Ignoremos slow start ya que al ser exponencial es una fase muy

corta

TCP pide ancho de banda adicional al incrementar W en 1 MSS por

cada RTT hasta una peacuterdida

Sea W el tamantildeo de la ventana (en bytes) cuando ocurre una peacuterdida

Cuando la ventana es W el throughput es WRTT

Justo despueacutes de la peacuterdida la ventana cae a W2 y el throughput a

W2RTT

Throughput promedio entre W2RTT y WRTT es 075 WRTT

Esto debido a que el throughput crece linealmente entre ambos

valores

Futuro de TCP Ejemplo segmentos de 1500 bytes RTT de 100ms queremos

throughput de 10 Gbps

Requiere tamantildeo de ventana CongWin W = 83333 (segmentos

en traacutensito)

Throughput en teacuterminos de tasa de peacuterdida (L) es

L=(bytes perdidos)(Nuacutemero total enviados)

Para el throughput deseado con el algoritmo de control de

congestioacuten actual se toleran probabilidades de peacuterdida de soacutelo L

= 210-10 Wow (1 cada 5 mil millones de segmentos)

Se requieren nuevas versiones de TCP para enlaces de alta

velocidad (interesados ver RFC 3649)

LRTT

MSS=hputAvgThroug

122

iquestPor queacute la ventana de congestioacuten de

TCP soacutelo se reduce a la mitad cuando

la peacuterdida es detectada por 3 ACKs

duplicados mientras que se reduce a 1

MSS cuando la peacuterdida es detectada

por timeout

Porque la llegada de 3 ACKs duplicados es una

indicacioacuten que paquetes posteriores al perdido siacute

llegaron luego esta situacioacuten de congestioacuten es

menos criacutetica que cuando hay timeout sin 3 ACKs

duplicados

Equidad en TCP

Objetivo de la Equidad (fairness) Si K sesiones TCP

comparten un mismo enlace de ancho de banda R cada

una deberiacutea tener una tasa promedio de RK

TCP connection 1

Router cuello de botella de capacidad R

TCP connection 2

iquestPor queacute TCP es justo

Supongamos dos sesiones compitiendo

Aumento aditivo da pendiente de 1 como aumento de throughout

Reduccioacuten multiplicativa reduce throughput proporcionalmente

R

R

Recta de Igual tasa capacidad compartida

Throughput Conexioacuten 1

Through

put Cone

xioacuten 2

Peacuterdida decrece tasa en factor de 2

Abolicioacuten de congestioacuten aumento aditivo

Abolicioacuten de congestioacuten aumento aditivo

Peacuterdida decrece tasa en factor de 2

Equidad

Equidad y UDP

Aplicaciones Multimedia no

usan TCP

bull No quieren tasa limitada

por control de congestioacuten

En su lugar usan UDP

bull Enviacutean audioviacutedeo a tasa

constante y toleran

peacuterdidas de paquetes

Aacuterea de investigacioacuten

Hacerlas amistosas con

TCP (TCP friendly)

Equidad y conexiones TCP

paralelas

Nada previene a las aplicaciones de

abrir conexiones paralelas entre

dos hosts

Navegadores WEB hacen esto

Ejemplo Sea un enlace de tasa R

soportando 9 conexiones

Una aplicacioacuten nueva pide 1

conexioacuten TCP obtendraacute R10

Si la aplicacioacuten nueva pide 11

conexiones TCP eacutesta obtendraacute

11R20 maacutes de R2

En una subred hay 6 usuarios viendo

viacutedeos de Youtubecom viacutea conexiones

TCP iquestSi eacutestos fueran los uacutenicos

usuarios queacute fraccioacuten de la capacidad

de un enlace congestionado le deberiacutea

corresponder a cada uno

16

Nota Se supone que ese es el uacutenico traacutefico en el

enlace congestionado en otro caso seraacute la misma

fraccioacuten del traacutefico para cada conexioacuten

Page 15: Redes de Computadoras 1 · Principios de control de congestión Congestión: Informalmente: “demasiadas fuentes enviando muchos datos muy rápido para que la red lo maneje” Es

TCP AIMD (Additive-Increase

Multiplicative-Decrease)

Decrecimiento

multiplicativo reducir

CongWin a la mitad luego

de peacuterdida

Aumento aditivo aumenta CongWin en 1 MSS cada RTT en ausencia de peacuterdida En algunas implementaciones CongWin incrementa en MSSx(MSSCongWin) por cada ACK recibido

MSS (Maximum Segment Size) es la maacutexima cantidad de datos que se enviacutea en cada segmento sin fragmentarse

Indique queacute protocolo usa el tamantildeo de

segmento maacuteximo (MSS Maximum

Segment Size) iquestA queacute corresponde

El MSS es usado por TCP Corresponde al

MTU (Maximum Transmission Unit) maacutes

pequentildeo en la ruta de la fuente al destino

Usando segmentos de tamantildeo MSS TCP

asegura que sus paquetes no seraacuten

fragmentados

Aumento aditivo La idea es aumentar un MSS luego de un RTT

Podemos aproximarnos aumentando la CongWin cada vez

que se recibe un ACK de manera que al completar 1 RTT

hayamos sumado un MSS

Se enviacutea como maacuteximo CongWin bytes y esperamos por el acuse de recibo

NumSegmentos= NumAkcs=CongWin

MSS

Incr=MSS

NumAkcs=

MSS

CongWin

MSS

=MSSlowast MSS

CongWin

Incr Incremento por cada ACK

RTT

CongWin

Si hay ACK retardados el incremento debe ser

mayor

Partida lenta en TCP (slow start)

Cuando la conexioacuten comienza CongWin = 1

MSS

bull Ejemplo MSS = 500 bytes

amp RTT = 200 msec

bull Tasa inicial = 20 kbps

Ancho de banda disponible

puede ser gtgt MSSRTT

bull Es deseable aumentar tasa

raacutepidamente hasta una tasa

respetable

Cuando la conexioacuten comienza aumentar tasa exponencialmente raacutepido hasta tener primer evento de peacuterdida

Se le llama Slow Start porque parte desde tasa muy abaja

Partida lenta en TCP

Cuando la conexioacuten

comienza aumentar tasa

exponencialmente hasta

primera peacuterdida

bull Duplicar CongWin cada RTT

bull Es hecho incrementando CongWin en 1 MSS por cada

ACK recibido

Resumen tasa inicial es lenta

pero se acelera

exponencialmente raacutepido

Host A

RT

T

Host B

time

Reaccioacuten ante eventos de timeout

iquestCuaacutendo deberiacutea cambiar el aumento de exponencial a lineal

Un buen criterio es Cuando CongWin llega a 12 de su valor antes del timeout

Implementacioacuten Umbral variable (variable threshold)

Ante evento de peacuterdidas el umbral es fijado en 12 de CongWin justo antes de la peacuterdida

Tahoe primera versioacuten de control de congestioacuten en TCP No distinguiacutea entre timeout o ACK duplicados Reno versioacuten siguiente en TCP Siacute distingue timeout de ACK duplicados Es como TCP opera hoy

3 ACKs Duplicados Evento

umbral

Mejor

Reaccioacuten ante eventos de timeout

Despueacutes de 3 ACKs

duplicados

bull CongWin baja a la mitad

bull Luego la ventana crece

linealmente

Despueacutes de un timeout

bull CongWin es fijada en 1

MSS

bull Luego la ventana crece

exponencialmente hasta un

umbral luego crece

linealmente

3 ACKs duplicados indican

que la red es capaz de

transportar algunos

segmentos (soacutelo llegan

fuera de orden en el Rx)

Se perdioacute uno pero

llegaron los otros y por

eso tenemos ACKs

duplicados

timeout antes de 3

duplicados es ldquomaacutes

alarmanterdquo (no llegaron)

En ausencia de errores y cuando el buffer de recepcioacuten es

muy grande la tasa promedio de transferencia de TCP

durante un RTT se puede aproximar por (Tamantildeo de

Ventana de congestioacuten)RTT Muestre un diagrama que

explique la deduccioacuten de esta expresioacuten iquestEs esta expresioacuten

vaacutelida para todo valor de ldquoVentana de Congestioacutenrdquo

Luego de enviar la ventana W el Tx debe esperar la llegada del acuse de recibo maacutes antiguo para retomar la transmisioacuten

No es vaacutelida siempre pues conforme la ventana de congestioacuten aumenta aumenta la utilizacioacuten del canal y cuando eacutesta alcanza 100 no es posible seguir aumentando la tasa pues la tasa de transmisioacuten del enlace pone una cota maacutexima

Tx Rx

RT

T W

Resumen Control de Congestioacuten en TCP

Cuando CongWin estaacute bajo el Threshold (umbral) Tx estaacute en fase slow-start la ventana de transmisioacuten crece exponencialmente (un MSS por cada ACK)

Cuando CongWin estaacute sobre Threshold Tx estaacute en fase abolicioacuten de congestioacuten la ventana crece linealmente (aprox un MSS por cada RTT)

Al tercer ACK duplicados Threshold pasa a CongWin2 y CongWin pasa a Threshold

Cuando ocurre un timeout Threshold pasa a CongWin2 y CongWin se lleva a 1 MSS

Control de Congestioacuten del Tx TCP

SS or CA

SS or CA

SS or CA

Congestion

Avoidance (CA)

Slow Start (SS)

State

CongWin y Threshold no

cambian

Increment duplicate ACK count for

segment being acked

Duplicate ACK

Ingresa a Partida Lenta (slow

start)

Threshold = CongWin2

CongWin = 1 MSS

Set state to ldquoSlow Startrdquo

Timeout

Recuperacioacuten raacutepida

implementando reduccioacuten

multiplicativa CongWin no

caeraacute a 1 MSS

Threshold = CongWin2

CongWin = Threshold

Set state to ldquoCongestion Avoidancerdquo

Loss event

detected by

triple duplicate

ACK

Aumento aditivo resulta en

aumento de CongWin en apox

1 MSS cada RTT

CongWin = CongWin+MSS

(MSSCongWin)

ACK receipt for

previously

unacked data

Resulta en una duplicacioacuten de

CongWin cada RTT

CongWin = CongWin + MSS

If (CongWin gt Threshold)

set state to ldquoCongestion

Avoidancerdquo

ACK receipt for

previously

unacked data

Commentary TCP Sender Action Event

Throughput Simplificado de TCP (tasa de

transferencia de datos lograda) iquestCuaacutel es el throughput promedio de TCP como una funcioacuten del tamantildeo

de ventana CongWin y RTT

bull Ignoremos slow start ya que al ser exponencial es una fase muy

corta

TCP pide ancho de banda adicional al incrementar W en 1 MSS por

cada RTT hasta una peacuterdida

Sea W el tamantildeo de la ventana (en bytes) cuando ocurre una peacuterdida

Cuando la ventana es W el throughput es WRTT

Justo despueacutes de la peacuterdida la ventana cae a W2 y el throughput a

W2RTT

Throughput promedio entre W2RTT y WRTT es 075 WRTT

Esto debido a que el throughput crece linealmente entre ambos

valores

Futuro de TCP Ejemplo segmentos de 1500 bytes RTT de 100ms queremos

throughput de 10 Gbps

Requiere tamantildeo de ventana CongWin W = 83333 (segmentos

en traacutensito)

Throughput en teacuterminos de tasa de peacuterdida (L) es

L=(bytes perdidos)(Nuacutemero total enviados)

Para el throughput deseado con el algoritmo de control de

congestioacuten actual se toleran probabilidades de peacuterdida de soacutelo L

= 210-10 Wow (1 cada 5 mil millones de segmentos)

Se requieren nuevas versiones de TCP para enlaces de alta

velocidad (interesados ver RFC 3649)

LRTT

MSS=hputAvgThroug

122

iquestPor queacute la ventana de congestioacuten de

TCP soacutelo se reduce a la mitad cuando

la peacuterdida es detectada por 3 ACKs

duplicados mientras que se reduce a 1

MSS cuando la peacuterdida es detectada

por timeout

Porque la llegada de 3 ACKs duplicados es una

indicacioacuten que paquetes posteriores al perdido siacute

llegaron luego esta situacioacuten de congestioacuten es

menos criacutetica que cuando hay timeout sin 3 ACKs

duplicados

Equidad en TCP

Objetivo de la Equidad (fairness) Si K sesiones TCP

comparten un mismo enlace de ancho de banda R cada

una deberiacutea tener una tasa promedio de RK

TCP connection 1

Router cuello de botella de capacidad R

TCP connection 2

iquestPor queacute TCP es justo

Supongamos dos sesiones compitiendo

Aumento aditivo da pendiente de 1 como aumento de throughout

Reduccioacuten multiplicativa reduce throughput proporcionalmente

R

R

Recta de Igual tasa capacidad compartida

Throughput Conexioacuten 1

Through

put Cone

xioacuten 2

Peacuterdida decrece tasa en factor de 2

Abolicioacuten de congestioacuten aumento aditivo

Abolicioacuten de congestioacuten aumento aditivo

Peacuterdida decrece tasa en factor de 2

Equidad

Equidad y UDP

Aplicaciones Multimedia no

usan TCP

bull No quieren tasa limitada

por control de congestioacuten

En su lugar usan UDP

bull Enviacutean audioviacutedeo a tasa

constante y toleran

peacuterdidas de paquetes

Aacuterea de investigacioacuten

Hacerlas amistosas con

TCP (TCP friendly)

Equidad y conexiones TCP

paralelas

Nada previene a las aplicaciones de

abrir conexiones paralelas entre

dos hosts

Navegadores WEB hacen esto

Ejemplo Sea un enlace de tasa R

soportando 9 conexiones

Una aplicacioacuten nueva pide 1

conexioacuten TCP obtendraacute R10

Si la aplicacioacuten nueva pide 11

conexiones TCP eacutesta obtendraacute

11R20 maacutes de R2

En una subred hay 6 usuarios viendo

viacutedeos de Youtubecom viacutea conexiones

TCP iquestSi eacutestos fueran los uacutenicos

usuarios queacute fraccioacuten de la capacidad

de un enlace congestionado le deberiacutea

corresponder a cada uno

16

Nota Se supone que ese es el uacutenico traacutefico en el

enlace congestionado en otro caso seraacute la misma

fraccioacuten del traacutefico para cada conexioacuten

Page 16: Redes de Computadoras 1 · Principios de control de congestión Congestión: Informalmente: “demasiadas fuentes enviando muchos datos muy rápido para que la red lo maneje” Es

Indique queacute protocolo usa el tamantildeo de

segmento maacuteximo (MSS Maximum

Segment Size) iquestA queacute corresponde

El MSS es usado por TCP Corresponde al

MTU (Maximum Transmission Unit) maacutes

pequentildeo en la ruta de la fuente al destino

Usando segmentos de tamantildeo MSS TCP

asegura que sus paquetes no seraacuten

fragmentados

Aumento aditivo La idea es aumentar un MSS luego de un RTT

Podemos aproximarnos aumentando la CongWin cada vez

que se recibe un ACK de manera que al completar 1 RTT

hayamos sumado un MSS

Se enviacutea como maacuteximo CongWin bytes y esperamos por el acuse de recibo

NumSegmentos= NumAkcs=CongWin

MSS

Incr=MSS

NumAkcs=

MSS

CongWin

MSS

=MSSlowast MSS

CongWin

Incr Incremento por cada ACK

RTT

CongWin

Si hay ACK retardados el incremento debe ser

mayor

Partida lenta en TCP (slow start)

Cuando la conexioacuten comienza CongWin = 1

MSS

bull Ejemplo MSS = 500 bytes

amp RTT = 200 msec

bull Tasa inicial = 20 kbps

Ancho de banda disponible

puede ser gtgt MSSRTT

bull Es deseable aumentar tasa

raacutepidamente hasta una tasa

respetable

Cuando la conexioacuten comienza aumentar tasa exponencialmente raacutepido hasta tener primer evento de peacuterdida

Se le llama Slow Start porque parte desde tasa muy abaja

Partida lenta en TCP

Cuando la conexioacuten

comienza aumentar tasa

exponencialmente hasta

primera peacuterdida

bull Duplicar CongWin cada RTT

bull Es hecho incrementando CongWin en 1 MSS por cada

ACK recibido

Resumen tasa inicial es lenta

pero se acelera

exponencialmente raacutepido

Host A

RT

T

Host B

time

Reaccioacuten ante eventos de timeout

iquestCuaacutendo deberiacutea cambiar el aumento de exponencial a lineal

Un buen criterio es Cuando CongWin llega a 12 de su valor antes del timeout

Implementacioacuten Umbral variable (variable threshold)

Ante evento de peacuterdidas el umbral es fijado en 12 de CongWin justo antes de la peacuterdida

Tahoe primera versioacuten de control de congestioacuten en TCP No distinguiacutea entre timeout o ACK duplicados Reno versioacuten siguiente en TCP Siacute distingue timeout de ACK duplicados Es como TCP opera hoy

3 ACKs Duplicados Evento

umbral

Mejor

Reaccioacuten ante eventos de timeout

Despueacutes de 3 ACKs

duplicados

bull CongWin baja a la mitad

bull Luego la ventana crece

linealmente

Despueacutes de un timeout

bull CongWin es fijada en 1

MSS

bull Luego la ventana crece

exponencialmente hasta un

umbral luego crece

linealmente

3 ACKs duplicados indican

que la red es capaz de

transportar algunos

segmentos (soacutelo llegan

fuera de orden en el Rx)

Se perdioacute uno pero

llegaron los otros y por

eso tenemos ACKs

duplicados

timeout antes de 3

duplicados es ldquomaacutes

alarmanterdquo (no llegaron)

En ausencia de errores y cuando el buffer de recepcioacuten es

muy grande la tasa promedio de transferencia de TCP

durante un RTT se puede aproximar por (Tamantildeo de

Ventana de congestioacuten)RTT Muestre un diagrama que

explique la deduccioacuten de esta expresioacuten iquestEs esta expresioacuten

vaacutelida para todo valor de ldquoVentana de Congestioacutenrdquo

Luego de enviar la ventana W el Tx debe esperar la llegada del acuse de recibo maacutes antiguo para retomar la transmisioacuten

No es vaacutelida siempre pues conforme la ventana de congestioacuten aumenta aumenta la utilizacioacuten del canal y cuando eacutesta alcanza 100 no es posible seguir aumentando la tasa pues la tasa de transmisioacuten del enlace pone una cota maacutexima

Tx Rx

RT

T W

Resumen Control de Congestioacuten en TCP

Cuando CongWin estaacute bajo el Threshold (umbral) Tx estaacute en fase slow-start la ventana de transmisioacuten crece exponencialmente (un MSS por cada ACK)

Cuando CongWin estaacute sobre Threshold Tx estaacute en fase abolicioacuten de congestioacuten la ventana crece linealmente (aprox un MSS por cada RTT)

Al tercer ACK duplicados Threshold pasa a CongWin2 y CongWin pasa a Threshold

Cuando ocurre un timeout Threshold pasa a CongWin2 y CongWin se lleva a 1 MSS

Control de Congestioacuten del Tx TCP

SS or CA

SS or CA

SS or CA

Congestion

Avoidance (CA)

Slow Start (SS)

State

CongWin y Threshold no

cambian

Increment duplicate ACK count for

segment being acked

Duplicate ACK

Ingresa a Partida Lenta (slow

start)

Threshold = CongWin2

CongWin = 1 MSS

Set state to ldquoSlow Startrdquo

Timeout

Recuperacioacuten raacutepida

implementando reduccioacuten

multiplicativa CongWin no

caeraacute a 1 MSS

Threshold = CongWin2

CongWin = Threshold

Set state to ldquoCongestion Avoidancerdquo

Loss event

detected by

triple duplicate

ACK

Aumento aditivo resulta en

aumento de CongWin en apox

1 MSS cada RTT

CongWin = CongWin+MSS

(MSSCongWin)

ACK receipt for

previously

unacked data

Resulta en una duplicacioacuten de

CongWin cada RTT

CongWin = CongWin + MSS

If (CongWin gt Threshold)

set state to ldquoCongestion

Avoidancerdquo

ACK receipt for

previously

unacked data

Commentary TCP Sender Action Event

Throughput Simplificado de TCP (tasa de

transferencia de datos lograda) iquestCuaacutel es el throughput promedio de TCP como una funcioacuten del tamantildeo

de ventana CongWin y RTT

bull Ignoremos slow start ya que al ser exponencial es una fase muy

corta

TCP pide ancho de banda adicional al incrementar W en 1 MSS por

cada RTT hasta una peacuterdida

Sea W el tamantildeo de la ventana (en bytes) cuando ocurre una peacuterdida

Cuando la ventana es W el throughput es WRTT

Justo despueacutes de la peacuterdida la ventana cae a W2 y el throughput a

W2RTT

Throughput promedio entre W2RTT y WRTT es 075 WRTT

Esto debido a que el throughput crece linealmente entre ambos

valores

Futuro de TCP Ejemplo segmentos de 1500 bytes RTT de 100ms queremos

throughput de 10 Gbps

Requiere tamantildeo de ventana CongWin W = 83333 (segmentos

en traacutensito)

Throughput en teacuterminos de tasa de peacuterdida (L) es

L=(bytes perdidos)(Nuacutemero total enviados)

Para el throughput deseado con el algoritmo de control de

congestioacuten actual se toleran probabilidades de peacuterdida de soacutelo L

= 210-10 Wow (1 cada 5 mil millones de segmentos)

Se requieren nuevas versiones de TCP para enlaces de alta

velocidad (interesados ver RFC 3649)

LRTT

MSS=hputAvgThroug

122

iquestPor queacute la ventana de congestioacuten de

TCP soacutelo se reduce a la mitad cuando

la peacuterdida es detectada por 3 ACKs

duplicados mientras que se reduce a 1

MSS cuando la peacuterdida es detectada

por timeout

Porque la llegada de 3 ACKs duplicados es una

indicacioacuten que paquetes posteriores al perdido siacute

llegaron luego esta situacioacuten de congestioacuten es

menos criacutetica que cuando hay timeout sin 3 ACKs

duplicados

Equidad en TCP

Objetivo de la Equidad (fairness) Si K sesiones TCP

comparten un mismo enlace de ancho de banda R cada

una deberiacutea tener una tasa promedio de RK

TCP connection 1

Router cuello de botella de capacidad R

TCP connection 2

iquestPor queacute TCP es justo

Supongamos dos sesiones compitiendo

Aumento aditivo da pendiente de 1 como aumento de throughout

Reduccioacuten multiplicativa reduce throughput proporcionalmente

R

R

Recta de Igual tasa capacidad compartida

Throughput Conexioacuten 1

Through

put Cone

xioacuten 2

Peacuterdida decrece tasa en factor de 2

Abolicioacuten de congestioacuten aumento aditivo

Abolicioacuten de congestioacuten aumento aditivo

Peacuterdida decrece tasa en factor de 2

Equidad

Equidad y UDP

Aplicaciones Multimedia no

usan TCP

bull No quieren tasa limitada

por control de congestioacuten

En su lugar usan UDP

bull Enviacutean audioviacutedeo a tasa

constante y toleran

peacuterdidas de paquetes

Aacuterea de investigacioacuten

Hacerlas amistosas con

TCP (TCP friendly)

Equidad y conexiones TCP

paralelas

Nada previene a las aplicaciones de

abrir conexiones paralelas entre

dos hosts

Navegadores WEB hacen esto

Ejemplo Sea un enlace de tasa R

soportando 9 conexiones

Una aplicacioacuten nueva pide 1

conexioacuten TCP obtendraacute R10

Si la aplicacioacuten nueva pide 11

conexiones TCP eacutesta obtendraacute

11R20 maacutes de R2

En una subred hay 6 usuarios viendo

viacutedeos de Youtubecom viacutea conexiones

TCP iquestSi eacutestos fueran los uacutenicos

usuarios queacute fraccioacuten de la capacidad

de un enlace congestionado le deberiacutea

corresponder a cada uno

16

Nota Se supone que ese es el uacutenico traacutefico en el

enlace congestionado en otro caso seraacute la misma

fraccioacuten del traacutefico para cada conexioacuten

Page 17: Redes de Computadoras 1 · Principios de control de congestión Congestión: Informalmente: “demasiadas fuentes enviando muchos datos muy rápido para que la red lo maneje” Es

Aumento aditivo La idea es aumentar un MSS luego de un RTT

Podemos aproximarnos aumentando la CongWin cada vez

que se recibe un ACK de manera que al completar 1 RTT

hayamos sumado un MSS

Se enviacutea como maacuteximo CongWin bytes y esperamos por el acuse de recibo

NumSegmentos= NumAkcs=CongWin

MSS

Incr=MSS

NumAkcs=

MSS

CongWin

MSS

=MSSlowast MSS

CongWin

Incr Incremento por cada ACK

RTT

CongWin

Si hay ACK retardados el incremento debe ser

mayor

Partida lenta en TCP (slow start)

Cuando la conexioacuten comienza CongWin = 1

MSS

bull Ejemplo MSS = 500 bytes

amp RTT = 200 msec

bull Tasa inicial = 20 kbps

Ancho de banda disponible

puede ser gtgt MSSRTT

bull Es deseable aumentar tasa

raacutepidamente hasta una tasa

respetable

Cuando la conexioacuten comienza aumentar tasa exponencialmente raacutepido hasta tener primer evento de peacuterdida

Se le llama Slow Start porque parte desde tasa muy abaja

Partida lenta en TCP

Cuando la conexioacuten

comienza aumentar tasa

exponencialmente hasta

primera peacuterdida

bull Duplicar CongWin cada RTT

bull Es hecho incrementando CongWin en 1 MSS por cada

ACK recibido

Resumen tasa inicial es lenta

pero se acelera

exponencialmente raacutepido

Host A

RT

T

Host B

time

Reaccioacuten ante eventos de timeout

iquestCuaacutendo deberiacutea cambiar el aumento de exponencial a lineal

Un buen criterio es Cuando CongWin llega a 12 de su valor antes del timeout

Implementacioacuten Umbral variable (variable threshold)

Ante evento de peacuterdidas el umbral es fijado en 12 de CongWin justo antes de la peacuterdida

Tahoe primera versioacuten de control de congestioacuten en TCP No distinguiacutea entre timeout o ACK duplicados Reno versioacuten siguiente en TCP Siacute distingue timeout de ACK duplicados Es como TCP opera hoy

3 ACKs Duplicados Evento

umbral

Mejor

Reaccioacuten ante eventos de timeout

Despueacutes de 3 ACKs

duplicados

bull CongWin baja a la mitad

bull Luego la ventana crece

linealmente

Despueacutes de un timeout

bull CongWin es fijada en 1

MSS

bull Luego la ventana crece

exponencialmente hasta un

umbral luego crece

linealmente

3 ACKs duplicados indican

que la red es capaz de

transportar algunos

segmentos (soacutelo llegan

fuera de orden en el Rx)

Se perdioacute uno pero

llegaron los otros y por

eso tenemos ACKs

duplicados

timeout antes de 3

duplicados es ldquomaacutes

alarmanterdquo (no llegaron)

En ausencia de errores y cuando el buffer de recepcioacuten es

muy grande la tasa promedio de transferencia de TCP

durante un RTT se puede aproximar por (Tamantildeo de

Ventana de congestioacuten)RTT Muestre un diagrama que

explique la deduccioacuten de esta expresioacuten iquestEs esta expresioacuten

vaacutelida para todo valor de ldquoVentana de Congestioacutenrdquo

Luego de enviar la ventana W el Tx debe esperar la llegada del acuse de recibo maacutes antiguo para retomar la transmisioacuten

No es vaacutelida siempre pues conforme la ventana de congestioacuten aumenta aumenta la utilizacioacuten del canal y cuando eacutesta alcanza 100 no es posible seguir aumentando la tasa pues la tasa de transmisioacuten del enlace pone una cota maacutexima

Tx Rx

RT

T W

Resumen Control de Congestioacuten en TCP

Cuando CongWin estaacute bajo el Threshold (umbral) Tx estaacute en fase slow-start la ventana de transmisioacuten crece exponencialmente (un MSS por cada ACK)

Cuando CongWin estaacute sobre Threshold Tx estaacute en fase abolicioacuten de congestioacuten la ventana crece linealmente (aprox un MSS por cada RTT)

Al tercer ACK duplicados Threshold pasa a CongWin2 y CongWin pasa a Threshold

Cuando ocurre un timeout Threshold pasa a CongWin2 y CongWin se lleva a 1 MSS

Control de Congestioacuten del Tx TCP

SS or CA

SS or CA

SS or CA

Congestion

Avoidance (CA)

Slow Start (SS)

State

CongWin y Threshold no

cambian

Increment duplicate ACK count for

segment being acked

Duplicate ACK

Ingresa a Partida Lenta (slow

start)

Threshold = CongWin2

CongWin = 1 MSS

Set state to ldquoSlow Startrdquo

Timeout

Recuperacioacuten raacutepida

implementando reduccioacuten

multiplicativa CongWin no

caeraacute a 1 MSS

Threshold = CongWin2

CongWin = Threshold

Set state to ldquoCongestion Avoidancerdquo

Loss event

detected by

triple duplicate

ACK

Aumento aditivo resulta en

aumento de CongWin en apox

1 MSS cada RTT

CongWin = CongWin+MSS

(MSSCongWin)

ACK receipt for

previously

unacked data

Resulta en una duplicacioacuten de

CongWin cada RTT

CongWin = CongWin + MSS

If (CongWin gt Threshold)

set state to ldquoCongestion

Avoidancerdquo

ACK receipt for

previously

unacked data

Commentary TCP Sender Action Event

Throughput Simplificado de TCP (tasa de

transferencia de datos lograda) iquestCuaacutel es el throughput promedio de TCP como una funcioacuten del tamantildeo

de ventana CongWin y RTT

bull Ignoremos slow start ya que al ser exponencial es una fase muy

corta

TCP pide ancho de banda adicional al incrementar W en 1 MSS por

cada RTT hasta una peacuterdida

Sea W el tamantildeo de la ventana (en bytes) cuando ocurre una peacuterdida

Cuando la ventana es W el throughput es WRTT

Justo despueacutes de la peacuterdida la ventana cae a W2 y el throughput a

W2RTT

Throughput promedio entre W2RTT y WRTT es 075 WRTT

Esto debido a que el throughput crece linealmente entre ambos

valores

Futuro de TCP Ejemplo segmentos de 1500 bytes RTT de 100ms queremos

throughput de 10 Gbps

Requiere tamantildeo de ventana CongWin W = 83333 (segmentos

en traacutensito)

Throughput en teacuterminos de tasa de peacuterdida (L) es

L=(bytes perdidos)(Nuacutemero total enviados)

Para el throughput deseado con el algoritmo de control de

congestioacuten actual se toleran probabilidades de peacuterdida de soacutelo L

= 210-10 Wow (1 cada 5 mil millones de segmentos)

Se requieren nuevas versiones de TCP para enlaces de alta

velocidad (interesados ver RFC 3649)

LRTT

MSS=hputAvgThroug

122

iquestPor queacute la ventana de congestioacuten de

TCP soacutelo se reduce a la mitad cuando

la peacuterdida es detectada por 3 ACKs

duplicados mientras que se reduce a 1

MSS cuando la peacuterdida es detectada

por timeout

Porque la llegada de 3 ACKs duplicados es una

indicacioacuten que paquetes posteriores al perdido siacute

llegaron luego esta situacioacuten de congestioacuten es

menos criacutetica que cuando hay timeout sin 3 ACKs

duplicados

Equidad en TCP

Objetivo de la Equidad (fairness) Si K sesiones TCP

comparten un mismo enlace de ancho de banda R cada

una deberiacutea tener una tasa promedio de RK

TCP connection 1

Router cuello de botella de capacidad R

TCP connection 2

iquestPor queacute TCP es justo

Supongamos dos sesiones compitiendo

Aumento aditivo da pendiente de 1 como aumento de throughout

Reduccioacuten multiplicativa reduce throughput proporcionalmente

R

R

Recta de Igual tasa capacidad compartida

Throughput Conexioacuten 1

Through

put Cone

xioacuten 2

Peacuterdida decrece tasa en factor de 2

Abolicioacuten de congestioacuten aumento aditivo

Abolicioacuten de congestioacuten aumento aditivo

Peacuterdida decrece tasa en factor de 2

Equidad

Equidad y UDP

Aplicaciones Multimedia no

usan TCP

bull No quieren tasa limitada

por control de congestioacuten

En su lugar usan UDP

bull Enviacutean audioviacutedeo a tasa

constante y toleran

peacuterdidas de paquetes

Aacuterea de investigacioacuten

Hacerlas amistosas con

TCP (TCP friendly)

Equidad y conexiones TCP

paralelas

Nada previene a las aplicaciones de

abrir conexiones paralelas entre

dos hosts

Navegadores WEB hacen esto

Ejemplo Sea un enlace de tasa R

soportando 9 conexiones

Una aplicacioacuten nueva pide 1

conexioacuten TCP obtendraacute R10

Si la aplicacioacuten nueva pide 11

conexiones TCP eacutesta obtendraacute

11R20 maacutes de R2

En una subred hay 6 usuarios viendo

viacutedeos de Youtubecom viacutea conexiones

TCP iquestSi eacutestos fueran los uacutenicos

usuarios queacute fraccioacuten de la capacidad

de un enlace congestionado le deberiacutea

corresponder a cada uno

16

Nota Se supone que ese es el uacutenico traacutefico en el

enlace congestionado en otro caso seraacute la misma

fraccioacuten del traacutefico para cada conexioacuten

Page 18: Redes de Computadoras 1 · Principios de control de congestión Congestión: Informalmente: “demasiadas fuentes enviando muchos datos muy rápido para que la red lo maneje” Es

Partida lenta en TCP (slow start)

Cuando la conexioacuten comienza CongWin = 1

MSS

bull Ejemplo MSS = 500 bytes

amp RTT = 200 msec

bull Tasa inicial = 20 kbps

Ancho de banda disponible

puede ser gtgt MSSRTT

bull Es deseable aumentar tasa

raacutepidamente hasta una tasa

respetable

Cuando la conexioacuten comienza aumentar tasa exponencialmente raacutepido hasta tener primer evento de peacuterdida

Se le llama Slow Start porque parte desde tasa muy abaja

Partida lenta en TCP

Cuando la conexioacuten

comienza aumentar tasa

exponencialmente hasta

primera peacuterdida

bull Duplicar CongWin cada RTT

bull Es hecho incrementando CongWin en 1 MSS por cada

ACK recibido

Resumen tasa inicial es lenta

pero se acelera

exponencialmente raacutepido

Host A

RT

T

Host B

time

Reaccioacuten ante eventos de timeout

iquestCuaacutendo deberiacutea cambiar el aumento de exponencial a lineal

Un buen criterio es Cuando CongWin llega a 12 de su valor antes del timeout

Implementacioacuten Umbral variable (variable threshold)

Ante evento de peacuterdidas el umbral es fijado en 12 de CongWin justo antes de la peacuterdida

Tahoe primera versioacuten de control de congestioacuten en TCP No distinguiacutea entre timeout o ACK duplicados Reno versioacuten siguiente en TCP Siacute distingue timeout de ACK duplicados Es como TCP opera hoy

3 ACKs Duplicados Evento

umbral

Mejor

Reaccioacuten ante eventos de timeout

Despueacutes de 3 ACKs

duplicados

bull CongWin baja a la mitad

bull Luego la ventana crece

linealmente

Despueacutes de un timeout

bull CongWin es fijada en 1

MSS

bull Luego la ventana crece

exponencialmente hasta un

umbral luego crece

linealmente

3 ACKs duplicados indican

que la red es capaz de

transportar algunos

segmentos (soacutelo llegan

fuera de orden en el Rx)

Se perdioacute uno pero

llegaron los otros y por

eso tenemos ACKs

duplicados

timeout antes de 3

duplicados es ldquomaacutes

alarmanterdquo (no llegaron)

En ausencia de errores y cuando el buffer de recepcioacuten es

muy grande la tasa promedio de transferencia de TCP

durante un RTT se puede aproximar por (Tamantildeo de

Ventana de congestioacuten)RTT Muestre un diagrama que

explique la deduccioacuten de esta expresioacuten iquestEs esta expresioacuten

vaacutelida para todo valor de ldquoVentana de Congestioacutenrdquo

Luego de enviar la ventana W el Tx debe esperar la llegada del acuse de recibo maacutes antiguo para retomar la transmisioacuten

No es vaacutelida siempre pues conforme la ventana de congestioacuten aumenta aumenta la utilizacioacuten del canal y cuando eacutesta alcanza 100 no es posible seguir aumentando la tasa pues la tasa de transmisioacuten del enlace pone una cota maacutexima

Tx Rx

RT

T W

Resumen Control de Congestioacuten en TCP

Cuando CongWin estaacute bajo el Threshold (umbral) Tx estaacute en fase slow-start la ventana de transmisioacuten crece exponencialmente (un MSS por cada ACK)

Cuando CongWin estaacute sobre Threshold Tx estaacute en fase abolicioacuten de congestioacuten la ventana crece linealmente (aprox un MSS por cada RTT)

Al tercer ACK duplicados Threshold pasa a CongWin2 y CongWin pasa a Threshold

Cuando ocurre un timeout Threshold pasa a CongWin2 y CongWin se lleva a 1 MSS

Control de Congestioacuten del Tx TCP

SS or CA

SS or CA

SS or CA

Congestion

Avoidance (CA)

Slow Start (SS)

State

CongWin y Threshold no

cambian

Increment duplicate ACK count for

segment being acked

Duplicate ACK

Ingresa a Partida Lenta (slow

start)

Threshold = CongWin2

CongWin = 1 MSS

Set state to ldquoSlow Startrdquo

Timeout

Recuperacioacuten raacutepida

implementando reduccioacuten

multiplicativa CongWin no

caeraacute a 1 MSS

Threshold = CongWin2

CongWin = Threshold

Set state to ldquoCongestion Avoidancerdquo

Loss event

detected by

triple duplicate

ACK

Aumento aditivo resulta en

aumento de CongWin en apox

1 MSS cada RTT

CongWin = CongWin+MSS

(MSSCongWin)

ACK receipt for

previously

unacked data

Resulta en una duplicacioacuten de

CongWin cada RTT

CongWin = CongWin + MSS

If (CongWin gt Threshold)

set state to ldquoCongestion

Avoidancerdquo

ACK receipt for

previously

unacked data

Commentary TCP Sender Action Event

Throughput Simplificado de TCP (tasa de

transferencia de datos lograda) iquestCuaacutel es el throughput promedio de TCP como una funcioacuten del tamantildeo

de ventana CongWin y RTT

bull Ignoremos slow start ya que al ser exponencial es una fase muy

corta

TCP pide ancho de banda adicional al incrementar W en 1 MSS por

cada RTT hasta una peacuterdida

Sea W el tamantildeo de la ventana (en bytes) cuando ocurre una peacuterdida

Cuando la ventana es W el throughput es WRTT

Justo despueacutes de la peacuterdida la ventana cae a W2 y el throughput a

W2RTT

Throughput promedio entre W2RTT y WRTT es 075 WRTT

Esto debido a que el throughput crece linealmente entre ambos

valores

Futuro de TCP Ejemplo segmentos de 1500 bytes RTT de 100ms queremos

throughput de 10 Gbps

Requiere tamantildeo de ventana CongWin W = 83333 (segmentos

en traacutensito)

Throughput en teacuterminos de tasa de peacuterdida (L) es

L=(bytes perdidos)(Nuacutemero total enviados)

Para el throughput deseado con el algoritmo de control de

congestioacuten actual se toleran probabilidades de peacuterdida de soacutelo L

= 210-10 Wow (1 cada 5 mil millones de segmentos)

Se requieren nuevas versiones de TCP para enlaces de alta

velocidad (interesados ver RFC 3649)

LRTT

MSS=hputAvgThroug

122

iquestPor queacute la ventana de congestioacuten de

TCP soacutelo se reduce a la mitad cuando

la peacuterdida es detectada por 3 ACKs

duplicados mientras que se reduce a 1

MSS cuando la peacuterdida es detectada

por timeout

Porque la llegada de 3 ACKs duplicados es una

indicacioacuten que paquetes posteriores al perdido siacute

llegaron luego esta situacioacuten de congestioacuten es

menos criacutetica que cuando hay timeout sin 3 ACKs

duplicados

Equidad en TCP

Objetivo de la Equidad (fairness) Si K sesiones TCP

comparten un mismo enlace de ancho de banda R cada

una deberiacutea tener una tasa promedio de RK

TCP connection 1

Router cuello de botella de capacidad R

TCP connection 2

iquestPor queacute TCP es justo

Supongamos dos sesiones compitiendo

Aumento aditivo da pendiente de 1 como aumento de throughout

Reduccioacuten multiplicativa reduce throughput proporcionalmente

R

R

Recta de Igual tasa capacidad compartida

Throughput Conexioacuten 1

Through

put Cone

xioacuten 2

Peacuterdida decrece tasa en factor de 2

Abolicioacuten de congestioacuten aumento aditivo

Abolicioacuten de congestioacuten aumento aditivo

Peacuterdida decrece tasa en factor de 2

Equidad

Equidad y UDP

Aplicaciones Multimedia no

usan TCP

bull No quieren tasa limitada

por control de congestioacuten

En su lugar usan UDP

bull Enviacutean audioviacutedeo a tasa

constante y toleran

peacuterdidas de paquetes

Aacuterea de investigacioacuten

Hacerlas amistosas con

TCP (TCP friendly)

Equidad y conexiones TCP

paralelas

Nada previene a las aplicaciones de

abrir conexiones paralelas entre

dos hosts

Navegadores WEB hacen esto

Ejemplo Sea un enlace de tasa R

soportando 9 conexiones

Una aplicacioacuten nueva pide 1

conexioacuten TCP obtendraacute R10

Si la aplicacioacuten nueva pide 11

conexiones TCP eacutesta obtendraacute

11R20 maacutes de R2

En una subred hay 6 usuarios viendo

viacutedeos de Youtubecom viacutea conexiones

TCP iquestSi eacutestos fueran los uacutenicos

usuarios queacute fraccioacuten de la capacidad

de un enlace congestionado le deberiacutea

corresponder a cada uno

16

Nota Se supone que ese es el uacutenico traacutefico en el

enlace congestionado en otro caso seraacute la misma

fraccioacuten del traacutefico para cada conexioacuten

Page 19: Redes de Computadoras 1 · Principios de control de congestión Congestión: Informalmente: “demasiadas fuentes enviando muchos datos muy rápido para que la red lo maneje” Es

Partida lenta en TCP

Cuando la conexioacuten

comienza aumentar tasa

exponencialmente hasta

primera peacuterdida

bull Duplicar CongWin cada RTT

bull Es hecho incrementando CongWin en 1 MSS por cada

ACK recibido

Resumen tasa inicial es lenta

pero se acelera

exponencialmente raacutepido

Host A

RT

T

Host B

time

Reaccioacuten ante eventos de timeout

iquestCuaacutendo deberiacutea cambiar el aumento de exponencial a lineal

Un buen criterio es Cuando CongWin llega a 12 de su valor antes del timeout

Implementacioacuten Umbral variable (variable threshold)

Ante evento de peacuterdidas el umbral es fijado en 12 de CongWin justo antes de la peacuterdida

Tahoe primera versioacuten de control de congestioacuten en TCP No distinguiacutea entre timeout o ACK duplicados Reno versioacuten siguiente en TCP Siacute distingue timeout de ACK duplicados Es como TCP opera hoy

3 ACKs Duplicados Evento

umbral

Mejor

Reaccioacuten ante eventos de timeout

Despueacutes de 3 ACKs

duplicados

bull CongWin baja a la mitad

bull Luego la ventana crece

linealmente

Despueacutes de un timeout

bull CongWin es fijada en 1

MSS

bull Luego la ventana crece

exponencialmente hasta un

umbral luego crece

linealmente

3 ACKs duplicados indican

que la red es capaz de

transportar algunos

segmentos (soacutelo llegan

fuera de orden en el Rx)

Se perdioacute uno pero

llegaron los otros y por

eso tenemos ACKs

duplicados

timeout antes de 3

duplicados es ldquomaacutes

alarmanterdquo (no llegaron)

En ausencia de errores y cuando el buffer de recepcioacuten es

muy grande la tasa promedio de transferencia de TCP

durante un RTT se puede aproximar por (Tamantildeo de

Ventana de congestioacuten)RTT Muestre un diagrama que

explique la deduccioacuten de esta expresioacuten iquestEs esta expresioacuten

vaacutelida para todo valor de ldquoVentana de Congestioacutenrdquo

Luego de enviar la ventana W el Tx debe esperar la llegada del acuse de recibo maacutes antiguo para retomar la transmisioacuten

No es vaacutelida siempre pues conforme la ventana de congestioacuten aumenta aumenta la utilizacioacuten del canal y cuando eacutesta alcanza 100 no es posible seguir aumentando la tasa pues la tasa de transmisioacuten del enlace pone una cota maacutexima

Tx Rx

RT

T W

Resumen Control de Congestioacuten en TCP

Cuando CongWin estaacute bajo el Threshold (umbral) Tx estaacute en fase slow-start la ventana de transmisioacuten crece exponencialmente (un MSS por cada ACK)

Cuando CongWin estaacute sobre Threshold Tx estaacute en fase abolicioacuten de congestioacuten la ventana crece linealmente (aprox un MSS por cada RTT)

Al tercer ACK duplicados Threshold pasa a CongWin2 y CongWin pasa a Threshold

Cuando ocurre un timeout Threshold pasa a CongWin2 y CongWin se lleva a 1 MSS

Control de Congestioacuten del Tx TCP

SS or CA

SS or CA

SS or CA

Congestion

Avoidance (CA)

Slow Start (SS)

State

CongWin y Threshold no

cambian

Increment duplicate ACK count for

segment being acked

Duplicate ACK

Ingresa a Partida Lenta (slow

start)

Threshold = CongWin2

CongWin = 1 MSS

Set state to ldquoSlow Startrdquo

Timeout

Recuperacioacuten raacutepida

implementando reduccioacuten

multiplicativa CongWin no

caeraacute a 1 MSS

Threshold = CongWin2

CongWin = Threshold

Set state to ldquoCongestion Avoidancerdquo

Loss event

detected by

triple duplicate

ACK

Aumento aditivo resulta en

aumento de CongWin en apox

1 MSS cada RTT

CongWin = CongWin+MSS

(MSSCongWin)

ACK receipt for

previously

unacked data

Resulta en una duplicacioacuten de

CongWin cada RTT

CongWin = CongWin + MSS

If (CongWin gt Threshold)

set state to ldquoCongestion

Avoidancerdquo

ACK receipt for

previously

unacked data

Commentary TCP Sender Action Event

Throughput Simplificado de TCP (tasa de

transferencia de datos lograda) iquestCuaacutel es el throughput promedio de TCP como una funcioacuten del tamantildeo

de ventana CongWin y RTT

bull Ignoremos slow start ya que al ser exponencial es una fase muy

corta

TCP pide ancho de banda adicional al incrementar W en 1 MSS por

cada RTT hasta una peacuterdida

Sea W el tamantildeo de la ventana (en bytes) cuando ocurre una peacuterdida

Cuando la ventana es W el throughput es WRTT

Justo despueacutes de la peacuterdida la ventana cae a W2 y el throughput a

W2RTT

Throughput promedio entre W2RTT y WRTT es 075 WRTT

Esto debido a que el throughput crece linealmente entre ambos

valores

Futuro de TCP Ejemplo segmentos de 1500 bytes RTT de 100ms queremos

throughput de 10 Gbps

Requiere tamantildeo de ventana CongWin W = 83333 (segmentos

en traacutensito)

Throughput en teacuterminos de tasa de peacuterdida (L) es

L=(bytes perdidos)(Nuacutemero total enviados)

Para el throughput deseado con el algoritmo de control de

congestioacuten actual se toleran probabilidades de peacuterdida de soacutelo L

= 210-10 Wow (1 cada 5 mil millones de segmentos)

Se requieren nuevas versiones de TCP para enlaces de alta

velocidad (interesados ver RFC 3649)

LRTT

MSS=hputAvgThroug

122

iquestPor queacute la ventana de congestioacuten de

TCP soacutelo se reduce a la mitad cuando

la peacuterdida es detectada por 3 ACKs

duplicados mientras que se reduce a 1

MSS cuando la peacuterdida es detectada

por timeout

Porque la llegada de 3 ACKs duplicados es una

indicacioacuten que paquetes posteriores al perdido siacute

llegaron luego esta situacioacuten de congestioacuten es

menos criacutetica que cuando hay timeout sin 3 ACKs

duplicados

Equidad en TCP

Objetivo de la Equidad (fairness) Si K sesiones TCP

comparten un mismo enlace de ancho de banda R cada

una deberiacutea tener una tasa promedio de RK

TCP connection 1

Router cuello de botella de capacidad R

TCP connection 2

iquestPor queacute TCP es justo

Supongamos dos sesiones compitiendo

Aumento aditivo da pendiente de 1 como aumento de throughout

Reduccioacuten multiplicativa reduce throughput proporcionalmente

R

R

Recta de Igual tasa capacidad compartida

Throughput Conexioacuten 1

Through

put Cone

xioacuten 2

Peacuterdida decrece tasa en factor de 2

Abolicioacuten de congestioacuten aumento aditivo

Abolicioacuten de congestioacuten aumento aditivo

Peacuterdida decrece tasa en factor de 2

Equidad

Equidad y UDP

Aplicaciones Multimedia no

usan TCP

bull No quieren tasa limitada

por control de congestioacuten

En su lugar usan UDP

bull Enviacutean audioviacutedeo a tasa

constante y toleran

peacuterdidas de paquetes

Aacuterea de investigacioacuten

Hacerlas amistosas con

TCP (TCP friendly)

Equidad y conexiones TCP

paralelas

Nada previene a las aplicaciones de

abrir conexiones paralelas entre

dos hosts

Navegadores WEB hacen esto

Ejemplo Sea un enlace de tasa R

soportando 9 conexiones

Una aplicacioacuten nueva pide 1

conexioacuten TCP obtendraacute R10

Si la aplicacioacuten nueva pide 11

conexiones TCP eacutesta obtendraacute

11R20 maacutes de R2

En una subred hay 6 usuarios viendo

viacutedeos de Youtubecom viacutea conexiones

TCP iquestSi eacutestos fueran los uacutenicos

usuarios queacute fraccioacuten de la capacidad

de un enlace congestionado le deberiacutea

corresponder a cada uno

16

Nota Se supone que ese es el uacutenico traacutefico en el

enlace congestionado en otro caso seraacute la misma

fraccioacuten del traacutefico para cada conexioacuten

Page 20: Redes de Computadoras 1 · Principios de control de congestión Congestión: Informalmente: “demasiadas fuentes enviando muchos datos muy rápido para que la red lo maneje” Es

Reaccioacuten ante eventos de timeout

iquestCuaacutendo deberiacutea cambiar el aumento de exponencial a lineal

Un buen criterio es Cuando CongWin llega a 12 de su valor antes del timeout

Implementacioacuten Umbral variable (variable threshold)

Ante evento de peacuterdidas el umbral es fijado en 12 de CongWin justo antes de la peacuterdida

Tahoe primera versioacuten de control de congestioacuten en TCP No distinguiacutea entre timeout o ACK duplicados Reno versioacuten siguiente en TCP Siacute distingue timeout de ACK duplicados Es como TCP opera hoy

3 ACKs Duplicados Evento

umbral

Mejor

Reaccioacuten ante eventos de timeout

Despueacutes de 3 ACKs

duplicados

bull CongWin baja a la mitad

bull Luego la ventana crece

linealmente

Despueacutes de un timeout

bull CongWin es fijada en 1

MSS

bull Luego la ventana crece

exponencialmente hasta un

umbral luego crece

linealmente

3 ACKs duplicados indican

que la red es capaz de

transportar algunos

segmentos (soacutelo llegan

fuera de orden en el Rx)

Se perdioacute uno pero

llegaron los otros y por

eso tenemos ACKs

duplicados

timeout antes de 3

duplicados es ldquomaacutes

alarmanterdquo (no llegaron)

En ausencia de errores y cuando el buffer de recepcioacuten es

muy grande la tasa promedio de transferencia de TCP

durante un RTT se puede aproximar por (Tamantildeo de

Ventana de congestioacuten)RTT Muestre un diagrama que

explique la deduccioacuten de esta expresioacuten iquestEs esta expresioacuten

vaacutelida para todo valor de ldquoVentana de Congestioacutenrdquo

Luego de enviar la ventana W el Tx debe esperar la llegada del acuse de recibo maacutes antiguo para retomar la transmisioacuten

No es vaacutelida siempre pues conforme la ventana de congestioacuten aumenta aumenta la utilizacioacuten del canal y cuando eacutesta alcanza 100 no es posible seguir aumentando la tasa pues la tasa de transmisioacuten del enlace pone una cota maacutexima

Tx Rx

RT

T W

Resumen Control de Congestioacuten en TCP

Cuando CongWin estaacute bajo el Threshold (umbral) Tx estaacute en fase slow-start la ventana de transmisioacuten crece exponencialmente (un MSS por cada ACK)

Cuando CongWin estaacute sobre Threshold Tx estaacute en fase abolicioacuten de congestioacuten la ventana crece linealmente (aprox un MSS por cada RTT)

Al tercer ACK duplicados Threshold pasa a CongWin2 y CongWin pasa a Threshold

Cuando ocurre un timeout Threshold pasa a CongWin2 y CongWin se lleva a 1 MSS

Control de Congestioacuten del Tx TCP

SS or CA

SS or CA

SS or CA

Congestion

Avoidance (CA)

Slow Start (SS)

State

CongWin y Threshold no

cambian

Increment duplicate ACK count for

segment being acked

Duplicate ACK

Ingresa a Partida Lenta (slow

start)

Threshold = CongWin2

CongWin = 1 MSS

Set state to ldquoSlow Startrdquo

Timeout

Recuperacioacuten raacutepida

implementando reduccioacuten

multiplicativa CongWin no

caeraacute a 1 MSS

Threshold = CongWin2

CongWin = Threshold

Set state to ldquoCongestion Avoidancerdquo

Loss event

detected by

triple duplicate

ACK

Aumento aditivo resulta en

aumento de CongWin en apox

1 MSS cada RTT

CongWin = CongWin+MSS

(MSSCongWin)

ACK receipt for

previously

unacked data

Resulta en una duplicacioacuten de

CongWin cada RTT

CongWin = CongWin + MSS

If (CongWin gt Threshold)

set state to ldquoCongestion

Avoidancerdquo

ACK receipt for

previously

unacked data

Commentary TCP Sender Action Event

Throughput Simplificado de TCP (tasa de

transferencia de datos lograda) iquestCuaacutel es el throughput promedio de TCP como una funcioacuten del tamantildeo

de ventana CongWin y RTT

bull Ignoremos slow start ya que al ser exponencial es una fase muy

corta

TCP pide ancho de banda adicional al incrementar W en 1 MSS por

cada RTT hasta una peacuterdida

Sea W el tamantildeo de la ventana (en bytes) cuando ocurre una peacuterdida

Cuando la ventana es W el throughput es WRTT

Justo despueacutes de la peacuterdida la ventana cae a W2 y el throughput a

W2RTT

Throughput promedio entre W2RTT y WRTT es 075 WRTT

Esto debido a que el throughput crece linealmente entre ambos

valores

Futuro de TCP Ejemplo segmentos de 1500 bytes RTT de 100ms queremos

throughput de 10 Gbps

Requiere tamantildeo de ventana CongWin W = 83333 (segmentos

en traacutensito)

Throughput en teacuterminos de tasa de peacuterdida (L) es

L=(bytes perdidos)(Nuacutemero total enviados)

Para el throughput deseado con el algoritmo de control de

congestioacuten actual se toleran probabilidades de peacuterdida de soacutelo L

= 210-10 Wow (1 cada 5 mil millones de segmentos)

Se requieren nuevas versiones de TCP para enlaces de alta

velocidad (interesados ver RFC 3649)

LRTT

MSS=hputAvgThroug

122

iquestPor queacute la ventana de congestioacuten de

TCP soacutelo se reduce a la mitad cuando

la peacuterdida es detectada por 3 ACKs

duplicados mientras que se reduce a 1

MSS cuando la peacuterdida es detectada

por timeout

Porque la llegada de 3 ACKs duplicados es una

indicacioacuten que paquetes posteriores al perdido siacute

llegaron luego esta situacioacuten de congestioacuten es

menos criacutetica que cuando hay timeout sin 3 ACKs

duplicados

Equidad en TCP

Objetivo de la Equidad (fairness) Si K sesiones TCP

comparten un mismo enlace de ancho de banda R cada

una deberiacutea tener una tasa promedio de RK

TCP connection 1

Router cuello de botella de capacidad R

TCP connection 2

iquestPor queacute TCP es justo

Supongamos dos sesiones compitiendo

Aumento aditivo da pendiente de 1 como aumento de throughout

Reduccioacuten multiplicativa reduce throughput proporcionalmente

R

R

Recta de Igual tasa capacidad compartida

Throughput Conexioacuten 1

Through

put Cone

xioacuten 2

Peacuterdida decrece tasa en factor de 2

Abolicioacuten de congestioacuten aumento aditivo

Abolicioacuten de congestioacuten aumento aditivo

Peacuterdida decrece tasa en factor de 2

Equidad

Equidad y UDP

Aplicaciones Multimedia no

usan TCP

bull No quieren tasa limitada

por control de congestioacuten

En su lugar usan UDP

bull Enviacutean audioviacutedeo a tasa

constante y toleran

peacuterdidas de paquetes

Aacuterea de investigacioacuten

Hacerlas amistosas con

TCP (TCP friendly)

Equidad y conexiones TCP

paralelas

Nada previene a las aplicaciones de

abrir conexiones paralelas entre

dos hosts

Navegadores WEB hacen esto

Ejemplo Sea un enlace de tasa R

soportando 9 conexiones

Una aplicacioacuten nueva pide 1

conexioacuten TCP obtendraacute R10

Si la aplicacioacuten nueva pide 11

conexiones TCP eacutesta obtendraacute

11R20 maacutes de R2

En una subred hay 6 usuarios viendo

viacutedeos de Youtubecom viacutea conexiones

TCP iquestSi eacutestos fueran los uacutenicos

usuarios queacute fraccioacuten de la capacidad

de un enlace congestionado le deberiacutea

corresponder a cada uno

16

Nota Se supone que ese es el uacutenico traacutefico en el

enlace congestionado en otro caso seraacute la misma

fraccioacuten del traacutefico para cada conexioacuten

Page 21: Redes de Computadoras 1 · Principios de control de congestión Congestión: Informalmente: “demasiadas fuentes enviando muchos datos muy rápido para que la red lo maneje” Es

Reaccioacuten ante eventos de timeout

Despueacutes de 3 ACKs

duplicados

bull CongWin baja a la mitad

bull Luego la ventana crece

linealmente

Despueacutes de un timeout

bull CongWin es fijada en 1

MSS

bull Luego la ventana crece

exponencialmente hasta un

umbral luego crece

linealmente

3 ACKs duplicados indican

que la red es capaz de

transportar algunos

segmentos (soacutelo llegan

fuera de orden en el Rx)

Se perdioacute uno pero

llegaron los otros y por

eso tenemos ACKs

duplicados

timeout antes de 3

duplicados es ldquomaacutes

alarmanterdquo (no llegaron)

En ausencia de errores y cuando el buffer de recepcioacuten es

muy grande la tasa promedio de transferencia de TCP

durante un RTT se puede aproximar por (Tamantildeo de

Ventana de congestioacuten)RTT Muestre un diagrama que

explique la deduccioacuten de esta expresioacuten iquestEs esta expresioacuten

vaacutelida para todo valor de ldquoVentana de Congestioacutenrdquo

Luego de enviar la ventana W el Tx debe esperar la llegada del acuse de recibo maacutes antiguo para retomar la transmisioacuten

No es vaacutelida siempre pues conforme la ventana de congestioacuten aumenta aumenta la utilizacioacuten del canal y cuando eacutesta alcanza 100 no es posible seguir aumentando la tasa pues la tasa de transmisioacuten del enlace pone una cota maacutexima

Tx Rx

RT

T W

Resumen Control de Congestioacuten en TCP

Cuando CongWin estaacute bajo el Threshold (umbral) Tx estaacute en fase slow-start la ventana de transmisioacuten crece exponencialmente (un MSS por cada ACK)

Cuando CongWin estaacute sobre Threshold Tx estaacute en fase abolicioacuten de congestioacuten la ventana crece linealmente (aprox un MSS por cada RTT)

Al tercer ACK duplicados Threshold pasa a CongWin2 y CongWin pasa a Threshold

Cuando ocurre un timeout Threshold pasa a CongWin2 y CongWin se lleva a 1 MSS

Control de Congestioacuten del Tx TCP

SS or CA

SS or CA

SS or CA

Congestion

Avoidance (CA)

Slow Start (SS)

State

CongWin y Threshold no

cambian

Increment duplicate ACK count for

segment being acked

Duplicate ACK

Ingresa a Partida Lenta (slow

start)

Threshold = CongWin2

CongWin = 1 MSS

Set state to ldquoSlow Startrdquo

Timeout

Recuperacioacuten raacutepida

implementando reduccioacuten

multiplicativa CongWin no

caeraacute a 1 MSS

Threshold = CongWin2

CongWin = Threshold

Set state to ldquoCongestion Avoidancerdquo

Loss event

detected by

triple duplicate

ACK

Aumento aditivo resulta en

aumento de CongWin en apox

1 MSS cada RTT

CongWin = CongWin+MSS

(MSSCongWin)

ACK receipt for

previously

unacked data

Resulta en una duplicacioacuten de

CongWin cada RTT

CongWin = CongWin + MSS

If (CongWin gt Threshold)

set state to ldquoCongestion

Avoidancerdquo

ACK receipt for

previously

unacked data

Commentary TCP Sender Action Event

Throughput Simplificado de TCP (tasa de

transferencia de datos lograda) iquestCuaacutel es el throughput promedio de TCP como una funcioacuten del tamantildeo

de ventana CongWin y RTT

bull Ignoremos slow start ya que al ser exponencial es una fase muy

corta

TCP pide ancho de banda adicional al incrementar W en 1 MSS por

cada RTT hasta una peacuterdida

Sea W el tamantildeo de la ventana (en bytes) cuando ocurre una peacuterdida

Cuando la ventana es W el throughput es WRTT

Justo despueacutes de la peacuterdida la ventana cae a W2 y el throughput a

W2RTT

Throughput promedio entre W2RTT y WRTT es 075 WRTT

Esto debido a que el throughput crece linealmente entre ambos

valores

Futuro de TCP Ejemplo segmentos de 1500 bytes RTT de 100ms queremos

throughput de 10 Gbps

Requiere tamantildeo de ventana CongWin W = 83333 (segmentos

en traacutensito)

Throughput en teacuterminos de tasa de peacuterdida (L) es

L=(bytes perdidos)(Nuacutemero total enviados)

Para el throughput deseado con el algoritmo de control de

congestioacuten actual se toleran probabilidades de peacuterdida de soacutelo L

= 210-10 Wow (1 cada 5 mil millones de segmentos)

Se requieren nuevas versiones de TCP para enlaces de alta

velocidad (interesados ver RFC 3649)

LRTT

MSS=hputAvgThroug

122

iquestPor queacute la ventana de congestioacuten de

TCP soacutelo se reduce a la mitad cuando

la peacuterdida es detectada por 3 ACKs

duplicados mientras que se reduce a 1

MSS cuando la peacuterdida es detectada

por timeout

Porque la llegada de 3 ACKs duplicados es una

indicacioacuten que paquetes posteriores al perdido siacute

llegaron luego esta situacioacuten de congestioacuten es

menos criacutetica que cuando hay timeout sin 3 ACKs

duplicados

Equidad en TCP

Objetivo de la Equidad (fairness) Si K sesiones TCP

comparten un mismo enlace de ancho de banda R cada

una deberiacutea tener una tasa promedio de RK

TCP connection 1

Router cuello de botella de capacidad R

TCP connection 2

iquestPor queacute TCP es justo

Supongamos dos sesiones compitiendo

Aumento aditivo da pendiente de 1 como aumento de throughout

Reduccioacuten multiplicativa reduce throughput proporcionalmente

R

R

Recta de Igual tasa capacidad compartida

Throughput Conexioacuten 1

Through

put Cone

xioacuten 2

Peacuterdida decrece tasa en factor de 2

Abolicioacuten de congestioacuten aumento aditivo

Abolicioacuten de congestioacuten aumento aditivo

Peacuterdida decrece tasa en factor de 2

Equidad

Equidad y UDP

Aplicaciones Multimedia no

usan TCP

bull No quieren tasa limitada

por control de congestioacuten

En su lugar usan UDP

bull Enviacutean audioviacutedeo a tasa

constante y toleran

peacuterdidas de paquetes

Aacuterea de investigacioacuten

Hacerlas amistosas con

TCP (TCP friendly)

Equidad y conexiones TCP

paralelas

Nada previene a las aplicaciones de

abrir conexiones paralelas entre

dos hosts

Navegadores WEB hacen esto

Ejemplo Sea un enlace de tasa R

soportando 9 conexiones

Una aplicacioacuten nueva pide 1

conexioacuten TCP obtendraacute R10

Si la aplicacioacuten nueva pide 11

conexiones TCP eacutesta obtendraacute

11R20 maacutes de R2

En una subred hay 6 usuarios viendo

viacutedeos de Youtubecom viacutea conexiones

TCP iquestSi eacutestos fueran los uacutenicos

usuarios queacute fraccioacuten de la capacidad

de un enlace congestionado le deberiacutea

corresponder a cada uno

16

Nota Se supone que ese es el uacutenico traacutefico en el

enlace congestionado en otro caso seraacute la misma

fraccioacuten del traacutefico para cada conexioacuten

Page 22: Redes de Computadoras 1 · Principios de control de congestión Congestión: Informalmente: “demasiadas fuentes enviando muchos datos muy rápido para que la red lo maneje” Es

En ausencia de errores y cuando el buffer de recepcioacuten es

muy grande la tasa promedio de transferencia de TCP

durante un RTT se puede aproximar por (Tamantildeo de

Ventana de congestioacuten)RTT Muestre un diagrama que

explique la deduccioacuten de esta expresioacuten iquestEs esta expresioacuten

vaacutelida para todo valor de ldquoVentana de Congestioacutenrdquo

Luego de enviar la ventana W el Tx debe esperar la llegada del acuse de recibo maacutes antiguo para retomar la transmisioacuten

No es vaacutelida siempre pues conforme la ventana de congestioacuten aumenta aumenta la utilizacioacuten del canal y cuando eacutesta alcanza 100 no es posible seguir aumentando la tasa pues la tasa de transmisioacuten del enlace pone una cota maacutexima

Tx Rx

RT

T W

Resumen Control de Congestioacuten en TCP

Cuando CongWin estaacute bajo el Threshold (umbral) Tx estaacute en fase slow-start la ventana de transmisioacuten crece exponencialmente (un MSS por cada ACK)

Cuando CongWin estaacute sobre Threshold Tx estaacute en fase abolicioacuten de congestioacuten la ventana crece linealmente (aprox un MSS por cada RTT)

Al tercer ACK duplicados Threshold pasa a CongWin2 y CongWin pasa a Threshold

Cuando ocurre un timeout Threshold pasa a CongWin2 y CongWin se lleva a 1 MSS

Control de Congestioacuten del Tx TCP

SS or CA

SS or CA

SS or CA

Congestion

Avoidance (CA)

Slow Start (SS)

State

CongWin y Threshold no

cambian

Increment duplicate ACK count for

segment being acked

Duplicate ACK

Ingresa a Partida Lenta (slow

start)

Threshold = CongWin2

CongWin = 1 MSS

Set state to ldquoSlow Startrdquo

Timeout

Recuperacioacuten raacutepida

implementando reduccioacuten

multiplicativa CongWin no

caeraacute a 1 MSS

Threshold = CongWin2

CongWin = Threshold

Set state to ldquoCongestion Avoidancerdquo

Loss event

detected by

triple duplicate

ACK

Aumento aditivo resulta en

aumento de CongWin en apox

1 MSS cada RTT

CongWin = CongWin+MSS

(MSSCongWin)

ACK receipt for

previously

unacked data

Resulta en una duplicacioacuten de

CongWin cada RTT

CongWin = CongWin + MSS

If (CongWin gt Threshold)

set state to ldquoCongestion

Avoidancerdquo

ACK receipt for

previously

unacked data

Commentary TCP Sender Action Event

Throughput Simplificado de TCP (tasa de

transferencia de datos lograda) iquestCuaacutel es el throughput promedio de TCP como una funcioacuten del tamantildeo

de ventana CongWin y RTT

bull Ignoremos slow start ya que al ser exponencial es una fase muy

corta

TCP pide ancho de banda adicional al incrementar W en 1 MSS por

cada RTT hasta una peacuterdida

Sea W el tamantildeo de la ventana (en bytes) cuando ocurre una peacuterdida

Cuando la ventana es W el throughput es WRTT

Justo despueacutes de la peacuterdida la ventana cae a W2 y el throughput a

W2RTT

Throughput promedio entre W2RTT y WRTT es 075 WRTT

Esto debido a que el throughput crece linealmente entre ambos

valores

Futuro de TCP Ejemplo segmentos de 1500 bytes RTT de 100ms queremos

throughput de 10 Gbps

Requiere tamantildeo de ventana CongWin W = 83333 (segmentos

en traacutensito)

Throughput en teacuterminos de tasa de peacuterdida (L) es

L=(bytes perdidos)(Nuacutemero total enviados)

Para el throughput deseado con el algoritmo de control de

congestioacuten actual se toleran probabilidades de peacuterdida de soacutelo L

= 210-10 Wow (1 cada 5 mil millones de segmentos)

Se requieren nuevas versiones de TCP para enlaces de alta

velocidad (interesados ver RFC 3649)

LRTT

MSS=hputAvgThroug

122

iquestPor queacute la ventana de congestioacuten de

TCP soacutelo se reduce a la mitad cuando

la peacuterdida es detectada por 3 ACKs

duplicados mientras que se reduce a 1

MSS cuando la peacuterdida es detectada

por timeout

Porque la llegada de 3 ACKs duplicados es una

indicacioacuten que paquetes posteriores al perdido siacute

llegaron luego esta situacioacuten de congestioacuten es

menos criacutetica que cuando hay timeout sin 3 ACKs

duplicados

Equidad en TCP

Objetivo de la Equidad (fairness) Si K sesiones TCP

comparten un mismo enlace de ancho de banda R cada

una deberiacutea tener una tasa promedio de RK

TCP connection 1

Router cuello de botella de capacidad R

TCP connection 2

iquestPor queacute TCP es justo

Supongamos dos sesiones compitiendo

Aumento aditivo da pendiente de 1 como aumento de throughout

Reduccioacuten multiplicativa reduce throughput proporcionalmente

R

R

Recta de Igual tasa capacidad compartida

Throughput Conexioacuten 1

Through

put Cone

xioacuten 2

Peacuterdida decrece tasa en factor de 2

Abolicioacuten de congestioacuten aumento aditivo

Abolicioacuten de congestioacuten aumento aditivo

Peacuterdida decrece tasa en factor de 2

Equidad

Equidad y UDP

Aplicaciones Multimedia no

usan TCP

bull No quieren tasa limitada

por control de congestioacuten

En su lugar usan UDP

bull Enviacutean audioviacutedeo a tasa

constante y toleran

peacuterdidas de paquetes

Aacuterea de investigacioacuten

Hacerlas amistosas con

TCP (TCP friendly)

Equidad y conexiones TCP

paralelas

Nada previene a las aplicaciones de

abrir conexiones paralelas entre

dos hosts

Navegadores WEB hacen esto

Ejemplo Sea un enlace de tasa R

soportando 9 conexiones

Una aplicacioacuten nueva pide 1

conexioacuten TCP obtendraacute R10

Si la aplicacioacuten nueva pide 11

conexiones TCP eacutesta obtendraacute

11R20 maacutes de R2

En una subred hay 6 usuarios viendo

viacutedeos de Youtubecom viacutea conexiones

TCP iquestSi eacutestos fueran los uacutenicos

usuarios queacute fraccioacuten de la capacidad

de un enlace congestionado le deberiacutea

corresponder a cada uno

16

Nota Se supone que ese es el uacutenico traacutefico en el

enlace congestionado en otro caso seraacute la misma

fraccioacuten del traacutefico para cada conexioacuten

Page 23: Redes de Computadoras 1 · Principios de control de congestión Congestión: Informalmente: “demasiadas fuentes enviando muchos datos muy rápido para que la red lo maneje” Es

Resumen Control de Congestioacuten en TCP

Cuando CongWin estaacute bajo el Threshold (umbral) Tx estaacute en fase slow-start la ventana de transmisioacuten crece exponencialmente (un MSS por cada ACK)

Cuando CongWin estaacute sobre Threshold Tx estaacute en fase abolicioacuten de congestioacuten la ventana crece linealmente (aprox un MSS por cada RTT)

Al tercer ACK duplicados Threshold pasa a CongWin2 y CongWin pasa a Threshold

Cuando ocurre un timeout Threshold pasa a CongWin2 y CongWin se lleva a 1 MSS

Control de Congestioacuten del Tx TCP

SS or CA

SS or CA

SS or CA

Congestion

Avoidance (CA)

Slow Start (SS)

State

CongWin y Threshold no

cambian

Increment duplicate ACK count for

segment being acked

Duplicate ACK

Ingresa a Partida Lenta (slow

start)

Threshold = CongWin2

CongWin = 1 MSS

Set state to ldquoSlow Startrdquo

Timeout

Recuperacioacuten raacutepida

implementando reduccioacuten

multiplicativa CongWin no

caeraacute a 1 MSS

Threshold = CongWin2

CongWin = Threshold

Set state to ldquoCongestion Avoidancerdquo

Loss event

detected by

triple duplicate

ACK

Aumento aditivo resulta en

aumento de CongWin en apox

1 MSS cada RTT

CongWin = CongWin+MSS

(MSSCongWin)

ACK receipt for

previously

unacked data

Resulta en una duplicacioacuten de

CongWin cada RTT

CongWin = CongWin + MSS

If (CongWin gt Threshold)

set state to ldquoCongestion

Avoidancerdquo

ACK receipt for

previously

unacked data

Commentary TCP Sender Action Event

Throughput Simplificado de TCP (tasa de

transferencia de datos lograda) iquestCuaacutel es el throughput promedio de TCP como una funcioacuten del tamantildeo

de ventana CongWin y RTT

bull Ignoremos slow start ya que al ser exponencial es una fase muy

corta

TCP pide ancho de banda adicional al incrementar W en 1 MSS por

cada RTT hasta una peacuterdida

Sea W el tamantildeo de la ventana (en bytes) cuando ocurre una peacuterdida

Cuando la ventana es W el throughput es WRTT

Justo despueacutes de la peacuterdida la ventana cae a W2 y el throughput a

W2RTT

Throughput promedio entre W2RTT y WRTT es 075 WRTT

Esto debido a que el throughput crece linealmente entre ambos

valores

Futuro de TCP Ejemplo segmentos de 1500 bytes RTT de 100ms queremos

throughput de 10 Gbps

Requiere tamantildeo de ventana CongWin W = 83333 (segmentos

en traacutensito)

Throughput en teacuterminos de tasa de peacuterdida (L) es

L=(bytes perdidos)(Nuacutemero total enviados)

Para el throughput deseado con el algoritmo de control de

congestioacuten actual se toleran probabilidades de peacuterdida de soacutelo L

= 210-10 Wow (1 cada 5 mil millones de segmentos)

Se requieren nuevas versiones de TCP para enlaces de alta

velocidad (interesados ver RFC 3649)

LRTT

MSS=hputAvgThroug

122

iquestPor queacute la ventana de congestioacuten de

TCP soacutelo se reduce a la mitad cuando

la peacuterdida es detectada por 3 ACKs

duplicados mientras que se reduce a 1

MSS cuando la peacuterdida es detectada

por timeout

Porque la llegada de 3 ACKs duplicados es una

indicacioacuten que paquetes posteriores al perdido siacute

llegaron luego esta situacioacuten de congestioacuten es

menos criacutetica que cuando hay timeout sin 3 ACKs

duplicados

Equidad en TCP

Objetivo de la Equidad (fairness) Si K sesiones TCP

comparten un mismo enlace de ancho de banda R cada

una deberiacutea tener una tasa promedio de RK

TCP connection 1

Router cuello de botella de capacidad R

TCP connection 2

iquestPor queacute TCP es justo

Supongamos dos sesiones compitiendo

Aumento aditivo da pendiente de 1 como aumento de throughout

Reduccioacuten multiplicativa reduce throughput proporcionalmente

R

R

Recta de Igual tasa capacidad compartida

Throughput Conexioacuten 1

Through

put Cone

xioacuten 2

Peacuterdida decrece tasa en factor de 2

Abolicioacuten de congestioacuten aumento aditivo

Abolicioacuten de congestioacuten aumento aditivo

Peacuterdida decrece tasa en factor de 2

Equidad

Equidad y UDP

Aplicaciones Multimedia no

usan TCP

bull No quieren tasa limitada

por control de congestioacuten

En su lugar usan UDP

bull Enviacutean audioviacutedeo a tasa

constante y toleran

peacuterdidas de paquetes

Aacuterea de investigacioacuten

Hacerlas amistosas con

TCP (TCP friendly)

Equidad y conexiones TCP

paralelas

Nada previene a las aplicaciones de

abrir conexiones paralelas entre

dos hosts

Navegadores WEB hacen esto

Ejemplo Sea un enlace de tasa R

soportando 9 conexiones

Una aplicacioacuten nueva pide 1

conexioacuten TCP obtendraacute R10

Si la aplicacioacuten nueva pide 11

conexiones TCP eacutesta obtendraacute

11R20 maacutes de R2

En una subred hay 6 usuarios viendo

viacutedeos de Youtubecom viacutea conexiones

TCP iquestSi eacutestos fueran los uacutenicos

usuarios queacute fraccioacuten de la capacidad

de un enlace congestionado le deberiacutea

corresponder a cada uno

16

Nota Se supone que ese es el uacutenico traacutefico en el

enlace congestionado en otro caso seraacute la misma

fraccioacuten del traacutefico para cada conexioacuten

Page 24: Redes de Computadoras 1 · Principios de control de congestión Congestión: Informalmente: “demasiadas fuentes enviando muchos datos muy rápido para que la red lo maneje” Es

Control de Congestioacuten del Tx TCP

SS or CA

SS or CA

SS or CA

Congestion

Avoidance (CA)

Slow Start (SS)

State

CongWin y Threshold no

cambian

Increment duplicate ACK count for

segment being acked

Duplicate ACK

Ingresa a Partida Lenta (slow

start)

Threshold = CongWin2

CongWin = 1 MSS

Set state to ldquoSlow Startrdquo

Timeout

Recuperacioacuten raacutepida

implementando reduccioacuten

multiplicativa CongWin no

caeraacute a 1 MSS

Threshold = CongWin2

CongWin = Threshold

Set state to ldquoCongestion Avoidancerdquo

Loss event

detected by

triple duplicate

ACK

Aumento aditivo resulta en

aumento de CongWin en apox

1 MSS cada RTT

CongWin = CongWin+MSS

(MSSCongWin)

ACK receipt for

previously

unacked data

Resulta en una duplicacioacuten de

CongWin cada RTT

CongWin = CongWin + MSS

If (CongWin gt Threshold)

set state to ldquoCongestion

Avoidancerdquo

ACK receipt for

previously

unacked data

Commentary TCP Sender Action Event

Throughput Simplificado de TCP (tasa de

transferencia de datos lograda) iquestCuaacutel es el throughput promedio de TCP como una funcioacuten del tamantildeo

de ventana CongWin y RTT

bull Ignoremos slow start ya que al ser exponencial es una fase muy

corta

TCP pide ancho de banda adicional al incrementar W en 1 MSS por

cada RTT hasta una peacuterdida

Sea W el tamantildeo de la ventana (en bytes) cuando ocurre una peacuterdida

Cuando la ventana es W el throughput es WRTT

Justo despueacutes de la peacuterdida la ventana cae a W2 y el throughput a

W2RTT

Throughput promedio entre W2RTT y WRTT es 075 WRTT

Esto debido a que el throughput crece linealmente entre ambos

valores

Futuro de TCP Ejemplo segmentos de 1500 bytes RTT de 100ms queremos

throughput de 10 Gbps

Requiere tamantildeo de ventana CongWin W = 83333 (segmentos

en traacutensito)

Throughput en teacuterminos de tasa de peacuterdida (L) es

L=(bytes perdidos)(Nuacutemero total enviados)

Para el throughput deseado con el algoritmo de control de

congestioacuten actual se toleran probabilidades de peacuterdida de soacutelo L

= 210-10 Wow (1 cada 5 mil millones de segmentos)

Se requieren nuevas versiones de TCP para enlaces de alta

velocidad (interesados ver RFC 3649)

LRTT

MSS=hputAvgThroug

122

iquestPor queacute la ventana de congestioacuten de

TCP soacutelo se reduce a la mitad cuando

la peacuterdida es detectada por 3 ACKs

duplicados mientras que se reduce a 1

MSS cuando la peacuterdida es detectada

por timeout

Porque la llegada de 3 ACKs duplicados es una

indicacioacuten que paquetes posteriores al perdido siacute

llegaron luego esta situacioacuten de congestioacuten es

menos criacutetica que cuando hay timeout sin 3 ACKs

duplicados

Equidad en TCP

Objetivo de la Equidad (fairness) Si K sesiones TCP

comparten un mismo enlace de ancho de banda R cada

una deberiacutea tener una tasa promedio de RK

TCP connection 1

Router cuello de botella de capacidad R

TCP connection 2

iquestPor queacute TCP es justo

Supongamos dos sesiones compitiendo

Aumento aditivo da pendiente de 1 como aumento de throughout

Reduccioacuten multiplicativa reduce throughput proporcionalmente

R

R

Recta de Igual tasa capacidad compartida

Throughput Conexioacuten 1

Through

put Cone

xioacuten 2

Peacuterdida decrece tasa en factor de 2

Abolicioacuten de congestioacuten aumento aditivo

Abolicioacuten de congestioacuten aumento aditivo

Peacuterdida decrece tasa en factor de 2

Equidad

Equidad y UDP

Aplicaciones Multimedia no

usan TCP

bull No quieren tasa limitada

por control de congestioacuten

En su lugar usan UDP

bull Enviacutean audioviacutedeo a tasa

constante y toleran

peacuterdidas de paquetes

Aacuterea de investigacioacuten

Hacerlas amistosas con

TCP (TCP friendly)

Equidad y conexiones TCP

paralelas

Nada previene a las aplicaciones de

abrir conexiones paralelas entre

dos hosts

Navegadores WEB hacen esto

Ejemplo Sea un enlace de tasa R

soportando 9 conexiones

Una aplicacioacuten nueva pide 1

conexioacuten TCP obtendraacute R10

Si la aplicacioacuten nueva pide 11

conexiones TCP eacutesta obtendraacute

11R20 maacutes de R2

En una subred hay 6 usuarios viendo

viacutedeos de Youtubecom viacutea conexiones

TCP iquestSi eacutestos fueran los uacutenicos

usuarios queacute fraccioacuten de la capacidad

de un enlace congestionado le deberiacutea

corresponder a cada uno

16

Nota Se supone que ese es el uacutenico traacutefico en el

enlace congestionado en otro caso seraacute la misma

fraccioacuten del traacutefico para cada conexioacuten

Page 25: Redes de Computadoras 1 · Principios de control de congestión Congestión: Informalmente: “demasiadas fuentes enviando muchos datos muy rápido para que la red lo maneje” Es

Throughput Simplificado de TCP (tasa de

transferencia de datos lograda) iquestCuaacutel es el throughput promedio de TCP como una funcioacuten del tamantildeo

de ventana CongWin y RTT

bull Ignoremos slow start ya que al ser exponencial es una fase muy

corta

TCP pide ancho de banda adicional al incrementar W en 1 MSS por

cada RTT hasta una peacuterdida

Sea W el tamantildeo de la ventana (en bytes) cuando ocurre una peacuterdida

Cuando la ventana es W el throughput es WRTT

Justo despueacutes de la peacuterdida la ventana cae a W2 y el throughput a

W2RTT

Throughput promedio entre W2RTT y WRTT es 075 WRTT

Esto debido a que el throughput crece linealmente entre ambos

valores

Futuro de TCP Ejemplo segmentos de 1500 bytes RTT de 100ms queremos

throughput de 10 Gbps

Requiere tamantildeo de ventana CongWin W = 83333 (segmentos

en traacutensito)

Throughput en teacuterminos de tasa de peacuterdida (L) es

L=(bytes perdidos)(Nuacutemero total enviados)

Para el throughput deseado con el algoritmo de control de

congestioacuten actual se toleran probabilidades de peacuterdida de soacutelo L

= 210-10 Wow (1 cada 5 mil millones de segmentos)

Se requieren nuevas versiones de TCP para enlaces de alta

velocidad (interesados ver RFC 3649)

LRTT

MSS=hputAvgThroug

122

iquestPor queacute la ventana de congestioacuten de

TCP soacutelo se reduce a la mitad cuando

la peacuterdida es detectada por 3 ACKs

duplicados mientras que se reduce a 1

MSS cuando la peacuterdida es detectada

por timeout

Porque la llegada de 3 ACKs duplicados es una

indicacioacuten que paquetes posteriores al perdido siacute

llegaron luego esta situacioacuten de congestioacuten es

menos criacutetica que cuando hay timeout sin 3 ACKs

duplicados

Equidad en TCP

Objetivo de la Equidad (fairness) Si K sesiones TCP

comparten un mismo enlace de ancho de banda R cada

una deberiacutea tener una tasa promedio de RK

TCP connection 1

Router cuello de botella de capacidad R

TCP connection 2

iquestPor queacute TCP es justo

Supongamos dos sesiones compitiendo

Aumento aditivo da pendiente de 1 como aumento de throughout

Reduccioacuten multiplicativa reduce throughput proporcionalmente

R

R

Recta de Igual tasa capacidad compartida

Throughput Conexioacuten 1

Through

put Cone

xioacuten 2

Peacuterdida decrece tasa en factor de 2

Abolicioacuten de congestioacuten aumento aditivo

Abolicioacuten de congestioacuten aumento aditivo

Peacuterdida decrece tasa en factor de 2

Equidad

Equidad y UDP

Aplicaciones Multimedia no

usan TCP

bull No quieren tasa limitada

por control de congestioacuten

En su lugar usan UDP

bull Enviacutean audioviacutedeo a tasa

constante y toleran

peacuterdidas de paquetes

Aacuterea de investigacioacuten

Hacerlas amistosas con

TCP (TCP friendly)

Equidad y conexiones TCP

paralelas

Nada previene a las aplicaciones de

abrir conexiones paralelas entre

dos hosts

Navegadores WEB hacen esto

Ejemplo Sea un enlace de tasa R

soportando 9 conexiones

Una aplicacioacuten nueva pide 1

conexioacuten TCP obtendraacute R10

Si la aplicacioacuten nueva pide 11

conexiones TCP eacutesta obtendraacute

11R20 maacutes de R2

En una subred hay 6 usuarios viendo

viacutedeos de Youtubecom viacutea conexiones

TCP iquestSi eacutestos fueran los uacutenicos

usuarios queacute fraccioacuten de la capacidad

de un enlace congestionado le deberiacutea

corresponder a cada uno

16

Nota Se supone que ese es el uacutenico traacutefico en el

enlace congestionado en otro caso seraacute la misma

fraccioacuten del traacutefico para cada conexioacuten

Page 26: Redes de Computadoras 1 · Principios de control de congestión Congestión: Informalmente: “demasiadas fuentes enviando muchos datos muy rápido para que la red lo maneje” Es

Futuro de TCP Ejemplo segmentos de 1500 bytes RTT de 100ms queremos

throughput de 10 Gbps

Requiere tamantildeo de ventana CongWin W = 83333 (segmentos

en traacutensito)

Throughput en teacuterminos de tasa de peacuterdida (L) es

L=(bytes perdidos)(Nuacutemero total enviados)

Para el throughput deseado con el algoritmo de control de

congestioacuten actual se toleran probabilidades de peacuterdida de soacutelo L

= 210-10 Wow (1 cada 5 mil millones de segmentos)

Se requieren nuevas versiones de TCP para enlaces de alta

velocidad (interesados ver RFC 3649)

LRTT

MSS=hputAvgThroug

122

iquestPor queacute la ventana de congestioacuten de

TCP soacutelo se reduce a la mitad cuando

la peacuterdida es detectada por 3 ACKs

duplicados mientras que se reduce a 1

MSS cuando la peacuterdida es detectada

por timeout

Porque la llegada de 3 ACKs duplicados es una

indicacioacuten que paquetes posteriores al perdido siacute

llegaron luego esta situacioacuten de congestioacuten es

menos criacutetica que cuando hay timeout sin 3 ACKs

duplicados

Equidad en TCP

Objetivo de la Equidad (fairness) Si K sesiones TCP

comparten un mismo enlace de ancho de banda R cada

una deberiacutea tener una tasa promedio de RK

TCP connection 1

Router cuello de botella de capacidad R

TCP connection 2

iquestPor queacute TCP es justo

Supongamos dos sesiones compitiendo

Aumento aditivo da pendiente de 1 como aumento de throughout

Reduccioacuten multiplicativa reduce throughput proporcionalmente

R

R

Recta de Igual tasa capacidad compartida

Throughput Conexioacuten 1

Through

put Cone

xioacuten 2

Peacuterdida decrece tasa en factor de 2

Abolicioacuten de congestioacuten aumento aditivo

Abolicioacuten de congestioacuten aumento aditivo

Peacuterdida decrece tasa en factor de 2

Equidad

Equidad y UDP

Aplicaciones Multimedia no

usan TCP

bull No quieren tasa limitada

por control de congestioacuten

En su lugar usan UDP

bull Enviacutean audioviacutedeo a tasa

constante y toleran

peacuterdidas de paquetes

Aacuterea de investigacioacuten

Hacerlas amistosas con

TCP (TCP friendly)

Equidad y conexiones TCP

paralelas

Nada previene a las aplicaciones de

abrir conexiones paralelas entre

dos hosts

Navegadores WEB hacen esto

Ejemplo Sea un enlace de tasa R

soportando 9 conexiones

Una aplicacioacuten nueva pide 1

conexioacuten TCP obtendraacute R10

Si la aplicacioacuten nueva pide 11

conexiones TCP eacutesta obtendraacute

11R20 maacutes de R2

En una subred hay 6 usuarios viendo

viacutedeos de Youtubecom viacutea conexiones

TCP iquestSi eacutestos fueran los uacutenicos

usuarios queacute fraccioacuten de la capacidad

de un enlace congestionado le deberiacutea

corresponder a cada uno

16

Nota Se supone que ese es el uacutenico traacutefico en el

enlace congestionado en otro caso seraacute la misma

fraccioacuten del traacutefico para cada conexioacuten

Page 27: Redes de Computadoras 1 · Principios de control de congestión Congestión: Informalmente: “demasiadas fuentes enviando muchos datos muy rápido para que la red lo maneje” Es

iquestPor queacute la ventana de congestioacuten de

TCP soacutelo se reduce a la mitad cuando

la peacuterdida es detectada por 3 ACKs

duplicados mientras que se reduce a 1

MSS cuando la peacuterdida es detectada

por timeout

Porque la llegada de 3 ACKs duplicados es una

indicacioacuten que paquetes posteriores al perdido siacute

llegaron luego esta situacioacuten de congestioacuten es

menos criacutetica que cuando hay timeout sin 3 ACKs

duplicados

Equidad en TCP

Objetivo de la Equidad (fairness) Si K sesiones TCP

comparten un mismo enlace de ancho de banda R cada

una deberiacutea tener una tasa promedio de RK

TCP connection 1

Router cuello de botella de capacidad R

TCP connection 2

iquestPor queacute TCP es justo

Supongamos dos sesiones compitiendo

Aumento aditivo da pendiente de 1 como aumento de throughout

Reduccioacuten multiplicativa reduce throughput proporcionalmente

R

R

Recta de Igual tasa capacidad compartida

Throughput Conexioacuten 1

Through

put Cone

xioacuten 2

Peacuterdida decrece tasa en factor de 2

Abolicioacuten de congestioacuten aumento aditivo

Abolicioacuten de congestioacuten aumento aditivo

Peacuterdida decrece tasa en factor de 2

Equidad

Equidad y UDP

Aplicaciones Multimedia no

usan TCP

bull No quieren tasa limitada

por control de congestioacuten

En su lugar usan UDP

bull Enviacutean audioviacutedeo a tasa

constante y toleran

peacuterdidas de paquetes

Aacuterea de investigacioacuten

Hacerlas amistosas con

TCP (TCP friendly)

Equidad y conexiones TCP

paralelas

Nada previene a las aplicaciones de

abrir conexiones paralelas entre

dos hosts

Navegadores WEB hacen esto

Ejemplo Sea un enlace de tasa R

soportando 9 conexiones

Una aplicacioacuten nueva pide 1

conexioacuten TCP obtendraacute R10

Si la aplicacioacuten nueva pide 11

conexiones TCP eacutesta obtendraacute

11R20 maacutes de R2

En una subred hay 6 usuarios viendo

viacutedeos de Youtubecom viacutea conexiones

TCP iquestSi eacutestos fueran los uacutenicos

usuarios queacute fraccioacuten de la capacidad

de un enlace congestionado le deberiacutea

corresponder a cada uno

16

Nota Se supone que ese es el uacutenico traacutefico en el

enlace congestionado en otro caso seraacute la misma

fraccioacuten del traacutefico para cada conexioacuten

Page 28: Redes de Computadoras 1 · Principios de control de congestión Congestión: Informalmente: “demasiadas fuentes enviando muchos datos muy rápido para que la red lo maneje” Es

Equidad en TCP

Objetivo de la Equidad (fairness) Si K sesiones TCP

comparten un mismo enlace de ancho de banda R cada

una deberiacutea tener una tasa promedio de RK

TCP connection 1

Router cuello de botella de capacidad R

TCP connection 2

iquestPor queacute TCP es justo

Supongamos dos sesiones compitiendo

Aumento aditivo da pendiente de 1 como aumento de throughout

Reduccioacuten multiplicativa reduce throughput proporcionalmente

R

R

Recta de Igual tasa capacidad compartida

Throughput Conexioacuten 1

Through

put Cone

xioacuten 2

Peacuterdida decrece tasa en factor de 2

Abolicioacuten de congestioacuten aumento aditivo

Abolicioacuten de congestioacuten aumento aditivo

Peacuterdida decrece tasa en factor de 2

Equidad

Equidad y UDP

Aplicaciones Multimedia no

usan TCP

bull No quieren tasa limitada

por control de congestioacuten

En su lugar usan UDP

bull Enviacutean audioviacutedeo a tasa

constante y toleran

peacuterdidas de paquetes

Aacuterea de investigacioacuten

Hacerlas amistosas con

TCP (TCP friendly)

Equidad y conexiones TCP

paralelas

Nada previene a las aplicaciones de

abrir conexiones paralelas entre

dos hosts

Navegadores WEB hacen esto

Ejemplo Sea un enlace de tasa R

soportando 9 conexiones

Una aplicacioacuten nueva pide 1

conexioacuten TCP obtendraacute R10

Si la aplicacioacuten nueva pide 11

conexiones TCP eacutesta obtendraacute

11R20 maacutes de R2

En una subred hay 6 usuarios viendo

viacutedeos de Youtubecom viacutea conexiones

TCP iquestSi eacutestos fueran los uacutenicos

usuarios queacute fraccioacuten de la capacidad

de un enlace congestionado le deberiacutea

corresponder a cada uno

16

Nota Se supone que ese es el uacutenico traacutefico en el

enlace congestionado en otro caso seraacute la misma

fraccioacuten del traacutefico para cada conexioacuten

Page 29: Redes de Computadoras 1 · Principios de control de congestión Congestión: Informalmente: “demasiadas fuentes enviando muchos datos muy rápido para que la red lo maneje” Es

iquestPor queacute TCP es justo

Supongamos dos sesiones compitiendo

Aumento aditivo da pendiente de 1 como aumento de throughout

Reduccioacuten multiplicativa reduce throughput proporcionalmente

R

R

Recta de Igual tasa capacidad compartida

Throughput Conexioacuten 1

Through

put Cone

xioacuten 2

Peacuterdida decrece tasa en factor de 2

Abolicioacuten de congestioacuten aumento aditivo

Abolicioacuten de congestioacuten aumento aditivo

Peacuterdida decrece tasa en factor de 2

Equidad

Equidad y UDP

Aplicaciones Multimedia no

usan TCP

bull No quieren tasa limitada

por control de congestioacuten

En su lugar usan UDP

bull Enviacutean audioviacutedeo a tasa

constante y toleran

peacuterdidas de paquetes

Aacuterea de investigacioacuten

Hacerlas amistosas con

TCP (TCP friendly)

Equidad y conexiones TCP

paralelas

Nada previene a las aplicaciones de

abrir conexiones paralelas entre

dos hosts

Navegadores WEB hacen esto

Ejemplo Sea un enlace de tasa R

soportando 9 conexiones

Una aplicacioacuten nueva pide 1

conexioacuten TCP obtendraacute R10

Si la aplicacioacuten nueva pide 11

conexiones TCP eacutesta obtendraacute

11R20 maacutes de R2

En una subred hay 6 usuarios viendo

viacutedeos de Youtubecom viacutea conexiones

TCP iquestSi eacutestos fueran los uacutenicos

usuarios queacute fraccioacuten de la capacidad

de un enlace congestionado le deberiacutea

corresponder a cada uno

16

Nota Se supone que ese es el uacutenico traacutefico en el

enlace congestionado en otro caso seraacute la misma

fraccioacuten del traacutefico para cada conexioacuten

Page 30: Redes de Computadoras 1 · Principios de control de congestión Congestión: Informalmente: “demasiadas fuentes enviando muchos datos muy rápido para que la red lo maneje” Es

Equidad

Equidad y UDP

Aplicaciones Multimedia no

usan TCP

bull No quieren tasa limitada

por control de congestioacuten

En su lugar usan UDP

bull Enviacutean audioviacutedeo a tasa

constante y toleran

peacuterdidas de paquetes

Aacuterea de investigacioacuten

Hacerlas amistosas con

TCP (TCP friendly)

Equidad y conexiones TCP

paralelas

Nada previene a las aplicaciones de

abrir conexiones paralelas entre

dos hosts

Navegadores WEB hacen esto

Ejemplo Sea un enlace de tasa R

soportando 9 conexiones

Una aplicacioacuten nueva pide 1

conexioacuten TCP obtendraacute R10

Si la aplicacioacuten nueva pide 11

conexiones TCP eacutesta obtendraacute

11R20 maacutes de R2

En una subred hay 6 usuarios viendo

viacutedeos de Youtubecom viacutea conexiones

TCP iquestSi eacutestos fueran los uacutenicos

usuarios queacute fraccioacuten de la capacidad

de un enlace congestionado le deberiacutea

corresponder a cada uno

16

Nota Se supone que ese es el uacutenico traacutefico en el

enlace congestionado en otro caso seraacute la misma

fraccioacuten del traacutefico para cada conexioacuten

Page 31: Redes de Computadoras 1 · Principios de control de congestión Congestión: Informalmente: “demasiadas fuentes enviando muchos datos muy rápido para que la red lo maneje” Es

En una subred hay 6 usuarios viendo

viacutedeos de Youtubecom viacutea conexiones

TCP iquestSi eacutestos fueran los uacutenicos

usuarios queacute fraccioacuten de la capacidad

de un enlace congestionado le deberiacutea

corresponder a cada uno

16

Nota Se supone que ese es el uacutenico traacutefico en el

enlace congestionado en otro caso seraacute la misma

fraccioacuten del traacutefico para cada conexioacuten