Protocol with Timer

599 visualizações

Publicada em

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

Publicada em: Tecnologia
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
599
No SlideShare
0
A partir de incorporações
0
Número de incorporações
1
Ações
Compartilhamentos
0
Downloads
4
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Protocol with Timer

  1. 1. ProtocolWith Timer(Protocolo com Temporizador)<br />Carlos Fran<br />Cleilson Gurgel<br />
  2. 2. Protocolo com Temporizador<br />Desenvolvido e Mantido por:<br />Kurt Jensen, Universidade de Aarhus, Dinamarca (kjensen@daimi.au.dk).<br />
  3. 3. Protocolo com Temporizador<br />É um protocolo baseado em transmissão de dados, onde existe um emissor e um receptor.<br />O protocolo é otimista, ele assume que cada pacote será recebido com sucesso e, portanto, imediatamente continua a enviar o pacote que lhe suceda.<br />O “ProtocolWith Timer” possui algumas semelhanças com alguns outros protocolos como é o caso do “SimpleProtocol” e do “TimedProtocol”, mas não se engane, cada um tem caracteristicas distintas.<br />
  4. 4. Protocolo com Temporizador<br />O modelo deste protocolo foi modelado em Redes de Petri Colorida utilizando a ferramenta CPNTools.<br />
  5. 5. Protocolo Modelado com CPN<br />
  6. 6. Declarações da Rede<br />colset INT = int;<br />colset DATA = string;<br />colsetINTxDATA = product INT * DATA;<br />var n, k: INT;<br />var p, str: DATA;<br />Val stop = “########”;<br />colset Ten0 = intwhith 0..10;<br />colset Ten1 = intwhith 1..10;<br />var s:Ten0;<br />var r: Ten1;<br />fun OK(s:Ten0, r:Ten1) = (r<=s);<br />
  7. 7. Lugares<br />
  8. 8. Transições<br />
  9. 9. Tipo(Colour Set)<br />
  10. 10. Marcação Inicial<br />
  11. 11.
  12. 12. Inscrições do Arco<br />(n,p)<br />s<br />n<br />N+1<br />k<br />
  13. 13. Subdivisão da Rede<br />Rede<br />Receptor<br />Temporizador<br />Emissor<br />
  14. 14. Pacotes a ser enviados<br />INTxDATA<br />Send<br />
  15. 15. Contadores<br />Contador<br />Contador<br />
  16. 16. Dados Recebidos<br />“ ”<br />DATA<br />
  17. 17. O Lugar Send<br />A ligação<n=1,p="Modellin"> está habilitada.<br />Quando a ligação ocorre uma ficha é adicionada no lugar A.<br />Isto representa que o pacote (1,"Modellin") é enviado para a rede.<br />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"> <br />
  18. 18. TransmitPacket<br />Todas ligações habilitadas são:<br /><n=1,p= "Modellin", s=8, r=...><br />onde r ∈1. .10<br />
  19. 19. A função “ ok ”<br />A função Ok(s,r) checa se r ≤ s.<br />Para r ∈1. .8, Ok(s,r)=true. A ficha é movida de A para B. Isto significa que o pacote é transmitido com sucesso.<br />Para r ∈ 9. .10, Ok(s,r)=false. Nenhuma ficha é adicionada em B. Isto significa que o pacote é perdido.<br />O simulador CPN faz escolhas aleatórias entre ligações: 80% de chance para transferir com sucesso.<br />
  20. 20. Pacote Recebido<br />O número do pacote chegando “n” e o número do pacote esperado “k” são comparados.<br />O dado no pacote é concatenado ao dado já recebido.<br />O contador NextRec é incrementado em um.<br />If n = k<br />(n,p)<br />Str^p<br />If n = k<br />
  21. 21. Pacote Perdido<br />Se o pacote que chegou “n” é diferente do pacote esperado “k” o pacote é perdido.<br />If n = k<br />(n,p)<br />If n = k<br />
  22. 22. Envio do ACK<br />Diferentemente do SimpleProtocolo ProtocolWith Time só envia o ACK quando envia o pacote de stop (8,“########") .<br />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.<br />
  23. 23. Transmitindo o ACK<br />O protocolo da rede também considera que o ACK também pode ser perdido.<br />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.<br />
  24. 24. O Temporizador<br />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.<br />Fica esperando o recebimento do ACK.<br />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 Tickdeixa de ser habilitado.<br />8<br />
  25. 25. O Temporizador<br />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.<br />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.<br />Mas caso o ACK tiver chegado nesse periodo a trasnmissão é concluida.<br />8<br />Alarm<br />1<br />

×