Protocol with Timer
-
Upload
carlos-fran -
Category
Technology
-
view
415 -
download
2
description
Transcript of Protocol with Timer
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