Publicado el 6 de Junio del 2017
476 visualizaciones desde el 6 de Junio del 2017
1,3 MB
45 paginas
Creado hace 15a (12/05/2009)
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
,
a
c
i
t
l
á
m
e
e
T
a
í
r
e
n
e
g
n
i
I
e
d
a
e
r
Á
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
Temario
Introducción
•
• Arquitecturas, protocolos y estándares
• Conmutación de paquetes
• Conmutación de circuitos
• Tecnologías
• Control de acceso al medio en redes de área local
• Servicios de Internet
1/44
,
a
c
i
t
l
á
m
e
e
T
a
í
r
e
n
e
g
n
i
I
e
d
a
e
r
Á
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
Temario
Introducción
1.
2. Arquitecturas, protocolos y estándares
3. Conmutación de paquetes
•
•
Principios
Problemas básicos
•
•
•
•
•
Como funcionan los routers (Nivel de red)
Encaminamiento (Nivel de red)
Transporte fiable (Nivel de transporte en TCP/IP)
Control de flujo (Nivel de transporte en TCP/IP)
Control de congestión (Nivel de transoporte en TCP/IP)
4. Conmutación de circuitos
5. Tecnologías
6. Control de acceso al medio en redes de área local
7. Servicios de Internet
2/44
,
a
c
i
t
l
á
m
e
e
T
a
í
r
e
n
e
g
n
i
I
e
d
a
e
r
Á
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
Temario
Introducción
1.
2. Protocolos y arquitectura
3. Redes de área local
4. Protocolos de Internet
5. Conmutación de paquetes
6. Conmutación de circuitos
7. Gestión de recursos en conmutadores
8. Protocolos de control de acceso al medio
3/44
Temario
,
a
c
i
t
l
á
m
e
e
T
a
í
r
e
n
e
g
n
i
I
e
d
a
e
r
Á
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
Introducción
1.
2. Protocolos y arquitectura
3. Redes de área local
4. Protocolos de Internet
5. Conmutación de paquetes
•
•
Principios
Problemas básicos
•
Encaminamiento
+ arquitectura de routers
•
Transporte fiable (hoy: principios básicos)
•
Control de flujo
•
•
Control de congestión
6. Conmutación de circuitos
7. Gestión de recursos en conmutadores
8. Protocolos de control de acceso al medio
4/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
Á
Material
Del Capitulo 3 de
Kurose & Ross,
“Computer Networking a top-down approach
featuring the Internet”
Addison Wesley
5/44
,
a
c
i
t
l
á
m
e
e
T
a
í
r
e
n
e
g
n
i
I
e
d
a
e
r
Á
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
Transporte fiable
• Si hubiera un “Top ten” problemas de
redes el transporte fiable sería un buen
candidato para el primer puesto
Kurose
6/44
,
a
c
i
t
l
á
m
e
e
T
a
í
r
e
n
e
g
n
i
I
e
d
a
e
r
Á
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
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
7/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
c
i
t
l
á
m
e
e
T
a
í
r
e
n
e
g
n
i
I
e
d
a
e
r
Á
a 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)
8/44
,
a
c
i
t
l
á
m
e
e
T
a
í
r
e
n
e
g
n
i
I
e
d
a
e
r
Á
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
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)
9/44
,
a
c
i
t
l
á
m
e
e
T
a
í
r
e
n
e
g
n
i
I
e
d
a
e
r
Á
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
Ejemplo
• Todo lo que envío
llega
• La red puede
retrasar los
paquetes pero
acaba
entregandolos todos
• Algun 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
10/44
,
a
c
i
t
l
á
m
e
e
T
a
í
r
e
n
e
g
n
i
I
e
d
a
e
r
Á
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
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)
11/44
,
a
c
i
t
l
á
m
e
e
T
a
í
r
e
n
e
g
n
i
I
e
d
a
e
r
Á
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
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
• Más conocido como Stop-and-Wait
12/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
Á
Stop-and-wait
Emisor
r_send(paq0)
• 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
• De hecho esto puede
considerarse también
control de flujo (el emisor
envia cuando el receptor le
da permiso) = regulación de
flujo por el receptor
r_recv(ack)
r_send(paq1)
r_recv(nack)
r_send(paq1)
r_recv(nack)
r_send(paq1)
r_recv(nack)
r_send(paq2)
Receptor
r_recv(paq0)
r_send(ack)
paq0
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)
13/44
a Problemas con stop-and-wait
,
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
c
i
t
l
á
m
e
e
T
a
í
r
e
n
e
g
n
i
I
e
d
a
e
r
Á
• ¿Qué pasa si hay un error
en la transmisión del ACK o
NACK?
• Soluciones complican el
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
Emisor
Receptor
r_send(paq0)
paq0
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
14/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
Á
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
15/44
,
a
c
i
t
l
á
m
e
e
T
a
í
r
e
n
e
g
n
i
I
e
d
a
e
r
Á
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
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
16/44
,
a
c
i
t
l
á
m
e
e
T
a
í
r
e
n
e
g
n
i
I
e
d
a
e
r
Á
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
Protocolo con número de secuencia
• Estados del emisor
17/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
Á
Ejemplo
• El receptor solo
entrega a la aplicación
el paquete correcto
• En lugar de enviar ACK
o NACK podria enviar
cual espero
– ACK + 0 = estoy
esperando el 0
(igual lo llamabais RR0
Ready to receive 0)
– ACK + 1 = estoy
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
18/44
Hasta ahora
• Protocolo
,
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
Á
– Stop and wait
– Con numeros de secuencia para no
entregar duplicados
– Con ACK que indica cual es el dato que
espero
• Garantiza fiabilidad sobre un canal con
errores de bits
• Problemas
– ¿Y si se pueden perder paquetes?
– Cómo de rápido es el protocolo
19/44
,
a
c
i
t
l
á
m
e
e
T
a
í
r
e
n
e
g
n
i
I
e
Comentarios de: Transporte Fiable (0)
No hay comentarios