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.009 ]

Por: Perfil removido em 20/09/2013


Controle de erros e fluxo



Controle de erros

Como vimos, a camada física transmite diretamente os conjuntos de bits ao receptor, sem se preocupar com possíveis erros, ou ausência de bits, nos conjuntos originalmente entregues à camada física do transmissor.

Realmente, a camada física não possui nenhum mecanismo que possa corrigir eventuais meios de comunicação. Para resolver este problema em um sistema de transmissão de dados, é necessário utilizar um mecanismo de análise dos dados recebidos. Esse mecanismo de análise é possível se utilizarmos parte dos dados recebidos para verificar e conferir o conjunto completo dos dados.

O fato de estar mais próximo da camada física, a função de corrigir possíveis erros de transmissão e permitir certa redundância nos dados recebidos, está atribuído à camada de enlace de dados. Outro papel importante desempenhado por esta camada, é a detecção e correção de erros, muito utilizado nos serviços com confirmação.

Para fazer o controle de erros, a camada de enlace utiliza dois métodos: a retransmissão ou a correção dos erros:
  1. O primeiro método utiliza a retransmissão dos dados pelo emissor quando forem detectados os erros.
  2. E o segundo método, utiliza a transmissão de códigos especiais junto aos dados transmitidos.

Esses códigos conseguem corrigir os dados eventualmente defeituosos sem a necessidade de retransmissão por parte do transmissor dos dados.

Ambos os métodos encontram problemas muito complexos, como a perda de conjuntos completos de dados, pois neste caso não há como detectar a existência de erros, porque parte dos dados desaparecem por completo no trajeto entre transmissor e receptor.

Cronometrar o tempo máximo para a confirmação de recebimento dos quadros pelo receptor, é uma forma de solucionar casos como estes, pois o receptor não enviará nenhuma confirmação devido a ausência dos quadros perdidos durante a conexão.

Um outro problema muito comum, é quanto à ordenação na chegada dos quadros, caso ocorra uma falha de confirmação, o receptor poderá encontrar dificuldades para descartar os quadros repetidos que serão entregues à camada de rede.

Enfim, para solucionar todos estes problemas quanto aos erros de comunicação, a camada de enlace de dados implementa alguns algoritmos matemáticos, como: paridade, checksum e o código polinomial ou CRC (Código de Redundância Cíclica). Mas devido à extensão de cada um destes assuntos, eles só poderão ser comentados em um próximo artigo.

Controle de fluxo

Outro papel importante exercido pela camada de enlace de dados é o controle de fluxo, que nada mais é do que a capacidade do receptor de controlar o fluxo de informações recebidas do transmissor, fazendo o tratamento das informações recebidas sem erro.

Em um ambiente heterogêneo como a Internet, é muito comum um servidor mais rápido e com uma largura de banda maior do que o receptor, "sufocar" um cliente que, além de possuir uma máquina mais lenta, pode estar sobrecarregada com outros processos simultâneos.

Já em um ambiente homogêneo como as redes locais (Ethernet), poderíamos argumentar:

- Haveria a necessidade deste controle por parte da camada de enlace de dados? A resposta é sim.

Por causa da existência de colisões de pacotes de dados, devido à existência de múltiplos transmissores com dados a serem encaminhados.

Geralmente, o controle de fluxo é estabelecido no momento do estabelecimento da conexão. O controle de fluxo consegue determinar a quantidade de dados que pode ser transmitida, a necessidade do recebimento da confirmação de um quadro antes da transmissão do outro, e o que fazer, caso a confirmação do quadro não chegue ou ocorrer erros durante a transmissão dos quadros.

Estes e outros detalhes são abordados quando estudamos alguns dos protocolos de enlace, como os protocolos Simplex (stop-and-wait e canais com ruído), os protocolos utilizados em confirmações no sentido contrário (Piggybacking e Pipeline), além de outros como Sliding Window e Go-Back-N. Mas devido à extensão e profundidade do assunto, poderemos comentá-los num próximo artigo.

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

Uso de terminologia imprópria com software livre

Convertendo novos usuários ao Linux

Fornecendo informações úteis para obter respostas válidas

Instalando e usando o GNUstep no Linux

Criar um Servidor TeamSpeak no Ubuntu Server

Leitura recomendada

Criando e Consumindo Rede de Compartilhamento NFS

Instalando o Zabbix 2.4.3 em ambientes CentOS/RHEL 7

Docker - Containers em Linux

Conexão do Vindula com o Active Directory Server 2008 R2

FreeRadius 3 + iODBC + Base de Dados em MS SQL Server 2008 no Ubuntu Server - Guia definitivo

  
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