INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS
INGENIERÍA DE PROTOCOLOSINGENIERÍA DE PROTOCOLOSINGENIERÍA DE PROTOCOLOS INGENIERÍA DE PROTOCOLOS DE COMUNICACIONESDE COMUNICACIONES
(MÓDULO 1)(MÓDULO 1)(MÓDULO 1)(MÓDULO 1)
LUIS MENGUAL (c)
INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOSF. I. M.F. I. M.
LSIIS
FIM
L.S.I.I.SL.S.I.I.S
LSIIS
TELEMÁTICA
INGENIERÍA DE PROTOCOLOSINGENIERÍA DE PROTOCOLOS(MÓDULO 1)
http://www.personal.fi.upm.es/~lmengual/inicio_IP.html
LUIS MENGUAL GALÁN
LUIS MENGUAL (c)
LUIS MENGUAL GALÁN
INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS
OBJETIVOSOBJETIVOSOBJETIVOSOBJETIVOS
Describir las técnicas de descripción formal utilizadas para especificar formalmente protocolos de comunicaciones y presentar sus ventajas en la ingeniería de protocolos
Analizar las interfaces de programación más utilizadas en el entorno corporativo: Sockets de Berkeley, Windowsentorno corporativo: Sockets de Berkeley, Windows Sockets, Sockets en Java.
Comprender las técnicas de implementación de aplicaciones distribuidas utilizando las diferentes interfaces dedistribuidas utilizando las diferentes interfaces de programación y el modelo cliente-servidor.
Estudiar el rendimiento de las implementaciones de software cliente y servidorcliente y servidor.
LUIS MENGUAL (c)
INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS
ÍNDICEÍNDICEÍNDICEÍNDICE1. ESPECIFICACIÓN, DISEÑO Y VERIFICACIÓN DE PROTOCOLOS,
1.1 Niveles de descripción de una arquitectura estructurada1.1.1 Definición de la Arquitectura1.1.2 Especificación de servicios1 1 3 E ifi ió f l d t l1.1.3 Especificación formal de protocolos
1.2 Desarrollo de Protocolos 1.2.1 Especificación Formal
1 2 1 1 Validación1.2.1.1 Validación1.2.1.2 Verificación1.2.1.3 Análisis de Prestaciones
1.2.2 ImplementaciónC f1.2.3 Conformidad
1.3 Metodologías de Especificación1.3.1 Lenguaje Natural1 3 2 Grafos de Control de Comunicaciones1.3.2 Grafos de Control de Comunicaciones1.3.3 Máquinas de Estados Finitos Extendidas1.3.4 Redes de Petri1.3.5 SDL
LUIS MENGUAL (c)
1.3.6 Estelle1.3.7 Lotos1.3.8 Prolog
INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS
ÍNDICEÍNDICEÍNDICEÍNDICE1
2. IMPLEMENTACIÓN DE PROTOCOLOS (I)2. IMPLEMENTACIÓN DE PROTOCOLOS (I)
2.1 Modelo cliente-servidor2.1.1 Terminología y conceptose o og a y co ceptos2.1.2 Comparación con otros modelos
2.1.2.1 Aplicaciones peer to peer,2.1.2.2 Teoría de Agentesg
2.2 Modelo Unix2.2.1 Comunicación entre procesos2.2.2 Procesos Concurrentes2.2.3 E/S asíncronas
2.3 Interfaces de Programación de Aplicaciones (API, AplicationProgramming Interface)
2.3.1 Funcionalidad y especificación de las Interfaces deProgramación2.3.2 Interfaces existentes
LUIS MENGUAL (c)
INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS
ÍNDICEÍNDICEÍNDICEÍNDICE1
2. IMPLEMENTACIÓN DE PROTOCOLOS (II)2. IMPLEMENTACIÓN DE PROTOCOLOS (II)
2.4 Interfaz Sockets de Berkeley2.4.1 Algoritmos de diseño Software Clientego t os de d se o So t a e C e te
2.4.1.1 Arquitectura del cliente2.4.1.2 Tipos de clientes (TCP/UDP)
2.4.2 Implementación Software Clientep2.4.2.1 Ejemplos clientes TCP/UDP
2.4.3 Algoritmos de diseño Software Servidor2.4.3.1 Arquitectura del servidor2.4.3.2 Tipos de servidores (TCP/UDP, concurrentes, iterativos)
2.4.4 Implementación Software Servidor2.4.4.1 Servidores Iterativos no Orientados a Conexión (UDP)2.4.4.2 Servidores Iterativos Orientados a Conexión (TCP)2.4.4.3 Servidores Concurrentes orientados a conexión (TCP)2.4.4.4 Servidores Concurrentes. Un solo proceso TCP2 4 4 5 S id M lti t l (TCP UDP)
LUIS MENGUAL (c)
2.4.4.5 Servidores Multiprotocolo (TCP, UDP)2.4.4.6 Servidores Multiservicio (TCP, UDP)
INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS
ÍNDICEÍNDICE1
ÍNDICEÍNDICE
2. IMPLEMENTACIÓN DE PROTOCOLOS (III)2.4.5 Eficiencia y gestión de la concurrencia en servidores
2 4 5 1 El ió t d l it ti t2.4.5.1 Elección entre un modelo iterativo y concurrente2.4.5.2 Nivel de concurrencia2.4.5.3 Concurrencia en función de la demanda2 4 5 4 Coste de la concurrencia2.4.5.4 Coste de la concurrencia
2.4.6 Concurrencia en clientes2.4.6.1 Ventajas de la concurrencia2 4 6 2 Implementaciones con varios procesos2.4.6.2 Implementaciones con varios procesos2.4.6.3 Implementación con un solo proceso
2.4.7 Procedimientos Remotos2 4 7 1 Servicios Básicos sobre RPC2.4.7.1 Servicios Básicos sobre RPC2.4.7.2 Construcción de aplicaciones
LUIS MENGUAL (c)
INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS
ÍNDICEÍNDICEÍNDICEÍNDICE
2. IMPLEMENTACIÓN DE PROTOCOLOS (IV)2.5 Interfaz Windows Sockets
2.5.1 Comparación sockets de Berkeley2.5.1 Comparación sockets de Berkeley2.5.2 Desarrollo de aplicaciones
2.6 Interfaz sockets en Java2.6.1. Introducción2.6.2. Direcciones de Internet2.6.3. Sockets TCP
2 6 3 1 Sockets para clientes2.6.3.1 Sockets para clientes 2.6.3.2 Sockets para servidores 2.6.3.3 Servidores multiusuario 2 6 3 4 Sockets seguros2.6.3.4 Sockets seguros
2.6.4. Datagramas y sockets UDP2.6.5. Sockets multicast2 6 6 C i URL
LUIS MENGUAL (c)
2.6.6. Conexiones a URLs2.6.7. Otras alternativas (Java RMI, Java IDL)
INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS
BIBLIOGRAFÍABIBLIOGRAFÍABIBLIOGRAFÍABIBLIOGRAFÍA
“USING FORMAL DESCRIPTION TECHIQUES” An Introduction to USING FORMAL DESCRIPTION TECHIQUES An Introduction to Estelle, Lotos and SDL. Edited by K.J. Turner. John Wiley &Sons 1993
“INTERNETWORKING WITH TCP/IP. CLIENT-SERVER PROGRAMMING AND APLICATIONS BSD SOCKETS” VERSIONPROGRAMMING AND APLICATIONS BSD SOCKETS VERSION VOLUME III. D. Comer, R. Stevens. Prentice Hall. 1993
“UNIX NETWORK PROGRAMMING”. R. Stevens, Prentice Hall. 1998“INTERNETWORKING WITH TCP/IP VOLUME III: CLIENT SERVER “INTERNETWORKING WITH TCP/IP VOLUME III: CLIENT-SERVER PROGRAMMING AND APPLICATIONS”. Window Sockets Version. D. Comer, R. Stevens. Prentice Hall. 1997NETWORK PROGRAMMING FOR MICROSOFT WINDOWS S d NETWORK PROGRAMMING FOR MICROSOFT WINDOWS. Second Edition. Anthony Jones, Jim Ohlund. Microsoft Press
“WINDOWS SOCKETS NETWORK PROGRAMMING”. B. Quin, D. Sh t Addi W l P bli hi C 1995Shute. Addison-Wesley Publishing Company. 1995
“JAVA NETWORK PROGRAMMING”. E. R. Harold. O’Reilly 2000, 2ª Edition
LUIS MENGUAL (c)
“JAVA SECURITY”. S. Oaks. O’Reilly 2001, 2ª Edition
INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS
ESPECIFICACIÓN DE ESPECIFICACIÓN DE O OCO OS ( )O OCO OS ( )
- ESPECIFICACIÓN FORMAL DE PROTOCOLOS
PROTOCOLOS (I) PROTOCOLOS (I)
Especificación sistemas: Especificación sistemas:– Definir un sistema dinámico de forma univoca
Especificar un protocolo de comunicaciones i tconsiste en:
– Especificar un algoritmo distribuido de tiempo real que se desarrolla en un entorno compuesto por varios usuarios que quieren comunicarse entre sí y por unas conexiones a través de q y plas cuales deben de comunicarse las distintas entidades del protocolo.
LUIS MENGUAL (c)
INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS
ESPECIFICACIÓN Y ESPECIFICACIÓN Y S ÑO O OCO OS ( )S ÑO O OCO OS ( )
- ESPECIFICACIÓN FORMAL DE PROTOCOLOS
DISEÑO DE PROTOCOLOS (I) DISEÑO DE PROTOCOLOS (I)
La creciente utilización de sistemas distribuidos hace cada vez más complejos los protocolos de p j pcomunicaciones
– Esto plantea nuevas problemas de diseño detrás de los cuales, está casi siempre la necesidad de una especificación precisa delcasi siempre la necesidad de una especificación precisa del protocolo
Las primeras descripciones de protocolos eran ti ll d fá il t bi ü d dnarrativas llevando fácilmente a ambigüedades
Inicialmente no se disponía de herramientas formales de validación verificación y comprobación de losde validación, verificación y comprobación de los protocolos especificados y sus implementaciones
LUIS MENGUAL (c)
INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS
ESPECIFICACIÓN Y ESPECIFICACIÓN Y S ÑO O OCO OS ( )S ÑO O OCO OS ( )
- ESPECIFICACIÓN FORMAL DE PROTOCOLOS
DISEÑO DE PROTOCOLOS (II) DISEÑO DE PROTOCOLOS (II)
Hoy en día se entiende que una especificación precisa debe de permitir:especificación precisa debe de permitir:
– Verificar si un protocolo cumple el servicio para el que ha sido diseñadoValidar el funcionamiento del sistema (estados– Validar el funcionamiento del sistema (estados alcanzables, no bloqueos, etc)
– Facilitar al máximo la realización del protocolo de forma ejecutable para la ó las máquinas en cuestiónejecutable, para la ó las máquinas en cuestión
LUIS MENGUAL (c)
INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS
ESPECIFICACIÓN DE ESPECIFICACIÓN DE O OCO OS ( )O OCO OS ( )
- ESPECIFICACIÓN FORMAL DE PROTOCOLOS
PROTOCOLOS (II) PROTOCOLOS (II)
Beneficios– Se pueden derivar muchas implementaciones cambiando
pocas líneas en la especificación– Se puede asegurar previamente un comportamiento g
correcto del protocolo de acuerdo a las exigencias del cliente.
– Se ahorra tiempo y dinero en la contratación de personal encargado de implementar en lenguaje de alto nivelencargado de implementar en lenguaje de alto nivel (pascal, C, etc) si se dispone de una herramienta que me permita la generación de manera automática o semiautomática de código.P it fá il t ódi d l t l– Permite fácilmente generar un nuevo código del protocolo adaptado a los nuevos cambios tecnológicos.
LUIS MENGUAL (c)
INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS
NIVELES DE DESCRIPCIÓNNIVELES DE DESCRIPCIÓNNIVELES DE DESCRIPCIÓNNIVELES DE DESCRIPCIÓN- ESPECIFICACIÓN FORMAL DE PROTOCOLOS
ARQUITECTURAS DE COMUNICACIONES (I)ARQUITECTURAS DE COMUNICACIONES (I)ARQUITECTURAS DE COMUNICACIONES (I)ARQUITECTURAS DE COMUNICACIONES (I)
DEFINICIÓN DE LA ARQUITECTURA DEFINICIÓN DE LOS SERVICIOS DEFINICIÓN DE LOS SERVICIOS ESPECIFICACIÓN DE LOS PROTOCOLOS
SERVICIOS SERVICIOSECTU
RA
SERVICIOS SERVICIOS
PROTOCOLOMECANISMOSFUNCIONES
MECANISMOSFUNCIONESA
RQ
UIT
E
LUIS MENGUAL (c)
INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS
NIVELES DE DESCRIPCIÓNNIVELES DE DESCRIPCIÓNARQUITECTURAS DE COMUNICACIONES (II)ARQUITECTURAS DE COMUNICACIONES (II)
NIVELES DE DESCRIPCIÓNNIVELES DE DESCRIPCIÓNARQUITECTURAS DE COMUNICACIONES (II)ARQUITECTURAS DE COMUNICACIONES (II)ARQUITECTURAS DE COMUNICACIONES (II)ARQUITECTURAS DE COMUNICACIONES (II)ARQUITECTURAS DE COMUNICACIONES (II)ARQUITECTURAS DE COMUNICACIONES (II)
APLICACIÓN APLICACIÓN
TRANSPORTE TRANSPORTEESPECIFICACIÓN
RED REDSERVICIOS
ENLACE ENLACEESPECIFICACIÓN
PROTOCOLO
FISICO FISICO
LUIS MENGUAL (c)
DEFINICIÓN ARQUITECTURA
INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS
FASES DEL FASES DEL DESARROLLO DE PROTOCOLOSDESARROLLO DE PROTOCOLOS
FASES DEL FASES DEL DESARROLLO DE PROTOCOLOSDESARROLLO DE PROTOCOLOS
- ESPECIFICACIÓN FORMAL DE PROTOCOLOS
DESARROLLO DE PROTOCOLOSDESARROLLO DE PROTOCOLOSDESARROLLO DE PROTOCOLOSDESARROLLO DE PROTOCOLOS
ESPECIFICACIÓN FORMAL– VALIDACIÓNVALIDACIÓN
» Especificación Completa, Ausencia de Bloqueos, Ausencia de lazos improductivos, Terminación Todos los estados alcanzablesTerminación, Todos los estados alcanzables
– VERIFICACIÓN– ANÁLISIS DE PRESTACIONES
IMPLEMENTACIÓN CONFORMIDAD CONFORMIDAD
LUIS MENGUAL (c)
INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS
METODOLOGÍAS DEMETODOLOGÍAS DEESPECIFICACIÓN DE PROTOCOLOSESPECIFICACIÓN DE PROTOCOLOSESPECIFICACIÓN DE PROTOCOLOSESPECIFICACIÓN DE PROTOCOLOS
AUTÓMATAS MÁQUINAS DE ESTADOS EXTENDIDAS REDES DE PETRI SDL
– CCITT Recommendation Z.100, Specification and Description Language SDL, AP IX-35 1988
ESTELLE– ISO/DP 9074. A formal Description technique based on an Extended
State Transition model 1985State Transition model, 1985 LOTOS
– A Formal Description Technique based on the Temporal Ordering of Observational Behaviour. ISO 8807, 1988. Language Of Temporal Ordering g g p gSpecification
PROLOG
LUIS MENGUAL (c)
INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS
AUTÓMATASAUTÓMATASAUTÓMATASAUTÓMATAS- ESPECIFICACIÓN FORMAL DE PROTOCOLOS
AUTÓMATASAUTÓMATASAUTÓMATASAUTÓMATAS
Un autómata es una quíntupla A = < E,S,Q,f,g > :
E : CONJUNTO FINITO DE ENTRADAS
S : CONJUNTO FINITO DE SALIDAS
Q : CONJUNTO DE ESTADOS
QQE:f ×f : FUNCION DE TRANSICION
Q : CONJUNTO DE ESTADOS
g E Q S: g : FUNCION DE SALIDA
LUIS MENGUAL (c)
INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS
DIAGRAMA DE TRANSICIONESDIAGRAMA DE TRANSICIONESDIAGRAMA DE TRANSICIONESDIAGRAMA DE TRANSICIONES- ESPECIFICACIÓN FORMAL DE PROTOCOLOS
(DIAGRAMA DE MOORE)(DIAGRAMA DE MOORE)(DIAGRAMA DE MOORE)(DIAGRAMA DE MOORE)
a / 1q3
a / 1
a / 0b / 0
q qa / 0 b / 0
q1 q2b / 1
LUIS MENGUAL (c)
INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS
TABLA DE TRANSICIONESTABLA DE TRANSICIONESTABLA DE TRANSICIONESTABLA DE TRANSICIONES- ESPECIFICACIÓN FORMAL DE PROTOCOLOS
TABLA DE TRANSICIONESTABLA DE TRANSICIONESTABLA DE TRANSICIONESTABLA DE TRANSICIONES
a bEQ
E a b ,Q
q q / 0 q / 1
{ }
S 0 1,q1 q1 / 0 q2 / 1
{ }
Q
q2 q3 / 0 q2 / 0
{ }Q q q q 1 2 3, , q3 q3 / 1 q1 / 0{ }
LUIS MENGUAL (c)
INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS
PROTOCOLO PARADAPROTOCOLO PARADA--ESPERAESPERA- ESPECIFICACIÓN FORMAL DE PROTOCOLOS
V(S) V(R) V(S) V(R)
I(0)
ACK1
0 0
1
I(0)x
I(1)1 T
ACK0
0
0 I(0)
LUIS MENGUAL (c)
INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS
MÁQUINA DE ESTADOS EXTENDIDA:MÁQUINA DE ESTADOS EXTENDIDA:PROTOCOLO PARADAPROTOCOLO PARADA ESPERAESPERA
MÁQUINA DE ESTADOS EXTENDIDA:MÁQUINA DE ESTADOS EXTENDIDA:PROTOCOLO PARADAPROTOCOLO PARADA ESPERAESPERA
- ESPECIFICACIÓN FORMAL DE PROTOCOLOS
PROTOCOLO PARADAPROTOCOLO PARADA--ESPERAESPERAPROTOCOLO PARADAPROTOCOLO PARADA--ESPERAESPERA
TRAMA ACKRECIBIDA /
TRAMA I RECIBIDA / MANDAR ACK
DESOCUPADORECIBIDA /
ERRORMANDAR ACK
TRAMA I LISTA PARA ENVIAR / ENVIO TRAMA
TRAMA ACKRECIBIDA /PROCESO ACK
DESOCUPADO
ENVIO TRAMA
EXPIRA T / RETRANS. RECEPTOR
ESPERANDOACK
LUIS MENGUAL (c)
EMISOR
INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS- ESPECIFICACIÓN FORMAL DE PROTOCOLOS
MÁQUINA DE ESTADOS EXTENDIDA:MÁQUINA DE ESTADOS EXTENDIDA:PROTOCOLO PARADAPROTOCOLO PARADA ESPERAESPERA
MÁQUINA DE ESTADOS EXTENDIDA:MÁQUINA DE ESTADOS EXTENDIDA:PROTOCOLO PARADAPROTOCOLO PARADA ESPERAESPERAPROTOCOLO PARADAPROTOCOLO PARADA--ESPERAESPERAPROTOCOLO PARADAPROTOCOLO PARADA--ESPERAESPERA
EXPIRATEMP.
TRAMA ILISTA
TRAMA ACKRECIBIDA
EVENTOESTADO
ACTUAL TEMP. LISTA RECIBIDA
DESOCUPADO
ACTUALNA TRANS.
TRAMAERROR
0 1 0(0)ACCION
NUEVO ESTADO
ESPERANDOACK
(1)
RETRANS.TRAMA RETARDO PROC. ACK ACCION
NUEVO ESTADO1 1 0
EVENTOESTADO
TRAMA IRECIBIDAESTADO
ACTUAL RECIBIDA
ACCION
NUEVO ESTADO
DESOCUPADO(0)
MANDARACK
LUIS MENGUAL (c)
NUEVO ESTADO( )
0
INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS
REDES DE PETRI (I)REDES DE PETRI (I)REDES DE PETRI (I)REDES DE PETRI (I)
- ESPECIFICACIÓN FORMAL DE PROTOCOLOS
REDES DE PETRI (I)REDES DE PETRI (I)REDES DE PETRI (I)REDES DE PETRI (I)
C j t LUGARES{ } p p p p Conjunto LUGARESr1 2 3, , , . .
t t t t Conjunto TRANSICIONESs1 2 3, , , . .
{ }
{ } js1 2 3, , ,
F N Función incidencia PROGRESIVA: *
{ }
B N Función incidencia REGRESIVA: *
M N MARCAJE INICIAL: * M N MARCAJE INICIAL:
LUGARES
TRANSICIONESREPRESENTACIÓNGRAFICA
LUIS MENGUAL (c)
FUNCIONES DE INCIDENCIA
INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS
REDES DE PETRI (II)REDES DE PETRI (II)REDES DE PETRI (II)REDES DE PETRI (II)- ESPECIFICACIÓN FORMAL DE PROTOCOLOS
REDES DE PETRI (II)REDES DE PETRI (II)REDES DE PETRI (II)REDES DE PETRI (II) p p p1 2 3, , M p p p3 1 0 ( ) ( ) ( ){ {} }
t
p p p1 2 3, , M p p p0 1 2 33 1 0 ( ), ( ), ( ) t t t t1 2 3 4, , ,
{{
{}}
}
.p p
t 1
.. .p1 p
2
t
t 2
t 4t 3
LUIS MENGUAL (c)
p3
INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS
REDES DE PETRI (III)REDES DE PETRI (III)REDES DE PETRI (III)REDES DE PETRI (III)- ESPECIFICACIÓN FORMAL DE PROTOCOLOS
REDES DE PETRI (III)REDES DE PETRI (III)REDES DE PETRI (III)REDES DE PETRI (III)
t 3t 2t 1 t 4F t 3t 2t 1 t 4B321 4
p1 1 0 0 0
321 4
p1 0 0 1 0
p2 0 1 0 0
p2
p2 1 0 0
p3 0 0 1 1
p3 0 2 0 0
p ti i t pi i
LUIS MENGUAL (c)
INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS
REDES DE PETRI: REDES DE PETRI: PROTOCOLO PARADAPROTOCOLO PARADA ESPERAESPERA
REDES DE PETRI: REDES DE PETRI: PROTOCOLO PARADAPROTOCOLO PARADA ESPERAESPERA
- ESPECIFICACIÓN FORMAL DE PROTOCOLOS
PROTOCOLO PARADAPROTOCOLO PARADA--ESPERAESPERAPROTOCOLO PARADAPROTOCOLO PARADA--ESPERAESPERA
T
p3
p2
p1
1T (ENVIO TRAMA)
p1
p 4T 2 (RECEP.ACK)
p3
T (REENVIO TRAMA)
p5
EMISOR
p 2 DATOS NIVEL SUPERIOR4 : ACK RECIBIDOp
p 1 : DESOCUPADO
LUIS MENGUAL (c)
p 2 : DATOS NIVEL SUPERIOR
3 : ESPERANDO ACKpp 5 :TEMPORIZADOR EXPIRADO
INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS
ESTELLE:ESTELLE:PROTOCOLO PARADAPROTOCOLO PARADA ESPERAESPERA
ESTELLE:ESTELLE:PROTOCOLO PARADAPROTOCOLO PARADA ESPERAESPERA
- ESPECIFICACIÓN FORMAL DE PROTOCOLOS
PROTOCOLO PARADAPROTOCOLO PARADA--ESPERAESPERAPROTOCOLO PARADAPROTOCOLO PARADA--ESPERAESPERA
ESTELLE es una técnica de descripción formal para la especificación de sistemasformal para la especificación de sistemas concurrentes distribuidos
Una especificación ESTELLE está orientada a Una especificación ESTELLE está orientada a la descripción de un conjunto de máquinas de estado finito que se comunican entre sí y c as acciones internar están definidas porcuyas acciones internar están definidas por sentencias Pascal (con algunas restricciones y extensiones)y )
LUIS MENGUAL (c)
INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS
ESTELLE:ESTELLE:El d l ifi ióEl d l ifi ió
ESTELLE:ESTELLE:El d l ifi ióEl d l ifi ió
- ESPECIFICACIÓN FORMAL DE PROTOCOLOS
Elementos de la especificaciónElementos de la especificaciónElementos de la especificaciónElementos de la especificación
Módulos o procesosp– El comportamiento interno de un módulo está descrito
como una máquina de estados finíta extendida no determinística
– Las transiciones se expresan en forma de sentencias Pascal (con restricciones y extensiones)
– Cada módulo tiene un conjunto de puntos de acceso deCada módulo tiene un conjunto de puntos de acceso de entrada/salida llamados puntos de interacción. Estos puntos de interacción se utilizarán para la comunicación entre procesos de distintos módulos
LUIS MENGUAL (c)
INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS
ESTELLE:ESTELLE:El d l ifi ióEl d l ifi ió
ESTELLE:ESTELLE:El d l ifi ióEl d l ifi ió
- ESPECIFICACIÓN FORMAL DE PROTOCOLOS
Elementos de la especificaciónElementos de la especificaciónElementos de la especificaciónElementos de la especificación
Transiciones– La ejecución de una acción está relacionada con elLa ejecución de una acción está relacionada con el
estado de control del proceso, los valores actuales de las variables de contexto, los mensajes recibidos y encolados de otros procesos y la prioridad asociada a cada transición
– Las transiciones no son determinísticas en el sentido de que en cualquier instante dado puede haber más de una
ió ód l d jacción que un módulo puede ejecutar – Cuando se ejecuta una transición un módulo pasa a un
nuevo estado se actualizan ciertas variables e incluso se d i i t j l t dpueden enviar ciertos mensajes por los puntos de
interacción definidos
LUIS MENGUAL (c)
INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS
ESTELLE:ESTELLE:El d l ifi ióEl d l ifi ió
ESTELLE:ESTELLE:El d l ifi ióEl d l ifi ió
- ESPECIFICACIÓN FORMAL DE PROTOCOLOS
Elementos de la especificaciónElementos de la especificaciónElementos de la especificaciónElementos de la especificación
Comunicación entre procesos– Los módulos o procesos definidos en ESTELLE seLos módulos o procesos definidos en ESTELLE se
comunican intercambiando mensajes o interacciones a través de canales lógicos
– Un proceso puede enviar un mensaje a otro proceso aUn proceso puede enviar un mensaje a otro proceso a través de un canal lógico establecido entre dos puntos de interacción.
– Un proceso siempre puede mandar un mensaje oUn proceso siempre puede mandar un mensaje o interacción
– Un mensaje recibido por un proceso en un punto de interacción se introducirá en una cola FIFO asociadainteracción se introducirá en una cola FIFO asociada con ese punto de interacción
LUIS MENGUAL (c)
INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS
ESTELLE:ESTELLE:El d l ifi ióEl d l ifi ió
ESTELLE:ESTELLE:El d l ifi ióEl d l ifi ió
- ESPECIFICACIÓN FORMAL DE PROTOCOLOS
Elementos de la especificaciónElementos de la especificaciónElementos de la especificaciónElementos de la especificación
Paralelismo y no Determinismo:– La comunicación entre procesos es asíncrona. – Los módulos operan independientemente y se
comunican asíncronamente a través de los canales.– Cada proceso definido en un módulo seleccionará el
conjunto de transiciones o acciones listas para ser ejecutadas.j
– Aunque los procesos pueden intercambiar mensajes entre ellos, éstos se ejecutan de manera asíncrona, de modo que sus pasos son completamente independientes uno de otros.
LUIS MENGUAL (c)
INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS
ESTELLE:ESTELLE:PROTOCOLO PARADAPROTOCOLO PARADA ESPERAESPERA
ESTELLE:ESTELLE:PROTOCOLO PARADAPROTOCOLO PARADA ESPERAESPERA
- ESPECIFICACIÓN FORMAL DE PROTOCOLOS
PROTOCOLO PARADAPROTOCOLO PARADA--ESPERAESPERAPROTOCOLO PARADAPROTOCOLO PARADA--ESPERAESPERA
USUARIO_E(UE)
USUARIO_R(UR)
U UU
U
U
U
C1 C3envia(datos) recibe(datos)
EMISOR(E)
RECEPTOR(R)
MT MRC
2 C4envia(n,datos) recibe(n,datos)ack(n) ack(n)
MEDIO (M)
MT MR( )
LUIS MENGUAL (c)
MEDIO (M)
INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS- ESPECIFICACIÓN FORMAL DE PROTOCOLOS
ESTELLE:ESTELLE:PROTOCOLO PARADAPROTOCOLO PARADA ESPERAESPERA
ESTELLE:ESTELLE:PROTOCOLO PARADAPROTOCOLO PARADA ESPERAESPERAPROTOCOLO PARADAPROTOCOLO PARADA--ESPERAESPERAPROTOCOLO PARADAPROTOCOLO PARADA--ESPERAESPERA
CHANNEL C1 (usuario, proveedor);by usuario :
( )
CHANNEL C3 (usuario, proveedor);by proveedor:
( )envia (datos:tipo_datos); recibe (datos : tipo_datos);
CHANNEL C2 (usuario, proveedor);by usuario :
CHANNEL C4 (usuario, proveedor);by usuario: y
envia (n:sec;datos tipo_datos);by proveedor:
ack (n : sec);
yack (n :sec);
by proveedor:recibe (n:sec;:datos : tipo datos);ack (n : sec); recibe (n:sec;:datos : tipo_datos);
LUIS MENGUAL (c)
INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS- ESPECIFICACIÓN FORMAL DE PROTOCOLOS
ESTELLE:ESTELLE:PROTOCOLO PARADAPROTOCOLO PARADA ESPERAESPERA
ESTELLE:ESTELLE:PROTOCOLO PARADAPROTOCOLO PARADA ESPERAESPERA
MODULE USUARIO E; MODULE EMISOR;
PROTOCOLO PARADAPROTOCOLO PARADA--ESPERAESPERAPROTOCOLO PARADAPROTOCOLO PARADA--ESPERAESPERA
MODULE USUARIO_E;ip U : C1(usuario);
O S O
MODULE EMISOR;ip U : C1(proveedor);
MT: C2(usuario);MODULE USUARIO_R;
ip U : C3(usuario);
MODULE MEDIO
MODULE RECEPTOR;ip U : C3(proveedor);
MR: C4(usuario);MODULE MEDIO;ip MT: C2(proveedor);
MR: C4(proveedor);
MR: C4(usuario);
BODY USUARIO_E_BODY FOR USUARIO_E; EXTERNAL;BODY USUARIO R BODY FOR USUARIO R; EXTERNAL;_ _ _ ; ;BODY EMISOR_BODY FOR EMISOR; EXTERNAL;BODY RECEPTOR_BODY FOR RECEPTOR; EXTERNAL;
LUIS MENGUAL (c)
BODY MEDIO_BODY FOR MEDIO; EXTERNAL;
INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS
ESTELLE:ESTELLE:PROTOCOLO PARADAPROTOCOLO PARADA ESPERAESPERA
ESTELLE:ESTELLE:PROTOCOLO PARADAPROTOCOLO PARADA ESPERAESPERA
- ESPECIFICACIÓN FORMAL DE PROTOCOLOS
INITIALIZE BEGIN
PROTOCOLO PARADAPROTOCOLO PARADA--ESPERAESPERAPROTOCOLO PARADAPROTOCOLO PARADA--ESPERAESPERA
MODVAR
INITIALIZE BEGIN
INIT UE WITH USUARIO_E_BODY;SO OMODVAR
E : EMISOR;R : RECEPTOR;
INIT E WITH EMISOR_BODY;INIT M WITH MEDIO_BODY;INIT UR WITH USUARIO_R_BODY;R : RECEPTOR;
UE: USUARIO_E;UR: USUARIO_R;M MEDIO
INIT R WITH RECEPTOR_BODY;
CONNECT UE.U TO E.U;M: MEDIO; ;CONNECT E.MT TO M.MT;CONNECT UR.U TO R.U;CONNECT R MR TO M MR;CONNECT R.MR TO M.MR;
END;
LUIS MENGUAL (c)
INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS
ESTELLEESTELLEESTELLEESTELLE- ESPECIFICACIÓN FORMAL DE PROTOCOLOS
TRANSICIONESTRANSICIONESTRANSICIONESTRANSICIONES
CONDICION DE DISPARO– ESTADO ORIGEN (FROM)
ENTRADA (WHEN)– ENTRADA (WHEN)– PREDICADO (PROVIDED)– PRIORIDAD (PRIORITY)( )
ACCIONES– ESTADO DESTINO (TO)– SALIDAS (OUTPUT)
TRANSICIONES ESPONTANEASNO TIENEN ENTRADA (WHEN)– NO TIENEN ENTRADA (WHEN)
– PUEDEN TENER LA CLAUSULA DELAY
LUIS MENGUAL (c)
INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS- ESPECIFICACIÓN FORMAL DE PROTOCOLOS
ESTELLE:ESTELLE:PROTOCOLO PARADAPROTOCOLO PARADA ESPERAESPERA
ESTELLE:ESTELLE:PROTOCOLO PARADAPROTOCOLO PARADA ESPERAESPERA
EMISOR BODY FOR EMISOR
PROTOCOLO PARADAPROTOCOLO PARADA--ESPERAESPERAPROTOCOLO PARADAPROTOCOLO PARADA--ESPERAESPERA_
STATE desocupado, esperando_ack
INITIALIZE BEGININITIALIZE BEGINSTATE TO desocupado;nsec : 0;
ENDEND
TRANS WHEN U i (d t )WHEN U.envia(datos)FROM desocupado TO esperando_ackBEGIN
buffer :=datos;OUTPUT MT.envia(nsec,buffer);
END
LUIS MENGUAL (c)
INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS- ESPECIFICACIÓN FORMAL DE PROTOCOLOS
ESTELLE:ESTELLE:PROTOCOLO PARADAPROTOCOLO PARADA ESPERAESPERA
ESTELLE:ESTELLE:PROTOCOLO PARADAPROTOCOLO PARADA ESPERAESPERA
TRANS
PROTOCOLO PARADAPROTOCOLO PARADA--ESPERAESPERAPROTOCOLO PARADAPROTOCOLO PARADA--ESPERAESPERA
TRANS WHEN MT.ack(n)FROM esperando_ack TO desocupadoPROVIDED n=nsec+1; (MOD2)PROVIDED n=nsec+1; (MOD2)BEGIN
nsec := nsec+1; (MOD2)ENDEND
TRANS FROM esperando_ack TO sameDELAY (timeout)BEGIN
OUTPUT MT.envia(nsec,buffer);END
LUIS MENGUAL (c)
INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS- ESPECIFICACIÓN FORMAL DE PROTOCOLOS
ESTELLE:ESTELLE:PROTOCOLO PARADAPROTOCOLO PARADA ESPERAESPERA
ESTELLE:ESTELLE:PROTOCOLO PARADAPROTOCOLO PARADA ESPERAESPERAPROTOCOLO PARADAPROTOCOLO PARADA--ESPERAESPERAPROTOCOLO PARADAPROTOCOLO PARADA--ESPERAESPERA
RECEPTOR BODY FOR RECEPTORRECEPTOR_BODY FOR RECEPTORINITIALIZE BEGIN
nesp=o;ENDENDWHEN MR.recibe(n,datos)
BEGINIF n<>nesp THEN BEGINOUTPUT MR.ack(nesp+1);ENDIF n=nesp THEN BEGINOUTPUT U.recibe(datos);nesp=nesp+1;nesp nesp+1;OUTPUT MR.ack(nesp);END
END
LUIS MENGUAL (c)
END END
INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS
ESTELLE:ESTELLE:A i i S l iA i i S l i
ESTELLE:ESTELLE:A i i S l iA i i S l i
- ESPECIFICACIÓN FORMAL DE PROTOCOLOS
Asentimientos SelectivosAsentimientos SelectivosAsentimientos SelectivosAsentimientos Selectivos
UUSER
U
DATA_INDICATION
U
NRECEIVER
N
SEND_AK(ak_no) DATA_INDICATION
NNETWORK
LUIS MENGUAL (c)
INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS
ESTELLE:ESTELLE:A i i S l iA i i S l i
ESTELLE:ESTELLE:A i i S l iA i i S l i
- ESPECIFICACIÓN FORMAL DE PROTOCOLOS
RECEIVER BODY FOR RECEIVER
Asentimientos SelectivosAsentimientos SelectivosAsentimientos SelectivosAsentimientos Selectivos
RECEIVER_BODY FOR RECEIVERSTATE IDLE, ACK_SENT INITIALIZE BEGIN (* initialization part *)
STATE TO IDLESTATE TO IDLEmin:=1;max:=20;inactive period:=60;inactive_period:=60;ak_no:=0;
ENDTRANS (* transition part *)TRANS ( transition part )
FROM IDLE TO IDLEPRYORITY MEDIUMPRYORITY MEDIUMWHEN N.DATA_INDICATION;{T1} begin
output U DATA INDICATION;
LUIS MENGUAL (c)
output U. DATA_INDICATION;ak_no:=ak_no+1;
end
INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS
ESTELLE:ESTELLE:A i i S l iA i i S l i
ESTELLE:ESTELLE:A i i S l iA i i S l i
- ESPECIFICACIÓN FORMAL DE PROTOCOLOS
TO ACK_SENT
Asentimientos SelectivosAsentimientos SelectivosAsentimientos SelectivosAsentimientos Selectivos
PROVIDED (ak_no>0) and (ak_no<=4) PRYORITY LOWDELAY (min,max){T2} begin{ } g
output N. SEND_AK(ak_no);end
PROVIDED (ak_no>4) and (ak_no<7) PRYORITY highDELAY (min){T3} begin
output N. SEND_AK(ak_no);end
PROVIDED (ak_no=7) PRYORITY high
{T4} beginoutput N. SEND_AK(ak_no);
endPROVIDED (ak_no=0)
PRYORITY low
LUIS MENGUAL (c)
DELAY (inactive_period){T5} begin
output N. SEND_AK(ak_no);end
INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS
ESTELLE:ESTELLE:A i i S l iA i i S l i
ESTELLE:ESTELLE:A i i S l iA i i S l i
- ESPECIFICACIÓN FORMAL DE PROTOCOLOS
Asentimientos SelectivosAsentimientos SelectivosAsentimientos SelectivosAsentimientos Selectivos
FROM AK_SENT TO IDLE
{ 6}{T6} beginak_no:=0;
end
end; (* transsition part *)
LUIS MENGUAL (c)
INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS
ESTELLE:ESTELLE:A i i S l iA i i S l i
ESTELLE:ESTELLE:A i i S l iA i i S l i
- ESPECIFICACIÓN FORMAL DE PROTOCOLOS
Asentimientos SelectivosAsentimientos SelectivosAsentimientos SelectivosAsentimientos Selectivos
Inmediatamente después de la inicialización, arranca el temporizador cláusula delay de la t i ió T5transición T5
– Si pasan 60s y no llega ningún mensaje entrante se dispara la transición T5 mandándose un ack artificial
it l d iópara evitar la desconexión– Si llega un mensaje antes de 60s se dispara la transición
T1 y se cancela el temporizador de la transición T5. » El valor de ack_no = 1» El estado final es IDLE
T5Inicio
LUIS MENGUAL (c)
60s
INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS
ESTELLE:ESTELLE:A i i S l iA i i S l i
ESTELLE:ESTELLE:A i i S l iA i i S l i
- ESPECIFICACIÓN FORMAL DE PROTOCOLOS
Asentimientos SelectivosAsentimientos SelectivosAsentimientos SelectivosAsentimientos Selectivos
Después de llegar el primer mensaje arranca el temporizador de la cláusula delay de la transición t2transición t2
– Si los mensajes llegan en cantidades de 1-4 cada 20s. ellos pueden ser reconocidos uno por uno o en bloques de 2 4 mensajes dependiendo de la distribución dede 2-4 mensajes dependiendo de la distribución de mensajes en el tiempo
T1M1
Inicio Tem. Delay T2
1s 20s
LUIS MENGUAL (c)
INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS
ESTELLE:ESTELLE:A i i S l iA i i S l i
ESTELLE:ESTELLE:A i i S l iA i i S l i
- ESPECIFICACIÓN FORMAL DE PROTOCOLOS
Asentimientos SelectivosAsentimientos SelectivosAsentimientos SelectivosAsentimientos Selectivos
Inicio Tem. Delay T2
T2M1
Inicio Tem. Delay T2
M2
1s 20sInicio Tem. Delay T2
T2M1 M3M2
1s 20s
Inicio Tem Delay T2
T2M1
Inicio Tem. Delay T2
M4M3M2
LUIS MENGUAL (c)1s 20s
INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS
ESTELLE:ESTELLE:A i i S l iA i i S l i
ESTELLE:ESTELLE:A i i S l iA i i S l i
- ESPECIFICACIÓN FORMAL DE PROTOCOLOS
Asentimientos SelectivosAsentimientos SelectivosAsentimientos SelectivosAsentimientos Selectivos
Inicio Tem. Delay T2
T2M1 M4M2 M3
1s 20s
Inicio Tem. Delay T2
T2M1 M3M2 M4
LUIS MENGUAL (c)
1s 20s
INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS
ESTELLE:ESTELLE:A i i S l iA i i S l i
ESTELLE:ESTELLE:A i i S l iA i i S l i
- ESPECIFICACIÓN FORMAL DE PROTOCOLOS
Después de llegar el quinto mensaje y no
Asentimientos SelectivosAsentimientos SelectivosAsentimientos SelectivosAsentimientos Selectivos
Después de llegar el quinto mensaje y no haber sido asentidos los cuatro anteriores
– Se cancela el temporizador asociado al delay de la T2– Arranca arranca el temporizador de la cláusula delay de
la transición T3– Después de 1s se disparará la T3 si no se recibe el
j 7mensaje 7
1sInicio Tem. Delay T3
T3M5M1 M2 M3 M4
T3
1s
M5
Inicio Tem. Delay T3
M1 M2 M3 M4 M6
LUIS MENGUAL (c)
INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS
ESTELLE:ESTELLE:A i i S l iA i i S l i
ESTELLE:ESTELLE:A i i S l iA i i S l i
- ESPECIFICACIÓN FORMAL DE PROTOCOLOS
Después de llegar el séptimo mensaje y no
Asentimientos SelectivosAsentimientos SelectivosAsentimientos SelectivosAsentimientos Selectivos
Después de llegar el séptimo mensaje y no haber sido asentidos los mensaje anteriores
– Se cancela el temporizador asociado al delay de la T3– Se dispara la T4 inmediatamente
Di T4Disparo T4
Inicio Tem. Delay T3
Inicio Tem. Delay T2
M5M1 M2 M3 M4 M6 M7
yy
1sCancela Temp T3
LUIS MENGUAL (c)
INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS
ESTELLE:ESTELLE:A i i S l iA i i S l i
ESTELLE:ESTELLE:A i i S l iA i i S l i
- ESPECIFICACIÓN FORMAL DE PROTOCOLOS
C l i
Asentimientos SelectivosAsentimientos SelectivosAsentimientos SelectivosAsentimientos Selectivos
Conclusiones:– Alta carga:
» Llegada de 7 mensajes en menos de 1s: Los asentimientos i d bl d 7 json enviados en bloques de 7 mensajes
– Carga Media:» Cuando se reciben más de cuatro mensajes en menos de
20 S d ti i t j t d é d20s: Se manda un asentimiento conjunto después de un retardo de 1s. desde el quinto mensaje.
– Esto ocurre si no se recibe antes el mensaje 7, en cuyo caso el asentimiento es inmediato
– Carga Baja:» Cuando solo se reciben de 1 a 4 mensajes en 20s se manda
un asentimiento al final de este tiempo (de 1, 2, 3 o 4)Si áfi– Sin tráfico
» Si no se envía ningún mensaje en el periodo de 60s se envía un ack de mantenimiento de la línea
LUIS MENGUAL (c)
INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS
SDL SDL ((Specification and Description Language)Specification and Description Language)i t d iói t d ióintroducciónintroducción
SDL : Leguaje de Especificación y Descripción Basado en autómatas extendidos y comunicación Basado en autómatas extendidos y comunicación
asíncrona de procesos Normalizado por el CCITT: SDL-72, SDL76, ..SDL-88 /
ITU: SDL 92ITU: SDL-92 Notación textual (SDL/PR) y gráfica (SDL/GR) Aplicación: sistemas distribuidos, de tiempo real, p , p ,
interactivos, protocolos de comunicaciones– Ejemplo: Estándar IEEE 802.11
Herramientas: Telelogic Tau Herramientas: Telelogic Tau
LUIS MENGUAL (c)
INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS
SDL: SDL: SDL: SDL: - ESPECIFICACIÓN FORMAL DE PROTOCOLOS
Estructura de una EspecificaciónEstructura de una EspecificaciónEstructura de una EspecificaciónEstructura de una Especificación
System S
Block B2Block B1
Process P11 Process P12 Process P13 Process P21 Process P22
LUIS MENGUAL (c)
INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS
SDL: SDL: SDL: SDL: - ESPECIFICACIÓN FORMAL DE PROTOCOLOS
Estructura de un SistemaEstructura de un SistemaEstructura de un SistemaEstructura de un Sistema
Enviroment
Ch l
System
Block
Channel
BlockChannel Channel
LUIS MENGUAL (c)
INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS
SDL: SDL: SDL: SDL: - ESPECIFICACIÓN FORMAL DE PROTOCOLOS
Estructura del BloqueEstructura del BloqueEstructura del BloqueEstructura del Bloque
el
Block
Process
Cha
nne
Signalroute
ProcessSignalroute
Cha
nnel
Signalroute
LUIS MENGUAL (c)
INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS
SDL:SDL:PP M d l Bá iM d l Bá i
SDL:SDL:PP M d l Bá iM d l Bá i
- ESPECIFICACIÓN FORMAL DE PROTOCOLOS
Proceso:Proceso: Modelo Básico Modelo Básico Proceso:Proceso: Modelo Básico Modelo Básico
LUIS MENGUAL (c)
INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS
SDL: SDL: SDL: SDL: - ESPECIFICACIÓN FORMAL DE PROTOCOLOS
Constructores para la descripción de un ProcesoConstructores para la descripción de un ProcesoConstructores para la descripción de un ProcesoConstructores para la descripción de un Proceso
S1 S2A BS1 S2A B
START STATE INPUT OUTPUT NEXSTATE
LUIS MENGUAL (c)
INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS
SDL:SDL:PP E t d T i i IIE t d T i i II
SDL:SDL:PP E t d T i i IIE t d T i i II
- ESPECIFICACIÓN FORMAL DE PROTOCOLOS
Proceso:Proceso: Estados y Transiciones IIEstados y Transiciones IIProceso:Proceso: Estados y Transiciones IIEstados y Transiciones II
LUIS MENGUAL (c)
INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS
SDL:SDL:PROTOCOLO PARADAPROTOCOLO PARADA ESPERAESPERA
SDL:SDL:PROTOCOLO PARADAPROTOCOLO PARADA ESPERAESPERA
- ESPECIFICACIÓN FORMAL DE PROTOCOLOS
PROTOCOLO PARADAPROTOCOLO PARADA--ESPERAESPERAPROTOCOLO PARADAPROTOCOLO PARADA--ESPERAESPERA
DESOCUPADOESPERANDOACK
DESOCUPADO
TRAMADATOS
DATOS NIVELSUPERIOR ACK(n)
TRAMA
T
TRAMAACK
TRAMADATOS
TRAMADATOS
SET(NOW+13 T)
nn<>nsec n=nsec
DESOCUPADOESPERANDO
ACKESPERANDO
ACKDESOCUPADO
SET(NOW+13,T)
ESPERANDOACK
SET(NOW+13,T)
LUIS MENGUAL (c)
ACK ACK
EMISOR RECEPTOR
ACK
INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS
TELELOGIC SDLTELELOGIC SDLTELELOGIC SDL TELELOGIC SDL
LUIS MENGUAL (c)
INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS
SDLSDL PROTOCOLO PARADAPROTOCOLO PARADA--ESPERA ESPERA D i ió Si tD i ió Si t
SDLSDL PROTOCOLO PARADAPROTOCOLO PARADA--ESPERA ESPERA D i ió Si tD i ió Si tDescripción SistemaDescripción SistemaDescripción SistemaDescripción Sistema
LUIS MENGUAL (c)
INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS
SDLSDL PROTOCOLO PARADAPROTOCOLO PARADA--ESPERA ESPERA D i ió Bl ID i ió Bl I
SDLSDL PROTOCOLO PARADAPROTOCOLO PARADA--ESPERA ESPERA D i ió Bl ID i ió Bl IDescripción Bloques IDescripción Bloques IDescripción Bloques IDescripción Bloques I
LUIS MENGUAL (c)
INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS
SDLSDL PROTOCOLO PARADAPROTOCOLO PARADA--ESPERA ESPERA D i ió Bl IID i ió Bl II
SDLSDL PROTOCOLO PARADAPROTOCOLO PARADA--ESPERA ESPERA D i ió Bl IID i ió Bl IIDescripción Bloques IIDescripción Bloques IIDescripción Bloques IIDescripción Bloques II
LUIS MENGUAL (c)
INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS
SDLSDL PROTOCOLO PARADAPROTOCOLO PARADA--ESPERA ESPERA D i ió P ID i ió P I
SDLSDL PROTOCOLO PARADAPROTOCOLO PARADA--ESPERA ESPERA D i ió P ID i ió P IDescripción Procesos IDescripción Procesos IDescripción Procesos IDescripción Procesos I
LUIS MENGUAL (c)
INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS
SDLSDL PROTOCOLO PARADAPROTOCOLO PARADA--ESPERA ESPERA D i ió P di i tD i ió P di i t
SDLSDL PROTOCOLO PARADAPROTOCOLO PARADA--ESPERA ESPERA D i ió P di i tD i ió P di i tDescripción ProcedimientosDescripción ProcedimientosDescripción ProcedimientosDescripción Procedimientos
LUIS MENGUAL (c)
INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS
SDLSDL PROTOCOLO PARADAPROTOCOLO PARADA--ESPERA ESPERA D i ió P IID i ió P II
SDLSDL PROTOCOLO PARADAPROTOCOLO PARADA--ESPERA ESPERA D i ió P IID i ió P IIDescripción Procesos IIDescripción Procesos IIDescripción Procesos IIDescripción Procesos II
LUIS MENGUAL (c)
INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS
(o)(o)
(1)
(1)(1)
(o)
LUIS MENGUAL (c)
INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS
LOTOSLOTOSLOTOSLOTOS- ESPECIFICACIÓN FORMAL DE PROTOCOLOS
INTRODUCCIÓNINTRODUCCIÓNINTRODUCCIÓNINTRODUCCIÓN
En LOTOS Se hace una descripción dinámica del sistema basado en una ordenación de eventoseventos
Los eventos ocurren en puntos de interacción de procesos denominados puertasde procesos denominados puertas
Un evento corresponde a la activación de una puertap
El proceso de modelado consiste en:– Seleccionar los aspectos más relevantes del sistema
d idi t l d l tdecidir como trasladarlos a puertas– El comportamiento del sistema es especificado
describiendo todas las posibles secuencias de eventos que el sistema puede ofrecer al entorno
LUIS MENGUAL (c)
el sistema puede ofrecer al entorno
INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS
LOTOSLOTOSLOTOSLOTOS- ESPECIFICACIÓN FORMAL DE PROTOCOLOS
REPRESENTACIÓN DE EVENTOS Y PUERTASREPRESENTACIÓN DE EVENTOS Y PUERTASREPRESENTACIÓN DE EVENTOS Y PUERTASREPRESENTACIÓN DE EVENTOS Y PUERTAS
a bestados
c d
puertas
a: ?x1:int, ?x2:int, !(3+5), !true, ?x3:bool;
LUIS MENGUAL (c)
, , ( ), , ;
INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS
LOTOSLOTOSLOTOSLOTOS- ESPECIFICACIÓN FORMAL DE PROTOCOLOS
OPERADOR DE ELECCIÓN (CHOICE [ ])OPERADOR DE ELECCIÓN (CHOICE [ ])OPERADOR DE ELECCIÓN (CHOICE [ ])OPERADOR DE ELECCIÓN (CHOICE [ ])
Operador Choice [ ]:
( Net1_in? Datagrama: ip_dtgrm;encamina(Datagrama);.............................
)
[ ][ ]
( Net2_in? Datagrama: ip_dtgrm;i (D )encamina(Datagrama);
.............................)
LUIS MENGUAL (c)
INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS
LOTOSLOTOSLOTOSLOTOS- ESPECIFICACIÓN FORMAL DE PROTOCOLOS
SELECCIÓN DE EVENTOS Y OPERADORES DE GUARDASELECCIÓN DE EVENTOS Y OPERADORES DE GUARDASELECCIÓN DE EVENTOS Y OPERADORES DE GUARDASELECCIÓN DE EVENTOS Y OPERADORES DE GUARDA
a ? x:int [x<0]; Selección de Eventos:
a: ? x:int, !y [x>y]
Operadores de Guarda:Net1_in? Datagrama: ip_dtgrm;( ( [ruta(datagrama)=2] >
Operadores de Guarda:
( ( [ruta(datagrama)=2] ->Net2_out ! Datagrama;
.........)[ ][ ]
( [ruta(datagrama)=3] ->Net3_out ! Datagrama;
LUIS MENGUAL (c)
..........))
INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS
LOTOSLOTOSLOTOSLOTOS- ESPECIFICACIÓN FORMAL DE PROTOCOLOS
ENTRELAZADO DE PROCESOSENTRELAZADO DE PROCESOSENTRELAZADO DE PROCESOSENTRELAZADO DE PROCESOS
a1 b1 a2 b2| | |
a1b1 a2
b2
a2 b2 a2 b2 a1 b1 a1 b1
LUIS MENGUAL (c)
INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS
LOTOSLOTOSLOTOSLOTOS- ESPECIFICACIÓN FORMAL DE PROTOCOLOS
SINCRONIZACIÓN PARCIALSINCRONIZACIÓN PARCIALSINCRONIZACIÓN PARCIALSINCRONIZACIÓN PARCIAL
a b a f
c d d| [ a, d ] |
a fb
c d b
b
f
LUIS MENGUAL (c)
INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS
LOTOSLOTOSLOTOSLOTOS- ESPECIFICACIÓN FORMAL DE PROTOCOLOS
SINCRONIZACIÓN DE PUERTAS (I)SINCRONIZACIÓN DE PUERTAS (I)SINCRONIZACIÓN DE PUERTAS (I)SINCRONIZACIÓN DE PUERTAS (I)
Las puertas tienen el mismo nombre y e es un valor de tipo t
Las puertas tienen el mismo nombre y los a ? x : t y a ! e
valores s1 y s2 coinciden
a ! s1 y a ! s2
Los valores ofrecidos en la puerta son del mismo tipo (t1=t2) pero no están definidos
y
mismo tipo (t1=t2), pero no están definidos
a ? x : t1 y a ? y : t2
LUIS MENGUAL (c)
(En este caso el valor del evento que ocurrirá en el modelo no está definido)
INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS
LOTOSLOTOSLOTOSLOTOS- ESPECIFICACIÓN FORMAL DE PROTOCOLOS
SINCRONIZACIÓN DE PUERTAS (I)SINCRONIZACIÓN DE PUERTAS (I)SINCRONIZACIÓN DE PUERTAS (I)SINCRONIZACIÓN DE PUERTAS (I)
Ejemplos:
a: ?x1:int, ?x2:int, !(3+5), !true, ?x3:bool
a: !7, !9, ?y1:int, !true, ?y2:bool
a: !7, !9, ?y1:bool, !true, ?y2:bool
a: !7, !9
LUIS MENGUAL (c)
INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS
LOTOSLOTOSLOTOSLOTOS- ESPECIFICACIÓN FORMAL DE PROTOCOLOS
PROTOCOLO PARADAPROTOCOLO PARADA--ESPERAESPERAPROTOCOLO PARADAPROTOCOLO PARADA--ESPERAESPERA
SPECIFICACION BIT ALTERNANTESPECIFICACION BIT ALTERNANTEbehaviour
( EMISOR [get, tout, send, receive ] (0)( [g , , , ] ( )| | |RECEPTOR [ give, send, receive] (0)
)
| [ tout, send, receive] |
LINEA [tout, send, receive]
whereEMISOR [ t t t d i ] (0) ( )process EMISOR [get, tout, send, receive ] (0) ( ........... )
process RECEPTOR [ give, send, receive] (0) ( ........... )process LINEA [tout, send, receive] ( ........... )
LUIS MENGUAL (c)
endspec
INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS
LOTOSLOTOSLOTOSLOTOS- ESPECIFICACIÓN FORMAL DE PROTOCOLOS
PROTOCOLO PARADAPROTOCOLO PARADA--ESPERAESPERAPROTOCOLO PARADAPROTOCOLO PARADA--ESPERAESPERA
receive !info ?rec:SNum
send !info !seq !data
receive !info ?rec:SNum?data:BitString
rec<>nesprec=nespreceive !ack !inc(seq) !emptytout send !ack !inc(nesp)!emptygive !data
EMISORRECEPTOR
exit send !ack !inc(nesp)!emptyRECEPTOR (inc(nesp))
send ?f:trame ?seq:SNum ?data:BitString
i receive !f !seq!data
LINEA
LUIS MENGUAL (c)
tout
INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS
EJEMPLO ESPECIFICACIÓN EJEMPLO ESPECIFICACIÓN PROTOCOLO RDSI Q 931PROTOCOLO RDSI Q 931
- ESPECIFICACIÓN FORMAL DE PROTOCOLOS
PROTOCOLO RDSI Q.931PROTOCOLO RDSI Q.931
RTC
RED DE CONMUTACION DE PAQUETES
USUARIOTELEX
USUARIOUSUARIO
RED BANDA ANCHA
RDSI USUARIOUSUARIO RDSI
LUIS MENGUAL (c)
INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS
RED DIGITAL RED DIGITAL SERVICIOS INTEGRADOSSERVICIOS INTEGRADOS
- ESPECIFICACIÓN FORMAL DE PROTOCOLOS
SERVICIOS INTEGRADOSSERVICIOS INTEGRADOS
CENTRALLOCALRDSITR 1
US/T
AT
RACCESO BÁSICO 2B D
TERMINALNO RDSI....TERMINAL
RDSI
ACCESO BÁSICO 2B+D
CENTRALLOCALRDSI
US T
CENTRALITA
TR 1
TERMINALNO RDSI
AT
TERMINALRDSI
R...
CENTRALITADIGITAL
MULTISERVICIO(NT2)
ACCESO PRIMARIO 30B+D
LUIS MENGUAL (c)
NO RDSI....RDSI
INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS
RED DIGITAL RED DIGITAL SERVICIOS INTEGRADOSSERVICIOS INTEGRADOS
- ESPECIFICACIÓN FORMAL DE PROTOCOLOS
SERVICIOS INTEGRADOSSERVICIOS INTEGRADOS
MULTIPLEXACION A NIVEL FISICO:– ACCESO BASICO
» 2B (64Kbps) + D (16Kbps)– ACCESO PRIMARIO
» 30B (64Kbps) + D (64Kbps)
PLANO DE CONTROL: – CANAL D
PLANO DE USUARIO: PLANO DE USUARIO: – CANAL B Y D
El PLANO DE CONTROL estructurado en 3 niveles ( li d l d l OSI)(alineado con el modelo OSI)
El plano de usuario depende de las aplicaciones
LUIS MENGUAL (c)
INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS
RED DIGITAL RED DIGITAL SERVICIOS INTEGRADOSSERVICIOS INTEGRADOS
- ESPECIFICACIÓN FORMAL DE PROTOCOLOS
CONTROL DE LLAMADAS POR CANAL COMUN
SERVICIOS INTEGRADOSSERVICIOS INTEGRADOSCONTROL DE LLAMADAS POR CANAL COMUN
LUIS MENGUAL (c)
INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS
RED DIGITAL RED DIGITAL SERVICIOS INTEGRADOSSERVICIOS INTEGRADOS
- ESPECIFICACIÓN FORMAL DE PROTOCOLOS
ARQUITECTURA DE PROTOCOLOS EN EL INTERFAZ USUARIO RDSI
SERVICIOS INTEGRADOSSERVICIOS INTEGRADOS
APLICACION
ARQUITECTURA DE PROTOCOLOS EN EL INTERFAZ USUARIO-RDSI
SESION
PRESENTACIONSEÑALIZACION
USUARIOEXT EXT
RED
TRANSPORTE
X.25NIVEL PAQUETE
X.25NIVEL PAQUETE
SEÑALIZACIONCONTROL(I 451)
EXT-EXT
FISICO
ENLACE
RED
NIVEL 1 (I 430 I 431)
LAP- D LAP-B
NIVEL PAQUETE NIVEL PAQUETECONTROL(I.451)
FRAME-RELAY
FISICO
CONMUTACIONCIRCUITOS
CONMUTACIONPAQUETES
LINEADEDICADASEÑALIZACION PAQUETES TELEMETRIA
NIVEL 1 (I.430, I.431)
LUIS MENGUAL (c)
CANAL D CANAL B
INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS
ARQUITECTURA DE COMUNICACIONES RDSI
- ESPECIFICACIÓN FORMAL DE PROTOCOLOS
COMUNICACIONES RDSI
I.451/ Q.931
MENSAJE I.451 / Q.931
LAP-D(I.441)
MENSAJE I.451 / Q.931CABECERALAPD FIN LAPD
INTERFAZBASICO(I.430)
INTERFAZPRIMARIO
(I.431)
LUIS MENGUAL (c)
INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS
FORMATO DE LOS MENSAJES Q 931FORMATO DE LOS MENSAJES Q 931FORMATO DE LOS MENSAJES Q 931FORMATO DE LOS MENSAJES Q 931- ESPECIFICACIÓN FORMAL DE PROTOCOLOS
FORMATO DE LOS MENSAJES Q.931FORMATO DE LOS MENSAJES Q.931FORMATO DE LOS MENSAJES Q.931FORMATO DE LOS MENSAJES Q.931
DISCRIMINADOR PROTOCOLO
LONGITUD DEL0 0 0 0
CONTENIDOSE.I.
IDENTIFICADORE.I.1
F t E I ti 1LONGITUD DELV.R.Ll.
VALOR DE REFERENCIADE LLAMADA
I
0 0 0 0
IDENTIFICADOR E.I.1
R.LLFormato E.I. tipo 1
TIPO DE MENSAJE0Formato E.I. tipo 2
0 IDENTIFICADOR E.I.
LONGITUD E.I.ELEMENTOS DE INFORMACION OBLIGATORIOS Y ADICIONALES
CONTENIDOS E.I.
F t E I ti 3
LUIS MENGUAL (c)
Formato E.I. tipo 3
INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS
MENSAJES Q.931MENSAJES Q.931MENSAJES Q.931MENSAJES Q.931- ESPECIFICACIÓN FORMAL DE PROTOCOLOS
MENSAJES Q.931MENSAJES Q.931MENSAJES Q.931MENSAJES Q.931
ESTABLECIMIENTO, ACUSE ESTABLECIMIENTO, LLAMADA EN CURSO, AVISO, PROGRESO, CONEXION, ACUSE CONEXION
MENSAJESESTABLECIMIENTO
SUSPENSION, ACUSE SUSPENSION, RECHAZO SUSPENSION, MENSAJESFASE REANUDACION, ACUSE REANUDACION, RECHAZO, REANUDACION
INFORMACION USUARIOFASE
INFORMACION
DESCONEXION, LIBERACION, LIBERACION COMPLETADAMENSAJESLIBERACION
INFORMACION, ESTADO, CONSULTA DE ESTADO, NOTIFICACION, CONTROL DE LA CONGESTION
MENSAJESDIVERSOS
LUIS MENGUAL (c)
INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS
PROCEDIMIENTOSPROCEDIMIENTOSLLAMADA Q 931LLAMADA Q 931
PROCEDIMIENTOSPROCEDIMIENTOSLLAMADA Q 931LLAMADA Q 931
- ESPECIFICACIÓN FORMAL DE PROTOCOLOS
LLAMADA Q.931LLAMADA Q.931LLAMADA Q.931LLAMADA Q.931
ESTABLECIMIENTO
LLAMADA EN CURSO
ESTABLECIMIENTO
LLAMADA EN CURSO
AVISOAVISO
CONEXIONCONEXION
ACUSE CONEXION
ACUSE CONEXION
DATOS
DESCONEXIONDESCONEXION
LIBERACION COMPLETA
LIBERACIONLIBERACION
LIBERACION COMPLETA
LUIS MENGUAL (c)
INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS- ESPECIFICACIÓN FORMAL DE PROTOCOLOS
Diagrama de transición de estadospara el establecimiento de la llamada
LUIS MENGUAL (c)
para el establecimiento de la llamadaQ.931 por Conmutación de Circuitos
INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS- ESPECIFICACIÓN FORMAL DE PROTOCOLOS
Diagrama de transición de estadospara la finalización de la llamada
LUIS MENGUAL (c)
para la finalización de la llamadaQ.931 por Conmutación de Circuitos
INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS
EJEMPLO ESPECIFICACIÓN PROTOCOLOEJEMPLO ESPECIFICACIÓN PROTOCOLORDSI Q 931 CON SERVICIOS DE SEGURIDADRDSI Q 931 CON SERVICIOS DE SEGURIDAD
- ESPECIFICACIÓN FORMAL DE PROTOCOLOS
RDSI Q.931 CON SERVICIOS DE SEGURIDADRDSI Q.931 CON SERVICIOS DE SEGURIDAD
AUTORIDADCERTIFICACIÓN
M INFORMACIÓN USUARIO (M j 1)M. INFORMACIÓN USUARIO (Mensaje 1)
M. INFORMACIÓN USUARIO (Mensaje 2)
USUARIO AM. ESTABLECIMIENTO (Mensaje 3)
M. AVISO (Mensaje 4)
LUIS MENGUAL (c)
USUARIO B
INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS
EJEMPLO ESPECIFICACIÓN PROTOCOLOEJEMPLO ESPECIFICACIÓN PROTOCOLORDSI Q 931 CON SERVICIOS DE SEGURIDADRDSI Q 931 CON SERVICIOS DE SEGURIDAD
- ESPECIFICACIÓN FORMAL DE PROTOCOLOS
RDSI Q.931 CON SERVICIOS DE SEGURIDADRDSI Q.931 CON SERVICIOS DE SEGURIDAD
INTERCAMBIOS DEL PROTOCOLO DE SEGURIDADINCORPORADO EN EL CANAL D DE LA RDSI
;,,(,,,,Re::1 1NAKencryptKencryptBAqCA SAPC
;,,,,,,,,,::2 2NKencryptTKBKencryptTKAKencryptAC PAPBSCPASC
;,,,(,,,,,::3 3NTSKKencryptKencryptTKAKencryptBA SAPBPASC ;,,,(,,,,,::3 3NTSKKencryptKencryptTKAKencryptBA SAPBPASC
;,::4 4NSKencryptAB
LUIS MENGUAL (c)
INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS
EJEMPLO ESPECIFICACIÓN PROTOCOLOEJEMPLO ESPECIFICACIÓN PROTOCOLORDSI Q 931 CON SERVICIOS DE SEGURIDADRDSI Q 931 CON SERVICIOS DE SEGURIDAD
- ESPECIFICACIÓN FORMAL DE PROTOCOLOS
RDSI Q.931 CON SERVICIOS DE SEGURIDADRDSI Q.931 CON SERVICIOS DE SEGURIDAD
behaviourbehaviour
(ISDN USER[isdn user scontrol call choice random timeout] (userA)ISDN_USER[isdn, user, scontrol_call,choice_random,timeout] (userA)|||ISDN_USER[isdn, user, scontrol_call,choice_random,timeout] (userB)||||||CERTIFICATION_AUTHORITY[isdn, user,t imeout](guide) )
|[isdn, timeout]||[ , ]|
NETWORKING_SERVICE[isdn, control_isdn, timeout]
where
...........................................
LUIS MENGUAL (c)
INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS
EJEMPLO ESPECIFICACIÓN LOTOS PROTOCOLOEJEMPLO ESPECIFICACIÓN LOTOS PROTOCOLORDSI Q 931 CON SERVICIOS DE SEGURIDADRDSI Q 931 CON SERVICIOS DE SEGURIDAD
- ESPECIFICACIÓN FORMAL DE PROTOCOLOS
RDSI Q.931 CON SERVICIOS DE SEGURIDADRDSI Q.931 CON SERVICIOS DE SEGURIDADISDN_USER [isdn,user,scontrol_call,choice_random,timeout]
(own_name : user_name) : noexit :=
isdn ! setup_security_message ! own_name ? call_refd : call_reference_value ? one setup: setup security;
.user ! initiate ! own_name ? tpname, peer_name :
? one_setup: setup_security;user_name;
SECURITY_SERVICE_PHASE_1[isdn, user,scontrol_call,choice_random, timeout ] ( t )
SECURITY_SERVICE_RESPOND[isdn, user] (own_name, call_refd,one_setup)
(own_name, tpname, peer_name)
LUIS MENGUAL (c)
INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS
SECURITY_SERVICE_PHASE_1 [isdn,user,scontrol_call,timeout](own name guide peer name : user name): exit :=
- ESPECIFICACIÓN FORMAL DE PROTOCOLOS
(own_name, guide, peer_name : user_name): exit :=.scontrol_call ? call_refs: -
isdn !setup !m_setup(----).
isdn !call_proc !own_name !call_refs ?one-call_proc
isdn ! alerting !own name
..
timeout
isdn ! alerting !own_name !call_refs ?one_alerting
isdn ! connect!own_name
..
isdn !release_complete !own_name !call_refs ?one_release_complete;
exit
!call_refs ?one_connect
isdn ! ui ! m ui(----).
i M1->isdn ! ui ! m_ui( )
.isdn ! ui !own_name
!call_refs ?one_ui
i
iexit
M1 >
<-M2
LUIS MENGUAL (c)SECURITY_SERVICE_PHASE_2[isdn,user,scontrol_call]
(own_name, peer_name, cp) ) ) ))
CLEAR_USER1[isdn] (own_name, call_refs) .user ! guide_service_down; exit
INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS
SECURITY SERVICE PHASE 2 [ isdn user scontrol call timeout]
- ESPECIFICACIÓN FORMAL DE PROTOCOLOS
SECURITY_SERVICE_PHASE_2 [ isdn, user, scontrol_call,timeout] (own_name, peer_name : user_name, cp: public_key) : exit :=
scontrol_call ? call_refs: -
.
.isdn ! setup_security !m_setup(----)
isdn !call proc !own name .M3->
_p _!call_refs ?one-call_proc
isdn ! alerting security !own name.
timeout
M4isdn ! alerting_security !own_name !call_refs ?one_alerting
.isdn !release_complete !own_name !call_refs ?one_release_complete;
exit
<-M4
user ! authentication _service_comptete !own_name ;
user !authentication_service_rejected !own_name ;exit
LUIS MENGUAL (c)
_ _ p _ ;exit
INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS
CERTIFICATION AUTHORITY [isdn user timeout]
- ESPECIFICACIÓN FORMAL DE PROTOCOLOS
CERTIFICATION_AUTHORITY [isdn,user,timeout] (own_name : user_name) : exit :=
isdn ! setup !own_name ? call refd ?one setup
.? call_refd ?one_setup
isdn ! alerting !m_alerting(---) .isdn !release_complete
!m_release_complete(---)exit
isdn ! connect !m_conect(---)
.exit
isdn ! ui !own_name .
M1->! call_refd ?one_ui
isdn ! ui !m_ui(---) .CLEAR_USER2[isdn] (own_name, call_refs)
(guide service accepted/
M1 >
LUIS MENGUAL (c)
(guide_service_accepted/guide_service_rejected)
exit<-M2
INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS- ESPECIFICACIÓN FORMAL DE PROTOCOLOS
SECURITY_SERVICES_RESPOND [isdn, user] (own_name : user_name,call_refd : call_reference_value, one_setup : setup_security) : exit :=
.isdn ! setup_security !own_name ? call_refd ?one_setup.
isdn !release complete
.isdn !release_complete !m_release_complete(---)
.* setup_acepted
! th ti ti i t d
exit
! th ti ti i j t d
.user ! authentication _service_accepted
!own_name user ! authentication _service_rejected
!own_name .isdn ! alerting_security !m_alerting(---) isdn ! alerting !m_alerting(---)
exit exit
LUIS MENGUAL (c)
INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS
NETWORKING SERVICE[isdn, scontrol call] : noexit := (I)
- ESPECIFICACIÓN FORMAL DE PROTOCOLOS
_ [ , _ ]
.( )
isdn ! setup ?one_setup: setup
.isdn ! setup_security ?one_setup: setup_security .
scontrol_call ? call_refdscontrol_call ? call_refd
...
isdn ! call_proc !source !call_refs ! m_call_proc(---)
isdn ! call_proc !source !call_refs ! m_call_proc(---) .
timeout timeout
.isdn ! setup !destination !call_refd !one_setup
isdn ! setup_security !destination !call_refd !one_setup_security
.1
.isdn ! alerting ? one_alerting
[ call_refd == get_cr(one_alerting)]i
..
isdn ! alerting_security ? one_alerting[call_refd == get_cr (one_alerting)]
LUIS MENGUAL (c)
1CLEAR_1[isdn] (source, call_refs,
destination, call_refd)
.exit
isdn ! alerting _security !source !call_refs ! one_alerting_security
INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS
(II)NETWORKING SERVICE[isdn scontrol call] : noexit :=
- ESPECIFICACIÓN FORMAL DE PROTOCOLOS
(II)NETWORKING_SERVICE[isdn, scontrol_call] : noexit :=
1
isdn ! alerting !source !call refsisdn ! alerting !source !call_refs ! one_alerting.
isdn ! connect ? one_connecti[call_refd == get_call_ref(one_connect)]
NETWORK_SERVICE[isdn] (user).
isdn ! connect ! source !call_refs !one_connect.
DATA_TRANSMISION[isdn] (source, call_refs, destination, call_refd)
LUIS MENGUAL (c)
INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS
PROLOG:PROLOG:I t d ióI t d ió
- ESPECIFICACIÓN FORMAL DE PROTOCOLOS
IntroducciónIntroducción
PROLOG l j d ió d ll d PROLOG es un lenguaje de programación desarrollado para representar y utilizar el conocimiento que se tiene sobre un determinado dominio.
Un dominio es un conjunto de objetos y el conocimiento sobre ese dominio se representa por un conjunto de relaciones o reglas que describen las propiedades de los
bj t i t iobjetos y sus interacciones. Un programa PROLOG no es más que un conjunto de
reglas que describen las propiedades e interacciones g q p pentre los objetos.
Un programa PROLOG consta de tres elementos básicos:
Declaración de hechos (“facts”) acerca de los objetos y sus relaciones.
Definición de reglas (“rules”) hechos que dependen de otros hechos
LUIS MENGUAL (c)
hechos Preguntas (“questions”) acerca de hechos
INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS
PROLOG:PROLOG:H h “f t ”H h “f t ”
- ESPECIFICACIÓN FORMAL DE PROTOCOLOS
Hechos “facts”Hechos “facts”
Los “hechos” no es más que el conocimiento que se tiene de los objetos y sus relaciones.
En PROLOG una colección de “hechos” que son utilizadas para resolver un problema particular se denomina “Base de Conocimiento”denomina Base de Conocimiento .
conoce(juan parís)conoce(juan, parís).Hecho: “Juan conoce París”
Predicado(nombre de la relación)
Argumentos (nombres de los objetos)
LUIS MENGUAL (c)
(nombre de la relación) (nombres de los objetos)
INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS
PROLOG:PROLOG:C lt Obj tiC lt Obj ti
- ESPECIFICACIÓN FORMAL DE PROTOCOLOS
Consultas, ObjetivosConsultas, Objetivos
Una vez que tenemos algunos hechos, podemos formular algunas preguntas acerca de ellos
Cuando se hace una pregunta el intérprete PROLOG Cuando se hace una pregunta el intérprete PROLOGbuscará si dicho hecho coincide con alguno otro existente en su Base de Conocimiento. E t d h h i idi á i di d l Estos dos hechos coincidirán si sus predicados son los mismos y los argumentos coinciden y están en la misma posición.
Para el intérprete PROLOG una consulta implica satisfacer el objetivo expresado.
Si el intérprete PROLOG encuentra un hecho que coincide Si el intérprete PROLOG encuentra un hecho que coincide con el hecho definido en la interrogación responderá afirmativamente.
LUIS MENGUAL (c)
?- conoce(juan, parís).
INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS
PROLOG:PROLOG:V i blV i bl
- ESPECIFICACIÓN FORMAL DE PROTOCOLOS
VariablesVariables
En PROLOG no sólo se pueden utilizar nombres para denominar a objetos concretos sino que también se puede utilizar nombres para denominar a objetos todavía no determinados. Los
b d d i d i i blnombres de este segundo tipo se denominan variables Cuando PROLOG utiliza una variable, dicha variable puede estar
o no instanciada: – Una variable está instanciada cuando hay un valor particular asociado a dicha
variable. – Una variable no está instanciada cuando todavía no hay un valor particular
asociado a dicha variable.
PROLOG distingue las variables de los nombres de objetos concretos debido a que las variables comienzan con una letra mayúscula
Cuando se realiza una pregunta a un intérprete PROLOGconteniendo una variable, éste explora todos los hechos de su Base de Conocimiento con el fin de encontrar un objeto para el
d i di h i bl
LUIS MENGUAL (c)
que se pueda asociar a dicha variable.
INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS
PROLOG:PROLOG:V i blV i bl
- ESPECIFICACIÓN FORMAL DE PROTOCOLOS
VariablesVariables
conoce(juan, parís).conoce(juan estocolmo) Base de Conocimientoconoce(juan, estocolmo).conoce(juan, oslo).
Base de Conocimiento
?- conoce(juan, X). Consulta
X=paris;
? conoce(juan, X). Consulta
pa s;X=estocolmo;X=oslo;
Resultado
LUIS MENGUAL (c)
INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS
PROLOG:PROLOG:C j i ( i dC j i ( i d B kt ki )B kt ki )
- ESPECIFICACIÓN FORMAL DE PROTOCOLOS
Conjunciones (mecanismo de Conjunciones (mecanismo de Backtracking)Backtracking)
?-conoce(juan,X) , conoce(maria,X).
conoce(juan,oslo).conoce(juan,paris).conoce(juan,londres).•Primer objetivo satisfecho. Se asigna “X”=oslo.
•Prolog marca el punto de la BD en el que se satisface el objetivo. (j , )conoce(maria,paris).
Prolog marca el punto de la BD en el que se satisface el objetivo.•Se intenta satisfacer el segundo objetivo para ese valor de “X”.
?-conoce(juan,X) , conoce(maria,X).
conoce(juan,oslo).conoce(juan,paris).conoce(juan,londres).
• El segundo objetivo falla• Se intenta re-satisfacer el primer objetivo asignando un nuevo
valor a “X” a partir del punto marcado en la exploración anterior
LUIS MENGUAL (c)
conoce(maria,paris).valor a “X” a partir del punto marcado en la exploración anterior.
INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS
PROLOG:PROLOG:C j i ( i dC j i ( i d B kt ki )B kt ki )
- ESPECIFICACIÓN FORMAL DE PROTOCOLOS
Conjunciones (mecanismo de Conjunciones (mecanismo de Backtracking)Backtracking)
?-conoce(juan,X), conoce(maria,X).
conoce(juan,oslo).(j i )conoce(juan,paris).
conoce(juan,londres).conoce(maria,paris).
Primer objetivo satisfecho de nuevo. Se asigna “X”=paris Prolog marca el punto de la B.D. en el que se satisface el objetivoSe intenta satisfacer el segundo objetivo para ese valor de “X”.
? (j X) ( i X)?-conoce(juan,X), conoce(maria,X).
conoce(juan,oslo).conoce(juan,paris).conoce(juan,londres).conoce(maria,paris).
El segundo objetivo tiene éxito.El intérprete Prolog informa de ello, y queda a la espera de realizar una nueva exploración
LUIS MENGUAL (c)
INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS
PROLOG:PROLOG:R lR l
- ESPECIFICACIÓN FORMAL DE PROTOCOLOS
ReglasReglas
En PROLOG se utilizan reglas cuando es necesario expresar hechos que dependen de uno u otros hechos.
En PROLOG una regla consta de una cabeceraEn PROLOG una regla consta de una cabeceray un cuerpo. La cabecera y el cuerpo están conectadas por el símbolo “:-”.
– La cabecera de la regla define el hecho que dicha regla intenta definir.
– El cuerpo define una conjunción de objetivos que deben de ti f h l b tser satisfechos uno por uno para que la cabecera tenga
éxito.
Hecho: “X es hermana de Y si X es mujer y X e Y tienen los mismos padres”
LUIS MENGUAL (c)
hermana_de(X,Y):=mujer(X), padres(X,P,M), padres(Y,P,M).
ec o es e a a de s es uje y e t e e os s os pad es
INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS
PROLOG:PROLOG:- ESPECIFICACIÓN FORMAL DE PROTOCOLOS
Análisis de la vulnerabilidad de Protocolos de SeguridadAnálisis de la vulnerabilidad de Protocolos de Seguridad
Se puede utilizar PROLOG para analizar la vulnerabilidad de un protocolo de seguridadvulnerabilidad de un protocolo de seguridad
– A partir de la definición (o especificación) de un protocolo de seguridad se puede representar su comportamiento con un conjunto de reglas PROLOG
– A partir del conocimiento de alguna información relativa a los contenidos del P S (grabada por un intruso) y dea los contenidos del P.S. (grabada por un intruso) y de las reglas que definen el comportamiento del protocolo se puede analizar su vulnerabilidad
LUIS MENGUAL (c)
INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS
EJEMPLO ESPECIFICACIÓN PROTOCOLOEJEMPLO ESPECIFICACIÓN PROTOCOLO- ESPECIFICACIÓN FORMAL DE PROTOCOLOS
CC
(2)(1)
•C y A comparte una clave Ka•C y B comparte una clave Kb
A B(3)
(4)
(1)
BECAaK );(::1
(4)
AKEKEACba
a
SKSK ,::2
datEAB
AKEBAb SK
::4
::3
LUIS MENGUAL (c)
datEABsK::4
* Protocolo de Needham Schroeder
INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS
EJEMPLO ESPECIFICACIÓN PROTOCOLOEJEMPLO ESPECIFICACIÓN PROTOCOLO- ESPECIFICACIÓN FORMAL DE PROTOCOLOS
CC
(2)(1)
•C y A comparte una clave Ka•C y B comparte una clave Kb
A B(3)
(4)
(1)
xE K );(
BECAaK );(::1
(4)aK
AKEKEACba
a
SKSK ,::2
datEAB
AKEBAb SK
::4
::3
AKEx SK
LUIS MENGUAL (c)
datEABsK::4
* Protocolo de Needham Schroeder
INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS
PROLOG:PROLOG:- ESPECIFICACIÓN FORMAL DE PROTOCOLOS
PROTOCOL SPECIFICATION
Especificación Protocolos de Seguridad (P.S.)Especificación Protocolos de Seguridad (P.S.)
PROTOCOL SPECIFICATIONCONSTANTSa,b,x,c:address;dat,req,ok:data;dat,req,ok:data;ksa,ksb,kx,ks:key;n1,n2:int;t1,t2:ctime.MESSAGESMESSAGES1:a->c:encrypt(KSA,B);2:C->A:encrypt(KSA,[KS,encrypt(KSB,[KS,A])]);3:A->b:encrypt(KSB,[KS,a]);yp ( ,[ , ]);4:B->A:encrypt(KS,dat).RELATIONS1:secret_key(a,KSA:a);2 t k (B KSB C) t k (A KSA C) i k (KS C)2:secret_key(B,KSB:C),secret_key(A,KSA:C),sesion_key(KS:C).RULESsecret_key(a,ksa:a,c),secret_key(b,ksb:b,c),secret_key(x,kx:x,c);sesion key(ks:c).
LUIS MENGUAL (c)
_ y( )KNOWSkx,encrypt(ksa,x).
INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS
PROLOG:PROLOG:- ESPECIFICACIÓN FORMAL DE PROTOCOLOS
Traducción P.S. a un conjunto de reglas PrologTraducción P.S. a un conjunto de reglas Prolog
REGLAS DE DERIVACIÓN DE MENSAJES
sent([a,c,encrypt(KSA,B)],[],1):-secret_key(a,KSA,a).
derives([a,c,encrypt(KSA,B)],[C,A,encrypt(KSA,[KS,encrypt(KSB,[KS,A])])],2,MH):-secret_key(B,KSB,C),secret_key(A,KSA,C),sesion_key(KS,C).
d i ([C A t(KSA [KS t(KSB [KS A])])]derives([C,A,encrypt(KSA,[KS,encrypt(KSB,[KS,A])])],[A,b,encrypt(KSB,[KS,a])],3,MH).
derives([A b encrypt(KSB [KS a])]derives([A,b,encrypt(KSB,[KS,a])],[B,A,encrypt(KS,dat)],4,MH).
LUIS MENGUAL (c)
INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS
PROLOG:PROLOG:- ESPECIFICACIÓN FORMAL DE PROTOCOLOS
Traducción P.S a un conjunto de reglas PrologTraducción P.S a un conjunto de reglas Prolog
REGLAS ASOCIADAS A LA EMISIÓN / RECEPCIÓN DE MENSAJES Y A LAREGLAS ASOCIADAS A LA EMISIÓN / RECEPCIÓN DE MENSAJES Y A LAMODIFICACIÓN DE LOS MISMOS
sent(Ms,[Mr|H],N):- R is N-1,R>0,received(Mr,H,R),derives(Mr,Ms,N,H).
received(Mr,[Ms|PH],N):-sent(Ms,PH,N),p modified(Mr,Ms,PH,N).received(Mr,[Ms|PH],N): sent(Ms,PH,N),p_modified(Mr,Ms,PH,N).
p_modified([],[],_,_).p modified([X|Mr],[Y|Ms],H,N):- isomorphic(X,Y), p_ ([ | ],[ | ], , ) p ( , ),
p_knows_initially(X), p_modified(Mr,Ms,H,N).
p_modified([Y|Mr],[Y|Ms],H,N):- p_modified(Mr,Ms,H,N).
p_knows_initially(kx).
LUIS MENGUAL (c)
p_knows_initially(encrypt(ksa,x)).
INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS
PROLOG:PROLOG:- ESPECIFICACIÓN FORMAL DE PROTOCOLOS
Traducción P.S a un conjunto de reglas PrologTraducción P.S a un conjunto de reglas Prolog
REGLAS ASOCIADAS AL ESTUDIO DE LA VULNERABILIDAD DE UN PROTOCOLO DE SEGURIDAD (I)
p_knows(X,H,0):-p_knows_initially(X).
p knows(X H N): N>0 R is N 1 p knows(X H R)p_knows(X,H,N):- N>0,R is N-1, p_knows(X,H,R).
p_knows(X,[M|PH],N):- N>0, sent(M,PH,N), p_gets(X,M,PH,PH,N).
LUIS MENGUAL (c)
INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS
PROLOG:PROLOG:- ESPECIFICACIÓN FORMAL DE PROTOCOLOS
Traducción P.S a un conjunto de reglas PrologTraducción P.S a un conjunto de reglas Prolog
REGLAS ASOCIADAS AL ESTUDIO DE LA VULNERABILIDAD
p_gets(X,M,PH,H,N):-member(X,M).DE UN PROTOCOLO DE SEGURIDAD (II)
p_gets(X,M,PH,H,N):-encrypt_field0(encrypt(K0,W)),member(encrypt(K0,W),M),p knows ph1(K0 PH H N)p_knows_ph1(K0,PH,H,N),member(X,W).
p gets(X,M,PH,H,N):-encrypt field1(encrypt(K0,[V,encrypt(K1,W)])),p_gets( , , , , ) e c ypt_ e d (e c ypt( 0,[ ,e c ypt( , )])),member(encrypt(K0,[V,encrypt(K1,W)]),M),p_knows_ph1(K0,PH,H,N),p_knows_ph1(K1,PH,H,N),p_ _p ( , , , ),member(X,W).
member(X,X).
LUIS MENGUAL (c)
member(X,[X|_]).member(X,[_|Y]):-member(X,Y).
INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS
PROLOG:PROLOG:- ESPECIFICACIÓN FORMAL DE PROTOCOLOS
Análisis vulnerabilidad del P.S.Análisis vulnerabilidad del P.S.?- sent(M,H,1).
M = [a,c,encrypt(ksa,b)] H = [] ->
?- sent(M,H,2).
M = [c,a,encrypt(ksa,encrypt(kx,[ks,a]))] H = [[a,c,encrypt(ksa,x)],[a,c,encrypt(ksa,b)]] ->;
M = [c,a,encrypt(ksa,encrypt(ksb,[ks,a]))] H = [[a,c,encrypt(ksa,b)],[a,c,encrypt(ksa,b)]] ->;
?- sent(M,H,3).
M = [a b encrypt(kx [ks a])]M = [a,b,encrypt(kx,[ks,a])] H = [[c,a,encrypt(ksa,encrypt(kx,[ks,a]))],[c,a,encrypt(ksa,encrypt(kx,[ks,a]) )],[a,c,encrypt(ksa,x)],[a,c,encrypt(ksa,b)]] ->;
M = [a,b,encrypt(ksb,[ks,a])] H [[ t(k t(k b [k ]))] [ t(k t(k b [k ]))]H = [[c,a,encrypt(ksa,encrypt(ksb,[ks,a]))],[c,a,encrypt(ksa,encrypt(ksb,[ks,a]))],[a,c,encrypt(ksa,b)],[a,c,encrypt(ksa,b)]] ->;
Reconsulting ... ? p knows(ks H 3)
LUIS MENGUAL (c)
?- p_knows(ks,H,3).
H= [[a,b,encrypt(kx,[ks,a])],[c,a,encrypt(ksa,encrypt(kx,[ks,a]))],[c,a,encrypt(ksa,encrypt(kx,[ks,a]))],[a,c,encrypt(ksa,x)],[a,c,encrypt(ksa,b)]] ->
INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS
IMPLEMENTACIÓNIMPLEMENTACIÓNPROTOCOLO PARADAPROTOCOLO PARADA ESPERAESPERA
IMPLEMENTACIÓNIMPLEMENTACIÓNPROTOCOLO PARADAPROTOCOLO PARADA ESPERAESPERA
- ESPECIFICACIÓN FORMAL DE PROTOCOLOS
PROTOCOLO PARADAPROTOCOLO PARADA--ESPERAESPERAPROTOCOLO PARADAPROTOCOLO PARADA--ESPERAESPERA
PROGRAM emisor
TYPE( )eventos=(trama_i_lista, trama_ack_recibida, expira_tem)
estados=(desocupado, esperando_ack) acciones=(na, trans_trama, error, retrans_trama, retardo, proc_ack)
VARVARtabla_eventos_estados=array[estados,eventos] of
recordaccion: accionesaccion: accionesnuevoestado: estados
endestado actual: estadosestado_actual: estadostipo_evento: eventosNseq: Numsecuencia
LUIS MENGUAL (c)
INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS
IMPLEMENTACIÓNIMPLEMENTACIÓNPROTOCOLO PARADAPROTOCOLO PARADA ESPERAESPERA
IMPLEMENTACIÓNIMPLEMENTACIÓNPROTOCOLO PARADAPROTOCOLO PARADA ESPERAESPERA
- ESPECIFICACIÓN FORMAL DE PROTOCOLOS
PROCEDURE inicializar
PROTOCOLO PARADAPROTOCOLO PARADA--ESPERAESPERAPROTOCOLO PARADAPROTOCOLO PARADA--ESPERAESPERA
{ Inicializa las variables de estado y los conteniods de la tabla_eventos_estados}
PROCEDURE transmitir_trama{Construcción de la trama (inserción de número de secuencia y datosde nivel superior). Pone la trama en linea. Salva la trama en un buffer.Activa el temporizador.}
PROCEDURE retransmitir_trama{R t d b ff P l t lí A ti t i d }{Recupera trama de buffer. Pone la trama en línea. Activa temporizador}
PROCEDURE proceso_ack{Si ack es correcto : Borrar trama del buffer Incrementar nº de secuencia}{Si ack es correcto : Borrar trama del buffer. Incrementar nº de secuencia}
PROCEDURE retardo{Retarda un corto intervalo de tiempo}
LUIS MENGUAL (c)
{Retarda un corto intervalo de tiempo}
INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS
IMPLEMENTACIÓNIMPLEMENTACIÓNPROTOCOLO PARADAPROTOCOLO PARADA ESPERAESPERA
IMPLEMENTACIÓNIMPLEMENTACIÓNPROTOCOLO PARADAPROTOCOLO PARADA ESPERAESPERA
- ESPECIFICACIÓN FORMAL DE PROTOCOLOS
PROCEDURE Error { Situación error}
PROTOCOLO PARADAPROTOCOLO PARADA--ESPERAESPERAPROTOCOLO PARADAPROTOCOLO PARADA--ESPERAESPERA
BEGINInicializar;REPEAT d tREPEAT esperar a que se produzca un evento
tipo_evento:= eventoWITH tabla_estados_eventos[estado_actual, tipo_evento] DOBEGINBEGIN
CASE accion of ¨{acciones}trans_trama: transmitir_tramaretrans trama: retransmitir tramaretrans_trama: retransmitir_tramapro_ack: proceso_ackretardo: retardoerrror: errorerrror: error
ENDestado actual: nuevo
END
LUIS MENGUAL (c)
UNTIL foreverEND
INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS
IMPLEMENTACIÓNIMPLEMENTACIÓNPROTOCOLO PARADAPROTOCOLO PARADA ESPERAESPERA
IMPLEMENTACIÓNIMPLEMENTACIÓNPROTOCOLO PARADAPROTOCOLO PARADA ESPERAESPERA
- ESPECIFICACIÓN FORMAL DE PROTOCOLOS
PROTOCOLO PARADAPROTOCOLO PARADA--ESPERAESPERAPROTOCOLO PARADAPROTOCOLO PARADA--ESPERAESPERA
PROCEDURE receptorVAR
nespp
BEGIN Inicializar nespREPEAT esperar a una trama I
IF nseq de la trama= nesp THENBEGIN
incrementar nespmandar ack(nesp)
ENDif d l t <> THENif nseq de la trama<>nesp THEN
mandar ack(nesp)UNTIL forever
END
LUIS MENGUAL (c)
END