DEFINIÇÃO DO SEGUNDO TRABALHO MODIFICAR A IMPLEMENTAÇÃO DO TRABALHO








Definição do Segundo Trabalho

Definição do Segundo Trabalho


Modificar a implementação do Trabalho 1 de forma que a simulação funcione da seguinte forma: existirá um token circulando na rede. A estação que estiver de posse do token poderá enviar dados para as demais estações da rede. Caso a estação que estiver com o token não tenha dados para transmitir, o token deverá ser passado para a próxima estação do anel. Caso a estação transmita dados, esses dados também devem seguir a ordem do anel. Os dados enviados deverão retornar à máquina origem e somente depois disso o token poderá ser enviado para a próxima estação.


Quando a máquina origem enviar um pacote de dados, um campo no cabeçalho do pacote deverá ser marcado como “não copiado”. Então, se esse pacote retornar para a máquina origem com o campo em “não copiado”, significa que a máquina destino não se encontra na rede ou está desligada. Caso o pacote seja retornado com o campo em “erro”, significa que a máquina destino identificou um erro no pacote e o mesmo deverá ser retransmitido pela origem. A retransmissão deverá ser feita na próxima passagem do token. Caso o pacote retorne com o campo em “msg OK”, significa que o pacote foi recebido corretamente pela máquina destino. Deverá ser apresentada ao usuário a mensagem retornada.


Deverá ser implementada uma fila de mensagens para cada máquina. Esta fila poderá estar vazia ou não. A fila poderá conter até 10 mensagens e essas mensagens deverão ser configuradas pelo usuário, assim como o endereço da máquina destino. Somente uma mensagem deve ser enviada para cada token recebido, ou seja, não deverá ser enviada toda a fila de mensagens.


Configuração das Máquinas


Cada máquina da rede deverá ser configurada com um endereço IP fictício, figura abaixo.


DEFINIÇÃO DO SEGUNDO TRABALHO MODIFICAR A IMPLEMENTAÇÃO DO TRABALHO



As máquinas devem ter um endereço MAC, o qual corresponde a um par <IP,Porta>. Nesse par <IP, Porta>, IP é o endereço verdadeiro da máquina e Porta é o endereço da porta pela qual são enviados/recebidos os dados, ou seja a porta que o socket real utiliza para ler e escrever da rede. Assim, cada estação tem seu endereço MAC simulado.


Os serviços de envio de dados oferecidos devem contemplar duas formas de transmissão:


Gerador de Pacotes


Os pacotes gerados devem ser endereçados usando o endereço IP fictício da máquina destino. Este deverá ser mapeado para o endereço MAC fictício para depois ser enviado para a próxima máquina do anel. O módulo receptor tem de validar o endereço MAC fictício do pacote e, posteriormente, o IP fictício.


Portanto, deverá ser implementado um protocolo semelhante ao ARP. A máquina origem tem o IP fictício e deverá descobrir o MAC fictício do destino para poder enviar a mensagem corretamente. O protocolo deverá funcionar da seguinte forma: os hosts terão uma tabela contendo IP fictício associado com MAC fictício. A máquina que deseja transmitir deverá descobrir o MAC fictício para então enviar para o <IP fictício,MAC fictício> correto. Portanto, quando uma mensagem for enviada e o IP fictício não constar na tabela de conversão, será necessário enviar um broadcast na rede perguntando quem tem aquele IP fictício. O host com o IP fictício responde para a máquina que perguntou informando o seu MAC fictício. No início da troca de mensagens, a tabela de conversão está vazia e será atualizada à medida que a troca de mensagens irá ocorrendo.


As mensagens deverão percorrer o anel e quando um pacote for recebido, será necessário validar o MAC fictício e, posteriormente, o IP fictício, para então escrever a mensagem na tela.



Geração de Erros


A rede que suportará a simulação é uma rede de alta velocidade e com taxa de erros muito baixa, de forma que os pacotes gerados pela aplicação não serão espontaneamente perdidos. assim sendo, deve haver um módulo de inserção de falhas que force as estações a marcar os pacotes como “erro” pela máquina destino.


Essa função deve inserir falhas aleatoriamente durante a transmissão. E o protótipo deverá operar em dois modos distintos: com e sem falhas.


Para a verificação de erros o algoritmo de CRC deverá ser implementado e o polinômio gerador que será utilizado é o seguinte: DEFINIÇÃO DO SEGUNDO TRABALHO MODIFICAR A IMPLEMENTAÇÃO DO TRABALHO


A máquina origem, ao identificar que uma mensagem chegou com erro no destino, deverá retransmiti-la na próxima passagem do token. Deve ser previsto um número máximo de retransmissões (3 retransmissões) e, quando este número for excedido, deverá ser gerado um alerta sobre a impossibilidade da mensagem ser enviada.


Controle do Token


Deverá haver uma estação que controla o token. Essa estação irá verificar se o token está passando por ela dentro de um determinado tempo. Dois problemas podem ser detectados por essa estação:


No primeiro caso, um novo token deverá ser gerado, pois o mesmo foi perdido por uma estação do anel. Para tanto, deverá haver uma opção de retirada do token do anel por uma das estações.


No segundo caso, o token deverá ser retirado da rede. Nesse caso, as estações deverão ter uma opção de geração de token, para que seja possível gerar tokens a medida que a rede já esteja em funcionamento.



Regras Gerais

DEFINIÇÃO DO SEGUNDO TRABALHO MODIFICAR A IMPLEMENTAÇÃO DO TRABALHO

Grupos: Individualmente, em duplas ou os mesmos grupos do Trabalho 1.


Data de entrega e apresentação: 18/11/04

Obs.: Todos participantes devem estar presentes


Entrega final:



Visualização dos Resultados:





Tags: trabalho modificar, do trabalho, trabalho, segundo, implementação, definição, modificar