Servicios de Red - ULPGC

45
1 Tema 2: La capa de Transporte Servicios de Red 1 Servicios de Red Tema 2 La 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.

Transcript of Servicios de Red - ULPGC

Page 1: 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.

Page 2: Servicios de Red - ULPGC

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

Page 3: Servicios de Red - ULPGC

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

Page 4: Servicios de Red - ULPGC

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.

Page 5: Servicios de Red - ULPGC

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

Page 6: Servicios de Red - ULPGC

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

Page 7: Servicios de Red - ULPGC

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

Page 8: Servicios de Red - ULPGC

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

Page 9: Servicios de Red - ULPGC

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

...

Page 10: Servicios de Red - ULPGC

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

Page 11: Servicios de Red - ULPGC

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

Page 12: Servicios de Red - ULPGC

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, ...

Page 13: Servicios de Red - ULPGC

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

Page 14: Servicios de Red - ULPGC

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

Page 15: Servicios de Red - ULPGC

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

Page 16: Servicios de Red - ULPGC

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

Page 17: Servicios de Red - ULPGC

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

Page 18: Servicios de Red - ULPGC

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

Page 19: Servicios de Red - ULPGC

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

Page 20: Servicios de Red - ULPGC

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

Page 21: Servicios de Red - ULPGC

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?

Page 22: Servicios de Red - ULPGC

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

Page 23: Servicios de Red - ULPGC

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)

Page 24: Servicios de Red - ULPGC

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

Page 25: Servicios de Red - ULPGC

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

Page 26: Servicios de Red - ULPGC

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

Page 27: Servicios de Red - ULPGC

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

Page 28: Servicios de Red - ULPGC

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

Page 29: Servicios de Red - ULPGC

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.

Page 30: Servicios de Red - ULPGC

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.

Page 31: Servicios de Red - ULPGC

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.

Page 32: Servicios de Red - ULPGC

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

Page 33: Servicios de Red - ULPGC

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.

Page 34: Servicios de Red - ULPGC

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

Page 35: Servicios de Red - ULPGC

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.

Page 36: Servicios de Red - ULPGC

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

Page 37: Servicios de Red - ULPGC

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.

Page 38: Servicios de Red - ULPGC

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

Page 39: Servicios de Red - ULPGC

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?

Page 40: Servicios de Red - ULPGC

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

Page 41: Servicios de Red - ULPGC

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.

Page 42: Servicios de Red - ULPGC

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

Page 43: Servicios de Red - ULPGC

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

Page 44: Servicios de Red - ULPGC

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

Page 45: Servicios de Red - ULPGC

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