Upload
carlos-fran
View
415
Download
2
Embed Size (px)
DESCRIPTION
Slides da apresentação do modelo de rede de petri colorida modelado no CPN Tools.
Citation preview
Protocol With Timer(Protocolo com Temporizador)
Carlos FranCleilson Gurgel
Protocolo com Temporizador
• Desenvolvido e Mantido por:– Kurt Jensen, Universidade de Aarhus, Dinamarca
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.
Protocolo com Temporizador
• O modelo deste protocolo foi modelado em Redes de Petri Colorida utilizando a ferramenta CPNTools.
Protocolo Modelado com CPN
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);
Lugares
Transições
Tipo(Colour Set)
Marcação Inicial
Inscrições do Arco
(n,p)
n N+1ks
Subdivisão da Rede
EmissorRede ReceptorTemporizador
Pacotes a ser enviados
Send
INTxDATA
Contadores
Contador Contador
Dados Recebidos
DATA
“ ”
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">
Transmit Packet
• Todas ligações habilitadas são:– <n=1,p= "Modellin", s=8, r=...>– onde r 1. .10∈
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.
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
Pacote Perdido
Se o pacote que chegou “n” é diferente do pacote esperado “k” o pacote é perdido.
If n = k
(n,p)
If n = k
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.
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.
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
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