Redes de computadores – Camada de Enlace

No artigo anterior, os dados que o internet explorer que enviar ao google já passaram pelo protocolo de transporte, que garantirá que os dados chegarão ao destino, e garantirá a integridade dos dados, passo pela camada de rede que determinou para onde os dados serão encaminhados, e se é possível chegar ao google diretamente ou não, mas, falta ainda mais um detalhe: O protocolo de Rede conhece os destinos de rede logicamente, e conhece somente “Origem e destino”. Se o destino é a mesma rede, até seria possível usar a própria camada de rede para fazer a entrega, porém, se o destino está em uma rede conectada indiretamente, como farei para dizer que “O destino é este, mas deve ser encaminhado para este equipamento antes”.

A função da camada de enlace é esta: Permitir a identificação, e encaminhamento de dados para equipamentos localmente conectados. É a ultima etapa antes dos dados “deixarem” o computador e embarcarem na grande viagem até o destino final.

A camada de enlace é a responsável pela identificação física dos equipamentos conectados diretamente e ela. Para a camada de enlace, ainda não importa o meio de transmissão: Radio, cabo, fibra, o que importa é que o destino seja alcançável diretamente pelo meio físico. Quando a informação chega até a camada de enlace, é sinal de que o processador do computador ja encaminhou a informação até o dispositivo de saida (placa de rede), e é este dispositivo que fará o processo de enlace.

Cada equipamento na rede é identificado por um número chamado de MAC ADDRESS. (Media Access Control Address). Este numero é composto por 6 bytes, e deve ser único em cada rede.

É este endereço que determina o destino físico de uma informação: Para um pacote IP destinado a um computador na mesma rede chegar efetivamente ao computador, endereço MAC de destino deste pacote deve ser o do computador com a IP de destino. Um pacote IP com destino a outra rede, deve ser encaminhado para o Mac Address do roteador que irá encaminhar o pacote. O Mac Address é determinado pelo fabricante da placa de rede, seguindo o seguinte formato: nn:nn:nn:ff:ff:ff.

nn:nn:nn é um numero aleatório, escolhido pelo fabricante. ff:ff:ff é um numero que identifica o fabricante. Para o sistema estes valores não fazem a menor importância – o importante é que não haja duas placas com mesmo mac adress na rede. É possível alterar o valor do mac address via software – no windows tem uma opção nas configurações de rede, e no linux o próprio comando ifconfig já traz esta opção.

O endereço FF:FF:FF:FF:FF:FF é especial – significa que a informação deve ser entregue a todos os computadores (endereço de BroadCast).

A camada de enlace adiciona as seguintes informações ao pacote:

<Mac Address de destino><Mac Address de Origem><Tipo de pacote (Ethertype)><dados><crc32 do pacote>

Mac Address de destino e origem é auto-explicativo.

Tipo de pacote (EtherType) serve para indicar qual protocolo foi usado nos dados (se os dados são um pacote IP, o tipo será 0×0800)

Dados são os dados a serem enviados…

e Crc32 do pacote, é um valor gerado apartir de um calculo que envolve todos os dados de todo o pacote enviado. Este valor serve para detecção de erros de transmissão.

Quando a camada de enlace recebe um pacote de dados, ela verifica se ela é a destinatária – se ela não for, o pacote é descartado.

Em seguida, ela calcula o CRC32 do pacote verifica se o valor calculado é igual ao valor do CRC32  informado pelo pacote. Se não for, o pacote é descartado.

Se o pacote não foi descartado nas duas etapas acima, os dados de enlace são removidos e o pacote é entregue ao protocolo de rede adequado, definido por ethertype.

É importante ressaltar que em 99% dos casos quem faz todo este trabalho de adicionar o cabeçalho e verificar o cabeçalho é a placa de rede do computador. Quando os dados chegam até a camada de enlace, é porque o processador já encaminhou o pacote de dados e o endereço de destino até a placa de rede.

Vamos ver como uma informação vinda da camada de rede é enviada para o endereço de enlace correto, usando como exemplo uma rede convencional (essa que se tem em casa ou nas empresas).

Para este exemplo, consideraremos as seguintes informações:

A rede é 10.1.1.0/24, a IP do roteador padrao é 10.1.1.1, e possui mac address 00:00:00:00:01.
O computador 10.1.1.2 possui mac address 00:00:00:00:00:02 e quer enviar uma informação para o computador 10.1.1.5 de mac address 00:00:00:00:00:03.

Hub é um equipamento que liga fisicamente várias placas de rede, e seu funcionamento consiste em, simplesmente, enviar para todas as suas partas de conexão o mesmo sinal – ou seja – a informação enviada por um computador chega em todos os computadores – todos estes equipamentos estão conectados em uma HUB.

Para o computador 10.1.1.2 enviar dados para 10.1.1.5, a primeira coisa a ser feita é a camada de rede detectar se o 10.1.1.5 esta na mesma rede de 10.1.1.2. Neste caso, eles estão na mesma rede.

Pare efetivar a conexão, a camada de rede precisa saber qual o destino fisico deste pacote, e para isto ela instrui a camada de enlace para que envie um pacote de dados, destinado para o endereço físico FF:FF:FF:FF:FF:FF perguntando :”Quem é a máquina com IP 10.1.1.5?”

Como esta informação foi encaminhada por broadcast, ela atingirá a camada de rede de todos os computadores da rede. Os computadores que não são possuem a IP 10.1.1.5 simplesmente ignorarão a mensagem. Já o computador que possui esta ip responderá com “Eu sou o computador 10.1.1.5 e meu Mac Address é 00:00:00:00:00:03″.

Agora que a camada de rede de 10.1.1.2 conhece o Mac Address de 10.1.1.5, ele instrui a camada de enlace para que envie as informações para o mac address 00:00:00:00:00:03 informando que a camada de rede adequada para este pacote é a IP, para isto, informa que o EtherType é do tipo 0×0800.

A camada de enlace adiciona os cabeçalhos adequados, realiza o calculo do CRC32, e encaminha a informação para a camada física, que se encarrega de transmitir, fisicamente, a informação. No momento em que a camada de enlace encaminha para a camada física, a informação “saiu” do computador e foi para a rede. Observe que, em nenhum momento, a camada de enlace se preocupou em QUAL será o meio físico, apenas em qual o destinatário físico!

Como nossas maquinas estão conectadas em uma HUB, que simplesmente replica a informação recebida em uma porta para toda as outras, todos os computadores irão receber o pacote encaminhado. O que acontece então:

A placa de rede do  roteador (ip 10.1.1.1 e Mac Address 00:00:00:00:00:01) receberá um pacote de dados destinado ao Mac Address 00:00:00:00:00:03. Como o pacote não é encaminhado à ele, o pacote será descartado.

A placa de rede do computador de ip 10.1.1.5 cujo Mac Address é 00:00:00:00:00:03, também receberá um pacote destinado ao Mac Address 00:00:00:00:00:03. Ao verificar que ele é o destinatário, a placa fará o calculo do CRC32. Caso esteja correto, repassará o pacote para a camada de rede indicada em ethertype, para que esta tome as providencias cabíveis.

Mas, e se o computador 10.1.1.2 quiser enviar um pacote de dados para a ip 200.10.10.10? Esta IP está em outro local do mundo, e, obviamente, não está na mesma rede fisica de 10.1.1.2, o que acontece? Simples:

Quando a camada de rede de 10.1.1.2 detectar que 200.10.10.10 não pertence à mesma rede, ele deve endereçar este pacote para 200.10.10.10, porém deve encaminhar o pacote, fisicamente, para o roteador padrão.

Neste caso, o computador 10.1.1.2 envia o pacote para a Mac Address do roteador 10.1.1.1 (Mac Address 00:00:00:00:00:01).

A placa de rede (camada de enlace) do roteador receberá um pacote destinado à 00:00:00:00:00:01 e encaminhará (sem as informações de enlace) para a camada de rede. Por ser um roteador, ao detectar que ele não é o destinatário do pacote, ele reencaminhará, usando o mesmo processo, para outro roteador. Observe que, como os dados de enlace valem somente para uma rede fisica. Como roteadores fazem a ligação entre redes na camada de rede, para cada rede que os dados transitam são usados cabeçalhos de enlace diferentes (resumindo: Dados de enlace não atravessam os roteadores).

Além de identificar cada equipamento na rede fisicamente, a camada de enlace pode prover outros serviços, como criptografia (usada em redes wireless), multiplexação, controle de erros, dependendo da necessidade, sendo que, geralmente, todas estas operações são “invisiveis” para as outras camadas.

About these ads

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

Seguir

Obtenha todo post novo entregue na sua caixa de entrada.

%d blogueiros gostam disto: