ip mtrt sdl1314 new

124
Ingeniería de Protocolos Especificación de protocolos con SDL Pedro Merino Gómez Depto. Lenguajes y Ciencias de la Computación Universidad de Málaga

Upload: esteban-gueeto-arroyo

Post on 23-Nov-2015

9 views

Category:

Documents


0 download

TRANSCRIPT

  • IP: Objetivos y planificacin

    Contenido

    Ingeniera de Protocolos

    Especificacin de protocolos con SDL

    Pedro Merino Gmez Depto. Lenguajes y Ciencias de la Computacin Universidad de Mlaga

  • IP: Especificacin de protocolos con SDL

    Contenido Visin general en herramienta -ejemplos Mquinas de estados finitos comunicantes (CFSM) Construcciones de SDL Bsico Uso bsico de la herramienta IBM Rational SDL Protocolo T.125 en SDL SDL extendido Protocolo V.76 en SDL Bibliografa

    2

  • IP: Especificacin de protocolos con SDL

    Mquinas de Estados Finitos Comunicantes (CFSM)

    ABP, Bartlet et. al

    3

    Las mquinas de estado comunicantes simples presentan muchas limitaciones para protocolos realistas. No tienen variables, guardas, creacin dinmica, ..

  • IP: Especificacin de protocolos con SDL

    X.21, Colin West, 1977

    4

    Aunque en algunos casos es suficiente para detectar errores. Los errores del protocolo X.21 se detectaron validando una especificacin como sta

  • IP: Especificacin de protocolos con SDL

    Mquinas de Estados Finitos Comunicantes (CFSM)

    CFSM en descripcin de protocolos

    Entidad de protocolo = CFSM Mensajes constantes Canales unidireccionales y no acotados Posibilidad de no-determinismo Posible entrelazado de grano muy fino

    Se emplea con xito en prototipos, y para localizar errores Sin embargo, presenta limitaciones

    Mensajes con datos variables Variables para guardas Creacin dinmica de entidades Otros comportamientos de los canales Temporizadores Detalles para implementacin (codificacin, prioridades, ..)

    5

  • IP: Especificacin de protocolos con SDL

    Introduccin a SDL

    Introduccin a SDL Origen

    o CCITT (International Telegraph and Telephone Consultative Committee): SDL-72, SDL-76, .. SDL-88,

    o SDl-92, SDl-96, SDL-2010 o ITU-T (International Telecommunications Union): SG17

    reas de aplicacin o Protocolos de comunicaciones o Sistemas distribuidos, sistemas de tiempo real,

    interactivos Caractersticas

    o Cubre las limitaciones de CFSM o Especificacin del comportamiento y la estructura o Muy ligado a otros lenguajes como MSC, ASN.1 o TTCN o Notacin grfica GR y textual PR (intercambio CIF)

    6

  • IP: Especificacin de protocolos con SDL

    Sistema / Entorno

    Proceso = ECFSM Signal = mensaje

    7

    SDL describe un sistema compuesto por procesos que se comunican entre s y con un entorno

  • IP: Especificacin de protocolos con SDL

    Estructura de una Especificacin

    Sistema, bloque, proceso

    8

    El modelo SDL del protocolo ABP est disponible con la instalacin de IBM Rational SDL

  • IP: Especificacin de protocolos con SDL

    Estructura de una Especificacin

    Visin Jerrquica

    9

    En las primeras versiones de SDL no se permite reutilizar cdigo. El cdigo de un proceso slo estaba disponible en su bloque, y era necesario copiar y pegar ..

  • IP: Especificacin de protocolos con SDL

    Estructura de una Especificacin

    Visin Jerrquica

    10

    EL cdigo SDL en IBM Rational SDL

  • IP: Especificacin de protocolos con SDL

    SDL 88

    SDL Bsico Descripcin del sistema Descripcin de los bloques Descripcin de los procesos Tipos de datos

    11

  • IP: Especificacin de protocolos con SDL

    Sistema

    Estructura del sistema

    12

    Los canales pueden tener un comportamiento realista (prdida, retraso, ..)

  • IP: Especificacin de protocolos con SDL

    Sistema

    Definicin de seales (mensajes)

    Bloque

    Canales y seales permitidas

    13

    Este es el ejemplo tpico de los tutoriales oficiales de SDL. El comentario describe su funcionamiento

  • IP: Especificacin de protocolos con SDL

    Bloques

    Estructura del bloque

    14

    Las rutas de seal son vas de comunicacin ideales (sin retraso, sin perdidas). Los canales que conectan un bloque tienen que conectarse con rutas de seal.

  • IP: Especificacin de protocolos con SDL

    Bloques

    Nuevas seales

    Procesos

    Rutas de seal ideales

    Conexiones Ruta- canal

    15

    El ejemplo de los tutoriales a nivel de bloque

  • IP: Especificacin de protocolos con SDL

    Procesos

    Modelo bsico: CFSM

    16

    Un proceso SDL representa una mquina de estados. cmo representamos esta mquina de estados ?

  • IP: Especificacin de protocolos con SDL

    Procesos

    Smbolos bsicos para descripcin grfica

    17

    Estos son los elementos bsicos. Significado (por orden): inicio del proceso, estado (donde espera), consumo de mensaje, envo de mensaje, salto a otro estado

  • IP: Especificacin de protocolos con SDL

    Procesos

    Ejemplo

    Start

    Estado

    Transicin

    Consumo de seal

    18

    Esta es UNA representacin SDL de la mquina de estados anterior. Se puede organizar grficamente de varias formas.

  • IP: Especificacin de protocolos con SDL

    Procesos

    19

    Esta sera otra opcin vlida, con el mismo significado. La ubicacin de los estados S1 y S2 no es importante. Lo que importa son las transiciones que llegan y salen de los estados.

  • IP: Especificacin de protocolos con SDL

    Procesos

    Procesamiento de las seales

    20

    Cada proceso tiene una cola de seales de entrada. Por ejemplo, PhysicalLayer tiene una nica cola para lo que recibe de DataLayer1, DataLayer2 y por C5 del entorno.

  • IP: Especificacin de protocolos con SDL

    Procesos

    Estado asociado a un proceso: Variables, Cola seales, Etiqueta estado, PIDs:

    o SELF (el proceso) o PARENT (el creador) o OFFSPRING (el ltimo hijo) o SENDER (el origen de la seal consumida)

    21

    Cada proceso activo tiene toda esta informacin asociada en el momento de crearse. Los PIDs son muy tiles para enviar mensajes (seales) a destinos especficos

  • IP: Especificacin de protocolos con SDL

    Procesos

    Variables y tareas (task)

    Tipos usuales: Integer, Char, Charstring, Bit, Boolean, Real, ..

    Task

    22

    Las variables son siempre locales a los procesos. No hay comparticin de variables.

    Esto es un ejemplo de declaracin y uso de una variable.

  • IP: Especificacin de protocolos con SDL

    Procesos

    Decisin Determinista Sin suspensin

    23

    Las decisiones equivalen a los if o switch de los lenguajes de programacin. Admiten cualquier nmero de opciones. Son deterministas porque siempre est clara la rama por la que puede evolucionar. No suspenden debido a que siempre debe haber una rama evaluada con xito.

  • IP: Especificacin de protocolos con SDL

    Procesos

    Decisin

    24

    Estos son ejemplos de decisiones vlidas, en las que se suelen usar rangos de valores en las ramas.

  • IP: Especificacin de protocolos con SDL

    Procesos

    Seales con datos

    Actualizacin de variables V1 y V2

    25

    Ejemplo: P1 enva el mensaje A(5, true), y P2 lo recibe y actualiza las variables V1 y V2 con los valores 5 y true. El mensaje ha pasado por la cola de mensajes de P2.

  • IP: Especificacin de protocolos con SDL

    Procesos

    Ejemplos de seales con datos en envo y recepcin

    legal

    ilegal

    26

  • IP: Especificacin de protocolos con SDL

    Procesos

    Direcciones explcitas de procesos

    27

    Al enviar un mensaje se indica el destinatario mediante su PID. El PID puede obtenerse de una variable predefinida (SENDER, SELF, OFFSPRING) o de otra declarada como de tipo PID (Dest)

  • IP: Especificacin de protocolos con SDL

    Procesos

    Direcciones implcitas de procesos

    28

    Cuando no conocemos los PIDs del destino, podemos confiar en la ruta que sigue el mensaje. Por ejemplo, las seales B y C no necesitan destinatario (solo hay uno posible). La seal A puede ir por dos rutas, y hay que indicarlo con VIA

  • IP: Especificacin de protocolos con SDL

    Procesos

    Seales y temporizadores

    29

    Los temporizadores llegan a los procesos como las seales normales. Hay instrucciones especficas para programarlos.

  • IP: Especificacin de protocolos con SDL

    Procesos

    Temporizadores

    Como seales Instrucciones:

    SET(T) RESET(T) ACTIVE(T)

    30

    Ejemplo: se activa T para que expire en 13 milisegundos a partir de la hora actual. Si llega una seal con su nombre en el estado Wait, sabemos que ha expirado.

  • IP: Especificacin de protocolos con SDL

    Procesos

    Creacin

    Crea un proceso

    31

    La creacin de procesos es similar a la de hebras. No suspende la transicin del proceso padre. Los parmetros son opcionales.

  • IP: Especificacin de protocolos con SDL

    Procesos

    Terminacin

    32

    Los procesos siempre terminan por si mismos. No hay mecanismos externos para eliminarlos.

  • IP: Especificacin de protocolos con SDL

    Procesos

    Abreviaturas para Estados * para otros estados - para el estado de partida

    33

    Se emplean para evitar la repeticin de cdigo en transiciones idnticas.

  • IP: Especificacin de protocolos con SDL

    Procesos

    34

    Este ejemplo contiene bucles, creacin de procesos, uso de conjuntos, decisiones y abreviaturas (las tres transiciones del ejemplo acaban en para representar Idle)

  • IP: Especificacin de protocolos con SDL

    Procesos

    35

    El uso del parmetro player permite conocer el proceso con el que se dialoga. El smbolo * sustituya a los estados Even y Odd.

  • IP: Especificacin de protocolos con SDL

    Comunicacin entre Procesos

    La cola nica de seales obliga a definir mecanismos adicionales para activar las transiciones

    Reactivacin/Suspensin de un proceso

    Consumo de seal Descarte de seal Seal salvada Consumo con guarda Seal continua Consumo con prioridad

    36

  • IP: Especificacin de protocolos con SDL

    Comunicacin entre Procesos

    Visin general

    37

  • IP: Especificacin de protocolos con SDL

    Comunicacin entre Procesos

    Consumo y descarte

    38

  • IP: Especificacin de protocolos con SDL

    Comunicacin entre Procesos

    Seal salvada

    39

    La seales C que lleguen en el estado S se almacenan temporalmente en una cola diferente. Se vuelven a colocar en la cola de proceso al terminar la transicin.

  • IP: Especificacin de protocolos con SDL

    Comunicacin entre Procesos

    Seal con guarda y continua

    < x = 1 >

    D

    < x > 1 >

    40

    Las guardas X=1 y X >1 condicionan la ejecucin de la transicin.

  • IP: Especificacin de protocolos con SDL

    Comunicacin entre Procesos

    Consumo con prioridad

    D

    41

    La seal D sera la primera en extraerse de la cola, aunque no est en la primera posicin.

  • IP: Especificacin de protocolos con SDL

    Procedimientos

    Se ejecutan dentro de una transicin Sintaxis idntica a los procesos, salvo:

    P1(..)

    p1 declaracin

    llamada

    inicio

    terminacin

    42

  • IP: Especificacin de protocolos con SDL

    Procedimientos

    SDL Illustrated by L. Doldi. Contents of checkCRC and checkCRC2

    procedure checkCRC FPAR p1 Integer; RETURNS Boolean

    'CRC OK ?'

    Yes

    True

    No

    False

    process p checkCRC

    checkCRC

    D

    43

  • IP: Especificacin de protocolos con SDL

    Tipos de Datos en SDL

    Tipos de Datos en SDL

    Tipos Abstractos de Datos, como ACT ONE Cada definicin de un tipo (Sort) es parcial

    NEWTYPE sortname literales, operadores, axiomas . . . ENDNEWTYPE;

    Otras posible formas de definicin ASN.1 (Z.105)

    44

  • IP: Especificacin de protocolos con SDL

    Tipos de Datos en SDL

    Sorts predefinidos Bit, Bit_String, Boolean, Character, CharString,

    Ver Using SDL Data Types.pdf

    Siempre disponibles: := (asignacin) = (test de igualdad) /= (test de no igualdad)

    45

  • IP: Especificacin de protocolos con SDL

    Ejemplos de Tipos de Datos

    NEWTYPE bool LITERALS true, false; OPERATORS not: bool -> bool; AXIOMS not (true) = false; not (false) = true; ENDNEWTYPE bool; NEWTYPE nat LITERALS 0,1; OPERATORS plus : nat, nat -> nat; isZero : nat -> bool AXIOMS FOR ALL x, y IN nat (plus (x, y) == plus (y, x); plus (x, 0) == x; plus (x, plus (y, 1) == plus (plus (x, y), 1 ); isZero (0) == true; isZero (plus (x, 1)) == false;); ENDNEWTYPE nat;

    46

  • IP: Especificacin de protocolos con SDL

    Redefinicin de Tipos

    Sub tipos SYNTYPE counter = Integer; ENDSYNTYPE; SYNTYPE window = Integer CONSTANTS 0:4;

    ENDSYNTYPE;

    Constantes SYNONYM max_length Integer = 4096;

    47

  • IP: Especificacin de protocolos con SDL

    Redefinicin de Tipos

    Herencia de operadores NEWTYPE sor1 LITERALS li1, li2; OPERATORS op1:... op2:... op3:... AXIOMS ... ENDNEWTYPE; NEWTYPE sor2 INHERITS sor1 OPERATORS (op1, opA = op2); ADDING LITERALS liA; OPERATORS opB:... AXIOMS ... ENDNEWTYPE; INHERITS ...

    OPERATOR ALL

    48

  • IP: Especificacin de protocolos con SDL

    Arrays y Conjuntos

    Arrays NEWTYPE array_enteros ARRAY(window, Integer) ENDNEWTYPE; DCL a array_enteros; a(3):= 5;

    Conjuntos NEWTYPE conjunto_enteros POWERSET(Integer) ENDNEWTYPE; DCL c conjunto_enteros; c1 := incl( 5, c); c2 := del(5, c);

    49

  • IP: Especificacin de protocolos con SDL

    Registros

    NEWTYPE address_type STRUCT name, first_name, street: Charstring; number: Integer; city: Charstring; ENDNEWTYPE: DCL address adress_type; address := (.Hogrefe, Dieter, Rothenbaumchaussee, 67, Hamburg.) town := address!city

    50

  • IP: Especificacin de protocolos con SDL

    Especificacin del Protocolo T.125

    Ejemplo: multiconferencia con T.125

    51

  • IP: Especificacin de protocolos con SDL

    Funciones de MCS

    Parte del stack T.120

    52

  • IP: Especificacin de protocolos con SDL

    Funciones de MCS

    Estructura jerrquica

    cliente

    dominio 1

    cliente

    Proveedor MCS

    controlador

    cliente

    Proveedor MCS

    cliente

    cliente

    dominio 1

    cliente

    Proveedor MCS

    MCU

    controlador

    Proveedor MCS

    cliente

    Proveedor MCS

    dominio 1 dominio 2

    dominio 1 dominio 2

    cliente controlador

    controlador controlador

    dominio 1

    53

  • IP: Especificacin de protocolos con SDL

    Funciones de MCS

    Modelo de capas de MCS

    54

  • IP: Especificacin de protocolos con SDL

    Servicio en T.122 55

  • IP: Especificacin de protocolos con SDL

    Servicio en T.122 56

  • IP: Especificacin de protocolos con SDL

    Servicio en T.122 57

  • IP: Especificacin de protocolos con SDL

    Servicio en T.122 58

  • IP: Especificacin de protocolos con SDL

    Servicio en T.122 59

  • IP: Especificacin de protocolos con SDL

    Servicio en T.122 60

  • IP: Especificacin de protocolos con SDL

    Servicio en T.122 61

  • IP: Especificacin de protocolos con SDL

    Servicio en T.122 62

  • IP: Especificacin de protocolos con SDL

    Servicio en T.122 63

  • IP: Especificacin de protocolos con SDL

    Servicio en T.122 64

  • IP: Especificacin de protocolos con SDL

    Funciones del protocolo MCS, T.125

    Gestin de dominios Creacin y eliminacin de conexiones MCS Asociacin y eliminacin de usuarios

    Gestin de canales Creacin mediante identificadores

    Transferencia de datos Difusin en el rbol para los usuarios asociados a un canal

    Otras: gestin de testigos, notificacin de capacidades, etc.

    65

  • IP: Especificacin de protocolos con SDL

    Funciones del protocolo MCS, T.125 66

  • IP: Especificacin de protocolos con SDL

    Funciones del protocolo MCS, T.125 67

  • IP: Especificacin de protocolos con SDL

    Funciones del protocolo MCS, T.125 68

  • IP: Especificacin de protocolos con SDL

    Funciones del protocolo MCS, T.125 69

  • IP: Especificacin de protocolos con SDL

    Funciones del protocolo MCS, T.125 70

  • IP: Especificacin de protocolos con SDL

    Funciones del protocolo MCS, T.125 71

  • IP: Especificacin de protocolos con SDL

    Funciones del protocolo MCS, T.125 72

  • IP: Especificacin de protocolos con SDL

    Funciones del protocolo MCS, T.125

    Parmetros de un dominio Nmero mximo de canales MCS simultneos Nmero mximo de identificadores de usuario Nmero mximo de los identificadores de testigo Nmero de prioridades de transferencia de datos en una Caudal cumplimentado Altura mxima Tamao mximo de las MCSPDU de dominio. Versin del protocolo.

    73

  • IP: Especificacin de protocolos con SDL

    Funcionamiento de T.125 74

  • IP: Especificacin de protocolos con SDL

    Especificacin SDL de T.125

    Estudiar cdigo en herramienta Descargar de campus virtual Fichero mcs.tgz y mcs.sdt para editar y simular con SDL

    Suite Fichero mcs.zip para navegador Fichero startmcs para ayudar a simulacin

    75

  • IP: Especificacin de protocolos con SDL

    SDL extendido Incorpora orientacin a objetos Cambios:

    Estructura de la especificacin Representacin del comportamiento Definicin de datos

    76 SDL extendido

  • IP: Especificacin de protocolos con SDL

    Estructura de la especificacin Paquetes Tipos de procesos, bloques y sistemas para reutilizar cdigo

    o Instancias o Especializacin (subtipos)

    Tipos genricos Otros:

    o procedimientos globales, o canales sin retrasos o conexin mltiple rutas-canales, ...

    77 SDL extendido

  • IP: Especificacin de protocolos con SDL

    Paquetes

    SDL Illustrated by L. Doldi. The system SS7_test without package

    system SS7_test

    NEWTYPE PDUSTRUCT

    CRC Integer; isLast Boolean; reason Natural;

    DEFAULT voidPDU;ENDNEWTYPE;

    SYNONYM voidPDU PDU = (. 0, False, 0 .);

    SYNONYM D201 Duration = 15.0;

    SIGNAL IAM, ACM(PDU);

    SIGNALLIST ss7 = IAM, ACM;

    ss7ch

    (ss7)(ss7)LE_1 LE_2

    78

  • IP: Especificacin de protocolos con SDL

    Paquetes

    SDL Illustrated by L. Doldi. The package SS7pack

    package SS7packNEWTYPE PDU

    STRUCT CRC Integer; isLast Boolean; reason Natural;

    DEFAULT voidPDU;ENDNEWTYPE;

    SYNONYM voidPDU PDU = (. 0, False, 0 .);

    SYNONYM D201 Duration = 15.0;

    SIGNAL IAM, ACM(PDU);

    SIGNALLIST ss7 = IAM, ACM;

    79

  • IP: Especificacin de protocolos con SDL

    Paquetes

    SDL Illustrated by L. Doldi. The system SS7_test using package SS7pack

    system SS7_test

    USE SS7pack;

    ss7ch

    (ss7)(ss7)LE_1 LE_2

    80

    La instruccin USE SS7pack facilita el uso de los tipos que contiene en cualquier parte.

  • IP: Especificacin de protocolos con SDL

    Tipos de Sistemas

    SDL Illustrated by L. Doldi. A system type in a package

    package SS7packNEWTYPE PDU

    STRUCT CRC Integer; isLast Boolean; reason Natural;

    DEFAULT voidPDU;ENDNEWTYPE;

    SYNONYM voidPDU PDU = (. 0, False, 0 .);

    SYNONYM D201 Duration = 15.0;

    SIGNAL IAM, ACM(PDU);

    SIGNALLIST ss7 = IAM, ACM;

    SS7type This is asystem type

    81

    SS7type se podra emplear para obtener un sistema real. En este caso no hay ahorro de cdigo.

  • IP: Especificacin de protocolos con SDL

    Tipos de Sistemas

    SDL Illustrated by L. Doldi. The contents of the system type SS7type

    system type SS7type

    ss7ch

    (ss7)(ss7)LE_1 LE_2

    system SS7_test

    USE SS7pack;

    ss7ch

    (ss7)(ss7)LE_1 LE_2System SS7test: SS7type

    82

  • IP: Especificacin de protocolos con SDL

    Tipos de Bloques

    SDL Illustrated by L. Doldi. A block type in a package

    package SS7packNEWTYPE PDU

    STRUCT CRC Integer; isLast Boolean; reason Natural;

    DEFAULT voidPDU;ENDNEWTYPE;

    SYNONYM voidPDU PDU = (. 0, False, 0 .);

    SYNONYM D201 Duration = 15.0;

    SIGNAL IAM, ACM(PDU);

    SIGNALLIST ss7 = IAM, ACM;

    LE This is ablock type

    83

    LE, como tipo de bloque, s puede ahorrar cdigo.

  • IP: Especificacin de protocolos con SDL

    Tipos de Bloques

    SDL Illustrated by L. Doldi. The blocks LE_1 and LE_2 based on block type LE

    system SS7_test

    USE SS7pack;

    ss7ch (ss7)(ss7)

    LE_1 : LEpeer

    LE_2 : LEpeer

    block type LE

    peer (ss7)

    (ss7)

    sr1

    (ss7)

    (ss7)

    LE

    Puertas (gates) Como puntos de conexin

    84

    LE_1 y LE_2 son instancias del tipo LE definido en el paquete SS7pack. Se ahorra cdigo. Hay que aadir las puertas.

  • IP: Especificacin de protocolos con SDL

    Tipos de Bloques

    SDL Illustrated by L. Doldi. Block instances

    system SS7_test

    ss7ch(ss7)

    (ss7)

    London_LEs(4) : LEpeer

    block type LE

    peer (ss7)

    (ss7)

    sr1

    (ss7)

    (ss7)

    LE

    85

    El uso de tipos de bloque permite definir configuraciones complejas. Hay que chequear si la herramienta las soporta.

  • IP: Especificacin de protocolos con SDL

    Tipos de Procesos

    SDL Illustrated by L. Doldi. The process type LEp

    block type LE

    peer (ss7)

    (ss7)

    sr1

    (ss7)

    (ss7)

    LEp

    This is aprocess type

    LE : LEpg1

    process type LEp

    DCL inPDU PDU;

    g1(ss7)

    (ss7)

    IAM

    w ait4ACM

    w ait4ACM

    IAM

    ACM(voidPDU)

    ready

    ACM(inPDU)

    ready

    ready

    ACM(inPDU)

    -

    86

    El uso de tipos de procesos permite heredar, extender y modificar el comportamiento. En el ejemplo aparece la puerta g1 como elemento nuevo.

  • IP: Especificacin de protocolos con SDL

    Tipos de procesos 87

  • IP: Especificacin de protocolos con SDL

    Tipos de procesos - Especializacin 88

    El nuevo tipo advanced_keyboard extiende en anterior con una nueva transicin y un procedimiento

  • IP: Especificacin de protocolos con SDL

    Tipos de procesos - Especializacin 89

  • IP: Especificacin de protocolos con SDL

    Tipos de procesos - Virtual 90

    El uso de Virtual permite redefinir el comportamiento en el nuevo tipo

  • IP: Especificacin de protocolos con SDL

    Tipos de Bloques/Procesos - Especializacin

    SDL Illustrated by L. Doldi. System test2

    system test2

    SIGNAL init, IAM, ACM(PDU);

    SIGNALLIST sigs = init, IAM, ACM;

    NEWTYPE PDUSTRUCT

    CRC Integer; isLast Boolean; reason Natural;

    DEFAULT voidPDU;ENDNEWTYPE;

    SYNONYM voidPDU PDU = (. 0, False, 0 .);

    med_ch (sigs)(sigs)

    protocol This is ablock type

    SS7This block typeinherits fromprotocol

    side_1 : SS7peer

    side_2 : SS7peer

    91

  • IP: Especificacin de protocolos con SDL

    Tipos de procesos - Especializacin

    SDL Illustrated by L. Doldi. Virtual process type, start and input

    block type protocol

    peer (sigs)

    (sigs)

    sr1

    (sigs)

    (sigs)

    VIRTUALmanager entity : manager

    g1

    VIRTUALprocess type manager

    g1 (sigs)

    (sigs)

    VIRTUAL

    init

    ready

    ready

    VIRTUALinit

    -

    92

  • IP: Especificacin de protocolos con SDL

    Tipos de procesos - Especializacin

    SDL Illustrated by L. Doldi. Adding process routingControl

    block type SS7 INHERITS protocol

    SIGNAL SCCP;

    sr2

    SCCPREDEFINED

    manager entity : managerRC

    routingControl

    process routingControl

    idle

    idle

    SCCP

    -

    93

  • IP: Especificacin de protocolos con SDL

    Tipos de procesos - Especializacin

    SDL Illustrated by L. Doldi. Modifying and adding transitions and a gate to process manager

    REDEFINEDprocess type manager

    DCL inPDU PDU;

    RC

    SCCPREDEFINED

    init

    IAM

    wait4ACM

    wait4ACM

    IAM

    ACM(voidPDU)

    SCCP

    ready

    ACM(inPDU)

    ready

    ready

    ACM(inPDU)

    -

    FINALIZEDinit

    IAM

    wait4ACM

    94

    Este tipo de proceso ha redefinido la transicin inicial y la que se inicia con el consumo de init en el estado ready.

  • IP: Especificacin de protocolos con SDL

    Tipos de procesos - Especializacin

    SDL Illustrated by L. Doldi. The resulting block type SS7

    block type SS7_full

    SIGNAL SCCP;

    peer(sigs)

    (sigs)

    sr2

    SCCP

    sr1(sigs)

    (sigs)

    manager entity : managerRC

    g1routingControl

    95

  • IP: Especificacin de protocolos con SDL

    Otras Especializaciones

    SDL Illustrated by L. Doldi. Two procedures checkCRC and checkCRC2

    process type manager

    g1 (sigs)

    (sigs)

    checkCRC2This procedureinherits fromcheckCRC2

    checkCRC

    init

    ready

    ready

    init

    -

    96

  • IP: Especificacin de protocolos con SDL

    Otras Especializaciones

    SDL Illustrated by L. Doldi. Contents of checkCRC and checkCRC2

    procedure checkCRCFPAR

    p1 Integer;RETURNS Boolean

    VIRTUAL

    'CRC OK ?'

    Yes

    True

    No

    False

    procedure checkCRC2 INHERITS checkCRCFPAR

    p2 Natural /* added parameter */

    REDEFINED

    (p1 * p2) > 23

    97

    El procedimiento inicial no estaba totalmente definido (la decisin no tiene comportamiento real). El nuevo si tiene un comportamiento concreto.

  • IP: Especificacin de protocolos con SDL

    Otras Especializaciones

    SDL Illustrated by L. Doldi. Signal cnxConf inherits from signal cnxRequ

    system test1

    SIGNAL cnxRequ(Integer, Boolean), cnxConf INHERITS cnxRequ (Natural);

    process proc1 DCL x Integer, y Boolean, z Natural;

    ready

    ready

    cnxConf(x, y, z)

    -

    98

  • IP: Especificacin de protocolos con SDL

    Tipos de procesos - Genricos 99

    No implementado en IBM Rational SDL

  • IP: Especificacin de protocolos con SDL

    Tipos de procesos - Genricos 100

  • IP: Especificacin de protocolos con SDL

    Conexiones mltiples

    101

  • IP: Especificacin de protocolos con SDL

    SDL-92

    Representacin del comportamiento Devolucin de valores en procedimientos Llamada a procedimiento remoto Transiciones espontneas Nuevas formas de direccionamiento en envos Difusin en envo de seales No-determinismo en mltiples seales continuas.

    102

  • IP: Especificacin de protocolos con SDL

    Devolucin de valores en procedimientos 103

  • IP: Especificacin de protocolos con SDL

    Llamada a procedimiento remoto 104

  • IP: Especificacin de protocolos con SDL

    Transiciones espontneas 105

  • IP: Especificacin de protocolos con SDL

    Transiciones espontneas 106

  • IP: Especificacin de protocolos con SDL

    SDL-92

    Representacin de los datos Nuevas formas de definicin de operadores:

    o algortmica, similar a un procedimiento o alternativa, haciendo uso de otros lenguajes

    existentes Valores arbitrarios en variables

    107

  • IP: Especificacin de protocolos con SDL

    Definicin algortmica de operadores 108

  • IP: Especificacin de protocolos con SDL

    Definicin alternativa de operadores 109

  • IP: Especificacin de protocolos con SDL

    Restricciones de SDL en Tau 110

  • IP: Especificacin de protocolos con SDL

    Restricciones de SDL en Tau 111

  • IP: Especificacin de protocolos con SDL

    Especificacin del Protocolo V.76

    Ejemplo: control de modem con V.76

    BLOCK TYPE V76_DLC

    SIGNAL DLCstopped(DLCident);

    /* Due to a limitation in Tau 4.0, two routes dlcDL1 and dlcDL2 havebeen created instead of one. Otherwise you get the error:ERROR 891 Not implemented: Output via in a type, with signal insignal set of both directions of path unit*/

    dispatch(1, 1)

    DLC(0, maxDLC+1)

    Initially 0 instances,maximum maxDLC+1instances in parallel,created by dispatch

    SU(dlc2su)

    (su2dlc)

    dlcSU

    (su2dlc)

    (dlc2su)

    user

    L_DataInd,L_EstabConf

    peer

    V76frame

    DLV76frame

    V76frame

    dlcDL1

    V76frame

    DLCs L_DataReq,L_ReleaseReq,V76frameDLCstopped

    dlcDL2

    V76frame

    Descripcin general y ref. a norma ITU Versin SDL de L. Doldi (parcial)

    112

  • IP: Especificacin de protocolos con SDL

    Funciones de V.76

    Establecimiento de conexiones entre dos modems para transferencia de datos

    113

  • IP: Especificacin de protocolos con SDL

    Funciones de V.76 114

  • IP: Especificacin de protocolos con SDL

    Versin SDL de L. Doldi 115

  • IP: Especificacin de protocolos con SDL

    Versin SDL de L. Doldi 116

  • IP: Especificacin de protocolos con SDL

    Versin SDL de L. Doldi 117

  • IP: Especificacin de protocolos con SDL

    Versin SDL de L. Doldi

    BLOCK TYPE V76_DLC

    SIGNAL DLCstopped(DLCident);

    /* Due to a limitation in Tau 4.0, two routes dlcDL1 and dlcDL2 havebeen created instead of one. Otherwise you get the error:ERROR 891 Not implemented: Output via in a type, with signal insignal set of both directions of path unit*/

    dispatch(1, 1)

    DLC(0, maxDLC+1)

    Initially 0 instances,maximum maxDLC+1instances in parallel,created by dispatch

    SU(dlc2su)

    (su2dlc)

    dlcSU

    (su2dlc)

    (dlc2su)

    user

    L_DataInd,L_EstabConf

    peer

    V76frame

    DLV76frame

    V76frame

    dlcDL1

    V76frame

    DLCs L_DataReq,L_ReleaseReq,V76frameDLCstopped

    dlcDL2

    V76frame

    118

  • IP: Especificacin de protocolos con SDL

    Versin SDL de L. Doldi

    ; FPAR me DLCident, originator Boolean;

    PROCESS DLC (0, maxDLC + 1)

    TIMER T320 := 12.0; /* Max. numer of retransmissions: */ SYNONYM N320 Integer = 3; DCL /* T320 retransmission counter: */ N320cnt Integer;

    /* Temporary variables: */ DCL uData Idata, len Integer, Iparam Iframe, V76para V76paramTyp;

    originator

    N320cnt:= 0

    V76frame(SABME: (. me .))VIA peer

    SET (T320)

    waitUA

    V76frame(UA: (. me .))VIA peer

    connected

    waitUA

    V76frame (V76para)

    V76para ! present

    RESET (T320)

    L_EstabConf(me)

    connected

    DLCstopped(me)

    -

    T320

    N320cnt

    N320cnt:= N320cnt + 1

    retry

    DLCstopped(me)retry

    True

    False

    UADM ELSE

    < N320ELSE

    119

  • IP: Especificacin de protocolos con SDL

    Versin SDL de L. Doldi

    ; FPAR me DLCident, originator Boolean;

    PROCESS DLC (0, maxDLC + 1)

    connected

    L_DataReq( , uData, len)

    We do notget the firstparameter

    Iparam :=fill_Iframe(me, uData, len, 15)

    V76frame(I : Iparam)VIA peer

    -

    L_ReleaseReq

    V76frame(DISC : (. me .))VIA peer

    waitUAdisc

    V76frame (V76para)

    V76para ! present

    DLCstopped(me)

    -

    V76frame (V76para)

    V76para ! present

    V76frame(UA : (. me .))VIA peer

    DLCstopped(me)

    CALL CRCok(V76para ! I !CRC)

    L_DataInd(me, V76para! I ! data,V76para! I ! length)

    -

    -

    UA, DMELSE

    DISCI

    TrueFalse

    ELSE

    120

  • IP: Especificacin de protocolos con SDL

    Versin SDL de L. Doldi

    PROCESS dispatch(1, 1)

    /* Temporary variables: */ DCL DLCnum, DLCpeer DLCident, uData Idata, V76para V76paramTyp, len Integer;

    NEWTYPE DLCsArray ARRAY(DLCident, PID) ENDNEWTYPE; DCL /* to store the PIDs of the instances of process DLC, necessary in outputs to route signals : */ DLCs DLCsArray;

    ready

    V76frame (V76para)

    V76para ! present

    DLCpeer:=V76para ! SABME ! DLCi

    DLCs(DLCpeer)

    L_EstabInd(DLCpeer)

    waitEstabResp

    L_EstabResp

    DLC(DLCpeer, False)

    Createsinstance ofprocess DLC

    DLCs(DLCpeer):= OFFSPRING

    Stores into thetable the PID of theinstance just created.

    ready

    V76frame SavesV76frame

    L_ReleaseInd(DLCpeer)

    V76frame(DM :(. DLCpeer .))VIA dlcDL2

    -

    V76frame(V76para)TO DLCs(V76para !UA ! DLCi)

    -

    V76frame(V76para)TO DLCs(V76para !DM ! DLCi)

    -

    L_SetparmInd

    waitParmResp

    L_SetparmResp

    V76frame(XIDresp : 0)VIA dlcDL2

    ready

    -

    V76frame(V76para)TO DLCs(V76para !I ! DLCi)

    We pass the frameto the correspondinginstance of process DLC

    -

    V76frame(V76para)TO DLCs(V76para !DISC ! DLCi)

    -

    L_SetparmConf

    -

    SABME

    NULL

    ELSE

    UA DM XIDcmd ELSEI DISC

    XIDresp

    121

  • IP: Especificacin de protocolos con SDL

    Versin SDL de L. Doldi

    PROCESS dispatch(1, 1)

    ready

    L_DataReq(DLCnum, uData, len)

    DLCs(DLCnum)

    L_DataReq(DLCnum, uData,len) TO DLCs(DLCnum)

    We pass the frameto the correspondinginstance of process DLC

    -

    L_ReleaseReq(DLCnum)

    This is a priority input

    DLCs(DLCnum)

    L_ReleaseReq(DLCnum) TODLCs(DLCnum)

    -

    L_EstabReq(DLCnum)

    DLCs(DLCnum)

    DLC(DLCnum, True)

    DLCnum notused, we createan instance ofprocess DLC

    DLCs(DLCnum):= OFFSPRING

    We store into thetable the PID ofthe new instance

    waitUA

    V76frame(V76para)

    V76para ! present

    V76frame(V76para)TO DLCs(V76para !UA ! DLCi)

    ready

    -

    L_ReleaseInd(DLCnum)

    ready

    DLCstopped(DLCnum)

    L_ReleaseInd(DLCnum)

    DLCs(DLCnum):= NULL

    -

    L_SetparmReq

    V76frame(XIDcmd : 0)VIA dlcDL2

    -

    ELSENULL

    ELSENULLNULL

    UAELSE

    ELSE

    122

  • IP: Especificacin de protocolos con SDL

    Especificacin SDL de V.76

    Estudiar cdigo en herramienta Descargar de campus virtual Fichero v76.tgz y v76.sdt para editar y simular con SDL

    Suite Fichero v76.zip para navegador

    123

  • IP: Especificacin de protocolos con SDL 124 Bibliografa

    Bibliografa DOLDI L. SDL Illustrated - Visually design executable models

    DOLDI L. Validation of Communications Systems with SDL

    OLSEN y OTROS. System Engineering Using SDL-92. North-Holland.

    R. Saracco: Telecommunications system engineering using SDL (North-

    Holland, Amsterdam, 1989)

    F. Belina: SDL with applications from protocol specification. Prentice Hall.

    CCITT Recommendation Z.100: Specification and Description Language SDL,

    Tutoriales en www.sdl-forum.org

    Ingeniera de ProtocolosNmero de diapositiva 2Mquinas de Estados Finitos Comunicantes (CFSM)Nmero de diapositiva 4Mquinas de Estados Finitos Comunicantes (CFSM)Introduccin a SDLSistema / EntornoEstructura de una EspecificacinEstructura de una EspecificacinEstructura de una EspecificacinSDL 88SistemaSistemaBloquesBloquesProcesosProcesosProcesosProcesosProcesosProcesosProcesosProcesosProcesosProcesosProcesosProcesosProcesosProcesosProcesosProcesosProcesosProcesosProcesosProcesosComunicacin entre ProcesosComunicacin entre ProcesosComunicacin entre ProcesosComunicacin entre ProcesosComunicacin entre ProcesosComunicacin entre ProcesosProcedimientosProcedimientosTipos de Datos en SDLTipos de Datos en SDLEjemplos de Tipos de DatosRedefinicin de TiposRedefinicin de TiposArrays y ConjuntosRegistrosEspecificacin del Protocolo T.125Funciones de MCSFunciones de MCSFunciones de MCSServicio en T.122Servicio en T.122Servicio en T.122Servicio en T.122Servicio en T.122Servicio en T.122Servicio en T.122Servicio en T.122Servicio en T.122Servicio en T.122Funciones del protocolo MCS, T.125Funciones del protocolo MCS, T.125Funciones del protocolo MCS, T.125Funciones del protocolo MCS, T.125Funciones del protocolo MCS, T.125Funciones del protocolo MCS, T.125Funciones del protocolo MCS, T.125Funciones del protocolo MCS, T.125Funciones del protocolo MCS, T.125Funcionamiento de T.125Especificacin SDL de T.125SDL extendidoSDL extendidoPaquetesPaquetesPaquetesTipos de SistemasTipos de SistemasTipos de BloquesTipos de BloquesTipos de BloquesTipos de ProcesosTipos de procesosTipos de procesos - EspecializacinTipos de procesos - EspecializacinTipos de procesos - VirtualTipos de Bloques/Procesos - EspecializacinTipos de procesos - EspecializacinTipos de procesos - EspecializacinTipos de procesos - EspecializacinTipos de procesos - EspecializacinOtras EspecializacionesOtras EspecializacionesOtras EspecializacionesTipos de procesos - GenricosTipos de procesos - GenricosConexiones mltiplesSDL-92Devolucin de valores en procedimientosLlamada a procedimiento remotoTransiciones espontneasTransiciones espontneasSDL-92Definicin algortmica de operadoresDefinicin alternativa de operadoresRestricciones de SDL en TauRestricciones de SDL en TauEspecificacin del Protocolo V.76Funciones de V.76Funciones de V.76Versin SDL de L. DoldiVersin SDL de L. DoldiVersin SDL de L. DoldiVersin SDL de L. DoldiVersin SDL de L. DoldiVersin SDL de L. DoldiVersin SDL de L. DoldiVersin SDL de L. DoldiEspecificacin SDL de V.76Bibliografa