Skip to content

FileTransfer-UDP é um sistema de troca de arquivos entre dois clientes através de um servidor utilizando arquitetura P2P com protocolo UDP.

Notifications You must be signed in to change notification settings

Briuor/FileTransfer-UDP

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FileTransfer-UDP

Autores:

O FileTransfer-UDP é um transferidor de arquivos entre clientes com o auxílio de um um servidor que intermedia a conexão de dois clientes, baseado na arquitetura P2P e no protocolo BitTorrent. O protocolo utilizado foi o UDP, portanto, os artifícios para garantia de integridade e segurança foram implementados na camada de aplicação.

Instruções para Execução

Os comandos dever ser utilizados na pasta raíz do projeto(Diretorio FileTransfer-UDP).

  • Execução do Servidor (Terminal 1)
$ make
$ cd server
$ ./server
  • Execução do Cliente Semeador (Terminal 2)
$ cd cliente_envia
$ ./client
  • Execução do Cliente Baixador (Terminal 3)
$ cd cliente_baixa
$ ./client

Após executar o servidor e os dois clientes, o arquivo a ser baixado deve ser informado no terminal do cliente baixador, com o formato "nome.extensão".

Exemplo: musica.mp3

(O arquivo musica.mp3 existe no diretorio do cliente_envia e pode ser usado para teste)

(O arquivo a ser baixado deve estar previamente no diretório do cliente_envia)

O arquivo baixado pelo cliente baixador se encontra dentro do diretorio cliente_baixa com prefixo "copied" antes do nome original do arquivo baixado.

Informações Impressas sobre os Pacotes

As informações que são impressas no período de transferência dos arquivo, dizem respeito a cada um dos pacotes que são transferidos. São elas, respectivamente:

  • Número de Sequência
  • ACK
  • Soma de Verificação

Explicações sobre a Soma de Verificação

As operações são feitas sobre cada um dos bits do buffer de cada um dos pacotes transferidos, seguindo o seguinte pseudocódigo:

soma <- 0
para i de 0 a TAM_BUFFER:
    se buffer[i] = 1 (bin)
        soma += 2*i
    ou se buffer[i] = 0 (bin)
        soma += i

O resultado da soma de verificação é salvo dentro do própio pacote em uma variável inteira. Quando o pacote chega, o cliente baixador calcula a soma de verificação novamente, com o mesmo algoritmo, e compara com o resultado presente no pacote. Caso o resultado não seja igual, ele solicita ao outro cliente que o mesmo pacote seja enviado novamente.

About

FileTransfer-UDP é um sistema de troca de arquivos entre dois clientes através de um servidor utilizando arquitetura P2P com protocolo UDP.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published