C.1
Introducción
Un cuidadoso diseño y analisis del protocolo de comunicaciones es impre-
scindible cuando el sistema alcanza cierta complejidad. La utilización de métodos formales para esta tarea permite eliminar la imprecisión de las de- scripciones informales, realizar demostraciones formales de la validez de un
protocolo y utilizar computadores en el proceso de diseño y validación. De los numerosos métodos propuestos para la validación de protocolos [54)[53)
[371nosotros hemos adoptado el propuesto por Zafiropulo et al. [77] para realizar una validación automática del protocolo que ya estaba en un avan-
zado estado de desarrollo. El método usado está basado en el analisis de alcanzabilidad y utiliza una técnica de perturbaciones.
C.2
Tipos de errores de Diseño
Supondremos que los procesadoresestá inicializados correctamente antes de
comenzar las interacciones. En este marco, podemos tratar cuatro tipos de errores potenciales de diseño: estados de bloqueo, recepciones no especifi- cadas, interacciones no ejecutables y estados ambiguos.
• Estado de bloqueo
Aparece cuando todos y cada uno de los procesos tiene como única
178 C. Analisis del Protocolo de Comunicaciones
alternativa permanecer indefinidamente en el mismo estado. Los es- tados de bloqueo generalmente representan errores, pero pude haber excepciones. Pueden diseñarse protocolos que terminan en estado sin
salida al completar su función.
• Recepción No Especificada
Se produce cuando un arco etiquetado con un entero positivo no ha sido especificado en el diseño. Las recepciones no especificadas son
peligrosas porque pueden llevar al proceso receptor a un estado de- sconocido en que tendrá un comportamiento imprevisible. Los proto- colos pueden protegerse mediante un mecanismo que considere toda
recepción no especificada. Sin embargo, si se introduce este meca- nismo, las recepciones no especificadas que no sean causadas por un mal funcionamiento será tratadas de la misma forma. Por ejemplo, si la petición de una nueva conexión se hace mediante un nuevo identi- ficativo, se tratará de una recepción no especificada pero correcta,
• Interaciones No Ejecutables
Se producen cuando el diseño incluye transmisión y recepción de men- sajes que no pueden producirse bajo condiciones normales de operación. Una interacción no ejecutable es equivalente a la existencia de código muerto en un programa. Pueden deberse a errores de diseño o a la con-
sideración de condiciones de funcionamiento anormales. Para distin- guir entre la condiciones normales y anormales, es una buena práctica de diseño, diseñar y validar un protocolo para la operatividad normal
antes de introducir el tratamiento de la excepciones.
• Estados Ambiguos
Se produce cuando un estado de un proceso puede cobexistir de forma estable con diferentes estado de otro proceso. No representan nece-
sanamente un error.
C.3
Analisis de Perturbaciones
El analisis de perturbaciones es una técnica para detectar la presencia de potenciales errores de diseño en un protocolo. Cada estado del sistema se representa por un array de dimensión igual al número de procesos que inter- accionan cuyos elementos de la. diagonal principal representan el estado de
C.3. Analisis de Perturbaciones 179
un proceso 1-’, y cada elemento i, kno perteneciente a la diagonal representa el mensaje enviado por el proceso p, al proceso Pk~
( ESTADO C—.WO C-.W1
CONTROL CANAL CANAL
ESTADODEL WO—C ESTADO WO—.W1
SISTEMA CANAL WO CANAL
(SS)
W1—.C W1-.WO ESTADO
CANAL CANAL W1
C: control WO(i): procesador básico 0(1)
El proceso comienza definiendo el estado inicial SSO que consiste en los
procesos en estado SO y con los canales yacios (representado por E). SSO se perturba a todos los posibles estado sucesores alcanzablesejecutando una
única transmisión en uno de los procesos individuales IN, i~2, .., P,. Así, cada una de la posibles transmisiones a partir de SSO genera una rama de un árbol llamado de alcanzabilidad. El procedimiento continua perturbando cada
uno de los nuevos estados del sistema y termina cuando no se crean nuevos
estados del sistema. Una vez que se ha generado el árbol de alcanzabilidad, los errores de diseño se detectan de la siguiente forma:
• Estado de bloqueo
Los bloqueos se identifican en el árbol de alcanzabilidad por estados
que tienen todos los canales yacios y no tiene transiciones de salida.
• Recepción No Especificada
Se identifican por estados sin transiciones de salida que absorban el mensaje pendiente de transmisión de un canal.
• Interaciones No Ejecutables
Se identifican por transiciones de estado presentes en el diseño que no
aparecen en el árbol de alcanzabilidad.
• Estados Ambiguas
Se identifican por el estado de un proceso concreto que aparece en
C. AnaLisis del Protocolo de Comunicaciones mensaje numero CODIGO 1 PETICION 2 TRABAJO 3 CONFIRMACION 4 INTERCAMBIO 5 NEGACION 6 RESPUESTA 7 BORRAR 8 NUEVOSRABAJO 9
Tabla Cl: Numeración de los mensajes de PDP
C.4
Modelización del protocolo de PDP
Para realizar la validación del protocolo vamos a modelizarlo utilizando una
simplificación de la representación dada en el capítulo 5, en la que los pro-
cesos que interaccionan se modelan por un grafo de estados finito. Los mensajes intercambiados entre los procesos se representan por enteros. La
emisión de mensajes se representa por valores negativos del entero correspon- diente y la recepción por su valor positivo. La Tabla C.l y C.2 representan la numeración de los mensajes de PDP y de sus estados, respectivamente. Para realizar el analisis se han considerado tras procesos: el controlador y dos procesadores básicos. De esta forma aparece toda la gama de mensajes y situaciones posibles en el sistema. El analisis se ha realizado sobre el proto- colo de comunicaciones correspondiente a la explotación del paralalismoX, ya que el del paraleismofl es una simplicficación de este.
La forma en que queda representado el protocolo de comunicaciones de PDP aparece en la Figura Cl. Se han introducido algunos estados ficticios, como el tratamiento de peticiones (Tarta.pet) en el diagrama que representa los intercambios entre el controlador y un procesador básico, para ajustarse al esquema del método y evitra recibir y enviar mensajes desde un mismo estado. De la misma forma en el protocolo entre procesadores básicos se han introducido los nuevos estadosderecepción de trabajo (Recvtra), activo con petición (AcLpet), activo con trabajo (Act..tra), recepción de ¿a orden
de intercambio (Recvint) y recepción de respuesta (Recvses).