You are on page 1of 135

Protocolos de

Comunicacin de
Datos
Ingeniero en Computacin
8 Semestre

Introduccin a los protocolos de comunicacin..........( 03)


Estructura de los protocolos.(17)
Control de error.(42)
Control de flujo...........................(55)
Modelos de Validacin..........................(65)
Criterios de correccin....(95)

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

I.
II.
III.
IV.
V.
VI.

18/01/2014

Contenido Unidades

18/01/2014
Protocolos de Comunicacin de
Datos/CARR/8 Semestre

Unidad I
Introduccin a los protocolos de
comunicacin

3
Regresar a Contenido

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

Conjunto de reglas o convenios que gobiernan el formato y el


control de la informacin transmitida a travs de una red.

18/01/2014

Protocolo?

Protocolos como Lenguajes

Define las reglas para el intercambio de datos (gramtica)


Define un vocabulario de mensajes vlidos que pueden ser
intercambiados,
con
su
significado
(semntica).

La gramtica del protocolo debe ser consistente y


completa: bajo cualquier circunstancia las reglas deben dictar de
manera no ambigua lo que est prohibido y lo que est permitido.

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

Define el formato preciso de mensajes vlidos (sintaxis)

18/01/2014

La definicin completa de un protocolo se parece mucho a


la definicin de un lenguaje:

La normalizacin es el proceso de elaborar, aplicar y mejorar las normas


que se aplican a distintas actividades cientficas, industriales o econmicas con el
fin de ordenarlas y mejorarlas. La asociacin estadounidense para pruebas de
materiales (ASTM) define la normalizacin como el proceso de formular y aplicar
reglas para una aproximacin ordenada a una actividad especfica para el beneficio
y con la cooperacin de todos los involucrados.
Segn la ISO (International Organization for Standarization) la
normalizacin es la actividad que tiene por objeto establecer, ante problemas
reales o potenciales, disposiciones destinadas a usos comunes y repetidos, con el
fin de obtener un nivel de ordenamiento ptimo en un contexto dado, que puede
ser tecnolgico, poltico o econmico.

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

La normalizacin o estandarizacin es la redaccin y aprobacin de


normas que se establecen para garantizar el acoplamiento de elementos
construidos independientemente, as como garantizar el repuesto en caso de ser
necesario, garantizar la calidad de los elementos fabricados, la seguridad de
funcionamiento y trabajar con responsabilidad social.

18/01/2014

Estandarizacin de Protocolos

Unificacin: para permitir el intercambio a nivel internacional.


Especificacin: se persigue evitar errores de identificacin creando
un lenguaje claro y preciso.

Las elevadas sumas de dinero que los pases desarrollados invierten


en los organismos normalizadores, tanto nacionales como
internacionales, es una prueba de la importancia que se da a la
normalizacin.

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

Simplificacin: se trata de reducir los modelos para quedarse


nicamente con los ms necesarios.

18/01/2014

Objetivos fundamentales de la
normalizacin

Organismos Internacionales de
Normalizacin

ANSI - Instituto Nacional Estadounidense de Estndares.

IETF -Internet Engineering Task Force.


IEEE corresponde a las siglas de (Institute of Electrical and Electronics
Engineers) en espaol Instituto de Ingenieros Elctricos y Electrnicos.
Algunos estndares son:

VHDL
POSIX
IEEE 1394
IEEE 488
IEEE 802
IEEE 802.11
IEEE 754

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

ISO - La Organizacin Internacional de Normalizacin o ISO.

18/01/2014

ITU - Unin Internacional de Telecomunicaciones (engloba CCITT y CCIR).

Disear y describir protocolos.


Verificar que el protocolo es correcto.

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

Se requiere de mtodos convincentes y efectivos


para:

18/01/2014

Estandarizacin de Protocolos

SDL
Lotos
Estelle

tres

lenguajes

para

la

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

Se han desarrollado
especificacin de protocolos:

18/01/2014

FDT (Tcnicas de Descripcin Formal)

10

Lotos (Language of Temporal Ordering Specifications).


Desarrollado por ISO (1989). Especificacin formal del
comportamiento de los procesos desde un alto nivel de
abstraccin.
Estelle. Desarrollado por ISO (1989). Basado en una extensin
de concepto de mquina de estado finito.

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

SDL (Specification and Description Language). Desarrollado


por el CCITT (1987). Inicialmente creado para la especificacin
y el diseo de sistemas de telecomunicaciones.

18/01/2014

FDT

11

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

Cmo disear un conjunto de reglas para el


intercambio de informacin que sean mnimas,
consistentes, completas e implementadas de manera
eficiente?

18/01/2014

Identificacin del problema

12

Todo protocolo debe ser considerado como incorrecto,


hasta que se demuestre lo contrario.

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

Durante el diseo del protocolo se seguir un


conjunto de reglas autoimpuestas que ayudarn a evitar
posteriores problemas. Adems, se seguir la siguiente
poltica:

18/01/2014

Disciplina de diseo

13

Un modelo de validacin:
Expresa las caractersticas esenciales del protocolo.
No entra en detalles de implementacin.

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

Los mtodos de diseo que se usarn estn basados en el


modelo de validacin.

18/01/2014

Herramientas de diseo

14

PROMELA (Protocol Meta Language).


Desarrollado por AT&T Bell Labs. Gerard Holzmann.

18/01/2014
Protocolos de Comunicacin de
Datos/CARR/8 Semestre

Herramientas automatizadas
interpretan estos modelos de
validacin y reportan deficiencias de
diseo

15

Ejercicios:
Escriba el nombre de cinco protocolos de comunicacin.
Describa las principales caractersticas del TCP/IP.
En qu consisten las Tcnicas de Descripcin Formal?
Cules organizaciones
protocolos?

definen

la

estandarizacin

de

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

18/01/2014

Cul es el propsito del diseo de protocolos?

16

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

18/01/2014

Unidad II
Estructura de Protocolos

17

Regresar a Contenido

Diseo de un conjunto incompleto de reglas.


Diseo de reglas contradictorias.

La ambicin de idea es hacer que el conjunto de reglas


sea tanto completo como consistente.

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

Durante el diseo de protocolos, dos tipos de errores son


difciles de evitar:

18/01/2014

Introduccin

18

Los Cinco Elementos de un Protocolo

El ltimo elemento es el ms difcil de disear y de verificar; nos


dedicaremos principalmente al diseo y validacin del conjunto de
reglas no ambiguas.

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

El servicio provisto por el protocolo.


Las suposiciones hechas acerca del medio ambiente en el cual el
protocolo ser ejecutado.
El vocabulario de mensajes usados para implementar el protocolo.
La codificacin (formato) de cada mensaje del vocabulario.
Las reglas de intercambio de mensajes.

18/01/2014

La especificacin de un protocolo, consiste de las siguientes partes:

19

El objetivo del protocolo es la transferencia de archivos texto


como consecuencia de caracteres a travs de una lnea
telefnica, con deteccin y correccin de errores.
Transferencia full-duplex.

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

Especificacin del Servicio

18/01/2014

Ejemplo de la especificacin de un
Protocolo

20

Cada mensaje contiene dos partes:


1. Informacin
2. Control aplicado al trfico en el canal inverso.

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

Reconocimientos positivos y negativos para el trfico de A a B son


enviados por el canal de B a A y viceversa.

18/01/2014

Ejemplo de la especificacin de un
Protocolo

21

Supuestos acerca del Medio Ambiente

El canal de transmisin puede distorsionar los mensajes de


manera arbitraria.
El canal de transmisin no pierde, duplica, inserta o reordena
mensajes.
Se asume que un mdulo de nivel inferior es el encargado de
detectar mensajes alterados y reemplazarlos por mensajes no
alterados de tipo err.

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

Los usuarios simplemente realizan una peticin para la


transferencia de archivo y esperan su terminacin.

18/01/2014

Por lo menos dos usuarios del servicio de transferencia de


archivos y un canal de transmisin.

22

Vocabulario del Protocolo

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

ack. Mensaje combinado con un reconocimiento positivo.


nack. Mensaje combinado con un reconocimiento negativo.
err. Mensaje con error de transmisin.

18/01/2014

Define tres tipos de mensajes:

23

V = {ack, err, nak}

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

De manera breve, el vocabulario puede ser expresado como un


conjunto:

18/01/2014

Vocabulario del Protocolo

24

Campo de control que identifica el tipo de mensaje.


Campo de datos conteniendo el carcter.

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

Cada mensaje consiste de dos campos de tamao fijo:

18/01/2014

Formato de los Mensajes

25

{control tag, data}

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

La forma general de cada mensaje puede ser


representada de manera simblica como una simple
estructura de dos campos:

18/01/2014

Formato de los Mensajes

26

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

enum control {ack, nak, err}


struct message{
enum control tag;
unsigned char data;
};

18/01/2014

En lenguaje C, de manera ms
detallada, se tendra:

27

Si el mensaje recibido no contiene errores, el siguiente


mensaje que ser enviado por el canal en sentido
inverso, contendr un reconocimiento positivo; si el
mensaje recibido tuvo error, entonces contendr un
reconocimiento negativo.
Si el mensaje recibido contiene un reconocimiento
negativo o es un error, entonces retransmitir el mensaje
viejo; en otro caso, generar un nuevo mensaje para ser
transmitido.

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

De manera informal, las reglas del protocolo son:

18/01/2014

Conjunto de Reglas

28

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

Diagramas de transicin de estados.


Diagramas de flujo.
Expresiones algebraicas, etc.

18/01/2014

Para formalizar estas reglas, se puede


hacer uso de las siguientes tcnicas:

29

Servicio y Medio Ambiente

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

18/01/2014

Modelo OSI de ISO (Introduccin)

30

El modelo de referencia OSI (Open Systems


Interconnection) surgi en el ao de 1983 y fue el resultado del
trabajo de la ISO para la estandarizacin internacional de los
protocolos de comunicacin.

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

La necesidad de intercambiar informacin entre sistemas


heterogneos, es decir, entre sistemas cuyas tecnologas son muy
diferentes entre s, llev a la ISO (International Standard
Organization) a buscar la manera de regular dicho intercambio de
informacin.

18/01/2014

Servicio y Medio Ambiente

31

Cada una de las capas desempea funciones bien definidas.

Los servicios proporcionados por cada nivel son utilizados por el


nivel superior.

Existe una comunicacin virtual entre dos mismas capas, de


manera horizontal.

Existe una comunicacin vertical entre una capa de nivel N y la


capa de nivel N + 1.

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

El modelo OSI consta de siete capas o niveles.


Las caractersticas generales de las capas son las siguientes:

18/01/2014

Modelo OSI

32

Aplicacin

Provee servicios generales relacionados con


aplicaciones (transferencia de archivos)

N6

Presentacin

Formato de datos (ASCII)

N5

Sesin

Coordina la interaccin en la sesin de usuarios

N4

Transporte

Provee una transmisin de datos confiable punto a


punto

N3

Red

Enruta unidades de informacin

N2

Enlace de datos

Provee intercambio de datos entre dispositivos en el


mismo medio

N1

Fsico

Transmite un flujo de bits a travs del medio fsico

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

N7

18/01/2014

Arquitectura de red basada en el


modelo OSI

33

Presentacin

TCP/IP
Aplicacin

Sesin

Transporte
Red

Transporte
Internet

Enlace de Datos
Fsica

Red

PROTOCOLOS
HTTP, Telnet, FTP,
LPD, SNMP, TFTP,
SMTP, NFS, X
Windows, JPEG,
MPEG
TCP, UDP
ICMP, BOOTP, ARP,
RARP, IP, IPX
Ethernet, FastEthernet, Token Ring,
FDDI, HDLC, FrameRelay

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

OSI
Aplicacin

18/01/2014

Comparativo entre el Modelo OSI y


el Modelo TCP/IP

34

Orientado a bit.

Orientado a caracteres.

Orientado a un nmero total de bytes.

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

A nivel ms bajo, se tienen los siguientes


formatos:

18/01/2014

Vocabulario y formato de
protocolos

35

El protocolo transmite los datos como una


secuencia de bits crudos.

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

18/01/2014

- Orientado a bit

36

El nmero de bits por carcter es fijado a n bits


(normalmente 7 u 8).

La transmisin se lleva a cabo en grupos de n bits.

Por ejemplo, cdigo ASCII.

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

18/01/2014

- Orientado a carcter

37

No se necesitara una bandera de inicio ni una


bandera de fin.

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

En algn lugar predefinido despus del carcter


de control, se incluye el nmero total de bytes que el
mensaje contiene.

18/01/2014

- Orientado a un nmero total de


bytes

38

format = {header, data, trailer}

header = {type, destination, sequence number, count}

trailer = {checksum, return address}

STX

header

user data

trailer

ETX

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

18/01/2014

Encabezados y colas (headers and


trailers)

39

Prembulo

Dir. destino

Dir. fuente

Tipo trama

Datos

CRC

8 bytes

6 bytes

6 bytes

2 bytes

46-1500 bytes

4 bytes

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

18/01/2014

Trama Ethernet

40

2. Describa las capas del Modelo OSI y sus principales funciones.


3. Escriba un ejemplo de protocolo de Enlace y de Red.
4. Mencione tres protocolos de la capa de Aplicacin.
5. En qu consiste la tcnica de piggybacking?.
6. Cul es el enfoque de formato que utiliza la mayora de protocolos actuales?

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

1. Escriba su ejemplo de especificacin de un protocolo.

18/01/2014

Ejercicios:

7. Explique las Diez Reglas de Diseo de Protocolos.


41

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

18/01/2014

Unidad III
Control de Error

42

Regresar a Contenido

Enlace fibra ptica: 10-9. En promedio 1 en 109 bits


transmitidos.
Cable coaxial: 10-6.
Lnea telefnica: 10-4... 10-5.

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

Existen diferentes probabilidades de error en los medios de


transmisin guiados o no guiados.

18/01/2014

Control de Error

43

Prob. de error

Tipo de enlace

1 error cada:

9600 bps

10-4

Lnea telefnica

1.04 segs

9600 bps

10-6

Coaxial

104 segs

9600 bps

10-9

Fibra ptica

3303 aos

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

Vel. Transmisin

18/01/2014

Control de Error

44

Insercin
Prdida
Duplicacin
Distorsin
Reordenamiento

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

18/01/2014

Tipos de Errores de Transmisin

45

Al mensaje original (palabra cdigo) se le agrega una


secuencia de bits.

Si no hay error, el mtodo garantiza que la palabra cdigo


junto con la secuencia de bits agregada, es divisible por un
factor dado.

El factor utilizado determina el rango de errores de


transmisin que pueden ser detectados.

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

18/01/2014

Cyclic Redundancy Check (CRC)

46

0110110
0 x6 + 1 x5 + 1 x4 + 0 x3 + 1 x2 + 1 x + 0
x5 + x4 + x2 + x
Para usar este mtodo emisor y receptor acuerdan
utilizar un polinomio G(x), que es el polinomio generador. La
informacin redundante generada por este polinomio se
denomina checksum.

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

El mtodo est basado en asimilar las secuencias de bit


con polinomios de coeficientes 0 o 1.

18/01/2014

Cyclic Redundancy Check


(CRC)

47

M(x) = polinomio que representa los bits de datos.


T(x) = trama de datos + checksum.

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

El clculo del checksum se lleva a cabo de forma que el


polinomio que representa la trama de datos + checksum sea
divisible por G(x).

18/01/2014

Cyclic Redundancy Check


(CRC)

48

Ejemplo:

G(x) = x5 + x4 + x2 + 1

M(x) = x9 + x7 + x3 + x2 + 1

r=5

101000110100000

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

1.- Aadir r bits 0 al final de los datos xr M(x)


r = grado (G(x))

18/01/2014

Algoritmo para el clculo del checksum:

49

Algoritmo para el clculo del checksum:

110101
0111011
110101
00111010
110101
00111110
110101
00101100
110101
0110010
110101
0001110

|110101
1101010110

cociente Q(x) y resto R(x)

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

101000110100000

18/01/2014

2.- Dividir xr M(x) entre G(x) utilizando aritmtica en mdulo 2.

50

Algoritmo para el clculo del checksum:

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

101000110100000
1110
101000110101110

18/01/2014

3.- Restar xr M(x) - R(x) = T(x) que es lo que se transmite

51

Aunque si R(x) = 0 no se puede asegurar que no tenga


errores ya que pueden haberse producido muchos errores en T(x)
y que al dividirlo por G(x) de 0.
Condiciones que debe cumplir G(x) para detectar errores de 1
bit:
T(x) / G(x) = T(x) + E(x) / G(x) = T(x) / G(x) + E(x) / G(x)

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

4.- Receptor:
T(x) / G(x) R(x)
Si R(x) = 0 la trama de datos recibida se da como buena
Si R(x) 0 la trama de datos tendr errores

18/01/2014

Algoritmo para el clculo del checksum:

52

Algoritmo para el clculo del checksum:


i = posicin del error.

Para detectar errores de un bit, G(x) deber tener ms de un


trmino.
Qu debe cumplir G(x) para detectar un nmero impar de
errores?
Si E(x) tiene un nmero impar de trminos, no tiene (x+1)
como factor entonces, si G(x) tiene a (x+1) como factor, E(x)
no es divisible por G(x)

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

E(x) = xi

18/01/2014

Si slo se ha producido un error en la transmisin:

53

CRC-12

CRC-16

G(x) = x16 + x15 + x2 + 1

CRC-CCITT

G(x) = x16 + x12 + x5 + 1

G(x) = x12 + x11 + x3 + x2 + x + 1

Los polinomios de grado 16 son capaces de detectar rfagas de


error de hasta 16 bits.

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

18/01/2014

Polinomios ms utilizados:

54

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

18/01/2014

Unidad IV
Control de Flujo

55

Regresar a Contenido

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

El Control de flujo consiste en ajustar la


tasa a la cual el transmisor enva datos con la
tasa a la cual el receptor puede procesar.

18/01/2014

Control de Flujo

56

Mensaje suspend perdido => overflow.


Mensaje resume perdido => procesos bloqueados.

Se requiere solucionar los siguientes problemas:


Proteger contra problemas de overflow
Proteger contra la prdida de mensajes

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

El funcionamiento correcto del protocolo, depende de las


propiedades de transmisin del canal.

18/01/2014

Protocolo x-on / x-off

57

El emisor, despus de enviar un paquete, activa un


temporizador: si ste expira antes de la llegada del
reconocimiento, el emisor retransmite el paquete.

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

El emisor enva un paquete y espera un mensaje de


reconocimiento de parte del receptor, antes de enviar el
siguiente paquete.

18/01/2014

Protocolo de Reconocimiento
Positivo con Retransmisin

58

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

Ms eficiente
Aprovechamiento del ancho de banda de la red.
El emisor transmite un nmero determinado de paquetes
antes de esperar el reconocimiento.
Este nmero est limitado por el tamao de la ventana.
Un tamao de ventana igual a 1 corresponde al protocolo de
reconocimiento positivo.
Conforme el tamao de ventana aumenta es posible eliminar
el tiempo de ocio de la red completamente. En el estado de
equilibrio, el emisor transmite paquetes a la misma tasa con la
que la red los puede procesar, lo que implica que se obtiene
un mximo desempeo de la red.

18/01/2014

Protocolos de Ventana Deslizante

59

Van a haber tramas de datos y reconocimiento mezcladas en


el canal, para diferenciarlas se usar el campo clase.
Se usar una tcnica de reconocimiento llamada
PIGGIBACKING, consiste en enviar el reconocimiento junto a la
trama de datos.

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

La transmisin ya no es simplex sino que se transmite


informacin en ambos sentidos (duplex o semi-duplex).

18/01/2014

Otras consideraciones:

60

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

Si no hay trfico de sentido inverso. Se


deber
habilitar
un
temporizador
para esperar un cierto tiempo si hay datos
para enviar, en caso contrario se enviar una
trama de reconocimiento.

18/01/2014

Problema:

61

Permiten el envo de varias tramas antes de que las estaciones


se queden bloqueadas esperando el reconocimiento.
Las estaciones que utilizan estos protocolos mantienen una
ventana de emisin (lista con los nmeros de tramas enviadas
por esa estacin y que estn pendientes de reconocimiento) y
una de recepcin.

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

Todas las tramas estn identificadas por un nmero de


secuencia entre 0 y 2n-1.

18/01/2014

Ventajas: al haber menos tramas se


realizar un mejor uso del canal.

62

La ventana de recepcin contiene una lista con los nmeros de


secuencia de las tramas que puede aceptar la mquina
receptora.

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

El hecho de enviar varias tramas antes de que se bloquee la


estacin implica el tener unos buffers con las tramas enviadas
por si se deben volver a enviar, esto aade cierta complejidad
a los protocolos.

18/01/2014

Ventajas

63

Cules son los diferentes tipos de errores de transmisin?


Cmo se detectan errores de transmisin conociendo los
datos recibidos y el polinomio CRC utilizado?
Cmo evitar o reducir la congestin en un canal de
comunicacin?

En qu casos se deben utilizar protocolos de ventana


deslizante?

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

Cmo determinar cada cunto tiempo ocurre un error en los


medios de transmisin?

18/01/2014

Ejercicios:

64

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

18/01/2014

Unidad V
Modelos de Validacin

65

Regresar a Contenido

Un modelo de validacin define las


interacciones de procesos en un sistema
distribuido.

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

18/01/2014

Modelos de Validacin

66

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

Procesos
Canales
Variables

18/01/2014

Se definen los modelos de validacin


en trminos de tres tipos de objetos:

67

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

Es un lenguaje usado para describir modelos


de validacin. PROMELA fue creado en 1980 y
es un subconjunto de C y OCAN.

18/01/2014

PROMELA (Protocol Meta Language).

68

Los enunciados son ejecutables o bloqueantes.


El estado ejecutable de un enunciado representa el medio
principal de sincronizacin.
Un proceso puede esperar a que un evento suceda hasta que
un enunciado se vuelva ejecutable.

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

En PROMELA no hay diferencias entre condiciones y


enunciados.

18/01/2014

Enunciados Ejecutables

69

En PROMELA se tiene el mismo efecto con el siguiente


enunciado:
(a == b)

La condicin es ejecutada slo si es verdadera.


Si la condicin es falsa, la ejecucin es bloqueada hasta que la
condicin sea verdadera.
La asignacin a variables siempre es ejecutable.

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

En lugar de escribir:
while (a != b) skip /* wait for == b */

18/01/2014

Por ejemplo:

70

Una variable puede ser de alguno de los siguientes tipos


predefinidos: bit, bool, byte, short, int, chan.
Un canal es un objeto que puede almacenar un conjunto de
valores agrupados en estructuras definidas por el usuario.

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

Las variables pueden ser globales o locales a un proceso.

18/01/2014

Variables y Tipos de Datos

71

18/01/2014

byte state [N]


Protocolos de Comunicacin de
Datos/CARR/8 Semestre

Arreglos

72

** ';' y '->' son separadores equivalentes de enunciados.


Ejemplo:
byte state = 2;
proctype A () { (state == 1) -> state = 3 }
proctype B () { state = state - 1 }

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

proctype A() {
byte state;
state = 3
}

18/01/2014

Procesos

73

La especificacin ms pequea posible en PROMELA es:


init { skip }
Otros ejemplos,
init { printf ( "Hola, crayolas! \n" ) }

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

Equivalente a la funcin main( ) de lenguaje C.

18/01/2014

Proceso init

74

Para instanciar los procesos A y B:

En ste caso, el proceso init termina despus de haber lanzado el


segundo proceso.
run instancia una copia del proceso dado como operando, no espera
a que el proceso termine.
run es un enunciado ejecutable y regresa un nmero positivo (pid)
slo si el proceso pudo ser instanciado.
Es no ejecutable y regresa 0 si el proceso no pudo ser instanciado.

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

El proceso init lanza dos procesos, que sern ejecutados de manera


concurrente.

18/01/2014

init { run A (); run B () }

75

Slo valores de cualquiera de los tipos base, pueden ser pasados como
parmetros.
No es posible pasar arreglos ni procesos.
run puede ser usado en cualquier proceso para crear nuevos procesos.
Un proceso muere cuando termina, es decir, cuando alcanza el final de
su cuerpo, siempre y cuando todos sus procesos hijos hayan terminado.

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

proctype A (byte state; short set) {


( state == 1) -> state = set }
init { run A (1, 3) }

18/01/2014

Paso de Parmetros a un Nuevo


Proceso

76

Pueden ser locales o globales.


chan a, b; chan c [3]
Define a y b como identificadores de canal; c como arreglo de
identificadores de canal.

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

Usados para modelar la transferencia de informacin entre


procesos.

18/01/2014

Canales de comunicacin

77

2. chan c [3] = [4] of { byte }

3. chan qname = [2] of { byte, int, chan }

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

1. chan a = [16] of { short }


El canal puede almacenar hasta 16 mensajes de tipo short.

18/01/2014

Declaracin de un canal con un


inicializador

78

Enva el valor de la expresin expr a travs del


canal qname; lo coloca en el buffer asociado al
canal qname (poltica FIFO).

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

qname ! expr

18/01/2014

Envo de Mensajes

79

Recepcin de Mensajes

int

chan

byte

int

Recupera el primer mensaje en el


buffer asociado al canal qname y almacena su
valor en la variable msg.

chan

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

byte

18/01/2014

qname ? msg

80

qname ? var1, var2, var3

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

qname ! expr1, expr2, expr3

18/01/2014

Envo y Recepcin de Mensajes


estructurados

81

Estamos definiendo un tamao de buffer para el canal port


igual a 0, por lo que no es posible almacenar mensajes.
La comunicacin es sncrona y binaria; slo dos procesos, un
transmisor y otro receptor son sincronizados.

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

chan port = [0] of { byte }

18/01/2014

Comunicacin Sncrona
(Rendezvous)

82

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

Seleccin case.
Repeticin.
Jumps incondicionales.

18/01/2014

Control de Flujo

83

Seleccin Case

Slo una secuencia de enunciados (opcin1 u opcin2) es ejecutada.


Una secuencia es seleccionada slo si su primer enunciado es ejecutable.
El primer enunciado es llamado guardia.
Si ms de un guardia es ejecutable, una sola secuencia de las asociadas a
dichos guardias, es seleccionada de manera aleatoria.
Si ningn guardia es ejecutable, el proceso se bloquea hasta que por lo
menos uno de ellos pueda ser seleccionado.

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

:: (a != b) -> opcion1
:: (a == b) -> opcion2
fi

18/01/2014

if

84

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

#define a 1
#define b 2
chan ch = [1] of { byte }
proctype A () { ch ! a }
proctype B () { ch ! b }
proctype C () {
if
:: ch ? a
:: ch ? b
fi
}
init { atomic { run A(); run B(); run C () }

18/01/2014

Ejemplo 1:

85

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

byte count;
proctype counter() {
if
:: count = count + 1
:: count = count - 1
fi
}

18/01/2014

Ejemplo 2:

86

Repeticin

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

byte count;
proctype counter() {
do
:: count = count + 1
:: count = count - 1
:: (count == 0) -> break
od
}

18/01/2014

El siguiente ciclo incrementa o decrementa la variable de manera


aleatoria:

El ciclo puede ser roto con el enunciado break cuando count es igual
a 0.
87

Puede no terminar ya que las otras dos opciones son seleccionables.

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

proctype counter() {
do
:: (count != 0) ->
if
:: count = count + 1
:: count = count - 1
fi
:: (count == 0) -> break
od
}

18/01/2014

Repeticin

88

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

proctype Euclid (int x, y) {


do
:: (x > y) -> x = x - y
:: (x < y) -> x = y - x
:: (x == y) -> goto done
od
done:
skip
}

18/01/2014

Saltos incondicionales (jumps)

89

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

proctype fact (int n; chan p) {


int result;
if
:: (n <= 1) p ! 1
:: (n >= 2) ->
chan child = [1] of { int };
run fact (n - 1, child);
child ? result;
p ! n * result
fi
}
init
{ int result;
chan child = [1] of { int };
run fact (3, child);
child ? result;
printf ("Resultado: %d \n", result)
}

18/01/2014

Funciones, procedimientos y
recursin

90

Equivalente a:
#define ack 1
#define nack 2
#define err 3
#define next 4
#define accept 5

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

mtype = {ack, nak, err, next, accept}

18/01/2014

Definicin de los Tipos de


Mensaje

91

timeout es una condicin predefinida que se vuelve


verdadera slo cuando ningn otro enunciado en el
sistema distribuido es ejecutable.
No modela errores causados por la expiracin
prematura del temporizador en un sistema real.

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

proctype watchdog () {
do
:: timeout -> guard ! reset
od
}

18/01/2014

Temporizadores

92

Asignacin y condicin.
Seleccin y repeticin.
send y receive.
goto y break.
timeout.
run y len no son enunciados, sino operadores unarios que
pueden ser usados en asignaciones y condiciones.
skip es un seudo enunciado.

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

18/01/2014

Tipos de Enunciados

93

Ejercicios:

A qu se refiere el trmino Rendezvous?


Cmo realiza PROMELA el control de flujo?
Cmo implementa un temporizador?

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

Cul es el equivalente a la funcin main() de C en el lenguaje


PROMELA?

18/01/2014

Cules son los tres tipos de objetos que definen los modelos de
validacin?

Cmo se definen en PROMELA los tipos de mensaje?


Cules son los tipos bsicos de enunciados definidos en PROMELA?

94

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

18/01/2014

Unidad VI
Criterios de correccin

95

Regresar a Contenido

Criterios de Correccin

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

18/01/2014

El objetivo principal del lenguaje PROMELA es


validar, y no implementar.

96

Validacin

Necesitamos de un formalismo para especificar los criterios de


correccin.
Entre ms expresiva sea nuestra notacin, menos til ser en la
prctica.
Por lo tanto, los criterios de correccin que pueden ser
especificados en PROMELA han sido escogidos cuidadosamente.

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

Un diseo puede ser considerado correcto slo para un conjunto


especfico de criterios de correccin.

18/01/2014

Para validar un diseo, es necesario especificar de manera clara y


precisa lo que entendemos por un diseo correcto.

97

Un comportamiento es: Inevitable o imposible.


Los criterios de correccin que pueden ser expresados en
PROMELA definen comportamientos considerados como
imposibles.

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

Formalizamos los criterios de correccin como


afirmaciones sobre el comportamiento de un modelo de
validacin en PROMELA.

18/01/2014

Razonamiento sobre el
comportamiento

98

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

Para afirmar que un comportamiento


es inevitable, por ejemplo, podemos estipular
que todos los comportamientos posibles que
nos alejan de l, son imposibles.

18/01/2014

Justificacin

99

Una secuencia de ejecucin es simplemente un conjunto finito


de estados ordenados.
Un estado est dado por el valor de todas las variables locales
y globales, puntos de control de flujo de los procesos en
ejecucin y por el contenido de todos los mensajes de
comunicacin.

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

El comportamiento de un modelo de validacin se define


como el conjunto de todas las secuencias de ejecucin
posibles.

18/01/2014

Definiciones en PROMELA

100

El estado inicial de la secuencia, por ejemplo, el estado 1, es el


estado inicial de M, con todas las variables inicializadas en 0,
todos los canales de comunicacin vacos y slo con el
proceso init activo.

Si M es colocado en el estado i, existe por lo menos un


enunciado ejecutable que lo llevar al estado i + 1.

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

Un conjunto finito de estados ordenados, es


considerado vlido para un modelo M dado si satisface
los siguientes criterios:

18/01/2014

Conjunto finito de estados

101

Una secuencia es cclica si todos los estados menos el ltimo son


diferentes, y este ltimo es igual a alguno de los estados
precedentes.
Secuencias cclicas definen ejecuciones potencialmente infinitas.
Las secuencias terminales y cclicas que pueden ser generadas al
ejecutar un modelo en PROMELA, definen juntas el comportamiento
del sistema para ese modelo.
La unin de todos los estados incluidos en el comportamiento del
sistema, define el conjunto de estados alcanzables del modelo.

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

Una secuencia es terminal si ningn estado aparece ms de una vez


en la secuencia y el modelo M no contiene enunciados ejecutables
una vez alcanzado el ltimo estado de la secuencia.

18/01/2014

Secuencias Especiales: Terminales


y Cclicas

102

assert ( condicin)

Invariantes del sistema:


proctype monitor () { assert (invariante) }

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

Aserciones:

18/01/2014

Criterios de validacin

103

Ejemplo: Semforos Dijkstra

proctype user () {
semaf ? p;
/* Seccin crtica */
semaf ! v
/* Seccin no crtica */
}
init {
atomic {
run dijkstra();
run user(); run user(); run user();
}
}

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

chan semaf = [0] of { bit }


proctype dijkstra () {
do
:: semaf ! p -> semaf ? v
od
}

18/01/2014

#define p 0
#define v 1

104

Se puede modificar el proceso user de tal manera


que la variable global count contenga el nmero
de procesos que se encuentran en su seccin
crtica como se muestra a continuacin.

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

El semforo garantiza acceso exclusivo a la regin


crtica de cada proceso user.

18/01/2014

Ejemplo: Semforos Dijkstra

105

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

byte count;
proctype user() {
semaf ? p
count = count + 1; /* Seccin crtica */
count = count - 1;
semaf ! v
/* Seccin no crtica */
}

18/01/2014

Ejemplo: Semforos Dijkstra


(sesin crtica)

106

proctype monitor () {
assert ( count == 0 || count == 1 )
}
init {
atomic {
run dijkstra(); run monitor();
run user(); run user(); run user();
}
}

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

La siguiente invariante del sistema puede ser


utilizada para verificar el funcionamiento correcto del
semforo:

18/01/2014

Verificacin del funcionamiento del semforo

107

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

proctype dijkstra () {
end: do
:: semaf ! p -> semaf ? v
od
}

18/01/2014

Deadlocks:

108

Las dos propiedades se basan en el marcado explcito


de estados en el modelo de validacin.

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

Existen dos propiedades sobre las secuencias cclicas


correspondientes a dos tipos estndares de criterios de
correccin.

18/01/2014

Ciclos errneos:

109

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

proctype dijkstra () {
end : do
:: semaf ! p ->
progress : semaf ? v
od
}

18/01/2014

Ciclos sin progresin:

110

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

proctype dijkstra () {
end : do
:: semaf ! p ->
accept : semaf ? v
od
}

18/01/2014

Livelocks:

111

18/01/2014

never {
do
:: skip
od -> P -> ! Q
}
Protocolos de Comunicacin de
Datos/CARR/8 Semestre

Exigencias temporales

112

Conclusiones

Es prcticamente imposible verificar manualmente requerimientos


de correccin.
El comportamiento de inclusive protocolos simples es bastante
complejo.
Herramientas automatizadas como PROMELA son imprescindibles,
no slo para expresar los requerimientos de correccin del diseo
de un protocolo, sino tambin para validarlos de manera confiable.

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

Estas directivas estn relacionadas con la especificacin de los


criterior de correccin para un modelo:
Enunciados
de asercin, Etiquetas end, progress y accept, Exigencia
temporal never.

18/01/2014

Se ha introducido el resto de las directivas de validacin PROMELA.

113

Ejercicios:

Cules son las dos propiedades sobre las secuencias cclicas


correspondientes a los dos tipos estndares de criterios de
correccin?
Cmo se hace referencia a instancias de procesos en
PROMELA?
Cmo se hace referencia a las variables locales de procesos?

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

Explique los ejemplos de Deadlocks y Livelocks?

18/01/2014

Explique los principales criterios de validacin.

114

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

Se necesita verificar la consistencia lgica de una


especificacin formal. La especificacin es formalizada como un
modelo de validacin en PROMELA, por ejemplo.

18/01/2014

Validacin de Protocolos

115

Mtodo Manual de Prueba

Cada mensaje transmitido lleva un nmero de secuencia, incialmente igual a 1 e


incrementado en 1 despus de cada transmisin.
El receptor reconoce el mensaje recibido mediante la transmisin del nmero de
secuencia a travs de un canal similar.

El receptor almacena el nmero de secuencia ms grande que ha recibido


correctamente en su variable local B.
El emisor guarda en la variable A el nmero de secuencia ms grande que R ha
recibido correctamente.
Inicialmente, A = B = 0.

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

El proceso S enva mensajes al proceso R a travs de un medio no confiable de


transmisin.

18/01/2014

Considere un sistema simple de transmisin con un transmisor S y un receptor R.

116

En PROMELA:

proctype R () {
int B = 0, b;
do
:: S ! ack (B) /* R1 */
:: atomic {
/* R2 */
R ? mesg (b);
B = fct (b, B);
}
od
}

fct (b, B) memoriza la recepcin


del mensaje con nmero de
secuencia igual a b y regresa un
valor X B para el cual garantiza
que todos los mensajes con
nmero de secuencia menor o
igual a X
fueron grabados
previamente por fct ().

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

proctype S () {
int A = 0;
do
:: R ! mesg (A + rand () % W) /* S1 */
:: S ? ack(A) /* S2 */
od
}

18/01/2014

#define W cte_positiva
chan R = [W] of { int }
chan S = [W] of { bit }
mtype = { mesg, ack }

117

Discusin sobre los Mtodos Manuales

Normalmente hay menos transiciones de estado que estados del


sistema alcanzables.
Sin embargo, puede requerir demasiado esfuerzo verificar que una
transicin no puede invalidar ninguna de las invariantes del sistema.

Lo anterior implica que es un mtodo ineficiente para sistemas


grandes, por lo cual se requieren herramientas automatizadas para
la construccin de pruebas.

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

Contrariamente a los mtodos usados en sistemas de validacin


automatizados, el mtodo manual no se basa en la inspeccin de
estados del sistema alcanzables, sino en la inspeccin de
transmisiones de estado.

18/01/2014

Basados en la nocin de estados invariantes.

118

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

18/01/2014

Mtodos de Validacin
Automatizados

119

Existen tres tipos: Bsqueda completa (sistemas con hasta


105 estados), Bsqueda parcial controlada (sistemas con hasta
108 estados), Simulacin aleatoria(sistemas an ms grandes).

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

Este tipo de algoritmos trata de generar e inspeccionar todos


los estados de un sistema distribuido que son alcanzables a
partir de un estado inicial.

18/01/2014

Algoritmos de Anlisis de Estados Alcanzables

120

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

El intrprete SPIN puede ser


utilizado en las tres modalidades:
Simulaciones aleatorias, Bsqueda parcial
y Bsqueda exhaustiva.

18/01/2014

Algoritmos de Anlisis de Estados


Alcanzables

121

Se separan los estados alcanzables y los no alcanzables.


Cada estado alcanzable y toda secuencia de estados
alcanzables pueden ser verificados por un conjunto de
criterios de correccin.
Ejemplos de criterios de correccin: Ausencia de deadlocks,
saturacin de buffers, requerimientos temporales,
invariantes del sistema, etc.

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

Se lleva a cabo un anlisis de todos los estados alcanzables


y los no alcanzables.

18/01/2014

Mtodo 1: Bsqueda completa o


exhaustiva del espacio de estados

122

analyze() {
/* Bsqueda exhaustiva */
if ( W is empty ) return;
q = last element from W;
add q to A;
if (q == error_state)
report_error();
else
{ for each succesor state s of q
if (s is not in A or W){
add s to W;
analyze();
}
}
delete q from W;
}

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

start(){
W = { initial_state }; /* estados por analizar */
A = { };
/* estados previamente analizados */
analyze();
}

18/01/2014

ALGORITMO DE BSQUEDA COMPLETA DEL


ESPACIO DE ESTADOS:

123

Considere un protocolo con dos procesos, cada uno con 100


posibles estados, un canal de comunicacin y 5 variables
locales. Ambos canales estn limitados a 5 entradas cada uno,
en donde el nmero de mensajes diferentes a intercambiar es
10. Los valores distintos para las variables locales est limitada
a 10.
Bsqueda exhaustiva: sistemas con hasta 105
alcanzables.

estados

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

El problema principal consiste en la capacidad de memoria


disponible as como en la velocidad de procesamiento.

18/01/2014

Discusin sobre el Mtodo de


Bsqueda Exhaustiva

124

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

Basada en la premisa de que en la mayora de los casos


prcticos, el nmero mximo de estados que pueden ser
analizados, A, es slo una fraccin del nmero total de los
estados alcanzables R.

18/01/2014

Mtodo 2: Bsqueda Parcial


Controlada

125

2. Seleccionar los A estados del conjunto completo de estados


alcanzables R, de tal manera que la mayora de las
funcionalidades del protocolo sean probadas.
3.

Seleccionar los A estados de manera que la calidad de


bsqueda, como la probabilidad de encontrar algn error
dado, sea mejor que la cobertura A/R.

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

1. Analizar exactamente A estados.

18/01/2014

Una bsqueda parcial controlada


tiene los siguientes objetivos:

126

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

analyze() {
/* Bsqueda parcial controlada */
if ( W is empty ) return;
q = last element from W;
add q to A;
if (q == error_state)
report_error();
else
{ for some succesor state s of q
if (s is not in A or W){
add s to W;
analyze();
}
}
delete q from W;
}

18/01/2014

Algoritmo de bsqueda parcial


controlada

127

Lmite de profundidad,
Bsqueda dispersa,
Bsqueda probabilstica,
Orden parcial,
Seleccin aleatoria.

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

La seleccin de los estados sucesores puede ser hecha


basada en una heurstica para favorecer ejecuciones que
revelen, con una probabilidad alta, errores de diseo.

18/01/2014

Mtodos para establecer criterios


de seleccin

128

- Bsqueda probabilstica: Los estados son analizados,


segn su probabilidad de ocurrencia, en orden
decreciente.
Las transiciones del sistema son
etiquetadas con una alta o baja probabilidad de
ocurrencia, lo cual sirve como criterio de seleccin.

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

- Lmite de profundidad: Se establece un lmite en la


longitud de las secuencias que sern analizadas. Limita
la bsqueda a un subconjunto representativo de
comportamientos.

18/01/2014

Mtodos para establecer criterios


de seleccin

129

- Seleccin aleatoria: No se realiza ningn esfuerzo para


predecir los estados del sistema en los cuales se encontrarn
los errores ms probables. Este mtodo es el ms sencillo de
implementar y el que produce una bsqueda con la ms alta
calidad.

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

- Orden parcial: Los procesos son clasificados en procesos de


alta y baja prioridad. Una transicin perteneciente a un
proceso de alta prioridad es favorecida a una transicin de un
proceso de baja prioridad.

18/01/2014

Mtodos usados para establecer los


criterios de seleccin:

130

A pesar de que estos mtodos reducen el nmero de estados


del sistema analizados, estos estn limitados ya en la prctica
a sistemas con hasta 108 estados.
Corolario de la Ley de Murphy:

Los errores se esconden muy probablemente en donde el


diseador o el validador han decidido no buscar.

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

Las primeras tres tcnicas para controlar la bsqueda parcial


tienen el siguiente problema en comn: tratan de predecir
dnde pueden ser encontrados los errores del protocolo.

18/01/2014

Discusin sobre los Mtodos de


Bsqueda Parcial Controlada

131

El algoritmo descarta los conjuntos A y W y explora el espacio


de estados usando la tcnica de "Baco".

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

Utilizado para sistemas con ms de 108 estados.

18/01/2014

Mtodo 3: Simulaciones Aleatorias

132

}
}
El algoritmo funciona de manera independiente al tamao y
complejidad del sistema modelado (inclusive sistemas de tamao
infinito).

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

analyze() {
/* Simulacin aleatoria */
q = initial state;
while (1){
if (q is error_state){
report_error();
q = initial state;
{ else
q = a succesor state of q;

18/01/2014

Algoritmo de Simulacin aleatoria

133

Recurdese que Spin ofrece las tres modalidades: Bsqueda


exhaustiva, Bsqueda parcial controlada y Simulacin
aleatoria.

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

La implementacin en C del algoritmo forma parte del


intrprete Spin.

18/01/2014

Algoritmo Supertrace:

134

Ejercicios:

Qu es una bsqueda dispersa?


Para qu se utiliza el spin en PROMELA?

Protocolos de Comunicacin de
Datos/CARR/8 Semestre

Cules son los mtodos usados para establecer los criterios


de seleccin?

18/01/2014

Mencione cuatro ejemplos de criterios de correccin.

Qu tcnica de bsqueda utiliza el algoritmo Supertrace?


135

You might also like