Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Tema 3 Enlace de Datos

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 29

IE0425: Redes de Computadoras

Clase 3: Enlace de datos y mecanismos de acceso


al medio
Capa de enlace de datos

Funciones de la capa de enlace:

● Interfaz de servicio para la capa de red


● encapsula paquetes en tramas
● Maneja errores de transmisión
● Regular flujo de datos
Servicios de la capa de enlace
La capa de enlace permite el envío correcto de datos entre capas de red de dos
host o más hosts adyacentes.
Servicio: sin conexión ni confirmación

● El emisor no espera una confirmación del envío de la trama


● En caso de pérdida de datos, se deja la responsabilidad a capas
superiores
● Se utiliza en canales con tasas de error muy bajas o en tráfico en
tiempo real como la voz
● No se establece una conexión lógica entre los hosts
Servicio: sin conexión con confirmación

● No se establece conexión lógica pero se espera la confirmación de la


recepción de cada trama (ACK: acknowledgment)
● El emisor puede no recibir la confirmación por dos razones: se perdió
la trama enviada o se perdió la confirmación. En ambos casos, el
emisor envía la trama luego de un tiempo definido
● Útil en canales no confiables: IEEE 802.11
Servicio: con conexión y con confirmación

● Los hosts establecen una conexión antes de compartir datos


● Cada trama está numerada
● Se garantiza que cada trama llegará a su destino, llegará exactamente
una vez y en orden a las capas superiores
● Apropiado para enlaces largos y no confiables
● Al terminar el envío de tramas, se libera la conexión, variables, buffers
y demás recursos
Servicio: con conexión y con confirmación
Tramas

● La capa de enlace toma los bits provenientes de la capa superior y los


divide en tramas (grupos de bits)
● La formación en tramas no es trivial ya que el receptor debe ser capaz
de identificar el inicio y final de la misma
● Cuatro métodos de entramado son:
○ Conteo de bytes
○ Bytes bandera con relleno de bytes
○ Bits bandera con relleno de bits
○ Incumplimiento de codificación de la capa física
Tramas: conteo de bytes

● Un byte en el encabezado indica la cantidad de bytes en la trama


● Un error en un bit en el primer byte puede desincronizar el conteo
Tramas: byte bandera

● Se utiliza un byte especial, llamado byte bandera, para indicar el inicio y


final de la trama.
● Dos bytes bandera seguidos significa el final de una trama e inicio de la
siguiente.
● Si el receptor pierde la sincronización, puede buscar dos bytes bandera
seguidos para sincronizarse
¿Qué pasa si hay un byte en los datos igual
al byte bandera?

● Se utiliza la técnica de relleno de bytes


● Se introduce otro byte especial, llamado byte de escape (ESC), antes de
cada byte bandera accidental se introduce un byte de escape
● Si hay un byte de escape dentro de los datos, se resuelve colocando otro
byte de escape antes
● La capa de enlace en el receptor elimina los bytes de relleno antes de
entregar los datos a la capa superior
Tramas: relleno de bytes
Tramas: bits bandera y relleno de bits

● Se pueden montar tramas a nivel de bit y no de bytes. Esto permite usar un


número aleatorio de bits por trama.
● Se utiliza una secuencia de bits como bandera al inicio y final de la trama,
por ejemplo:
○ 01111110, 6 unos seguidos. Utilizado en el protocolo HDLC
● Si la capa de enlace del emisor detecta 5 unos seguidos, coloca un bit cero
de relleno.
● El receptor elimina los ceros que estén luego de 5 unos antes de enviarlos
a la capa superior
Tramas: bits bandera y relleno de bits
El relleno de bytes y bits aumenta el tamaño de las
tramas, o bien, podría verse como que reduce la carga útil
(payload) de las mismas
Tramas: incumplimiento de codificación de
la capa física

Este método aprovecha características de la codificación en la capa física


para definir inicios y finales de trama

Por ejemplo, la codificación 4B/5B mapea grupos de 4 bits a grupos de 5


bits para evitar secuencias largas de ceros. Esto deja 16 de las 32 posibles
combinaciones libres para control
Control de errores

● La confirmación de recepción de tramas permite que el emisor sepa que los


datos fueron correctamente recibidos, o en su defecto, que es necesaria
una retransmisión.
● En algunos casos las tramas no llegan al receptor. En otros casos, llegan
pero con errores.
● El emisor por sí solo no puede saber si hubo un error en la recepción, lo
que implica que es necesario que el receptor pueda detectar cuando los
datos enviados no coinciden con los recibidos.
Control de errores: estrategias
Corrección de errores:
● Incluir suficiente información redundante en la trama o bloques de bits para que
el receptor pueda deducir cuales debían ser los datos transmitidos
● Se conoce como FEC (Forward Error Correction)
● Se utiliza en canales con alta tasa de error ya que es más barato corregir que
retransmitir
Detección de errores:
● Incluir información redundante en la trama para que el receptor deduzca que
hubo un error y solicite la retransmisión
● Se utiliza en canales confiables, ya que es más barato retransmitir que corregir
Nota: Los bits redundantes tienen la misma probabilidad de ser recibidos con error
Tipos de errores

● Errores de un solo bit: causados por breves y ocasionales pero grandes


cambios en el ruido térmico
● Ráfagas de errores (bloques de bits): causados por desvanecimientos en el
canal o interferencias eléctricas en canales alámbricos
● Canal de borrado: se declara el bit como perdido cuando el valor analógico
no se puede considerar como 0 o 1. Esto tiene la ventaja de que permite
conocer la posición del error
Corrección de errores

Una trama con bits de redundancia está formada por m bits de datos y r bits de
verificación
Los bits de verificación se obtienen de diferentes formas:
● código de bloque: los r bits se calculan únicamente en función de los m bits
como una tabla de correspondencia
● código sistemático: se envían los m y r bits juntos sin una codificación
previa
● código lineal: r se calcula como una función lineal de m. Se utilizan XOR o
la suma de módulo 2
Un bloque de longitud n=m+r se puede describir como código (n, m)
Distancia de Hamming

La cantidad de posiciones de bits en las que difieren dos palabras codificadas se llama
distancia de Hamming

La distancia de Hamming se puede calcular aplicando una XOR a las dos palabras
codificadas y contar los bits “1” en el resultado, por ejemplo:

10001001 la distancia de hamming entre ambas palabras es 3


10110001
__________ Para una lista de palabras codificadas válidas, la menor
00111000 distancia entre dos palabras cualquiera de la lista es la
distancia de hamming del código
Detección y corrección de errores: código de
bloque
● Para detectar d errores de manera confiable, se necesita un código con distancia
d+1, ya que no hay forma que una palabra válida se convierta en otra válida
● Para corregir d errores, se necesita un código de distancia de 2d+1, de esta
forma la palabra original va a estar más cerca que cualquier otra palabra de la
palabra con error
Ejemplo:

Considere las siguientes palabras: 0000000000, 0000011111, 1111100000,


1111111111.

● ¿Cuál es la distancia del código?


● Indique la cantidad de errores detectables y la cantidad de errores
corregibles
● En caso de recibir la palabra codificada 0000000111, ¿por cuál palabra se
corregiría?
Comprobación de redundancia cíclica (CRC)
para detección de errores
● Método muy utilizado en la práctica para detectar errores simples y de
ráfaga (Ethernet y WiFi)
● La detección se basa en el resto de una división polinómica
● El emisor y receptor acuerdan un código generador G(x), el cual se utilizará
para generar un CRC que se agrega al final de la trama
● La trama se torna divisible por G(x), lo que permite al receptor determinar
si hubo un error:

.
Algoritmo CRC
Emisor:

1. Suponga un código generador de n bits y una trama de m bits


2. Agregue n-1 bits cero al final de la trama
3. Divida la nueva trama entre el código generador usando división módulo 2
4. Reste el residuo a la trama modificada (con ceros), usando resta módulo 2

Receptor:

1. Divide la trama recibida entre el código generador

Residuo = 0, sin errores


Residuo != 0, error
Nota: la suma y la resta en módulo
dos son equivalentes a XOR
El algoritmo detectará errores:

● de 1 solo bit
● dobles cuando el código generador no sea divisible entre x+1 y no
divida a xk+1 para ningún k hasta el valor máximo de la trama
● en tramas con cantidad impar de bits con error, siempre y cuando x+1
sea factor del código generador
● de ráfaga con longitud menor al CRC
Ejemplo CRC

Datos: 101110, código generador: 1001

Se agregan 3 bits a la trama de datos: 101110000 y se resuelve la división


(Datos+000)/código
Ejemplo CRC
Datos: 101110, código generador: 1001

Se agregan 3 bits a la trama de datos: 101110000 y se resuelve la división


(Datos+000)/código

CRC = 000-011 = 011

Trama = 101110011

También podría gustarte