A camada de enlace de dados

Neste artigo, vamos estudar os serviços oferecidos pela segunda camada do modelo de referência OSI, a geração dos quadros (frames), o tratamento de erros e o controle de fluxo. Apesar de possuir protocolos que verificam a natureza dos erros, suas causas e como podem ser detectados e corrigidos, estes protocolos poderão ser tema para um futuro artigo.

[ Hits: 80.010 ]

Por: Perfil removido em 20/09/2013


Enquadramento



Como vimos na introdução, umas das principais finalidades da camada de enlace de dados é oferecer serviços à camada de rede. A principal função da camada física, é receber e transmitir um fluxo de bits brutos e tentar levá-los ao seu destino, mas a camada física não consegue "garantir" que esse fluxo de bits esteja livre de erros.

Neste caso surge outra função primordial da camada de enlace que é detectar os erros, caso existam e corrigi-los. Uma das práticas mais utilizadas pela camada de enlace de dados é dividir o fluxo de bits em quadros e verificar a sua integridade através de algoritmos matemáticos chamados checksums.

Um dos métodos utilizados para fazer esse enquadramento, é a utilização de intervalos entre os quadros, mas a probabilidade de que esses intervalos sejam alterados é muito grande, pois a maioria das redes de comunicação de dados não oferecem qualquer garantia quanto a este recurso. Por isso, outros métodos foram criados.

Nesta parte do artigo veremos os principais métodos de enquadramento, como:
  • Contagem de bits ou caracteres.
  • Inserção de caracteres iniciais e finais (character stuffing).
  • Assinatura - flags iniciais e finais, com inserção de bits (bits stuffing).

Contagem de bits ou caracteres

Este é o mecanismo mais simples utilizado para gerar o quadro, o protocolo de enlace do receptor conta o número de bits recebidos a partir do início do quadro, fechando o quadro quando o número total de bits for alcançado.

Embora seja um método simples, ele pode falhar em caso de problemas de sincronismo, pois qualquer falha de contagem, impedirá não só a recepção do quadro como a dos quadros posteriores.

Mesmo assim, este método é ainda utilizado como no caso do Ethernet - protocolo da camada física - que utiliza esse mecanismo de contagem para identificar o limite final de cada quadro.

[Figura 3] Contagem de caracteres

Inserção de caracteres iniciais e finais

Este método de enquadramento resolve, de alguma forma, o problema de sincronização após um erro, pois cada quadro começa com a sequência dos caracteres ASCII DLE STX e termina com a sequência dos caracteres DLE ETX.

O significado das siglas são:
  • DLE → Data Link Escape
  • STX → Start of TeXt
  • ETX → End of TeXt

A função do caractere STX - (Start of TeXt) é delimitar o inicio dos quadros, já o caractere ETX - (End of TeXt ) é delimitar o final de cada quadro. Assim, caso o destinatário perca as fronteiras entre os quadros, ele terá que localizar a sequência dos caracteres DLE STX ou DLE ETX, para saber se os quadros estão no início ou se estão no fim.

Uma técnica muito utilizada neste tipo de enquadramento é a character stuffing, na qual a camada de enlace de dados do emissor, adiciona um caractere ASCII DLE antes de cada caractere DLE, presente acidentalmente nos dados a serem transmitidos.

A camada de enlace do receptor remove a sequência DLE antes dos dados serem passados para a camada de rede, assim é possível distinguir um enquadramento DLE STX ou DLE ETX de uma sequência de caracteres contidas nos dados do emissor, como: dados binários e números com ponto flutuante com base na presença ou ausência de uma sequência ASCII DLE. As sequências DLE dos dados serão sempre duplicadas.

[Figura 4]
Fluxo de dados antes do processo de inserção (stuffing), depois do processo de inserção e depois do processo de remoção (destuffing).

Assinatura

Com a evolução das redes de comunicação de dados, a dificuldade de manter um mecanismo de enquadramento utilizando caracteres do tipo ASCII, se tornaram cada vez maiores, surgindo novas técnicas de enquadramento de dados.

Uma delas, é a assinatura através do mecanismo de flags iniciais e finais, utilizando a técnica de inserção de bits (bits stuffing).

Este método funciona através da utilização de sequências especiais (assinatura) de bits no início e final de cada quadro. Através da identificação destas sequências pelo receptor, os quadros são delimitados.

No caso da presença dos bits de assinatura dentro dos campos normais do quadro, o protocolo do transmissor insere um bit 0 (zero), impedindo a confusão com a sequência de bits da assinatura.

No receptor, neste exemplo, será retirado o bit 0 a cada cinco bits 1, restaurando assim, a mensagem original. A assinatura (01111110) é inserida no final da montagem do quadro pelo transmissor, e retirada pelo receptor antes do processo de análise da integridade do quadro.

O método por assinatura é bastante comum, sendo utilizado por diversos protocolos, como: Frame Relay, HDCL e o Ethernet, que utiliza esse mecanismo para marcar o início dos quadros.

É importante notarmos que, tanto a inserção de bits como a inserção de caracteres, é um processo transparente para a camada de rede de ambos os computadores, exatamente como foi comentado sobre o método de comunicação virtual utilizado pelo modelo de referência OSI, na qual o programador dos protocolos das camadas adjacentes não se preocupa com as camadas inferiores "imaginando" uma comunicação direta fim-a-fim.

[Figura 5] Inserção de bits - bits stuffing


Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Serviços oferecidos à camada de rede
   3. Enquadramento
   4. Controle de erros e fluxo
   5. Conclusão
Outros artigos deste autor

Jabberd2 - Completo e sem mistérios

Formatando texto no Open Office

Sistemas operacionais imutáveis e suas tecnologias

Conheça o Project Bossanova

Arredondando o Ubuntu em seu desktop

Leitura recomendada

Monitorando Rede com Zabbix no Debian 7

Site Survey Plan

PABX IP Asterisk - Instalação no Debian/Ubuntu

Balanceamento de links - Load balance + Failover + Failback

SNMPv3 no Debian/Ubuntu - Configurando para consultas externas

  
Comentários
[1] Comentário enviado por danniel-lara em 20/09/2013 - 12:49h

Parabéns , muito bom o artigo

[2] Comentário enviado por removido em 20/09/2013 - 13:03h


[1] Comentário enviado por danniel-lara em 20/09/2013 - 12:49h:

Parabéns , muito bom o artigo


obrigadi Daniel,

estive olhando os seus artigos e achei os temas muito originais,

e de grande importância p/ o site VOL

valeu.

[3] Comentário enviado por renatolmorais em 24/09/2013 - 11:47h

Muito bom o artigo. Atenção apenas para a citação errada de que o Ethernet é um protocolo de camada física, na página 3.

[4] Comentário enviado por removido em 24/09/2013 - 14:36h


[3] Comentário enviado por renatolmorais em 24/09/2013 - 11:47h:

Muito bom o artigo. Atenção apenas para a citação errada de que o Ethernet é um protocolo de camada física, na página 3.


ok,

Renato vamos fazer uma errata:

O Protocolo Ethernet, é um protocolo utilizado na camada de rede ou interface com a rede

na arquitetura TCP/IP, sendo esta camada equivalente

as camadas física e enlace de dados no modelo de referência OSI - Open System Interconection.

obrigado.

[5] Comentário enviado por renatolmorais em 30/09/2013 - 15:44h

rulios, boa tarde!

Na introdução do seu artigo você fala da camada de enlace de dados do modelo de referência OSI. Logo, acredito que seu artigo faz referência a este modelo, certo? Este modelo, como sabemos, tem 7 camadas, sendo a camada física a primeira e a camada de enlace a segunda. O modelo OSI faz distinção entre as duas camadas.

Dependendo da literatura utilizada, o modelo TCP/IP pode conter 4 ou 5 camadas. Alguns autores juntam as camadas 1 e 2.

O livro "Redes de Computadores e a Internet: uma abordagem TOP-DOWN", do Kurose, apresenta o modelo TCP/IP com 5 camadas (corrija-me se eu estiver enganado), a saber: física, enlace de dados, rede, transporte e aplicação.

Do livro do Tanenbaum:

"o modelo TCP/IP não faz distinção (nem sequer menciona) entre as camadas física e de enlace de dados. Elas são completamente diferentes. A camada física está relacionada às características de transmissão do fio de cobre, dos cabos de fibra óptica e da comunicação sem fio. A tarefa da camada de enlace de dados é delimitar o início e o final dos quadros e enviá-los de um lado a outro com o grau de confiabilidade dese dado. Um modelo mais adequado deve incluir as duas camadas como elementos distintos. O modelo TCP/IP não faz isso."

Logo, na minha singela opinião, eu considero mais adequado o modelo TCP/IP com 5 camadas. Nada contra quem acha que ele possui 4 camadas. Eu só não acho legal juntar camada física e enlace de dados, uma vez que a camada física trata do sinal elétrico e do meio em que este sinal viaja. Ou seja, no nível da camada física, não há preocupação sobre a informação que trafega, mas apenas com o sinal elétrico. Diferente da camada de enlace, em que já há uma interpretação do que é o sinal (dado, paridade, correção de erros).

Por isso fiz a crítica! Você está falando desde o início do modelo de referência OSI, mas fala que o Ethernet é um protocolo de camada física. Depois, ao responder meu comentário, você fala que "O protocolo Ethernet, é um protocolo utilizado na camada de rede ou interface com a rede na arquitetura TCP/IP, sendo esta camada equivalente as camadas física e enlace de dados no modelo de referência OSI - Open System Interconection." (sic) Ainda assim, o Ethernet não é um protocolo de camada física, pois ele não trata do sinal elétrico que percorre o meio.

Na boa, não me leve a mal, mas a emenda ficou pior que o soneto.

[6] Comentário enviado por elgio em 01/10/2013 - 18:06h

Caro Júlio: pelo que li nos comentários e apenas os que estão aqui, todas as sugestões do renato são pertinentes.
Chegaste a dizer que o Ethernet é nível físico no modelo TCP/IP? De onde tiraste isto? É enlace de dados, não físico.

E as demais questões também.


Forte Abraço


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts