TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

Relatório - Redes

Por:   •  28/9/2016  •  Relatório de pesquisa  •  2.651 Palavras (11 Páginas)  •  294 Visualizações

Página 1 de 11

1. Introdução

Dentre as camadas do modelo OSI que regem o estudo de redes de computadores, a camada de transporte é a responsável por transferir dados de um ponto a outro de uma rede de internet por meio de pacotes. Dentre os protocolos de tal camada, efetuou-se a análise do funcionamento de dois deles: o UDP e o TCP. Estes se distinguem na sua estrutura e a utilização de um ou de outro depende de sua aplicação e seu objetivo principal. O protocolo UDP (User Datagram Protocol) funciona de maneira simples se comparado ao TCP, contudo o envio de pacotes não é confiável, pois ao utiliza-lo, não há garantia que os pacotes serão entregues ao destinatário, apesar de existir a possibilidade de implementar aplicações que o deixe confiável. Esse protocolo não é orientado a conexão. Já o TCP (Transmission Control Protocol) tem uma transmissão confiável, pois nele há controle de fluxo de dados, confirmação de conexão e confirmação de entrega de pacotes, ou seja, para aplicações que necessitam que todo o pacote seja entregue ao destinatário, essa pode ser a opção melhor.

2. Desenvolvimento

3. User Datagram Protocol (UDP)

A partir de um socket UDP em aplicação Java, foram efetuados testes de funcionamento, tanto no servidor como no Cliente.

3.1 Execuções do cliente e servidor

O servidor cria uma variável do tipo datagrama para poder receber os dados do cliente que se conectar. A partir disso, inicia-se um loop infinito para que ele fique sempre esperando algum cliente. Quando um cliente se comunica com o servidor, ele executa a aplicação e retorna para o servidor a resposta. Não há qualquer conexão, e, portanto, não há confirmação de entrega de nenhuma das partes.

Já o Cliente cria uma variável tipo datagrama para enviar uma mensagem. No programa, é descrito o IP do servidor e a porta na qual a mensagem será entregue. Por fim, o cliente recebe a resposta e finaliza o programa.

3.2 Execuções do cliente antes do servidor

Quando se executava apenas o cliente, a aplicação rodava sem problemas, porém não se obtinha resposta de um servidor. Ao executar o servidor, o mesmo passava a aguardar conexão, mas o cliente continuava rodando, sem alteração, pois não havia uma conexão entre as aplicações. Apenas quando o cliente enviava uma mensagem, o servidor respondia. Quando um cliente UDP envia pacotes ao servidor, este recebe e executa sua aplicação. Não há uma conexão estabelecida e no fim da aplicação cliente, a conexão é fechada.

3.3 Execuções com portas distintas

Se a porta declarada no servidor for diferente da porta do cliente, ambos executam normalmente, mas não estabelecem conexão, mesmo após o envio de dados, o cliente não recebe retorno do servidor, pois direcionou os dados a outra porta.

3.4 Testes de comunicação entre máquinas diferentes

Para estabelecer conexão com outras máquinas, bastou que os usuários envolvidos conhecessem o IP da máquina de destino e alterasse no programa. Os testes ocorreram como na própria máquina e não houve congestionamento de dados ao enviar várias mensagens de máquinas diferentes ao mesmo tempo.

3.6 Modificações: enviar mais de uma mensagem ao servidor

Para que seja possível enviar mais de uma mensagem ao servidor pelo Protocolo UDP, basta modificar o cliente, para que ele não finalize após a primeira mensagem e adeque a aplicação Java da melhor forma possível. Como não há estabelecimento de conexão previa entre servidor e cliente, o servidor não necessita ser alterado. Neste caso, bastou adicionar o laço “while (true)” no código do programa:

package socketudp;

// created on 29/09/2010 at 22:30import java.io.*;

import java.io.*;

import java.net.*;

class UDPClient

{

public static void main(String args[]) throws Exception

{

while (true)

{

BufferedReader inFromUser =

new BufferedReader(new InputStreamReader(System.in));

DatagramSocket clientSocket = new DatagramSocket();

InetAddress IPAddress = InetAddress.getByName("127.0.0.1");

byte[] sendData = new byte[1024];

byte[] receiveData = new byte[1024];

String sentence = inFromUser.readLine();

sendData = sentence.getBytes();

DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, IPAddress, 9876);

clientSocket.send(sendPacket);

DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length);

clientSocket.receive(receivePacket);

String modifiedSentence = new String(receivePacket.getData());

System.out.println("Do servidor:" + modifiedSentence);

clientSocket.close();

}

}

}

3.7 Modificações: bloquear resposta do servidor a um usuário indesejado

Para que o servidor não receba pacotes de um ou mais clientes específicos, é possível alterar o programa para que isso não aconteça, através do IP. A aplicação Java foi alterada para que isso fosse possível, com o exemplo de IP “/172.17.13.249”.

 if (!"/172.17.13.249".equals(IPSTRING)){

                  int port = receivePacket.getPort();

                  String capitalizedSentence = sentence.toUpperCase();

                  sendData = capitalizedSentence.getBytes();

 

...

Baixar como (para membros premium)  txt (13 Kb)   pdf (93.7 Kb)   docx (16 Kb)  
Continuar por mais 10 páginas »
Disponível apenas no TrabalhosGratuitos.com