A Retransmissão Seletiva
Por: Greice Schmidt Neumann • 18/1/2019 • Abstract • 467 Palavras (2 Páginas) • 452 Visualizações
Suponha o envio (com TCP) de 10 mensagens (M1, M2, M3, ..., M10). Com uma janela de tamanho 4, escreva (passo a passo) o que acontece na transmissão utilizando Retransmissão Seletiva, quando as mensagens M4, M7 e M10 se perderem. [pic 1]
Após dar sua resposta, analise as respostas dos demais, verificando se sua solução é a mesma de todos. Caso não seja, poste o que você acha que não está correto na resposta de seu(s) colega(s). Quando chegarem a conclusão de qual resposta é a correta, corrija sua resposta se necessário.
Na Retransmissão Seletiva trabalha é crucial que a entrega dos pacotes aconteça de forma ordenada, sendo de extrema importância o recebimento dos ACK’s dos pacotes anteriores. Para tanto, esse mecanismo trabalha com a técnica de janelas deslizantes, dela podem ser transmitidos antes de receberem confirmação dos demais.
Então, quando ocorre a transmissão, se o pacote que chegou ao destino está na sua ordem de entrega correta, este pacote está pronto para ser entregue para a aplicação. Caso o pacote recebido não seja o esperado, porém chegou corretamente ao destino, este pacote é “bufferizado” (armazenado) até que o pacote esperado chegue.
Estes pacotes “bufferizados” não estão prontos para serem entregues para a aplicação, pois falta algum pacote que deveria ter chegado antes. Quando este pacote chegar, os pacotes “bufferizados” podem ser entregues para a aplicação, mas não precisam ser retransmitidos, pois chegaram corretamente ao destino.
Segue o passo a passo do envio de 10 pacotes com a utilização da Retransmissão Seletiva, com uma janela de tamanho 4 e três erros de transmissão:
- O remetente envia os 4 pacotes dentro da janela;
- Para cada pacote recebido um ACK é enviado ao host origem;
- Conforme os ACK’s forem chegando, a janela desliza travando no primeiro pacote não confirmado (o M4, no caso);
- Os demais pacotes continuam sendo transmitidos, porém, ao chegarem no destino são bufferizados e confirmados com ACK;
- Como o ACK do M4 não foi confirmado, a janela não desliza;
- Após o término do timer do pacote M4 expirar esse pacote (somente este) é retransmitido;
- M4 chega ao host destino corretamente e é confirmado com o envio do ACK respectivo;
- Os pacotes seguintes que já haviam chegado são entregues para a aplicação;
- A janela desliza novamente e trava no pacote M7, ainda não confirmado;
- Após o término do timer do pacote M7 expirar esse pacote (somente este) é retransmitido;
- M7 chega ao host destino corretamente e é confirmado com o envio do ACK respectivo;
- Os pacotes seguintes que já haviam chegado são entregues para a aplicação;
- A janela desliza novamente e trava no pacote M10, ainda não confirmado;
- Após o término do timer do pacote M10 expirar esse pacote (somente este) é retransmitido;
- M10 chega ao host destino corretamente e é confirmado com o envio do ACK respectivo;
...