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: 81.213 ]

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

Samba 4 - Active Directory Open Source - Ubuntu 14.04.4

LogBook: Documentação de implementação e manutenção

JDK 6 + Eclipse 3.2 + NetBeans 5.5

Passos essenciais para configurar seu modem 3G no Linux

Configurando servidor Samba como Workgroup no Slackware

Leitura recomendada

Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota

Instalando o oVirt 4.3 Single Host

Sincronizando Bases OpenLDAP e Active Directory

Nagios enviando alertas via WhatsAPP

VOIP - Interceptando tráfego de pacotes

  
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