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

Protocolo com temporizador

Embed Size (px)

DESCRIPTION

Protocolo otimista com temporizador modelado no CPN Tools.

Citation preview

Page 1: Protocolo com temporizador

Protocol With Timer(Protocolo com Temporizador)

Carlos FranCleilson Gurgel

Page 2: Protocolo com temporizador

Protocolo com Temporizador

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

([email protected]).

Page 3: Protocolo com temporizador

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: Protocolo com temporizador

Protocolo com Temporizador

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

Page 5: Protocolo com temporizador

Protocolo Modelado com CPN

Page 6: Protocolo com temporizador

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: Protocolo com temporizador

Lugares

Page 8: Protocolo com temporizador

Transições

Page 9: Protocolo com temporizador

Tipo(Colour Set)

Page 10: Protocolo com temporizador

Marcação Inicial

Page 11: Protocolo com temporizador
Page 12: Protocolo com temporizador

Inscrições do Arco

(n,p)

n N+1ks

Page 13: Protocolo com temporizador

Subdivisão da Rede

EmissorRede ReceptorTemporizado

r

Page 14: Protocolo com temporizador

Pacotes a ser enviados

Send

INTxDATA

Page 15: Protocolo com temporizador

Contadores

Contador Contador

Page 16: Protocolo com temporizador

Dados Recebidos

DATA

“ ”

Page 17: Protocolo com temporizador

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: Protocolo com temporizador

Transmit Packet

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

Page 19: Protocolo com temporizador

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: Protocolo com temporizador

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: Protocolo com temporizador

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: Protocolo com temporizador

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: Protocolo com temporizador

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: Protocolo com temporizador

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: Protocolo com temporizador

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