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