PROTOCOLOS DE
COMUNICACIÓN
Temario
Introducción
Cuando tenemos dispositivos de hardware, separados geográficamente, existirán procedimientos para control de cada dispositivo implementados por procesos de software.
Como los procesos ejecutan en hardware separado, deben intercambiar mensajes para coordinar la acción y obtener SINCRONIZACIÓN.
Para realizar el intercambio de mensajes debemos diseñar (cuidadosamente) los procedimientos o protocolos.
La principal característica, es la habilidad para trabajar en un ambiente donde los periodos (timing) y secuencia de eventos es desconocida y se esperan errores en la transmisión de datos.
Protocolos
Procesos en:
Equipos de una red.
Sistema multiprocesador, para controlar interacción de procesos paralelos.
Aplicaciones en tiempo real para el control de dispositivos.
En cualquier sistema donde no existe relación fija en el tiempo de ocurrencia de los eventos.
Definición mas formal:
Especificación de la lógica y de los procedimientos de los mecanismos de comunicación entre procesos.
La definición lógica constituye la sintaxis.
La definición de los procedimientos constituye la semántica.
Funciones más importantes:
Control de Errores:
Control de Flujo y Congestión:
Estrategias de Encaminamiento:
Procesos
Los protocolos son implementados vía procesos.
Un proceso se ejecuta en un procesador virtual o lógico.
Un proceso es autocontenido
No se de cuenta (y no le interesa), que un procesador real comparte sus recursos entre varios procesos activos.
Entrada a los procesos ocurre por puertas lógicas de software, por donde el proceso recibe mensajes desde procesos residentes en el mismo o en otro procesador.
Un conjunto de datos privados definen el estado actual de un proceso y determinan la acción a tomar por el receptor de un mensaje.
El resultado de la computación ejecutada por el proceso se envía por una puerta lógica de salida.
¿Cómo opera un protocolo?
Un proceso recibe un mensaje lo procesa y envía una respuesta, sin que exista relación entre éste evento y otro anterior o posterior.
El proceso origen, conocerá la dirección del proceso destino y la incluirá en el mensaje.
Esta dirección, identificará únicamente a un procesador, quién conocerá al proceso destino.
El originador cuando despacha un mensaje, entre un estado de espera de respuesta en una de sus puertas.
El proceso destino ejecuta la función especificada en el mensaje, construye la respuesta (con resultados y dirección del origen) y envía el mensaje respuesta por una puerta de salida, (quedando libre para aceptar otro mensaje).
La respuesta llega al originador, quien realiza un chequeo para asegurarse que viene del lugar correcto antes de aceptarla, luego, pasa al estado "no espera respuesta" en esa puerta de entrada.
Este es un protocolo muy simple, necesita de la sintaxis para definición de formatos de los mensajes y una semántica muy simple.
Debe considerarse el hecho que, la red introduce demoras
causadas por congestión, encaminamiento, etc., e incluso puede ocurrir perdida
del mensaje.
PROTOCOLO PREGUNTA RESPUESTA 1
Esquema de Procesos:
PP : Recibe mensaje en puerta 1, desde usuario.
PP : Construye mensaje y lo despacha hacia PR por la puerta de salida 2.
Al mismo tiempo construye un mensaje para proceso timer el
que contiene tiempo t y datos, enviándolo por la puerta 3.
Finalmente actualiza sus datos privados para definir su
estado y espera respuesta por puerta 2, cerrando puerta 1.
PP : Próximo evento:
- Recibe respuesta por PE2, se construye un mensaje y se envía al usuario por PS1 y el proceso vuelva al estado no ocupado. (acepta nueva solicitud).
- Señal de time-out que puede ser de la pregunta actual o de la anterior.
. Anterior: Tarea ya completada, debemos poder hacer distinción, colocando un rótulo a la actividad y a los datos enviados al timer. Otra alternativa es desligar timer.
. Actual: El mensaje debe ser retransmitido y tenemos un nuevo problema.
Si la respuesta original no está perdida, sino sólo demorada, su llegada completará la operación (retransmisión).
La respuesta a la retransmisión puede llegar durante la
siguiente actividad y deberá ser reconocida como respuesta a una pregunta
antigua (duplicado) y descartada.
PROTOCOLO PREGUNTA RESPUESTA 2
definición de un protocolo:
Un protocolo se define en función de su sintaxis, de su semántica y es implementado por 2 procesos (1 en cada máquina).
La definición de una implementación describe la acciones que se requiere de cada proceso.
Descripción de acciones:
Diagramas de estado y eventos.
Lenguaje de descripción de protocolos (alto nivel).
Ejemplo: Especificación de protocolo: Diagrama de estados.
La función más importante de un tarea en la red es el transporte de datos, sin errores.
Esta función es parcialmente provista por la red de comunicaciones.
Niveles de los Procesos en Comunicación
Un par de procesos no necesita conocer la estructura interna de su sistema de comunicaciones, sólo se comunica con el , a través de una interfaz.
P1 y P2 podrían ser capaces de soportar varios procesos simultáneamente, proporcionando funciones de multiplexación.
Si P3-P1 no están instalados en el mismo procesador, deberá usarse un protocolo para implementar la interfaz.
Además si existe una línea física (P3-P1), propensa a errores, se deberá usar un protocolo a nivel de línea para asegurar la corrección de los mensajes intercambiados por los procesos. Este protocolo no afectará la estructura general, solo reemplazará una conexión directa.
bibliografía
[davi79] D.W.Davies et al; Computer Networks and their protocols; John Wiley
& Sons 1979; Chapter 6 - Communication Protocols and Interfaces.