INGENIERÍA DE PROTOCOLOSINGENIERÍA DE …lmengual/documentacion/IP/modulo1.pdf · 1.3.5 SDL LUIS...

119
INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS INGENIERÍA DE PROTOCOLOS INGENIERÍA DE PROTOCOLOS INGENIERÍA DE PROTOCOLOS INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES DE COMUNICACIONES (MÓDULO 1) (MÓDULO 1) (MÓDULO 1) (MÓDULO 1) LUIS MENGUAL (c)

Transcript of INGENIERÍA DE PROTOCOLOSINGENIERÍA DE …lmengual/documentacion/IP/modulo1.pdf · 1.3.5 SDL LUIS...

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