Protocolos de comunicação em redes de computadores
Autor: Marcos Vinícius | Publicado: 2013-12-03T18:11:00-02:00


Protocolos
de comunicação em redes de computadores

Alessandro Bastos
Grandini¹, Marcos Vinícius Fonseca Ferreira¹

¹Centro Federal de
Educação Tecnológica/RJ – UnED Nova Friburgo

Curso Técnico em
Informática Industrial

alebagran@gmail.com,
mndjferreira@hotmail.com

Abstract.
This
article describes the TCP, UDP, IP, FTP and SMTP network protocols,
according to their related layers in the ISO/OSI and TCP/IP reference
models, as well as to two existing data transfer options: reliable
and unreliable communication.

Resumo. O
presente artigo descreve os protocolos de rede TCP, UDP, IP, FTP e
SMTP, relacionando-os com as respectivas camadas dos modelos de
referência ISO/OSI e TCP/IP, e segundo as duas opções de serviços
de transporte de dados que oferecem: o transporte confiável e o não
confiável. 


1.
Introdução

Uma rede de
computadores é formada por membros que se comunicam entre si. Essa
comunicação, para que seja estabelecida, necessita de um meio e uma
linguagem. O meio é o componente físico da rede (com fio ou sem
fio), já a linguagem consiste no protocolo de comunicação de rede.



Segundo [FOROUZAN,
2008, p. 29], “um
protocolo de comunicação de rede é um conjunto estabelecido ou
aceito de procedimentos, regras ou especificações formais que
governam um comportamento ou linguagem específicos”.
De modo geral, um protocolo de rede tem por fim facilitar “o
entendimento na comunicação ao criar uma linguagem comum para os
membros”
[GALLO&amp; HANCOCK, 2008, p. 6]. Com esse intuito foi criado o
modelo ISO/OSI,a fim de padronizar o processo de transferência de
dados nas redes de computadores. Este, porém, nunca chegou a se
firmar de fato como um padrão, posição esta atualmente ocupada
pela pilha TCP/IP.

1.1
ISO/OSI x TCP/IP

O modelo OSI (Open
Systems Interconnection ou Interconexão de Sistemas Abertos),
introduzido no final da década de 1970, é um padrão de redes que
compreende uma estrutura de sete camadas, cada qual com sua função
na transferência de dados em uma rede, criado com o objetivo de
“facilitar
a comunicação entre sistemas diferentes sem a necessidade de
realizar mudanças na lógica do hardware ou software de cada um
deles”[GALLO
&amp; HANCOCK, 2008, p. 6]. Apesar deste modelo não ter se firmado
como o padrão final de comunicação de dados, o mesmo é ainda
amplamente utilizado como modelo de referência, uma vez que este
“fornece
uma base sólida para explorar outros conceitos de comunicação de
dados”[FOROUZAN,
2008, p. 29].

Por outro lado, o
modelo TCP/IP, apesar de não ter sido criado para ser um padrão,
mas sim desenvolvido para satisfazer as necessidades de conexão do
Ministério da Defesa dos EUA [GALLO &amp; HANCOCK, 2008, p. 248], é
hoje o padrão mundialmente utilizado e base de toda a internet. O
modelo TCP/IP não foi projetado com as camadas do modelo OSI,
possuindo apenas quatro camadas (figura
1).
Porém, uma vez que as camadas do OSI e do TCP/IP são semelhantes em
termos de serviço [GALLO &amp; HANCOCK, 2008, p. 249], é possível
fazer um paralelo entre as mesmas (figura
1).






Figura
1. Comparativo entre os modelos de referência ISO/OSI e TCP/IP.

1.2
Confiabilidade nas Redes

Como pode ser
observado na figura
1,
ambos os modelos de referência possuem em comum a camada de
transporte. Esta camada é responsável, entre outros, pela
confiabilidade do serviço, ou seja, se o serviço é ou não
orientado à conexão. Apesar de existir o controle de erros na
camada de enlace do OSI (camada 2), o mesmo é feito apenas
ponto-a-ponto, não sendo o suficiente para garantir o controle de
erros também na camada de transporte. Nesta camada, por sua vez, o
controle de erros é feito fim-a-fim (end-to-end), com a comunicação
sendo feita diretamente do remetente para o destinatário, e sendo
assim, “a
camada de transporte não se comunica com máquinas intermediárias
na rede, como pode ocorrer com camadas inferiores”
[WIKIPEDIA, 2013]. 


Essa confiabilidade
se reflete nos protocolos da pilha TCP/IP para esta camada: os
protocolos TCP e UDP (figura
2).
O primeiro é orientado à conexão e faz a verificação da
integridade dos pacotes que chegam, tendo o foco na entrega precisa
em vez de uma entrega rápida (confiável). Já o UDP é baseado no
envio de datagramas, não sendo orientado à conexão, e portanto o
mesmo não verifica a integridade dos pacotes que chegam
(não-confiável).






Figura
2. Comparativo entre os modelos de referência ISO/OSI e TCP/IP com
destaque para as respectivas camadas dos Protocolos da pilha TCP/IP.

2.
Protocolos

2.1
Protocolo TCP

O protocolo TCP
(Transmission Control Protocol - Protocolo de Controle de
Transmissão), segundo [WIKIPEDIA, 2013], “é
um dos protocolos sob os quais assenta o núcleo da Internet (...) já
que ele verifica se os dados são enviados de forma correta, na
sequência apropriada e sem erros, pela rede”.
A maioria dos serviços de internet dependem do protocolo TCP, como o
FTP (descutido adiante) e o HTTP (World Wide Web) (figura
2).
    


 Para garantir a
confiabilidade, o protocolo TCP oferece, segundo [WIKIPEDIA, 2013],
os seguintes recursos: 



A orientação à
 conexão;


Uma comunicação
 fim-a-fim;


A recuperação de
 pacotes perdidos;


A eliminação de
 pacotes duplicados;


A recuperação da
 ligação em casos de problemas no sistema e na rede;


Full Duplex -
 transferência simultânea entre ambas as direções;


Handshake -
 mecanismo de estabelecimento e finalização de conexão a três e
 quatro tempos, respectivamente, o que permite a autenticação e
 encerramento de uma sessão completa, garantindo;


Entrega ordenada;


Controle de Fluxo.



2.2Procotolo UDP

O protocolo UDP
(User Datagram Protocol – Protocolo de Datagramas de Usuário), ao
contrário do TCP, opera a partir do envio de datagramas, e é
considerado como um protocolo não confiável e não orientado à
conexão, uma vez que não há a necessidade de manter o
relacionamento entre o cliente e o servidor. 


O protocolo UDP,
apesar de não ser confiável, oferece vantagens como na transmissão
de dados pouco sensíveis, que não necessitam de controle de erros,
como fluxos de áudio e vídeo, ou para negociação DHCP ou tradução
de endereços por DNS, entre outros [WIKIPEDIA, 2013].

2.3 Protocolo IP

O protocolo IP
(Internet Protocol – Protocolo de Internet) é considerado um dos
mais importantes protocolos presentes na rede, permitindo a
comunicação “entre
duas ou mais máquinas em rede
para encaminhamento
dos dados.” [WIKIPEDIA,
2013]. O mesmo é responsável por definir mecanismos de
representação, o seu encaminhamento e a expedição de pacotes sem
conexão.

O
protocolo IP consegue definir o destinatário de uma mensagem graças
a dois campos: o campo IP que é o endereço da máquina e o campo
máscara de subrede que permite ao protocolo definir a parte do
endereço IP que se designa à rede. Esse endereço IP define em uma
rede a identificação de cada computador. “Especificamente
um endereço IP define o identificador da rede ao qual o host está
conectado e também a identificação de um único computador nessa
rede. (...) Na prática cada endereço IP deve ter um Formato
específico.” [PENTA2,
2013]. 


Porém,
o protocolo IP oferece um serviço de datagramas (unidade básica de
dados no nível IP) em que sua entrega não é garantida. (Um
datagrama é dividido, basicamente, em cabeçalho e dados. O
cabeçalho possui a informação para identificar o datagrama e a
área de dados é onde está encapsulado o pacote da camada superior
(TCP ou UDP)). Ao enviar este datagrama, é possível que ele chegue
desordenado, com pacotes duplicados ou até mesmo a perda de alguns
pacotes, senão todos. 


Para
que ocorra esse encaminhamento de datagramas IP, são utilizados
roteadores através das redes interconectadas na segunda camada que
tipicamente utilizam protocolos IGP e EGP (mais sobre esses
protocolos em [WIKIPEDIA, 2013] e [WIKIPEDIA, 2013]). O envio é
baseado no endereço IP destino contido no próprio datagrama. O
roteamento pode ser dividido em dois tipos: o roteamento direto e o
indireto. No roteamento direto “a
transmissão do datagrama é diretamente de uma máquina à outra.
Duas máquinas podem trabalhar em roteamento direto somente se ambas
estão na mesma rede.” [PENTA2,
2013]. 


A
transmissão direta não envolve gateway pois ambas as máquinas
estão na mesma rede. (Para saber se duas máquinas estão na mesma
rede, deve-se fazer uma comparação entre seus respectivos endereços
IP, de forma específica no que se relaciona ao campo identificador
da rede. Se forem iguais, significa que estão na mesma rede e o
datagrama pode ser enviado diretamente).

A
transmissão indireta é mais complexa. O remetente deve enviar o
datagrama a um gateway que por sequência deve enviá-lo a rede
destinada. 


Supondo
“que
tenham muitas redes interconectadas por gateways, mas só tenham dois
hosts em cada extremo da interconexão das redes. Quando um host quer
enviar ao outro, ele encapsula o datagrama e o envia ao gateway mais
próximo. Uma vez que o quadro chega ao gateway, o software de IP
extrai o datagrama encapsulado, e as rotinas de roteamento IP
selecionam o próximo gateway que formará parte do caminho que
levará o datagrama ao host destino.” [PENTA2,
2013]. (A diferença básica entre gateway e host é que o host
liga-se, de forma direta, à uma rede física e o gateway é o portão
que vai ligar o host de uma rede à outro de outra rede).

2.4
FTP (File Transfer Protocol ou Protocolo de Transferência de
Arquivos) 


"O
serviço de transferência de arquivos mais popular na Internet usa
FTP, o File Transfer Protocol. O FTP é um protocolo de propósito
geral que pode ser usado para copiar um arquivo arbitrário de um
computador para outro."
[COMER, Douglas E., 2013, p. 466]. Ele está localizado na camada de
aplicação, camada correspondente aos programas que são utilizados
para promover a interação entre o computador e o usuário.

 O
FTP é baseado no protocolo TCP e foi projetado para ser executado a
partir de um software ou para uso interativo. 


Outra
característica desse protocolo é que ele utiliza duas conexões TCP
para transmitir arquivos: uma conexão de controle e uma conexão de
dados. A primeira é usada para enviar informações de controle
entre os dois hospedeiros como identificação de usuário, senha,
comandos para trocar diretório remoto e comandos de 'inserir' e
'pegar' arquivos. A conexão de dados é a usada para efetivamente
enviar um arquivo. Como o FTP usa uma conexão de controle separada,
dizemos que ele envia suas informações de controle fora de banda. 


Exemplificado
pela bibliografia referente à [KUROSE, ROSS, 2013, p. 86] e à
figura
3:






Figura
3. Transporte
de arquivos entre sistemas de arquivo local e remoto.

“Quando
um usuário inicia uma sessão FTP com um hospedeiro remoto, o lado
cliente do FTP (usuário) inicia primeiramente uma conexão TCP de
controle com o lado servidor (hospedeiro remoto) na porta número 21
do servidor e envia por essa conexão de controle a identificação e
a senha do usuário, além de comandos para mudar o diretório
remoto. Quando o lado servidor recebe, pela conexão de controle, um
comando para uma transferência de arquivo (de ou para o hospedeiro
remoto), abre uma conexão TCP de dados. Assim, com FTP, a conexão
de controle permanece aberta durante toda a sessão do usuário, mas
uma nova conexão de dados é criada para cada arquivo transferido
dentro de uma sessão (ou seja, a conexão de dados é não
persistente).”

No
decorrer de todo o processo de transferência, o usuário deve manter
o servidor informado em relação ao seu status. Esse monitoramento
do diretório corrente do usuário limita significativamente o número
total de sessões que o FTP pode manter simultaneamente.

O
acesso ao servidor pode acontecer através de uma interface ou
através da linha de comando. “Mesmo
que o FTP seja um protocolo orientado a linha de comandos, a nova
geração dos clientes FTP esconde esta orientação num ambiente
gráfico, muitas vezes, muito desenvolvido.” [WIKIPEDIA,
2013].

2.5
Protocolo SMTP

O
principal protocolo da camada de aplicação para o correio
eletrônico é o SMTP(Simple Mail Transfer Protocol ou Protocolo de
transferência de e-mail simples). Ele “É
um protocolo relativamente simples, baseado em texto simples, onde um
ou vários destinatários de uma mensagem são especificados (e, na
maioria dos casos, validados) sendo, depois, a mensagem transferida.”
[WIKIPEDIA,
2013].

Embora
tenha muitas qualidades boas, como evidencia sua ubiquidade, este
protocolo é muito antigo, mais antigo que o protocolo HTTP e por
isso suas características possuem um certo grau de arcadismo. O
protocolo SMTP "restringe
o corpo (e não apenas o cabeçalho) de todas as mensagens de correio
ao simples formato ASCII de 7 bits" [KUROSE,
ROSS, 2013, p. 89], exigindo codificação dos binários em ASCII
antes de ser enviado pelo SMTP.

Para
ilustrar essa operação básica do SMTP, usa-se o exemplo presente
na bibliografia referente à [KUROSE, ROSS, 2013, p. 90]:




 


Figura 4. Etapas no
envio de uma mensagem entre usuários.

“1.
Alice chama seu agente de usuário para e-mail, fornece o endereço
de Bob (por exemplo, bob@someschool.edu), compões uma mensagem e
instrui o agente de usuário a enviar a mensagem.

2.
O agente de usuário de Alice envia a mensagem para seu servidor de
correio, onde ela é colocada em uma fila de mensagens.

3.
O lado cliente do SMTP, que funciona no servidor de correio de Alice,
vê a mensagem na fila e abre uma conexão TCP para um servidor SMTP,
que funciona no servidor de correio de Bob.

4.
Após alguns procedimentos iniciais de apresentação, o cliente SMTP
envia a mensagem de Alice para dentro da conexão TCP.

5.
No servidor de correio de Bob, o lado servidor do SMTP recebe a
mensagem e a coloca na caixa postal dele.

6.
Bob chama seu agente de usuário para ler a mensagem quando for mais
conveniente para ele.”

O
SMTP normalmente não usa servidores de correio intermediários para
enviar correspondência. A conexão TCP realizada entre os servidores
é direta, mesmo que os dois servidores estejam situados em lugares
muito distantes.

3.
Classificação

 
 
 
 
 

  
Protocolos

  
Modelo
   ISO/OSI

  
Modelo
   TCP/IP

  
Orientação

 

  
Protocolo
   IP

  
Presente
   na camada 3 (rede), essa parte é responsável pelas conexões
   entre as redes locais, estabelecendo assim a interconexão.

  
Presente
   na camada 2 (inter-rede), essa parte é responsável pelas
   conexões entre as redes locais, estabelecendo assim a
   interconexão.

  
Não
   confiável

 

  
Protocolo
   TCP

  
Presente
   na camada 4 (transporte), essa parte controla a comunicação
   host-a-host.

  
Presente
   na camada 3 (transporte), essa parte controla a comunicação
   host-a-host.

  
Confiável

 

  
Protocolo
   UDP

  
Presente
   na camada 4 (transporte), essa parte controla a comunicação
   host-a-host.

  
Presente
   na camada 3 (transporte), essa parte controla a comunicação
   host-a-host.

  
Não
   confiável

 

  
Protocolo
   FTP

  
Presente
   na camada 7 (aplicação), essa parte contém todos os protocolos
   para um serviço específico de comunicação de dados em um nível
   de processo-a-processo 
   

  
Presente
   na camada 4 (aplicação), essa parte contém todos os protocolos
   para um serviço específico de comunicação de dados em um nível
   de processo-a-processo 
   

  
Confiável

 

  
Protocolo
   SMTP

  
Presente
   na camada 7 (aplicação), essa parte contém todos os protocolos
   para um serviço específico de comunicação de dados em um nível
   de processo-a-processo 
   

  
Presente
   na camada 4 (aplicação), essa parte contém todos os protocolos
   para um serviço específico de comunicação de dados em um nível
   de processo-a-processo 
   

  
Confiável

 


4.
Conclusão

Os
protocolos aqui apresentados, apesar de em pequeno número, servem de
indicativo para a gama de aplicações distintas dos diferentes
protocolos de rede, cada qual com sua utilidade, na medida em que
suprem os mais variados serviços de comunicação de dados. 



5.
Referências

COMER,
Douglas E., “Rede
de computadores e internet - Abrange Transmissão de Dados, Ligações
Inter-Redes, Web e Aplicações”
- 4ª Ed., Bookman Companhia Editora Ltda., uma divisão da Artmed
Editora SA, Copyright 2007, página 466.

FOROUZAN, Behrouz
A., "Comunicação
de Dados e Redes de Computadores",
4ª Ed., Editora McGraw Hill, página 29.

GALLO, Michael A. e
HANCOCK, William M., "Comunicação
entre Computadores e Tecnologias de Rede",
Editora Thomsom, página 6.

GALLO, Michael A. e
HANCOCK, William M., "Comunicação
entre Computadores e Tecnologias de Rede",
Editora Thomsom, página 248.

GALLO, Michael A. e
HANCOCK, William M., "Comunicação
entre Computadores e Tecnologias de Rede",
Editora Thomsom, página 249.

KUROSE,
James F. e ROSS, Keith W., “Rede
de computadores e a internet - Uma abordagem Top-Down” -
5ª Ed., Pearson Education, Inc., página 86.

KUROSE,
James F. e ROSS, Keith W., “Rede
de computadores e a internet - Uma abordagem Top-Down” -
5ª Ed., Pearson Education, Inc., página 89.

KUROSE,
James F. e ROSS, Keith W., “Rede
de computadores e a internet - Uma abordagem Top-Down” -
5ª Ed., Pearson Education, Inc., página 90.

PENTA2.
Campos
IP.
Disponível em &lt;http://penta2.ufrgs.br/Esmilda/camposip.html&gt;.
Acesso em 19 de novembro de 2013.

PENTA2.
Endereços
Internet.
Disponível em &lt;http://penta2.ufrgs.br/Esmilda/endereco.html&gt;.
Acesso em 19 de novembro de 2013.

PENTA2.
Roteamento
Direto.
Disponível em &lt;http://penta2.ufrgs.br/Esmilda/direto.html&gt;.
Acesso em 19 de novembro de 2013.

PENTA2.
Roteamento
Indireto.
Disponível em &lt;http://penta2.ufrgs.br/Esmilda/indireto.html&gt;.
Acesso em 19 de novembro de 2013.

PENTA2.
Roteamento
IP.
Disponível em &lt;http://penta2.ufrgs.br/Esmilda/enrotame.html&gt;.
Acesso em 19 de novembro de 2013.

WIKIPEDIA. Camada
de Transporte.
Disponível em &lt;http://pt.wikipedia.org/wiki/Camada_de_transporte&gt;.
Acesso em 19 de novembro de 2013.

WIKIPEDIA.
Comandos
do cliente FTP.
Disponível em
&lt;http://pt.wikipedia.org/wiki/File_Transfer_Protocol#Comandos_do_cliente_FTP&gt;.
Acesso em 19 de novembro de 2013.

WIKIPEDIA.
Exterior
Gateway Protocol (EGP).
Disponível em &lt;http://pt.wikipedia.org/wiki/EGP&gt;. Acesso em 19
de novembro de 2013.

WIKIPEDIA.
Endereçamento
IPv4 e encaminhamento.
Disponível em
&lt;http://pt.wikipedia.org/wiki/Protocolo_IP#Endere.C3.A7amento_IPv4_e_encaminhamento&gt;.
Acesso em 19 de novembro de 2013.

WIKIPEDIA.
Interior
Gateway Protocol (IGP).
Disponível em
&lt;http://pt.wikipedia.org/wiki/Interior_gateway_protocol&gt;.
Acesso em 19 de novembro de 2013.

WIKIPEDIA.
 Protocolo
IP.
Disponível em &lt;http://pt.wikipedia.org/wiki/Protocolo_IP&gt;.
Acesso em 19 de novembro de 2013.

WIKIPEDIA.
Simple
Mail Transfer Protocol.
Disponível em
&lt;http://pt.wikipedia.org/wiki/Simple_Mail_Transfer_Protocol&gt;.
Acesso em 19 de novembro de 2013.

WIKIPEDIA.
Transmission
Control Protocol.
Disponível em
&lt;http://pt.wikipedia.org/wiki/Transmission_Control_Protocol&gt;.
Acesso em 19 de novembro de 2013.


WIKIPEDIA.
User
Datagram Protocol.
Disponível em &lt;http://pt.wikipedia.org/wiki/User_Datagram_Protocol&gt;.
Acesso em 19 de novembro de 2013.