Ver Feed RSS

root@blog:/# chmod o+r *

Curso de Redes: Camada de enlace de dados - Parte 1

Avaliação: 5 votos, 4,80 média.

Leia as partes anteriores desse curso antes de prosseguir



Olá pessoal!!

Voltando ao nosso curso de redes! Mas antes queria pedir desculpas por não ter postado na sexta mas realmente não deu!! vocês sabem né?! vai chegando o fim do ano todos os prazos se apertam!
Pra vocês verem também o trabalho que tá dando essa camada 2, vou ter que dividir-la dois posts pra não prejudicar o conteúdo! Talvez aumente pra três ainda não sei...

Esse primeira parta é mais teórica e a segunda vou abordar questões mais técnicas incluindo configuração de ativos de camada 2!! Primeira parte prática desse curso! Espero que gostem!

Vamos começar...


Camada 2 - Enlace de Dados



Introdução

A camada de enlace tem a função de fornecer serviços à camada rede. As principais funções dessa camada são:

  • Arbitragem;
  • Endereçamento;
  • Identificação de conteúdo ;
  • Detecção de erros.



Ethernet

Atualmente a principal tecnologia da camada de enlace é a ethernet, ela está definida no padrão IEEE 802.3.

O nome ethernet se originou da soma de duas palavras éter (ether em inglês) e rede (net). O éter foi idealizado por cientistas antigos, após a descoberta de que a luz era uma onda eletromagnética, para explicar como a luz podia viajar pelo espaço. A teoria da propagação de ondas diz que uma onda necessita de um “meio” para se propagar. Com isso os cientistas idealizaram que o éter preenchia todo o espaço e dessa forma a luz podia viajar.

Baseado nessa idéia, os criadores da ethernet queria desenvolver um protocolo de comunicação onde vários hosts poderiam se comunicar através de um meio compartilhado qualquer sem que os dados de um host interfiram com os dados de outro host. Dessa forma fez-se necessário criar um controle de acesso ao meio.

Este foi o primeiro “draft” da ethernet:



Abaixo um diagrama “melhorado” do livro do Tanembaum.




Para mais detalhes sobre a origem da ethernet há um trecho do livro do Tanembaum nesse site



O método de controle de acesso ao meio mais famoso da ethernet é o CSMA/CD (Carrier-Sense Multiple Access with Collision Detection ou Acesso Múltiplo com Sensoreamento de Portadora com Detecção de Colisão). Outro método de controle muito utilizado em tecnologias ethernet é o CSMA/CA (Collision Avoidance ou Prevenção de Colisão) que é muito utilizado em redes wireless devido ao pequeno detalhe de que em redes wireless você não tem como “ter certeza” de que alguém já está transmitindo!

Para mais informações sobre o CSMA/CA leia esse artigo muito bom




Algoritmo CSMA/CD

O CSMA/CD foi idealizado para redes que utilizam barramento. As redes de barramento possuem a característica de que se um host transmite todos os outros hosts do barramento devem somente ouvir. Dessa forma há uma competição pelo meio (barramento). O algoritmo CSMA/CD visa controlar essa competição de forma a não impactar no desempenho da rede.


O algoritmo define que o host, antes de transmitir, deve ouvir o meio para constatar que ele não está em utilização. Após verificar se há ou não alguém transmitindo ele toma a decisão de aguardar ou seguir para o próximo passo. Esse algoritmo tem dois pontos muito importantes. O sub-algoritmo de colisão e a questão de ouvir durante a transmissão.

Quando o host está transmitindo ele ouve o meio para certificar-se que “o que está no meio é o que ele enviou”. Se por acaso houver uma colisão ele irá ouvir algo diferente do que ele transmitiu, detectando assim, uma colisão. “Mas como pode haver uma colisão se todos ouvem o meio antes de transmitir?”. A transmissão se propaga pelo meio com um certo retardo assim, a transmissão de um host na porta A de uma cabo pode levar um certo tempo para chegar na ponta B. Dessa forma se dois hosts distantes tentarem transmitir ao mesmo tempo, ou quase ao mesmo tempo, pode haver colisão.

O ponto mais interessante desse algoritmo é o sub-algoritmo de colisão. Esse sub-algoritmo define se esse será um algoritmo CSMA/CD ou CSMA/CA.

Em um algoritmo CSMA/CD esse sub-algoritmo ira gerar um sinal de JAM (de 32 bits) durante um certo. Esse sinal de JAM serve para avisar a todos os hosts desse barramento que houve uma colisão e que eles devem parar de transmitir. Os causadores da colisão, origem e destino, irão esperar um tempo aleatório definido pelo algoritmo de backoff. Após o tempo aleatório eles tentarão transmitir novamente.



Endereçamento MAC


Para permitir uma entrega local de quadros na Ethernet, foi criado um sistema de endereçamento, uma maneira exclusiva de identificação de computadores e interfaces. A Ethernet usa endereços MAC que têm 48 bits de comprimento e são expressos como doze dígitos hexadecimais. Ex: 00:0F:EA:28:36:6C

Os primeiros seis dígitos hexadecimais, que são administrados pelo IEEE, identificam o fabricante ou o fornecedor. Esta parte do endereço MAC é conhecida como OUI (Organizational Unique Identifier). Os seis dígitos hexadecimais restantes representam o número de série da interface ou outro valor administrado pelo fabricante do equipamento específico.

Uma lista de todos os OUIs reservados podem ser consultados aqui




Os endereços MAC às vezes são conhecidos como burned-in addresses (BIA), porque são gravados na memória apenas de leitura (ROM) e são copiados na memória de acesso aleatório (RAM) quando a placa de rede é inicializada.


As placas de rede usam o endereço MAC para avaliar se a mensagem deve ser passada para as camadas superiores do modelo OSI. A placa de rede faz essa avaliação sem usar o tempo de processamento da CPU, proporcionando melhores tempos de comunicações na rede Ethernet.



Unicast, broadcast e multicast

O endereço MAC pode ser Unicast, Multicast e Broadcast. No caso de unicast o endereço MAC é conforme citado acima, composto por um OUI e o identificador.

O Multicast possui o bit menos significativo do byte mais significativo setado como um. Complicou?! Ok, tomamos o MAC de exemplo citado acima: 00:0F:EA:28:36:6C, ele é um endereço unicast. Vamos pegar o byte mais significativo: 00. Converte-lo para binário: 0000 0000. Qual o bit menos significativo?! O em negrito. Mas essa foi fácil ne?! Vamos pegar outro: 02:CF:1C:28:36:6C. Novamente o byte mais significativo: 02. Convertendo 0000 0010. Novamente um Unicast. “Então como seria um multicast?” Assim: 0000 0011. Convertendo para hexadecimal: 03:CF:1C:28:36:6C. “Perai, então eu vou ter que fazer isso toda vez pra descobrir se é multicast ou unicast??” Na verdade não! Pra quem ta acostumado com números binário sabe a função do bit menos significativo que é tornar um número ímpar ou par. Dessa forma, se o byte mais significativo for ímpar, ele é multicast. Se for par é unicast.

Um endereço MAC de broadcast é todo composto por 1s. Dessa forma temos o seguinte endereços: FF:FF:FF:FF:FF:FF.



Adicionando os cabeçalhos e trailers

Na camada de enlace de dados, cabeçalhos e trailers são adicionados aos dados da camada superior. O cabeçalho e o trailer contêm informações de controle destinadas à camada de enlace de dados no sistema de destino. O conjunto Cabeçalho + Dados + Trailer da camada de enlace chamamos de Quadro. Um quadro é uma unidade de dados de protocolo (PDU – Protocol data unit) da camada interface de rede.

O quadro Ethernet é definido da seguinte forma:



  • O Preâmbulo é um padrão de uns e zeros alternados usado para a sincronização da temporização em Ethernet assíncrona de 10 Mbps e em implementações mais lentas. As versões mais rápidas da Ethernet são síncronas, e essa informação de temporização é redundante mas mantida para fins de compatibilidade.
  • Um Delimitador de Início de Quadro (SDF - Start Frame Delimeter) consiste em um campo de um octeto que marca o final das informações de temporização e contém a seqüência de bits 10101011.
  • O campo Endereço de Destino contém um endereço de destino MAC. O endereço de destino pode ser unicast, multicast ou broadcast.
  • O campo Endereço de Origem contém um endereço de origem MAC. O endereço de origem é geralmente o endereço unicast do nó Ethernet que está transmitindo. Existe, contudo, um crescente número de protocolos virtuais em uso que utiliza, e às vezes, compartilha um endereço MAC de origem específico para identificar a entidade virtual.
  • O campo Comprimento/Tipo suporta dois usos diferentes. Se o valor for inferior a 1536 decimal, 0x600 (hexadecimal), então o valor indica o comprimento. O valor do tipo especifica o protocolo da camada superior que recebe os dados depois que o processamento da Ethernet estiver concluído. O tamanho indica o número de bytes de dados que vêm depois desse campo.
  • O campo Dados e o Enchimento, se necessário, pode ser de qualquer tamanho que não faça com que o quadro exceda o tamanho máximo permitido para o quadro, A MTU (Unidade de Transmissão Máxima) para Ethernet é de 1500 octetos. Portanto, os dados não devem exceder esse tamanho. O conteúdo desse campo não é especificado. Um enchimento não especificado será inserido imediatamente após os dados do usuário quando não houver dados de usuário suficientes para que o quadro satisfaça o comprimento mínimo para o quadro. A Ethernet exige que o quadro tenha entre 64 e 1518 octetos. Esse processo de inserção de dados para complementar um quadro muito pequeno é chamado de padding (enchimento).
  • Uma FCS, Frame Check Sequence (CRC Checksum) contém um valor CRC de 4 bytes que é criado pelo dispositivo emissor e recalculado pelo dispositivo receptor para verificar se há quadros danificados. Já que a corrupção de um único bit em qualquer lugar desde o início do Endereço de Destino até o final do campo FCS fará com que o checksum seja diferente, o cálculo do FCS inclui o próprio campo FCS. Não é possível distinguir entre a corrupção do próprio FCS e a corrupção de qualquer outro campo usado no cálculo.



Juntando Tudo

Agora vamos ver todas as funcionalidades da camada de enlace de dados juntas.

No processo de envio de algum dado, a camada de enlace pega os dados, encapsula-os com um cabeçalho e trailer, preenchendo os campos Mac de origem e destino (função de endereçamento), o campo comprimento/tipo (identificação de conteúdos) e o campo FCS (detecção de erros). Antes de transmitir ele verifica se tem alguém transmitindo e ao transmitir verifica se houve colisão (arbitragem).

Na recepção, é verificada se o endereço de destino do quadro é igual ao endereço da placa de rede (endereçamento), é realizado novamente o cálculo do FCS e comparado com o original (verificação de erros) os cabeçalhos e trailers são removidos e os dados são passados para a camada superior competente (identificação de conteúdos).


Referências

* Cisco CCNA - Guia de certificação do Exame, 3a Edição
Wendell Odom

* Redes de Computadores, 4a Edição
Andrew S. Tanenbaum,

* Conteúdo Cisco NetAcad, versão 3.1.1

* Sites referenciados acima



Fechamento



Bem pessoal. Esse post acabou atrasando como disse anteriormente. Mas não pelo fato do comprimento, como vocês podem ver, mas pela condensação das idéias. Tive que juntar muita coisa em pouco espaço e firmar essa base para a segunda parte do post onde irei abordar alguns ativos, funcionamento e configurações básicas. Essa segunda parte eu acho que será mais difícil ainda! E como vocês sabem essa semana tem natal e a próxima ano novo! Mas vou me esforçar

O bom de rever conteúdos que você se habitua a tratar é que você começa a visualizar coisas que antes eram impossíveis. A primeira vista esse negócio todo de quadros, protocolos e siglas é muito estranho, mas aos poucos você se acostuma com a idéia. Então quem está desanimando, não desista! Pois agora que estamos começando a ver redes de verdade!

Como sempre coloco, que tiver dúvidas, sugestões ou correções, podem usar o comentário livremente.

Obrigado e até a próxima pessoal...

Atualizado 26-01-2010 em 20:03 por Magnun

Categorias
Curso de Redes , Cursos

Comentários

Página 1 de 2 12 ÚltimoÚltimo
  1. Avatar de ederamboni
    Parabens, muito bom o conteudo...
  2. Avatar de Magnun
    Valeu...
    Tô numa luta pra conseguir tempo pra acabar a camada de enlace... Logo deve ta saindo galera!!

    Desculpa a demora...
  3. Avatar de Não Registrado(s)
    uma correção: tentaram transmitir novamente -> tentarão.
  4. Avatar de Magnun
    Realmente, obrigado pela correção!
  5. Avatar de dinoqnet
    Continuando!!
Página 1 de 2 12 ÚltimoÚltimo

+ Enviar Comentário




Visite: BR-Linux ·  VivaOLinux ·  Dicas-L