PDF de programación - Transporte fiable

<<>>
Imágen de pdf Transporte fiable

Transporte fiablegráfica de visualizaciones

Actualizado el 30 de Junio del 2017 (Publicado el 19 de Junio del 2017)
372 visualizaciones desde el 19 de Junio del 2017
259,0 KB
17 paginas
ARQUITECTURA DE REDES, SISTEMAS Y SERVICIOS
Área de Ingeniería Telemática

Transporte fiable

Area de Ingeniería Telemática

http://www.tlm.unavarra.es

Arquitectura de Redes, Sistemas y Servicios

3º Ingeniería de Telecomunicación

Prestaciones

El protocolo anterior es fiable sigue siendo muy poco eficiente
Ejemplo:
Enlace de 1Gbps con un retardo de 15ms (4500Km), paquetes de 1000 bytes
A que velocidad puedo enviar?
Si los paquetes se pierden con probabilidad p
RTT con probabilidad (1-p)
RTT+TO con probabilidad (1-p)*p
RTT+2TO con probabilidad (1-p)*p2

RTT+n*TO con probabilidad (1-p)*pn
El timeout se procura elegir del orden del RTT
– Mayor implica que reaccionamos despacio a los errores
– Menor implica que se retransmiten paquetes que no hacia falta
Las prestaciones son parecidas al anterior, pero con p probabilidad de perdida del
paquete. Normalmente en Internet
P(perdidadelpaqete) >> P(corrupciondelpaquete)

,

I

I



S
E
D
E
R
E
D
A
R
U
T
C
E
T
U
Q
R
A

S
O
C
V
R
E
S
Y
S
A
M
E
T
S
S

I

I



a
c
i
t

l



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

i

I


e
d



a
e
r
Á
















/44

,



I

I

S
E
D
E
R
E
D
A
R
U
T
C
E
T
U
Q
R
A

S
O
C
V
R
E
S
Y
S
A
M
E
T
S
S

I



I

a
c
i
t

l



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

i

I


e
d



a
e
r
Á

Conclusiones

• Hay mecanismos y protocolos que permiten conseguir

un transporte fiable sobre una red no fiable

• Pero y las prestaciones?
Si me bajo un fichero de 900MB por HTTP desde un

servidor. El ping a ese servidor es de 60ms. Y mi
acceso a Internet es de empresa a 100Mbps. Cuánto
tardare como mínimo? Estoy limitado por el acceso?

/44

,

I

I



S
E
D
E
R
E
D
A
R
U
T
C
E
T
U
Q
R
A

S
O
C
V
R
E
S
Y
S
A
M
E
T
S
S

I

I



a
c
i
t

l



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

i

I


e
d



a
e
r
Á

Protocolos más eficientes

• Para aumentar la eficiencia, se envían varios paquetes

(ventana de paquetes) mientras llega el ACK
Varios paquetes en la red por confirmar
– Se usan más números de secuencia que 0 y 1
– Emisor y receptor necesitarán buffer para varios paquetes
– Varias políticas para reaccionar a los errores

• Go-Back N
• Selective repeat

Emisor
paq 0
paq 1
paq 2
paq 3

Receptor

ack 0

/44

,

I

I



S
E
D
E
R
E
D
A
R
U
T
C
E
T
U
Q
R
A

S
O
C
V
R
E
S
Y
S
A
M
E
T
S
S

I

I



a
c
i
t

l



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

i

I


e
d



a
e
r
Á

Go back-N

• Se utiliza número de secuencia en el

paquete

• Se permite una ventana de N paquetes

sin confirmar

• Cada ACK confirma todos los

paquetes anteriores (cumulative ACK)

• Timeout al iniciar la ventana
• Si caduca el timeout se retransmite la

ventana

/44

Eventos en el emisor (Go back-N)

,



I

I

S
E
D
E
R
E
D
A
R
U
T
C
E
T
U
Q
R
A

S
O
C
V
R
E
S
Y
S
A
M
E
T
S
S



I

I

a
c
i
t

l



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

i

I


e
d



a
e
r
Á

• Recibo un ACK

– Avanza la ventana hasta la posición

confirmada

– Envía los siguientes paquetes hasta llenar la

– Reinicia el timeout si envías paquetes

ventana

nuevos

• Caduca el timeout del primer paquete

de la ventana
– Reenvía todos los paquetes de la ventana
– Reinicia el timeout

/44



I



I

S
E
D
E
R
E
D
A
R
U
T
C
E
T
U
Q
R
A

S
O
C
V
R
E
S
Y
S
A
M
E
T
S
S

I



I

a
c
i
t

l



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

i

I


e
d



a
e
r
Á

Eventos en el emisor (Go back n)

,

• Ventana deslizante

enviados
no ACKed

se pueden
enviar

transmitidos
ACKed

Ventana de N paquetes

no se pueden
enviar

Llega este ACK

Timeout del primer paquete

pueden enviarse
nuevos paquetes

La ventana se desliza hacia
mayores números de secuencia

Volvemos a enviar

/44

,



I

I

S
E
D
E
R
E
D
A
R
U
T
C
E
T
U
Q
R
A

S
O
C
V
R
E
S
Y
S
A
M
E
T
S
S

I



I



a
c
i
t

l



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

i

I


e
d



a
e
r
Á

Eventos en el receptor (Go back-N)
• Llega el paquete esperado

– Envía un ACK indicando el siguiente

esperado

– Entrega datos al nivel superior

• Llega otra paquete

– Envía un ACK indicando el paquete que

estoy esperando

– Descarta los datos

/44

,

I

I



S
E
D
E
R
E
D
A
R
U
T
C
E
T
U
Q
R
A

S
O
C
V
R
E
S
Y
S
A
M
E
T
S
S

I

I



a
c
i
t

l



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

i

I


e
d



a
e
r
Á

Go back-N

Ventana de 4 paquetes

Emisor
paq 0
paq 1
paq 2
paq 3
paq 4
paq 5

timeout paq 2
paq 2
paq 3
paq 4
paq 5

...

Receptor

Ok 0
Ok 1

ack 1
ack 2

ack 2
ack 2
ack 2

Ok 2
Ok 3
Ok 4

ack 3
ack 4
ack 5

/44

,



I

I

S
E
D
E
R
E
D
A
R
U
T
C
E
T
U
Q
R
A

S
O
C
V
R
E
S
Y
S
A
M
E
T
S
S

I



I



a
c
i
t

l



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

i

I


e
d



a
e
r
Á

Selective Repeat

• El receptor confirma (ACK) individualmente cada

paquete
– Mantiene en buffer los paquetes recibidos a la espera de
reconstruir la secuencia y pasarlos al nivel de aplicación

Ventana

paquetes recibidos que no pueden
pasarse todavía al nivel de aplicacion
• Se reenvian los paquetes no confirmados por timeout

– Timeout individual por cada paquete

• Ventana de N paquetes que pueden enviarse sin

recibir ACK

/44

,

Eventos en el emisor (SR)



I



I

S
E
D
E
R
E
D
A
R
U
T
C
E
T
U
Q
R
A

S
O
C
V
R
E
S
Y
S
A
M
E
T
S
S

I

I



a
c
i
t

l



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

i

I


e
d



a
e
r
Á

• ACK recibido

– Se cancela el timeout de ese paquete
– Si se puede avanzar la ventana se avanza hasta

donde se pueda

– Si la ventana avanza se envían paquetes nuevos si

hay disponibles y se inician sus timeouts

• Timeout de un paquete

– El paquete se reenvía
– Se reinicia el timeout de ese paquete

/44

,



I



I

S
E
D
E
R
E
D
A
R
U
T
C
E
T
U
Q
R
A

S
O
C
V
R
E
S
Y
S
A
M
E
T
S
S



I

I

a
c
i
t

l



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

i

I


e
d



a
e
r
Á

Eventos en el receptor (SR)
• El receptor tiene un buffer (y por tanto ventana)

limitada

• Recibidos datos en la ventana

– Se envía ACK de ese paquete
– Se guarda el paquete en su posicion del buffer
– Si el paquete es el esperado se entregan todos los paquetes

continuos disponibles en la ventana al nivel superior y se
avanza hasta donde se pueda

• Recibidos datos anteriores a la ventana

– Se ignoran los datos
– Se envía ACK de ese paquete

• Recibidos datos posteriores a la ventana

– Se ignoran y no se envía nada

/44

,

I

I



S
E
D
E
R
E
D
A
R
U
T
C
E
T
U
Q
R
A

S
O
C
V
R
E
S
Y
S
A
M
E
T
S
S

I

I



a
c
i
t

l



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

i

I


e
d



a
e
r
Á

Selective Repeat

•Ventana deslizante del emisor
se pueden
enviar

confirmados
ACKed

enviados
no ACKed

transmitidos
ACKed
•Ventana deslizante del receptor

Ventana de N paquetes

no se pueden
enviar

esperados

recibidos y confirmados
en espera de poder entregarse

aceptables

confirmados
y entregados

Ventana de N paquetes

no aceptables
fuera de la ventana

/44

,



I

I

S
E
D
E
R
E
D
A
R
U
T
C
E
T
U
Q
R
A

S
O
C
V
R
E
S
Y
S
A
M
E
T
S
S



I

I

a
c
i
t

l



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

i

I


e
d



a
e
r
Á

Selective repeat

Ventana de 4 paquetes

...

Emisor
paq 0
paq 1
paq 2
paq 3
paq 4
paq 5

timeout

paq 2

paq 6

Receptor

ack 0
ack 1

ack 3
ack 4
ack 5

ack 2

ack 6

Aquí ACK no indica
el que espero recibir
sino indica el que confirmo

/44

El problema del selective repeat

,

I

I



S
E
D
E
R
E
D
A
R
U
T
C
E
T
U
Q
R
A

S
O
C
V
R
E
S
Y
S
A
M
E
T
S
S

I

I



a
c
i
t

l



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

i

I


e
d



a
e
r
Á

• Número de

secuencia finito

• Ejemplo

– seq= {0,1,2,3}
– N=3

• El receptor no
puede notar la
diferencia entre los
dos escenarios
• Y entrega datos
duplicados como
buenos

• Que relación debe

haber entre
#secuencia y N?

0 1 2 3 0 1 2 3
0 1 2 3 0 1 2 3
0 1 2 3 0 1 2 3

0 1 2 3 0 1 2 3

0 1 2 3 0 1 2 3
0 1 2 3 0 1 2 3
0 1 2 3 0 1 2 3

0 1 2 3 0 1 2 3
0 1 2 3 0 1 2 3
0 1 2 3 0 1 2 3

0 1 2 3 0 1 2 3
0 1 2 3 0 1 2 3
0 1 2 3 0 1 2 3

0 1 2 3 0 1 2 3

paq duplicado
entregado !!!

0 1 2 3 0 1 2 3
0 1 2 3 0 1 2 3
0 1 2 3 0 1 2 3

0 1 2 3 0 1 2 3

paq correcto
entregado

/44

,



I

I

S
E
D
E
R
E
D
A
R
U
T
C
E
T
U
Q
R
A

S
O
C
V
R
E
S
Y
S
A
M
E
T
S
S



I



I

a
c
i
t

l



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

i

I


e
d



a
e
r
Á

Go back-N y Selective Repeat

• Transporte fiable garantizado (en un

escenario en el que se pierdan paquetes)

• Eficiencia mejor que stop-and-wait
• Cuanto mejor?

Emisor

w1

Receptor

RTT

– Análisis exacto más difícil. Aproximación

tipica para caso mejor
1 ventana cada RTT

v=tamañoventana/RTT


• También proporcionan control de flujo

dado que permiten al emisor enviar datos
limitados por la ventana

w2

w3

/44

,

I



I

S
E
D
E
R
E
D
A
R
U
T
C
E
T
U
Q
R
A

S
O
C
V
R
E
S
Y
S
A
M
E
T
S
S



I

I



a
c
i
t

l



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

i

I


e
d



a
e
r
Á

Conclusiones

• Hay mecanismos y protocolos que permiten conseguir

un transporte fiable sobre una red no fiable

• Incluso hay mecanismos que permiten conseguir un

transporte fiable y razonablemente eficiente, utilizando
números de secuencia y ventanas deslizantes

Si me bajo un fichero de 900MB por HTTP desde un

servidor. El ping a ese servidor es de 60ms. Y mi
acceso a Internet es de empresa a 100Mbps. Cuánto
tardare como mínimo? Estoy limitado por el acceso?

• Estos principios serán las bases para los protocolos de

transporte de Internet

Próxima clase:
• protocolo de transporte de Internet TCP

/44
  • Links de descarga
http://lwp-l.com/pdf4485

Comentarios de: 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