Articulo de referencia

Ingeniería de protocolos

La ingeniería de protocolos es la aplicación de métodos sistemáticos al desarrollo de protocolos de comunicación . Utiliza muchos de los principios de la ingeniería de software ...

La ingeniería de protocolos es la aplicación de métodos sistemáticos al desarrollo de protocolos de comunicación . Utiliza muchos de los principios de la ingeniería de software , pero es específica para el desarrollo de sistemas distribuidos.

Historia

Cuando se desarrollaron las primeras redes informáticas experimentales y comerciales en la década de 1970, el concepto de protocolos aún no estaba bien desarrollado. Estos fueron los primeros sistemas distribuidos . En el contexto de la arquitectura de protocolos por capas recientemente adoptada (véase el modelo OSI ), la definición del protocolo de una capa específica debe ser tal que cualquier entidad que implemente dicha especificación en una computadora sea compatible con cualquier otra computadora que contenga una entidad que implemente la misma especificación, y sus interacciones deben permitir obtener el servicio de comunicación deseado. Por otro lado, la especificación del protocolo debe ser lo suficientemente abstracta como para permitir diferentes opciones de implementación en diferentes computadoras.

Se reconoció la importancia de una especificación precisa del servicio esperado proporcionado por la capa dada. [ 1 ] Es importante para la verificación del protocolo, que debe demostrar que el servicio de comunicación se proporciona si ambas entidades del protocolo implementan correctamente la especificación del protocolo. Este principio se siguió posteriormente durante la estandarización de la pila de protocolos OSI , en particular para la capa de transporte .

También se reconoció que algún tipo de especificación de protocolo formalizada sería útil para la verificación del protocolo y para desarrollar implementaciones, así como casos de prueba para comprobar la conformidad de una implementación con respecto a la especificación. [ 2 ] Si bien inicialmente se utilizaron principalmente máquinas de estados finitos como modelos (simplificados) de una entidad de protocolo, [ 3 ] en la década de 1980 se estandarizaron tres lenguajes de especificación formal, dos por ISO [ 4 ] y uno por ITU. [ 5 ] Este último, llamado SDL , se utilizó posteriormente en la industria y se ha fusionado con las máquinas de estados UML .

Principios

Arquitectura de protocolo por capas
Arquitectura de protocolo por capas: Vista más abstracta que muestra el servicio de comunicación proporcionado.

Los siguientes son los principios más importantes para el desarrollo de protocolos: [ 1 ]

  • Arquitectura en capas: Una capa de protocolo en el nivel n consta de dos (o más) entidades que tienen una interfaz de servicio a través de la cual se proporciona el servicio de la capa a los usuarios del protocolo, y que utiliza el servicio proporcionado por una entidad local de nivel (n-1).
  • La especificación de servicio de una capa describe, de forma abstracta y global, el comportamiento de la capa tal como se observa en las interfaces de servicio de la misma.
  • La especificación del protocolo define los requisitos que debe cumplir cada implementación de la entidad.
  • La verificación del protocolo consiste en demostrar que dos (o más) entidades que cumplen con la especificación del protocolo proporcionarán en sus interfaces de servicio el servicio especificado de esa capa.
  • La especificación del protocolo (verificada) se utiliza principalmente para las dos actividades siguientes:
  1. El desarrollo de la implementación de una entidad. Cabe destacar que las propiedades abstractas de la interfaz de servicio están definidas por la especificación del servicio (y también son utilizadas por la especificación del protocolo), pero la naturaleza detallada de la interfaz puede elegirse durante el proceso de implementación, de forma independiente para cada entidad.
  2. Desarrollo de conjuntos de pruebas para pruebas de conformidad . Las pruebas de conformidad de protocolo verifican que una implementación de entidad determinada cumpla con la especificación del protocolo. Los casos de prueba de conformidad se desarrollan en función de la especificación del protocolo y son aplicables a todas las implementaciones de entidades. Por lo tanto, se han desarrollado conjuntos de pruebas de conformidad estándar para ciertos estándares de protocolo. [ 3 ]

Métodos y herramientas

Se pueden desarrollar herramientas para las actividades de verificación de protocolos, implementación de entidades y desarrollo de conjuntos de pruebas cuando la especificación del protocolo se escribe en un lenguaje formalizado que la herramienta pueda comprender. Como se mencionó, se han propuesto lenguajes de especificación formal para la especificación de protocolos, y los primeros métodos y herramientas se basaron en modelos de máquinas de estados finitos. Se propuso el análisis de alcanzabilidad para comprender todos los comportamientos posibles de un sistema distribuido, lo cual es esencial para la verificación de protocolos. Posteriormente, esto se complementó con la verificación de modelos . Sin embargo, las descripciones de estados finitos no son lo suficientemente potentes para describir las restricciones entre los parámetros de los mensajes y las variables locales en las entidades. Dichas restricciones pueden describirse mediante los lenguajes de especificación formal estandarizados mencionados anteriormente, para los cuales se han desarrollado potentes herramientas.

Fue en el campo de la ingeniería de protocolos donde el desarrollo basado en modelos se utilizó desde muy temprano. Estos métodos y herramientas se han aplicado posteriormente a la ingeniería de software y al diseño de hardware, especialmente para sistemas distribuidos y en tiempo real. Por otro lado, muchos métodos y herramientas desarrollados en el contexto más general de la ingeniería de software también pueden utilizarse para el desarrollo de protocolos, como la verificación de modelos para la validación de protocolos y los métodos ágiles para la implementación de entidades.

Métodos constructivos para el diseño de protocolos

La mayoría de los protocolos se diseñan mediante la intuición humana y las discusiones durante el proceso de estandarización. Sin embargo, se han propuesto algunos métodos que utilizan enfoques constructivos, posiblemente con el apoyo de herramientas, para derivar automáticamente protocolos que cumplan ciertas propiedades. A continuación, se presentan algunos ejemplos:

  • Síntesis de protocolo semiautomática: [ 6 ] El usuario define todas las acciones de envío de mensajes de las entidades, y la herramienta deriva todas las acciones de recepción necesarias (incluso si hay varios mensajes en tránsito).
  • Protocolo de sincronización: [ 7 ] El usuario proporciona las transiciones de estado de una entidad del protocolo, y el método deriva el comportamiento de la otra entidad de manera que permanezca en estados que correspondan a la entidad anterior.
  • Protocolo derivado de la especificación del servicio: [ 8 ] La especificación del servicio la proporciona el usuario y el método deriva un protocolo adecuado para todas las entidades.
  • Protocolo para aplicaciones de control: [ 9 ] Se proporciona la especificación de una entidad (llamada planta, que debe ser controlada), y el método deriva una especificación de la otra entidad de tal manera que ciertos estados de falla de la planta nunca se alcancen y se satisfagan ciertas propiedades dadas de las interacciones de servicio de la planta. Este es un caso de control de supervisión .

Libros

  • Ming T. Liu, Ingeniería de protocolos, Avances en informática , Volumen 29, 1989, Páginas 79–195.
  • GJ Holzmann, Diseño y validación de protocolos informáticos , Prentice Hall , 1991.
  • H. König, Ingeniería de protocolos , Springer, 2012.
  • M. Popovic, Ingeniería de protocolos de comunicación , CRC Press , 2.ª ed., 2018.
  • P. Venkataram, SS Manvi, BS Babu, Ingeniería de protocolos de comunicación , 2014.

Referencias

  1. 1 2 G. v. Bochmann y CA Sunshine, Métodos formales en el diseño de protocolos de comunicación, IEEE Tr. COM-28, No. 4 (abril de 1980), págs. 624-631.
  2. Consulte la serie de conferencias sobre Pruebas y Verificación de Especificaciones de Protocolo (PSTV) desde 1981.
  3. 1 2 G. v. Bochmann, D. Rayner y CH West, Algunas notas sobre la historia de la ingeniería de protocolos, Revista Computer Networks, 54 (2010), pp 3197–3209.
  4. CA Vissers, G. v. Bochmann y RL Tenney, Técnicas de descripción formal, Actas del IEEE, vol. 71, 12, pp. 1356-1364, diciembre de 1983.
  5. GJ Dickson; PE de Chazal, Estado de las técnicas de descripción de CCITT y su aplicación a la especificación de protocolos, Actas del IEEE, vol. 71, 12, pp. 1346-1355 (1983).
  6. P. Zafiropulo, C. West, H. Rudin, D. Cowan, D. Brand : Hacia el análisis y la síntesis de protocolos, IEEE Transactions on Communications (Volumen: 28, Número: 4, abril de 1980)
  7. MG Gouda y YT Yu, Síntesis de máquinas de estados finitos comunicantes con progreso garantizado, IEEE Trans. on Comm., vol. Com-32, No. 7, julio de 1984, pp. 779-788.
  8. MF Al-hammouri y Gv Bochmann, Realizabilidad de las especificaciones de servicio, Actas de la conferencia System Analysis and Modelling (SAM) 2018, Copenhague, LNCS, Springer.
  9. G. v. Bochmann, Uso de la lógica para resolver el problema de construcción de submódulos, Journal on Discrete Event Dynamic Systems, Vol. 23 (1), Springer, marzo de 2013, pp. 27-59.