Actualizado el 30 de Junio del 2017 (Publicado el 19 de Junio del 2017)
438 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
Comentarios de: Transporte fiable (0)
No hay comentarios