Protocol with Timer

25
Protocol With Timer (Protocolo com Temporizador) Carlos Fran Cleilson Gurgel

description

Slides da apresentação do modelo de rede de petri colorida modelado no CPN Tools.

Transcript of Protocol with Timer

Page 1: Protocol with Timer

Protocol With Timer(Protocolo com Temporizador)

Carlos FranCleilson Gurgel

Page 2: Protocol with Timer

Protocolo com Temporizador

• Desenvolvido e Mantido por:– Kurt Jensen, Universidade de Aarhus, Dinamarca

([email protected]).

Page 3: Protocol with Timer

Protocolo com Temporizador

• É um protocolo baseado em transmissão de dados, onde existe um emissor e um receptor.

• O protocolo é otimista, ele assume que cada pacote será recebido com sucesso e, portanto, imediatamente continua a enviar o pacote que lhe suceda.

• O “Protocol With Timer” possui algumas semelhanças com alguns outros protocolos como é o caso do “Simple Protocol” e do “Timed Protocol”, mas não se engane, cada um tem caracteristicas distintas.

Page 4: Protocol with Timer

Protocolo com Temporizador

• O modelo deste protocolo foi modelado em Redes de Petri Colorida utilizando a ferramenta CPNTools.

Page 5: Protocol with Timer

Protocolo Modelado com CPN

Page 6: Protocol with Timer

Declarações da Rede

• colset INT = int;• colset DATA = string;• colset INTxDATA = product INT * DATA;• var n, k: INT;• var p, str: DATA;• Val stop = “########”;• colset Ten0 = int whith 0..10;• colset Ten1 = int whith 1..10;• var s:Ten0;• var r: Ten1;• fun OK(s:Ten0, r:Ten1) = (r<=s);

Page 7: Protocol with Timer

Lugares

Page 8: Protocol with Timer

Transições

Page 9: Protocol with Timer

Tipo(Colour Set)

Page 10: Protocol with Timer

Marcação Inicial

Page 11: Protocol with Timer
Page 12: Protocol with Timer

Inscrições do Arco

(n,p)

n N+1ks

Page 13: Protocol with Timer

Subdivisão da Rede

EmissorRede ReceptorTemporizador

Page 14: Protocol with Timer

Pacotes a ser enviados

Send

INTxDATA

Page 15: Protocol with Timer

Contadores

Contador Contador

Page 16: Protocol with Timer

Dados Recebidos

DATA

“ ”

Page 17: Protocol with Timer

O Lugar Send• A ligação<n=1,p="Modellin"> está

habilitada.• Quando a ligação ocorre uma

ficha é adicionada no lugar A.• Isto representa que o pacote

(1,"Modellin") é enviado para a rede.

• O pacote não é removido do lugar Send e o contador do lugar NextSend é incrementado indicando qual é o próximo pacote. No nosso caso, ligação<n=2,p=“g and An">

Page 18: Protocol with Timer

Transmit Packet

• Todas ligações habilitadas são:– <n=1,p= "Modellin", s=8, r=...>– onde r 1. .10∈

Page 19: Protocol with Timer

A função “ ok ”

• A função Ok(s,r) checa se r ≤ s.– Para r 1. .8, Ok(s,r)=true. A ficha é ∈

movida de A para B. Isto significa que o pacote é transmitido com sucesso.

– Para r 9. .10, Ok(s,r)=false. ∈Nenhuma ficha é adicionada em B. Isto significa que o pacote é perdido.

• O simulador CPN faz escolhas aleatórias entre ligações: 80% de chance para transferir com sucesso.

Page 20: Protocol with Timer

Pacote Recebido

• O número do pacote chegando “n” e o número do pacote esperado “k” são comparados.

• O dado no pacote é concatenado ao dado já recebido.

• O contador NextRec é incrementado em um.

(n,p)

If n = k

If n = k

Str^p

Page 21: Protocol with Timer

Pacote Perdido

Se o pacote que chegou “n” é diferente do pacote esperado “k” o pacote é perdido.

If n = k

(n,p)

If n = k

Page 22: Protocol with Timer

Envio do ACK

• Diferentemente do Simple Protocol o Protocol With Time só envia o ACK quando envia o pacote de stop (8,“########") .

• Aqui ele testa se p=stop e n<k. Em caso verdadeiro envia uma ficha para o lugar C. e caso seja falso ele não envia nada.

Page 23: Protocol with Timer

Transmitindo o ACK

• O protocolo da rede também considera que o ACK também pode ser perdido.

• Neste caso é feito o teste com a função ok(s,r) no caso verdadeiro o ack é recebido, e nocaso de ser falso o ack também é perdido.

Page 24: Protocol with Timer

O Temporizador• Quando Send envia o ultimo

pacote (8,“########“), ele adiciona um token com o valor 0 em Count (no temporizador), habilitando assim a transição Clock Tick.

• Fica esperando o recebimento do ACK.

• Cada ocorrência desse transição aumenta a contagem (ou seja, a contagem do valor do token). Quando a contagem atinge um limite pré-definido (no nosso caso”8”) de transição do Relógio Tick deixa de ser habilitado.

8

Page 25: Protocol with Timer

O Temporizador• Quando a contagem atinge o

limite pre- estabelecido o alarme de transição torna-se habilitado, e se a confirmação ACK não tiver chegado.

• O Alarm dispara colocando o token com o valor 1 no lugar NextSend, ou seja, ele reinicia uma retransmissão de todo o conjunto de pacotes.

• Mas caso o ACK tiver chegado nesse periodo a trasnmissão é concluida.

8

1Alarm