Índice de Contenidos
- Introducción
- Funciones (8 funciones)
- Ethernet: Tecnología Ethernet
- Direcciones MAC (ipconfig)
- CSMA/CD
- Detección de errores
- Bit de Paridad
- Paridad Simple
- Paridad por Bloque
- CRC (Código de Redundancia Cíclica)
- Código de Hamming
- Bit de Paridad
- Control de flujo
1. Introducción
Este nivel incluye a los niveles Físico y de Enlace de OSI.
Misiones del Nivel de Enlace:
- Colocar en el (o extraer del) medio de transmisión correspondiente las señales adecuadas de acuerdo con los bits que se quieren transmitir (o recibir).
- Gestionar el acceso al medio si es un medio compartido.
- Componer/descomponer tramas.
- Detectar los errores de transmisión.
- Opcionalmente, corregir los errores de transmisión o retransmitir.
- Opcionalmente, realizar control de flujo (con el siguiente salto).
2. Funciones (8 Funciones)
- Iniciación, terminación e identificador.
- Segmentación y Bloqueo: Segmenta las tramas para hacerlas más pequeñas.
- Sincronización de estado y carácter: Identifica los bits y determina su posición.
- Delimitación de trama y transparencia: Define qué caracteres componen las tramas.
- Control de errores: Utiliza métodos como la paridad, el Código de Hamming y el CRC.
- Control de flujo: Sirve para gestionar la velocidad de transmisión y evitar la obstrucción entre diferentes ordenadores.
- Recuperación de fallos: Controla situaciones anómalas (defectuosas) como la pérdida de trama o la ausencia de respuesta.
- Gestión y Coordinación de la comunicación: Gestiona el ordenador según los métodos utilizados. Ejemplos: ALOHA, Token Ring, etc.
3. Ethernet: Tecnología Ethernet
3.1. Definición
Estándar de redes de computadora de área local (LAN) con acceso al medio por contienda CSMA/CD. Define las características de cableado y señalización del Nivel Físico y los formatos de las tramas del Nivel de Enlace.
3.2. Tecnologías Ethernet
(Sección sin contenido detallado en el original.)
4. Direcciones MAC
(Comando de visualización: ipconfig o ifconfig)
- Es la dirección física, el identificador exclusivo que incluye un fabricante en el hardware.
- MAC significa Control de Acceso al Medio (Media Access Control).
- Tiene 48 bits. Los primeros 24 bits (OUI) los designa el fabricante y los últimos 24 bits los designa el protocolo IEEE.
- Todas las direcciones MAC operan en la Capa 2 (Nivel de Enlace).
5. CSMA/CD
5.1. Protocolo de Acceso
Protocolo de acceso utilizado en las tarjetas de red (Ethernet).
5.2. Funcionamiento
- Cuando una estación quiere transmitir, escucha el canal.
- Si el canal está ocupado, espera a que quede libre.
- Si está libre, transmite.
- Mientras transmite, sigue escuchando para ver si alguien transmite a la vez.
- En caso de detectar una colisión, aborta la transmisión.
5.3. Colisiones
Ocurren cuando:
- Dos estaciones quieren transmitir simultáneamente al ver el canal libre.
- El canal parece libre, pero no lo está debido al retardo de propagación de los paquetes por la red. (Se requiere esperar un tiempo antes de retransmitir).
5.4. ALOHA
- Aparece en 1970 en la Universidad de Hawái.
- Fue el primer protocolo de Nivel de Enlace de Datos.
- Rendimiento entre 16% y 18%.
- Se presenta una colisión cuando dos o más estaciones esperan a que se desocupe el canal para empezar a transmitir.
El protocolo ALOHA es un protocolo del nivel de enlace de datos para redes de área local con topología de difusión.
Versión Básica de ALOHA:
- Si tienes datos que enviar, envíalos.
- Si el mensaje colisiona con otra transmisión, intenta reenviarlos más tarde.
Muchos han estudiado el protocolo. El quid de la cuestión está en el concepto de más tarde. ¿Qué es más tarde? Determinar un buen esquema de parada también determina gran parte de la eficiencia total del protocolo, y cuán determinístico será su comportamiento (cómo de predecibles serán los cambios del protocolo).
5.5. ALOHA Ranurado (Slotted ALOHA)
Para mejorar las prestaciones de ALOHA, se definió ALOHA Ranurado (Roberts, 1972), con la única diferencia de que las estaciones solo pueden transmitir en unos determinados instantes de tiempo o slots. De esta manera se disminuye el periodo vulnerable. Este sincronismo hace que cuando un terminal quiera transmitir, debe esperar al inicio del nuevo periodo para hacerlo.
5.6. CSMA 1-Persistente
- Siempre está escuchando el canal.
- Si está libre, transmite la información.
- Si está ocupado, espera a que esté libre.
- Si detecta una colisión, espera hasta que esté libre.
- Ventaja sobre ALOHA: No intenta tomar el medio si este está ocupado.
- En este esquema, la estación X continúa escuchando la línea, y luego envía inmediatamente después de que la estación Y haya terminado.
5.7. CSMA No Persistente
- Escucha el canal en intervalos de tiempo alternos.
- Si está ocupado, espera un intervalo aleatorio y lo vuelve a comprobar.
6. Detección y Corrección de Errores
6.1. Bit de Paridad
- Un Bit de Paridad es un dígito binario que indica si el número de bits con valor 1 en un conjunto de bits es par o impar.
- Los bits de paridad constituyen el método de detección de errores más simple.
Ejemplos de Paridad (Datos + Bit de Paridad)
| Bits de Datos | Paridad Par | Paridad Impar |
|---|---|---|
| 0000000 | 00000000 | 00000001 |
| 1010001 | 10100011 | 10100010 |
| 1101001 | 11010010 | 11010011 |
| 1111111 | 11111111 | 11111110 |
| 00110110 | 001101100 | 001101101 |
6.1.1. Paridad Simple
- Detecta la existencia del error, pero no se sabe en qué lugar se encuentra.
6.1.2. Paridad por Bloque
- Se organiza la información por bloques, formando una tabla de N x M bits.
- A continuación, se calculan los bits de paridad por filas y por columnas.
- Por último, se envían por la línea de transmisión los bits de paridad calculados, junto con los bits que forman el mensaje.
- Para detectar un error: lo detecta y, en muchos casos, lo corrige (si solo hay un error por bloque).
Ejemplo de datos para Paridad por Bloque: 00110, 01010, 11001, 11111
6.2. CRC (Código de Redundancia Cíclica)
- La finalidad de este código es crear una parte de redundancia que se añade al final del código que se va a transmitir y que detecte el mayor número de errores posible.
- Se utiliza un polinomio generador G(x) que se elige previamente y que tiene la propiedad de minimizar la redundancia.
- Suele tener una longitud de 16 bits para mensajes de 128 bytes, lo que indica que su eficacia es buena, ya que solo incrementa la longitud del mensaje que se transmite en un valor aproximado de 1,6%.
- La selección del polinomio generador es esencial si se quiere detectar la mayoría de los errores que ocurren.
Ejemplo de Polinomios Generadores Estándares:
- CRC-12: X12 + X11 + X3 + X + 1
- CRC-16: X16 + X15 + X2 + 1 (Ejemplo común, incompleto en el original)
Código de Obtención del CRC (Emisor)
Datos de ejemplo:
- Mensaje codificado en binario: 1101010
- Polinomio generador: G(x) = X4 + X + 1
- Polinomio equivalente al mensaje: M(x) = X6 + X5 + X3 + X
- Obtener el polinomio equivalente al mensaje que se va a transmitir.
- Multiplicar el polinomio obtenido por XGRADO DEL POLINOMIO GENERADOR.
(X6 + X5 + X3 + X) ⋅ X4 = X10 + X9 + X7 + X5 = 11010100000 (en binario). - Dividir el resultado entre el polinomio generador (M(x) ⋅ Xp / G(x)).
- Obtener el resto de la división. Este resto es el CRC.
- Añadir el resto de la división al mensaje original.
- Transmitir M'(x) (Mensaje con CRC).
Proceso de Verificación (Receptor)
El equipo receptor debe comprobar el código CRC para averiguar si se han producido errores o no.
- Acordar G(x).
- Dividir el código Recibido (M'(x)) entre G(x).
- Si el resto es 0, el mensaje es correcto.
Operaciones (Aritmética Modular XOR)
- 1 + 1 = 0
- 0 – 1 = 1
- (Suma, resta y multiplicación se realizan módulo 2, como en el montaje de circuitos lógicos).
Ejercicio de Ejemplo CRC
Se quiere transmitir el siguiente mensaje:
- M(x) = 10011011
- G(x) = X3 + 1 → P = 3 [Grado del polinomio generador]
- M(x) en forma polinómica: X7 + X4 + X3 + X + 1
- Multiplicación: M(x) ⋅ X3 = X10 + X7 + X6 + X4 + X3 = 10011011000
- División (10011011000 / 1001): Resto: 010 [Se toman P=3 bits].
- Mensaje a transmitir M'(x): 10011011000 + 010 = 10011011010.
- El receptor comprueba si hay errores, dividiendo el mensaje que recibe entre el polinomio generador (10011011010 / 1001). Resto: 0. (Mensaje correcto).
6.3. Código de Hamming
- Es un código detector y corrector de errores.
- La transferencia de datos en ocasiones puede tener errores; una de las maneras de detectar y corregir errores es utilizando este código.
- El algoritmo de Hamming (7, 4) puede corregir cualquier error de un solo bit y detecta todos los errores de 2 bits (7 bits totales, 4 bits de datos, 3 bits de paridad).
Pasos para la Codificación de Hamming:
- Cálculo de bits de paridad (K): Primero se añaden tantos bits de paridad (K) como sean necesarios de forma que se cumpla la relación: 2K > n + K.
Donde: N = número de bits de Datos; K = número de bits de paridad. - Posición de los bits de paridad: Todos los bits cuya posición es potencia de 2 se utilizan para colocar los bits de paridad. Por lo tanto, las posiciones serán: 1, 2, 4, 8, 16, 32, etc.
- Posición de los bits de datos: Los bits del resto de posiciones son utilizados como bits de datos.
- Numeración: Numerar los bits de derecha a izquierda (o izquierda a derecha, según la convención) por 1, 2, 3, 4…
- Cálculo de Paridad: Cada bit de paridad se obtiene calculando la paridad (par o impar) de un subconjunto específico de bits de datos.
Verificación (Receptor)
El receptor comprueba que el mensaje es correcto recalculando los bits de paridad. Si el resultado de los bits de paridad obtenidos es todo 0, el mensaje enviado es correcto. Si no es 0, esos bits de paridad darán la posición donde se encuentra el bit erróneo. Se pasa su valor a decimal y se cambia el valor del bit erróneo por el correcto.
Reglas de Verificación de Bits de Paridad
| Bit de Paridad | Verifica los siguientes bits | Regla Mnemotécnica |
|---|---|---|
| P1 (Posición 1) | 1, 3, 5, 7, 9, 11… | 1 Sí; 1 No |
| P2 (Posición 2) | 2, 3, 6, 7, 10, 11, 14, 15… | 2 Sí; 2 No |
| P4 (Posición 4) | 4, 5, 6, 7, 12, 13, 14, 15… | 4 Sí; 4 No |
| P8 (Posición 8) | 8, 9, 10, 11, 12, 13, 14, 15… | 8 Sí; 8 No |
| P16 (Posición 16) | 16… | 16 Sí; 16 No |
Ejercicio de Ejemplo Hamming
Datos: 0110101 (N=7 bits de datos)
- ¿Cuántos son los bits de paridad?
- ¿Dónde se colocan?
- ¿Cuál sería el mensaje final según los bits de Paridad? (Calcular el valor de los Bits de paridad)
Respuesta (Cálculo de K):
- 2K > n + K
- N = 7
- K = ?
- Si K=3: 23 = 8. 7 + 3 = 10. (8 > 10) → Falso.
- Si K=4: 24 = 16. 7 + 4 = 11. (16 > 11) → Verdadero.
- K = 4 bits de paridad.
- Total de bits en el mensaje: 7 + 4 = 11 bits.
7. Control de Flujo
(Sección sin contenido detallado en el original, ya cubierta parcialmente en la Sección 2.6.)
