Sei sulla pagina 1di 4

UNIVERSIDADE FEDERAL DO MATO GROSSO DO SUL

FACULDADE DE COMPUTAÇÃO
Redes de Computadores - T01
Campo Grande - 2019.1

Redes de Computadores – 2019


Segundo Trabalho
Transmissão Confiável

Campo Grande - MS
Junho de 2019
UNIVERSIDADE FEDERAL DO MATO GROSSO DO SUL
FACULDADE DE COMPUTAÇÃO
Redes de Computadores - T01
Campo Grande - 2019.1

Trabalho da disciplina de Redes de Computadores - T01, ministrada pelo professor


Ronaldo. Esse documento foi elaborado pelos alunos: Jonathan Heidy Kinjo RGA:
201519060360 e Nicholas Pedroso Peterle RGA: 201519060599. Este trabalho tem por
objetivo colocar em prática os conceitos apresentados na disciplina, através da construção de
uma aplicação de transmissão confiável implementado na linguagem de programação Java.

Campo Grande - MS
Junho de 2019
UNIVERSIDADE FEDERAL DO MATO GROSSO DO SUL
FACULDADE DE COMPUTAÇÃO
Redes de Computadores - T01
Campo Grande - 2019.1

1. Conceitos teóricos utilizados na implementação


O trabalho consiste na implementação de uma versão simplificada do protocolo TCP
para transmissão confiável de dados. Para este fim, foi utilizada a linguagem de programação
java e a IDE IntelliJ. Conforme na descrição do trabalho, foi feito o encapsulamento de um
pacote TCP dentro de um UDP (socket_udp). Foram utilizadas algumas APIs da biblioteca Java
para facilitar a implementação, como por exemplo: ​java.net.DatagramSocket​, ​java.io.File​,
java.io.FileReader​, j​ava.net.DatagramPacket , ​java.io.BufferedReader para a conexão UDP
entre o cliente e o servidor e para a manipulação de envio dos arquivos.

2. Implementação
A implementação consiste em duas classes principais que são:
● o servidor (denominado Server.java) e
● o cliente (denominado Client.java)
Além das classes auxiliares que se encontram no pacote util do projeto, que são por
seguinte:
● Acknowledgement (que consiste na propriedade de ACK);
● Data (consiste na propriedade dos dados a serem enviados);
● Packet(é o que compõe a estrutura dos pacotes para envio) e
● ServerThread(execução de thread do servidor).
E por fim, consiste em dois diretórios de manipulação de arquivo:
● FileClient ( Armazena os arquivos que o client deseja enviar para o Servidor);
● FileServer ( Armazena os arquivos enviado pelos clients).

3. Execução
❖ Servidor
1. Na pasta src/ do projeto, abra o terminal para compilar o código com o
comando javac Server.java;
2. Após compilado, para utilizar execute o seguinte comando no terminal
java Server <fn> <sport> <wnd> <lp>
3. Espere as conexões.
❖ Cliente
1. Na pasta src/ do projeto, abra o terminal para compilar o código com o
comando javac Client.java;
2. Após compilado, para utilizar execute o seguinte comando no terminal
java Server <fn> <sip> <sport> <wnd> <rto> <mss> <dupack> <lp>

Campo Grande - MS
Junho de 2019
UNIVERSIDADE FEDERAL DO MATO GROSSO DO SUL
FACULDADE DE COMPUTAÇÃO
Redes de Computadores - T01
Campo Grande - 2019.1
3. Só esperar a execução do programa.

4. Problemas
Os problemas enfrentados foram na manipulação de arquivos em buffers
separados e juntá-los no servidor, além do fato da manipulação de pacotes em sequência.
Tendo isso, a implementação não está totalmente completa.

Campo Grande - MS
Junho de 2019

Potrebbero piacerti anche