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.
Parte 3: 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:
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.
O significado das siglas são:
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. Fluxo de dados antes do processo de inserção (stuffing), depois do processo de inserção e depois do processo de remoção (destuffing).
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.
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.
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. 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.