Esse protocolo de comunicação ainda livre de erros mas, agora, o receptor tem uma capacidade de consumo limitada. Este fato se deve a uma capacidade de armazenamento limitada e uma velocidade de processamento finita.
O emissor deve então se precaver para não transmitir quadros a uma taxa maior que o receptor é capaz de consumi-los. Para isso, o emissor após enviar um quadro, só deverá enviar próximo depois de receber um “sinal verde” do receptor.
Protocolo stop-and-wait:
Constante masmsg = ….
tipo bit = 0…1 mensagem = vetor [0..maxmsg] de bit; quadro = registro prefixo: byte; info: mensagem; sufixo: byte fim; tipo_evento = (chegou_quadro);
procedimento envia;
var q: quadro; buffer: mensagem evento: tipo_evento;
início repita de_cima (buffer) q.info: buffer; envia_quadro(q); espera(evento); até falso; fim
|