especificacao_trabalho_iii

Action disabled: register

Trabalho III: Janelas Deslizantes

Imagine que você está tentando baixar o último episódio da primeira temporada da série House of the Dragon da HBO, você inicia o Download no horário do lançamento do episódio, as 21h. Como se sabe, o tamanho máximo de um pacote na Ethernet é de 1500 bytes. Imagine a seguinte situação, tanto a comunicação do seu computador com o servidor da HBO, quando a comunicação do servidor com a sua casa demoram exatamente um segundo para ser concluídos. desconsiderando a requisições e mensagens menores só para enviar o episódio que em em torno de 4GB levariam 2863312 segundos, contando o tempo para envio da resposta de recebimento (ack) seriam praticamente 66 dias para realizar o download. Até o episódio terminar de finalizar o download, você provavelmente já tomou spoiler de tudo que aconteceu, perdendo toda a graça da série.

Por conta disso, precisamos de uma forma mais eficiente de realizar a comunicação, de forma que você consiga assistir no mesmo dia o episódio. Uma forma simples de pensar seria ao invés de mandar um único pacote por vez, enviar 2 pacotes por vez. Desse modo, um ack seria enviado para o recebimento de 2 pacotes e caso um se perdesse, os dois seriam enviados novamente. Desse modo, o tempo para o envio do episódio seria cortado pela metade.

Se podemos enviar 2 pacotes, por que não 4, ou 8, ou então 16 e assim por diante? Essa é a ideia por trás das janelas deslizantes.

Você, estudante de ciência da computação, tem em suas mãos um grande desafio, implementar um algoritmo de janelas deslizantes (utilizando a estratégia “volta-n”) para que seja possível enviar arquivos grandes de uma forma mais otimizada que o a estratégia de para-e-espera, afinal ninguém gosta de tomar spoiler da série favorita.

  • Cabe ao estudante apresentar um de janelas deslizantes implementando a estratégia de volta-n.
  • Os algoritmos podem ser implementados dentro do trabalho I, ou de forma independente.
  • Caso seja escolhido implementar de forma independente a linguagem da implementação pode ser escolhida pelos alunos.
  • O trabalho precisa ser versionado e estar disponível em alguma ferramenta que utilize git (recomenda-se o GitLab do C3SL).
  • Quaisquer escolhas feitas pelos alunos deverão ser explicadas durante a apresentação do trabalho.
  • Valor: 1,0
  • especificacao_trabalho_iii.txt
  • Última modificação em: 2022/12/15 20:26
  • por fmkiotheka