PDF de programación - Transporte Introducción y transporte fiable

<<>>
Imágen de pdf Transporte Introducción y transporte fiable

Transporte Introducción y transporte fiablegráfica de visualizaciones

Publicado el 2 de Junio del 2017
483 visualizaciones desde el 2 de Junio del 2017
933,4 KB
48 paginas
REDES
Área de Ingeniería Telemática

Transporte

Introducción y transporte fiable

Area de Ingeniería Telemática

http://www.tlm.unavarra.es

Redes

4º Ingeniería Informática

a
c
i
t

l



á
m
e
e
T
a
í
r
e
n
e
g
n

i

I


S
E
D
E
R

e
d



a
e
r
Á

Hoy...

1. Introducción a las redes
2. Tecnologías para redes de área local
3. Conmutación de circuitos
4. Tecnologías para redes de área extensa y última milla
5. Encaminamiento
6. Arquitectura de conmutadores de paquetes
7. Control de acceso al medio
8. Transporte extremo a extremo

a
c
i
t

l



á
m
e
e
T
a
í
r
e
n
e
g
n

i

I


S
E
D
E
R

e
d



a
e
r
Á

Objetivos
• ¿Qué es el nivel de transporte?
• ¿Qué problemas resuelve?

– Multiplexación << bien conocido ya
– Transporte fiable
– Control de flujo
– Control de congestion

• ¿Qué velocidades consigue?

¿Qué limitaciones tiene?

• Nivel de transporte en Internet

– Protocolos TCP y UDP
– UDP << fácil de entender y bien conocido
– Cómo funciona TCP

3

a
c
i
t

l



á
m
e
e
T
a
í
r
e
n
e
g
n

i

I


S
E
D
E
R

e
d



a
e
r
Á

Red y transporte

• Nivel de red: Comunicación lógica entre hosts



Envía este paquete al nivel de transporte de la dirección IP a.b.c.d
He recibido este paquete de la dirección IP x.y.z.t
No garantiza que todos los paquetes acaben llegando

• Nivel de transporte: Comunicación lógica entre procesos

App 1

Transporte

App 1

Transporte

Red

Red

Red

Red

Red

Enlace

Enlace

Enlace

Enlace

Enlace

4

a
c
i
t

l



á
m
e
e
T
a
í
r
e
n
e
g
n

i

I


S
E
D
E
R

e
d



a
e
r
Á

Funciones del nivel de transporte

lógica

• Comunicación
entre aplicaciones
– Puede haber más de una
aplicación en cada dirección
IP

– Las aplicaciones quieren
que todo lo que envían
llegue

– Las aplicaciones ¿envían
mensajes o establecen
llamadas?

• H a y 2 n i v e l e s d e
transporte en Internet con
diferentes servicios/
funciones

Transporte

Red

Enlace

Red

Enlace

Red

Enlace

Canal lógico

Red

Enlace

Red

Enlace

Transporte

Red

Enlace

5

Transporte en Internet

a
c
i
t

l



á
m
e
e
T
a
í
r
e
n
e
g
n

i

I


S
E
D
E
R

e
d



a
e
r
Á

• Entrega fiable y en orden

(TCP)
– Garantiza que los datos llegan y llegan

en orden

– Control de flujo
– Control de congestión
– Las aplicaciónes ven conexiones/
• Entrega no fiable, sin

llamadas/sesiones

garantias de orden (UDP)
– Las aplicaciones envían mensajes
– No se garantiza que lleguen

• En los dos casos

– No se garantiza tiempo de llegada
– No se garantiza ancho de banda

Transporte

Red

Enlace

Red

Enlace

Red

Enlace

Red

Enlace

Red

Enlace

Transporte

Red

Enlace

6

a
c
i
t

l



á
m
e
e
T
a
í
r
e
n
e
g
n

i

I


S
E
D
E
R

e
d



a
e
r
Á

Funciones TCP/UDP

• Función común

Multiplexación/demultiplexación de aplicaciones

• Funciones sólo UDP

– Envio no orientado a conexión

• Funciones sólo TCP
– Manejo de conexiones
– Transporte fiable de datos
– Control de flujo
– Control de congestión

7

a
c
i
t

l



á
m
e
e
T
a
í
r
e
n
e
g
n

i

I


e
d



a
e
r
Á

S
E
D
E
R

Transporte fiable

• Si hubiera un “Top ten” problemas de
redes el transporte fiable sería un buen
candidato para el primer puesto

Kurose

8

a
c
i
t

l



á
m
e
e
T
a
í
r
e
n
e
g
n

i

I


S
E
D
E
R

e
d



a
e
r
Á

Transporte fiable

• ¿Se puede conseguir un transporte fiable sobre un nivel

de datagramas de entrega no fiable?

t_envia(datos)

Nivel de
Transporte

Protocolo de
transporte fiable

r_envia(datos)

Nivel de Red

t_recibe(datos)

Protocolo de
transporte fiable
r_recibe(datos)

Entrega no garantizada
se pueden perder datos

9

a
c
i
t

l



á
m
e
e
T
a
í
r
e
n
e
g
n

i

I


S
E
D
E
R

e
d



a
e
r
Á

Protocolo de transporte fiable

• Descripción protocolo (=programa)


con máquinas de estados finitos
– Eventos que pueden ocurrir
– Acciones como resultado de esos eventos

• Emisor y receptor son diferentes programas y estan en general en
distinto estado (normalmente ni siquiera su conjunto de estados es el
mismo)

10

a
c
i
t

l



á
m
e
e
T
a
í
r
e
n
e
g
n

i

I


S
E
D
E
R

e
d



a
e
r
Á

Protocolo de transporte fiable
• Ejemplo: protocolo de transporte sobre

un nivel de red fiable

• Diagrama de estados de emisor y

receptor

Emisor

Receptor

red fiable:
r_envia(p) siempre causa un r_recibe(p)

11

a
c
i
t

l



á
m
e
e
T
a
í
r
e
n
e
g
n

i

I


e
d



a
e
r
Á

S
E
D
E
R

Ejemplo

• Todo lo que envío

llega

• La red puede retrasar
los paquetes pero
acaba entregandolos
todos

• Algún problema si los
entrega siempre pero
en desorden??

Emisor

Receptor

r_send(paq0)

paq0

r_send(paq1)

r_send(paq2)
r_send(paq3)

paq1

paq2

paq3

r_recv(paq0)

r_recv(paq1)

r_recv(paq2)

r_recv(paq3)

Operación normal

12

a
c
i
t

l



á
m
e
e
T
a
í
r
e
n
e
g
n

i

I


S
E
D
E
R

e
d



a
e
r
Á

Errores de bit

• Pero... el nivel de red puede cambiar bits (probabilidad de error)
• Cambios necesarios en el protocolo de transporte

– Detección de errores

• Uso de checksum

– Comunicación de fallos al emisor

• ACK (acknowledgement): avisar al emisor de los paquetes que recibimos.
• NACK (negative acknowledgement): avisar al emisor de los paquetes que no

recibimos

– Reenvío de paquetes

• El protocolo de transporte fiable debe retransmitir automaticamente los
errores. Esto se conoce tipicamente como ARQ (Automatic Repeat
reQuest)

13

a
c
i
t

l



á
m
e
e
T
a
í
r
e
n
e
g
n

i

I


e
d



a
e
r
Á

S
E
D
E
R

Protocolo de transporte fiable

• Para un canal con errores de bits

– Usamos detección de errores con checksum/CRC
– Informamos al emisor de si llegan o no

Emisor

Receptor

14

a
c
i
t

l



á
m
e
e
T
a
í
r
e
n
e
g
n

i

I


S
E
D
E
R

e
d



a
e
r
Á

Stop-and-wait

• El emisor controlado por el

receptor
– ACK (recibido OK manda

otro)

– NACK (recibido mal manda

otra vez el mismo)

– Mientras no me dice nada

no envío

• D e h e c h o e s t o p u e d e
considerarse también control
de
flujo (el emisor envia
cuando el receptor
le da
permiso) = regulación de flujo
por el receptor

Emisor

Receptor

r_send(paq0)

paq0

r_recv(ack)
r_send(paq1)

r_recv(nack)
r_send(paq1)

r_recv(nack)
r_send(paq1)

r_recv(nack)
r_send(paq2)

r_recv(paq0)
r_send(ack)

ack

paq1 corrompido

nack

r_recv(paq1 err)
r_send(nack)

paq1 corrompido

nack

paq1

ack

paq2

ack

r_recv(paq1 err)
r_send(nack)

r_recv(paq1)
r_send(ack)

r_recv(paq2)
r_send(ack)

15

a
c
i
t

l



á
m
e
e
T
a
í
r
e
n
e
g
n

i

I


S
E
D
E
R

e
d



a
e
r
Á

Problemas con stop-and-wait

• ¿Qué pasa si hay un error en la

transmisión del ACK o NACK?

Emisor

Receptor

r_send(paq0)

paq0

• S o l u c i o n e s c o m p l i c a n e l

protocolo
– Detección de errores para

ACK y NACK?

– Checksums que permitan
no solo detectar sino
corregir errores?

– Reenviar los datos si no

entiendo el ACK/NACK ??

• Nuevo problema: paquetes

duplicados

r_recv(ack)
r_send(paq1)

r_recv(no se)
r_send(paq1)

r_recv(ack)
r_send(paq2)

r_recv(no se)
r_send(paq2)

Ok 0

ack

Paq1 corrompido

Mal 1

nack
nack corrompido

Ok 1

Ok 2

ack

paq2

ack

paq2

ack corrompido

ack

Paq 2
recibido 2 veces

16

a
c
i
t

l



á
m
e
e
T
a
í
r
e
n
e
g
n

i

I


S
E
D
E
R

e
d



a
e
r
Á

Solución

• Los protocolos más usados utilizan contra esto

numeros de secuencia del paquete

• El paquete va etiquetado con un numero de
secuencia que permite confirmralo/rechazarlo
indicando cual

• El numero de secuencia es un campo del
paquete por lo que podrá tener una serie finita de
valores

• Aunque es fácil asignar bits para que el numero
de secuencia pueda crecer mucho antes de dar
la vuelta, veamos primero las bases con
numeros de secuencia en rangos limitados

17

a
c
i
t

l



á
m
e
e
T
a
í
r
e
n
e
g
n

i

I


S
E
D
E
R

e
d



a
e
r
Á

Protocolo con número de secuencia
• 1 bit para número de secuencia
Cada paquete de datos es secuencia 0 o 1

– Si llega el que esperamos mandamos ACK y lo entregamos
– Si llega el que no esperamos?
mandamos ACK pero no son datos nuevos

18

a
c
i
t

l



á
m
e
e
T
a
í
r
e
n
e
g
n

i

I


e
d



a
e
r
Á

S
E
D
E
R

Protocolo con número de secuencia
• Estados del emisor

19

a
c
i
t

l



á
m
e
e
T
a
í
r
e
n
e
g
n

i

I


S
E
D
E
R

e
d



a
e
r
Á

Ejemplo

• El receptor solo entrega a
la aplicación el paquete
correcto

• En lugar de enviar ACK o
NACK podria enviar cual
espero
– A C K + 0 =
esperando el 0
(igual lo llamabais RR0


Ready to receive 0)
– A C K + 1 = e s t o y

e s t o y

esperando el 1

Emisor

Receptor

r_send(paq0)

paq0

r_recv(ack)
r_send(paq1)

r_recv(no se)
r_send(paq1)

r_recv(ack)
r_send(paq0)

r_recv(no se)
r_send(paq0)

Ok 0

ack

Paq1 corrompido

Mal 1

nack
nack corrompido

Ok 1

Ok 0

ack

paq0

ack

paq0

ack corrompido

ack

Esperado 1
Ack pero
ya lo tenia

20

– Stop and wait
– Con numeros de secuencia para no

entregar duplicados

– Con ACK que indica cual es el dato que

• Garantiza fiabilidad sobre un canal con

• Protocolo

a
c
i
t

l



á
m
e
e
T
a
í
r
e
n
e
g
n

i

I


e
d



a
e
r
Á

S
E
D
E
R

espero

errores de bits

• Problemas

Hasta ahora

– ¿Y si se pueden perder paquetes?
– Cómo de rápido es el protocolo

21

a
c
i
t

l



á
m
e
e
T
a
í
r
e
n
e
g
n

i

I


e
d



a
e
r
Á

S
E
D
E
R

Eficiencia

• Cuanto se tardan en transferir s bytes

con un protocolo de este tipo?
– Dividimos en paquetes de tamaño c

s/c paquetes

Emisor

Receptor

Round-trip time
RTT

Cuanto se tarda en enviar un paquete?
Si no hay errores 1 RTT
Si hay errores 2 RTTs?

Y si hay errores en la retransmision?

paq0

ack1

paq1

ack1

paq1

ack0

22

a
c
i
t

l



á
m
e
e
T
a
í
r
e
n
e
g
n

i

I


S
E
D
E
R

e
d



a
e
r
Á

Tiempo transmisión de un paquete
• Tiempo para transferir 1 paquete
si la probabilidad de que un paquete se pierda es
  • Links de descarga
http://lwp-l.com/pdf3987

Comentarios de: Transporte Introducción y transporte fiable (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad