1 Redes y Servicios Módulo I. Fundamentos y modelos de red Tema 2. Fundamentos Parte B. Nivel de enlace Tema 2. Fundamentos. Nivel de enlace Introducción • Dos funciones básicas del nivel de enlace: ▫ Control de errores x ¿Motivación? ▫ Control de flujo x ¿Motivación? 2 Tema 2. Fundamentos. Nivel de enlace Índice Índice I. Control de errores A. Fundamentos x Detección de errores x Corrección de errores B. Tipos de técnicas é C. Ejemplo de aplicación x Técnica ARQ (Automatic Retransmission reQuest) II Control de flujo II. A. Fundamentos B. Técnicas x Protocolo de “parada y espera” x Esquema de la “ventana deslizante” 3 Tema 2. Fundamentos. Nivel de enlace Control de errores I. Control de errores • Esquema de estudio ▫ Fundamentos (A) x Detección de errores x Corrección de errores ▫ Tipos de técnicas (B) j p de aplicación: p Técnica ARQ Q (C) ( ) ▫ Ejemplo x ARQ discontinua (C.1) x ARQ continua (C.2) ( ) x Repetición selectiva x Retroceder N 4 Tema 2. Fundamentos. Nivel de enlace Control de errores I Control de errores I. A) Fundamentos • Motivación. ¿Qué sucede? ▫ Perturbaciones en el canal real, errores • Objetivo preliminar: detectar errores • ¿Cómo? x Introduciendo redundancia 5 Tema 2. Fundamentos. Nivel de enlace Control de errores I Control de errores I. A) Fundamentos • ¿Cómo se introduce redundancia? ▫ Ejemplo de palabras código x x x x 00 01 10 11 P = {00,01,10,11 00 0110 11} es un conjunto de palabras código aceptadas como válidas 6 Tema 2. Fundamentos. Nivel de enlace Control de errores 7 I Control de errores I. A) Fundamentos • ¿Y qué? ▫ Definiciones relacionadas x e: número de bits erróneos x dH: “Distancia de Hamming” g = número mínimo de bits en que se diferencian dos palabras código válidas x Ejemplo: la distancia de Hamming entre la palabra 00 y la palabra 01 es 1 P = {00,01,10,11} Tema 2. Fundamentos. Nivel de enlace Control de errores I Control de errores I. A) Fundamentos • Caso de estudio ▫ Supongamos el siguiente conjunto de palabras código: P = {00,01,10,11} ▫ Imaginemos ahora que se envía la palabra código 01 pero, debido a un error, se recibe la palabra código 11. ▫ Ambas palabras son válidas, pertenecen al conjunto P. ▫ ¿Es posible detectar el error? 8 Tema 2. Fundamentos. Nivel de enlace Control de errores I Control de errores I. A) Fundamentos • ¿Qué códigos de canal se pueden utilizar para intentar detectar errores en el nivel de enlace? • Para poder detectar e errores es necesario que: dH ≥ e + 1 ▫ Ejemplo: Supongamos que queremos diseñar un código que sea capaz de detectar la ocurrencia de 1 bit erróneo: e = 1 ⇒ dH ≥ 1+ 1 9 Tema 2. Fundamentos. Nivel de enlace Control de errores 10 I Control de errores I. A) Fundamentos dH ≥ 1+ 1 = 2 • Construimos un conjunto de palabras que se diferencien en 2 bits: P = {000, 110, 101, 011} • Ejemplo: Ejemplo Se emite Se recibe 000 010 Detecto que ha habido un error ¿por qué? Tema 2. Fundamentos. Nivel de enlace Control de errores I Control de errores I. A) Fundamentos • ¿Qué códigos de canal se pueden utilizar para intentar corregir errores en el nivel de enlace? • Para poder corregir e errores es necesario que: dH ≥ 2 e + 1 ▫ Ejemplo: Supongamos que queremos diseñar un código que sea capaz de corregir la ocurrencia de 1 bit erróneo: e = 1 ⇒ dH ≥ 2 ×1+ 1 11 Tema 2. Fundamentos. Nivel de enlace Control de errores 12 I Control de errores I. A) Fundamentos dH ≥ 2 ×1+ 1 = 3 • Construimos un conjunto de palabras que se dif diferencien i en 3 bit bits: P = {000,111 000 111} • Ejemplo: Se emite Se recibe 000 010 9Detecto que ha habido 1 error ¿por qué? 9Además, soy capaz de corregir el error. ¿Cómo? Tema 2. Fundamentos. Nivel de enlace Control de errores I Control de errores I. B) Tipos de Técnicas • Basado en los fundamentos previos, existen básicamente 2 tipos de técnicas para controlar errores a nivel de enlace: ▫ Control de errores hacia delante x La trama contiene información suficiente para produjo j el error determinar dónde se p x El propio equipo puede corregir el error x Necesita una mayor cantidad de bits de control ▫ Control de errores hacia atrás x Sólo es posible detectar que la trama es errónea x Requiere algún esquema de control de retransmisión 13 Tema 2. Fundamentos. Nivel de enlace Control de errores I Control de errores I. B) Tipos de Técnicas • Si sólo se pueden detectar errores pero no pueden ser corregidos: ▫ Opciones: x Desechar la trama sin informar del error (en transmisión no orientada a conexión). x Informar al transmisor del error (en transmisión orientada a conexión): x Se necesitan procedimientos que aseguren la entrega correcta t x El receptor debe informar de los errores, y solicitar una nueva copia 14 Tema 2. Fundamentos. Nivel de enlace Control de errores I Control de errores I. C) Ejemplo: Método ARQ • Método ARQ: ▫ El receptor: x Espera a recibir una trama x Cuando la recibe, busca errores x Envía (al emisor) un mensaje de reconocimiento (ACK) indicando si la trama ha sido correcta o incorrecta ▫ Ell emisor: i x Si error, entonces: retransmisión de una copia de la trama errónea x Si OK, entonces: continúa transmitiendo 15 Tema 2. Fundamentos. Nivel de enlace Control de errores I Control de errores I. C) Técnica ARQ • Terminología ▫ P: Primario (transmisor) ▫ S: Secundario (receptor) • Tipos de ARQ ▫ ARQ discontinua (o “inactiva”) x Basta enlace semi semi-dúplex dúplex ▫ ARQ continua x Requiere enlaces dúplex x Técnicas x “Repetición p selectiva” x “Retroceder N” 16 Tema 2. Fundamentos. Nivel de enlace Control de errores I Control de errores I. C.1) ARQ discontinua • El primario transmite y espera a recibir contestación del secundario ▫ ¿Cuánto tiempo? • Consideraciones importantes: ▫ C Con cada d ttrama se iinicia i i un ttemporizador. i d Si no se recibe ib confirmación (ACK) en el tiempo establecido, se retransmite la trama ▫ Si: x el secundario recibe una trama errónea, o x ell primario i i recibe ib una confirmación fi ió errónea, ó x se transmite la trama pendiente de nuevo ▫ Si el secundario recibe una trama duplicada, se desecha (necesario numeración tramas) 17 Tema 2. Fundamentos. Nivel de enlace Control de errores I Control de errores I. C.1) ARQ discontinua • Ejemplo para ilustrar el funcionamiento básico 18 Tema 2. Fundamentos. Nivel de enlace Control de errores I Control de errores I. C.2) ARQ Continua • Motivación ▫ ARQ discontinua: x aprovechamiento ineficiente del enlace ▫ ARQ Q continua: x Transmisión continua e ininterrumpida de tramas x Consigue un aprovechamiento más eficiente de los recursos del enlace pero, a cambio, precisa: ▫ Mayor capacidad de almacenamiento ▫ Enlaces dúplex 19 Tema 2. Fundamentos. Nivel de enlace Control de errores I Control de errores I. C.2) ARQ Continua • ¿Cómo funciona? ▫ Envío continuo, sin esperar confirmaciones ▫ Cada trama tiene un identificador único ▫ El secundario envía ACK con el identificador de la trama, indicando si es correcta o no ▫ El primario guarda una copia de cada trama transmitida. Será eliminada una vez recibido el ACK positivo correspondiente p p 20 Tema 2. Fundamentos. Nivel de enlace Control de errores I Control de errores I. C.2) ARQ Continua 21 Tema 2. Fundamentos. Nivel de enlace Control de errores I Control de errores I. C.2) ARQ Continua • ¿Qué pasa cuando ocurre un error? ▫ Si ocurre un error existen dos esquemas o técnicas: x Repetición Selectiva: x El receptor p p pide la retransmisión SOLO de aquellas q tramas que se han detectado como erróneas. x Retroceder N: x El receptor pide la retransmisión de TODAS las tramas a partir de la última que se recibió correctamente. 22 Tema 2. Fundamentos. Nivel de enlace Control de errores I Control de errores I. C.2) ARQ Continua • Comparación: ▫ La técnica retroceder N es menos eficiente en el uso de los recursos de la red x La razón es q que se retransmiten tramas correctas más de una vez ▫ La técnica de repetición selectiva utiliza la red de forma más eficiente: x Sólo se re-envía la trama errónea x A cambio, requiere almacenamiento temporal en el secundario 23 Tema 2. Fundamentos. Nivel de enlace Índice Índice I. Control de errores (parte I) A. Fundamentos x Detección de errores x Corrección de errores B. Tipos de técnicas é C. Ejemplo de aplicación x Técnica ARQ (Automatic Retransmission reQuest) II Control de flujo (parte II) II. A. Fundamentos B. Técnicas x Protocolo de “parada y espera” x Esquema de la “ventana deslizante” 24 Tema 2. Fundamentos. Nivel de enlace Control de flujo II Control de flujo II. A) Fundamentos • ¿Motivación? • Objetivo: ▫ Función del nivel de enlace cuyo OBJETIVO es asegurar que el receptor tenga suficientes recursos para almacenar y procesar las tramas que va recibiendo x Trata de controlar la velocidad del flujo j de datos • Ejemplos j p de técnicas de control de flujo j x Protocolo de “parada y espera” x “Ventana deslizante” 25 Tema 2. Fundamentos. Nivel de enlace Control de flujo II Control de flujo II. B) Técnicas: stop & wait • Algoritmo de parada y espera (stop & wait): ▫ Parada y espera: x El emisor no transmite ninguna trama hasta que el receptor p se lo autorice mediante la ggeneración de una trama especial de confirmación (que le informa acerca de cómo ha sido la recepción de la trama previa) ▫ Reanudación del envío de tramas 26 27 Tema 2. Fundamentos. Nivel de enlace Control de flujo II Control de flujo II. B) Técnicas: Ventana deslizante W Tema 2. Fundamentos. Nivel de enlace Control de flujo II Control de flujo II. B) Técnicas: Ventana deslizante • Resumen del funcionamiento básico: ▫ Cada vez que se recibe una trama: x se incrementa en borde superior (UWE). ▫ Cada vez que se confirma una trama: x se incrementa el borde inferior (LWE). ▫ Si la anchura de la ventana, (UWE-LWE)=W, alcanza un cierto valor especificado, entonces se interrumpe la transmisión de nuevas tramas. 28