Está en la página 1de 45

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 1

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.

Tema 2: La capa de Transporte Servicios de Red 2

1
Conceptos Generales
• La capa de transporte es la cuarta
capa, vista en orden ascendente Sistema A Sistema B
Aplicación Aplicación
desde la capa física y es la
primera de las denominadas Presentación Presentación

orientadas a la aplicación. Sesión Sesión

Transporte Transporte

Red Red Red Red


• Es la primera cuya comunicación
Enlace Enlace Enlace Enlace
con su entidad par es extremo a
extremo. Física Física Física Física

• Las capas inferiores intercambian


unidades de datos “punto a punto”
con el siguiente elemento de la
red.

Tema 2: La capa de Transporte Servicios de Red 3

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

Tema 2: La capa de Transporte Servicios de Red 4

2
Conceptos Generales

• Un protocolo de la capa de transporte:

- Proporciona una comunicación lógica entre los procesos de


aplicaciones ejecutándose en diferentes máquinas.

Por comunicación lógica se quiere decir que las máquinas están


directamente 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 usuarios


finales y no en los routers de la red.

- Los mensajes de las aplicaciones son convertidas en T-PDUs (PDU-4)

Tema 2: La capa de Transporte Servicios de Red 5

Aplicación Las aplicaciones usan esta


Transporte
Red
comunicación lógica que proporciona
Enlace la capa de transporte para enviar los
Física Red
Enlace
mensajes libre de preocupaciones
Física de la capa física
Router Emisor: fragmenta los mensajes
Router
de aplicación en segmentos y
Router

Router
los pasa a la capa de red

Router
Receptor: reagrupa los
segmentos en mensajes y los
pasa a la capa de aplicación

Aplicación
Transporte
Router Red
Router Enlace
Física
Router

Comunicación lógica entre los procesos de aplicación


Tema 2: La capa de Transporte Servicios de Red 6

3
Relación entre la capa de transporte y la de red
- La capa de transporte proporciona una comunicación lógica entre
los 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 7

Relación entre la capa de transporte y la de red


Mensajes de
aplicaciones

Protocolo Protocolo
de de
Transporte Transporte

Protocolo de Red

Protocolo de Transporte realiza su tarea dentro del sistema

- Los protocolos de transporte pueden ofrecer un modelo de servicio


diferente a las aplicaciones.

Tema 2: La capa de Transporte Servicios de Red 8

4
La capa de Transporte en Internet
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.

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

La capa de Transporte en Internet


• Protocolos de transporte disponibles en Internet:

UDP
TCP
y
SCTP

Tema 2: La capa de Transporte Servicios de Red 11

5
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 12

La capa de Transporte en Internet

Responsabilidad de los protocolos de transporte:

- Asegurar el transporte de los mensajes de proceso a proceso


Multiplexación y Demultiplexación
UDP
- Integridad en la información añadiendo campos de detección
de errores en la cabecera. TCP

- Transferencia fiable de los datos: entrega de los mensajes de


manera 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)

Tema 2: La capa de Transporte Servicios de Red 13

6
Multiplexación y Demultiplexación

Multiplexación Demultiplexación

Tema 2: La capa de Transporte Servicios de Red 14

Multiplexación y Demultiplexación

Aplicación
P1 P2 Pn

Multiplexación Demultiplexación

Transporte
Socket identificador
único

Red conjuntos de
campos que
permiten la
identificación del
socket

Tema 2: La capa de Transporte Servicios de Red 15

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

Puerto fuente # Puerto destino #

Otros campos de la cabecera

Datos de Aplicación
(mensaje)

Tema 2: La capa de Transporte Servicios de Red 16

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 de


aplicaciones 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

Tema 2: La capa de Transporte Servicios de Red 17

8
Multiplexación y Demultiplexación UDP
Un socket UDP queda completamente definido por la 2-tupla:
dirección IP destino + número puerto destino

Segmento 1
Puerto fuente A Puerto destino C
IP fuente A IP destino C

Segmento 2
Puerto fuente B Puerto destino C
IP fuente B IP destino C

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 18

Multiplexación y Demultiplexación UDP

Puerto fuente Puerto dest.


19157 46428

...
Host A Servidor

Puerto fuente Puerto dest.


46428 19157

...

Tema 2: La capa de Transporte Servicios de Red 19

9
Multiplexación y Demultiplexación TCP
Un socket TCP queda completamente definido por la 4-tupla:
dirección IP fuente + número puerto destino
direcció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
Segmento 1
Puerto fuente A Puerto destino A
IP fuente A IP destino A

Segmento 2
Puerto fuente B Puerto destino A
IP fuente B IP destino A

Los 2 segmentos serán direccionados a procesos diferentes, distintos sockets


Tema 2: La capa de Transporte Servicios de Red 20

Multiplexación y Demultiplexación TCP


Puerto fuente Puerto dest.
26145 80

IP fuente A IP dest. B

Puerto fuente Puerto dest. Cliente Web A


7532 80 Servidor Web B
IP fuente A IP dest. B

Puerto fuente Puerto dest.


26145 80

IP fuente C IP dest. B

Cliente Web C

Tema 2: La capa de Transporte Servicios de Red 21

10
La capa de Transporte en Internet
• Protocolos de transporte disponibles en Internet:

UDP
TCP
y
SCTP

Tema 2: La capa de Transporte Servicios de Red 22

Protocolo no orientado a conexión UDP


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


Tema 2: La capa de Transporte Servicios de Red 23

11
Protocolo no orientado a conexión UDP
El protocolo UDP se usa:
- Sin establecimiento, no introduce retardos. Ejemplo DNS.
(TCP usa el protocolo de acuerdo de 3 fases antes de comenzar a
transferir los datos.)
- No mantiene el estado de la conexión.
(TCP mantiene el estado de la conexión en el sistema final.)

- Cabecera de los paquetes pequeños: 8 bytes.


(TCP emplea 20 bytes.)

- No hay control de los datos enviados


(TCP utiliza control de flujo con confirmación de los datos enviados.)

Tema 2: La capa de Transporte Servicios de Red 24

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

Tema 2: La capa de Transporte Servicios de Red 25

12
Protocolo no orientado a conexión UDP
• Estructura de un segmento UDP
32

Puerto fuente # Puerto destino #

Longitud Checksum

Datos de Aplicación
(mensaje)

- 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 26

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.
32
Dirección IP origen
Dirección IP destino
cero Proto Longitud UDP

El receptor ha de reemsamblar la pseudocabecera


y recalcular la suma de verificación

Tema 2: La capa de Transporte Servicios de Red 27

13
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 28

¿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:
1111111111111111
Se calcula teniendo en cuenta el campo checksum

Ejemplo:
Palabra 1: 0110011001100110 Resultado suma:1011101110111011
Palabra 2: 0101010101010101 0000111100001111
1100101011001010
Palabra 3: 0000111100001111

Palabra checksum: 0011010100110101

Tema 2: La capa de Transporte Servicios de Red 29

14
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 30

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 31

15
Elementos de los protocolos de transporte
• El protocolo de transporte desempeña funciones similares a las
de la capa de enlace.
Sus diferencias están:

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.

Tema 2: La capa de Transporte Servicios de Red 32

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 33

16
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 significa


IMPLEMENTAR esta abstracción del servicio

Tema 2: La capa de Transporte Servicios de Red 34

Principios de la transferencia de datos confiable

Capa de
proceso proceso
aplicación emisor receptor
datos datos

tfd_enviar() datos datos entregar_datos()


Capa de
canal fiable Protocolo de Protocolo de
transporte transferencia fiable transferencia fiable
de datos (lado emisor) de datos (lado receptor)

tnd_enviar() paquete paquete


tfd_recibir()

Capa de canal no fiable


red

Servicio aportado Implementación del servicio


Tema 2: La capa de Transporte Servicios de Red 35

17
Principios de la transferencia de datos confiable
1. 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 36

Principios de la transferencia de datos confiable


Tres posibilidades para gestionar los ACK o NAK:

1. Confirmar los ACKs.

camino sin salida

2. Añadir información redundante para no sólo detectar sino


recuperar fallos.
¿y los paquetes perdidos?

3. Reenviar el paquete

paquetes duplicados
SOLUCIÓN
números de secuencia
protocolos de bit alternante

Tema 2: La capa de Transporte Servicios de Red 37

18
Principios de la transferencia de datos confiable
3. Transferencia fiable de datos sobre un canal con pérdidas y
errores de bits.

Se transmite un paquete y no se recibe confirmación.


¿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ón


RETRANSMITIR

- El emisor debe arrancar el temporizador con cada paquete.


- Actuar ante el final del temporizador.
- Parar el temporizador.

Tema 2: La capa de Transporte Servicios de Red 38

Principios de la transferencia de datos confiable


Se 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

Tema 2: La capa de Transporte Servicios de Red 39

19
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: GBN


protocolo de ventana deslizante

PROTOCOLOS REPETICIÓN SELECTIVA: SR

Tema 2: La capa de Transporte Servicios de Red 40

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 41

20
Sistema A Sistema B
Usuarios del Servicio de Transporte Usuarios del Servicio de Transporte

TSAP TSAP

TPDU
Entidad del Protocolo Entidad del Protocolo
de de
Transporte Transporte

NSAP NSAP

Capa de Red e Inferiores Capa de Red e Inferiores

Tema 2: La capa de Transporte Servicios de Red 42

Host 1
Direccionamiento Host 2

Proceso de Servidor 1 Servidor 2


aplicación
TSAP 1208
TSAP 1522 TSAP 1836

Conexión de
Capa
transporte
transporte NSAP

NSAP
Capa red

Capa enlace
de datos

Capa física

¿Cómo sabe el host 1 que el servidor de hora tiene la conexión 1522?

Tema 2: La capa de Transporte Servicios de Red 43

21
Direccionamiento
Protocolo inicial de conexión

Host 1 Host 2 Host 3 Host 4

Servidor de Servidor
Usuario Servidor de procesos Usuario procesos de hora

TSAP
Capa Capa
transporte NSAP transporte

Capa red Capa red

Capa enlace Capa enlace


de datos de datos

Capa física Capa física

Servidor de nombres
a) b)

Tema 2: La capa de Transporte Servicios de Red 44

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 45

22
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 46

Establecimiento de una conexión


T
Conexión 5 se abre en
t=5s nºsec=5
da
bi

t=30s nºsec=80
hi
o
pr

t=40s host se cae


i ón
eg

t=60s se inicializa
R

y reactiva conexiones 0-4


Números de secuencia

t=70s abre conexión 5


120
t=70s nºsec=70 Mensaje Protocolo “acuerdo de tres vías”
t=85s nºsec=80 prohibido (three-way handshake)
T
80
70
60

30 60 90 120 150 180


Tiempo

Tema 2: La capa de Transporte Servicios de Red 47

23
Establecimiento de una conexión

Host 1 Host 2

CR (s
eq=x
)

q=x)
=y,se
(seq
ACK
DAT
OS(s
eq=x
,ACK
=y)

a)

Tema 2: La capa de Transporte Servicios de Red 48

Establecimiento de una conexión

Host 1 Host 2
duplicado viejo
CR (s
eq=x
)

q=x)
=y,se
(seq
ACK

REC
HAZ
AR(A
CK=
y)

b)

Tema 2: La capa de Transporte Servicios de Red 49

24
Establecimiento de una conexión

Host 1 Host 2
duplicado viejo
CR (s
eq=x
)

q=x)
=y,se
(seq
ACK

DAT
OS(s
eq=x
,ACK
=z)
REC
HAZ
AR(A
CK=
y)

c)

Tema 2: La capa de Transporte Servicios de Red 50

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 51

25
Liberalización de una conexión
Hay dos tipos de liberalización:
- Liberalización simétrica.

• Trata la conexión como dos conexiones distintas, se requiere la


liberalización de cada parte.

- Liberalización asimétrica. Host 1


Term
Host 2

¿Term iné,
inaste
?

s
• Recuerda al sistema telefónico. Term
iné, Adio

• Se puede producir la perdida de datos.


• Se requiere de un protocolo de desconexión.

No funciona siempre

Tema 2: La capa de Transporte Servicios de Red 52

Liberalización de una conexión


Problema de los 2 ejércitos
Ejercito A Ejercito A

Ejercito B

Acuerdo de tres vias

No soluciona el problema, pero funciona aceptablemente

Tema 2: La capa de Transporte Servicios de Red 53

26
Liberalización de una conexión
Caso normal de desconexión por acuerdo de tres vías

Host 1 Host 2

Envía la DR
e inicia el DR
temporizador
Envía la DR e
DR inicia el
Libera la temporizador
conexión
Envía ACK ACK
Libera la
conexión

a)

Tema 2: La capa de Transporte Servicios de Red 54

Liberalización de una conexión


Pérdida del ACK

Host 1 Host 2
Envía la DR
e inicia el DR
temporizador
Envía la DR e
inicia el
Libera la DR
temporizador
conexión .
Envía ACK ACK .
Expira.el
temporizador
libera la
conexión

b)

Tema 2: La capa de Transporte Servicios de Red 55

27
Liberalización de una conexión
Respuesta perdida

Host 1 Host 2

Envía la DR
e inicia el DR
temporizador
Envía la DR e
Expira el DR inicia el
temporizador temporizador
Envía DR e DR
inicia
Envía la DR e
temporizador
DR inicia el
Libera la temporizador
conexión
ACK
Envía ACK

Libera la
conexión

c)

Tema 2: La capa de Transporte Servicios de Red 56

Liberalización de una conexión


Respuesta perdida y de las siguientes DRs

Host 1 Host 2

Envía la DR
e inicia el DR
temporizador
Envía la DR e
Expira el DR inicia el
temporizador temporizador
Envía DR e DR
inicia
Envía la DR e
temporizador
. inicia el
. temporizador
.
N expiraciones
del temporizador Expira el
y se libera la temporizador
conexión libera la
conexión
d)

¿Qué sucede si los N intentos fracasan? Conexión semiabierta


Tema 2: La capa de Transporte Servicios de Red 57

28
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 58

Elementos de los protocolos de transporte


Control de flujo:

• El control de flujo en la capa de transporte es similar al de la


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

Tema 2: La capa de Transporte Servicios de Red 59

29
Elementos de los protocolos de transporte
Control de flujo:
• Tanto el transmisor como el receptor debe manejar buffers.

• Como el receptor sabe que el transmisor pone en buffers las TPDUs


hasta que se confirmen, el receptor podría mantener un sólo grupo de
buffers 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 60

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 buffers


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

Tema 2: La capa de Transporte Servicios de Red 61

30
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 de


tráfico, el transmisor y receptor necesitan ajustar dinámicamente sus
asignaciones de buffers.

Tema 2: La capa de Transporte Servicios de Red 63

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.

Tema 2: La capa de Transporte Servicios de Red 64

31
Elementos de los protocolos de transporte
Control de flujo:
A B
1 <solicito 8 buffers> A quiere 8 buffers
2 <ack=15, buffers =4> B sólo da 4 buffers
3 <seq0, data=m0> A le queda 3 buffers
4 <seq1, data=m1> A le queda 2 buffers
5 <seq2, data=m2> Mensaje perdido
6 <ack=1, buffers=3> B reconoce m0 y m1 y permite 2-4
7 <seq3, data=m3> A le queda 1 buffers
8 <seq4, data=m4> A le queda 0 buffers y debe detenerse
9 <seq2, data=m2> A termina de temporizar
10 <ack=4, buffers=0> A queda bloqueada
11 <ack=4, buffers=1> A tiene 1 buffer
12 <ack=4, buffers=2> A tiene 2 buffers
13 <seq5, data=m5> A le queda 1 buffer
14 <seq6, data=m6> A queda bloqueada
15 <ack=6, buffers=0> A permanece bloqueada
16 <ack=6, buffers=4> Bloqueo irreversible

Tema 2: La capa de Transporte Servicios de Red 65

La capa de Transporte en Internet


• Protocolos de transporte disponibles en Internet:

UDP
TCP
y
SCTP

Tema 2: La capa de Transporte Servicios de Red 66

32
La capa de Transporte TCP
TCP ofrece además servicios adicionales a la capa de aplicación como:
- Orientado a conexión
- Transporte de datos fiables.
 control de flujo
 número de secuencias
 confirmación
 timers
• TCP asegura que los datos que son transportados sean entregados
correctamente y en orden
• TCP convierte un servicio no confiable como IP entre sistemas en un
servicio de transporte fiable entre procesos

- Control de congestión
Permite atravesar una red congestionada regulando la tasa del tráfico

Tema 2: La capa de Transporte Servicios de Red 67

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.

Tema 2: La capa de Transporte Servicios de Red 68

33
La capa de Transporte TCP
Estructura del segmento TCP

32
1. Puertos fuente y destino.
2. Número de secuencia de 32 bits.
Puerto fuente # Puerto destino # 3. Nº de confirmación ACK de 32 bits.
Número de secuencia 4. Longitud de cabecera de 4 bits.
Número de confirmación ACK
Mide palabras de 32 bits.
¿ Cuanto vale este campo si la
URG

No
ACK
PSH

SYN
RST

Long.
FIN

Ventana de recepción
header usado
cabecera es de 20 bytes?
Puntero de
Checksum datos urgentes 5. Flag de 6 bits: ACK, RST, SYN,
Opciones
FIN, PSH, y URG
6. Ventana de recepción
Datos de Aplicación
(mensaje)
7. Opciones. Se utiliza para
negociar el parámetro MSS.

Tema 2: La capa de Transporte Servicios de Red 69

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

Fichero

Datos del Segmento 1 Datos del Segmento 2

0 1 ... 1000 ... 1999 ... 499.999

Tema 2: La capa de Transporte Servicios de Red 70

34
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

User teclea "C" Seq=42


, ACK=
79, dat
a="C"

" ACK y eco de


data="C
9, AC K=43, "C"
Seq=7

ACK Seq=
43, A
CK=
80

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

Tema 2: La capa de Transporte Servicios de Red 72

35
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 73

La capa de Transporte TCP


Estimación del tiempo Round-Trip y Timeout
¿Cómo se estima el RTT?

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

RTTnew = (1 − α ) ⋅ RTTold + α ⋅ RTTnow α = 0.125

DevRTTnew = (1 − β ) ⋅ DevRTTold + β ⋅ RTTnow − RTTold


β = 0.25

Timeout = RTT + 4 ⋅ DevRTT

Tema 2: La capa de Transporte Servicios de Red 74

36
La capa de Transporte TCP
RTT: gaia.cs.umass.edu to fantasia.eurecom.fr
Estimación del tiempo Round-Trip y Timeout
350

300
RTT (milisegundos)

250

200

150

100
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106
tiempo (segundos)

MuestraRTT EstimadoRTT

Tema 2: La capa de Transporte Servicios de Red 75

La capa de Transporte TCP


Transferencia de datos confiable
- No es un objetivo únicamente de la capa transporte sino también
de la capa de enlace y de aplicación.
- 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.

Tema 2: La capa de Transporte Servicios de Red 76

37
La capa de Transporte TCP
Control 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 buffers


y 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 77

La capa de Transporte TCP


Establecimiento de la conexión
El establecimiento de una conexión supone un retardo añadido.

Cliente Server
Petición de SYN=
conexión 1 , se
q=clie
nt_isn

Confirmación
=1,
SYN r_isn, conexión
e q=serve isn+1
s t_
clien
ack=
Envía ACK SYN
=0, s
e
ack= q=client_
serve is
r_isn n+1,
+1

Tema 2: La capa de Transporte Servicios de Red 78

38
La capa de Transporte TCP
Liberalización de la conexión

Cliente Server

Cerrar FIN=
1

ACK
Cerrar
FIN

ACK
Tiempo de
espera

Cerrado

Tema 2: La capa de Transporte Servicios de Red 79

La capa de Transporte TCP


Control 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?

Tema 2: La capa de Transporte Servicios de Red 80

39
La capa de Transporte TCP
Control de congestión
¿Cómo limita TCP la tasa de envío?

-TCP define una nueva variable, ventana de congestión (CongWin)

LastByteSe nd − LastByteAc ked ≤ min{CongWin , RcvWindows }

Esta ecuación limita la cantidad de segmentos no confirmados en


el emisor y por lo tanto la tasa de envío

Tema 2: La capa de Transporte Servicios de Red 81

La capa de Transporte TCP


Control 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

Tema 2: La capa de Transporte Servicios de Red 82

40
La capa de Transporte TCP
Additive-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 83

La capa de Transporte TCP


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

Tema 2: La capa de Transporte Servicios de Red 84

41
La capa de Transporte TCP
Reaction 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 85

La capa de Transporte TCP


Máquina de estados Cliente inicia una
conexión
CERRADO
Se espera t seg Se envía SYN

TIEMPO ESPERA SYN_ENVIO

Se recibe FIN Se recibe SYNACK


Se envia ACK Se envia ACK

FIN_2 ESTABLECIDA

Se recibe ACK
Se envia FIN
No se envia nada FIN_1

Tema 2: La capa de Transporte Servicios de Red 86

42
La capa de Transporte TCP
Máquina de estados Servidor crea una
conexión
CERRADO
Se recibe ACK

ULTIMO ACK ESCUCHA

Se recibe SYN
Se envía FIN Se envia SYN y ACK

CERRAR SYN_RECEPCION

Se recibe FIN Se recibe ACK


Se envia ACK ESTABLECIDA No se envía nada

Tema 2: La capa de Transporte Servicios de Red 87

La capa de Transporte TCP


Ejemplos

Host 1 Host 2

Seq=92
, datos:
8 bytes
Timeout

00
ACK=1

Seq=
9 2, da
tos: 8
byte
s

00
ACK=1

Tema 2: La capa de Transporte Servicios de Red 88

43
La capa de Transporte TCP
Ejemplos

Host 1 Host 2

Seq=92
, datos:
Seq=10 8 bytes

Timeout
0, dato
s: 20 b
ytes

100
K= 0
AC 12
Seq= K=
92, dAC
atos
:8b
ytes
Timeout

=120
ACK

Tema 2: La capa de Transporte Servicios de Red 89

La capa de Transporte TCP


Ejemplos

Host 1 Host 2

Seq=92
, datos:
8 bytes
Seq=1
0 0, dato
s: 20 b
ytes
00
ACK=1
Timeout

20
ACK=1

Tema 2: La capa de Transporte Servicios de Red 90

44
Aplicación Protocolo Protocolo
Aplicación Transporte
Correo electrónico SMTP TCP
Acceso a terminal remoto Telnet TCP
Web HTTP TCP
Transferencia de ficheros FTP TCP
Gestión de redes SNMP UDP
Protocolo de RIP UDP
encaminamiento
Traducción de nombres DNS UDP
Telefonía por Internet - UDP
Multimedia - UDP

Tema 2: La capa de Transporte Servicios de Red 91

45

También podría gustarte