Servicios de Red - ULPGC
Transcript of Servicios de Red - ULPGC
1
Tema 2: La capa de Transporte Servicios de Red 1
Servicios de Red
Tema 2La capa de Transporte
Estas transparencias son una adaptación de las ofrecidas por JFKurose/KWRoss de su libro “Redes de Computadores: Un enfoque Descendente Basado en Internet.Copyright 1996-2002
Tema 2: La capa de Transporte Servicios de Red 2
La capa de TransporteÍndice
1. Conceptos generales.2. La capa de transporte en Internet.3. Multiplexación y demultiplexación.4. Capa de Transporte en Internet.5. Protocolo de Transporte UDP.6. Principios de la transferencia fiable de datos.7. Protocolo de Transporte TCP.
2
Tema 2: La capa de Transporte Servicios de Red 3
Conceptos Generales
• La capa de transporte es la cuarta capa, vista en orden ascendente desde la capa física y es la primera de las denominadas orientadas a la aplicación.
• Es la primera cuya comunicación con su entidad par es extremo a extremo.
• Las capas inferiores intercambian unidades de datos “punto a punto” con el siguiente elemento de la red.
Aplicación
Presentación
Sesión
Transporte
Red
Enlace
Física
Sistema BSistema A
Aplicación
Presentación
Sesión
Transporte
Red
Enlace
FísicaFísica Física
Red Red
Enlace Enlace
Tema 2: La capa de Transporte Servicios de Red 4
Conceptos Generales
• La capa de transporte tiene como función ofrecer a la capa superior un recurso de mensajes fiable: libre de errores, en orden y sin duplicidades para garantizar la integridad extremo a extremo.
– Esta integridad se consigue utilizando reconocimientos ACK para indicar que las PDUs han sido recibidas satisfactoriamente.
• La capa de transporte deberá asegurar la calidad de servicio solicitada por la capa superior independientemente de la calidad de la red o subredes.
• Proporcionar servicios de comunicación directamente a la capa de aplicación que se ejecutan directamente sobre hosts diferentes
3
Tema 2: La capa de Transporte Servicios de Red 5
• Un protocolo de la capa de transporte:
- Proporciona una comunicación lógica entre los procesos deaplicaciones ejecutándose en diferentes máquinas.
Por comunicación lógica se quiere decir que las máquinas estándirectamente conectadas aunque en realidad las máquinas estén en
sitios diferentes conectados mediante routers y enlaces
- Los protocolos de transporte son implementados entre los usuariosfinales y no en los routers de la red.
- Los mensajes de las aplicaciones son convertidas en T-PDUs (PDU-4)
Conceptos Generales
Tema 2: La capa de Transporte Servicios de Red 6
Router
Router
Router
Router
Router
AplicaciónTransporte
RedEnlaceFísica Red
EnlaceFísica
Router
Router
Router
AplicaciónTransporte
RedEnlaceFísica
Comunicación lógica entre los procesos de aplicación
Las aplicaciones usan esta comunicación lógica que proporciona la capa de transporte para enviar los
mensajes libre de preocupacionesde la capa física
Emisor: fragmenta los mensajesde aplicación en segmentos y
los pasa a la capa de red
Receptor: reagrupa los segmentos en mensajes y lospasa a la capa de aplicación
4
Tema 2: La capa de Transporte Servicios de Red 7
Relación entre la capa de transporte y la de red
- La capa de transporte proporciona una comunicación lógica entrelos procesos de aplicaciones ejecutándose en diferentes máquinas.
- La capa de red proporciona una comunicación lógica entre hosts
Tema 2: La capa de Transporte Servicios de Red 8
Protocolo de Red
Protocolo de
Transporte
Protocolo de
Transporte
Mensajes de aplicaciones
Protocolo de Transporte realiza su tarea dentro del sistema
Relación entre la capa de transporte y la de red
- Los protocolos de transporte pueden ofrecer un modelo de serviciodiferente a las aplicaciones.
5
Tema 2: La capa de Transporte Servicios de Red 9
La capa de Transporte en Internet
– Servicio de transporte en Internet:- Orientados a conexión (connection-oriented, CO).- No orientados a conexión (connection-less, CL).
El servicio orientado a conexión es un servicio seguro extremo a extremo que se utiliza sobre redes inseguras que pueden perder, dañar, almacenar o duplicar paquetes.
Los servicios que un protocolo de transporte puede ofrecer están condicionados por el modelo de servicio del protocolo de la capa de red subyacente.
Si la capa de red no garantiza un retardo máximo o un ancho de banda mínimo para las T-PDUs, la capa de transporte tampoco lo puede garantizar a la capa de aplicación.
Sin embargo la capa de transporte puede ofrecer ciertos servicios aunque la capa de red no.
Tema 2: La capa de Transporte Servicios de Red 11
La capa de Transporte en Internet
• Protocolos de transporte disponibles en Internet:
UDPTCP
y SCTP
6
Tema 2: La capa de Transporte Servicios de Red 12
La capa de Transporte en Internet
Hay 3 protocolos:
- UDP: User Data Protocol(ofrece un servicio no orientado a conexión)- Extensión sin adornos de IP
- TCP: Transport Control Protocol(ofrece un servicio orientado a conexión)- Control de congestión.- Control de flujo.- Sistema de conexión.
- SCTP: Stream Control Transmission Protocol(ofrece un servicio orientado a conexión orientado a aplicaciones de tiempo real)
Tema 2: La capa de Transporte Servicios de Red 13
La capa de Transporte en Internet
Responsabilidad de los protocolos de transporte:
- Asegurar el transporte de los mensajes de proceso a procesoMultiplexación y Demultiplexación
- Integridad en la información añadiendo campos de detecciónde errores en la cabecera.
- Transferencia fiable de los datos: entrega de los mensajes demanera correcta, ordenada(control de flujo, números de secuencia, ACK y temporizadores)
- Control de congestión.(es un servicio dirigido a la red y no tanto a la aplicación)
UDP
TCP
7
Tema 2: La capa de Transporte Servicios de Red 14
Multiplexación y Demultiplexación
Multiplexación Demultiplexación
Tema 2: La capa de Transporte Servicios de Red 15
Multiplexación y Demultiplexación
Aplicación
P1 P2 Pn
Transporte
Red
Socket
DemultiplexaciónMultiplexación
identificador único
conjuntos de campos que permiten la
identificación del socket
8
Tema 2: La capa de Transporte Servicios de Red 16
Multiplexación y Demultiplexación
• Cada socket tiene un identificador único.(En un momento dado en un máquina puede haber más de un socket)
• En el segmento de la capa de transporte hay campos para esta información.
Puerto fuente # Puerto destino #
Otros campos de la cabecera
Datos de Aplicación(mensaje)
32
Tema 2: La capa de Transporte Servicios de Red 17
Multiplexación y Demultiplexación
• Cada puerto tiene 16 bits: 0 a 65535 posibilidades de numeración.
• Los puertos de 0 a 1023 están reservados para protocolos deaplicaciones conocidas: HTTP (número 80), FTP (número 21), …
http://www.iana.org [RFC 3232]
Cuando diseñamos una aplicación debemos asignar un número de puerto
9
Tema 2: La capa de Transporte Servicios de Red 18
Multiplexación y Demultiplexación UDP
Un socket UDP queda completamente definido por la 2-tupla:dirección IP destino + número puerto destino
Puerto fuente A Puerto destino C
IP fuente A IP destino C
Segmento 1
Puerto fuente B Puerto destino C
IP fuente B IP destino C
Segmento 2
Los 2 segmentos serán direccionados al mismo proceso destino
¿Para qué sirve la información del puerto fuente?
Tema 2: La capa de Transporte Servicios de Red 19
Multiplexación y Demultiplexación UDP
Host A Servidor
Puerto fuente19157
Puerto dest.46428
...
Puerto fuente46428
Puerto dest.19157
...
10
Tema 2: La capa de Transporte Servicios de Red 20
Multiplexación y Demultiplexación TCPUn socket TCP queda completamente definido por la 4-tupla:
dirección IP fuente + número puerto destinodirección IP destino + número puerto destino
Cuando un segmento TCP llega a una máquina, se utiliza los 4 valores para demultiplexar el segmento al apropiado socket
Los 2 segmentos serán direccionados a procesos diferentes, distintos sockets
Puerto fuente A Puerto destino A
IP fuente A IP destino A
Segmento 1
Puerto fuente B Puerto destino A
IP fuente B IP destino A
Segmento 2
Tema 2: La capa de Transporte Servicios de Red 21
Servidor Web B
Puerto fuente26145
Puerto dest.80
IP fuente A IP dest. B
Puerto fuente7532
Puerto dest.80
IP fuente A IP dest. B
Cliente Web A
Cliente Web C
Puerto fuente26145
Puerto dest.80
IP fuente C IP dest. B
Multiplexación y Demultiplexación TCP
11
Tema 2: La capa de Transporte Servicios de Red 22
La capa de Transporte en Internet
• Protocolos de transporte disponibles en Internet:
UDPTCP
y SCTP
Tema 2: La capa de Transporte Servicios de Red 23
• UDP [RFC 768]- Protocolo no orientado a conexión.
- No hay acuerdo entre el emisor UDP y receptor.- Cada segmento es tratado de manera independiente de los demás.
- Servicio de transferencia de datos no fiable.- No hay garantías de que el mensaje llegue al proceso receptor. - Los mensajes pueden llegar al receptor desordenados.
Funciones de multiplexación/demultiplexación.
- Comprobación de errores.
- No hay mecanismos de control de congestión.
- UDP no proporciona ninguna garantía del retardo.
Protocolo no orientado a conexión UDP
12
Tema 2: La capa de Transporte Servicios de Red 24
Protocolo no orientado a conexión UDP
El protocolo UDP se usa:- Sin establecimiento, no introduce retardos. Ejemplo DNS.
- No mantiene el estado de la conexión.
- Cabecera de los paquetes pequeños: 8 bytes.
- No hay control de los datos enviados
(TCP usa el protocolo de acuerdo de 3 fases antes de comenzar a transferir los datos.)
(TCP mantiene el estado de la conexión en el sistema final.)
(TCP emplea 20 bytes.)
(TCP utiliza control de flujo con confirmación de los datos enviados.)
Tema 2: La capa de Transporte Servicios de Red 25
Protocolo no orientado a conexión UDP
- UDP es un protocolo de entrega de datagramas, sin conexión y no confiable.
- No emplea acuses de recibo.
- No ordena los mensajes entrantes.
- No hay control de flujo. Los paquetes pueden llegar más rápido de lo que el receptor los puede procesar.
- Los mensajes se pueden perder, duplicar y llegar sin orden.
Un programa de aplicación que utiliza UDP acepta toda la responsabilidad de:
Manejo de problemas de confiabilidad, incluyendo pérdidas, duplicación, retraso de mensajes, entrega fuera de orden, pérdida de conectividad, ...
13
Tema 2: La capa de Transporte Servicios de Red 26
Protocolo no orientado a conexión UDP• Estructura de un segmento UDP
Puerto fuente # Puerto destino #
Datos de Aplicación(mensaje)
32
Longitud Checksum
- Puerto fuente y destino se utilizan para el demultiplexado.(Puerto fuente es opcional. Cuando no se utiliza toma el valor 0)
- Longitud del segmento total incluyendo la cabecera.- Checksum. Campo opcional. Si vale 0 no se ha calculado.
¿Qué ocurre si la suma de verificación vale 0?
Tema 2: La capa de Transporte Servicios de Red 27
Protocolo no orientado a conexión UDP• Pseudo-encabezado de UDP- La suma de verificación es evaluada con más campos de la que
está presente en el datagrama UDP- Utiliza un pseudo-encabezado, que no se envía con el segmento
UDP, ni se tiene en cuenta en el cálculo de la longitud de la cabecera.
Dirección IP origen
32
Dirección IP destinocero Proto Longitud UDP
El receptor ha de reemsamblar la pseudocabeceray recalcular la suma de verificación
14
Tema 2: La capa de Transporte Servicios de Red 28
Protocolo no orientado a conexión UDP- El encabezado de UDP identifica los puertos de origen y destino.- El encabezado IP identifica las máquinas de origen y destino.
¿Cómo se calcula la suma de verificación en el pseudo cabecero?
- Opción 1: UDP pide a la capa IP que le facilite las direcciones IP de origen y destino.
- Opción 2: UDP encapsule un segmento UDP en un datagrama IP. Obtenga las direcciones IP, calcule la suma de verificación y pase el datagrama a la capa IP para que termine de rellenar el cabecero.
Esta interacción entre IP y UDP viola la premisa básica de la estratificación por capas.
UDP está fuertemente integrado en el protocolo IP
Tema 2: La capa de Transporte Servicios de Red 29
¿Cómo se calcula la suma de verificación en el pseudo cabecero?
1. Se suman palabras de 16 bits.2. Y el resultado se complementa.3. En el receptor el resultado del campo checksum debe ser:
1111111111111111Se calcula teniendo en cuenta el campo checksum
Ejemplo:Palabra 1: 0110011001100110 Palabra 2: 0101010101010101Palabra 3: 0000111100001111
Resultado suma:1011101110111011 00001111000011111100101011001010
Palabra checksum: 0011010100110101
15
Tema 2: La capa de Transporte Servicios de Red 30
Protocolo no orientado a conexión UDP
¿Por qué UDP utiliza comprobación de errores si hay muchos protocolos de la capa de enlace que también lo hacen?
No hay garantías de que todos los enlaces entre el origen y el destino proporcionen comprobación de errores.
¿Qué hace UDP si hay errores?
- No hace nada.- Descarta el segmento.- Lo pasa al proceso de aplicación con un aviso de segmento dañado
Tema 2: La capa de Transporte Servicios de Red 31
Elementos de los protocolos de transporte orientados a conexión
• Transferencia confiable de datos
• Direccionamiento
• Establecimiento de una conexión
• Liberalización de una conexión
• Control de flujo
• Multiplexación y demultiplexación
16
Tema 2: La capa de Transporte Servicios de Red 32
Elementos de los protocolos de transporte
1. En la capa de enlace de datos, dos enrutadores se comunican a través de la capa física, en la capa de transporte es la subred.
2. En la capa de transporte se requiere el direccionamiento explícito de los destinos.
3. Se requieren buffers y control de flujo dinámico.
• El protocolo de transporte desempeña funciones similares a las de la capa de enlace. Sus diferencias están:
Tema 2: La capa de Transporte Servicios de Red 33
Elementos de los protocolos de transporte orientados a conexión
• Transferencia confiable de datos
• Direccionamiento
• Establecimiento de una conexión
• Liberalización de una conexión
• Control de flujo
• Multiplexación y demultiplexación
17
Tema 2: La capa de Transporte Servicios de Red 34
Principios de la transferencia de datos confiable- Es un problema de vital importancia en las redes de computadores.
- No es un objetivo únicamente de la capa transporte sino también de la capa de enlace y de aplicación.
- Con un canal fiable:no se corrompen los bits, ni se pierden, entrega en orden
Un protocolo de transporte fiable de datos significaIMPLEMENTAR esta abstracción del servicio
Tema 2: La capa de Transporte Servicios de Red 35
Principios de la transferencia de datos confiable
Capa de
aplicación
Capa de
transporte
datos datos
datos datos
proceso emisor
proceso receptor
canal fiable
canal no fiable
Servicio aportado Implementación del servicio
paquete paquete
tfd_enviar()
tnd_enviar()
entregar_datos()
tfd_recibir()
Protocolo de transferencia fiable
de datos (lado emisor)
Protocolo de transferencia fiable
de datos (lado receptor)
Capa de
red
18
Tema 2: La capa de Transporte Servicios de Red 36
Principios de la transferencia de datos confiable1. Transferencia fiable de datos sobre un canal fiable.
2. Transferencia fiable de datos sobre un canal con errores de bits.
Reconocimientos positivos y/o negativos.Protocolos ARQ, protocolos de parada-espera
- Detección de errores.- Realimentación del receptor: ACK, NAK.- Retransmisión.
¿Qué ocurre si los ACK o los NAK se corrompen?
Tema 2: La capa de Transporte Servicios de Red 37
Principios de la transferencia de datos confiableTres posibilidades para gestionar los ACK o NAK:
1. Confirmar los ACKs.
2. Añadir información redundante para no sólo detectar sino recuperar fallos.
3. Reenviar el paquete
camino sin salida
¿y los paquetes perdidos?
paquetes duplicados
SOLUCIÓNnúmeros de secuencia
protocolos de bit alternante
19
Tema 2: La capa de Transporte Servicios de Red 38
3. Transferencia fiable de datos sobre un canal con pérdidas y errores de bits.
Principios de la transferencia de datos confiable
Se transmite un paquete y no se recibe confirmación.
- El emisor debe arrancar el temporizador con cada paquete.- Actuar ante el final del temporizador.- Parar el temporizador.
¿Cuánto tiempo tiene que esperar el emisor?
Debe esperar al menos el retardo de ida y vuelta:t. ida y vuelta + t. almacenamiento routers + t. procesamiento en receptor
El emisor debe elegir juiciosamente este tiempo
el emisor no sabe si se perdió el paquete o la confirmaciónRETRANSMITIR
Tema 2: La capa de Transporte Servicios de Red 39
Principios de la transferencia de datos confiableSe ha conseguido introducir:
- Suma de comprobación.- Reconocimientos positivos y negativos.- Números de secuencia.- Temporizadores.
PROTOCOLOS DE PARADA y ESPERA¿es eficiente?
SOLUCIÓN: enviar múltiples paquetes sin esperar reconocimientos
20
Tema 2: La capa de Transporte Servicios de Red 40
Principios de la transferencia de datos confiable
1. Aumentar el rango de los números de secuencia.2. El emisor y receptor debe de tener memoria para almacenar más
de un paquete.
PROTOCOLOS DE RETROCEDER N: GBNprotocolo de ventana deslizante
PROTOCOLOS REPETICIÓN SELECTIVA: SR
Tema 2: La capa de Transporte Servicios de Red 41
Elementos de los protocolos de transporte orientados a conexión
• Transferencia confiable de datos
• Direccionamiento
• Establecimiento de una conexión
• Liberalización de una conexión
• Control de flujo
• Multiplexación y demultiplexación
21
Tema 2: La capa de Transporte Servicios de Red 42
Sistema A
Usuarios del Servicio de Transporte
TSAP
Entidad del Protocolode
Transporte
NSAP
Capa de Red e Inferiores
Sistema B
TSAP
Entidad del Protocolode
Transporte
NSAP
Capa de Red e Inferiores
TPDU
Usuarios del Servicio de Transporte
Tema 2: La capa de Transporte Servicios de Red 43
DireccionamientoHost 1 Host 2
Proceso deaplicación
TSAP 1208
Conexión detransporte
NSAP
TSAP 1522 TSAP 1836
Servidor 1 Servidor 2
NSAP
Capa física
Capa enlacede datos
Capa red
Capatransporte
¿Cómo sabe el host 1 que el servidor de hora tiene la conexión 1522?
22
Tema 2: La capa de Transporte Servicios de Red 44
DireccionamientoProtocolo inicial de conexión
Host 1 Host 2
TSAP
Servidor de procesos
NSAP
Capa física
Capa enlacede datos
Capa red
Capatransporte
Usuario
a)
Host 3 Host 4
Capa física
Capa enlacede datos
Capa red
Capatransporte
UsuarioServidorde hora
Servidor deprocesos
b)
Servidor de nombres
Tema 2: La capa de Transporte Servicios de Red 45
Elementos de los protocolos de transporte orientados a conexión
• Transferencia confiable de datos
• Direccionamiento
• Establecimiento de una conexión
• Liberalización de una conexión
• Control de flujo
• Multiplexación y demultiplexación
23
Tema 2: La capa de Transporte Servicios de Red 46
Establecimiento de una conexión• Problemas: perder , duplicar, o almacenar los paquetes, …• Posibles soluciones:
1. Usar direcciones de transporte desechables.
2. Dar a cada conexión un identificador de conexión y añadirlo en cada conexión.
3. Que los paquetes no permanezcan en la red más de un cierto tiempo.
a) diseño de la red restringido.b) colocar un contador de saltos en cada paquete.c) marcar el tiempo en cada paquete. Se requiere que los
enrutadores estén sincronizados.d) marcar los paquetes con un reloj no sincronizado.
Tema 2: La capa de Transporte Servicios de Red 47
30 60 90 120 150 180
607080
120
Núm
eros
de
secu
enci
a
Tiempo
Región
proh
ibida
T
Mensajeprohibido
Establecimiento de una conexiónConexión 5 se abre en
t=5s nºsec=5t=30s nºsec=80
t=40s host se caet=60s se inicializa
y reactiva conexiones 0-4t=70s abre conexión 5
t=70s nºsec=70t=85s nºsec=80
T
Protocolo “acuerdo de tres vías”(three-way handshake)
24
Tema 2: La capa de Transporte Servicios de Red 48
Establecimiento de una conexión
Host 1 Host 2
CR (seq=x)
ACK(seq=y,seq=x)
DATOS(seq=x,ACK=y)
a)
Tema 2: La capa de Transporte Servicios de Red 49
Host 1 Host 2
CR (seq=x)
ACK(seq=y,seq=x)
RECHAZAR(ACK=y)
b)
duplicado viejo
Establecimiento de una conexión
25
Tema 2: La capa de Transporte Servicios de Red 50
Host 1 Host 2
CR (seq=x)
ACK(seq=y,seq=x)
c)
duplicado viejo
DATOS(seq=x,ACK=z)RECHAZAR(ACK=y)
Establecimiento de una conexión
Tema 2: La capa de Transporte Servicios de Red 51
Elementos de los protocolos de transporte orientados a conexión
• Transferencia confiable de datos
• Direccionamiento
• Establecimiento de una conexión
• Liberalización de una conexión
• Control de flujo
• Multiplexación y demultiplexación
26
Tema 2: La capa de Transporte Servicios de Red 52
Liberalización de una conexiónHay dos tipos de liberalización:
- Liberalización simétrica.
- Liberalización asimétrica.
• Recuerda al sistema telefónico.
• Se puede producir la perdida de datos.
• Trata la conexión como dos conexiones distintas, se requiere laliberalización de cada parte.
• Se requiere de un protocolo de desconexión.
Host 1 Host 2Terminé,¿Terminaste?
Terminé, Adios
No funciona siempre
Tema 2: La capa de Transporte Servicios de Red 53
Ejercito A Ejercito A
Ejercito B
Liberalización de una conexiónProblema de los 2 ejércitos
Acuerdo de tres vias
No soluciona el problema, pero funciona aceptablemente
27
Tema 2: La capa de Transporte Servicios de Red 54
Liberalización de una conexión
Host 1 Host 2
DR
DR
ACK
a)
Envía la DRe inicia el
temporizador
Envía la DR einicia eltemporizador
Envía ACKLibera laconexión
Libera laconexión
Caso normal de desconexión por acuerdo de tres vías
Tema 2: La capa de Transporte Servicios de Red 55
Liberalización de una conexiónPérdida del ACK
Host 1 Host 2
DR
DR
ACK
b)
Envía la DRe inicia el
temporizador
Envía la DR einicia eltemporizador
Envía ACK
Libera laconexión .
.
.Expira eltemporizadorlibera laconexión
28
Tema 2: La capa de Transporte Servicios de Red 56
Liberalización de una conexiónRespuesta perdida
Host 1 Host 2
DR
DR
ACK
c)
Envía la DRe inicia el
temporizador Envía la DR einicia eltemporizador
Envía ACK
Libera laconexión
Libera laconexión
Expira eltemporizador
Envía DR einicia
temporizador
DR
Envía la DR einicia eltemporizador
DR
Tema 2: La capa de Transporte Servicios de Red 57
Liberalización de una conexiónRespuesta perdida y de las siguientes DRs
Host 1 Host 2
DR
DR
d)
Envía la DRe inicia el
temporizador Envía la DR einicia eltemporizador
N expiracionesdel temporizador
y se libera laconexión
Expira eltemporizadorlibera laconexión
.
.
.
Expira eltemporizador
Envía DR einicia
temporizador
DR
Envía la DR einicia eltemporizador
¿Qué sucede si los N intentos fracasan? Conexión semiabierta
29
Tema 2: La capa de Transporte Servicios de Red 58
Elementos de los protocolos de transporte orientados a conexión
• Transferencia confiable de datos
• Direccionamiento
• Establecimiento de una conexión
• Liberalización de una conexión
• Control de flujo
• Multiplexación y demultiplexación
Tema 2: La capa de Transporte Servicios de Red 59
Elementos de los protocolos de transporte
Control de flujo:
• El control de flujo en la capa de transporte es similar al de lacapa de enlace
- Ambas capas utilizan ventana deslizante para evitar que el transmisor abrume al receptor.
- Necesidad que la capa de transporte del transmisor maneje buffers donde se almacenen los segmentos hasta que se confirmen.
30
Tema 2: La capa de Transporte Servicios de Red 60
Elementos de los protocolos de transporteControl de flujo:
• Tanto el transmisor como el receptor debe manejar buffers.
• Como el receptor sabe que el transmisor pone en buffers las TPDUshasta que se confirmen, el receptor podría mantener un sólo grupo debuffers compartido por todas las conexiones.
Cuando llega una TPDU, se hace un intento por adquirir dinámicamente un buffer nuevo:
Si hay disponibles se acepta la TPDU, sino se descarta
El transmisor retransmitirá todas las TPDUs no confirmadas (perdidas en la subred más las eliminadas por el receptor)
Se desaprovechan recursos
Tema 2: La capa de Transporte Servicios de Red 61
Elementos de los protocolos de transporte
Control de flujo:Tamaño de los buffers
- Si las TPDU son de igual tamaño se pueden reservar buffersde idéntico tamaño. Una TPDU por buffer.
- Si hay variación en el tamaño de las TPDU, se podría elegir buffers de tamaño igual a la TPDU más grande.
Se desperdicia espacio o necesidad de manejar varios buffers
- Utilizar buffers variables � gestión buffers complicada.
- Utilizar buffers circular grande por conexión.
31
Tema 2: La capa de Transporte Servicios de Red 63
Elementos de los protocolos de transporte
Control de flujo:
La media óptima entre los buffers en el origen y los buffers en el destino depende del tipo de tráfico.
A medida que se abren y cierran conexiones y cambia el patrón detráfico, el transmisor y receptor necesitan ajustar dinámicamente sus asignaciones de buffers.
Tema 2: La capa de Transporte Servicios de Red 64
Elementos de los protocolos de transporte
Control de flujo:
ASIGNACIÓN DINÁMICA DE BUFFERS
1. Implica una ventana de tamaño variable.
2. Inicialmente el transmisor solicita una cantidad de buffers.
3. El receptor da tantos buffers como puede.
4. Cuando el transmisor envía una TPDU, debe disminuir su asignación y parar al llegar a 0.
5. El receptor irá reconociendo las TPDUs que van llegando.
32
Tema 2: La capa de Transporte Servicios de Red 65
Elementos de los protocolos de transporteControl de flujo:
Bloqueo irreversible<ack=6, buffers=4>16
A permanece bloqueada<ack=6, buffers=0>15
A queda bloqueada<seq6, data=m6>14
A le queda 1 buffer<seq5, data=m5>13
A tiene 2 buffers<ack=4, buffers=2>12
A tiene 1 buffer<ack=4, buffers=1>11
A queda bloqueada<ack=4, buffers=0>10
A termina de temporizar<seq2, data=m2>9
A le queda 0 buffers y debe detenerse<seq4, data=m4>8
A le queda 1 buffers<seq3, data=m3>7
B reconoce m0 y m1 y permite 2-4<ack=1, buffers=3>6
Mensaje perdido<seq2, data=m2>5
A le queda 2 buffers<seq1, data=m1>4
A le queda 3 buffers<seq0, data=m0>3
B sólo da 4 buffers<ack=15, buffers =4>2
A quiere 8 buffers<solicito 8 buffers>1
BA
Tema 2: La capa de Transporte Servicios de Red 66
La capa de Transporte en Internet
• Protocolos de transporte disponibles en Internet:
UDPTCP
y SCTP
33
Tema 2: La capa de Transporte Servicios de Red 67
La capa de Transporte TCPTCP ofrece además servicios adicionales a la capa de aplicación como:
- Orientado a conexión- Transporte de datos fiables.
- Control de congestión
� control de flujo� número de secuencias� confirmación� timers
• TCP asegura que los datos que son transportados sean entregadoscorrectamente y en orden
• TCP convierte un servicio no confiable como IP entre sistemas en unservicio de transporte fiable entre procesos
Permite atravesar una red congestionada regulando la tasa del tráfico
Tema 2: La capa de Transporte Servicios de Red 68
La capa de Transporte TCP
Fase de Conexión- La conexión debe estar abierta antes de la transferencia de datos.- El protocolo utilizado el acuerdo de tres vías.- No es un circuito virtual. El estado de la conexión está en los sistemas finales.
- En los dispositivos de red no mantienen información de la conexión.Los dispositivos de red ven datagramas no conexiones.
- Transferencia de datos full-duplex. Conexión punto a punto.
- El tamaño máximo de un segmento está limitado por la variable MSS,(Maximun Segment Size). Suele ser de 1500, 536 ó 512 bytes.
- MSS es el tamaño del campo de datos, no del segmento.
34
Tema 2: La capa de Transporte Servicios de Red 69
La capa de Transporte TCP
Estructura del segmento TCP
Opciones
RST
SYN FIN
PS
HA
CK
UR
G Ventana de recepciónNousado
Puerto fuente # Puerto destino #
Datos de Aplicación(mensaje)
32
Long.header
Checksum
Número de secuencia
Número de confirmación ACK
Puntero dedatos urgentes
1. Puertos fuente y destino.2. Número de secuencia de 32 bits.3. Nº de confirmación ACK de 32 bits.
6. Ventana de recepción
4. Longitud de cabecera de 4 bits.Mide palabras de 32 bits.
¿ Cuanto vale este campo si la cabecera es de 20 bytes?
5. Flag de 6 bits: ACK, RST, SYN, FIN, PSH, y URG
7. Opciones. Se utiliza para negociar el parámetro MSS.
Tema 2: La capa de Transporte Servicios de Red 70
La capa de Transporte TCP
Números de secuencia y números de confirmación ACK
- TCP ve los datos como una cadena de bytes ordenados más que como segmentos.
- Por tanto el nº de secuencia hace referencia al nº de bytes
0
Datos del Segmento 1
1 ... 1000 ... 1999 ... 499.999
Datos del Segmento 2
Fichero
35
Tema 2: La capa de Transporte Servicios de Red 71
La capa de Transporte TCP
Números de secuencia y números de confirmación ACK
- TCP establece una conexión full-duplex
Host 1 Host 2
Seq=42, ACK=79, data="C"
Seq=79, ACK=43, data="C"
Seq=43, ACK=80
User teclea "C"
ACK y eco de"C"
ACK
Tema 2: La capa de Transporte Servicios de Red 72
La capa de Transporte TCP
Números de secuencia y números de confirmación ACK
¿Qué ocurre cuando los segmentos llegan desordenados?
- El RFC de TCP no pone ninguna regla, lo deja abierto.- Existen 2 posibilidades:
- Descartar los segmentos que llegan fuera de orden.- Esperar por los segmentos que no han llegado.
36
Tema 2: La capa de Transporte Servicios de Red 73
La capa de Transporte TCP
Estimación del tiempo Round-Trip y Timeout
- TCP usa un mecanismo de timeout para la retransmisión de segmentos perdidos.
¿Cuál es intervalo óptimo de ese timeout para que no se produzcan retardos o no se inyecten segmentos repetidos?
RTT (Round-Trip Time): tiempo desde que un segmento es enviado hasta que se recibe su confirmación.
El timeout tiene que ser mayor que el RTT.
¿Cómo se estima el RTT?
Tema 2: La capa de Transporte Servicios de Red 74
La capa de Transporte TCPEstimación del tiempo Round-Trip y Timeout
TCP elige un segmento y mide el tiempo RTT
RTT fluctuará de un segmento a otro. Por culpa de los dispositivos de red. Es preferible calcular un promedio de RTT
¿Cómo se estima el RTT?
nowoldnew RTTRTTRTT ⋅+⋅−= αα )1( 125.0=α
oldnowoldnew RTTRTTDevRTTDevRTT −⋅+⋅−= ββ)1(
25.0=β
DevRTTRTTTimeout ⋅+= 4
37
Tema 2: La capa de Transporte Servicios de Red 75
La capa de Transporte TCPRTT: gaia.cs.umass.edu to fantasia.eurecom.fr
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106tiempo (segundos)
RTT
(milis
egun
dos)
MuestraRTT EstimadoRTT
Estimación del tiempo Round-Trip y Timeout
Tema 2: La capa de Transporte Servicios de Red 76
La capa de Transporte TCPTransferencia de datos confiable
- TCP tiene que implementar un servicio confiable.- Cada segmento enviado activa un timer salvo el de confirmación ACK.- Eventos importantes en la transmisión de un segmento
1. Se reciben los datos de un proceso de aplicación.2. Se transmite el segmento y se activa el timer.3. Recepción del segmento ACK y confirmación de que
el número ACK es el nº de secuencia +1.
- No es un objetivo únicamente de la capa transporte sino tambiénde la capa de enlace y de aplicación.
38
Tema 2: La capa de Transporte Servicios de Red 77
La capa de Transporte TCPControl de flujo
- TCP hace una gestión dinámica de los buffers.- Los procesos de aplicación puede que no recojan los datos inmediatamente. Si la capa de transporte sigue enviando datos => emisor sature al receptor.
-TCP define una variable denominada ventana de recepción(RcvWindows).
- Esta variable da una idea de los buffers disponibles.
¿Qué ocurre si el receptor no tiene buffersy no tiene nada que transmitir?
El emisor tiene que enviar segmentos con 1 sólo byte.
Tema 2: La capa de Transporte Servicios de Red 78
La capa de Transporte TCPEstablecimiento de la conexión
El establecimiento de una conexión supone un retardo añadido.
Cliente Server
SYN=1, seq=client_isn
SYN=1,
seq=server_isn,
ack=client_isn+1
SYN=0, seq=client_isn+1,ack=server_isn+1
Petición deconexión
Envía ACK
Confirmaciónconexión
39
Tema 2: La capa de Transporte Servicios de Red 79
La capa de Transporte TCPLiberalización de la conexión
Cliente Server
FIN=1
ACK
ACK
Cerrar
Tiempo deespera
CerrarFIN
Cerrado
Tema 2: La capa de Transporte Servicios de Red 80
La capa de Transporte TCPControl de congestión
- TCP implementa el control de congestión end-to-end.
- TCP emplea una serie de mecanismos para limitar la tasa.
- Si hay congestión disminuye los segmentos a inyectar en la red.
- Si no hay congestión aumenta los segmentos a inyectar en la red.
¿Cómo limita TCP la tasa de envío?¿Cómo percibe TCP si la red sufre congestión o no?
¿Qué algoritmos se debería aplicar para combinar la percepción de la congestión con la disminución de la tasa?
40
Tema 2: La capa de Transporte Servicios de Red 81
La capa de Transporte TCPControl de congestión
¿Cómo limita TCP la tasa de envío?
-TCP define una nueva variable, ventana de congestión (CongWin)
Esta ecuación limita la cantidad de segmentos no confirmados en el emisor y por lo tanto la tasa de envío
}{ RcvWindowsCongWinkedLastByteAcndLastByteSe ,min≤−
Tema 2: La capa de Transporte Servicios de Red 82
La capa de Transporte TCPControl de congestión
¿Cómo percibe TCP si la red sufre congestión o no?
- Cuando TCP detecta que se produce el evento timeout varias veces- o cuando se reciben ACKs repetidos => CONGESTIÓN
¿Qué algoritmos se debería aplicar para combinar la percepción de la congestión con la disminución de la tasa?
1. Additive-increase, multiplicative-decrease.2. Slow start.3. Reaction to timeout events
41
Tema 2: La capa de Transporte Servicios de Red 83
La capa de Transporte TCPAdditive-increase, multiplicative-decrease
- Se actua sobre la variable CongWin.
- Cuando se detecta congestión el valor de CongWin disminuye a la mitad hasta alcanzar el valor de 1 MSS.
- Cuando no se detecta congestión (no hay paquetes que se pierden) se incrementa la tasa pero lentamente.- Se incrementa la variable CongWin por cada ACK recibido.
Cuando hay congestión decrementa multiplicativamente y si no hay congestión añade aditivamente
Tema 2: La capa de Transporte Servicios de Red 84
La capa de Transporte TCPSlow start
- TCP comienza con una CongWin de tamaño igual a MSS.- La tasa será MSS/RTT.- Si no hay congestión, la ventana CongWin dobla su valor.
Va aumentado exponencialmente con cada RTT.
- Cuando se produce un evento de perdida, CongWin crece linealmente.
42
Tema 2: La capa de Transporte Servicios de Red 85
La capa de Transporte TCPReaction to timeout events
- TCP define un umbral threshold.
1. Cuando la ventana de congestión está por debajo del threshold, se comienza con slow start. La ventana CongWin crece exponencialmente.
2. Si CongWin > threshold, CongWin crece linealmente.
3. Cuando se reciben tres ACK repetidos, el threshold es puesto a la mitad del valor de CongWin. CongWin toma el valor del threshold.
4. Cuando se produce un timeout el threshold es puesto a la mitad del valor actual de CongWin y CongWin=1 MSS.
Tema 2: La capa de Transporte Servicios de Red 86
La capa de Transporte TCPMáquina de estados
CERRADO
SYN_ENVIO
ESTABLECIDA
FIN_1
TIEMPO ESPERA
FIN_2
Cliente inicia unaconexión
Se envía SYN
Se recibe SYNACKSe envia ACK
Se envia FINSe recibe ACKNo se envia nada
Se recibe FINSe envia ACK
Se espera t seg
43
Tema 2: La capa de Transporte Servicios de Red 87
La capa de Transporte TCPMáquina de estados
CERRADO
ESCUCHA
SYN_RECEPCION
ESTABLECIDA
ULTIMO ACK
CERRAR
Servidor crea unaconexión
Se recibe SYNSe envia SYN y ACK
Se recibe ACKNo se envía nada
Se recibe FINSe envia ACK
Se envía FIN
Se recibe ACK
Tema 2: La capa de Transporte Servicios de Red 88
La capa de Transporte TCPEjemplos
Host 1 Host 2
Seq=92, datos: 8 bytes
ACK=100
Seq=92, datos: 8 bytes
Tim
eout
ACK=100
44
Tema 2: La capa de Transporte Servicios de Red 89
La capa de Transporte TCPEjemplos
Host 1 Host 2
Seq=92, datos: 8 bytes
ACK=100
Seq=92, datos: 8 bytes
Tim
eout
ACK=120
Seq=100, datos: 20 bytes
ACK=120Ti
meo
ut
Tema 2: La capa de Transporte Servicios de Red 90
La capa de Transporte TCPEjemplos
Host 1 Host 2
Seq=92, datos: 8 bytes
ACK=100
Seq=100, datos: 20 bytes
Tim
eout
ACK=120
45
Tema 2: La capa de Transporte Servicios de Red 91
UDP-MultimediaUDP-Telefonía por InternetUDPDNSTraducción de nombres
UDPRIPProtocolo de encaminamiento
UDPSNMPGestión de redesTCPFTPTransferencia de ficherosTCPHTTPWebTCPTelnetAcceso a terminal remotoTCPSMTPCorreo electrónico
Protocolo Transporte
Protocolo Aplicación
Aplicación