Transporte fiable Ventana deslizante

Documentos relacionados
Transporte fiable Selective repeat

Protocolos de ventana deslizante (sliding-window protocols)

Transporte fiable Ventana deslizante y go-back-n

Transporte Introducción y transporte fiable

Transporte fiable. Area de Ingeniería Telemática

Tema 4: Protocolos de comunicación punto a punto. Tema 4: Protocolos de comunicación punto a punto

TCP Transmission Control Protocol

rdt2.2: fragmentos del emisor y receptor

La implementación del Sender y del Receiver van a depender del modelo del canal que está por debajo y complejidad.

TCP. Temario. Temario

TCP Transporte fiable en Internet

Introducción. 1) Principio de transferencia de datos Confiable

Nivel de Transporte LSUB, GYSC, URJC

Redes de Ordenadores Control de congestión en TCP. Mikel Izal Azcárate

Protocolo de Ventana Deslizante 2008

Nivel de enlace. Teoría de la Comunicaciones. 28 de Marzo de 2012

Figura 6.3 Descripción de la ventana deslizante.

Protocolos punto a punto Teoría de la Comunicaciones. 23 de Marzo de 2016

Redes de Computadores Más sobre TCP. Área de Ingeniería Telemática Dpto. Automática y Computación

Nivel de enlace. Teoría de la Comunicaciones. 27 de Marzo de 2013

TCP: Ventana de control de flujo y timers

Capítulo 3: Capa Transporte - II ELO322: Redes de Computadores Agustín J. González

Redes (9359). Curso Ingeniería Técnica en Informática de Sistemas (plan 2001)

Computer Networks I CAPA DE TRANSPORTE

Redes (9359). Curso Ingeniería Técnica en Informática de Sistemas (plan 2001)

Internet y TCP/IP La Capa de Transporte en Internet: Control de Flujo y Congestión

Redes y Servicios. Módulo I. Fundamentos y modelos de red. Tema 2. Fundamentos. Parte B. Nivel de enlace

REDES DE ORDENADORES HOJA DE PROBLEMAS 3

UNIDAD VI CONTROL DEL ENLACE DE DATOS Y MULTIPLEXACIÓN.

Transporte: Servicios y Protocolos. Prof. Wílmer Pereira

CONTROL DE ERRORES DETECCIÓN DE ERRORES

Bloque III: El nivel de transporte. Tema 7: Intercambio de datos TCP

ELO322 Redes de Computadores I 07/06/2013. Segundo Certamen ACK1 ACK1 ACK1 ACK1 ACK5

Problemas de Arquitectura de Redes, Sistemas y Servicios 2 o Grado en Ingeniería en Tecnologías de Telecomunicación Conjunto de problemas 6

Módulo 03 La Capa de Transporte (Pt. 1)

Módulo 03 La Capa de Transporte (Pt. 1)

Redes de Área Local. Arquitectura de una LAN. Tema 2. Medio. Medio. E.T.S.I. Telecomunicación Sonido e Imagen. Aplicaciones en Redes Locales.

Bloque III: El nivel de transporte. Tema 7: Intercambio de datos TCP

Figura 6.5 ARQ mediante parada-y-espera.

Temas 3 y /16.37

TCP: Características Establecimiento y finalización de conexiones

Funciones del Control de enlace de datos

Una Introducción al Control de Flujo en la Comunicación

El nivel de transporte

Redes de Datos-Control del enlace de Datos. Jhon Jairo Padilla Aguilar PhD. Ingeniería Telemática

capa de transporte gabriel infante-lopez Walk on by Walk on through Walk 'til you run "The Unforgettable Fire" - U2

Planificación y Administración de Redes: El nivel de Transporte. Jesús Moreno León Raúl Ruiz Padilla Septiembre 2010

Capítulo 3: Capa Transporte - II

ELO322 Redes de Computadores I 6/05/2016

Nivel de Transporte: Introducción, UDP y TCP

Tema 14: El protocolo TCP

Tema 4 CURSO 2015/16 (PLAN 2009) PRIMER SEMESTRE. Internet

Bloque III: El nivel de transporte. Tema 8: Retransmisiones y temporizadores en TCP

TCP Tema 3.- Nivel de transporte en Internet

BLOQUE IV. Nivel de enlace de datos

Internet. Tema 4. Cliente HTTP. Servidor HTTP. Curso 2017/18 Semestre 2 SUPUESTO 1

La capa de transporte

Arquitectura de Redes, Sistemas y Servicio (04/05) Ingeniería Técnica de Telecomunicación Telemática. ETSIT Telecomunicación Universidad de Valladolid

Capa de Enlace de Datos

Bloque III: El nivel de transporte. Tema 6: Conexiones TCP

Bloque III: El nivel de transporte. Tema 6: Conexiones TCP

Bloque III: El nivel de transporte. Tema 8: Retransmisiones y temporizadores en TCP

Capítulo 3: Capa Transporte - II ELO322: Redes de Computadores Agustín J. González

Capítulo 3 Capa de Transporte

Bibliografía [COM06] Internetworking with TCP/IP, Cap. 12. Arquitectura de Redes y Servicios de Telecomunicación (ARST)

Capítulo 3: Capa Transporte - II ELO322: Redes de Computadores Agustín J. González

Primer Certamen (Tiempo: 90 min.) Si algo no está claro, haga una supuesto razonable, anótelo, y responda conforme a ello.

Dpto. de Teoría de la Señal, Comunicaciones e Ingeniería Telemática E.T.S.I. Telecomunicación Universidad de Valladolid

Paradigmas de conmutación

TEMA 3. Conceptos Avanzados del Protocolo TCP

Capítulo 3: Capa Transporte - II ELO322: Redes de Computadores Agustín J. González

Bloque III: El nivel de transporte. Tema 5: UDP y TCP

Sistemas de Transportes de Datos (STD) Tema III: UDP Y TCP (Entrega 2) Maximum Segment Size (MSS) No fragmentar datagrama IP

Retardo en la propagación de las señales

Tema 3: El protocolo TCP

TCP: Características Establecimiento y finalización de conexiones Tema 4.- Nivel de transporte en Internet

Problema de agotamiento de direcciones

Redes de Computadores Nivel de Enlace: Redes de área local Ethernet

Transparencias de Redes de Ordenadores. Tema 10 Nivel de Transporte: TCP 1ª Parte TCP. Uploaded by. IngTeleco

Redes de Computadores - Problemas y cuestiones

BLOQUE I. Introducción a la Telemática

Servidores de Información Multimedia 2º Ingeniero Técnico de Telecomunicación Sonido e Imagen

Protocolos, Servicios e Interfaces

Capítulo 3: Capa Transporte - II ELO322: Redes de Computadores Agustín J. González

Protocolos, Servicios e Interfaces

TEMA 11 CONMUTACIÓN DE PAQUETES

BLOQUE I. Introducción a la Telemática

Tarea N 2 5, 27, 28, 33 para corrección.

Control de Congestión. Definición de Congestión

Propósito de la capa de transporte

Práctica 4: Desarrollo de clientes bajo TCP y UDP.

PRIMERA PARTE Tema 1: Capítulo 2 Nivel de Transporte. Javier Yágüez Profesor Titular de Universidad

Ubicación en el modelo

75.43 Introducción a los Sistemas Distribuidos

La capa de transporte de datos

Redes de Computadores

Informe Proyecto: Protocolo ARQ- Híbrido

Transcripción:

Transporte fiable Ventana deslizante Area de Ingeniería Telemática http://www.tlm.unavarra.es Arquitectura de Redes, Sistemas y Servicios Grado en Ingeniería en Tecnologías de Telecomunicación, 2º

Stop & wait: prestaciones Los protocolos de tipo stop & wait garantizan transporte fiable pero tienen poca eficiencia en enlaces en los que el RTT es grande comparado con el tiempo de transmisión de un paquete En el caso mejor transmitimos un paquete cada RTT por lo que el throughput de datos máximo es tamañodepaquete/rtt Si hay perdidas aun menos Puede ser aceptable en los casos en los que RTT y tiempo de transmisión del ACK es despreciable comparado con el tiempo de transmisión, pero necesitamos protocolos capaces de enviar a más velocidad sobre enlaces con velocidad de transmisión alta 2

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 Ventana Deslizante (sliding-window) 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 Son subtipos de sliding-window Emisor paq 0 paq 1 paq 2 paq 3 Receptor ack 0 3

Transporte fiable Ventana deslizante : Go back-n Area de Ingeniería Telemática http://www.tlm.unavarra.es Arquitectura de Redes, Sistemas y Servicios Grado en Ingeniería en Tecnologías de Telecomunicación, 2º

Ventana deslizante : Go back-n Empezando por lo más simple: 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 Estado en el emisor base= numero de secuencia mas bajo que aun no ha sido confirmado nextseqnum= siguiente numero de secuencia que voy a usar buffer con los paquetes enviados hasta que se confirmen y los descarte Estado en el receptor expectedseqnum= siguiente numero de secuencia que espero recibir 5

Ventana deslizante : Go back-n Emisor recibe datos de la aplicación Si puedo enviar ( nextseqnum<base+n ) Envia el paquete Si es el primero ( nextseqnum==base ) Inicia temporizador nextseqnum++ Si no puedo enviar ( nextseqnum==base+n ) Rechazar el dato de la aplicación La aplicación tendrá que esperar (normalmente tiene un buffer para que los paquetes esperen a que se puedan enviar) 6

Ventana deslizante : Go back-n Emisor recibe un ACK (de ack_seq) Avanza la ventana hasta la posición confirmada (base=ack_seq) Si aun quedan paquetes pendientes recalcular el temporizador Al aumentar base puede enviar los siguientes paquetes que de la aplicación hasta llenar la ventana Caduca el timeout del primer paquete de la ventana Reenvía todos los paquetes enviados en la ventana (desde base hasta nextseqnum-1) Reinicia el temporizador 7

Ventana deslizante base Ventana deslizante : Go back-n nextseqnum enviados se pueden no ACKed enviar base+n transmitidos ACKed Llega este ACK Ventana de N paquetes no se pueden enviar Timeout del primer paquete pueden enviarse nuevos paquetes La ventana se desliza hacia mayores números de secuencia Volvemos a enviar 8

Ventana deslizante : Go back-n Receptor recibe el paquete esperado Envía un ACK indicando el siguiente esperado Entrega datos al nivel superior Receptor recibe otro paquete Envía un ACK indicando el paquete que estoy esperando Descarta los datos 9

Ventana deslizante : 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 ack 1 ack 2 ack 2 ack 2 ack 2 ack 3 ack 4 ack 5 Ok 0 Ok 1 Ok 2 Ok 3 Ok 4 10

Ventana deslizante : Go back-n Simple ( sabríais programarlo?) Más eficiente que stop & wait Cuál es la velocidad máxima? N s / RTT? Mejoras fáciles a go-back N? 11

Transporte fiable Ventana deslizante : Go back-n Area de Ingeniería Telemática http://www.tlm.unavarra.es Arquitectura de Redes, Sistemas y Servicios Grado en Ingeniería en Tecnologías de Telecomunicación, 2º

Velocidad de go-back N Supongamos que la aplicación envía constantemente, siempre hay datos pendientes Enviamos w=n s bytes cada RTT La ventana empieza a repetirse en cuanto recibimos el primer ACK, no el último La velocidad máxima es w/rtt N s/rtt Emisor w1 w2 w3 Receptor RTT Pero solo si la ventana se envía entera antes de que vuelva un ACK 13

Velocidad de go-back N Si hay errores habrá timeouts y retransmisiones Si la aplicación no envía datos irá mas despacio Emisor Receptor RTT w/rtt es un limite del protocolo. Depende del valor que elijamos para N y s Analizar las prestaciones de estos casos es más difícil 14

Velocidad de go-back N Puede que no de tiempo a enviar la ventana antes de que vuelva el ACK Ejemplo con N=4 El throughput aqui es 3s/RTT<Ns/RTT Emisor w Receptor RTT El problema es que no nos da tiempo a enviar w bytes en el tiempo RTT Eso ocurre si w/c > RTT o sea si C<w/RTT El limite es w/rtt salvo que el canal tenga menor C (Vtx) 15

Velocidad de go-back N En resumen Si w < C*RTT El límite de velocidad lo pone el protocolo w/rtt La ventana cabe en el canal Emisor w Receptor RTT Si w > C*RTT El limite lo pone el canal La ventana no cabe en el canal Estamos aprovechando al máximo el canal 16

Transporte fiable Ventana deslizante : selective-repeat Area de Ingeniería Telemática http://www.tlm.unavarra.es Arquitectura de Redes, Sistemas y Servicios Grado en Ingeniería en Tecnologías de Telecomunicación, 2º

Mejoras a Go-back N Aprovechar los paquetes que llegan aunque se hayan perdido los anteriores? Receptor más complicado. Necesita buffer para los paquetes recibidos pero no entregados a la aplicación Reenviar si se reciben ACKs duplicados? Confirmar/rechazar paquetes por separado 18

Problemas de selective repeat Más complejo de programar: buffer de paquetes en el receptor, array de temporizadores en el emisor... Normalmente para implementar ventanas deslizantes el numero de secuencia es un campo de la cabecera tiene un numero de bits limitado las reglas anteriores hay que programarlas con contadores que se dan la vuelta En go-back N es facil porque con n bits puedo hacer go-back 2 n -1 Pero en selective repeat hay algun problema... 19

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 20

Eventos en el emisor (SR) 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 21

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 22

enviados no ACKed Selective Repeat Ventana deslizante del emisor confirmados ACKed se pueden enviar transmitidos ACKed esperados Ventana de N paquetes Ventana deslizante del receptor no se pueden enviar recibidos y confirmados en espera de poder entregarse aceptables confirmados y entregados Ventana de N paquetes no aceptables fuera de la ventana 23

Ventana de 4 paquetes Selective repeat Emisor paq 0 paq 1 paq 2 paq 3 paq 4 paq 5 Receptor ack 0 ack 1 ack 3 ack 4 ack 5 timeout paq 2 ack 2... paq 6 ack 6 Aquí ACK no indica el que espero recibir sino indica el que confirmo 24

Eficiencia Selective Repeat Transporte fiable garantizado (en un escenario en el que se pierdan paquetes) Eficiencia mejor que stop-and-wait Parecida a la del go-back N El caso mejor es igual que en go-back N Si w>c*rtt thrmax = C Si w<c*rtt thrmax = w/rtt O bien thrmax = min{ w/rtt, C } Emisor w1 w2 w3 Receptor RTT Si hay errores depende de como sean estadísticamente los errores, es más difícil de analizar 25

Transporte fiable en Internet Area de Ingeniería Telemática http://www.tlm.unavarra.es Arquitectura de Redes, Sistemas y Servicios Grado en Ingeniería en Tecnologías de Telecomunicación, 2º

Sesiones/conexiones Hasta ahora era un emisor y un receptor El nivel de transporte tiene que gestionar eso para diferentes sesiones de aplicación Los parametros de los protocolos stop&wait, go-back-n, selective repeat, tienen sentido para una comunicacion entre un origen y un destino una conversación son dos sentidos emisor->receptor un nivel de transporte tiene que gestionar varias conversaciones a la vez Aplicación enviar recibir Emisor Receptor datos acks datos acks Receptor Emisor Aplicación 27

Sesiones/conexiones Cada pareja Emisor-Receptor necesita sus propias variables del protocolo de ventana deslizante (base, nextseq, expectedseq, bufferes de paquetes...) El nivel de transporte debe gestionar todo esto Sesiones de nivel de transporte (se suelen llamar conexiones) App App App E R E R E R R E App R E R E App App 28

Sesiones/conexiones Antes de empezar una comunicación hay que avisar para que se inicialicen las variables App quiero una sesión App se inician variables y buffers base=1 nextseq=1... datos y acks fase negociación establecimiento se inician variables y buffers expectedseq=1... fase transferencia cierra la sesión fase liberacion cerrada El nivel de transporte cerrada incluye también protocolos para el establecimiento y liberación de las sesiones del nivel de transporte 29

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 Go-back N Selective repeat Sus limitaciones de velocidad dependen de la ventana elegida y de su relación con los parámetros del canal (C,RTT) 30