Skip to content

PROTOCOLOS DE COMUNICAÇÃO EM REDES DE COMPUTADORES

abril 8, 2011

Daniella  Castelucci

Mestranda em Engenharia da Informação

Universidade Federal do ABC – UFABC

Abril/2011

Resumo: Na comunicação entre computadores é importante que haja uma padronização para possibilitar que equipamentos diferentes consigam trocar informações entre si. O modelo de representação de rede em camadas tornou mais próximas as estruturas de comunicação entre entidades, e os protocolos possibilitam a transmissão da informação entre as camadas e entre equipamentos.

Palavras-chave: OSI, camadas, protocolos, TCP/IP, Ethernet, LAN

Abstract: For computers to communicate properly it is important to have standards to be followed by manufacturers In order to allow different equipments to understand and send information. The layers representation model approximated the communication schema from entities, and the protocols enabled data transmission between layers and equipments.

Keywords: OSI, layers, protocols, TCP/IP, Ethernet, LAN

 

  1. 1.   INTRODUÇÃO

Na comunicação entre computadores é essencial que um conjunto de regras seja estabelecido, afinal as entidades, sejam elas desktops, servidores, aparelhos de telefonia ou qualquer outro dispositivo conectado em rede, nem sempre se comunicam através da mesma linguagem. Assim sendo, um protocolo de rede é um conjunto de regras e padrões utilizado para possibilitar a comunicação entre dispositivos diferentes.

O objetivo deste trabalho é apresentar o modelo conceitual de comunicação entre computadores, e sua aplicação prática. Os protocolos escolhidos para serem apresentados são os mais utilizados no mercado na mais abrangente rede do mundo: a Internet.

Como as redes são formadas de vários componentes, físicos e lógicos, a comunicação é estabelecida através de camadas.  Desta maneira, a comunicação é estabelecida através de pilhas de protocolos. As camadas de rede são abordadas no tópico 2. Nesta seção são discutidas as arquiteturas de rede mais comuns e, especialmente, a arquitetura OSI e uma comparação desta com o modelo prático TCP/IP.

Os protocolos são formados por elementos-chave que os identificam e que definem como estas regras serão interpretadas pelas entidades componentes da comunicação. Estes elementos são discutidos em detalhes na seção 3. Nesta seção ainda são apresentadas as classificações dos protocolos, ou seja, a finalidade de cada tipo de protocolo considerando o modelo de 4 camadas usado na internet.

A seção 4 traz as considerações finais após a pesquisa nestes assuntos e os apontamentos relativos à importância dos protocolos e padronização de camadas para o surgimento de grandes redes, inclusive para o surgimento da Internet.

  1. 2.   ARQUITETURA EM CAMADAS

A arquitetura em camadas pode ser facilmente entendida através de exemplos do dia-a-dia. A figura abaixo ilustra uma troca de correspondência entre amigos para exemplificar como os dispositivos de rede utilizam as camadas para trocar mensagens:

Figura 1: Exemplo de comunicação [1]

Através deste exemplo é possível extrair também que as ações devem seguir uma certa hierarquia, ou seja, ordem de acontecimento, para que a comuincação seja efetivada. Ou seja, não é possível classificar e enviar a carta ao receptor antes que esta seja escrita pelo emissor.

O modelo de referência OSI foi criado pela ISO em 1978 para ser um sistema de conexão entre dispositivos através da padronização de protocolos e padrões. Desde 1984, este é o padrão mundial em modelo conceitual. Este modelo apresenta a esquematização de trabalho conjunto entre hardware e software para possibilitar a comunicação entre dispositivos. O modelo OSI é, porém, um modelo muito mais teórico que prático [6]

 A figura abaixo representa as camadas do modelo OSI, que serão descritas uma a uma:

Figura 2: Modelo OSI [7]

- Camada de aplicação: representa a comunicação com os usuários e fornece serviços básicos de comunicação. Os aplicativos que costumam estar nesta camada são bancos de dados, e-mail, FTP e HTTP. Esta aplicação serve como uma “janela” de acesso entre os aplicativos e os serviços da rede.

- Camada de apresentação: é responsável por definir o formato da troca de dados entre os computadores. Funciona no papel de um tradutor para os protocolos, a criptografia, compressão d edados e outras tarefas.

- Camada de sessão: uma sessão é um canal de comunicação entre duas aplicações que estão sendo executadas em computadores diferentes. A camada de sessão é responsável por gerenciar o diálogo entre os aplicativos de forma que estas possam abrir, usar e fechar uma sessão. É nesta camada que são executadas as funções de reconhecimento de nomes e segurança.

- Camada de transporte: é responsável pela integridade dos pacotes de informação, garantindo uma comunicação confiável. Esta integridade é possível graças ao envio de sinais ACK entre as partes (sinais confirmando que a comunicação foi foita corretamente, enviado do receptor ao transmissor). É nesta camada que opera o protocolo TCP.

- Camada de rede: é usada para identificar os endereços dos sistemas na rede, e para transmitir os dados de fato. A camada de rede deve conhecer o meio físico da rede e empacotar a informação de tal modo que a camada de link possa enviá-la para a camada física. Em muitas redes esta camada não verifica a integridade da informação, simplesmente executando o empacotamento da informação.

- Camada de link ou MAC: é usada para definir como a informação será transmitida pela camada física e garantir o bom funcionamento desta camada. Havendo algum erro na transmissão da informação no meio físico, como rompimento de um cabo ou colisões de dado, a camada MAC deve tratar estes erros ou comunicar às camadas superiores deste fato.

- Camada física: é formada pelo hardware usado na conexão dos diferentes sistemas de rede, como cabos, fibras e conectores. Nesta camada a informação está codificada na forma de sinais elétricos.

            Desta forma, a rede consiste de sucessivos encapsulamentos de protocolos, de tal maneira que um protocolo de nível superior corresponde aos dados e um nível inferior, sendo este o carrier da informação [8]. O funcionamento desta sucessão de protocolos por camada é representado na imagem abaixo:

AH = Application Header (Cabeçalho do protocolo de aplicação);
PH = Presentation Header (Cabeçalho do protocolo de Apresentação);
SH = Session Header (Cabeçalho do protocolo de Sessão);
TH = Transport Protocol (Protocolo de Trasporte);
NH = Network Protocol (Protocolo de Rede)
DH = Data Link Protocol (Protocolo de Elo de Dados)
DATA = Os dados transferidos
DT = Data Termination (Sinalizador de final de pacote)

Figura 3: Transmissão de dados por protocolos [8]

Quando novos fabricantes desenvolvem seus produtos de rede, baseiam-se no modelo OSI, garantindo que sistemas diferentes possam se comunicar. Porém, existem ainda produtos que foram criados antes da aceitação do modelo OSI, e que seguem seus próprios modelos.

2.2. Arquitetura TCP/IP

O modelo utilizado na Internet é o modelo de 4 camadas, também chamado TCP/IP (os protocolos do padrão de internet serão apresentados na seção 3). O modelo abaixo apresenta as diferenças entre as camadas da arquitetura OSI e do TCP/IP:

Figura 4: Comparação das camadas [9]

      A camada de aplicação corresponde às camadas de aplicação, apresentação e sessão do modelo OSI. Esta camada conecta as aplicações à rede e é nela que estão os protocolos de aplicação cliente/servidor. É na camada deaplicação que tem início o processo de transmissão de dados. É acessada por duas interfaces de transporte: Windows Sockets e NETBIOS. Alguns dos protocolos que formam esta camada são SMTP (Simple Mail Transfer Protocol), HTTP (HyperText Transfer Protocol), FTP (File Transfer Protocol) e DNS (Domain Name System). Quando um programa cliente de email executa o comando de verificar novas mensagens, por exemplo, este pedido será feito para a camada de Aplicação do TCP/IP e será atendido pelo protocolo SMTP. Quando um endereço Web é acessado através do navegador de internet, este irá se comunicar com a camada de aplicação do TCP/IP e será atendido pelo protocolo HTTP.

A camada de aplicação comunica-se com a camada de transporte através de uma porta. As portas são numeradas e as aplicações padrão utilizam sempre a mesma porta. O SMTP utiliza sempre a porta 25, o HTTP utiliza a porta 80 e o FTP utiliza as portas 20 e 21. O uso de portas é importante para que o protocolo de transporte identifique qual é o tipo de conteúdo do pacote de dados e para que o receptor identifique para qual aplicação o pacote deverá ser enviado.

A figura abaixo ilustra a comunicação através de portas:

Figura 5: Comunicação entre portas [9]

A camada de transporte do modelo TCP/IP corresponde à camada homônima do modelo OSI. Esta camada grante a comunicação entre os hosts e transmite dados entre a camada de aplicação e a camada de internet, transformando os dados em pacotes. Tem como funções:

- Reconhecimento de recebimento de pacotes

- Controle de fluxo

- Sequenciamento de pacotes

- Retransmissão de pacotes

            Nas redes TCP/IP cada computador é identificado com um endereço virtual único (o endereço IP). A função da camada de Internet é adicionar um cabeçalho ao pacote de dados em que, além de alguns dados de controle, contém os endereços IP do transmissor e do receptor.

            A camada de Interface com a Rede corresponde às camadas de link, dados e física do modelo OSI. Esta camada é responsável pelo envio dos datagramas construídos na camada de internet como meio físico. Os aspectos físicos da camada de interface com a rede  e os protocolos utilizados dependem do tipo de rede física em que está certo dispositivo. O tipo mais comum de rede, tanto cabeada quanto wireless, é a Ethernet.

2.1.2.  O modelo Ethernet

As redes Ethernet podem transportar até 1.500 bytes de dados. Por isso, o sistema operacional configura o protocolo IP automaticamente para criar datagramas com 1.500 bytes ao invés de 65.535 (o tamanho real dos datagramas é 1.497, pois a camada LLC utiliza 3 ou 5 para adicionar seu cabeçalho). O modelo Ethernet possui três camadas, que são equivalentes à Interface com a Rede do modelo TCP/IP:

Figura 6: Camadas Ethernet [9]

A camada LLC (controle do link lógico) é responsável por adicionar informações sobre qual protocolo da camada Internet foi responsável por gerar os dados. Assim, durante a recepção dos dados o computador receptor pode saber qual protocolo deve utilizar na camada Internet para receber os dados.

A camada MAC (controle de acessoao meio) é responsável por montar o quadro que será enviado para a rede. Esta camada é responsável por adicionar o endereço MAC de origem e de destino ao pacote (endereço físico da placa de rede). Quando os pacotes são destinados a outras redes que não a local, o endereço MAC inserido como destino será o do roteador que será utilizado. Os protocolos que definem esta camada são o IEEE 802.3 para redes com cabos físicos e IEEE 802.11 se for uma rede wireless.

A Física é a camada mais baixa do modelo TCP/IP. Ela é responsável por converter o quadro gerado pela camada MAC em sinais elétricos (no caso de redes com cabo físico) ou eletromagnéticos (para redes wireless). No IEEE a camada física é definida pelos mesmos protocolos que a camada MAC.

No fim do empacotamento, o dado irá conter cabeçalhos de todas as camadas do modelo TCP/IP e ainda o cabeçalho das sub camadas Ethernet. Na figura abaixo é apresentado um esquema da composição do pacote e da quantidade de informações que compõem o pacote que são relacionadas ao dado em si (data) e as informações de cabeçalhos de protocolos:

Figura 7: Cabeçalhos de protocolos [9]

 

  1. 3.   PROTOCOLOS DE REDE

Os protocolos, sendo um conjunto de regras de comunicação, são por si mesmos regidos por elementos-chave que os definem. Estes elementos são os seguintes:

- Sintaxe: é o formato dos dados e a ordem segundo a qual os dados são apresentados. Ou seja, são as regras que definem o papel que cada posição de byte tem em termos de funcionalidade na mensagem – a “gramática” da linguagem usada na comunicação.

- Semântica: é o significado de cada conjunto sintático para dar sentido à mensagem

- Timing: define qual deverá ser a velocidade de transmissão dos pacotes (“pedaços” de mensagens). O timing visa definir uma velocidade aceitável de comunicação que seja suportado por ambas entidades que estão se comunicando.

Um protocolo desempenha as seguintes funções na comunicação:

- Endereçamento: especificação do ponto de destino da mensagem

- Numeração e sequência: identificação de cada mensagem através de um número sequencial

- Estabelecimento da conexão: criação de um canal lógico fechado (“túnel”) entre o transmissor e o receptor da mensagem

- Controle de erros: identificação e correção dos erros na comunicação

- Retransmissão: repetição da mensagem uando esta é repetida ou sinal ACK não é recebido

- Confirmação de recebimento: envio do sinal ACK quando cada segmento da mensagem é recebido

- Conversão de código: adequação do código às características do destinatário

Conforme mencionado anteriormente, as entidades de rede podem não falar o mesmo idioma, ou seja, não utilizar o mesmo protocolo para comunicação. Desta forma, faz-se necessário o uso de um “tradutor” para estabelecer a conexão. Os gateways, entre outras funções, desempenham o papel de estabelecimento de comunicação em uma rede com heterogenia de protocolos. Um gateway pode ser um computador pessoal com mais de uma placa de rede ou então um dispositivo dedicado. Quando se configura uma rede que irá usar um gateway para estabelecer a comunicação, é necessário configurar o endereço deste equipamento para permitir o acesso das máquinas à rede.

Para cada tipo ou conjunto de protocolos é definido um padrão. Existem dois tipos de padrões:

- de facto: são padrões que são usados pela comunidade, principalmente por fabricantes quando lançam novos produtos, mas que ainda não foram aprovados por um comitê reconhecido, como ISO ou ANSI. Um exemplo é o protocolo IP.

- de jure: são padrões ou protocolos que foram reconhecidos por comitês reguladores. Um exemplo é a arquitetura OSI. Estes padrões de jure já passaram pelo status de facto e tiveram suas especificações submetidas a um corpo avaliador no formato RFC (request for change), até que tiveram sua versão final aprovada.

3.1. Protocolos de camadas da Internet

O conjunto de protocolos utilizados para a comunicação entre computadores através da Internet, também chamado de conjunto TCP/IP, foi desenvolvido pelo Departamento de Defesa do governo Norte-Americano para permitir a comunicação entre diferentes redes, compostas por vários tipos de computador. A família de protocolos TCP/IP é especialmente popular por não ser proriedade de nenhum fornecedor específico. Assim sendo, é amplamente suportado no mercado. Existem protocolos específicos para cada camada do modelo, e a figura abaixo ilustra a classificação destes protocolos:

Figura 8: Protocolos por camada. [10]

3.1.1. Protocolo HTTP

O HTTP é um protocolo da camada de aplicação que utiliza a porta de rede 80. Ele permite a transferência de dados na forma de textos simples, hipertexto, áudio, vídeo e outras. É usado em ambientes onde há transições rápidas de um documento para outro, como páginas de internet.

Este protocolo tem características parecidas com os protocolos FTP e SMTP, que permite a transferência de arquivos usando serviços do TCP. Ele é, porém, muito mais simples que o FTP e utiliza apenas uma conexão TCP, da porta 80. Através desta porta os dados são transferidos entre cliente e servidor.

As mensagens HTTP não se destinam diretamente ao usuário. Estas são interpretadas pelo cliente HTTP – o navegador. A ideia do HTTP é um cliente enviar um pedido, na forma de mensagem, ao servidor, e o servidor enviar a resposta, também na forma de mensagem, ao cliente.

3.1.4. Protocolo TCP

O protocolo TCP fornece o serviço de entrega de dados orientados à conexão de maneira confiável e full-duplex, ou seja, antes de transmitir os dados é necessário que haja uma conexão estabelecida. O processo de conexão é conhecido como three-way-handshake e ocorre da seguinte maneira:

1)             A origem inicia a conexão enviando um pacote do tipo SYN que contém o número da porta que se deseja usar na conexão e o número de sequência inicial

2)             O destino reconhece um sinal do tipo ACK, que consiste do pacote SYN de origem mais um

3)             A origem reconhece o ACK com o número do sinal SYN do destino mais um

A transmissão de pacotes é feita em grupos, e a cada pacote é atribuído um número de sequência e uma confirmação de recebimento é usada para garantir que o destino recebeu o pacote. Caso a origem não receba a confirmação, o pacote é reenviado. É comum que os pacotes cheguem fora de ordem a destino, o que reforça a necessidade de numeração correta dos pacotes.

O janelamento TCP consiste na regulagem da quantidade de informação que pode ser transmitida por uma conexão TCP antes que um ACK seja recebido. A grante vantagem do TCP é a confiabilidade.

3.1.5. Protocolo UDP

Este protocolo não é orientado à conexão e, portanto, não é reconhecido como confiável. Não há garantia de que os dados foram realmente recebidos pelo destino, sendo adequado para pequenas quantidades de dados em que a garantia de entrega não é mandatória. Alguns exemplos deste tipo de uso são os broadcasts e os multicasts, como videoconferências.

As portas usadas pelo UDP não são as mesmas do TCP, e o UDP tem a transmissão mais rápida.

3.1.6. Protocolo IP

Este protocolo é responsável pelo endereçamento do pacote a ser transmitido, adicionando um cabeçalho que permite o roteamento do pacote pela rede até que este seja entregue no destino correto. Em um pacote IP estão os endereços IP da origem e do destino, um identificador de protocolo, um valor calculado para verificar erros e um TTL (informação em segundos do tempo que o pacote poderá permanecer na rede, evitando loop infinito de tráfego).

3.2.        Protocolos de roteamento

O roteamento de pacotes pode ser estático ou dinâmico. Nas redes locais pequenas é utilizado o roteamento estático, ou seja, o caminho percorrido pelos datagramas para alcançarem seu destino é sempre o mesmo. Na Internet, o roteamento feito é dinâmico, ou seja, os roteadores podem mudar a rota dos pacotes a qualquer momento caso hajam caminhos melhores para alcançar um destino. A melhor rota é aquela em que forem necessários menos saltos (roteadores intermediários), porém não necessariamente rotas mais curtas são mais rápidas.

3.2.1.   RIP

O protocolo RIP (Routing Information Protocol) utiliza a porta 520 do UDP. Através deste protocolo, os roteadores enviam suas tabelas de roteamento para todos os outros roteadores a que têm acesso a cada 30 segundos. Esta tabela contém todas as redes que cada roteador conhece e o caminho para alcançá-las, além da quantidade de saltos até elas. É desta maneira que um roteador pode descobrir se há um caminho mais curto para o destino de um pacote a cada momento.

O problema do protocolo RIP é que nem sempre o caminho mais curto é o mais rápido, e por isso um caminho eficiente pode ser trocado por outro curto, mas mais demorado. Também não verifica se há congestionamento no caminho.

3.2.2.   OSPF

O protocolo OSPF não busca pelo caminho mais curto, mas pelo maisrápido. Para isso, os roteadores enviam aos outros mensagens chamadas “hello” – assim, é possível saber quais roteadores da rede estão ativos e em que estado. Este protocolo também permite o balanceamento da carga, ou seja, se houver mais de uma rota para um destino, é possível dividir os datagramas e reduzir o tráfego em cadaum dos caminhos.

O OSPF funciona na camada internet juntamente com o protocolo IP. Assim, ele não utiliza o protocolo TCP nem o UDP.

3.2.3.   BGP

Este é o protocolo utilizado pelos roteadores de Internet, sendo classificado como protocolo externo (tanto o RIP quanto o OSPF são considerados protocolos internos). O BGP agrupa roteadores e computadores sob uma mesma administração como uma unidade chamada Sistema Autônomo (SA).

O BGP é chamado de IBGP quando se trabalha dentro de um sistema autônomo, e EBGP se trabalha entre sistemas autônomos diferentes.

Este protocolo é muito mais complexo que os mencionados anteriormente, já que usa diversos critérios para determinar a melhor rota a ser tomada. Ele utiliza a porta 179 do TCP.

  1. 4.    Considerações finais

O mundo como conhecemos hoje, em que o conhecimento é global e não existem barreiras geográficas delimitando o alcance de pesquisas, só se tornou possível graças ao surgimento da Internet. E este surgimento só foi possível a partir do momento em que as empresas aceitaram adotar um padrão para a comunicação entre computadores.

As organizações que regulam os padrões de indústria, como IEEE e ISO, têm um papel fundamental ao certificar certos padrões para que os fabricantes sejam incentivados a produzir equipamentos compatíveis entre concorrentes. Com os padrões aceitos como suportados por diversas empresas, arquivos podem ser trocados entre quaisquer cidadãos do mundo.

As pesquisas em desenvolvimento de protocolos mais seguros e mais eficientes continuam, já que estamos em um tempo em que a segurança e a economia de recursos físicos necessários para transportar os dados são prioridades. A Google tem trabalhado no desenvolvimento do SPDY, protocolo open source que funciona na camada de aplicação e visa substituir tanto o HTTP quanto o TCP. O laboratório Chromium é responsável por este desenvolvimento. O principal concorrente deste protocolo é o Bayeux, desenvolvido pela Dojo no projeto Comet. O Bayeux é executado sobre o HTTP, ao invés de substituí-lo como faz o SPDY. Ainda não se sabe qual dos dois novos protocolos irão formar a nova camada de aplicação (ou aplicação e transporte) de internet nos próximos anos, mas pelo estado da arte das pesquisas já pode-se notar que a segurança e a eficiência têm sido o principal fator de escolha de um certo padrão.

  1. 5.    Bibliografia

[1] FOROUZAN, Behrouz. Comunicação de Dados e Redes de Computadores. 3ª Edição. Bookman Companhia Ed. Porto Alegre, 2006.

[2] GALLO, Michael A. HANCOCK, William M. Comunicação entre Computadores e Tecnologias de Redes. 1ª Edição. Thomson Pioneira. São Paulo, 2003.

[3] ROSS, Julio. Redes de Computadores. 1ª Edição. Editora Antenna. Rio de Janeiro, 2008.

[4] MORIMOTO, Carlos E. Gateway. Publicado em 26/6/2005. Acessado em 26/3/2011. Disponível em http://www.hardware.com.br/termos/gateway

[5] LAMENZA, Guilherme Rebello. Uma Introdução ao Netware. Universidade Federal do Rio de Janeiro. Acessado em 26/3/2011. Disponível em http://www.gta.ufrj.br/grad/anteriores98/netware-guilherme/netware.html

[6] FARIAS, Paulo C. B. Curso Essencial de Redes. 1ª Edição. Editora Digerati. São Paulo, 2006.

[7] Computer Desktop Encyclopedia. The OSI Model. Acessado em 26/3/2011. Disponível em http://www.computerlanguage.com/productsans.htm.

[8] Divisão de Mecânica Espacial e Controle do INPE. O Modelo OSI. Acessado em 27/3/2011. Disponível em http://www2.dem.inpe.br/ulisses/estudos/adm-redes/arquitetura-osi.htm

[9] TORRES, Gabriel. LIMA, Cassio. Como o Protocolo TCP/IP Funciona. Clube do Hardware. Acessado em 27/3/2011. Disponível em http://www.clubedohardware.com.br/artigos/1351

[10] RAUBER, Fábio Kaiser. Tudo sobre TCP/IP. Baboo. Acessado em 31/3/2011. Disponível em http://www.baboo.com.br/conteudo/modelos/Tudo-sobre-TCP-IP_a4528_z0.aspx.

About these ads
2 Comentários leave one →
  1. Henrique permalink
    outubro 5, 2011 3:36 pm

    oi precisava aqui de uma ajuda.
    Ando a procura de normas sobre redes e não as encontro em lado nenhum.
    É que preciso mesmo de saber.

  2. Leandro Marcel permalink
    outubro 1, 2012 9:28 am

    Muito bom, resumido e eficiente….Está de parabéns…

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

Seguir

Obtenha todo post novo entregue na sua caixa de entrada.

%d blogueiros gostam disto: