3
3
3
Protocolos de Comunicação
Redes de Computadores
Protocolos de Comunicação
Iniciar
introdução
Introdução
Olá, estudante! Os protocolos de comunicação são essenciais para que uma rede funcione
plenamente, permitindo a interoperabilidade entre elementos que estão nela interligados.
Nesta unidade, serão apresentados os protocolos utilizados nas principais camadas dos
modelos de referência OSI e TCP/IP: a camada de aplicação, permitindo que aplicações possam
se comunicar em diferentes máquinas na rede; a camada de transporte, que providencia o
transporte para uma comunicação fim a fim entre as aplicações; a camada de rede, que realiza
o encaminhamento correto dos pacotes de dados na rede; e as camadas física e enlace, que
atuam na transmissão dos dados pelos meios de comunicação. Bons estudos!
As aplicações são um dos motivos pelos quais os protocolos de comunicação foram criados,
tendo como exemplo aplicações de acesso remoto, transferência de arquivos, correio
eletrônico e a World Wide Web (www), essa última com um estrondoso sucesso na década de
1990 (KUROSE; ROSS, 2010).
Figura 3.1 - Comunicação de uma aplicação de rede entre sistemas finais na camada de
aplicação
Figura 3.1 - Comunicação de uma aplicação de rede entre sistemas finais na camada de
aplicação
Fonte: Kurose e Ross (2010, p. 63).
Aplicação
Perda de dados
Largura de banda
Atraso
Transferência de arquivos
Sem perda
Elástica
Não
E-mail
Sem perda
Elástica
Não
Documentos Web
Sem perda
Não
Tolerante à perda
Áudio/vídeo armazenado
Tolerante à perda
Igual acima
Mensagem instantânea
Sem perda
Elástica
Sim e não
A seguir, falaremos sobre como as aplicações são utilizadas nas arquiteturas mais conhecidas e
os principais protocolos da camada de aplicação.
Arquiteturas de Aplicação de Rede
As aplicações de rede são elaboradas inicialmente pela sua arquitetura, e as mais utilizadas são
a arquitetura cliente-servidor e peer-to-peer (P2P). A base dessas arquiteturas de aplicações é
a comunicação entre processos. Teremos processos sendo executados em diferentes máquinas
que estão trocando informações pela rede (KUROSE; ROSS, 2010).
saiba mais
Saiba mais
Além das arquiteturas cliente-servidor e peer-to-peer, está sendo muito utilizada a arquitetura
de sistemas distribuídos para as aplicações em rede. Segundo Colouris et al. (2013), “um
sistema distribuído é aquele no qual os componentes localizados em computadores
interligados em rede se comunicam e coordenam suas ações apenas passando mensagens”.
Um exemplo de recurso utilizado nos sistemas distribuídos são os serviços web (ou web
services), em que interfaces são disponibilizadas em rede para o provimento de serviços. Leia o
artigo “Serviços web e a evolução dos serviços em TI”, que retrata a integração dos serviços
web com e-business, no link disponível.
ACESSAR
No tema a seguir, falaremos de um dos protocolos de comunicação utilizado na camada de
aplicação, o protocolo HTTP.
HTTP
Segundo Tanenbaum e Wetherall (2011), a web, ou World Wide Web, é uma estrutura
arquitetônica que permite o acesso a documentos vinculados espalhados por milhões de
máquinas na Internet. A web começou em 1989 no CERN, o European Center for Nuclear
Research, e a ideia inicial era ajudar grandes equipes, com membros espalhados em vários
países com fusos diferentes, atuando na colaboração de uma teia de documentos relacionados
à física de partículas.
Os documentos da web, conhecidos como páginas web, apresentam textos formatados por
meio da linguagem HTML (HyperText Markup Language) e links que conectam com outras
páginas, sendo tratado como um hipertexto. Por meio de navegadores web (ou browsers), é
possível visualizar e navegar entre as páginas web. Os documentos web ficam armazenados
em máquinas servidoras, conhecidas como servidores web (web servers) e funcionam dentro
da arquitetura cliente-servidor. O protocolo utilizado para a troca desses documentos web
entre cliente e servidor web é o HTTP (HyperText Transfer Protocol).
Na Figura 3.3, podemos ver que a navegação em uma página web através de um navegador
em uma máquina cliente faz a solicitação por meio de uma solicitação HTTP para o servidor
web, o qual responde com o documento solicitado. Dentro desse documento, podem conter
links para outros conteúdos, como um vídeo do YouTube, ou registros de dados, como Google
Analytics.
O servidor web não armazena nenhuma informação sobre os clientes, logo o protocolo HTTP é
dito como um protocolo stateless, ou seja, protocolo sem estado. Porém, é possível que o
cliente e o servidor possam se comunicar por um longo período de tempo pelo protocolo
HTTP, fazendo uso de conexões persistentes ou não persistentes. Nas conexões não
persistentes, são realizadas várias conexões com o servidor web para obter os objetos (por
exemplo, figuras) que fazem parte do conteúdo de uma página web, sendo uma
conexão/requisição por objeto. Nas conexões persistentes, uma conexão apenas permanece
para a transferência de todos os objetos da página web (KUROSE; ROSS, 2010).
Host: www.someschool.edu
Connection: close
User-agent: Mozilla/4.0
Accept-language: fr
O método GET está sendo utilizado para obter o objeto /somedir/page.html do servidor web
www.someschool.edu. O tipo de conexão será não persistente, devido ao parâmetro
Connection com valor close. O navegador sendo utilizado para essa solicitação é o Mozilla e
permite aceitação de documentos em francês, pelo campo Accept-language: fr.
A resposta de uma solicitação HTTP é feita por meio de uma mensagem com um código de
resposta. Esse código pode representar um sucesso, um erro ou uma informação para a
solicitação feita. Segue um exemplo para uma resposta (KUROSE; ROSS, 2010):
HTTP/1.1 200 OK
Connection: close
Content-Length: 6821
Esse exemplo de resposta mostra um código 200, que representa Ok, uma resposta bem-
sucedida. Outros códigos podem ser respondidos, como o 404, no caso de uma página não
encontrada, ou 500, erro interno no servidor. Essa mensagem foi respondida por um servidor
Apache e contém 6821 bytes, representados pelos dados (data) que vêm adicionados à
mensagem, sendo basicamente o objeto HTML solicitado.
FTP
O protocolo FTP (File Transfer Protocol) é utilizado para realizar a transferência de arquivos de
uma máquina para outra. Isso é realizado por um agente de usuário FTP, em que o processo de
uma máquina cliente FTP realiza a transferência com outro processo servidor em uma máquina
remota (ver Figura 3.4).
O protocolo FTP atua de forma similar ao HTTP, porém o FTP utiliza duas conexões para
realizar a transferência de arquivos, uma conexão para controle e outra para dados. A conexão
de controle é utilizada para o envio de informações como usuário e senha, além de comandos
para trocar diretórios remotamente, além de inserir e pegar arquivos. A conexão de dados é
utilizada efetivamente para enviar arquivos (KUROSE; ROSS, 2010).
SMTP
O e-mail, ou correio eletrônico, é uma das aplicações mais conhecidas da Internet, sendo
utilizado como meio de enviar mensagens de forma eletrônica. A arquitetura de um serviço de
correio eletrônico é dividida em dois subsistemas: os agentes do usuário e os agentes de
transferência de mensagens. Os agentes do usuário permitem que as pessoas leiam e enviem
mensagens através de softwares como o Microsoft Outlook ou Mozilla Thunderbird, enquanto
os agentes de transferência de mensagens, também conhecidos como servidores de correio,
deslocam as mensagens da origem até o destino (TANENBAUM; WETHERALL, 2011).
O formato das mensagens SMTP é baseado em campos de cabeçalho, conforme o Quadro 3.2,
a seguir:
Cabeçalho
Significado
To:
Cc:
O(s) endereço(s) de correio eletrônico do(s) destinatário(s) secundário(s)
Co:
From:
Sender:
Received:
Return-path
Os protocolos POP3 e IMAP são utilizados pelos agentes do usuário instalados na máquina
cliente para receber os e-mails do servidor de correio. No caso do HTTP, o serviço de e-mail é
fornecido por meio de uma página web, sendo conhecido como webmail, como é o caso do
Gmail, do Google.
praticar
Vamos Praticar
Assinale a alternativa correta que representa o protocolo utilizado para o envio de e-mails pela
rede.
a) POP3.
b) IMAP.
c) ICMP.
d) SMTP.
e) FTP.
Neste tópico, serão vistos aspectos dos serviços da camada de transporte, bem como os seus
principais protocolos utilizados na Internet, o TCP e o UDP.
Serviços de Transporte
Já no serviço não orientado à conexão não existe a necessidade de estabelecer uma conexão
lógica, não havendo um controle de erros rigoroso, permitindo, assim, a perda de pacotes.
Esse tipo de serviço é mais rápido que o serviço orientado à conexão, sendo indicado para
aplicações cujo desempenho é mais importante que a confiabilidade (MAIA, 2013).
Segundo Tanenbaum e Wetherall (2011), para que os usuários possam utilizar os serviços de
transporte, são utilizadas primitivas através de sua interface na camada de transporte. Essa
interface apresenta o que um serviço da camada de transporte, como o orientado à conexão,
deve fazer. No Quadro 3.3, a seguir, são apresentadas cinco primitivas básicas:
Primitiva
Pacote enviado
Significado
LISTEN
(nenhum)
CONNECT
CONNECTION REQ.
SEND
DATA
Envia informação
RECEIVE
(nenhum)
DISCONNECTION REQ.
Por exemplo, em um serviço orientado à conexão, um servidor executa a primitiva LISTEN, que
irá deixar bloqueado até que uma solicitação de cliente apareça. O cliente pode realizar essa
solicitação através da primitiva CONNECT. Na camada de transporte, os dados da aplicação são
enviados através de segmentos. Junto ao segmento, é adicionado o cabeçalho da camada de
transporte, configurando o chamado TPDU (Transport Protocol Data Unit). Logo, na execução
da primitiva CONNECT do cliente, um segmento é enviado para o servidor denominado
CONNECTION REQ. O servidor é desbloqueado e transmite um segmento CONNECTION
ACCEPTED para o cliente. Nesse momento, a conexão é estabelecida, e qualquer uma das
partes pode utilizar as primitivas SEND e RECEIVE para enviar e receber dados,
respectivamente. A conexão é desfeita então com a primitiva DISCONNECT, o qual terá o envio
de um segmento DISCONNECTION REQ.
No próximo subtópico, trataremos das informações utilizadas para a comunicação feita pelos
serviços de transporte, as portas.
Portas de Comunicação
Com o modelo de referência TCP/IP, temos um campo numérico com o tamanho de 16 bits
para a identificação de uma porta, variando de 0 até 65535. Um programa de aplicação na
máquina cliente pode fazer o uso de uma porta dita efêmera, que será temporariamente
alocada para a comunicação com a aplicação em outro nó de rede.
Já em uma máquina servidor, na qual processos podem atender inúmeros clientes, são
normalmente utilizadas portas com números previamente definidos, conhecidas como portas
bem conhecidas (well known ports), que são permanentemente alocadas. No caso do HTTP, é
utilizada a porta bem conhecida 80, o SMTP utiliza a porta 25 e o FTP utiliza as portas 20 e 21.
Na Figura 3.8, a seguir, temos um exemplo de uso de portas pela camada de transporte, em
que o processo cliente “daytime” está utilizando uma porta efêmera 52000 para a
comunicação com o processo servidor “daytime” alocado na porta bem conhecida 13.
Portas bem conhecidas (well known ports): número de porta na faixa de 0 a 1023.
Portas registradas: número de porta na faixa de 1024 a 49151. Podem ser registradas no
IANA para evitar duplicidade.
Protocolo TCP
As conexões TCP são estabelecidas por um processo chamado handshake de três vias,
utilizando as primitivas da interface da camada de transporte. Quando o cliente inicia o
estabelecimento da conexão através da primitiva CONNECT, especificando o endereço socket e
o tamanho máximo do segmento, um segmento TCP é enviado com a flag SYN ativada e a flag
ACK desativada, ficando no aguardo de uma resposta. Quando esse segmento chega ao seu
destino, é verificado se há um processo que tenha acionado a primitiva LISTEN na porta
recebida, e, em caso positivo, poderá recebê-lo. Sendo aceito, é enviado um segmento de
confirmação, com as flags de SYN e ACK ativadas. Por fim, o cliente confirma o recebimento
desse último segmento com o envio de um segmento com a flag de ACK ativada. Esse processo
está ilustrado na Figura 3.11.
O encerramento de uma conexão TCP é realizado por meio do envio de um segmento com a
flag FIN ativada, indicando que não há mais dados para serem transmitidos. Como é feita uma
comunicação full duplex, devem haver quatro segmentos envolvidos para o encerramento: um
segmento com flag FIN ativado e a confirmação por um segmento com flag ACK ativado para
uma das vias de comunicação e outro segmento FIN com confirmação via segmento ACK para a
outra via.
O protocolo TCP apresenta um serviço confiável para transporte de dados, permitindo que
retransmissões possam ser feitas quando identificada a perda de pacotes. Para tanto, faz uso
de temporizadores e apresenta um mecanismo de controle de fluxo baseado em janelas de
transmissão, com o suporte de buffers de armazenamento, em que o receptor envia
segmentos ACK, confirmando os segmentos recebidos (Figura 3.12).
Alguns protocolos da camada de aplicação que fazem uso do protocolo TCP são o HTTP e o
FTP.
Protocolo UDP
O UDP (User Datagram Protocol) é um protocolo não orientado à conexão e não confiável da
camada de transporte, sendo indicado devido à sua simplicidade e eficiência, cujo controle de
erros possa ser realizado pela camada de aplicação (FOROUZAN, MOSHARRAF, 2013). É
baseado no simples envio de datagramas, sem haver a preocupação da confirmação de
recebimento desses pelo destinatário.
O cabeçalho utilizado pelo protocolo UDP é mais simples que o TCP, composto pelas
informações das portas, checksum e tamanho do datagrama, conforme pode ser visto na
Figura 3.13 a seguir:
O protocolo UDP não possui mecanismos de controle de erros, nem fluxo, assim como não
possui conexões. Esse controle deve ser realizado pela camada de aplicação. Um exemplo de
protocolo da camada de aplicação que utiliza o protocolo UDP é o DNS (Domain Name Server).
praticar
Vamos Praticar
O protocolo TCP (Transmission Control Protocol) é utilizado para prover um serviço orientado
à conexão para a camada de aplicação. Com esse protocolo, segmentos dos dados das
aplicações são enviados através da camada de rede em direção aos destinatários, para a
execução na aplicação correta em execução na máquina remota.
Os protocolos da camada de rede têm como objetivo o encaminhamento correto dos pacotes
de dados desde a origem até o destino ao longo da rede. Para isso, identificações para os nós
que fazem parte da rede devem ser utilizadas, possibilitando o correto encaminhamento.
O principal elemento de rede com a capacidade de realizar esse encaminhamento dos pacotes
é o roteador. Esse equipamento é composto basicamente por portas de entrada, portas de
saída, processador e memória. Com base na identificação do destino do pacote recebido em
uma porta de entrada, o roteador busca em sua tabela de roteamento o melhor caminho
(conhecido como rota) para encaminhar os pacotes através de uma porta de saída. Na Figura
3.14, a seguir, temos um exemplo de tabela de roteamento, em que um pacote com a
identificação de destino B deve ser encaminhado para a interface de saída (rota) número 2.
Com isso, é importante entendermos como são representadas essas identificações utilizadas
pelos nós da rede, as formas de distribuição e como as tabelas de roteamento podem ser
atualizadas.
Existem atualmente duas versões de endereços IP: a versão 4 e 6. A seguir, serão exploradas as
particularidades de cada versão.
IP v4
A primeira versão de grande amplitude de uso do endereço IP foi a versão 4, que contém 32
bits de tamanho, representando uma quantidade de aproximadamente 4 bilhões de
endereços.
Nesse cabeçalho, existem diversos campos, que estão assim descritos (PERES; LOUREIRO;
SCHMITT, 2014):
e) Identificação: utilizado para identificar um datagrama que foi fragmentado, sendo que os
fragmentos apresentam a mesma identificação.
f) Marcadores: DF (Don’t Fragment – 1 bit) não deve fragmentar, MF (More Fragments – 1 bit)
indica que existem mais fragmentos.
g) Deslocamento de fragmento: em uma transmissão fragmentada, indica a posição para a
recomposição do datagrama.
h) TTL: Time To Live, utilizado para limitar o tempo de vida de um datagrama na rede.
No caso da fragmentação, essa pode ocorrer quando o tamanho do datagrama é maior que a
capacidade máxima de transmissão (MTU) do enlace. Na Figura 3.17, temos um exemplo de
fragmentação, em que um datagrama contendo 4000 bytes de dados é fragmentado em três
fragmentos. Note que o último fragmento muda a flag MF, indicando que não há mais
fragmentos.
11000000101010000000000000000001(formato binário)
Classe
Faixa de endereços
0.0.0.1 a 126.255.255.255
16.777.216
128.0.0.0 a 191.255.255.255
65.536
C
192.0.0.0 a 191.255.255.255
256
224.0.0.0 a 239.255.255.255
Multicast
240.0.0.0 a 255.255.255.254
Uso futuro
Além dessa classificação por classes de endereços, existem diferentes tipos de endereços IP,
como públicos e privados. Os endereços IP públicos são aqueles publicamente reconhecidos,
como os da Internet. Os endereços IP privados são aqueles utilizados no âmbito interno de
uma rede corporativa ou doméstica. Assim, temos as seguintes faixas de endereços IP
privados, conforme a classe:
Classe
Faixa de endereços privados
10.0.0.0 - 10.255.255.255
172.16.0.0 - 172.31.255.255
192.168.0.0 - 192.168.255.255
Para redes locais, é comum utilizar endereços IP privados em seus equipamentos. A fim de que
esses possam se conectar com a Internet, endereços IP públicos são necessários, e algumas
funcionalidades de rede podem ser utilizadas, como NAT (Network Address Translation) e PAT
(Port Address Translation). NAT realiza o mapeamento de endereços IP privados para
endereços IP públicos, enquanto o PAT utiliza o número de porta da camada de transporte,
sendo usado pela aplicação em conjunto com o endereço IP privado para o mapeamento em
endereço IP público.
IP v6
Tendo em vista o crescimento rápido da Internet e tecnologias que permitem conexão a essa
rede global, os endereços IP na versão 4 começaram rapidamente a ficar escassos até a sua
completa exaustão. Tendo em vista que novos endereços IP seriam necessários, foi criada uma
nova versão do IP, a versão 6.
Os campos classe de tráfego, rótulo de fluxo, tamanho dos dados, próximo cabeçalho e limite
de encaminhamento foram criados para o IPv6 em comparação ao IPv4. O campo classe de
tráfego é usado para indicar a classe de serviço pertencente ao pacote. O campo rótulo de
fluxo é usado para aplicações que requeiram desempenho. O campo tamanho dos dados
indica o tamanho da carga útil (payload) do pacote. O campo próximo cabeçalho se trata de
um ponteiro para uma extensão do cabeçalho. O campo limite de encaminhamento indica a
quantidade de saltos permitida antes do pacote ser descartado.
O endereço IPv6 pode apresentar uma representação hexadecimal, com oito grupos de 16 bits
separados por dois pontos. Por exemplo:
2001:0DB8:0000:0000:DAD0:CAFE:FFDD:0051
Se dentro de um grupo de 16 bits houver somente zeros, pode ser substituído por um único
zero.
Se houver uma sequência de um ou mais grupos de zeros, esses podem ser substituídos por
“::”. Porém, só pode ser feita essa simplificação uma única vez em um endereço IPv6.
Exemplos de simplificação:
O endereço IPv6 2001:0DB8:0000:0000:DAD0:CAFE:FFDD:0051 pode ser representado pelo
endereço 2001:DB8::DAD0:CAFE:FFDD:51.
O endereço IPv6 também pode ser dividido em partes com identificação de rede global,
identificador de sub-rede e identificador de host, conforme Figura 3.19, a seguir:
No IPv6, existem três tipos de endereçamento: a) unicast, que identifica o endereço de uma
interface de rede de forma única; b) multicast, que identifica um grupo de interfaces
dispositivos ou serviços por meio de um endereço reservado FF00::/8; c) anycast, utilizado
para identificar um grupo de interfaces como uma sub-rede. No IPv6, não existem endereços
de broadcast.
reflita
Reflita
Após o entendimento dos formatos de endereços IPv4 e IPv6, veremos como próximo tema o
endereçamento de sub-redes, que ajuda a trazer uma maior organização para a alocação de
endereços IP.
Endereçamento de Sub-Redes
A fim de flexibilizar e obter um melhor aproveitamento dos endereços IP, através da divisão
desses em diversas partes para uso interno, é proposto o uso da subdivisão de redes,
conhecida como sub-redes. Essa divisão é possível pelo uso de máscaras de sub-rede, em que a
parte de rede é mapeada com bits ‘1’ e a parte de host com bits ‘0’. Por exemplo,
considerando as conhecidas classes A, B e C de endereços:
Classe
Máscara de sub-rede
255.0.0.0
255.255.0.0
255.255.255.0
Na classe A, a máscara 255.0.0.0 identifica o primeiro octeto como sendo de rede, pois
apresenta todos os seus bits em ‘1’, resultando no valor decimal 255. Os três demais octetos
são utilizados para host, considerando os endereços de rede e broadcast. No caso da classe B,
temos os dois octetos (255.255) utilizados para rede, assim como em endereços classe C são
utilizados três octetos (255.255.255).
Exemplo:
A partir do endereço IP classe C, 192.168.0.1/24, criar quatro sub-redes que serão utilizadas
cada uma para um departamento diferente: sub-rede 1 para o departamento de finanças, sub-
rede 2 para o departamento de RH, sub-rede 3 para o departamento de vendas e sub-rede 4
para o departamento de suprimentos.
Departamento
Sub-rede
Endereço de rede
Endereço de broadcast
Endereços de hosts
Finanças
192.168.0.0/26
192.168.0.63
192.168.0.1 a 192.168.0.62
RH
192.168.0.64/26
192.168.0.127
192.168.0.65 a 192.168.0.126
Vendas
2
192.168.0.128/26
192.168.0.191
192.168.0.129 a 192.168.0.190
Suprimentos
192.168.0.192/26
192.168.0.255
192.168.0.193 a 192.168.0.254
Assim, por meio da variação dos bits da máscara de sub-rede, é possível criar sub-redes que
venham a otimizar o uso de endereços IP em função da quantidade de hosts necessários para
cada segmento de rede. No endereçamento IPv6, o mesmo conceito de máscara de sub-rede
através da notação “/x” pode ser aplicado para a criação de sub-redes.
Protocolos de Roteamento
O roteador utiliza a tabela de roteamento para buscar as rotas pelos quais o pacote pode ser
encaminhado na rede. Essa tabela pode ser construída de forma manual, ou seja, um
administrador de rede pode montar e configurar em cada roteador a tabela que relaciona
endereços IP com as rotas para encaminhamento. Entretanto, em uma rede muito ampla, com
uma quantidade expressiva de roteadores, esse trabalho pode se tornar muito dispendioso,
pois, sendo a rede dinâmica, mudanças podem acontecer a qualquer momento, necessitando
atualizar a tabela de roteamento em todos os roteadores da rede.
Exemplo de protocolo que utilizam o algoritmo de estado de enlace: OSPF (Open Shortest Path
First).
Protocolos ICMP
Tipo de mensagem
Descrição
Destination unreachable
Parameter problem
Source quench
Redirect
Timestamp request/reply
Na resposta do comando ping, são devolvidos o endereço IP da máquina que responde ao eco,
o número de saltos TTL e o tempo de ida e volta. Já o comando traceroute é utilizado para
rastrear o caminho de um pacote da origem até o seu destino. A seguir, temos um exemplo de
retorno do traceroute:
Vemos na resposta apresentada quatro saltos na rede para atingir o destino. Por meio desse
comando traceroute, é possível identificar o enlace na rede que pode estar apresentando
problemas quando o pacote não atinge seu destino.
Tendo visto os principais aspectos dos protocolos na camada de rede, podemos ir para o
próximo tópico relacionado às camadas mais baixas: física e enlace.
praticar
Vamos Praticar
O endereço IPv4 é ainda muito utilizado nas redes, apesar do crescimento da adoção do
protocolo IPv6. Com seus 32 bits, o endereço IPv4 é dividido em duas partes: rede e host. Na
parte de host, nem todos os endereços possíveis podem ser alocados, pois dois deles são
especiais para outros propósitos.
Com base nesse contexto do IPv4, assinale a alternativa que apresenta o endereço especial na
rede em que todos os bits de host estão com valor “1”:
a) Endereço de rede.
b) Endereço físico.
c) Endereço de servidor.
d) Endereço de broadcast.
e) Endereço de multicast.
Após a aplicação fazer uso da camada de transporte para criar uma comunicação entre
máquinas através de serviços orientados ou não à conexão e, posteriormente, utilizar a
camada de rede para criar o endereçamento lógico para o encaminhamento ao longo da rede,
chega a vez da camada de enlace e física, que, no modelo TCP/IP, é conhecida como acesso ao
meio.
Um enlace é formado pelo compartilhamento do meio físico entre duas interfaces (placa) de
rede. Para que haja comunicação através desse enlace, é necessário que os mesmos
protocolos de nível de enlace e físico sejam utilizados. Devido à arquitetura em camadas, é
possível selecionar o nível de enlace e físico mais apropriado para compor a infraestrutura da
rede, como a adoção de enlaces de fibras ópticas para a conexão física entre dois
equipamentos ou o uso de enlaces via radiofrequência para dispositivos móveis em redes sem
fio.
Redes token bus: redes que utilizam um quadro especial denominado token, estabelecendo
uma ordem de acesso em uma topologia de rede em barramento. Uma das estações cria o
token e o transmite para a próxima estação na fila. Ao receber o token, essa estação pode
transmitir um quadro de dados. O token, ao chegar à última estação da fila, repassa para a
primeira.
Redes token ring: atuam de forma similar a rede token bus, porém em uma topologia de
rede em anel. Nessa rede, a estação que recebe um token livre e possui um quadro de dados
para transmissão envia um token ocupado e esse quadro. Após o envio do quadro, é criado um
novo token livre para o anel.
Redes FDDI (Fiber Distributed Data Interface): estão estruturadas em anéis duplos, utilizando
o processo de acesso ao meio similar à rede token bus, em que é criada uma fila e passagem
de bastão entre as estações. Esse tipo de rede é muito utilizado em backbones de
comunicação.
Redes bluetooth: utilizadas para redes pessoais sem fio, a transmissão é realizada com um
subcanal por apenas um slot de tempo e salta entre subcanais de forma pseudoaleatória. A
coordenação dos saltos é feita por meio de uma estação master.
Outro tipo de acesso é o realizado pelas redes de acesso ao meio compartilhado, em que não
há uma ordem específica para a transmissão. Nesse tipo de acesso, podem ocorrer colisões, e
o meio de enlace deve detectar e corrigir essa situação por meio de retransmissões. A
vantagem está no fato de não ser necessária a estação aguardar um token para poder
transmitir. Uma técnica utilizada para o acesso ao meio compartilhado é o CSMA (Carrier
Sense Multiple Access), no qual a estação identifica se há alguma transmissão em andamento
antes de transmitir.
O algoritmo CSMA 1-persistent indica que a estação que detectou uma transmissão
permanece escutando o meio até que fique livre. Na Figura 3.24, a seguir, temos que a estação
C fica no aguardo do término da transmissão que está em andamento pela estação A, para
transmitir assim que o meio estiver livre. Porém, no caso de duas estações transmitirem
simultaneamente, uma colisão ainda pode ocorrer.
Como exemplos de redes que utilizam o acesso ao meio compartilhado, temos (LOUREIRO et
al., 2014):
Redes Ethernet: padronizadas no documento IEEE 802.3, são as redes locais mais utilizadas
atualmente. Utilizam o protocolo CSMA/CD (Carrier Sense Multiple Access/Collision
Detection), com 1-persistent.
Redes Wi-Fi: redes locais sem fio padronizadas pelo documento IEEE 802.11. Foram
definidas com base no padrão Ethernet, utilizando o protocolo CSMA/CA (Carrier Sense
Multiple Access/Collision Avoidance) com p-persistent.
No próximo sub-tópico, falaremos sobre o padrão Ethernet, o mais utilizado nas redes locais
atualmente.
Ethernet
O padrão Ethernet, definido no documento IEEE 802.3, é aplicado nas redes locais com cabos.
Para a interconexão dos computadores nessa rede, eram utilizados equipamentos
concentradores, conhecidos como hubs, que foram substituídos pelos equipamentos switches.
Os switches realizam a comutação de quadros entre os enlaces que estão neles conectados e
podem operar nos modos full duplex e half duplex.
As redes Ethernet oferecem um serviço não orientado à conexão e não apresentam
mensagens de erro. O quadro Ethernet suporta no mínimo 46 bytes e no máximo 1500 bytes,
vindos da camada de rede. Incluindo o cabeçalho, o quadro Ethernet pode ter o tamanho de
desde 64 bytes até 1518 bytes. O formato desse quadro está apresentado na Figura 3.25, a
seguir:
O preâmbulo permite sincronizar o emissor e o receptor no nível de enlace. SFD (Start Frame
Delimiter) delimita o início de um quadro. O campo endereço de destino refere-se ao endereço
físico da estação de destino, enquanto o endereço de origem refere-se ao endereço físico da
estação de origem. O tipo indica o protocolo no nível de rede que está sendo transportado
pelo quadro (ex.: IP). A seguir, temos o campo de dados e o campo CRC, esse último para a
detecção de erros.
Endereços Físicos
Nas redes Ethernet, os endereços utilizados são conhecidos como endereços MAC (Media
Access Control) e são os endereços físicos atribuídos às placas de interface de rede (NIC –
Network Interface Card). São endereços únicos e exclusivos globalmente, sendo representados
por octetos hexadecimais separados por dois pontos ou traço simples. Exemplo:
08:00:27:7D:A1:85.
Unicast: identifica uma interface de rede (oitavo bit é sempre igual a zero).
Multicast: identifica várias interfaces de rede (oitavo bit é sempre igual a um)
Broadcast: identifica todas as interfaces da rede (todos os bits estão em um). O endereço de
broadcast é FF:FF:FF:FF:FF:FF.
Os equipamentos switches associam a cada porta que tem um equipamento conectado o seu
endereço físico. Para realizar a consulta da relação entre os endereços físicos (MAC) e
endereços lógicos (IP), é utilizado o protocolo ARP (Address Resolution Protocol). Nesse
protocolo, é enviada uma mensagem em broadcast solicitando o endereço MAC relacionado a
um endereço IP.
CSMA/CD
Nesse protocolo, antes de uma estação transmitir, ela escuta a rede para verificar se há
alguma transmissão em andamento (carrier sense). Se o canal estiver livre, é feita a
transmissão, do contrário, é aguardado. É possível que, mesmo que o meio esteja livre, duas
estações decidam transmitir simultaneamente, podendo ocasionar uma colisão.
Quando ocorre a colisão, as estações escolhem um tempo aleatório para tentar uma nova
transmissão. Esse tempo de espera aleatório é calculado pelo algoritmo de backoff, que
determina o momento em que a estação poderá tentar enviar suas mensagens novamente,
sendo que, após 10 tentativas, o quadro é descartado.
Padrão
Tipo de cabeamento
Velocidade
Alcance do cabo
10Base5
Cabo coaxial grosso
10 Mbps
500 m
10Base2 (1985)
10 Mbps
185 m
10Base-T (1990)
10 Mbps
100 m
10Base-F (1993)
Fibra óptica
10 Mbps
2000 m
100Base-T
Cabo UTP
100 Mbps
100 m
100Base-TX
100 Mbps
100 m
100Base-FX
Fibra óptica
100 Mbps
100 m
1000Base-FX
Fibra óptica
1 Gbps
550 m
1000Base-LX
1 Gbps
5000 m
1000Base-CX
Cabo STP
1 Gbps
25 m
1000Base-T
1 Gbps
100 m
1000Base-TX
100 m
10GBase-S
10 Gbps
300 m
10GBase-L
10 Gbps
10000 m
10GBase-E
Fibra óptica monomodo
10 Gbps
40000 m
10GBase-R
10 Gbps
100 m
O padrão de 10 Mbps é conhecido por Ethernet. Já os padrões 100 Mbps são denominados
Fast Ethernet e 1 Gbps é tratado como Gigabit Ethernet.
No próximo subtópico, trataremos do padrão Wi-Fi, utilizado para as redes sem fio, e que teve
como base o padrão Ethernet.
Wi-FI
As redes Wi-Fi são redes sem fio cuja terminologia vem do inglês wireless (sem fio) e fidelity
(fidelidade), tendo a interoperabilidade de equipamentos controlada pela Wi-FI Alliance. O
padrão utilizado para as redes sem fio é a IEEE 802.11.
O controle de acesso ao meio realizado pelas redes Wi-Fi é o CSMA/CA (Carrier Sense Multiple
Access/Collision Avoidance). Os passos desse protocolo são (LOUREIRO et al., 2014):
Após verificar que o canal está livre, a estação aguarda um tempo denominado DIFS (DCF
Interframe Space).
Se o meio continua livre após esse tempo, é escolhida uma janela de contenção baseada em
fatias de tempo, similar ao algoritmo de backoff das redes Ethernet. A cada fatia da janela de
contenção, o meio é testado. Se estiver ocupado, o tempo é congelado, caso contrário a fatia é
decrementada.
Ao receber a mensagem RTS, a estação destino aguarda um intervalo de tempo SIFS (Short
Interframe Space) e envia uma confirmação para a origem CTS (Clear To Send).
Após também aguardar o intervalo de tempo SIFS, a estação origem envia os dados para a
estação destino.
Após um tempo SIFS, a estação destino envia uma confirmação para o recebimento correto
dos dados através da mensagem ACK.
Outro método para controle de acesso ao meio, porém pouco utilizado, é o PCF, em que o AP
(Access Point) utiliza um processo de varredura para identificar as estações que estão
aguardando para transmitir.
O formato do quadro IEEE 802.11 utilizado para a troca de informações via redes sem fio está
apresentado na Figura 3.27, a seguir:
VLAN
Para essa funcionalidade, é preciso definir uma marca (tag) para a VLAN para as portas às quais
as máquinas que farão parte dessa rede lógica estão conectadas. É possível configurar VLANs
em portas de diferentes switches, como mostrado na Figura 3.29. Nesse caso, é necessário o
uso do modo VLAN trunk nas interfaces entre os switches.
O uso de VLAN traz uma flexibilidade muito grande para uma melhor administração da rede,
principalmente quando seja interessante dividir a rede local em diferentes redes lógicas.
No nível físico de transmissão, é importante que o lado transmissor esteja alinhado com o lado
receptor de uma comunicação de dados, de forma a gerar e interpretar corretamente os bits
enviados pelo meio. Em função disso, diferentes mecanismos de codificação podem ser
utilizados para sinalizar a representação dos níveis lógicos “0” e “1” realizados em uma
transmissão digital. Três grupos se destacam: codificação polar, codificação bipolar e
codificação multinível.
Codificação Polar
Na codificação polar, o sinal elétrico oscila entre um valor positivo e negativo. Podemos ter a
codificação NRZ-L, em que valores positivos representam o bit “0” e valores negativos o bit
“1”. Na codificação NRZ-I, são detectadas as inversões de polaridade, que representam o bit
“1” e as não inversões para o bit “0”. Essas codificações estão representadas na Figura 3.30, a
seguir:
Além da codificação polar, podemos ter mais polaridades que podem ser utilizadas, como na
codificação bipolar.
Codificação Bipolar
Na codificação bipolar, são utilizados três níveis de polaridade (tensão): positivo, negativo e
zero. Nesse caso, teremos o valor de um bit na tensão zero e outro bit nos outros dois níveis
de tensão. Um dos exemplos é a codificação AMI, retratada na Figura 3.33, a seguir:
Nessa codificação, o bit “0” é representado pelo nível zero, enquanto o bit “1” é sinalizado
pelas outras polaridades negativa e positiva de forma alternada. No modo pseudoternário, o
bit “1” é representado pelo nível 0 de sinal, enquanto o bit “0” é representado pela sinalização
das outras polaridades (negativa e positiva), de forma alternada.
Codificação Multinível
Nessa codificação, temos a representação de dois bits para um nível de sinal. Assim,
dependendo do nível, dois bits devem ser reconhecidos no lado receptor.
É possível também o uso de sinalização analógica para uma transmissão digital. Nesse caso, é
utilizado o processo de modulação, em que dois tipos de sinais são “misturados”. Alguns
exemplos de sinalização analógica estão apresentados no Quadro 3.4, a seguir:
Sigla
Significado
Descrição
ASK
PSK
Para o nível de transmissão, devem ser consideradas as taxas de transmissão (bps), tendo em
vista que transmissor e receptor devem estar alinhados. Logo, a mesma taxa deve ser utilizada
em ambos os lados, além da mesma forma de sinalização e codificação no meio físico.
praticar
Vamos Praticar
O Ethernet é o padrão mais utilizado para redes locais, atuando principalmente na camada de
acesso ao meio. Apresenta um padrão de formato de quadros utilizado na camada de enlace,
em que endereços são utilizados para enviar os quadros.
a) Endereço de socket.
b) URL.
c) Endereço IP.
d) Endereço MAC.
e) Endereço lógico.
indicações
Material Complementar
Livro
Editora: Bookman
ISBN: 978-85-8055-169-3
Filme
Ano: 2012
Comentário: Esse vídeo apresenta em um formato animado como os pacotes de dados são
gerados e transmitidos pela rede Internet, através de roteadores e em redes locais nos
switches. Também apresenta alguns conceitos como proxy, firewall, largura de banda, meios
de transmissão, servidores web e portas de comunicação, complementando os conceitos
vistos nesta unidade.
Trailer
conclusão
Conclusão
Neste tópico, foram abordados os principais protocolos e particularidades utilizados nas redes
de comunicação de dados. Na camada de aplicação, protocolos são utilizados para suportar as
aplicações em sistemas computacionais para comunicação em rede. Essas fazem uso dos
serviços de protocolos de transporte, nos quais são utilizadas portas para comunicação das
aplicações. Os protocolos de transporte recorrem à camada de rede para que os dados sejam
enviados através de pacotes com endereços lógicos conhecidos pela rede, a fim de alcançar
seu destino. E, para assegurar a correta transmissão pelo meio físico, os dados pacotes de
dados são preparados pelas camadas de enlace e física.
referências
Referências Bibliográficas
COLOURIS, G.; DOLLIMORE, J.; KINDBERG, T.; BLAIR, G. Sistemas distribuídos: conceito e
projeto. 5. ed. Porto Alegre: Bookman, 2013.
INSTITUTE OF ELECTRICAL AND ELECTRONICS ENGINEERS. IEEE std 802.3: standard for local
and metropolitan area networks – carrier sense multiple access with collision detection
(CSMA/CD) access method and physical layer specifications. Nova Iorque, 2002.
INSTITUTE OF ELECTRICAL AND ELECTRONICS ENGINEERS. IEEE std 802.11: Wireless LAN
Medium Access Control (MAC) and Physical Layer (PHY) Specifications. Nova Iorque, 2007.
LOUREIRO, C. A. H.; SCHMITT, M. A. R.; PERES, A.; OLIVEIRA, A. M. Redes de computadores III:
níveis de enlace e físico. Porto Alegre: Bookman, 2014.
MAIA, L.P. Arquitetura de redes de computadores. 2. ed. Rio de Janeiro: LTC, 2013.