Skip to: site menu | section menu | main content

Prof. Marlos Marques

marlos.uesb@gmail.com

DCET 0741 - Redes de Computadores I

Trabalho Prático

Objetivo:

  • Simular o funcionamento de uma rede de computadores, através da implementação dos protocolos das respectivas camadas

Regras:

  • Codificação:
    • O arquivo Principal.java deverá conter o método main
    • O trabalho deverá compilar com a linha de comando javac Principal.java

  • Estrutura de arquivos:
    • O diretório com o trabalho deverá ser chamado de redes1_trabalhoXX_numeroDeMatricula. Ex. redes1_trabalho01_200012345
    • Este diretório deverá conter o arquivo Principal.java na sua raiz
    • A partir deste diretório organize os arquivos conforme conveniência

  • Entrega dos trabalhos via e-mail:
    • O subject/assunto deverá ser [redes1][trabalhoXX][numeroDeMatricula]. Ex: [redes1][trabalho01][200012345]
    • Compactar (.zip ou .rar) o diretótio redes1_trabalhoXX_numeroDeMatricula (sem os arquivos .class). Ex. redes1_trabalho01_200012345.rar
    • Anexar o arquivo compactado ao email e enviar
Observações:

  • Cada trabalho será entregue via email até as 23h59m da data estipulada
  • Os prazos NÃO SERÃO prorrogados
  • Utilizar editores de texto simples (ASCII puro) para a codificação
  • Gerar código através de compiladores padrão (JRE ou GCC/G++ GNU/Linux)
  • Em caso de alguma incompatibilidade, os trabalhos deverão estar executando perfeitamente nos sistemas computacionais (leia-se Linux) do laboratório de redes
  • Os trabalhos deverão estar em conformidade com as especificações do arcabouço (esqueleto dos métodos) pré-definidos em sala de aula
  • Utilize boas técnicas de programação. Sugestões podem ser encontradas aqui ou aqui.
  • Os trabalhos serão desenvolvidos individualmente;
  • Não serão admitidos trabalhos iguais:
    • Ajuda entre alunos/equipes é permitida e saudável ao processo de aprendizado, a cópia pura e simples não
    • Serão DESCONSIDERADOS os trabalhos dos envolvidos em cópia
  • Com relação aos nomes:
    • XX é o número correspondente ao trabalho desenvolvido
    • numeroDeMatricula é o número de matrícula do aluno

Descrição dos Trabalhos

Trabalho #01:
Título: Camada Física
Data da entrega: até o dia 24/08/2025 (erro meu) 31/08/2025
Nota: parte da nota da III Unidade
Descrição: Conforme explicações e exemplos vistos em aula, implementar os algoritmos de codificação estudados. Utilizar GUI. Um esboço da etapa a ser desenvolvida poderá ser encontrado aqui.
OBS: Exercício de manipulação de bits aqui (não precisa entregar). Material sobre manipulação de bits aqui.

Trabalho #02:
Título: Camada de Enlace de Dados - subcamada LLC - Enquadramento
Data da entrega: até o dia 28/09/2025 30/09/2025
Nota: parte da nota da III Unidade
Descrição: Conforme explicações e exemplos vistos em aula, implementar os algoritmos de enquadramento estudados. Utilizar GUI. Um esboço da etapa a ser desenvolvida poderá ser encontrado aqui.
OBS: para que você consiga viasualizar seu algoritmo em funcionamento, vamos simular a ocorrências de PROBLEMAS na transmissão dos dados no meio de comunicação:
1) O PROBLEMA é um fator externo. Não controlamos ele. Então na nossa simulação definiremos a probalidade de ocorrência de um PROBLEMA ocorrer, conforme visto em aula e está especificado no framework. A probalidade de ocorrência do PROBLEMA deverá ser escolhida pelo usuário na GUI (0%, 10%, 20%, 30%, 40%, 50%, 60%, 70%, 80%, 90% ou 100%)
2) Na nossa simulação, os PROBLEMAS afetarão apenas UM SINAL em cada quadro, dentro da probilidadede especificada. Ou seja, se ocorrer, afetará apenas UM BIT (independente de ser codificado por um sinal ou par de sinais) no conjunto de dados.
3) Um esboço de como provocar um PROBLEMA na transmissão de dados poderá ser encontrado aqui.
4) Quando o quadro chegar no RECEPTOR, sua GUI deverá sinalizar se a transmissão foi OK ou se ocorreu um PROBLEMA. APENAS ISSO.
5) Começar a implementar a interface e o 1o algoritmo (contagem de caracteres). Os outros serão vistos na próxima aula).

Trabalho #03:
Título: Camada de Enlace de Dados - subcamada LLC - Controle de Erros
Data da entrega: até o dia 02/11/2025
Nota: parte da nota da III Unidade
Descrição: Conforme explicações e exemplos vistos em aula, implementar os algoritmos de controle de erros estudados. Utilizar GUI. Um esboço da etapa a ser desenvolvida poderá ser encontrado aqui.
OBS:
1) O erro (não-determinístico) já foi gerado no trabalho anterior e estava sendo sinalizado para o receptor (provavelmente) por uma FLAG. Neste trabalho você deve RETIRAR ESTA FLAG (ou a estratégia equivalente utilizada) e verificar a ocorrência ou não do erro em um quadro através da utilização dos algoritmos de deteção de erros.
2) Também deverá ser implementado o ACK (reconhecimento positivo) e o TEMPORIZADOR. Ou seja, ao enviar um quadro o transmissor dispara um temporizador (possivelmente uma thread) relativo aquele quadro. A dinâmica de funcioanamento do ACK+TEMPORIZADOR se dá conforme descrito em sala de aula e também no livro-texto.

Trabalho #04 (ÚLTIMO TRABALHO DO SEMESTRE)
Título: Camada de Enlace de Dados - subcamada LLC - Controle de Fluxo
Data da entrega: até o dia 23/11/2025
Nota: parte da nota da III Unidade
Descrição: Conforme explicações e exemplos vistos em aula, implementar os algoritmos de controle de fluxo estudados (somente protocolo de janela deslizante de 1 bit, protocolo de janela deslizante go-back-n e protocolo de janela deslizante com retransmissão seletiva). Utilizar GUI. Um esboço da etapa a ser desenvolvida poderá ser encontrado aqui.