diff --git a/README.md b/README.md index 7b6a47c9b52cabd1190ca98e9c5298b5be4904e8..c0e079771e03654a2f1f5d18cfe07d8e44cfed98 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,45 @@ -Para executar: - ./Chat.py - inicia sem o token - ./Chat.py 1 - inicia com o token \ No newline at end of file +Rede de Computadores I - Projeto 2 +Implementação de uma rede em anel utilizando socket UDP + +Alunos: Fernando Claudecir Erd GRR20152936 + Gabriela Yukari Kimura GRR20151446 + +Especificação: + + - O trabalho foi feito em Python por fornecer CRC pronto + - Timeout de X seg; + - Utilização de threads: + - Aguardo do envio e recebimento de Mensagens de outras máquinas + - Registro das mensagens que deseja enviar + - O protocolo de transferência de mensagens segue o seguinte formato: + + +-------+------+---------+--------+------------+---------+-------------+----------+------------+-----+----------+ + | Marca | Tipo | Destino | Origem | Prioridade | Tamanho | Inic de Msg | Mensagem | Fim de Msg | CRC | ACK/NACK | + +-------+------+---------+--------+------------+---------+-------------+----------+------------+-----+----------+ + + - A marca (1 Byte) que marca o início de transmissão e início e fim de uma mensagem é + - O protocolo pode ser de dois tipos: + 0: Token + 1: Carrega uma mensagem + + - Cada máquina é denominada por um número. Neste caso, de 1 à 4. + - A máquina que inicia com o Token pode ser qualquer uma das quatro máquinas e para identificá-la é vericada a quantidade de argumentos passada ao programa. A execução é realizada da seguinte forma: + Para habilitar máquina com Token: + $>./Chat.py 1 + Para habilitar máquina sem Token: + $>./Chat.py + + - Iniciado o programa, é necessário identificar sua máquina (1-4) e o determinado IP da máquina que deseja conectar. + - Em seguida, a máquina identificada inicia criando o token e, se não houver mensagens a serem enviadas daquela máquina e estourado o TIMEOUT, o token é passado para a máquina vizinha. + - Ao mesmo tempo que o token estiver sendo transportado, as máquinas podem requisitar o envio de alguma mensagem: + 1. É escolhida a máquina de destino (1-4) + 2. Prioridade da mensagem (1-7) + 3. Mensagem + + - Ao receber o token, a máquina inicia a contagem de TimeOut, e verifica se está sendo enviada uma mensagem e se é designada a ela (número da máquina é igual ao de destino). Se for, o protocolo é descompactado e ocorre a verificação do CRC. + - Se estiver correto, a mensagem é impressa na tela + + - Dificuldades + - As dificuldades encontradas na implementação do trabalho foram o pouco conhecimento na linguagem Python + - Fazer o esquema de prioridade de mensagens +