O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.

Protocol with Timer

640 visualizações

Publicada em

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

Publicada em: Tecnologia
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

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 />

×