Brevísima presentación sobre protocolos

Brevísima presentación sobre protocolos Marzo - 2005 Qué es un protocolo (i) Son cierto tipo de acuerdo sobre el intercambio de información en el sis...
0 downloads 3 Views 126KB Size
Brevísima presentación sobre protocolos Marzo - 2005

Qué es un protocolo (i) Son cierto tipo de acuerdo sobre el intercambio de información en el sistema Se vuelve una norma a seguir para integrar entidades activas en la aplicación usuarios, objetos activos, sistemas, …

Los protocolos son una especie de algoritmos distribuidos. Un protocolo implementa una funció función de comunicació comunicación donde se define un servicio.

1

El protocolo como un lenguaje La definición de un protocolo se asemeja mucho a la definición de un lenguaje: Se define un formato preciso para los mensajes válidos (SINTAXIS) Se definen reglas de procedimiento para el intercambio de datos (pasos a seguir en el intercambio de mensajes) (ALGORITMO/COORDINACION) Definen un vocabulario de mensajes válidos junto a su significado (SEMANTICA)

Elementos de un protocolo La especificación completa de un protocolo contiene: El servicio proporcionado por el protocolo. Los supuestos sobre el entorno en el que se ejecuta el protocolo. El vocabulario de los mensajes empleados en la implementació implementación del protocolo. El formato (codificació (codificación) de cada mensaje del vocabulario. Las reglas de procedimiento que mantienen la consistencia de los intercambios de mensajes.

2

Ciclo de vida de un protocolo Versión inicial de la norma (formal o semiestructurada) Verificación y validación + análisis de prestaciones + prototipado

reelaboración

Versión detallada de la norma (formal o semiestructurada)

Diseño de pruebas

Conjunto de pruebas

reelaboración

Banco de pruebas

Diseñando un protocolo En primer lugar hay que enumerar el vocabulario de primitivas. Ej.: {conecta, envia, error, ack, desconecta}

En segundo lugar, el formato de cada primitiva. Ej. conecta(identidad) conecta(identidad) enví envía(destinatario, a(destinatario, mensaje) error(mensaje), error(mensaje), …

3

Diseñando un protocolo En tercer lugar, las reglas por las que se rigen las secuencias de mensajes. Posiblidades: Hacerlo informalmente en texto. Hacerlo de modo formal mediante: Diagramas de secuencia de tiempo. Diagramas tipo de proceso en SDL (Sistem (Sistem Design Language) Language) Diagramas de estado y/o actividad en UML 2.0 Lenguajes especiales (Promela (Promela , …) …

Reglas del procedimiento Las reglas del procedimiento dicen qué secuencias de mensajes son admisibles en el protocolo. Suelen expresarse como autómatas: guiados por eventos (que disparan transiciones) Los eventos se almacenan en colas de entrada a las acciones.

En SDL se utiliza algo parecido a diagramas de flujo con estados.

4

Ejemplo, el protocolo de Lynch Especificación del servicio:

Un ejemplo no muy lúcido ☺

Transferir archivos como secuencia de caracteres por la lílínea telefó telefónica evitando errores de transmisió transmisión, suponiendo que pueden detectarse todos los errores. Es una transferencia de archivos fullfull-duplex. duplex. Se enví envían reconocimientos positivos y negativos para el trá tráfico de A a B mediante la lílínea de B a A (y viceversa). Cada mensaje tiene dos partes, una de mensaje, y otra de control que se aplica al trá tráfico en el canal contrario.

Ejemplo, el protocolo de Lynch Suposiciones sobre el entorno El entorno consta de dos usuarios del servicio y un canal de transmisió transmisión. Cada usuario pide un archivo y espera la vuelta. Se supone que el canal distorsiona arbitrariamente el mensaje, pero no pierde, inserta, duplica, ni reordena los mensajes. Se parte de la existencia de un mó módulo de nivel inferior que atrapa las distorsiones y reparte mensajes no distorsionados de tipo “err” err”.

5

Ejemplo, el protocolo de Lynch Vocabulario del protocolo V = {ack, err, nak} ack: un mensaje combinado con un reconocimiento positivo nak: un mensaje combinado con un reconocimiento negativo. err: un mensaje con un error de transmisión.

Ejemplo, el protocolo de Lynch Formato del mensaje: Cada mensaje consta de un código de control que identifica el tipo de mensaje y un campo de datos con el código del carácter. (suponemos que ambos son de tamaño fijo. {etiqueta de control (ack, nak, err), datos}

6

Ejemplo, el protocolo de Lynch Reglas de procedimiento: 1.

2.

Si la recepció recepción anterior no tení tenía errores, el pró próximo mensaje en el canal contrario llevará llevará un reconocimiento positivo; si la recepció recepción tuvo errores, llevará llevará un reconocimiento negativo. Si la recepció recepción previa llevaba un reconocimiento negativo, o la recepció recepción anterior fue erró errónea, se retransmite el mensaje anterior; de otro modo, se consigue otro mensaje para una nueva transmisió transmisión.

Ejemplo, el protocolo de Lynch inicio Aquí se espera la recepción (solo puede ir seguido de mensajes)

siguiente(out)

recibe Mensaje reconocido

nak(inp)

Acción interna Mensaje enviado

ack(inp)

err(inp)

siguiente(out) ack(out)

ack(out)

nak(out)

7

Ejemplo, el protocolo de Lynch A

B err

siguiente

siguiente nak(‘z’) acepta(‘z’)

Envía de la ‘a’ a la ‘z’

Envía de la ‘z’ a la ‘a’

ack(‘a’) nack(‘z’)

err err

nak(‘a’)

Sin distorsión Con distorsión acepta(‘a’)

ack(‘z’) Diagrama de secuencia de tiempo

Ejemplo, el protocolo de Lynch Carencias del diseño El enví envío/recepció o/recepción debe ocurrir simultá simultáneamente. El protocolo debe comenzar en puntos diferentes en cada uno de los dos procesos, para que esté estén “en fase” ” . fase Puede comenzarse con un mesaje “err” err”

Se ha omitido: el receptor debe ser capaz de decidir si un dato recibido correctamente (almacenado temporalmente en “inp” inp”), ha de ser almacenado. El protocolo, en resumen, contiene escenarios erró erróneos.

8

emisor

receptor

siguiente(o)

siguiente(o) recibe timer timeout

mesg(o,s)

Dos procesos en un Protocolo asimétrico (cada parte tiene su descripción)

msg(i,a)

recibe

ack(r)

mesg(o,s)

r==s

r==s

false

false true s

1–s

true s

1–s

Protocolo de bit alternante con timeouts

Propiedades de un buen protocolo Simplicidad: El caso de los protocolos de peso ligero. Modularidad: Una jerarquía de funciones. Protocolos bien formados (aunque no sobreespecificados) (completos y sólidos) Robustez Consistencia: Posibles fallos son: Interbloqueos. Interbloqueos. Bloqueos activos. Terminaciones inadecuadas.

9

Suggest Documents