2. Para comenzar es necesario entender
que es un protocolo.
un protocolo es un acuerdo entre dos o
mas partes que desean realizar una
comunicación, estos deben seguir una
serie de pasos establecidos.
3. Función de un protocolo
Encapsulado
Control de conexión
Entrega ordenada
Control de flujo
Control de errores
Direccionamiento
Multiplexación
Servicios de transmisión
4. Las partes de un protocolo
Los protocolos están conformados por 5 partes las cuales son:
Servicio: El cual proporciona el protocolo
Suposiciones: Sobre el entorno donde se ejecuta el
protocolo
Vocabulario: Los mensajes utilizados en el protocolo
Formato: De los mensajes del vocabulario del protocolo
Reglas : El procedimiento que controlan la consistencia del
intercambio de mensajes
5. Diseño de un protocolo
Para el diseño de un protocolo es necesario seguir 10
reglas:
1. Asegurarse de definir bien todos los aspectos del
protocolo
2. Definir el servicio a realizar por cada nivel antes de
elegir estructuras
3. Diseñar antes funcionalidad externa que la interna
4. Mantener el diseño simple
5. No conectar lo que es independiente
6. Diseño de un protocolo
6. Obviar aquello que es innecesario
7. Validar el diseño antes de implementarlo
8. Implementar diseño, medir su rendimiento y
optimizarlo
9. Comprobar que la versión final cumple los
criterios de diseño
10. Nunca saltarse las 7 primeras reglas
7. Control de secuencia y de errores
Redundancia
Tipos de códigos
Códigos de paridad
Corrección de errores
8. Redundancia
Añadir información redundante a los mensajes
Dos formas de gestionar los errores:
Control de errores hacia adelante códigos correctores
Control de errores por realimentación códigos detectores
9. Tipos de Código
Códigos de bloque:
Palabras de código de misma longitud y codificación estática.
Códigos de convolución:
Palabras de código dependen del mensaje actual y de anteriores.
10. Tipos de Código
Códigos lineales: Combinación lineal de palabras
validas.
Códigos cíclicos: Rotación de código válido
Códigos sistemáticos: Mensaje original + bits de
comprobación.
11. Corrección de errores
Los códigos se eligen de forma que haya varios bits
de diferencia entre dos palabras válidas.
Rxor reconstruye mensaje, asociándole la palabra
de código mas cercana.
Razón de código de sistema corrector < razón de
código de sistema detector.
12. Bit de Pariedad
Permite la corrección de 1 bit
LRC = Longitudinal Redundancy Check
VRC = Vertical Redundancy Check
13. Distancia de Hamming
Distancia de Hamming: diferencia de bits mínima entre dos
palabras de un código.
XOR (2 palabras de código)
Si la distancia de Hamming de un código es n, se puede:
- Detectar errores de hasta n-1 bits
- Corregir errores de hasta (n-1)/2 bits
↑distancia de Hamming ↑fiabilidad de protocolo
Límite de Shannon:
C =B log2 ( 1+ S/N)bps
14. Código de Hamming
Para que un código de k bits de datos y r bits redundantes sea capaz de
corregir errores simples debe cumplir: k+r+1≤ 2r
Los códigos que verifican lo anterior con r mínimo se denominan óptimos
Ejemplo: k=7 (ASCII), r mínimo / k+r+1≤ 2r r=4 n=11
‘a’≡ 1 1 0 0 0 0 1
Los bits redundantes ocupan las posiciones potencia de 2(1,2,4,8), el resto
son los bits de datos
15. Ráfagas
La mayor parte de las veces los errores no se producen de forma aislada.
Mecanismos correctores tolerantes a ráfagas:
- Códigos de interlineado
- k datos de n bits matriz kxn
- se Tx por columnas corrige ráfagas ≤ k
- Reed-Solomon
- CDs, DVDs, códigos de barras,
comunicaciones inalámbricas, comunicaciones
satélite, TV digital, modems de alta velocidad
Se ha demostrado que en la mayoría de los casos es mejor el control por
realimentación (↑aprovechamiento del canal y ↓error residual).
16. Control de Flujo
Objetivos:
Asegurarse que no se transmiten los datos más rápido de lo
que se puede procesar.
Optimizar el uso del canal.
Evitar saturar el canal.
Proteger la transmisión contra borrado, inserción, duplicación
y reordenamiento de mensajes.
17. Control de Flujo
Protocolo simple sin control de flujo
Protocolo Xon-Xoff
Protocolo de parada y espera
Protocolo de parada y espera con timeout
Protocolo de bit alternante
Protocolo de ventana