Protocolo de redes

Disponível somente no TrabalhosFeitos
  • Páginas : 7 (1573 palavras )
  • Download(s) : 0
  • Publicado : 12 de janeiro de 2013
Ler documento completo
Amostra do texto
Protocolo para Transmissão de Arquivos

Ricardo Mendes do Nascimento

Universidade Regional Integrada do Alto Uruguai e das Missões (URI)
Santo Ângelo – RS – Brasil

rnascom@urisan.tche.br

Resumo. Este artigo tem como objetivo apresentar a implementação do
protocolo de rede para transmissão de arquivos solicitado na disciplina de
Telecomunicações e Redes I.

1. O Problema
Durante adisciplina de Telecomunicações e Redes I foi proposto um trabalho que
objetivou a implementação de um software que utilizasse os conceitos vistos em aula.
Neste deveria ser criado um protocolo de comunicação que permitisse que dos
computadores pudessem enviar e receber arquivos através da porta serial do
computador, considerando situações de erro, tanto na validação das mensagens como emerros originado por falha física, que neste caso seria simulado retirando o cabo durante a
transmissão do arquivo.

2. Solucionado o Problema
Visando tornar o código bastante legível e coeso optou-se por utilizar orientação a
objetos na implementação, e a linguagem de programação escolhida foi C++.
O programa começa sua execução através de um objeto da classe Communication que
solicita aousuário que escolha se utilizará um objeto Sender ou Receiver. Logo após o
objeto escolhido abre a primeira porta disponível através do seu objeto do tipo
SerialPort.
Se o usuário desejar enviar um arquivo, o objeto Sender irá abrir o arquivo informado, e
o enviará para um objeto Receiver que após a recepção de todos os pacotes, irá criar um
arquivo com o mesmo nome do aberto pelo Sender.Trabalho de Telecomunicações e Redes I – 16/06/2007. Ricardo Mendes do Nascimento

1/6

No diagrama de classes apresentado a seguir fica clara a forma como foi estruturado o
programa.

Figura 1. Diagrama de Classe

O primeiro pacote enviado possui o nome do arquivo, e o restante dos pacotes contém
os dados que formam o arquivo.
2.1. O Pacote
Sabendo da necessidade de solucionar o problemaatravés do envio de pacotes, foi
criada uma classe Package que representa a estrutura principal do pacote:
Um objeto package possui quatro atributos que representam as “partes” do pacote:
int sizeData: Armazena o tamanho da parte de dados do pacote. Apesar do atributo ser
do tipo inteiro, ele é enviado e recebido como um caractere, desta forma o maior
tamanho de dados foi estipulado em 255bytes.
char last: Caracter que pode assumir o valor T, indicando que o pacote é o último, ou F
indicando que não é o último.
char data[SIZE_DATA] : Vetor de caracteres de tamanho 255. Neste são guardados os
dados que fazem parte do arquivo.

Trabalho de Telecomunicações e Redes I – 16/06/2007. Ricardo Mendes do Nascimento

2/6

char ack: Este atributo guarda o ACK de cada pacote. Podeassumir o valor P
(representando um pacote par), ou ‘I’ (indicando um pacote ímpar).
Somente na hora do envio o pacote é convertido em um vetor de caracteres através do
método packToMsg desta mesma classe, e utilizando-se dos métodos estáticos da classe
Util, o objeto Sender acrescenta o CRC ao final do pacote e o envia. Após estes
procedimentos o pacote possui o seguinte formato:
Vetor decaracteres:
ack

sizeData

last

data[0] data[1] data[2] data[N]

CRC1

CRC2

Onde, CRC1 é o primeiro byte e CRC2 é o segundo byte.
2.2. Empilhando pacotes
Como o arquivo deve ser todo separado em pacotes, optou-se por carregar todos os
pacotes na memória antes do envio os colocando em uma estrutura de dados do tipo
FIFO. Desta forma, ocorre que logo depois de aberto o arquivo peloobjeto da classe
Sender, este vai lendo-o, criando pacotes e empilhando-o em seu atributo stack do tipo
PackageStack, classe também implementada para esta aplicação e que se utiliza de
objetos do tipo PackageNode.
2.3. Enviando
O processo disparado a partir do objeto Sender pode ser descrito através da seqüência
de passos abaixo:
1.
2.
3.
4.
5.
6.
7.
8.
9.

Abre arquivo
Cria...
tracking img