You are on page 1of 106

Temas 3 y 4 Capa de transporte UDP y TCP

Para qu sirve?
2

La capa de transporte

Objetivos
3

Comprender los servicios que puede ofrecer la capa de transporte:

Multiplexacin/demultiplexacin lgica
Transferencia de datos fiable
Control de flujo
Control de congestin

Conocer los protocolos de transporte usados en Internet:

UDP: no orientado a conexin


TCP: orientado a conexin
Control de congestin en TCP

La capa de transporte

Contenidos
4

1.
2.
3.
4.
5.
6.

La capa de transporte y sus servicios


Multiplexacin y demultiplexacin
Transporte sin conexin: UDP
Transporte orientado a la conexin: TCP
Principios del control de congestin
Mecanismo de control de congestin de TCP

La capa de transporte

Servicios de transporte
5

Protocolo de la capa de transporte:

Protocolo de la capa de red:

Proporciona comunicacin lgica entre procesos que


se ejecutan en hosts diferentes

application
transport
network
data link
physical

Proporciona comunicacin lgica entre hosts

El protocolo de transporte corre en sistemas


finales
Transmisor: trocea (si es necesario) los
mensajes de aplicacin en segmentos, que
pasa a la capa de red
Receptor: reensambla (si es necesario)
segmentos en mensajes, que pasa a la
capa de aplicacin

application
transport
network
data link
physical

La capa de transporte

Protocolos de transporte en Internet

Ms de un protocolo de transporte disponible

Internet: TCP y UDP

Fiable y entrega en orden (TCP)

Control de congestin

Control de flujo

Gestin de conexin

No fiable y sin garantas de orden: UDP

Otros nuevos adicionales ms recientes

Extensin del modelo de IP basado en besteffort

Servicios no disponibles en TCP y UDP:

Garanta de retardo

Garanta de ancho de banda

Garanta de seguridad

application
transport
network
data link
physical

network
data link
physical

network
data link
physical

network
data link
physical network
data link
physical
network
data link
physical
network

data link
physical

application
transport
network
data link
physical

La capa de transporte

Contenidos
7

1.
2.
3.
4.
5.
6.
7.

La capa de transporte y sus servicios


Multiplexacin y demultiplexacin
Transporte sin conexin: UDP
Principios de un servicio de transferencia de datos fiable
Transporte orientado a la conexin: TCP
Principios del control de congestin
Mecanismo de control de congestin de TCP

La capa de transporte

Requisitos direccionamiento
8

Se requieren tres niveles de direccionamiento:

Cada host necesita una direccin de red nica

Identificar el protocolo de transporte.

Direccin IP: gestionada por la capa de red


Se indica en la cabecera de IP.

Cada proceso necesita un direccin nica dentro del equipo

Puerto: la capa de transporte ofrece esa multiplexacin/demultiplexacin.


SAP en nomenclatura OSI.
Aplicacin
1

Transporte

TCP

UDP

Red

17

Nmero
de Puerto
Direccin
de Protocolo

IP
La capa de transporte

Multiplexacin/Demultiplexacin
9

La capa de transporte:
Recoge datos de distintos procesos en un equipo origen: Multiplexa.
Los entrega a otros procesos en equipo(s) destino: Demultiplexa.

Distintos procesos en un mismo equipo pueden necesitar un


mismo protocolo de transporte (ej: DNS y TFTP)

Para distinguir procesos cada entidad de transporte usa nmeros de


puerto.
Well-known ports
Ephemeral ports

La capa de transporte

Multiplexacin/Demultiplexacin
10

Multiplexacin en el emisor:

Demultiplexacin en el receptor:

Datos de mltiples sockets

Entrega de segmentos
al socket correcto
= proceso

= socket

application

P3

P1
P1

application

P2

P4

application

transport

transport

transport

network

network

network

link

link

link

physical

host 1

physical

host 2

physical

host 3
La capa de transporte

Cmo funciona la demultiplexacin


11

La capa de red recibe datagramas IP


Cada datagrama tiene direccin IP
origen y direccin IP destino
Cada datagrama puede contener un
segmento de la capa de transporte
Cada segmento tiene un nmero de
puerto origen y un nmero de puerto
destino
Los hosts usan las direcciones IP y
nmeros de puerto para entregar el
segmento al socket apropiado

32 bits
Nm. Puerto Origen

Nm. Puerto Destino

Otros campos de cabecera

Datos de Aplicacin
(mensaje)

Formato general del


segmento TCP/UDP
La capa de transporte

Demultiplexacin en UDP
12

Socket UDP se identifica por: (dir IP destino, puerto destino)


Cuando un host recibe un segmento UDP:

Datagramas IP con diferente IP y/o nmero de puerto origen, son


dirigidos al mismo socket si coinciden:

Comprueba el nmero de puerto destino


Dirige el segmento UDP al socket con ese nmero de puerto

Direccin IP destino
Puerto destino

Para qu enviar direccin y puerto origen?

Para un posible retorno


La capa de transporte

Demultiplexacin en UDP
13

DatagramSocket serverSocket = new DatagramSocket(6428);

P2

PO: 6428
PD: 9157

Cliente
IP: A

P1
P1

P3

PO: 9157
PD: 6428

PO: Puerto Origen


PD: Puerto Destino

PO: 6428
PD: 5775

Servidor
IP: C

PO: 5775
PD: 6428

Cliente
IP:B

PO proporciona la posibilidad de un camino de retorno


La capa de transporte

Demultiplexacin en TCP
14

Socket TCP identificado por 4


valores:

Dir IP origen
Puerto origen
Dir IP destino
Puerto destino

El host servidor puede soportar varios


sockets simultneamente:

Cada socket identificado por sus 4 valores

El host receptor usa estos 4


valores para dirigir el mensaje al
socket adecuado

La capa de transporte

Demultiplexacin en TCP
15

Correspondencia uno a uno entre procesos y sockets


P1

P4

P5

P2

P6

P1P3

PO: 5775
PD: 80
IP_O: B
IP_D:C

Cliente
IP: A

PO: 9157
PD: 80
IP_O: A
IP_D:C

Servidor
IP: C

PO: 9157
PD: 80
IP_O: B

IP_D:C

Cliente
IP:B

IP_O: Direccin IP Origen


IP_D: Direccin IP Destino
La capa de transporte

16

Demultiplexacin en TCP basada en hilos


Correspondencia uno a varios entre proceso y sockets
P1

P2

P4

P1P3

PO: 5775
PD: 80
IP_O: B
IP_D:C

Cliente
IP: A

PO: 9157
PD: 80
IP_O: A
IP_D:C

Servidor (Web)
IP: C

PO: 9157
PD: 80
IP_O: B

IP_D:C

Cliente
IP:B

La capa de transporte

17

La capa de Transporte
Transporte sin conexin: UDP (User Datagram Protocol)

UDP en la pila de protocolos IP

Uso de Puertos UDP


FTP
p1

TELNET
p2

FTP

...

p1

p3
Router

UDP (TCP

Red (IP)

Red (IP)
Subred 1

TELNET
p2

UDP (TCP

Red (IP)
Subred 2

...
p3

Formato de la PDU de UDP


0

16

31

Puerto origen

Puerto destino

Longitud

Checksum

Datos

RFC 768. STD 6.


Origen y Destino identifican puertos de comunicacin (TFTP, ECHO, USERS,
etc). El primero es opcional (cero si no se usa)
Longitud: en octetos del datagrama completo.
Checksum: cdigo de proteccin frente a errores. Es opcional (0 = no
usado).

Figure 7.20 UDP datagram format: (a) UDP header fields; (b) fields used in pseudo header
for computation of checksum (Ref. Fred Halsall. Redes de Comp. e Internet)

Clculo de checksum

El Checksum se calcula sobre los siguientes campos:

Datagrama UDP
Direcciones IP de origen y destino
Cdigo de tipo de protocolo de UDP segn IP
Longitud del datagrama UDP

Se necesita saber la direccin IP origen, por lo que hay


que interactuar con la entidad IP antes de enviar el
datagrama.

User Datagram Protocol (UDP)

Servicio sin conexin segn RFC 768


Ultrasimplificado
Servicio no fiable
Sin entrega garantizada
Sin control de paquetes duplicados
Sobrecarga mnima
Aplicaciones:
Recepcin de datos
Diseminacin de datos
Peticin-respuesta simple (conexin controlada en aplicacin)
Tiempo real (voz, multimedia,)

24

La capa de Transporte
Transporte orientado a conexin: TCP

25

Tema 3: La capa de Transporte


3.1 La capa de Transporte y sus servicios
3.2 Multiplexaccin y demultiplexacin
3.3 Transporte sin conexin: UDP
3.5 Transporte orientado a conexin: TCP
3.5.1 La conexin TCP
3.5.2 Estructura del segmento TCP
3.5.3 Estimacin del tiempo de ida y vuelta y fin de temporizacin
3.5.4 Transferencia de datos fiable
3.5.5 Control de flujo
3.5.6 Gestin de la conexin TCP
3.6 Principios de control de congestin
3.7 Mecanismo de control de congestin de TCP
Tema 3: La capa de Transporte

26

TCP: Transmission Control Protocol

Especificado en varias RFC:


RFCs 793, 1122, 1323, 2018, y 2581

Protocolo de la capa de Transporte


Orientado a conexin
Provee control de flujo y control de congestin
Fiable

En base a los principios bsicos

Deteccin de errores
Retransmisiones
Asentimientos acumulativos
Nmeros de secuencia
Temporizadores
Tema 3: La capa de Transporte

27

TCP: La conexin TCP

Orientado a conexin
Los procesos de Aplicacin, en sistemas finales, primero deben
establecer-acordar la comunicacin

Intercambio de segmentos especiales para establecer parmetros para transferencia


de datos

Las partes (Cliente y Servidor) inician diferentes variables de estado para TCP

Los sistemas intermedios (Routers, etc) son TOTALMENTE


TRANSPARENTES a la conexin TCP

No mantienen estados de la conexin TCP

Tema 3: La capa de Transporte

28

TCP: La conexin TCP

Conexin TCP
Full-duplex Bidireccional simultnea

De flujo de octetos NO estructurados Flujo de octetos, NO de mensajes

Punto a punto
No posibilita multidifusin ni difusin
Acuerdo en tres fases (three-way handshake)

Intercambio de tres segmentos especiales para el acuerdo lgico

Concluye con el establecimiento de las variables de estado y capacidades en buffers

Los dos primeros segmentos No portan datos de la capa de Aplicacin


Tercer segmento Puede portar datos de la capa de Aplicacin
En ambos procesos TCP en sistemas finales

Conlleva un retardo intrnseco para la transferencia de datos


Tema 3: La capa de Transporte

29

TCP: La conexin TCP

Conexin TCP establecida

Proceso Cliente pasa datos a la capa TCP

TCP transfiere segmentos que contienen PDUs de la capa de Aplicacin


Segn su propia conveniencia. La especificacin TCP es vaga en este sentido

Buffers TCP Introducen cierto retardo


Ver applet que muestra animacin de los buffers TCP emisor y receptor

Cliente

http://media.pearsoncmg.com/aw/aw_kurose_network_4/applets/flow/FlowControl.htm
Servidor

Toda conexin TCP requiere en


Emisor y Receptor:
Buffers
Variables
Socket de conexin a un proceso

Tema 3: La capa de Transporte

30

TCP: La conexin TCP

MSS: Maximum Segment Size


Cantidad mxima de datos que puede portar el segmento TCP
Depende del tamao de la MTU, segn:

Trama ms grande que puede ensamblar el Emisor, y


Trama ms grande que puede enviarse entre Emisor y Receptor a travs de todos los
enlaces entre origen y destino

Hay mtodos para determinar la MTU del trayecto y establecer el MSS en


correspondencia

Garanta de que el segmento TCP se ajuste a una nica


trama (PDU2)

Tema 3: La capa de Transporte

31

TCP: Estructura del segmento TCP

Cabeceras obligatorias
20 octetos

Cabeceras opcionales
Longitud variable

Para chequear la
integridad del
segmento.
Se calcula igual
que en UDP

Cuerpo MSS

28

31

32

33

34

35

36

39

Tema 3: La capa de Transporte

TCP: Estructura del segmento TCP. Cabeceras

32

Puertos origen y destino (16 bits)


SEQ nbr: N de secuencia (32 bits)
Para transferencia fiable y control de flujo
ACK nbr: N de reconocimiento (32 bits)
HLEN: Longitud de cabecera (4 bits)

Flags: Indicadores (1 bit c/u)

En palabras de 32 bits
Si est vaco 20 octetos
URG, ACK, PSH, RST, SYN, FIN

Ventana de recepcin (16 bits) Para control de flujo


Suma de comprobacin (16 bits) Sobre el segmento completo + Pseudo cabecera
Puntero de datos urgente (16 bits) Para indicar ubicacin (inicio) de datos urgentes
Opciones (es opcional, longitud variable) Normalmente NO presente
Tema 3: La capa de Transporte

33

TCP: Estructura del segmento TCP. Cabeceras


Indicadores (flags)

ACK

SYN, FIN, RST

Para establecimiento, cierre y rechazo (o reinicio) de conexiones

PSH

Indica que el valor del campo N de Reconocimiento es vlido

Para indicar al Receptor* que pase los datos de inmediato a la capa


superior

URG

Para indicar que el segmento tiene datos que han sido marcados como
urgentes por la capa superior Campo Puntero de datos urgente vlido
Tema 3: La capa de Transporte

34

TCP: Estructura del segmento TCP. Cabeceras

Nmero de secuencia
Indica el N del primer octeto del segmento, respecto al flujo total de octetos
Indica lo que se enva

Nmero de reconocimiento
Indica el N de secuencia del siguiente octeto que se espera recibir
Indica lo que se espera recibir

Ambos SIEMPRE presentes en TODO segmento TCP


Hacen referencia al flujo de octetos, NO a los segmentos

TCP percibe los datos como un flujo de octetos NO estructurado y ordenado

Eleccin de los N de secuencia


De manera aleatoria por ambas partes de la conexin

Para minimizar posibilidad de coincidencia con segmentos antiguos que estn en la red

Ver caso de estudio con Telnet (pginas 234 - 236)


Tema 3: La capa de Transporte

35

TCP: Estructura del segmento TCP

Reconocimientos acumulativos
TCP slo confirma (reconoce) hasta el primer octeto que falta en el flujo

Qu hace un Host cuando NO recibe los segmentos en orden?


Las especificaciones TCP no establecen nada al respecto
Queda a decisin de los implementadores
Opciones bsicas:

Receptor descarta segmentos que no lleguen en secuencia

Se simplifica el diseo del Receptor

Receptor acepta segmentos fuera de secuencia, los almacena en el buffer en espera de


los faltantes

Solucin ms eficiente respecto a uso del ancho de banda


Solucin normalmente utilizada en la prctica
Tema 3: La capa de Transporte

36

TCP: Estimacin del RTT y fin de temporizacin

Cmo TCP se recupera ante la prdida de segmentos?


Con procedimientos ARQ y Temporizadores

Gestin de Temporizadores en TCP (RFC 2988)


En base al valor del RTT Timeout > RTT
RTT varia para cada segmento Se calculan RTTs estimados

RTTestimado = (1 )RTTestimado + RTTmuestra

RTTdesv: estimacin de cunto se desva RTTmuestra de RTTestimado

Se recomienda = 0,125 = 1/8


RTTestimado = 0,875RTTestimado + 0,125RTTmuestra
RTTdesv = (1- )RTTDesv + |RTTmuestra RTTestimado|
Se recomienda = 0,25 = 1/4
RTTdesv = (1- )RTTDesv + |RTTmuestra RTTestimado|

Timeout = IntervaloFinTemporizacin = RTTestimado + 4RTTdesv


Tema 3: La capa de Transporte

37

TCP: Estimacin del RTT y fin de temporizacin

RTTmuestra y RTTestimado para una conexin TCP entre EE.UU. y Francia


RTTestimado = 0,875RTTestimado + 0,125RTTmuestra
RTTmuestra: tiempo que transcurre
desde que se pasa el segmento a la
capa IP (se enva), hasta que se recibe
su reconocimiento
RTTestimado: valor promedio de los
valores RTTmuestra
Alfa = = 1/8 = 0,125

Nuevo valor RTTmuestra cada RTT segundos aproximadamente


Tema 3: La capa de Transporte

38

TCP: Transferencia de datos fiable

La gestin de Temporizadores Carga de trabajo

En consecuencia, para TCP la RFC 2988 recomienda:

Puede ser considerable


Un nico* Temporizador de retransmisin
Independientemente del N de segmentos pendientes de ser reconocidos*

Sucesos importantes en el Emisor TCP, relativos a la transmisin y


retransmisin de datos, son:

Datos recibidos desde la Aplicacin


Fin de la temporizacin (Timeout)
Recepcin de ACKs
Tema 3: La capa de Transporte

39

TCP: Transferencia de datos fiable


Sucesos importantes en el Emisor TCP (versin simplificada)

Datos recibidos desde la Aplicacin


TCP lo encapsula en un segmento, y lo pasa a la capa IP
Si el Temporizador NO est iniciado Se inicia el Temporizador

Fin de temporizacin
TCP retransmite segmento asociado a dicha temporizacin*
Se reinicia el Temporizador

Recepcin de un segmento con ACK vlido


Compara el valor ACK y con la variable BaseEmision

BaseEmision = N de secuencia ms antiguo pendiente de ACK

Si y > BaseEmision El ACK confirma uno, o ms segmentos anteriores NO reconocidos

Se actualiza la variable BaseEmision


Si hay segmentos an NO reconocidos Se inicia el Temporizador

40

TCP: Transferencia de datos fiable

Escenario posible
TCP espera
ACK = 100

Duplicado,
TCP lo
descarta

Tema 3: La capa de Transporte

41

TCP: Transferencia de datos fiable

Escenario posible

Inicio del
Temporizador para
N de Sec = 100

Fin del
Temporizador para
N de Sec = 100

Tema 3: La capa de Transporte

42

TCP: Transferencia de datos fiable

Escenario posible

Se eliminan del Buffer


los segmentos con N
de Sec. 92 y 100
Finaliza
Temporizador para
N de Sec = 92

Si hay uno, o ms segmentos


pendientes de ACK, se reinicia
el Temporizador para el ms
antiguo
Tema 3: La capa de Transporte

43

TCP: Transferencia de datos fiable


Duplicacin del Timeout

Modificacin utilizada en la mayora de implementaciones TCP cuando


vence el Temporizador
Cada vez que TCP retransmite, redefine el Timeout

Nuevo Timeout = 2 veces Timeout anterior

NO se obtiene el Timeout a partir de RTTestimado + 4RTTdesv


Los Timeout crecen exponencialmente despus de cada retransmisin
Se posibilita una forma limitada de control de congestin
Posibilita actuacin consciente de TCP frente a congestiones de red

Aumenta los intervalos de retransmisin, evitando empeoramiento de la congestin

En los otros dos casos, recepcin de datos de Aplicacin y ACK:

Nuevo Timeout = RTTestimado + 4.RTTdesv


Tema 3: La capa de Transporte

44

TCP: Transferencia de datos fiable


Retransmisin Rpida

Solucin frente a problemas derivados de retransmisiones por vencimiento


del Timeout
El Timeout puede ser grande Se retarda la retransmisin Aumenta retardo entre
Sistemas Finales

Solucin ACK duplicados (NAK implcitos)


ACK duplicados respecto al ltimo octeto de datos recibido en secuencia
Posibilitan al Emisor detectar, a menudo, prdida de paquetes antes de que caduque el
Timeout Se reduce tiempo de espera para retransmitir
Si Emisor recibe tres (3) ACK duplicados Asume perdido el segmento que sigue al
segmento reconocido tres veces Emisor realiza una retransmisin rpida antes que
caduque el Timeout del segmento

Ejemplo en la siguiente figura 3.37


Tema 3: La capa de Transporte

45

TCP: Transferencia de datos fiable


Ejemplo de Retransmisin Rpida

Segundo segmento, con N de


secuencia 100, se retransmite antes
que caduque su Temporizador

Inicio del
Temporizador para
N de Sec = 100

Tema 3: La capa de Transporte

46

TCP: Transferencia de datos fiable


Poltica de generacin de ACKs por el Receptor TCP

Recomendacn segn RFCs 1122 y 2581


Receptor NO descarta segmentos fuera de secuencia
Suceso

Accin del Receptor TCP

Se recibe segmento con N de secuencia esperado. Ns


anteriores ya reconocidos

ACK retardado. Se espera 500 mseg la llegada de otro


segmento en secuencia. Si no llega, se enva ACK

Se recibe segmento con N de secuencia esperado. Hay


otro segmento en orden esperando transmisin de un
ACK

ACK nico acumulativo. Se reconocen ambos


segmentos ordenados

Se recibe segmento fuera de secuencia, con N mayor


que el esperado. Se detecta un hueco

ACK duplicado. Se enva de inmediato ACK con N de


secuencia del siguiente octeto esperado (lmite inferior
del hueco)

Se recibe segmento que completa parcial o totalmente


hueco en los datos recibidos

ACK inmediato. Se enva de inmediato ACK si el


segmento comienza en el lmite inferior del hueco
Tema 3: La capa de Transporte

47

TCP: Transferencia de datos fiable


TCP: Retroceder N (GBN) o Repeticin Selectiva (SR)?

TCP utiliza reconocimientos acumulativos


Segmentos bien recibidos, pero fuera de secuencia, NO se reconocen de
manera individual por el Receptor TCP

Emisor slo necesita mantener los Ns BaseEmision y SigNumSec (ver Fig. 3.19)

Muchas implementaciones TCP almacenan en el buffer del Receptor


segmentos fuera de secuencia
TCP provee retransmisin selectiva*
Por tanto, el procedimiento TCP para recuperacin de errores puede ser
considerado una solucin HBRIDA entre GBN y SR
Tema 3: La capa de Transporte

48

TCP: Control de flujo

Procedimiento TCP para frenar regular la velocidad de


transmisin de datos
Servicio de adaptacin de velocidades entre Emisor y Receptor

Objetivo No desbordar el buffer del Receptor TCP


El proceso de Aplicacin NO lee los datos del buffer en el instante de
llegada, hay cierta demora mayor o menor

Importante
Control de flujo NO ES LO MISMO que control de la congestin, si bien
ambos conllevan a frenar al Emisor

Se aplican por razones diferentes

Tema 3: La capa de Transporte

49

TCP: Control de flujo


Procedimiento TCP para control de flujo

Se supone descarte de segmentos fuera de secuencia


Receptor gestiona un buffer de recepcin
Emisor conoce valor de la variable ventana de recepcin

Ventana de recepcin
Variable que conoce Emisor TCP
Proporciona informacin del espacio libre en el buffer del Receptor

Tamao del buffer = BufferRecepcion


Variables asociadas al buffer:

UltimoByteLeido
UltimoByteRecibido
Tema 3: La capa de Transporte

50

TCP: Control de flujo


Procedimiento TCP para control de flujo

UltimoByteRecibido UltimoByteLeido BufferRecepcion

VentanaRecepcion = BufferRecepcion [UltimoByteRecibido UltimoByteLeido]

VentanaRecepcion Variable dinmica, vara en el tiempo

Tema 3: La capa de Transporte

51

TCP: Control de flujo


Procedimiento TCP para control de flujo

Variable VentanaRecepcion y Control de Flujo


Receptor notifica espacio libre en su buffer mediante el campo ventana de
recepcin en cada segmento que transmite 8
Receptor inicialmente establece:

VentanaRecepcion = BufferRecepcion

Emisor

Controla las variables UltimoByteEnviado y UltimoByteReconocido

UltimoByteEnviado UltimoByteReconocido = Cantidad de datos NO reconocidos

Garantiza, para todo el tiempo de vida de la conexin TCP:

UltimoByteEnviado UltimoByteReconocido VentanaRecepcion

Tema 3: La capa de Transporte

52

TCP: Control de flujo


Procedimiento TCP para control de flujo: PROBLEMA

Si Receptor:
Buffer lleno VentanaRecepcion = 0 Se notifica al Emisor
NADA que enviar Proceso de Aplicacin saca datos del buffer, pero NO enva
segmentos al Emisor (ni siquiera ACKs)

Emisor NO es informado de la disponibilidad de espacio en el buffer del Receptor

Emisor bloqueado, NO enva datos

SOLUCIN
Cuando Emisor conoce que el Receptor tiene lleno el buffer (VentanaRecepcion = 0)

NO se envan segmentos con nuevos valores VentanaRecepcion

Debe continuar enviando segmentos con slo un octeto de datos


Estos segmentos sern reconocidos por el Receptor Emisor ser notificado cuando el
Receptor disponga de espacio libre en su buffer Emisor NO queda bloqueado

Ver Applet que ilustra funcionamiento de la ventana de recepcin en:


http://media.pearsoncmg.com/aw/aw_kurose_network_4/applets/flow/FlowControl.htm

Tema 3: La capa de Transporte

53

TCP: Gestin de la conexin

Gestin de conexin Control del establecimiento y terminacin


de la conexin TCP
Tras este procedimiento subyacen dos cosas muy importantes

Puede aumentar SIGNIFICATIVAMENTE el retardo entre sistemas finales


Muchos de los ataques de red ms comunes explotan las vulnerabilidades intrnsecas
de la gestin de conexin TCP

Establecimiento de la conexin TCP

Tres pasos Tres fases Tres segmentos especiales (de control)


Acuerdo en tres fases

Terminacin de la conexin TCP

Cuatro pasos Cuatro fases Cuatro segmentos especiales (de control)

Tema 3: La capa de Transporte

54

TCP: Gestin de la conexin


Pasos para establecer una conexin TCP
Paso 1
Cliente

Selecciona de manera aleatoria el N de secuencia inicial (cliente_nsi)

Requiere procedimiento apropiado para evitar ciertos ataques de seguridad

Enva segmento SYN

Campo N de secuencia = cliente_nsi


Indicador SYN activado SYN = 1 Informacin de control
Indicador ACK desactivado ACK = 0
NO contiene datos

Tema 3: La capa de Transporte

55

TCP: Gestin de la conexin


Pasos para establecer una conexin TCP
Paso 2
Servidor

Recibe segmento SYN


Asigna buffer y variables a la conexin

Vulnerabilidad (ataque denegacin de servicio)

Enva segmento conexin aceptada (Segmento SYN-ACK)

NO contiene datos
Contiene informacin de control
(nsi = nmero de secuencia inicial)
Campo N de secuencia = nsi_servidor (seleccionado de manera aleatoria)
Campo N de reconocimiento = nsi_cliente + 1
Indicador SYN activado SYN = 1
Indicador ACK activado ACK = 1
Tema 3: La capa de Transporte

56

TCP: Gestin de la conexin


Pasos para establecer una conexin TCP
Paso 3
Cliente

Recibe segmento SYN-ACK


Asigna buffer y variables a la conexin
Enva segmento reconocimiento de conexin aceptada

Contiene informacin de control


Campo N de reconocimiento = servidor_nsi + 1
Indicador SYN desactivado SYN = 0
Indicador ACK activado ACK = 1
Puede contener datos

Tema 3: La capa de Transporte

57

TCP: Gestin de la conexin

Pasos para establecer una


conexin TCP*
Acuerdo en tres fases
Parte que inicia la conexin
acta como Cliente
Una vez establecida la
conexin, las partes pueden
intercambiar datos mediante
segmentos de datos

En el mismo segmento con ACK


Indicador SYN = 0

Tema 3: La capa de Transporte

58

TCP: Gestin de la conexin


Pasos para cerrar una conexin TCP

Paso 1
Parte que inicia

Paso 2
La otra Parte

Enva (devuelve) segmento ACK

Paso 3
La otra parte

Enva segmento FIN Indicador FIN activado FIN = 1

Enva segmento FIN Indicador FIN activado FIN = 1

Paso 4
Parte que inici

Enva (devuelve) segmento ACK

Tema 3: La capa de Transporte

59

TCP: Gestin de la conexin

Pasos para cerrar una


conexin TCP
Cualquiera de las partes puede
cerrar la conexin
Conexin terminada:

Se liberan recursos utilizados

Buffer y variables
Ns de puerto

Tiempo de espera* por si


hay que re-enviar el ACK.
Timeout dependiente de la
Aplicacin. Valores tpicos:
30, 60 y 120 segundos

Los Ns de Secuencia se
utilizan igual que en la fase de
establecimiento de la conexin

Tema 3: La capa de Transporte

60

TCP: Gestin de la conexin


Estados TCP en el lado Cliente. Lado Cliente inicia el cierre de la conexin
Este diagrama slo muestra el
establecimiento y cierre normal
de una conexin TCP.
Otros escenarios ms complejos
se pueden presentar en la
prctica. Ver fuente sugerida en
el libro de texto (pgina 252).
Este diagrama corresponde con
la figura 3.40 del libro de texto,
donde se muestran
explcitamente los cuatro pasos
para el cierre de la conexin TCP

Tema 3: La capa de Transporte

61

TCP: Gestin de la conexin


Estados TCP en el lado Servidor. Lado Cliente inicia el cierre de la conexin
Este diagrama slo muestra el
establecimiento y cierre normal
de una conexin TCP.
Otros escenarios ms complejos
se pueden presentar en la
prctica. Ver fuente sugerida en
el libro de texto (pgina 252).
Este diagrama corresponde con
la figura 3.40 del libro de texto,
donde se muestran
explcitamente los cuatro pasos
para el cierre de la conexin TCP

Tema 3: La capa de Transporte

Diagrama de
Estados de
TCP

Estados

LISTEN: A la espera de peticiones de conexin


SYN-SENT: A la espera de confirmacin de peticin del otro extremo tras
enviar una peticin de conexin.
SYN-RECEIVED: A la espera de ACK tras haber enviado y recibido peticin
(SYN)
ESTABLISHED: Conexin establecida. Estado de transferencia de datos
FIN-WAIT-1 : A la espera de peticin remota de terminacin o asentimiento
de la peticin de terminacin enviada.
FIN-WAIT-2 : A la espera de peticin de terminacin del extremo remoto.
CLOSE-WAIT: A la espera de peticin de terminacin del usuario local
CLOSING: A la espera de asentimiento remoto a peticin de terminacin
de conexin.
LAST-ACK A la espera de asentimiento de la peticin de terminacin de
conexin previamente enviada al TCP remoto, lo que incluye asentmiento
de su peticin de terminacin de conexin
TIME-WAIT: Espera del tiempo suficiente para asegurar que el TCP
remoto recibi el asentimiento a su peticin de terminacin
CLOSED : Conexin eliminada

Establecimiento de conexin

Establecimiento
normal (Cl-S)

Conexin
simultnea
(colisin)

Three Way
Handshake:
Diagrama de
estados
completo

66

TCP: Gestin de la conexin

Indicador RST de la cabecera TCP

Se utiliza en el segmento especial de reinicio


Indicador RST activado RST = 1
Para indicar cosas como:

No existe socket activo para la direccin IP o puerto origen de la solicitud*


Servidor NO est escuchando por el puerto al que el Cliente enva segmento SYN
Reiniciar conexin cuando se han producido errores o cada de la conexin

Tema 3: La capa de Transporte

El empleo de nmeros de secuencia en


SYN y ACK evita errores de
establecimiento debidos a SYNs y ACKs
retrasados

El nmero de
secuencia permite
identificar la
conexin fallida a
resetear

Liberacin de conexin

Liberacin ordenada e independiente por cada uno de


los sentidos de transmisin.
El extremo que desea cesar de transmitir enva
segmento con FIN (como un octeto ms), que debe ser
confirmado por el corresponsal con FIN, ACK.
Para liberar de forma destructiva se emplea el bit RST.
No se confirma.

Cierres de conexin

Normal

3 vas

Simultneo
Cierre de tres vas:

Partido

estados TCP izquierdo derecho

Recuperacin de fallos

Si se produce restart en uno de los dos sistemas, se pierde la informacin de estado y las
conexiones activas
Quedan las conexiones medio abiertas (en el lado que no ha cado)

Se cierran mediante temporizador Keepalive

Esperar ack tras varias retransmisiones del segmento


Cierra la conexin y notifica a la aplicacin

El lado que ha cado y se recupera puede enviar RSTs al otro para cerrar rpidamente
las conexiones.
El manejo a nivel de aplicacin de la reconexin es resp. del usuario. Peligro de
inconsistencia de datos.

72

La capa de Transporte
Principios del control de congestin

73

Tema 3: La capa de Transporte


3.1 La capa de Transporte y sus servicios
3.2 Multiplexaccin y demultiplexacin
3.3 Transporte sin conexin: UDP
3.4 Principios de transferencia de datos fiable
3.5 Transporte orientado a conexin: TCP
3.6 Principios del control de congestin
3.7 Mecanismo de control de congestin de TCP

Tema 3: La capa de Transporte

74

Principios de control de la congestin

Congestin de la red
Desbordamiento de los Buffers de los Routers a consecuencia del
aumento del trfico en la red

Descarte/prdida de paquetes por los Routers TCP responde retransmitiendo


Reduccin del rendimiento ofrecido a las Aplicaciones

Retransmisin de paquetes (mecanismo de fiabilidad)

Se ocupa de un sntoma de la congestin

A veces puede ser peor el remedio que la enfermedad

NO se ocupa de la causa de la congestin

Muchos emisores generando trfico a velocidades mayores que las recomendables en


situaciones concretas

Tema 3: La capa de Transporte

75

Principios de control de la congestin

Retos ante la congestin de la red


Evitacin de la congestin

Procedimientos adecuados para evitar la congestin

Solucin de la congestin

Reaccin adecuada ante la congestin

Procedimientos adecuados para regular el flujo de datos cuando aparezcan sntomas


de congestin

Control de la congestin Evitacin y Solucin

Uno de los problemas ms importantes de las redes de computadores,


junto a la transferencia fiable

Tema 3: La capa de Transporte

76

Mtodos de control de congestin

De manera general, las tcnicas para control de congestin se


pueden clasificar atendiendo a:
La capa de Red NO interviene

Control de congestin terminal a terminal

La capa de Red interviene

Control de congestin asistido por la red

Tema 3: La capa de Transporte

77

Mtodos de control de congestin

Control de congestin terminal a terminal


La capa de Red NO provee soporte explcito a la capa de Transporte

Es el caso de TCP

La congestin tiene que ser inferida por los Sistemas Finales

A partir slo del comportamiento observado de la red, p.e:

Prdida de segmentos TCP


Por vencimiento del Timeout, tres ACKs duplicados
Retardos crecientes

Tema 3: La capa de Transporte

78

Mtodos de control de congestin

Control de congestin asistido por la red


Los Routers (capa de Red) proporcionan notificacin explcita al Emisor,
indicando el estado de congestin de la Red

Mediante algn procedimiento de realimentacin al Emisor

Se utiliza, p.e:

En redes ATM, en el mecanismo de control de congestin ABR

ABR: Available Bit-Rate

Propuesto tambin para redes TCP/IP

Bits ECN de cabecera IP

ECN: Explicit Congestion Notification

En la prctica NO se utiliza

Tema 3: La capa de Transporte

79

Mtodos de control de congestin


Control de congestin asistido por la red

Dos posibles formas de notificacin explcita al Emisor

Notificacin directa al Emisor desde un Router del trayecto, o

Notificacin indirecta al Emisor desde un Router del trayecto


Router marca/actualiza un campo del paquete de datos que va de Emisor a Receptor

Entonces, Receptor notifica al Emisor Tiempo de notificacin > RTT entre los Sistemas finales
Tema 3: La capa de Transporte

80

La capa de Transporte
Mecanismo de control de congestin de TCP

Tema 3: La capa de Transporte


81

3.1 La capa de Transporte y sus servicios


3.2 Multiplexaccin y demultiplexacin
3.3 Transporte sin conexin: UDP
3.4 Principios de transferencia de datos fiable
3.5 Transporte orientado a conexin: TCP
3.6 Principios de control de congestin
3.7 Mecanismo de control de congestin de TCP
3.7.1 Equidad

Tema 3: La capa de Transporte

Mecanismos de control de congestin de TCP


82

TCP utiliza control de congestin terminal a terminal


La capa de Red (IP) no provee realimentacin explcita para notificacin de congestin

Emisor TCP regula la velocidad de transmisin de segmentos


En funcin de la congestin de red percibida

No congestin Aumenta velocidad de transmisin


Congestin Reduce velocidad de transmisin

Entonces, en relacin con la lgica TCP, caben tres cuestiones:

Cmo limita TCP la velocidad de transmisin?


Cmo percibe TCP la congestin de la red?
Qu algoritmo utiliza para actuar en consecuencia?
Cmo aprovecha al mximo el ancho de banda sin congestionar?

Tema 3: La capa de Transporte

Mecanismos de control de congestin de TCP


83

Cmo limita (regula) TCP la velocidad de transmisin?


En base a la variable VENTANA DE CONGESTIN

VENTANA DE CONGESTIN (VC)


Impone restricciones a la velocidad mxima que el Emisor puede operar
Debe ser grande en cada momento, sin llegar a provocar congestin
Valor lmite de la Ventana del Emisor

Ventana del Emisor (VE):

N de octetos que se pueden enviar sin esperar ACKs


Mnimo {Ventana de Congestin, Ventana de Recepcin}

Debe cumplirse, en el Emisor:


(ltimoByteEnviado ltimoByteReconocido) Min {VentanaCongestin, VentanaRecepcin}
N de octetos pendientes de ACKs

Ventana del Emisor


Tema 3: La capa de Transporte

Mecanismos de control de congestin de TCP


84

SUPUESTOS, para centrarnos en el control de la congestin:


Buffer del Receptor TCP muy grande

No se requiere Control de Flujo

(ltimoByteEnviado ltimoByteReconocido) VentanaCongestin

Emisor siempre tiene datos para enviar

Todos los segmentos de la VentanaCongestin son enviados

No prdida de segmentos y retardo de transmisin despreciable

Velocidad de Transmisin VC / RTT


Ajustando el valor VentanaCongestin Emisor puede ajustar (regular) la
velocidad de transmisin de datos

Tema 3: La capa de Transporte

Mecanismos de control de congestin de TCP


85

Cmo percibe TCP la congestin?


Mediante el suceso prdida de segmento

Se reduce velocidad de transmisin

A partir del vencimiento del TIMEOUT o tres ACKs duplicados

Cmo percibe TCP la NO congestin?


Se reciben ACKs

Se aumenta tamao de la Ventana de Congestin


Se aumenta velocidad de transmisin

Se reciben ACKs lentamente

Debido a retardos elevados y/o enlaces lentos


Incremento lento de la Ventana de Congestin

Se reciben ACKs rpidamente

Incremento rpido de la Ventana de Congestin

TCP es auto-temporizado
Rapidez de incremento de
la Ventana de Congestin
en funcin de la frecuencia
de los ACKs

Tema 3: La capa de Transporte

Mecanismos de control de congestin de TCP


86

Resumiendo
TCP utiliza ACKs y sucesos de prdidas de segmentos como indicadores del estado
de la red

Suceso prdida de segmentos: vencimiento Timeout o 3 ACKs duplicados


A la recepcin de ACKs La red est entregando segmentos

Prdida de segmento Congestin

Emisor aumenta la VC Aumenta velocidad de transmisin. Cmo la aumenta?


Emisor reduce la VC Reduce velocidad de transmisin. Cmo la reduce?

Tanteo del ancho de banda: incremento de la VC (la velocidad de transmisin)

Y observa lo que le va llegando

Cada Emisor TCP reacciona a su propia situacin, de manera independiente

Buscando mxima velocidad de emisin sin congestionar la red

Compromiso:

Si emisor transmite demasiado rpido Congestin


Si emisor demasiado cauteloso Infrautilizar recursos
Tema 3: La capa de Transporte

Algoritmo de control de congestin de TCP


87

Estndar RFC 2581


Consta de tres componentes (modos):
Arranque Lento (Slow Start)

Evitacin de la Congestin (Congestion Avoidance)

Obligatorio en TCP

Recuperacin Rpida (Fast Recovery)

Obligatorio en TCP

Recomendable, NO obligatorio en TCP

Arranque Lento y Evitacin de la Congestin


En ambos, incremento del tamao de la Ventana de Congestin

Pero ms rpido en Arranque lento


Tema 3: La capa de Transporte

Algoritmo de control de congestin de TCP: Modos


88

Arranque Lento (AL)

Cuando se inicia la conexin TCP, normalmente:


Umbral: variable de estado TCP, relativa al control de congestin.

Ventana de Congestin (inicial) = VC = 1 MSS


Velocidad de transmisin inicial = Vi MSS/RTT

Por ejemplo:

Valor estimado a partir del cual puede ocurrir congestin


Valor inicial = 64KB

Si MSS = 500 octetos y RTT = 200 mseg.


Vi 20 kbps

Luego:
Valor de la VC se incrementa 1 MSS por cada primer ACK de un segmento
transmitido

Ver ejemplo siguiente (Fig. 3.51)

Tema 3: La capa de Transporte

Algoritmo de control de congestin de TCP: Modos


89

Ejemplo de Arranque Lento TCP


Inicialmente VC = 1 MSS

Se enva primer segmento

Se espera, y se recibe, el primer ACK

Emisor incrementa VC en 1 MSS VC = 2 MSS

Se envan dos segmentos

Se esperan, y se reciben, los dos ACKs

Emisor incrementa VC en 1 MSS por cada ACK


VC = 4 MSS

Se envan cuatro segmentos

Y as sucesivamente

La velocidad de transmisin:

Se duplica por cada perodo RTT


Crece exponencialmente durante la fase de
Arranque Lento

Figure 3.51

Tema 3: La capa de Transporte

Algoritmo de control de congestin de TCP: Modos


90

Arranque Lento (AL)

Cundo finaliza el Arranque Lento, y el incremento exponencial de la


velocidad?
El modo Arranque Lento puede finalizar en cualquiera de las tres situaciones siguientes:

Vencimiento del Timeout

Valor VC = Umbral

Recepcin de tres ACKs duplicados

Vase transparencia siguiente

Tema 3: La capa de Transporte

Algoritmo de control de congestin de TCP: Modos


91

Arranque Lento (AL) finaliza cuando:


Vencimiento del Timeout
Fin de Timeout Segmento perdido Se asume congestin en la red
Emisor TCP:

Redefine e inicializa la variable de estado Umbral, que establece el Umbral de Arranque Lento:
Umbral = 0,5 (Valor VC cuando se detecta congestin)
Establece VC = 1 MSS
Inicia nuevamente el modo Arranque Lento

Valor VC = Umbral

Se asume que la red NO est congestionada, pero podra pronto congestionarse


Se pasa al modo Evitacin de la Congestin

Recepcin de tres ACKs duplicados

Se asume congestin en la red, pero menos severa que por vencimiento del Timeout
Umbral = 0,5 (Valor VC cuando se detecta congestin)
VC = Umbral + 3
Se pasa al modo Recuperacin Rpida
Tema 3: La capa de Transporte

Algoritmo de control de congestin de TCP: Modos


92

Evitacin de la congestin (EC)

Al entrar en el estado Evitacin de la Congestin, se tiene:

VC = 64 KB, si antes NO se detect congestin, o

VC 0,5 [VC cuando se detect congestin por ltima vez]

Se puede estar al borde de la congestin

Entonces, incremento del valor de la VC de la siguiente manera:

Un MSS por cada RTT

(1 / VC) MSS por cada ACK recibido Un MSS cada vez que se recibe un N de ACKs = VC

VC VC + MSS (MSS / VC)

Mtodo ms conservador que el Arranque Lento, NO se duplica la VC

Ejemplo:

Si MSS = 1460 B y VC = 14600 B MSS / VC = 1 / 10


Por cada ACK la VC se incrementa en un valor igual a MSS / 10
Se enviarn 10 segmentos en un RTT
La VC aumenta en un MSS despus de los ACKs de los 10 segmentos
Tema 3: La capa de Transporte

Algoritmo de control de congestin de TCP: Modos


14

Evitacin de la congestin (EC)

Cuando cesa el incremento lineal de la VC (1 MSS por cada RTT)?


Cuando vence el Timeout Prdida de segmento

dem al caso de Arranque Lento

Umbral = 0,5 (VC cuando se produce la prdida del segmento)


Establece VC = 1 MSS

Se pasa al modo Arranque Lento

Cuando se reciben tres ACKs duplicados Prdida de segmento

Pero la red est entregando segmentos, el receptor est recibiendo segmentos, as lo indica la llegada de
ACKs duplicados
Por tanto, TCP se comporta de manera menos drstica que cuando vence el Timeout, y establece:

Umbral = 0,5.(VC cuando se recibieron los tres ACKs)


VC para dos/tres posibles implementaciones:

VC = Umbral + 3 o VC = Umbral (se pasa al modo Recuperacin Rpida), o

VC = 1 MSS (se pasa al modo Arranque Lento)


Y se retransmite el segmento perdido

Ver
diapositiva 16

Tema 3: La capa de Transporte

Algoritmo de control de congestin de TCP: Modos


94

Recuperacin Rpida (RR)


Procedimiento recomendado, NO obligatorio

La VC se incrementa en un MSS por cada ACK duplicado


ACK relativo al segmento que falta, que condujo a entrar al modo RR

Y se transmite un nuevo segmento si lo permite el valor VC

Cuando se recibe el ACK para el segmento que falta, entonces:


Se reduce valor de la VC VC = Umbral

VC VC + MSS

Umbral = 0,5 (VC cuando se produjo la congestin)

Se pasa al modo Evitacin de la Congestin

Cuando vence el Timeout

Umbral = 0,5 (Valor VC cuando vence el Timeout)

Se establece VC = 1 MSS

Se pasa al modo Arranque Lento


Tema 3: La capa de Transporte

Algoritmo de control de congestin de TCP: Modos


16

Ocho primeros ciclos de transmisin

Tahoe y Reno, dem

Umbral inicial: 8 MSS

Hasta el 4 ciclo de transmisin

Del 4 al 8 ciclo de transmisin

A partir del 9 ciclo de transmisin


Tahoe y Reno diferentes

TCP Reno VC cae hasta 9 o 6 MSS. Nuevo Umbral = 6 MSS

VC crece linealmente (lnea ROJA o lnea NEGRA)

TCP Tahoe VC cae hasta 1 MSS. Nuevo Umbral = 6 MSS

VC crece exponencialmente hasta nuevo Umbral

A partir del nuevo Umbral, VC crece linealmente

VC crece exponencialmente (modo AL)


VC crece linealmente (modo EC)

8 ciclo de transmisin, 3 ACKs duplicados

TCP Tahoe

Versin anterior de TCP

3 ACKs duplicados Se pasa al modo AL

TCP Reno

Versin actual y ms utilizada de TCP


3 ACKs duplicados Se pasa al modo RR con
nuevo Umbral
Tema 3: La capa de Transporte

Algoritmo de control de congestin de TCP: Modos-Estados


96
ACK duplicado
ContadorACK++

VC = 1 MSS
umbral = 64 KB
contadorACKdupl = 0

Arranque
lento

Fin Timeout
umbral = VC/2
VC = 1 MSS
contadorACKdupl = 0
Retransmitir Segmento que falta

contadorACKduplicado == 3

ACK nuevo
VC = VC + MSS
ContadorACKdupl = 0
Transmitir seg. nuevo(s) cdo sea posible
VC umbral

Fin Timeout
umbral = VC/2
VC = 1 MSS
contadorACKdupl = 0
Retransmitir segmento que falta

Fin Timeout
umbral = VC/2
VC = 1
contadorACKdupl = 0
Retransmitir segmento que falta

ACK nuevo
VC = VC + MSS(MSS/VC)
contadorACKdupl = 0
Transmitir segmento(s) nuevo(s) cuando sea posible

Evitacin
de la
congestin
ACK duplicado
contadorACKdupl ++

Nuevo ACK
VC = umbral
contadorACKdupl = 0
contadorACKdupl == 3
umbral= VC/2
VC = umbral + 3
Retransmitir segmento que falta

umbral = VC/2
VC = umbral + 3
Retransmitir segmento que falta

Recuperacin
rpida

Figura 3.52

ACK duplicado
VC = VC + MSS
Transmitir segmento(s) nuevo(s) cuando sea posible

Tema 3: La capa de Transporte

Control de congestin TCP: AIMD


97

Supuestos:
Se ignora fase inicial de Arranque Lento, y
Prdida de segmentos slo por recepcin de tres ACKs duplicados

Bajo tales supuestos, se suele plantear que:


Control de congestin TCP es de la forma AIMD:

CRECIMIENTO ADITIVO DECRECIMIENTO MULTIPLICATIVO

AIMD: Additive-Increase, Multiplicative-Decrease

Tema 3: La capa de Transporte

Control de congestin TCP: AIMD


98

Control de congestin TCP AIMD

Aumento lineal del tamao de la VC


Aumento lineal de la velocidad de
transmisin

Comportamiento en forma de diente de sierra

Tres ACKs duplicados


VC 0,5VC

Decrecimiento multiplicativo

Nuevamente crecimiento lineal de la VC

Tanteo para detectar disponibilidad de Figure 3.54


ancho de banda

AIMD de TCP: algoritmo que posibilita optimizar:

Prestaciones a los usuarios, y

Rendimiento de la red
Tema 3: La capa de Transporte

Tasa de transferencia de TCP


99

Ignorando las fases de Arranque Lento (de muy corta duracin):


La velocidad de transmisin en una conexin TCP tiene un comportamiento del tipo
diente de sierra
A largo plazo, y bajo las siguientes suposiciones:

La velocidad de transmisin vara entre W/2.RTT y W/RTT, de manera lineal

La red descarta un paquete cuando la velocidad alcanza el valor W/RTT

W: tamao de VC cuando se produce prdida de un segmento


W y RTT aproximadamente constantes durante la conexin

La velocidad se reduce a la mitad: W/2RTT


A continuacin va aumentando a razn de MSS/RTT cada RTT, hasta que llega nuevamente al
valor W/RTT

Proceso que se repite una y otra vez

Entonces
Tema 3: La capa de Transporte

Tasa de transferencia de TCP


100

Tasa de transferencia media de TCP

Bajo las consideraciones de la transparencia anterior, se tiene:


TTM-TCP = 0,75 W / RTT

Siendo:
TTM-TCP: Tasa de Transferencia Media de una conexin TCP
W: tamao de VC cuando se produce prdida de un segmento
RTT: tiempo de ida y vuelta

24

Tamao ventana
W
3W/4
W/2

Tema 3: La capa de Transporte

Tasa de transferencia de TCP


101

Tasa de transferencia media de TCP

Otra frmula para la TTM-TCP, en funcin de los siguientes parmetros:

L: tasa de prdidas
RTT: tiempo de ida y vuelta
MSS: tamao mximo del segmento

TTM -TCP = (1,22 MSS) / (RTTL)

25

Tema 3: La capa de Transporte

Equidad TCP
102

Para que CC-TCP sea equitativo, respecto al reparto del ancho de banda de
un enlace compartido, debe cumplirse:

Para:

K conexiones simultneas, sobre un enlace de velocidad R bps


Que:

Velocidad media de transmisin R/K bps , para cada conexin

Sin embargo, se ha demostrado que:


De manera aproximada, algoritmo AIMD reparte equitativamente el ancho de banda
Pero NO tan equitativamente, pues:

Sesiones con valores menores de RTT abren ms rpido sus VC

Disfrutan de mayor tasa de transferencia


Se apropian ms rpidamente del AB a medida que ste se va liberando en enlaces compartidos

Tema 3: La capa de Transporte

Equidad TCP
103

Ejemplo de equidad de reparto de AB con algoritmo AIMD de TCP


Enlace
cuello de botella

Figure 3.55

Supuestos:

Para cada conexin TCP: MSS, RTT, VC iguales


Misma tasa de transferencia por conexin
Se ignora fase de Arranque Lento
Ambas conexiones operando en modo AIMD
Ninguna otra conexin TCP, ni trfico UDP

Figure 3.56

Enlace cuello de botella, nico enlace:


Congestionado entre sistemas finales para cada conexin
Que limita la velocidad de trasferencia a las Aplicaciones
Tema 3: La capa de Transporte

Equidad TCP
104

Equidad y conexiones TCP en paralelo

Las conexiones TCP en paralelo son, por principio, anti-equitativas


No hay nada que impida a una Aplicacin, basada en TCP, utilizar varias conexiones en
paralelo

Aplicaciones con conexiones TCP en paralelo

Cosa muy comn en los Navegadores Web

Utilizacin de mayor fraccin de AB respecto a otras Aplicaciones mono-conexin


Rompe con la equidad que en principio provee el algoritmo AIMD

Dado que actualmente el trfico Web es dominante en Internet

Es muy comn la utilizacin de mltiples conexiones TCP en paralelo

Tema 3: La capa de Transporte

Equidad UDP
105

En contraste con TCP, UDP no regula la velocidad de transmisin de las


Aplicaciones

Las Aplicaciones sobre UDP emiten a su antojo Nada las frena

No cooperan para repartir equitativamente los recursos disponibles


No reducen la velocidad de transmisin ante situaciones de congestin

Resultado:

UDP NO provee control de congestin

Puede ocurrir que trfico UDP desproporcionado termine por expulsar al trfico TCP

En consecuencia:

Actualmente se investiga en mecanismos de control que impidan al trfico UDP expulsar,


y eventualmente reducir a cero, el trfico TCP en Internet

Tema 3: La capa de Transporte

Algoritmo TCP Vegas


106

Otra variante de algoritmo para control de congestin TCP


Intenta evitar congestin manteniendo una buena tasa de
transferencia
Idea bsica:
Detectar la congestin antes de que se pierda un segmento
Reducir velocidad de transmisin linealmente cuando se supone
prdida inminente de segmentos

Se predice observando el RTT

Mayor RTT Mayor congestin en la red

Tema 3: La capa de Transporte

EPLOGO del Tema 3: La capa de Transporte


107

Todo nuestro estudio de la capa de Transporte se ha basado en UDP y TCP


Protocolos fundamentales en las redes TCP/IP, en particular en Internet
Han demostrado ser suficientemente buenos, pero

Hay situaciones en que ni UDP ni TCP son satisfactorios


Consecuencia:
Se han desarrollado otros protocolos para la capa de Transporte:

RFC 4340

RFCs 2969 y 3286

SCTP: Stream Control Transmission Protocol

RFC 5348

DCCP: Datagram Congestion Control Protocol

TFRC: TCP-Friendly Rate Control

El futuro dir si son aceptados o no


Tema 3: La capa de Transporte

You might also like