CAPA DE TRANSPORTE Computer Networks Iblog.uclm.es/inocentesanchez/files/2018/07/transporte1.pdf ·...

45
Version 03/03/2019 applicatio n transport link physical network 1 CAPA DE TRANSPORTE transporte

Transcript of CAPA DE TRANSPORTE Computer Networks Iblog.uclm.es/inocentesanchez/files/2018/07/transporte1.pdf ·...

Page 1: CAPA DE TRANSPORTE Computer Networks Iblog.uclm.es/inocentesanchez/files/2018/07/transporte1.pdf · La capa de red es no fiable La fiabilidad se le exige a la capa de transporte.

Version 03/03/2019

Computer Networks I

applicatio

n

transport

link

physical

network

1

CAPA DE TRANSPORTE

transporte

Page 2: CAPA DE TRANSPORTE Computer Networks Iblog.uclm.es/inocentesanchez/files/2018/07/transporte1.pdf · La capa de red es no fiable La fiabilidad se le exige a la capa de transporte.

2

Contenidos

Conceptos generales

Entrega proceso a proceso

Sockets

Multiplexación y demultiplexación

Pushing & Pulling (empujar y recoger)

Control de Flujo

Control de Errores

Servicio no orientado a conexión y

orientado a conexión

Fiabilidad

UDP y TCP

Page 3: CAPA DE TRANSPORTE Computer Networks Iblog.uclm.es/inocentesanchez/files/2018/07/transporte1.pdf · La capa de red es no fiable La fiabilidad se le exige a la capa de transporte.

3

Entrega proceso a proceso

Capa de Transporte:

Responsable de la entrega proceso a proceso

Los procesos se comunican usando el paradigma cliente-servidor

Page 4: CAPA DE TRANSPORTE Computer Networks Iblog.uclm.es/inocentesanchez/files/2018/07/transporte1.pdf · La capa de red es no fiable La fiabilidad se le exige a la capa de transporte.

4

Cada proceso en el servidor escucha en un determinado puerto

El cliente define su propio puerto (puerto efímero) elegido al azar por el software para escuchar las respuestas

El servidor define su puerto entre un conjunto determinado llamado puertos bien conocidos

Números de puerto

Page 5: CAPA DE TRANSPORTE Computer Networks Iblog.uclm.es/inocentesanchez/files/2018/07/transporte1.pdf · La capa de red es no fiable La fiabilidad se le exige a la capa de transporte.

5

Dirección IP y números de puerto

La dirección IP identifica al host

El puerto identifica a un proceso concreto en el host

Se usan 16 bits, con lo que los números varían entre 0 y 65535

Page 6: CAPA DE TRANSPORTE Computer Networks Iblog.uclm.es/inocentesanchez/files/2018/07/transporte1.pdf · La capa de red es no fiable La fiabilidad se le exige a la capa de transporte.

6

Rangos IANA (Internet Assigned Number Authority)

Puertos bien conocidos: 0 - 1023 Asignados y controlados por IANA

Puertos registrados: 1024 to 49151 No asignados ni controlados por la IANA.

Sólo pueden ser registrados por IANA para evitar la duplicación.

Puertos dinámicos (o privados): 49152 - 65535 No controlados ni registrados por IANA

Se usan por cualquier proceso

Son efímeros.

IANA es un departamento de ICANN (Internet Corporation for Assigned Names and Numbers)

Page 7: CAPA DE TRANSPORTE Computer Networks Iblog.uclm.es/inocentesanchez/files/2018/07/transporte1.pdf · La capa de red es no fiable La fiabilidad se le exige a la capa de transporte.

7

Puertos bien conocidos (I)

En Unix almacenados en un fichero llamado /etc/services

Ejemplo: servidor ftp

2 casos

Uno para cada protocolo de transporte

Page 8: CAPA DE TRANSPORTE Computer Networks Iblog.uclm.es/inocentesanchez/files/2018/07/transporte1.pdf · La capa de red es no fiable La fiabilidad se le exige a la capa de transporte.

Puertos bien conocidos (II)

Page 9: CAPA DE TRANSPORTE Computer Networks Iblog.uclm.es/inocentesanchez/files/2018/07/transporte1.pdf · La capa de red es no fiable La fiabilidad se le exige a la capa de transporte.

9

Sockets

Combinación de IP + puerto

Define un proceso de manera inequívoca

Los sockets se usan como abstracción básica para los programadores de red en la mayoría de los sistemas operativos

Page 10: CAPA DE TRANSPORTE Computer Networks Iblog.uclm.es/inocentesanchez/files/2018/07/transporte1.pdf · La capa de red es no fiable La fiabilidad se le exige a la capa de transporte.

10

Multiplexación y demultiplexación

Page 11: CAPA DE TRANSPORTE Computer Networks Iblog.uclm.es/inocentesanchez/files/2018/07/transporte1.pdf · La capa de red es no fiable La fiabilidad se le exige a la capa de transporte.

11

Control de flujo: Pushing & pulling

La entrega se puede producir de dos formas:

Push: Quien produce (productor) la entrega en el momento de generarla

No es solicitada por quien la recibe (consumidor)

El consumidor puede estar sobrecargado

Se necesita controlar el flujo

Pull: El productor la entrega cuando se la pide

No se necesita control de flujo

Page 12: CAPA DE TRANSPORTE Computer Networks Iblog.uclm.es/inocentesanchez/files/2018/07/transporte1.pdf · La capa de red es no fiable La fiabilidad se le exige a la capa de transporte.

12

Control de flujo en la capa de transporte

Capa Aplicación (TX) Capa Transporte (TX): PUSH

Capa Transporte (TX) Capa Transporte (RX): PUSH

Capa Transporte (RX) Capa Aplicación (RX): PULL

Page 13: CAPA DE TRANSPORTE Computer Networks Iblog.uclm.es/inocentesanchez/files/2018/07/transporte1.pdf · La capa de red es no fiable La fiabilidad se le exige a la capa de transporte.

13

La capa de red es no fiable

La fiabilidad se le exige a la capa de transporte. El control de errores es responsable de:

Detectar y descartar paquetes dañados

Realizar el seguimiento de los paquetes perdidos y descartados (reenvío si es necesario)

Evitar duplicidades

Almacén (buffer) para paquetes desordenados

Se implementa con:

Números de secuencia (en paquetes)

Confirmaciones y temporizadores

Control de errores

Page 14: CAPA DE TRANSPORTE Computer Networks Iblog.uclm.es/inocentesanchez/files/2018/07/transporte1.pdf · La capa de red es no fiable La fiabilidad se le exige a la capa de transporte.

14

Protocolos no orientados a conexión (I)

El mensaje se divide en trozos (datagramas) por la capa de aplicación

Cada datagrama se trata como una unidad

Independiente del resto

Encapsulado como un paquete por la capa de transporte

Los paquetes se envían en orden

La recepción puede producirse fuera de orden

Problema porque no hay números de secuencia

Nadie controla el error

Page 15: CAPA DE TRANSPORTE Computer Networks Iblog.uclm.es/inocentesanchez/files/2018/07/transporte1.pdf · La capa de red es no fiable La fiabilidad se le exige a la capa de transporte.

15

Protocolos no orientados a conexión (II)

Page 16: CAPA DE TRANSPORTE Computer Networks Iblog.uclm.es/inocentesanchez/files/2018/07/transporte1.pdf · La capa de red es no fiable La fiabilidad se le exige a la capa de transporte.

16

Establecimiento previo de conexión lógica

Servicio extremo a extremo

Se puede implementar incluso sobre protocolos no orientados a conexión en la capa de red (por ejemplo IP)

Pueden implementar control de flujo y error

Protocolos orientados a conexión (I)

Page 17: CAPA DE TRANSPORTE Computer Networks Iblog.uclm.es/inocentesanchez/files/2018/07/transporte1.pdf · La capa de red es no fiable La fiabilidad se le exige a la capa de transporte.

17

Protocolos orientados a conexión (II)

Page 18: CAPA DE TRANSPORTE Computer Networks Iblog.uclm.es/inocentesanchez/files/2018/07/transporte1.pdf · La capa de red es no fiable La fiabilidad se le exige a la capa de transporte.

18

Protocolos en la capa de transporte en la pila TCP/IP

Page 19: CAPA DE TRANSPORTE Computer Networks Iblog.uclm.es/inocentesanchez/files/2018/07/transporte1.pdf · La capa de red es no fiable La fiabilidad se le exige a la capa de transporte.

19

Protocolos confiables

Page 20: CAPA DE TRANSPORTE Computer Networks Iblog.uclm.es/inocentesanchez/files/2018/07/transporte1.pdf · La capa de red es no fiable La fiabilidad se le exige a la capa de transporte.

20

Protocolos fiables (I)

Analicemos cómo proporcionar fiabilidad, desde el caso más sencillo hasta un caso real, aumentando la complejidad

Protocolo simple

Parada y espera

Vuelta atrás N (Go Back N, GBN)

Page 21: CAPA DE TRANSPORTE Computer Networks Iblog.uclm.es/inocentesanchez/files/2018/07/transporte1.pdf · La capa de red es no fiable La fiabilidad se le exige a la capa de transporte.

21

Protocolos fiables (II)

Page 22: CAPA DE TRANSPORTE Computer Networks Iblog.uclm.es/inocentesanchez/files/2018/07/transporte1.pdf · La capa de red es no fiable La fiabilidad se le exige a la capa de transporte.

22

Protocolo simple (I)

No orientado a conexión

Suponiendo condiciones ideales

No se necesita control de errores ni de flujo

No es un caso muy realista

Page 23: CAPA DE TRANSPORTE Computer Networks Iblog.uclm.es/inocentesanchez/files/2018/07/transporte1.pdf · La capa de red es no fiable La fiabilidad se le exige a la capa de transporte.

23

Máquina de estados finitos (Finite State Machine, FSM)

Diagrama

de flujo

Protocolo simple (II)

Page 24: CAPA DE TRANSPORTE Computer Networks Iblog.uclm.es/inocentesanchez/files/2018/07/transporte1.pdf · La capa de red es no fiable La fiabilidad se le exige a la capa de transporte.

24

Parada y espera (I)

Orientado a conexión

Control de flujo y error

Confirmación de cada paquete

Checksum (suma de comprobación) para comprobar la integridad

Secuencias numeradas

Necesita una ventana deslizante de tamaño 1

Temporizador

El emisor espera la confirmación del receptor antes de enviar un nuevo paquete

Page 25: CAPA DE TRANSPORTE Computer Networks Iblog.uclm.es/inocentesanchez/files/2018/07/transporte1.pdf · La capa de red es no fiable La fiabilidad se le exige a la capa de transporte.

25

Parada y espera (II)

Page 26: CAPA DE TRANSPORTE Computer Networks Iblog.uclm.es/inocentesanchez/files/2018/07/transporte1.pdf · La capa de red es no fiable La fiabilidad se le exige a la capa de transporte.

26

Máquina de Estados Finitos en Parada y espera

Parada y espera (III-a) con FSM

Page 27: CAPA DE TRANSPORTE Computer Networks Iblog.uclm.es/inocentesanchez/files/2018/07/transporte1.pdf · La capa de red es no fiable La fiabilidad se le exige a la capa de transporte.

27

Parada y espera (III-b) con FSM

Emisor en estado preparado

Cuando llega una petición de la capa de aplicación, crea un paquete con el número de secuencia S, guarda una copia, lo envía, pone en marcha el temporizador y cambia al estado esperando

Emisor en estado esperando

Si llega un ACK correcto con el número esperado, S+1, se desplaza la ventana, finaliza el temporizador y cambia al estado preparado

Si llega un ACK corrupto o con un número no esperado, se descarta y sigue en el estado esperando

Si expira el temporizador, reenvía el paquete, se inicializa el temporizador y sigue en el estado esperando

Page 28: CAPA DE TRANSPORTE Computer Networks Iblog.uclm.es/inocentesanchez/files/2018/07/transporte1.pdf · La capa de red es no fiable La fiabilidad se le exige a la capa de transporte.

28

Parada y espera (III-c) con FSM

Receptor, siempre en estado preparado

Si llega un paquete correcto con el número esperado R, se acepta y se entrega a la capa de aplicación, se actualiza la ventana receptora a R+1 y se envía ACK con dicho número R+1

Si llega un paquete correcto con un número no esperado (distinto de R), se descarta y se envía un ACK con el número esperado, R

Si llega un paquete corrupto, se descarta sin enviar ninguna confirmación ACK

Page 29: CAPA DE TRANSPORTE Computer Networks Iblog.uclm.es/inocentesanchez/files/2018/07/transporte1.pdf · La capa de red es no fiable La fiabilidad se le exige a la capa de transporte.

29

Diagrama de Flujo

ACK anuncia el

nuevo paquete

que espera

Ejemplo de parada y espera

Page 30: CAPA DE TRANSPORTE Computer Networks Iblog.uclm.es/inocentesanchez/files/2018/07/transporte1.pdf · La capa de red es no fiable La fiabilidad se le exige a la capa de transporte.

30

Esperar que un paquete se confirme antes de enviar otro conlleva una pobre eficiencia del canal

Para mejorar la eficiencia del canal, hay que enviar varios paquetes antes de que se confirmen, envío adelantado o pipelined

Flujo continuo de peticiones

Algunos pueden estar pendientes de confirmación

Los errores pueden obligar a volver atrás y retransmitir más de un paquete (de ahí el nombre “vuelta atrás N”)

Ventana deslizante

Más de un paquete pendiente (tamaño ventana >1)

Si se usan m bits para numerar los paquetes, habrá 2m-1 (números de secuencia). Ojo, 2 m-1, no 2 m

Vuelta atrás N, Go-Back-N (GBN)

Page 31: CAPA DE TRANSPORTE Computer Networks Iblog.uclm.es/inocentesanchez/files/2018/07/transporte1.pdf · La capa de red es no fiable La fiabilidad se le exige a la capa de transporte.

31

Ventana deslizante (I)

Números de secuencia módulo 2m, con m bits

Tamaño de la ventana N = 2m -1

Mientras hay hueco dentro de la ventana, se pueden enviar nuevos paquetes

Una confirmación (ACK) provoca el deslizamiento de la ventana hacia la derecha

Sentido deslizamiento

Page 32: CAPA DE TRANSPORTE Computer Networks Iblog.uclm.es/inocentesanchez/files/2018/07/transporte1.pdf · La capa de red es no fiable La fiabilidad se le exige a la capa de transporte.

32

Ventana deslizante con m=3 (II)

Page 33: CAPA DE TRANSPORTE Computer Networks Iblog.uclm.es/inocentesanchez/files/2018/07/transporte1.pdf · La capa de red es no fiable La fiabilidad se le exige a la capa de transporte.

33

Ventana deslizante en GBN (I)

Page 34: CAPA DE TRANSPORTE Computer Networks Iblog.uclm.es/inocentesanchez/files/2018/07/transporte1.pdf · La capa de red es no fiable La fiabilidad se le exige a la capa de transporte.

34

El tamaño de la ventana de recepción es 1

El receptor siempre está esperando la llegada de

un paquete específico

Cualquier paquete que no sea el esperado se

descarta y debe reenviarse

Cada vez que se recibe un paquete esperado, la

ventana se desplaza una posición, a la siguiente

A la izquierda de la ventana están los ya recibidos

y confirmados, mientras que a la derecha están los

paquetes que no pueden ser recibidos

Ventana deslizante en GBN (II)

Page 35: CAPA DE TRANSPORTE Computer Networks Iblog.uclm.es/inocentesanchez/files/2018/07/transporte1.pdf · La capa de red es no fiable La fiabilidad se le exige a la capa de transporte.

35

Justificación del tamaño de la ventana deslizante (I)

Ejemplo para m=2, máximo tamaño ventana = 3

tamaño ventana emisor = 3 tamaño ventana emisor = 4

CORRECTO INCORRECTO

Page 36: CAPA DE TRANSPORTE Computer Networks Iblog.uclm.es/inocentesanchez/files/2018/07/transporte1.pdf · La capa de red es no fiable La fiabilidad se le exige a la capa de transporte.

36

Todos los ACKs se pierden

El tamaño de la ventana debe ser menor (no igual) que 2m,

siendo m el número de bits. Sea, por ejemplo, m=2

Descarte correcto, tamaño máximo ventana emisor = 3, antes de

que expire el temporizador. En este caso se usa ventana tamaño 3

Se envía el paquete 0, el receptor lo recibe y espera el paquete 1

Se envía el paquete 1, el receptor lo recibe y espera el paquete 2

Se envía el paquete 2, el receptor lo recibe y espera el paquete 3

Expira el temporizador y se reenvían los paquetes 0, 1 y 2

Cuando el receptor recibe el paquete 0 la descarta correctamente

porque esperaba el paquete 3

Justificación del tamaño de la ventana deslizante (II)

Page 37: CAPA DE TRANSPORTE Computer Networks Iblog.uclm.es/inocentesanchez/files/2018/07/transporte1.pdf · La capa de red es no fiable La fiabilidad se le exige a la capa de transporte.

37

Todos los ACKs se pierden

Aceptación errónea, tamaño máximo ventana emisor = 3, antes de

que expire el temporizador. En este caso se usa ventana emisor = 4

Se envía el paquete 0, el receptor lo recibe y espera el paquete 1

Se envía el paquete 1, el receptor lo recibe y espera el paquete 2

Se envía el paquete 2, el receptor lo recibe y espera el paquete 3

Se envía el paquete 3, el receptor lo recibe y espera el paquete 0

Expira el temporizador y se reenvían los paquetes 0, 1, 2 y 3

El receptor recibe el paquete 0 reenviado y lo acepta

erróneamente considerando que es el paquete 0 del siguiente ciclo

Justificación del tamaño de la ventana deslizante (III)

Page 38: CAPA DE TRANSPORTE Computer Networks Iblog.uclm.es/inocentesanchez/files/2018/07/transporte1.pdf · La capa de red es no fiable La fiabilidad se le exige a la capa de transporte.

38

Emisor en estado preparado

Si llega una petición de la capa de aplicación, se crea un paquete con un número de secuencia Sn, se guarda una copia, se envía, se incrementa Sn y se pone en marcha el temporizador, y:

Si la ventana no está llena continúa en el estado preparado

Si la ventana sí está llena cambia al estado esperando

Si llega un ACK correcto con el número esperado de uno de los paquetes pendientes, se desplaza la ventana y, si todos los paquetes salientes quedan confirmados, se detiene el temporizador. Si no se confirman todos los paquetes, el temporizador se inicializa

Si llega un ACK corrupto o con un número no esperado, se descarta

Si expira el temporizador, se reenvían todos los paquetes y se inicializa el temporizador

Vuelta atrás N con FSM (I)

Page 39: CAPA DE TRANSPORTE Computer Networks Iblog.uclm.es/inocentesanchez/files/2018/07/transporte1.pdf · La capa de red es no fiable La fiabilidad se le exige a la capa de transporte.

39

Emisor en estado esperando

Si llega un ACK correcto con el número esperado de uno de los paquetes pendientes, se desplaza la ventana, y:

Si se confirman todos los que estaban pendientes, se detiene el temporizador

Si quedan algunos por confirmar se reinicia el temporizador

En ambos casos cambia al estado preparado

Si llega un ACK corrupto o con un número no esperado, se descarta y sigue en el estado esperando

Si expira el temporizador, se reenvían de nuevo todos los paquetes, se inicializa el temporizador y sigue en el estado esperando

Vuelta atrás N con FSM (II)

Page 40: CAPA DE TRANSPORTE Computer Networks Iblog.uclm.es/inocentesanchez/files/2018/07/transporte1.pdf · La capa de red es no fiable La fiabilidad se le exige a la capa de transporte.

40

Receptor, siempre en estado preparado.

Rn se inicializa a 0

Si llega un paquete correcto con el número Rn esperado, se acepta y se entrega a la capa de aplicación, se actualiza la ventana receptora a Rn+1 y se envía ACK con el número Rn+1

Si llega un paquete correcto con un número no esperado, se descarta y se envía un ACK con el número esperado Rn

Si llega un paquete corrupto, se descarta

Vuelta atrás N con FSM (III)

Page 41: CAPA DE TRANSPORTE Computer Networks Iblog.uclm.es/inocentesanchez/files/2018/07/transporte1.pdf · La capa de red es no fiable La fiabilidad se le exige a la capa de transporte.

41

Vuelta atrás N con FSM (IV)

Page 42: CAPA DE TRANSPORTE Computer Networks Iblog.uclm.es/inocentesanchez/files/2018/07/transporte1.pdf · La capa de red es no fiable La fiabilidad se le exige a la capa de transporte.

42

Tamaño ventana = 1

para el receptor m = 3

Tamaño ventana = 23 -1 = 7

para el emisor

Ejemplo de vuelta atrás N

Ejemplo con ACK

perdido

Page 43: CAPA DE TRANSPORTE Computer Networks Iblog.uclm.es/inocentesanchez/files/2018/07/transporte1.pdf · La capa de red es no fiable La fiabilidad se le exige a la capa de transporte.

43

Explicación del ejemplo

Todos los paquetes enviados viajan correctamente, pero algún acuse

de recibo (ACK) se pierde, sin llegar a expirar el temporizador

Se envía el paquete 0 y se recibe ACK1

El emisor sabe que ha llegado el paquete 0 y pasa a enviar el paquete 1

Se envía el paquete 1 y no se recibe ACK2

El emisor no sabe si se ha perdido el paquete 1 o el ACK2

El receptor sí sabe que ha llegado el paquete 1, pero no sabe que se ha perdido

ACK2

Se envían los paquetes 2 y 3 y queda pendiente de confirmar el paquete 1

El emisor recibe ACK3 que confirma que se han recibido el paquete 2 e

indirectamente el paquete 1, quedando pendiente de confirmar el paquete 3

En el siguiente evento del emisor, se recibe ACK4 que confirma el paquete 3

No queda ningún paquete pendiente de confirmar

El emisor queda preparado para enviar más paquetes cuando lo solicite la capa de

aplicación

Page 44: CAPA DE TRANSPORTE Computer Networks Iblog.uclm.es/inocentesanchez/files/2018/07/transporte1.pdf · La capa de red es no fiable La fiabilidad se le exige a la capa de transporte.

44

Otro ejemplo de vuelta atrás N

Ejemplo con

paquete

perdido

Page 45: CAPA DE TRANSPORTE Computer Networks Iblog.uclm.es/inocentesanchez/files/2018/07/transporte1.pdf · La capa de red es no fiable La fiabilidad se le exige a la capa de transporte.

45

Todos los acuses de recibo viajan correctamente, pero algún paquete

se pierde

Se envía el paquete 0 y se recibe ACK1

El emisor sabe que ha llegado el paquete 0 y pasa a enviar los paquetes 1, 2 y 3

Se envían los paquetes 1, 2 y 3, pero el paquete 1 se pierde

El receptor recibe los paquetes 2 y 3 pero los descarta porque esperaba el paquete 1

Expira el temporizador y vuelven a reenviarse los paquetes 1, 2 y 3

Llega por primera vez a su destino el paquete 1 y se envía el ACK2

Cuando llega ACK2, después de haber enviado los paquetes 1, 2 y 3, el paquete 1

deja de estar pendiente de confirmación y se desliza la ventana una posición

Lo mismo ocurre cuando llega ACK3

Lo mismo ocurre cuando llega ACK4

Explicación del ejemplo