Está en la página 1de 59

MAPA FIBRA OPTICA PER

ZONA NORTE

ZONA CENTRO

ZONA SUR

RED DORSAL IDEAL

TRANSFERENCIA DE DATOS
UNSAAC, CUSCO, PER MADRID, ESPAA

A continuacin se muestra el proceso de envo de datos de forma segura, ya que en el envo de datos no interesa ni el origen ni el destino, ni la distancia entre emisor y receptor, lo que se respeta es la siguiente manera de enviar archivos.

Transferencia confiable de datos Principios:


Importante en las capas de aplicacin, transporte, y enlace En la lista de los 10 primeros temas importantes del networking!

Transferencia confiable de datos


Principios:

Transferencia de datos confiable: Principios

Figura: Transferencia confiable de datos: Modelo del servicio e implementacin del servicio.

Transferencia confiable de datos

Comenzando:

u p e ri r ( e . g ., p o r l a p .). e l ve r_ds ta (): slame a d a g a r a la cap a ra ep e ri grad e o s d a to s o a d Pa sa l a d a to l a n tre p o e lrd t p a su n treo r ll i o

lado emiso r

lado recepto r

l a m a d a p o r e l rd t, l rd t_rcv (): l a m a d a cu a n d o e l l e ri e lp a q u e te so b re e l ca n a l n o -co n fi b lp a q u e ce p to r. a a ll d o r a e a l re te a rri b a re ce p to r d e l ca n a l .

Transferencia confiable de datos: Comenzando


Incrementalmente se desarrollar los lados emisor, receptor del protocolo de transferencia confiable de datos (rdt) Se considerar solo la transferencia unidireccional de datos pero la informacin de control fluir en ambas direcciones! Se usar mquinas de estado finito (FSM) para e receptor especificar el emisor, elve n to ca u sa n d o la tra n sici n d e

sta d o : cu a n d o se e

e sta d o s a cci n e s to m a d a s e n l tra n si n d e o a ci e sta d o

e st e n e ste e sta d o e l si u i n te e sta d o g e u n ca m e n te vo d e te rm i a d o p o r e l n si u i n te e ve n to g e

Estado 1

evento acciones

Estado 2

rdt1.0: transferencia confiable sobre un canal confiable:


Canal subyacente perfectamente confiable:
no errores de bits ninguna prdida de paquetes

Transferencia de datos confiable

Separar FSM's para emisor y receptor:


emisor enva data dentro del canal subyacente receptor lee dada desde el canal subyacente
rdt_send(data) rdt_rcv(paquete) paquete=make_pkt(data) extract (paquete,data) Wait for call from below Wait for call from above udt_send(paquete) deliver_data(data)

emisor

receptor

Transferencia de datos confiable


rdt1.0: Transferencia confiable sobre un canal confiable: Fi u ra : U n p ro to co l g o p a ra u n ca n a l co m p l ta m e n te e co n fi b l . a e

Transferencia de datos confiable


rdt2.0: canal con errores de bit:
El canal subyacente puede "voltear" bits en el paquete
Suma-de-comprobacin (checksum) para detectar errores de bit

La cuestin: como recuperarse a partir de los errores:


acknowledgement acuse de recibo (ACK): receptor explcitamente dice al emisor que el paquete fue recibido OK acknowledgement negativo acuse de recibo negativo (NAK): el receptor explcitamente dice al emisor que el paquete tiene errores el emisor retransmite el paquete al recibo de un NAK.

re ce p to r e i r so Nuevos mecanismos enmrdt2.0 (mas all de rdt1.0)

deteccin de errores realimentacin desde el receptor: mensajes de

Transferencia de datos confiable rdt2.0: especificacin FSM:


rdt_send(data) sndpqt = make_pkt(data, checksum) udt_send(sndpqt) rdt_rcv(rcvpqt) && isNAK(rcvpqt) udt_send(sndpqt)

receptor
rdt_rcv(rcvpqt) && corrupt(rcvpqt) udt_send(NAK)

rdt_rcv(rcvpqt) && isACK(rcvpqt)

emisor
rdt_rcv(rcvpqt) && notcorrupt(rcvpq t) extract(rcvpqt,da ta) deliver_data(dat a)

Transferencia de datos confiable


rdt2.0: operacin con ningn error:

Transferencia de datos confiable


rdt2.0: escenario con errores:

defecto fatal:

Transferencia de datos rdt2.0: tiene un confiable


Que sucede si ACK/NAK estn corruptos?
Manejar duplicados:
el emisor retransmite paquete actual si ACK/NAK distorsionados El emisor no sabe lo el emisor agrega que sucedi en el nmero de secuencia receptor! a cada paquete el receptor descarta (no No puede solo entrega hacia arriba) retransmitir: ==> Parar y esperarpaquete and wait ) el ( stop duplicado

posibles el emisor enva un paquete, entonces espera por la respuesta duplicados

rdt2.1: emisor: maneja ACK/NAK's distorsionados:

Transferencia de datos confiable

Transferencia de datos confiable


rdt2.1: receptor: maneja ACK/NAK's distorsionados:

Transferencia de datos confiable


rd t2 . 1 : d i si n : scu
Emisor: # de secuencia agregado al paquete 2 #'s de secuencia (0,1) sern suficientes. Por qu? debe de chequear si recibi ACK/NAK corrupto 2 veces ms estados: estado debe "recordar" si el paquete "actual" tiene 0 1 como # de secuencia

Receptor: tiene que chequear si el paquete recibido es duplicado el estado indica si 0 1 es el # de secuencia esperado del paquete Nota: el receptor puede no saber si su ltimo ACK/NAK se recibi OK en el emisor

Transferencia confiable de datos


rdt2.2: un protocolo libre de NAK:
La misma funcionalidad como rtd2.1 usando solamente ACK's En vez de NAK, el receptor enva el ACK para el ltimo paquete recibido OK el receptor tiene que explcitamente incluir el # de secuencia del paquete a ser ACKeado ACK duplicado en el emisor resulta en la misma accin como NAK: retransmitir paquete actual

Transferencia de datos confiable


rdt2.2: fragmentos FSM del emisor y del receptor:

udt_send ( sndpk t)

rdt2.2: fragmentos FSM del emisor y del receptor:

Transferencia de datos confiable

Fi u ra : rd t2 . 2 : e m i r. g so

rdt2.2: fragmentos FSM del emisor y del receptor:

Transferencia de datos confiable

Fi u ra : rd t2 . 2 : re ce p to r. g

Transferencia de datos confiableprdidas: rdt3.0: canales con errores y


Enfoque: El emisor espera una cantidad de tiempo "razonable" por ACK Retransmite si ningn ACK recibido en este tiempo Si paquete ( ACK) solamente retrazado (no perdido):

Nueva suposicin: El canal subyacente puede tambin perder paquetes (datos ACK's) La suma de comprobacin checksum, el # de secuencia, ACK's, las retransmisiones sern de ayuda, pero no suficientes

retransmisin ser por duplicado, pero uso de #'s de secuencia maneja esto el receptor tiene que especificar # de secuencia del paquete siendo/a ser ACKeado

Requiere un timer de cuenta regresiva

Transferencia de datos confiable


rdt3.0: canales con errores y prdidas:

Transferencia de datos confiable


rdt3.0: canales con errores y prdidas:

Fi u ra : rd t3 . 0 : e m i r. g so

rdt3.0: en accin:

Transferencia de datos confiable

tiempo de espera para transmitir , caso contrario retransmite

Figura : operacin sin ninguna prdida . Figura : operacin con paquete perdido .

Transferencia de datos confiable rdt3.0: en accin:

Figura : Operacin de rdt3 . 0 , el protocolo de bit alternante .

rdt3.0: en accin:

Transferencia de datos confiable

Figura : ACK perdido .

Figura : timeout prematuro .

Transferencia de datos confiable rdt3.0: en accin:

Figura : operacin sin ninguna prdida .

Figura : Operacin de rdt3 . 0 , el protocolo de bit - alternante .

Transferencia de datos confiable:

rdt3.0: operacin stop-and-wait (parar-y-esperar):

Transferencia de datos confiable

rdt3.0: operacin stop-and-wait (parar-y-esperar):

Transferencia de datos confiable

Figura : Operacin stop - and - wait

Protocolos "pipelined"
Pipelining: El emisor permite mltiples, "en-vuelo", paquetes todava-por- serackeados/reconocidos el rango de nmeros de secuencia tiene/debe ser incrementado "buffering" en el emisor y/o en el receptor

Protocolos "pipelined"
Pipelining: 2 formas genricas de protocolos "pipelined":

Go-Back-N y Repeticin selectiva

Protocolos "pipelined"
Pipelining:

Figura : Stop - and - wait vs . protocolo " pipelined ".

Protocolos "pipelined"
Pipelining: utilizacin incrementada:

Protocolos "pipelined"
Pipelining: utilizacin incrementada:

Figura : Operacin " pipelined ".

Go-Back-N
Emisor: # de secuencia de k-bit en el encabezado del paquete "ventana" de hasta N, consecutivos paquetes sin acuse-derecibo permitidos ACK(n): acuse de recibo de todos los paquetes hasta, incluir el de # de secuencia n "ACK acumulativo puede recibir ACK's duplicados (ver receptor) timer para cada paquete "en-vuelo timeout(n): retransmite paquete n y todos los paquetes con # secuencia mas altos en la ventana

Go-Back-N
FSM extendido del emisor:

Go-Back-N
FSM extendido del emisor:

Go-Back-N
FSM extendido del receptor: ACK-solo: siempre enva ACK para paquete correctamente recibido con el mas alto # de secuencia en-orden puede generar ACK's duplicados necesita solamente recordar expectedSeqNum / nroSecEsperado Paquete fuera-de-orden: descarta (no bufferea) ==> ningn buffering del receptor re-ACKea paquete con el ms alto # de secuencia en-orden

Go-Back-N
FSM extendido del receptor:

Go-Back-N
G B N e n a cci n :

Go-Back-N
G B N e n a cci n :

Repeticin Selectiva
El receptor individualmente acusa recibo de todos los paquetes correctamente recibidos Coloca en el buffer los paquetes, como sea necesitado, para eventual entrega enorden a la capa superior El emisor solamente reenva paquetes para los cuales ACK no fue recibido Timer de emisor para cada paquete sin-ACK Ventana del emisor N consecutivos #'s de secuencia Otra vez limita #'s de secuencia de paquetes enviados, no-ACKeados

Repeticin Selectiva: Ventanas del emisor, receptor

Ventanas del emisor y receptor:

Repeticin Selectiva

Figura : Repeticin Selectiva ( SR ): vistas del emisor y receptor del espacio de # 's de secuencia

Repeticin Selectiva
Emisor SR: eventos y acciones: (1/2) Data recibida desde arriba:

Cuando data es recibida desde arriba, el emisor SR chequea el siguiente # de secuencia disponible para el paquete. Si el # de secuencia est dentro de la ventana del emisor, la data es empaquetada y enviada; de otra manera ella es "buffered" retornada a la capa superior para transmisin posterior, como en GBN

Timeout:
Timers son de nuevo usados para proteger contra paquetes perdidos. Sin embargo, cada paquete ahora debe tener su propio timer lgico, puesto que solo un simple paquete ser transmitido en timeout. Un simple timer en hardware puede ser usado para imitar la operacin de mltiples timers lgicos

Repeticin Selectiva
Emisor SR: eventos y acciones: (2/2) ACK recibido:

Si un ACK es recibido, el emisor SR marca ese paquete como habiendo sido recibido, con la condicin que est dentro de la ventana. Si el # de secuencia del paquete es = a base_E, la ventana es movida hacia adelante al paquete sin-acuse-de-recibo con el ms pequeo # de secuencia. Si la ventana se mueve y hay paquetes no transmitidos con nmeros de secuencia que ahora caen dentro de la ventana, estos paquetes son transmitidos.

Repeticin Selectiva
Receptor SR: eventos y acciones: (1/2) Paquete con # de secuencia dentro de [base_R, base_R + N - 1] es correctamente recibido:

En este caso, el paquete recibido cae dentro de la ventana del receptor y un ACK selectivo es retornado al emisor. Si el paquete no fue previamente recibido, es "buffered". Si este paquete tiene un # de secuencia igual a la base de la ventana del receptor (base_R en la Figura), entonces este paquete, y cualquier previamente "buffered" y consecutivamente numerados (comenzando con base_R) paquetes son entregados a la capa superior. La ventana de recepcin es entonces movida hacia delante por el nmero de paquetes entregados a la capa superior. Como un ejemplo, considerar la Figura, cuando un paquete con un nmero de secuencia de base_R = 2 es recibido, este y los paquetes 3, 4, y 5 pueden ser entregados a la capa superior.

Repeticin Selectiva
Operacin SR:

Repeticin Selectiva
Dilema: ejemplo: #'s de secuencia: 0, 1, 2, 3 tamao de la ventana: 3 el receptor no ve la diferencia en los 2 escenarios! incorrectamente pasa data duplicada como nueva en (a) P: Qu relacin entre el tamao del # de secuencia y tamao de la ventana?

Repeticin Selectiva

Dilema:

Figura: Receptor SR: dilema con ventanas demasiado grandes: un nuevo paquete una retransmisin?.

También podría gustarte