Camada de enlace de dados
Na ciência da computação, mais especificamente em redes de computadores, a camada de ligação de dados, também conhecida como camada de enlace de dados ou camada de link de dados, é uma das sete camadas do modelo OSI. Esta camada detecta e, opcionalmente, corrige erros que possam acontecer na camada física. É responsável pela transmissão e recepção (delimitação) de quadros e pelo controle de fluxo. Ela também estabelece um protocolo de comunicação entre sistemas diretamente conectados.
Imagem: Leales.org • tu guía animable · PDM · Openverse
Exemplos de protocolos nesta camada: PPP, LAPB (X.25), ethernet. Também está inserida no modelo TCP/IP (apesar do TCP/IP não ser baseado nas especificações do modelo OSI). Na rede ethernet cada placa de rede possui um endereço físico, que deve ser único na rede. Em redes do padrão IEEE 802, e outras não IEEE 802 como a FDDI, esta camada é dividida em outras duas camadas: Controle de ligação lógica (LLC), que fornece uma interface para camada superior (rede), e controle de acesso ao meio físico (MAC), que acessa diretamente o meio físico e controla a transmissão de dados.
Padrões da Camada de Enlace
Os protocolos e padrões desta camada, diferente das camadas superiores que são baseados em RFCs, estes geralmente são definidos por empresas de comunicações ou organizações de engenharias (Como ANSI, IEEE e ITU). Os serviços e especificações desta camada são geridos por múltiplos padrões de acordo com a tecnologia e o meio físico utilizado e integrado por tais protocolos, sendo alguns deles utilizados para ligar os serviços da camada de enlace com a camada física.
Enquadramento
A camada de enlace de dados fica acima da camada física, ela é responsável por oferecer serviços à camada de rede, recebendo pacotes e encapsulando em quadros para transmissão nos canais. Os quadros são enviados da camada de rede da máquina transmissora até a camada de rede da máquina receptora, então os quadros são remontados em forma de pacotes. Alguns dos principais métodos utilizados para a realização dos enquadramentos são:
Controle de erros
A camada de enlace também é responsável pelo controle de erros, pois pode acontecer erros durante a transmissão de bits devido as características da camada física, como por exemplo a troca física de um bit, que devem ser detectados e resolvidos usando algum algoritmo. Uma forma de garantir se os quadros chegaram ao receptor de forma correta é recebendo um feedback, para isso é solicitado ao receptor o retorno de quadros contendo confirmações, caso houver uma confirmação negativa, quer dizer que houve um problema no envio do quadro e o quadro deve ser reenviado para o receptor. Um cenário comum e que agrega mais uma complicação, é quando um quadro desaparece completamente acarretado por problemas de hardware, nesse caso o receptor não terá uma causa para reagir. Para resolver esse problema foi implementado a funcionalidade de timers, com ela, quando um quadro é enviado para um destino, um timer é configurado com um tempo suficientemente grande para que o quadro trafegue até o destino e retorne a origem, mas se o pacote não voltar até que o timer seja desligado, o transmissor será alertado que existe algum problema. Após o aviso, a reação mais obvia que poderíamos pensar é enviar o quadro novamente, embora pareça uma boa solução não é, pois há uma possibilidade do receptor aceitar o quadro mais de uma vez e levá-lo até a camada de rede. Quando é necessário enviar um quadro mais que uma vez por consequência de um erro de tempo, é necessário enviar junto com o quadro um número que corresponde ao seu lugar na sequência de quadros.
Controle de fluxo
Outra responsabilidade da camada de enlace é o controle de fluxo, pois a máquina transmissora pode enviar quadros mais rápido e o receptor pode não ser capaz de conseguir aceita-los a tempo, podendo perder alguns quadros, mesmo sem haver erros durante a transmissão. Um exemplo bem comum de controle de fluxo é quando um smartphone, que é um aparelho mais fraco, faz uma requisição de um site em um servidor, que é muito mais rápido e forte. Ou seja, a camada de enlace de dados juntamente com o controle de fluxo tem que trabalhar para que este tipo de situação não ocorra. Comumente é utilizado um controle de fluxo baseado em feedback, onde o dispositivo receptor envia novamente ao transmissor informações (feedback) que avisam a o receptor que mais dados podem ser enviados ou que mostrem a situação em que o receptor se encontra naquele momento.
A camada de enlace de dados ainda possui uma subcamada chamada de subcamada de controle de acesso ao meio ou também conhecida como MAC (Medium Acess Controll) utilizada para realizar o controle de acesso aos canais de transmissão em redes de broadcast (redes com canais de múltiplo acesso), esse controle é realizado através da utilização de protocolos de acesso que se encontram nesta subcamada. O controle de acesso é de suma importância principalmente em redes LANs, especialmente em redes wireless (sem fio) por serem uma rede do tipo broadcast.
Protocolos de acesso
Existem dois tipos de Enlace(segunda camada do modelo ISO/OSI): O Enlace ponto a ponto e o Enlace broadcast. No enlace ponto a ponto, mesmo que exista uma conexão física de vários hospedeiros (hosts), somente haverá comunicação entre um único remetente numa extremidade do enlace com outro remetente na outra extremidade do enlace, uma analogia bem simples que mostra o funcionamento do enlace ponto a ponto é o sistema de telefonia, mesmo que o remetente esteja interconectado a uma central telefônica só vai haver troca de informações quando este discar e a outra pessoa do outro lado da linha atender. Protocolos que utilizam esse tipo de comunicação: PPP e HDLC.
Multiplexação (divisão do canal)
Uma forma simples para a comunicação ser efetiva (sem colisões), seria dividir o tempo de comunicação e entregar para cada um dos nós. Imagine uma rede com dez computadores e um tempo de 20 segundos para comunicação, por rodada. Assim, pode-se dividir o número de tempo pelo número de computadores e entregar esse tempo para cada um dos computadores. Então ter-se-ia 20 (segundos)/ 10 (computadores), que é igual a 2 segundos por computador, em cada rodada. Esse tipo de divisão é feita pelo TDM (multiplexação por divisão de tempo). Essa multiplexação divide o tempo em quadros temporais, dentro desses quadros existem N compartimentos, onde N é igual ao número de computadores. Para uma dada TDM taxa de transmissão em bits são alocados slots (intervalos) no tempo para cada canal de comunicação.
Protocolos de acesso aleatório
Um dos protocolos mais simples é o slotted ALOHA. Nesse protocolo, o tempo de transmissão é dividido pelo número de quadro formando intervalos, de fato que um intervalo é igual ao tempo de transmissão de um quadro. Cada nó conhece o início do intervalo. Em cada colisão, todos os nós identificam a mesma antes mesmo do término do intervalo. Quando um nó tem algum quadro para enviar, ele espera até o início do próximo intervalo e o envia, se for detectada colisão, ele espera um tempo aleatório e envia novamente. Se esse tempo for muito curto, a chance de ocorrer novamente uma colisão é grande, e se o tempo for grande, o reenvio terá um atraso elevado.
Protocolos de revezamento
O protocolo de polling requer que um dos nós seja nomeado o nó mestre. Esse nó escolhe de forma circular os nós que precisam transmitir. Quando o nó 1 for transmitir, o nó mestre o concede um determinado número de quadros para transmitir, acabando essa transmissão, o nó 2 inicia e assim sucessivamente. Os intervalos vazios característicos dos protocolos de acesso aleatório já não existem mais, porém não é seguro colocar as transmissões da rede nas mãos de um nó. Porque se este falhar, toda a rede para. Outro problema é o tempo de escolha do nó que deverá transmitir. Esse tempo é bastante significativo. No protocolo de passagem de permissão, por token, essas passagens de permissão são distribuídos por todos os nós. Por exemplo, o nó 1 poderá enviar permissão ao nó 2, o nó 2 poderá enviar permissão ao nó 3, o nó N poderá enviar permissão ao nó 1. Quando um nó recebe a permissão, ele a segura se precisar enviar alguma informação, se não, ele passa para o próximo nó.


