A camada de link de dados no modelo OSI é responsável por transferência de dados confiável entre dois nós diretamente conectados. Seus principais usos incluem:
*
Detecção e correção de erros: Esta é uma função crucial. A camada de link de dados incorpora mecanismos como somas de verificação, verificações de redundância cíclica (CRCs) e correção de erro direto (FEC) para detectar e potencialmente corrigir erros que podem ocorrer durante a transmissão sobre o meio físico. Isso garante a integridade dos dados.
*
Controle de fluxo: Para impedir que um remetente rápido sobrecarregue um receptor lento, a camada de link de dados implementa mecanismos de controle de fluxo. Eles garantem que os dados sejam transmitidos a uma taxa que o receptor possa lidar, evitando o excesso de buffer e a perda de dados. As técnicas incluem protocolos de janela deslizante.
* Enquadramento: A camada de link de dados organiza dados em quadros. Isso envolve a adição de informações de cabeçalho e trailer aos dados para delinear o início e o final de cada quadro, facilitando a identificação e a interpretação dos dados.
*
Controle de acesso: Em mídias compartilhadas como a Ethernet, vários dispositivos podem querer transmitir simultaneamente. A camada de link de dados usa endereços e protocolos Mac (Media Access Control) (como CSMA/CD ou token anel) para gerenciar o acesso ao meio compartilhado, impedindo colisões e garantindo acesso justo.
*
Endereço físico: Cada nó em uma rede possui um endereço físico exclusivo (endereço MAC) atribuído pelo fabricante. A camada de link de dados usa esses endereços para identificar a fonte e o destino dos quadros de dados em uma rede local.
*
Recuperação de erro: Embora a detecção de erros seja primária, alguns protocolos nessa camada também suportam mecanismos de recuperação de erros. Se um erro for detectado, a camada de link de dados poderá solicitar uma retransmissão do quadro com defeito.
Em resumo, a camada de link de dados preenche a lacuna entre o hardware físico e as camadas mais altas do modelo OSI, fornecendo um mecanismo confiável e eficiente para transferência de dados dentro de um segmento de rede local. Ele lida com os detalhes de baixo nível da transmissão de dados, permitindo que as camadas mais altas se concentrem em tarefas de nível superior, como a transferência e o roteamento de dados do aplicativo.