INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES (MÓDULO...

118
INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES (MÓDULO 1)

Transcript of INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES (MÓDULO...

Page 1: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES (MÓDULO 1)pegaso.ls.fi.upm.es/~lmengual/documentacion/IP/modulo1.pdf · 2011. 2. 18. · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES -

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES

(MÓDULO 1)

Page 2: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES (MÓDULO 1)pegaso.ls.fi.upm.es/~lmengual/documentacion/IP/modulo1.pdf · 2011. 2. 18. · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES -

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOSF. I. M.

L.S.I.I.S

F. I. M.

L.S.I.I.S

LUIS MENGUAL GALÁN

LSIIS

FIM

TELEMÁTICA

INGENIERÍA DE PROTOCOLOS(MÓDULO 1)

http://pegaso.ls.fi.upm.es/~lmengual/inicio_IP.html

Page 3: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES (MÓDULO 1)pegaso.ls.fi.upm.es/~lmengual/documentacion/IP/modulo1.pdf · 2011. 2. 18. · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES -

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

OBJETIVOS

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, Windows Sockets, Sockets en Java.

Comprender las técnicas de implementación de aplicaciones distribuidas utilizando las diferentes interfaces de programación y el modelo cliente-servidor.

Estudiar el rendimiento de las implementaciones de software cliente y servidor.

Page 4: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES (MÓDULO 1)pegaso.ls.fi.upm.es/~lmengual/documentacion/IP/modulo1.pdf · 2011. 2. 18. · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES -

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

Í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 Especificación formal de protocolos

1.2 Desarrollo de Protocolos 1.2.1 Especificación Formal

1.2.1.1 Validación1.2.1.2 Verificación1.2.1.3 Análisis de Prestaciones

1.2.2 Implementación1.2.3 Conformidad

1.3 Metodologías de Especificación1.3.1 Lenguaje Natural1.3.2 Grafos de Control de Comunicaciones1.3.3 Máquinas de Estados Finitos Extendidas1.3.4 Redes de Petri1.3.5 SDL1.3.6 Estelle1.3.7 Lotos1.3.8 Prolog

Page 5: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES (MÓDULO 1)pegaso.ls.fi.upm.es/~lmengual/documentacion/IP/modulo1.pdf · 2011. 2. 18. · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES -

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

ÍNDICE1

2. IMPLEMENTACIÓN DE PROTOCOLOS (I)

2.1 Modelo cliente-servidor2.1.1 Terminología y conceptos2.1.2 Comparación con otros modelos

2.1.2.1 Aplicaciones peer to peer,2.1.2.2 Teoría de Agentes

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

Page 6: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES (MÓDULO 1)pegaso.ls.fi.upm.es/~lmengual/documentacion/IP/modulo1.pdf · 2011. 2. 18. · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES -

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

ÍNDICE1

2. IMPLEMENTACIÓN DE PROTOCOLOS (II)

2.4 Interfaz Sockets de Berkeley2.4.1 Algoritmos de diseño Software Cliente

2.4.1.1 Arquitectura del cliente2.4.1.2 Tipos de clientes (TCP/UDP)

2.4.2 Implementación Software Cliente2.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 Servidores Multiprotocolo (TCP, UDP)2.4.4.6 Servidores Multiservicio (TCP, UDP)

Page 7: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES (MÓDULO 1)pegaso.ls.fi.upm.es/~lmengual/documentacion/IP/modulo1.pdf · 2011. 2. 18. · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES -

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

1

2. IMPLEMENTACIÓN DE PROTOCOLOS (III)2.4.5 Eficiencia y gestión de la concurrencia en servidores

2.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 concurrencia

2.4.6 Concurrencia en clientes2.4.6.1 Ventajas de la concurrencia2.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.2 Construcción de aplicaciones

ÍNDICE

Page 8: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES (MÓDULO 1)pegaso.ls.fi.upm.es/~lmengual/documentacion/IP/modulo1.pdf · 2011. 2. 18. · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES -

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

ÍNDICE

2. IMPLEMENTACIÓN DE PROTOCOLOS (IV)2.5 Interfaz Windows Sockets

2.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 clientes 2.6.3.2 Sockets para servidores 2.6.3.3 Servidores multiusuario 2.6.3.4 Sockets seguros

2.6.4. Datagramas y sockets UDP2.6.5. Sockets multicast2.6.6. Conexiones a URLs2.6.7. Otras alternativas (Java RMI, Java IDL)

Page 9: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES (MÓDULO 1)pegaso.ls.fi.upm.es/~lmengual/documentacion/IP/modulo1.pdf · 2011. 2. 18. · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES -

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

BIBLIOGRAFÍA

“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” 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

PROGRAMMING AND APPLICATIONS”. Window Sockets Version. D. Comer, R. Stevens. Prentice Hall. 1997

NETWORK PROGRAMMING FOR MICROSOFT WINDOWS. Second Edition. Anthony Jones, Jim Ohlund. Microsoft Press

“WINDOWS SOCKETS NETWORK PROGRAMMING”. B. Quin, D. Shute. Addison-Wesley Publishing Company. 1995

“JAVA NETWORK PROGRAMMING”. E. R. Harold. O’Reilly 2000, 2ª Edition

“JAVA SECURITY”. S. Oaks. O’Reilly 2001, 2ª Edition

Page 10: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES (MÓDULO 1)pegaso.ls.fi.upm.es/~lmengual/documentacion/IP/modulo1.pdf · 2011. 2. 18. · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES -

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

Especificación sistemas:– Definir un sistema dinámico de forma univoca

Especificar un protocolo de comunicaciones consiste 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 las cuales deben de comunicarse las distintas entidades del protocolo.

ESPECIFICACIÓN DE PROTOCOLOS (I)

- ESPECIFICACIÓN FORMAL DE PROTOCOLOS

Page 11: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES (MÓDULO 1)pegaso.ls.fi.upm.es/~lmengual/documentacion/IP/modulo1.pdf · 2011. 2. 18. · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES -

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

ESPECIFICACIÓN Y DISEÑO DE PROTOCOLOS (I)

La creciente utilización de sistemas distribuidos hace cada vez más complejos los protocolos de comunicaciones

– Esto plantea nuevas problemas de diseño detrás de los cuales, está casi siempre la necesidad de una especificación precisa del protocolo

Las primeras descripciones de protocolos eran narrativas llevando fácilmente a ambigüedades

Inicialmente no se disponía de herramientas formales de validación, verificación y comprobación de los protocolos especificados y sus implementaciones

- ESPECIFICACIÓN FORMAL DE PROTOCOLOS

Page 12: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES (MÓDULO 1)pegaso.ls.fi.upm.es/~lmengual/documentacion/IP/modulo1.pdf · 2011. 2. 18. · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES -

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

ESPECIFICACIÓN Y DISEÑO DE PROTOCOLOS (II)

- ESPECIFICACIÓN FORMAL DE PROTOCOLOS

Hoy en día se entiende que una especificación precisa debe de permitir:

– Verificar si un protocolo cumple el servicio para el que ha sido diseñado

– 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ón

Page 13: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES (MÓDULO 1)pegaso.ls.fi.upm.es/~lmengual/documentacion/IP/modulo1.pdf · 2011. 2. 18. · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES -

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

Beneficios– Se pueden derivar muchas implementaciones cambiando

pocas líneas en la especificación– Se puede asegurar previamente un comportamiento

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 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.

– Permite fácilmente generar un nuevo código del protocolo adaptado a los nuevos cambios tecnológicos.

ESPECIFICACIÓN DE PROTOCOLOS (II)

- ESPECIFICACIÓN FORMAL DE PROTOCOLOS

Page 14: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES (MÓDULO 1)pegaso.ls.fi.upm.es/~lmengual/documentacion/IP/modulo1.pdf · 2011. 2. 18. · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES -

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

NIVELES DE DESCRIPCIÓNARQUITECTURAS DE COMUNICACIONES (I)

DEFINICIÓN DE LA ARQUITECTURA DEFINICIÓN DE LOS SERVICIOS ESPECIFICACIÓN DE LOS PROTOCOLOS

- ESPECIFICACIÓN FORMAL DE PROTOCOLOS

SERVICIOS SERVICIOS

PROTOCOLOMECANISMOSFUNCIONES

MECANISMOSFUNCIONESA

RQ

UIT

ECTU

RA

Page 15: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES (MÓDULO 1)pegaso.ls.fi.upm.es/~lmengual/documentacion/IP/modulo1.pdf · 2011. 2. 18. · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES -

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

RED

TRANSPORTE

FISICO

ENLACE

APLICACIÓN

RED

TRANSPORTE

FISICO

ENLACE

APLICACIÓN

ESPECIFICACIÓN SERVICIOS

ESPECIFICACIÓN PROTOCOLO

DEFINICIÓN ARQUITECTURA

NIVELES DE DESCRIPCIÓNARQUITECTURAS DE COMUNICACIONES (II)

Page 16: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES (MÓDULO 1)pegaso.ls.fi.upm.es/~lmengual/documentacion/IP/modulo1.pdf · 2011. 2. 18. · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES -

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

FASES DEL DESARROLLO DE PROTOCOLOS

ESPECIFICACIÓN FORMAL– VALIDACIÓN

» Especificación Completa, Ausencia de Bloqueos, Ausencia de lazos improductivos, Terminación, Todos los estados alcanzables

– VERIFICACIÓN– ANÁLISIS DE PRESTACIONES

IMPLEMENTACIÓN CONFORMIDAD

- ESPECIFICACIÓN FORMAL DE PROTOCOLOS

Page 17: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES (MÓDULO 1)pegaso.ls.fi.upm.es/~lmengual/documentacion/IP/modulo1.pdf · 2011. 2. 18. · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES -

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

METODOLOGÍAS DEESPECIFICACIÓ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, 1985 LOTOS

– A Formal Description Technique based on the Temporal Ordering of Observational Behaviour. ISO 8807, 1988. Language Of Temporal Ordering Specification

PROLOG

Page 18: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES (MÓDULO 1)pegaso.ls.fi.upm.es/~lmengual/documentacion/IP/modulo1.pdf · 2011. 2. 18. · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES -

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

AUTÓMATAS

Un autómata es una quíntupla A = < E,S,Q,f,g > :

QQE:f ×

g E Q S: × →

E : CONJUNTO FINITO DE ENTRADAS

S : CONJUNTO FINITO DE SALIDAS

f : FUNCION DE TRANSICION

Q : CONJUNTO DE ESTADOS

g : FUNCION DE SALIDA

- ESPECIFICACIÓN FORMAL DE PROTOCOLOS

Page 19: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES (MÓDULO 1)pegaso.ls.fi.upm.es/~lmengual/documentacion/IP/modulo1.pdf · 2011. 2. 18. · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES -

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

DIAGRAMA DE TRANSICIONES(DIAGRAMA DE MOORE)

q1 q2

q3

a / 0

b / 1

b / 0

a / 0

a / 1

b / 0

- ESPECIFICACIÓN FORMAL DE PROTOCOLOS

Page 20: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES (MÓDULO 1)pegaso.ls.fi.upm.es/~lmengual/documentacion/IP/modulo1.pdf · 2011. 2. 18. · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES -

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

TABLA DE TRANSICIONES

E a b= ,

Q q q q= 1 2 3, ,

S= 0 1,

a bEQ

q1

q2

q3

q1 / 0 q2 / 1

q3 / 0

q3 / 1 q1 / 0

q2 / 0

- ESPECIFICACIÓN FORMAL DE PROTOCOLOS

{

{

{

}

}

}

Page 21: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES (MÓDULO 1)pegaso.ls.fi.upm.es/~lmengual/documentacion/IP/modulo1.pdf · 2011. 2. 18. · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES -

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

PROTOCOLO PARADA-ESPERA

I(0)

I(1)

ACK1

ACK0

V(S) V(R)

0

0

1

0

1

0

I(0)

I(0)

T

x

V(S) V(R)

- ESPECIFICACIÓN FORMAL DE PROTOCOLOS

Page 22: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES (MÓDULO 1)pegaso.ls.fi.upm.es/~lmengual/documentacion/IP/modulo1.pdf · 2011. 2. 18. · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES -

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

MÁQUINA DE ESTADOS EXTENDIDA:PROTOCOLO PARADA-ESPERA

DESOCUPADO

ESPERANDOACK

TRAMA I LISTA PARA ENVIAR / ENVIO TRAMA

TRAMA ACKRECIBIDA /PROCESO ACK

EXPIRA T / RETRANS.

TRAMA ACKRECIBIDA /

ERROR

DESOCUPADO

TRAMA I RECIBIDA / MANDAR ACK

EMISOR

RECEPTOR

- ESPECIFICACIÓN FORMAL DE PROTOCOLOS

Page 23: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES (MÓDULO 1)pegaso.ls.fi.upm.es/~lmengual/documentacion/IP/modulo1.pdf · 2011. 2. 18. · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES -

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

EXPIRATEMP.

TRAMA ILISTA

TRAMA ACKRECIBIDA

DESOCUPADO

EVENTOESTADO

ACTUALNA TRANS.

TRAMAERROR

0 1 0(0)

ESPERANDOACK

(1)

RETRANS.TRAMA RETARDO PROC. ACK ACCION

ACCION

NUEVO ESTADO

NUEVO ESTADO

EVENTOESTADO

ACTUAL

TRAMA IRECIBIDA

ACCION

NUEVO ESTADO

DESOCUPADO(0)

MANDARACK

1 1 0

0

- ESPECIFICACIÓN FORMAL DE PROTOCOLOS

MÁQUINA DE ESTADOS EXTENDIDA:PROTOCOLO PARADA-ESPERA

Page 24: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES (MÓDULO 1)pegaso.ls.fi.upm.es/~lmengual/documentacion/IP/modulo1.pdf · 2011. 2. 18. · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES -

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

REDES DE PETRI (I)

∏ = p p p p Conjunto LUGARESr1 2 3, , , . .∑ = t t t t Conjunto TRANSICIONESs1 2 3, , , . .

F N Función incidencia PROGRESIVA: *∏ × ∑ →

B N Función incidencia REGRESIVA: *∏ × ∑ →

M N MARCAJE INICIAL: *∏ →

LUGARES

TRANSICIONES

FUNCIONES DE INCIDENCIA

REPRESENTACIÓNGRAFICA

- ESPECIFICACIÓN FORMAL DE PROTOCOLOS

{ }

{ }

Page 25: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES (MÓDULO 1)pegaso.ls.fi.upm.es/~lmengual/documentacion/IP/modulo1.pdf · 2011. 2. 18. · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES -

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

REDES DE PETRI (II)

.. ..p1 p

2

p3

t 1

t 4

t 2

t 3

- ESPECIFICACIÓN FORMAL DE PROTOCOLOS

∏ = p p p1 2 3, , M p p p0 1 2 33 1 0= ( ), ( ), ( )∑ = t t t t1 2 3 4, , ,

{{

{}}

}

Page 26: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES (MÓDULO 1)pegaso.ls.fi.upm.es/~lmengual/documentacion/IP/modulo1.pdf · 2011. 2. 18. · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES -

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

REDES DE PETRI (III)

t 3t 2t 1 t 4

p1

p2

p3

1 0 0 0

0 1 0 0

0 0 1 1

F t 3t 2t 1 t 4

p1

p2

p3

0 0 1 0

2 1 0 0

0 2 0 0

B

p ti i→ t pi i→

- ESPECIFICACIÓN FORMAL DE PROTOCOLOS

Page 27: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES (MÓDULO 1)pegaso.ls.fi.upm.es/~lmengual/documentacion/IP/modulo1.pdf · 2011. 2. 18. · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES -

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

REDES DE PETRI: PROTOCOLO PARADA-ESPERA

p3

p2

p1

p 4

p5

1T (ENVIO TRAMA)

T 2 (RECEP.ACK)

3T (REENVIO TRAMA)

EMISOR

p 2 : DATOS NIVEL SUPERIOR

3 : ESPERANDO ACKp

4 : ACK RECIBIDOpp 1 : DESOCUPADO

p 5 :TEMPORIZADOR EXPIRADO

- ESPECIFICACIÓN FORMAL DE PROTOCOLOS

Page 28: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES (MÓDULO 1)pegaso.ls.fi.upm.es/~lmengual/documentacion/IP/modulo1.pdf · 2011. 2. 18. · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES -

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

ESTELLE es una técnica de descripción formal para la especificación de sistemas concurrentes distribuidos

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 cuyas acciones internar están definidas por sentencias Pascal (con algunas restricciones y extensiones)

ESTELLE:PROTOCOLO PARADA-ESPERA

- ESPECIFICACIÓN FORMAL DE PROTOCOLOS

Page 29: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES (MÓDULO 1)pegaso.ls.fi.upm.es/~lmengual/documentacion/IP/modulo1.pdf · 2011. 2. 18. · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES -

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

Módulos o procesos– 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 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

ESTELLE:Elementos de la especificación

- ESPECIFICACIÓN FORMAL DE PROTOCOLOS

Page 30: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES (MÓDULO 1)pegaso.ls.fi.upm.es/~lmengual/documentacion/IP/modulo1.pdf · 2011. 2. 18. · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES -

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

Transiciones– La 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 acció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 pueden enviar ciertos mensajes por los puntos de interacción definidos

ESTELLE:Elementos de la especificación

- ESPECIFICACIÓN FORMAL DE PROTOCOLOS

Page 31: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES (MÓDULO 1)pegaso.ls.fi.upm.es/~lmengual/documentacion/IP/modulo1.pdf · 2011. 2. 18. · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES -

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

Comunicación entre procesos– Los 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 a través de un canal lógico establecido entre dos puntos de interacción.

– Un 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 asociada con ese punto de interacción

ESTELLE:Elementos de la especificación

- ESPECIFICACIÓN FORMAL DE PROTOCOLOS

Page 32: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES (MÓDULO 1)pegaso.ls.fi.upm.es/~lmengual/documentacion/IP/modulo1.pdf · 2011. 2. 18. · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES -

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

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.

– 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.

ESTELLE:Elementos de la especificación

- ESPECIFICACIÓN FORMAL DE PROTOCOLOS

Page 33: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES (MÓDULO 1)pegaso.ls.fi.upm.es/~lmengual/documentacion/IP/modulo1.pdf · 2011. 2. 18. · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES -

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

ESTELLE:PROTOCOLO PARADA-ESPERA

USUARIO_E(UE)

USUARIO_R(UR)

EMISOR(E)

RECEPTOR(R)

MEDIO (M)

U

U

MT

MT

U

U

MR

MR

C1

C2 C4

C3envia(datos)

envia(n,datos)

recibe(datos)

recibe(n,datos)ack(n) ack(n)

- ESPECIFICACIÓN FORMAL DE PROTOCOLOS

Page 34: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES (MÓDULO 1)pegaso.ls.fi.upm.es/~lmengual/documentacion/IP/modulo1.pdf · 2011. 2. 18. · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES -

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

CHANNEL C1 (usuario, proveedor);by usuario :

envia (datos:tipo_datos);

CHANNEL C2 (usuario, proveedor);by usuario :

envia (n:sec;datos tipo_datos);by proveedor:

ack (n : sec);

CHANNEL C3 (usuario, proveedor);by proveedor:

recibe (datos : tipo_datos);

CHANNEL C4 (usuario, proveedor);by usuario: ack (n :sec);

by proveedor:recibe (n:sec;:datos : tipo_datos);

- ESPECIFICACIÓN FORMAL DE PROTOCOLOS

ESTELLE:PROTOCOLO PARADA-ESPERA

Page 35: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES (MÓDULO 1)pegaso.ls.fi.upm.es/~lmengual/documentacion/IP/modulo1.pdf · 2011. 2. 18. · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES -

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

MODULE USUARIO_E;ip U : C1(usuario);

MODULE USUARIO_R;ip U : C3(usuario);

MODULE EMISOR;ip U : C1(proveedor);

MT: C2(usuario);

MODULE MEDIO;ip MT: C2(proveedor);

MR: C4(proveedor);

MODULE RECEPTOR;ip U : C3(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;BODY MEDIO_BODY FOR MEDIO; EXTERNAL;

- ESPECIFICACIÓN FORMAL DE PROTOCOLOS

ESTELLE:PROTOCOLO PARADA-ESPERA

Page 36: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES (MÓDULO 1)pegaso.ls.fi.upm.es/~lmengual/documentacion/IP/modulo1.pdf · 2011. 2. 18. · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES -

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

MODVAR

E : EMISOR;R : RECEPTOR;UE: USUARIO_E;UR: USUARIO_R;M: MEDIO;

INITIALIZE BEGIN

INIT UE WITH USUARIO_E_BODY;INIT E WITH EMISOR_BODY;INIT M WITH MEDIO_BODY;INIT UR WITH USUARIO_R_BODY;INIT R WITH RECEPTOR_BODY;

CONNECT UE.U TO E.U;CONNECT E.MT TO M.MT;CONNECT UR.U TO R.U;CONNECT R.MR TO M.MR;

END;

ESTELLE:PROTOCOLO PARADA-ESPERA

- ESPECIFICACIÓN FORMAL DE PROTOCOLOS

Page 37: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES (MÓDULO 1)pegaso.ls.fi.upm.es/~lmengual/documentacion/IP/modulo1.pdf · 2011. 2. 18. · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES -

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

CONDICION DE DISPARO– ESTADO ORIGEN (FROM)– ENTRADA (WHEN)– PREDICADO (PROVIDED)– PRIORIDAD (PRIORITY)

ACCIONES– ESTADO DESTINO (TO)– SALIDAS (OUTPUT)

TRANSICIONES ESPONTANEAS– NO TIENEN ENTRADA (WHEN)– PUEDEN TENER LA CLAUSULA DELAY

ESTELLETRANSICIONES

- ESPECIFICACIÓN FORMAL DE PROTOCOLOS

Page 38: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES (MÓDULO 1)pegaso.ls.fi.upm.es/~lmengual/documentacion/IP/modulo1.pdf · 2011. 2. 18. · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES -

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

EMISOR_BODY FOR EMISORSTATE desocupado, esperando_ack

INITIALIZE BEGINSTATE TO desocupado;nsec : 0;

END

TRANS WHEN U.envia(datos)FROM desocupado TO esperando_ackBEGIN

buffer :=datos;OUTPUT MT.envia(nsec,buffer);

END

- ESPECIFICACIÓN FORMAL DE PROTOCOLOS

ESTELLE:PROTOCOLO PARADA-ESPERA

Page 39: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES (MÓDULO 1)pegaso.ls.fi.upm.es/~lmengual/documentacion/IP/modulo1.pdf · 2011. 2. 18. · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES -

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

TRANS WHEN MT.ack(n)FROM esperando_ack TO desocupadoPROVIDED n=nsec+1; (MOD2)BEGIN

nsec := nsec+1; (MOD2)END

TRANS FROM esperando_ack TO sameDELAY (timeout)BEGIN

OUTPUT MT.envia(nsec,buffer);END

- ESPECIFICACIÓN FORMAL DE PROTOCOLOS

ESTELLE:PROTOCOLO PARADA-ESPERA

Page 40: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES (MÓDULO 1)pegaso.ls.fi.upm.es/~lmengual/documentacion/IP/modulo1.pdf · 2011. 2. 18. · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES -

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS- ESPECIFICACIÓN FORMAL DE PROTOCOLOS

ESTELLE:PROTOCOLO PARADA-ESPERA

RECEPTOR_BODY FOR RECEPTORINITIALIZE BEGIN

nesp=o;ENDWHEN MR.recibe(n,datos)

BEGINIF n<>nesp THEN BEGINOUTPUT MR.ack(nesp+1);ENDIF n=nesp THEN BEGINOUTPUT U.recibe(datos);nesp=nesp+1;OUTPUT MR.ack(nesp);END

END END

Page 41: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES (MÓDULO 1)pegaso.ls.fi.upm.es/~lmengual/documentacion/IP/modulo1.pdf · 2011. 2. 18. · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES -

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

ESTELLE:Asentimientos Selectivos

U

U

N

N

USER

RECEIVER

NETWORK

SEND_AK(ak_no) DATA_INDICATION

DATA_INDICATION

- ESPECIFICACIÓN FORMAL DE PROTOCOLOS

Page 42: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES (MÓDULO 1)pegaso.ls.fi.upm.es/~lmengual/documentacion/IP/modulo1.pdf · 2011. 2. 18. · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES -

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

RECEIVER_BODY FOR RECEIVERSTATE IDLE, ACK_SENT INITIALIZE BEGIN (* initialization part *)

STATE TO IDLEmin:=1;max:=20;inactive_period:=60;ak_no:=0;

ENDTRANS (* transition part *)

FROM IDLE TO IDLEPRYORITY MEDIUMWHEN N.DATA_INDICATION;{T1} begin

output U. DATA_INDICATION;ak_no:=ak_no+1;

end

ESTELLE:Asentimientos Selectivos

- ESPECIFICACIÓN FORMAL DE PROTOCOLOS

Page 43: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES (MÓDULO 1)pegaso.ls.fi.upm.es/~lmengual/documentacion/IP/modulo1.pdf · 2011. 2. 18. · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES -

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

TO ACK_SENTPROVIDED (ak_no>0) and (ak_no<=4)

PRYORITY LOWDELAY (min,max){T2} begin

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 lowDELAY (inactive_period){T5} begin

output N. SEND_AK(ak_no);end

ESTELLE:Asentimientos Selectivos

- ESPECIFICACIÓN FORMAL DE PROTOCOLOS

Page 44: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES (MÓDULO 1)pegaso.ls.fi.upm.es/~lmengual/documentacion/IP/modulo1.pdf · 2011. 2. 18. · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES -

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

FROM AK_SENT TO IDLE

{T6} beginak_no:=0;

end

end; (* transsition part *)

ESTELLE:Asentimientos Selectivos

- ESPECIFICACIÓN FORMAL DE PROTOCOLOS

Page 45: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES (MÓDULO 1)pegaso.ls.fi.upm.es/~lmengual/documentacion/IP/modulo1.pdf · 2011. 2. 18. · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES -

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

Inmediatamente después de la inicialización, arranca el temporizador cláusula delay de la transición T5

– Si pasan 60s y no llega ningún mensaje entrante se dispara la transición T5 mandándose un ack artificial 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

ESTELLE:Asentimientos Selectivos

60s

T5Inicio

- ESPECIFICACIÓN FORMAL DE PROTOCOLOS

Page 46: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES (MÓDULO 1)pegaso.ls.fi.upm.es/~lmengual/documentacion/IP/modulo1.pdf · 2011. 2. 18. · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES -

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

Después de llegar el primer mensaje arranca el temporizador de la cláusula delay de la transició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 de mensajes en el tiempo

ESTELLE:Asentimientos Selectivos

T1

1s 20s

M1

Inicio Tem. Delay T2

- ESPECIFICACIÓN FORMAL DE PROTOCOLOS

Page 47: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES (MÓDULO 1)pegaso.ls.fi.upm.es/~lmengual/documentacion/IP/modulo1.pdf · 2011. 2. 18. · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES -

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

ESTELLE:Asentimientos Selectivos

1s 20s

T2M1

Inicio Tem. Delay T2

M2

T2

1s 20s

M1

Inicio Tem. Delay T2

M3M2

T2

1s 20s

M1

Inicio Tem. Delay T2

M4M3M2

- ESPECIFICACIÓN FORMAL DE PROTOCOLOS

Page 48: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES (MÓDULO 1)pegaso.ls.fi.upm.es/~lmengual/documentacion/IP/modulo1.pdf · 2011. 2. 18. · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES -

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

ESTELLE:Asentimientos Selectivos

T2

1s 20s

M1

Inicio Tem. Delay T2

M4

T2

1s 20s

M1

Inicio Tem. Delay T2

M3

M2 M3

M2 M4

- ESPECIFICACIÓN FORMAL DE PROTOCOLOS

Page 49: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES (MÓDULO 1)pegaso.ls.fi.upm.es/~lmengual/documentacion/IP/modulo1.pdf · 2011. 2. 18. · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES -

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

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

mensaje 7

ESTELLE:Asentimientos Selectivos

T3

1s

M5

Inicio Tem. Delay T3

M1 M2 M3 M4

T3

1s

M5

Inicio Tem. Delay T3

M1 M2 M3 M4 M6

- ESPECIFICACIÓN FORMAL DE PROTOCOLOS

Page 50: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES (MÓDULO 1)pegaso.ls.fi.upm.es/~lmengual/documentacion/IP/modulo1.pdf · 2011. 2. 18. · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES -

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

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

ESTELLE:Asentimientos Selectivos

Disparo T4

1s

M5M1 M2 M3 M4 M6 M7

Inicio Tem. Delay T3

Inicio Tem. Delay T2

Cancela Temp T3

- ESPECIFICACIÓN FORMAL DE PROTOCOLOS

Page 51: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES (MÓDULO 1)pegaso.ls.fi.upm.es/~lmengual/documentacion/IP/modulo1.pdf · 2011. 2. 18. · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES -

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

Conclusiones:– Alta carga:

» Llegada de 7 mensajes en menos de 1s: Los asentimientos son enviados en bloques de 7 mensajes

– Carga Media:» Cuando se reciben más de cuatro mensajes en menos de

20s: 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)– 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

ESTELLE:Asentimientos Selectivos

- ESPECIFICACIÓN FORMAL DE PROTOCOLOS

Page 52: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES (MÓDULO 1)pegaso.ls.fi.upm.es/~lmengual/documentacion/IP/modulo1.pdf · 2011. 2. 18. · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES -

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

SDL (Specification and Description Language)introducción

SDL : Leguaje de Especificación y Descripción Basado en autómatas extendidos y comunicación

asíncrona de procesos Normalizado por el CCITT: SDL-72, SDL76, ..SDL-88 /

ITU: SDL-92 Notación textual (SDL/PR) y gráfica (SDL/GR) Aplicación: sistemas distribuidos, de tiempo real,

interactivos, protocolos de comunicaciones– Ejemplo: Estándar IEEE 802.11

Herramientas: Telelogic Tau

Page 53: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES (MÓDULO 1)pegaso.ls.fi.upm.es/~lmengual/documentacion/IP/modulo1.pdf · 2011. 2. 18. · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES -

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

SDL: Estructura de una Especificación

- ESPECIFICACIÓN FORMAL DE PROTOCOLOS

System S

Block B2

Process P11 Process P12 Process P13 Process P21 Process P22

Block B1

Page 54: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES (MÓDULO 1)pegaso.ls.fi.upm.es/~lmengual/documentacion/IP/modulo1.pdf · 2011. 2. 18. · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES -

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

SDL: Estructura de un Sistema

- ESPECIFICACIÓN FORMAL DE PROTOCOLOS

Block

Block

Channel

Channel Channel

SystemEnviroment

Page 55: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES (MÓDULO 1)pegaso.ls.fi.upm.es/~lmengual/documentacion/IP/modulo1.pdf · 2011. 2. 18. · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES -

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

SDL: Estructura del Bloque

- ESPECIFICACIÓN FORMAL DE PROTOCOLOS

Process

Process

Cha

nnel

Signalroute

Block

Cha

nnel

Signalroute

Signalroute

Page 56: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES (MÓDULO 1)pegaso.ls.fi.upm.es/~lmengual/documentacion/IP/modulo1.pdf · 2011. 2. 18. · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES -

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

SDL:Proceso: Modelo Básico

- ESPECIFICACIÓN FORMAL DE PROTOCOLOS

Page 57: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES (MÓDULO 1)pegaso.ls.fi.upm.es/~lmengual/documentacion/IP/modulo1.pdf · 2011. 2. 18. · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES -

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

SDL: Constructores para la descripción de un Proceso

- ESPECIFICACIÓN FORMAL DE PROTOCOLOS

START STATE INPUT OUTPUT NEXSTATE

S1 S2A B

Page 58: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES (MÓDULO 1)pegaso.ls.fi.upm.es/~lmengual/documentacion/IP/modulo1.pdf · 2011. 2. 18. · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES -

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

SDL:Proceso: Estados y Transiciones II

- ESPECIFICACIÓN FORMAL DE PROTOCOLOS

Page 59: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES (MÓDULO 1)pegaso.ls.fi.upm.es/~lmengual/documentacion/IP/modulo1.pdf · 2011. 2. 18. · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES -

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

SDL:PROTOCOLO PARADA-ESPERA

TRAMADATOS

DESOCUPADO

TRAMAACK

DESOCUPADO

DATOS NIVELSUPERIOR

ESPERANDOACK

TRAMADATOS

ESPERANDOACK

ESPERANDOACK

ACK(n)

TRAMADATOS

DESOCUPADO

DESOCUPADO

EMISOR RECEPTOR

SET(NOW+13,T)

ESPERANDOACK

nn<>nsec n=nsec

T

SET(NOW+13,T)

- ESPECIFICACIÓN FORMAL DE PROTOCOLOS

Page 60: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES (MÓDULO 1)pegaso.ls.fi.upm.es/~lmengual/documentacion/IP/modulo1.pdf · 2011. 2. 18. · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES -

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

TELELOGIC SDL

Page 61: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES (MÓDULO 1)pegaso.ls.fi.upm.es/~lmengual/documentacion/IP/modulo1.pdf · 2011. 2. 18. · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES -

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

SDL PROTOCOLO PARADA-ESPERA Descripción Sistema

Page 62: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES (MÓDULO 1)pegaso.ls.fi.upm.es/~lmengual/documentacion/IP/modulo1.pdf · 2011. 2. 18. · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES -

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

SDL PROTOCOLO PARADA-ESPERA Descripción Bloques I

Page 63: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES (MÓDULO 1)pegaso.ls.fi.upm.es/~lmengual/documentacion/IP/modulo1.pdf · 2011. 2. 18. · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES -

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

SDL PROTOCOLO PARADA-ESPERA Descripción Bloques II

Page 64: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES (MÓDULO 1)pegaso.ls.fi.upm.es/~lmengual/documentacion/IP/modulo1.pdf · 2011. 2. 18. · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES -

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

SDL PROTOCOLO PARADA-ESPERA Descripción Procesos I

Page 65: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES (MÓDULO 1)pegaso.ls.fi.upm.es/~lmengual/documentacion/IP/modulo1.pdf · 2011. 2. 18. · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES -

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

SDL PROTOCOLO PARADA-ESPERA Descripción Procedimientos

Page 66: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES (MÓDULO 1)pegaso.ls.fi.upm.es/~lmengual/documentacion/IP/modulo1.pdf · 2011. 2. 18. · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES -

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

SDL PROTOCOLO PARADA-ESPERA Descripción Procesos II

Page 67: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES (MÓDULO 1)pegaso.ls.fi.upm.es/~lmengual/documentacion/IP/modulo1.pdf · 2011. 2. 18. · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES -

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

(o)

(1)

(1)

(o)

Page 68: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES (MÓDULO 1)pegaso.ls.fi.upm.es/~lmengual/documentacion/IP/modulo1.pdf · 2011. 2. 18. · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES -

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

En LOTOS Se hace una descripción dinámica del sistema basado en una ordenación de eventos

Los eventos ocurren en puntos de interacción de procesos denominados puertas

Un evento corresponde a la activación de una puerta

El proceso de modelado consiste en:– Seleccionar los aspectos más relevantes del sistema

decidir como trasladarlos a puertas– El comportamiento del sistema es especificado

describiendo todas las posibles secuencias de eventos que el sistema puede ofrecer al entorno

LOTOSINTRODUCCIÓN

- ESPECIFICACIÓN FORMAL DE PROTOCOLOS

Page 69: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES (MÓDULO 1)pegaso.ls.fi.upm.es/~lmengual/documentacion/IP/modulo1.pdf · 2011. 2. 18. · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES -

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

LOTOSREPRESENTACIÓN DE EVENTOS Y PUERTAS

a: ?x1:int, ?x2:int, !(3+5), !true, ?x3:bool;

a b

c d

estados

puertas

- ESPECIFICACIÓN FORMAL DE PROTOCOLOS

Page 70: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES (MÓDULO 1)pegaso.ls.fi.upm.es/~lmengual/documentacion/IP/modulo1.pdf · 2011. 2. 18. · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES -

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

LOTOSOPERADOR DE ELECCIÓN (CHOICE [ ])

( Net1_in? Datagrama: ip_dtgrm;encamina(Datagrama);.............................

)

[ ]

( Net2_in? Datagrama: ip_dtgrm;encamina(Datagrama);.............................

)

Operador Choice [ ]:

- ESPECIFICACIÓN FORMAL DE PROTOCOLOS

Page 71: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES (MÓDULO 1)pegaso.ls.fi.upm.es/~lmengual/documentacion/IP/modulo1.pdf · 2011. 2. 18. · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES -

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

LOTOSSELECCIÓN DE EVENTOS Y OPERADORES DE GUARDA

a ? x:int [x<0];a: ? x:int, !y [x>y]

Net1_in? Datagrama: ip_dtgrm;( ( [ruta(datagrama)=2] ->

Net2_out ! Datagrama;.........)

[ ]( [ruta(datagrama)=3] ->

Net3_out ! Datagrama;..........)

)

Selección de Eventos:

Operadores de Guarda:

- ESPECIFICACIÓN FORMAL DE PROTOCOLOS

Page 72: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES (MÓDULO 1)pegaso.ls.fi.upm.es/~lmengual/documentacion/IP/modulo1.pdf · 2011. 2. 18. · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES -

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

LOTOSENTRELAZADO DE PROCESOS

a1 b1 a2 b2| | |

a1b1

a2 b2 a2 b2

a2b2

a1 b1 a1 b1

- ESPECIFICACIÓN FORMAL DE PROTOCOLOS

Page 73: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES (MÓDULO 1)pegaso.ls.fi.upm.es/~lmengual/documentacion/IP/modulo1.pdf · 2011. 2. 18. · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES -

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

a b

c d

a f

d| [ a, d ] |

a

c d

f

b

b

f

LOTOSSINCRONIZACIÓN PARCIAL

- ESPECIFICACIÓN FORMAL DE PROTOCOLOS

Page 74: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES (MÓDULO 1)pegaso.ls.fi.upm.es/~lmengual/documentacion/IP/modulo1.pdf · 2011. 2. 18. · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES -

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

Las puertas tienen el mismo nombre y e es un valor de tipo t

Las puertas tienen el mismo nombre y los valores s1 y s2 coinciden

Los valores ofrecidos en la puerta son del mismo tipo (t1=t2), pero no están definidos

(En este caso el valor del evento que ocurrirá en el modelo no está definido)

a ? x : t y a ! e

a ! s1 y a ! s2

a ? x : t1 y a ? y : t2

LOTOSSINCRONIZACIÓN DE PUERTAS (I)

- ESPECIFICACIÓN FORMAL DE PROTOCOLOS

Page 75: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES (MÓDULO 1)pegaso.ls.fi.upm.es/~lmengual/documentacion/IP/modulo1.pdf · 2011. 2. 18. · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES -

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

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

LOTOSSINCRONIZACIÓN DE PUERTAS (I)

- ESPECIFICACIÓN FORMAL DE PROTOCOLOS

Page 76: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES (MÓDULO 1)pegaso.ls.fi.upm.es/~lmengual/documentacion/IP/modulo1.pdf · 2011. 2. 18. · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES -

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

LOTOSPROTOCOLO PARADA-ESPERA

SPECIFICACION BIT ALTERNANTEbehaviour

( EMISOR [get, tout, send, receive ] (0)| | |RECEPTOR [ give, send, receive] (0)

)

| [ tout, send, receive] |

LINEA [tout, send, receive]

whereprocess EMISOR [get, tout, send, receive ] (0) ( ........... )process RECEPTOR [ give, send, receive] (0) ( ........... )process LINEA [tout, send, receive] ( ........... )

endspec

- ESPECIFICACIÓN FORMAL DE PROTOCOLOS

Page 77: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES (MÓDULO 1)pegaso.ls.fi.upm.es/~lmengual/documentacion/IP/modulo1.pdf · 2011. 2. 18. · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES -

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

LOTOSPROTOCOLO PARADA-ESPERA

- ESPECIFICACIÓN FORMAL DE PROTOCOLOS

send !info !seq !data

receive !ack !inc(seq) !empty

exit

tout

receive !info ?rec:SNum?data:BitString

rec<>nesprec=nespsend !ack !inc(nesp)!emptygive !data

send !ack !inc(nesp)!empty

i

send ?f:trame ?seq:SNum ?data:BitString

receive !f !seq!data

tout

EMISORRECEPTOR

LINEA

RECEPTOR (inc(nesp))

Page 78: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES (MÓDULO 1)pegaso.ls.fi.upm.es/~lmengual/documentacion/IP/modulo1.pdf · 2011. 2. 18. · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES -

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

EJEMPLO ESPECIFICACIÓN PROTOCOLO RDSI Q.931

RTC

RED DE CONMUTACION DE PAQUETES

TELEX

RED BANDA ANCHA

USUARIOUSUARIO

RDSI USUARIOUSUARIO RDSI

- ESPECIFICACIÓN FORMAL DE PROTOCOLOS

Page 79: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES (MÓDULO 1)pegaso.ls.fi.upm.es/~lmengual/documentacion/IP/modulo1.pdf · 2011. 2. 18. · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES -

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

CENTRALLOCALRDSITR 1

TERMINALNO RDSI

AT

....TERMINALRDSI

US/T

RACCESO BÁSICO 2B+D

CENTRALLOCALRDSI

US

TERMINALNO RDSI

AT

....TERMINALRDSI

R...

T

CENTRALITADIGITAL

MULTISERVICIO(NT2)

TR 1

ACCESO PRIMARIO 30B+D

RED DIGITAL SERVICIOS INTEGRADOS

- ESPECIFICACIÓN FORMAL DE PROTOCOLOS

Page 80: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES (MÓDULO 1)pegaso.ls.fi.upm.es/~lmengual/documentacion/IP/modulo1.pdf · 2011. 2. 18. · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES -

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

MULTIPLEXACION A NIVEL FISICO:– ACCESO BASICO

» 2B (64Kbps) + D (16Kbps)– ACCESO PRIMARIO

» 30B (64Kbps) + D (64Kbps)

PLANO DE CONTROL: – CANAL D

PLANO DE USUARIO: – CANAL B Y D

El PLANO DE CONTROL estructurado en 3 niveles (alineado con el modelo OSI)

El plano de usuario depende de las aplicaciones

RED DIGITAL SERVICIOS INTEGRADOS

- ESPECIFICACIÓN FORMAL DE PROTOCOLOS

Page 81: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES (MÓDULO 1)pegaso.ls.fi.upm.es/~lmengual/documentacion/IP/modulo1.pdf · 2011. 2. 18. · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES -

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

CONTROL DE LLAMADAS POR CANAL COMUN

RED DIGITAL SERVICIOS INTEGRADOS

- ESPECIFICACIÓN FORMAL DE PROTOCOLOS

Page 82: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES (MÓDULO 1)pegaso.ls.fi.upm.es/~lmengual/documentacion/IP/modulo1.pdf · 2011. 2. 18. · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES -

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

FISICO

ENLACE

RED

TRANSPORTE

SESION

PRESENTACION

APLICACION

CANAL D CANAL B

CONMUTACIONCIRCUITOS

CONMUTACIONPAQUETES

LINEADEDICADASEÑALIZACION PAQUETES TELEMETRIA

NIVEL 1 (I.430, I.431)

LAP- D LAP-B

X.25NIVEL PAQUETE

X.25NIVEL PAQUETE

SEÑALIZACIONCONTROL(I.451)

SEÑALIZACIONUSUARIOEXT-EXT

ARQUITECTURA DE PROTOCOLOS EN EL INTERFAZ USUARIO-RDSI

FRAME-RELAY

RED DIGITAL SERVICIOS INTEGRADOS

- ESPECIFICACIÓN FORMAL DE PROTOCOLOS

Page 83: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES (MÓDULO 1)pegaso.ls.fi.upm.es/~lmengual/documentacion/IP/modulo1.pdf · 2011. 2. 18. · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES -

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

ARQUITECTURA DE COMUNICACIONES RDSI

I.451/ Q.931

LAP-D(I.441)

INTERFAZBASICO(I.430)

INTERFAZPRIMARIO

(I.431)

MENSAJE I.451 / Q.931

MENSAJE I.451 / Q.931CABECERALAPD FIN LAPD

- ESPECIFICACIÓN FORMAL DE PROTOCOLOS

Page 84: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES (MÓDULO 1)pegaso.ls.fi.upm.es/~lmengual/documentacion/IP/modulo1.pdf · 2011. 2. 18. · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES -

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

FORMATO DE LOS MENSAJES Q.931

DISCRIMINADOR PROTOCOLO

LONGITUD DELV.R.Ll.

VALOR DE REFERENCIADE LLAMADA

TIPO DE MENSAJE

I

0

0 0 0 0

CONTENIDOSE.I.

IDENTIFICADORE.I.1

IDENTIFICADOR E.I.1

0 IDENTIFICADOR E.I.

LONGITUD E.I.

CONTENIDOS E.I.

ELEMENTOS DE INFORMACION OBLIGATORIOS Y ADICIONALES

R.LLFormato E.I. tipo 1

Formato E.I. tipo 2

Formato E.I. tipo 3

- ESPECIFICACIÓN FORMAL DE PROTOCOLOS

Page 85: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES (MÓDULO 1)pegaso.ls.fi.upm.es/~lmengual/documentacion/IP/modulo1.pdf · 2011. 2. 18. · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES -

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

MENSAJES Q.931

ESTABLECIMIENTO, ACUSE ESTABLECIMIENTO, LLAMADA EN CURSO, AVISO, PROGRESO, CONEXION, ACUSE CONEXION

SUSPENSION, ACUSE SUSPENSION, RECHAZO SUSPENSION, REANUDACION, ACUSE REANUDACION, RECHAZO, REANUDACIONINFORMACION USUARIO

DESCONEXION, LIBERACION, LIBERACION COMPLETADA

INFORMACION, ESTADO, CONSULTA DE ESTADO, NOTIFICACION, CONTROL DE LA CONGESTION

MENSAJESESTABLECIMIENTO

MENSAJESLIBERACION

MENSAJESFASE

INFORMACION

MENSAJESDIVERSOS

- ESPECIFICACIÓN FORMAL DE PROTOCOLOS

Page 86: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES (MÓDULO 1)pegaso.ls.fi.upm.es/~lmengual/documentacion/IP/modulo1.pdf · 2011. 2. 18. · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES -

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

PROCEDIMIENTOSLLAMADA Q.931

DATOS

ESTABLECIMIENTO

LLAMADA EN CURSO

AVISO

CONEXION

ACUSE CONEXION

DESCONEXIONDESCONEXION

ESTABLECIMIENTO

AVISO

CONEXIONACUSE CONEXION

LIBERACION COMPLETA

LIBERACIONLIBERACION

LIBERACION COMPLETA

- ESPECIFICACIÓN FORMAL DE PROTOCOLOS

Page 87: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES (MÓDULO 1)pegaso.ls.fi.upm.es/~lmengual/documentacion/IP/modulo1.pdf · 2011. 2. 18. · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES -

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

Diagrama de transición de estadospara el establecimiento de la llamadaQ.931 por Conmutación de Circuitos

- ESPECIFICACIÓN FORMAL DE PROTOCOLOS

Page 88: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES (MÓDULO 1)pegaso.ls.fi.upm.es/~lmengual/documentacion/IP/modulo1.pdf · 2011. 2. 18. · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES -

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

Diagrama de transición de estadospara la finalización de la llamada

Q.931 por Conmutación de Circuitos

- ESPECIFICACIÓN FORMAL DE PROTOCOLOS

Page 89: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES (MÓDULO 1)pegaso.ls.fi.upm.es/~lmengual/documentacion/IP/modulo1.pdf · 2011. 2. 18. · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES -

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

EJEMPLO ESPECIFICACIÓN PROTOCOLORDSI Q.931 CON SERVICIOS DE SEGURIDAD

USUARIO A

USUARIO B

AUTORIDADCERTIFICACIÓN

M. INFORMACIÓN USUARIO (Mensaje 1)

M. INFORMACIÓN USUARIO (Mensaje 2)

M. ESTABLECIMIENTO (Mensaje 3)

M. AVISO (Mensaje 4)

- ESPECIFICACIÓN FORMAL DE PROTOCOLOS

Page 90: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES (MÓDULO 1)pegaso.ls.fi.upm.es/~lmengual/documentacion/IP/modulo1.pdf · 2011. 2. 18. · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES -

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

EJEMPLO ESPECIFICACIÓN PROTOCOLORDSI Q.931 CON SERVICIOS DE SEGURIDAD

[ ]( );,,(,,,,Re::1 1NAKencryptKencryptBAqCA SAPC→

[ ]( ) [ ]( ) ( );,,,,,,,,,::2 2NKencryptTKBKencryptTKAKencryptAC PAPBSCPASC→

[ ]( ) [ ]( );,,,(,,,,,::3 3NTSKKencryptKencryptTKAKencryptBA SAPBPASC→

( );,::4 4NSKencryptAB →

INTERCAMBIOS DEL PROTOCOLO DE SEGURIDADINCORPORADO EN EL CANAL D DE LA RDSI

- ESPECIFICACIÓN FORMAL DE PROTOCOLOS

Page 91: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES (MÓDULO 1)pegaso.ls.fi.upm.es/~lmengual/documentacion/IP/modulo1.pdf · 2011. 2. 18. · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES -

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

EJEMPLO ESPECIFICACIÓN PROTOCOLORDSI Q.931 CON SERVICIOS DE SEGURIDAD

behaviour

(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

...........................................

- ESPECIFICACIÓN FORMAL DE PROTOCOLOS

Page 92: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES (MÓDULO 1)pegaso.ls.fi.upm.es/~lmengual/documentacion/IP/modulo1.pdf · 2011. 2. 18. · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES -

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

EJEMPLO ESPECIFICACIÓN LOTOS PROTOCOLORDSI Q.931 CON SERVICIOS DE SEGURIDAD

isdn ! setup_security_message ! own_name ? call_refd : call_reference_value ? one_setup: setup_security;

.user ! initiate ! own_name ? tpname, peer_name :

user_name;

SECURITY_SERVICE_PHASE_1[isdn, user,scontrol_call,choice_random, timeout ] (own_name, tpname, peer_name)

SECURITY_SERVICE_RESPOND[isdn, user] (own_name, call_refd,one_setup)

ISDN_USER [isdn,user,scontrol_call,choice_random,timeout] (own_name : user_name) : noexit :=

- ESPECIFICACIÓN FORMAL DE PROTOCOLOS

Page 93: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES (MÓDULO 1)pegaso.ls.fi.upm.es/~lmengual/documentacion/IP/modulo1.pdf · 2011. 2. 18. · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES -

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 :=.scontrol_call ? call_refs: -

isdn !setup !m_setup(----)

isdn !call_proc !own_name !call_refs ?one-call_proc

isdn ! alerting !own_name !call_refs ?one_alerting

isdn ! connect!own_name !call_refs ?one_connect

isdn ! ui ! m_ui(----)

.

.

..

..

isdn ! ui !own_name !call_refs ?one_ui

SECURITY_SERVICE_PHASE_2[isdn,user,scontrol_call](own_name, peer_name, cp) ) ) ))

i

i

timeout

CLEAR_USER1[isdn] (own_name, call_refs)

isdn !release_complete !own_name !call_refs ?one_release_complete;

exit

.exit

user ! guide_service_down; exit

M1->

<-M2

- ESPECIFICACIÓN FORMAL DE PROTOCOLOS

Page 94: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES (MÓDULO 1)pegaso.ls.fi.upm.es/~lmengual/documentacion/IP/modulo1.pdf · 2011. 2. 18. · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES -

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN 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 !call_refs ?one-call_proc

isdn ! alerting_security !own_name !call_refs ?one_alerting

user ! authentication _service_comptete !own_name ;exit

.

.

.isdn !release_complete !own_name !call_refs ?one_release_complete;

exit

.

.

user !authentication_service_rejected !own_name ;exit

timeout

M3->

<-M4

- ESPECIFICACIÓN FORMAL DE PROTOCOLOS

Page 95: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES (MÓDULO 1)pegaso.ls.fi.upm.es/~lmengual/documentacion/IP/modulo1.pdf · 2011. 2. 18. · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES -

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

CERTIFICATION_AUTHORITY [isdn,user,timeout] (own_name : user_name) : exit :=

isdn ! setup !own_name ? call_refd ?one_setup

isdn ! alerting !m_alerting(---)

isdn ! connect !m_conect(---)

..

isdn !release_complete !m_release_complete(---)

.

isdn ! ui !own_name ! call_refd ?one_ui

.isdn ! ui !m_ui(---) .

CLEAR_USER2[isdn] (own_name, call_refs)

exit

(guide_service_accepted/guide_service_rejected)

exit

M1->

<-M2

- ESPECIFICACIÓN FORMAL DE PROTOCOLOS

Page 96: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES (MÓDULO 1)pegaso.ls.fi.upm.es/~lmengual/documentacion/IP/modulo1.pdf · 2011. 2. 18. · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES -

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN 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 ! alerting_security !m_alerting(---)

..

isdn !release_complete !m_release_complete(---)

..

.

* setup_acepted

user ! authentication _service_accepted!own_name

exit

user ! authentication _service_rejected!own_name

isdn ! alerting !m_alerting(---)

.exit exit

- ESPECIFICACIÓN FORMAL DE PROTOCOLOS

Page 97: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES (MÓDULO 1)pegaso.ls.fi.upm.es/~lmengual/documentacion/IP/modulo1.pdf · 2011. 2. 18. · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES -

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

1

NETWORKING_SERVICE[isdn, scontrol_call] : noexit :=

isdn ! setup ?one_setup: setup

.

.

.scontrol_call ? call_refd

.isdn ! setup !destination !call_refd !one_setup

isdn ! call_proc !source !call_refs ! m_call_proc(---)

isdn ! alerting ? one_alerting[ call_refd == get_cr(one_alerting)]

i

CLEAR_1[isdn] (source, call_refs, destination, call_refd)

(I)

isdn ! setup_security ?one_setup: setup_security

scontrol_call ? call_refd

isdn ! setup_security !destination !call_refd !one_setup_security

isdn ! call_proc !source !call_refs ! m_call_proc(---)

..

..

.exit

.isdn ! alerting_security ? one_alerting

[call_refd == get_cr (one_alerting)]

isdn ! alerting _security !source !call_refs ! one_alerting_security

timeout timeout

- ESPECIFICACIÓN FORMAL DE PROTOCOLOS

Page 98: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES (MÓDULO 1)pegaso.ls.fi.upm.es/~lmengual/documentacion/IP/modulo1.pdf · 2011. 2. 18. · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES -

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

1

isdn ! alerting !source !call_refs ! one_alerting.

isdn ! connect ! source !call_refs !one_connect

isdn ! connect ? one_connect[call_refd == get_call_ref(one_connect)]

i

(II)

NETWORK_SERVICE[isdn] (user)..

DATA_TRANSMISION[isdn] (source, call_refs, destination, call_refd)

NETWORKING_SERVICE[isdn, scontrol_call] : noexit :=

- ESPECIFICACIÓN FORMAL DE PROTOCOLOS

Page 99: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES (MÓDULO 1)pegaso.ls.fi.upm.es/~lmengual/documentacion/IP/modulo1.pdf · 2011. 2. 18. · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES -

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

PROLOG:Introducción

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 objetos y sus interacciones.

Un programa PROLOG no es más que un conjunto de reglas que describen las propiedades e interacciones entre 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

• Preguntas (“questions”) acerca de hechos

- ESPECIFICACIÓN FORMAL DE PROTOCOLOS

Page 100: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES (MÓDULO 1)pegaso.ls.fi.upm.es/~lmengual/documentacion/IP/modulo1.pdf · 2011. 2. 18. · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES -

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

PROLOG: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”.

conoce(juan, parís).

Predicado(nombre de la relación)

Argumentos (nombres de los objetos)

Hecho: “Juan conoce París”

- ESPECIFICACIÓN FORMAL DE PROTOCOLOS

Page 101: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES (MÓDULO 1)pegaso.ls.fi.upm.es/~lmengual/documentacion/IP/modulo1.pdf · 2011. 2. 18. · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES -

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

PROLOG:Consultas, Objetivos

Una vez que tenemos algunos hechos, podemos formular algunas preguntas acerca de ellos

Cuando se hace una pregunta el intérprete PROLOGbuscará si dicho hecho coincide con alguno otro existente en su Base de Conocimiento.

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 con el hecho definido en la interrogación responderá afirmativamente.

?- conoce(juan, parís).

- ESPECIFICACIÓN FORMAL DE PROTOCOLOS

Page 102: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES (MÓDULO 1)pegaso.ls.fi.upm.es/~lmengual/documentacion/IP/modulo1.pdf · 2011. 2. 18. · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES -

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

PROLOG:Variables

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 nombres 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 que se pueda asociar a dicha variable.

- ESPECIFICACIÓN FORMAL DE PROTOCOLOS

Page 103: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES (MÓDULO 1)pegaso.ls.fi.upm.es/~lmengual/documentacion/IP/modulo1.pdf · 2011. 2. 18. · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES -

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

PROLOG:Variables

X=paris;X=estocolmo;X=oslo;

?- conoce(juan, X).

conoce(juan, parís).conoce(juan, estocolmo).conoce(juan, oslo).

Base de Conocimiento

Consulta

Resultado

- ESPECIFICACIÓN FORMAL DE PROTOCOLOS

Page 104: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES (MÓDULO 1)pegaso.ls.fi.upm.es/~lmengual/documentacion/IP/modulo1.pdf · 2011. 2. 18. · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES -

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

?-conoce(juan,X) , conoce(maria,X).

conoce(juan,oslo).conoce(juan,paris).conoce(juan,londres).conoce(maria,paris).

?-conoce(juan,X) , conoce(maria,X).

conoce(juan,oslo).conoce(juan,paris).conoce(juan,londres).conoce(maria,paris).

•Primer objetivo satisfecho. Se asigna “X”=oslo.•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”.

• 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.

PROLOG:Conjunciones (mecanismo de Backtracking)

- ESPECIFICACIÓN FORMAL DE PROTOCOLOS

Page 105: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES (MÓDULO 1)pegaso.ls.fi.upm.es/~lmengual/documentacion/IP/modulo1.pdf · 2011. 2. 18. · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES -

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

PROLOG:Conjunciones (mecanismo de Backtracking)

?-conoce(juan,X), conoce(maria,X).

conoce(juan,oslo).conoce(juan,paris).conoce(juan,londres).conoce(maria,paris).

?-conoce(juan,X), conoce(maria,X).

conoce(juan,oslo).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”.

El segundo objetivo tiene éxito.El intérprete Prolog informa de ello, y queda a la espera de realizar una nueva exploración

- ESPECIFICACIÓN FORMAL DE PROTOCOLOS

Page 106: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES (MÓDULO 1)pegaso.ls.fi.upm.es/~lmengual/documentacion/IP/modulo1.pdf · 2011. 2. 18. · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES -

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

PROLOG:Reglas

En PROLOG se utilizan reglas cuando es necesario expresar hechos que dependen de uno u otros hechos.

En 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 ser satisfechos uno por uno para que la cabecera tenga éxito.

hermana_de(X,Y):=mujer(X), padres(X,P,M), padres(Y,P,M).

Hecho: “X es hermana de Y si X es mujer y X e Y tienen los mismos padres”

- ESPECIFICACIÓN FORMAL DE PROTOCOLOS

Page 107: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES (MÓDULO 1)pegaso.ls.fi.upm.es/~lmengual/documentacion/IP/modulo1.pdf · 2011. 2. 18. · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES -

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

PROLOG:Análisis de la vulnerabilidad de Protocolos de Seguridad

Se puede utilizar PROLOG para analizar la vulnerabilidad 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 de las reglas que definen el comportamiento del protocolo se puede analizar su vulnerabilidad

- ESPECIFICACIÓN FORMAL DE PROTOCOLOS

Page 108: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES (MÓDULO 1)pegaso.ls.fi.upm.es/~lmengual/documentacion/IP/modulo1.pdf · 2011. 2. 18. · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES -

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

[ ]{ }[ ][ ]datEAB

AKEBA

AKEKEAC

BECA

s

b

ba

a

K

SK

SKSK

K

::4

::3

,::2

);(::1

C

A B

(2)

(3)

(4)

(1)

•C y A comparte una clave Ka•C y B comparte una clave Kb

* Protocolo de Needham Schroeder

EJEMPLO ESPECIFICACIÓN PROTOCOLO- ESPECIFICACIÓN FORMAL DE PROTOCOLOS

Page 109: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES (MÓDULO 1)pegaso.ls.fi.upm.es/~lmengual/documentacion/IP/modulo1.pdf · 2011. 2. 18. · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES -

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

PROTOCOL SPECIFICATIONCONSTANTSa,b,x,c:address;dat,req,ok:data;ksa,ksb,kx,ks:key;n1,n2:int;t1,t2:ctime.MESSAGES1:a->c:encrypt(KSA,B);2:C->A:encrypt(KSA,[KS,encrypt(KSB,[KS,A])]);3:A->b:encrypt(KSB,[KS,a]);4:B->A:encrypt(KS,dat).RELATIONS1:secret_key(a,KSA:a);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).KNOWSkx,encrypt(ksa,x).

PROLOG:Especificación Protocolos de Seguridad (P.S.)

- ESPECIFICACIÓN FORMAL DE PROTOCOLOS

Page 110: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES (MÓDULO 1)pegaso.ls.fi.upm.es/~lmengual/documentacion/IP/modulo1.pdf · 2011. 2. 18. · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES -

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

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).

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])],[B,A,encrypt(KS,dat)],4,MH).

PROLOG:Traducción P.S. a un conjunto de reglas Prolog

REGLAS DE DERIVACIÓN DE MENSAJES

- ESPECIFICACIÓN FORMAL DE PROTOCOLOS

Page 111: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES (MÓDULO 1)pegaso.ls.fi.upm.es/~lmengual/documentacion/IP/modulo1.pdf · 2011. 2. 18. · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES -

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

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).

p_modified([],[],_,_).p_modified([X|Mr],[Y|Ms],H,N):- isomorphic(X,Y),

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).p_knows_initially(encrypt(ksa,x)).

PROLOG:Traducción P.S a un conjunto de reglas Prolog

REGLAS ASOCIADAS A LA EMISIÓN / RECEPCIÓN DE MENSAJES Y A LAMODIFICACIÓN DE LOS MISMOS

- ESPECIFICACIÓN FORMAL DE PROTOCOLOS

Page 112: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES (MÓDULO 1)pegaso.ls.fi.upm.es/~lmengual/documentacion/IP/modulo1.pdf · 2011. 2. 18. · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES -

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

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,[M|PH],N):- N>0, sent(M,PH,N), p_gets(X,M,PH,PH,N).

PROLOG:Traducción P.S a un conjunto de reglas Prolog

REGLAS ASOCIADAS AL ESTUDIO DE LA VULNERABILIDAD DE UN PROTOCOLO DE SEGURIDAD (I)

- ESPECIFICACIÓN FORMAL DE PROTOCOLOS

Page 113: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES (MÓDULO 1)pegaso.ls.fi.upm.es/~lmengual/documentacion/IP/modulo1.pdf · 2011. 2. 18. · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES -

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

p_gets(X,M,PH,H,N):-member(X,M).

p_gets(X,M,PH,H,N):-encrypt_field0(encrypt(K0,W)),member(encrypt(K0,W),M),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)])),member(encrypt(K0,[V,encrypt(K1,W)]),M),p_knows_ph1(K0,PH,H,N),p_knows_ph1(K1,PH,H,N),member(X,W).

member(X,X).member(X,[X|_]).member(X,[_|Y]):-member(X,Y).

PROLOG:Traducción P.S a un conjunto de reglas Prolog

REGLAS ASOCIADAS AL ESTUDIO DE LA VULNERABILIDAD DE UN PROTOCOLO DE SEGURIDAD (II)

- ESPECIFICACIÓN FORMAL DE PROTOCOLOS

Page 114: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES (MÓDULO 1)pegaso.ls.fi.upm.es/~lmengual/documentacion/IP/modulo1.pdf · 2011. 2. 18. · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES -

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

PROLOG: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])] 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 = [[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).

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)]] ->

- ESPECIFICACIÓN FORMAL DE PROTOCOLOS

Page 115: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES (MÓDULO 1)pegaso.ls.fi.upm.es/~lmengual/documentacion/IP/modulo1.pdf · 2011. 2. 18. · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES -

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

PROGRAM emisor

TYPEeventos=(trama_i_lista, trama_ack_recibida, expira_tem)estados=(desocupado, esperando_ack) acciones=(na, trans_trama, error, retrans_trama, retardo, proc_ack)

VARtabla_eventos_estados=array[estados,eventos] of

recordaccion: accionesnuevoestado: estados

endestado_actual: estadostipo_evento: eventosNseq: Numsecuencia

IMPLEMENTACIÓNPROTOCOLO PARADA-ESPERA

- ESPECIFICACIÓN FORMAL DE PROTOCOLOS

Page 116: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES (MÓDULO 1)pegaso.ls.fi.upm.es/~lmengual/documentacion/IP/modulo1.pdf · 2011. 2. 18. · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES -

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

PROCEDURE inicializar{ 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{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}

PROCEDURE retardo{Retarda un corto intervalo de tiempo}

IMPLEMENTACIÓNPROTOCOLO PARADA-ESPERA

- ESPECIFICACIÓN FORMAL DE PROTOCOLOS

Page 117: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES (MÓDULO 1)pegaso.ls.fi.upm.es/~lmengual/documentacion/IP/modulo1.pdf · 2011. 2. 18. · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES -

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

PROCEDURE Error { Situación error}

BEGINInicializar;REPEAT esperar a que se produzca un evento

tipo_evento:= eventoWITH tabla_estados_eventos[estado_actual, tipo_evento] DOBEGIN

CASE accion of ¨{acciones}trans_trama: transmitir_tramaretrans_trama: retransmitir_tramapro_ack: proceso_ackretardo: retardoerrror: error

ENDestado actual: nuevo

ENDUNTIL foreverEND

IMPLEMENTACIÓNPROTOCOLO PARADA-ESPERA

- ESPECIFICACIÓN FORMAL DE PROTOCOLOS

Page 118: INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES (MÓDULO 1)pegaso.ls.fi.upm.es/~lmengual/documentacion/IP/modulo1.pdf · 2011. 2. 18. · INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES -

INGENIERÍA DE PROTOCOLOS DE COMUNICACIONES - IMPLEMENTACIÓN DE PROTOCOLOS

PROCEDURE receptorVAR

nesp

BEGIN Inicializar nespREPEAT esperar a una trama I

IF nseq de la trama= nesp THENBEGIN

incrementar nespmandar ack(nesp)

ENDif nseq de la trama<>nesp THEN

mandar ack(nesp)UNTIL forever

END

IMPLEMENTACIÓNPROTOCOLO PARADA-ESPERA

- ESPECIFICACIÓN FORMAL DE PROTOCOLOS