CAMADA DE ENLACE ● Dois tipos de canais na camada de enlace: ○ Canais de broadcast : hospedeiros conectados ao mesmo canal de comunicação e é preciso um protocolo de acesso ao meio para coordenar transmissões e evitar colisões ○ Canais de enlace de comunicação ponto a ponto : entre dois roteadores ou entre um modem residencial e um roteador ISP. ● Exemplos de protocolos da camada de enlace: Ethernet, 802.11, Token Ring e PPP (PointtoPoint Protocol).
Serviços oferecidos pelo protocolo da camada de enlace: ● ●
●
● ●
●
●
Enquadramento de dados Acesso ao enlace ○ um protocolo de acesso ao meio (medium access control protocol MAC) especifica as regras sobre as quais um quadro é transmitido pelo enlace ○ Campos de trailer: campos no final do quadro Entrega confiável ○ Transmissão do datagrama IP (camada de rede) SEM ERRO. ○ Muito usado em enlaces com alta taxa de erros (wifi, por exemplo), para que corrija o erro localmente ao invés de forçar a retransmissão fimafim. ○ Para enlaces com baixa taxa de erros, essa propriedade é sobrecarga desnecessária. Controle de fluxo ○ Evitar que um nó transmissor congestione o nó receptor Detecção de erros ○ Obriga o nó transmissor a enviar bits de detecção de erros no quadro e obrigando o nó receptor realizar a verificação de erros. ○ Implementada em hardware Correção de erros ○ Semelhante à detecção de erros, diferenciando apenas porque na correção é mostrada a posição do quadro onde ocorreu o erro. Halfduplex e Fullduplex
A camada de enlace (no hospedeiro, PC) é implementada em um adaptador de rede ou em um controlador de interface de rede (NIC Network Interface Control). O controlador é um chip dentro do adaptador de rede, que implementa enquadramento, acesso ao enlace, controle de fluxo, etc. A maior parte da camada de enlace é implementada em hardware, no controlador. A outra parte da implementação fica em software, que é executado na CPU. A camada de enlace é a camada da pilha de protocolos que une hardware e software. A principal funcionalidade da camada de enlace é implementada no controlador. O adaptador é uma unidade semiautônoma, tendo como função apenas transportar quadros de
um adaptador ao outro. 5.2 Técnicas de detecção e correção de errod Para que os dados fiquem protegidos contra erros de bits, aumentase esses dados com bits de detecção e de correção EDC (Error DetectionandCorrection bits). 5.2.1 Verificações de paridade ● Esquema de paridade par: Total de ‘1’ nos bits d + 1 (d é o número de bits do quadro) é par. Esquema de paridade ímpar segue a mesma ideia. ● Receptor conta quantos ‘1’ há nos d+1 bits recebidos. ● Se utilizar par e a quantidade de ‘1’ em d+1 for ímpar, há erro (número ímpar de erros)! ● Se a quantidade de erros for par, em esquema de paridade par, o erro não é detectado. ● Erros frequentemente ocorrem em ‘rajadas’. ● Paridade bidimensional. d bits são divididos em i linhas e j colunas. Um valor de paridade é calculado para cada fila e para cada coluna. i+j+1 bits de paridade compreendem os bits de detecção de erros. ● Capacidade de detectar e corrigir erros: correção de erros de repasse ( forward error correction FEC). 5.2.2 Métodos de soma de verificação ● d bits são tratados como uma sequência de números inteiros de k bits. Um método de soma de verificação é somar esses inteiros de k bits e usar o total resultante como bits de detecção de erros. ● Soma de verificação da Internet : bytes de dados são tratados como inteiros de 16 bits e somados. O complemento de 1 da soma forma a soma de verificação da Internet que é carregada no cabeçalho do segmento. ● Pouca sobrecarga de pacote ● Soma de verificação são normalmente implementadas na camada de transporte, pois é simples e rápido 5.2.3 Verificação de redundância cíclica (CRC Cyclic Redundancy Check) ● Códigos de verificação de redundância cíclica códigos polinomiais. ● remetente e receptor concordam com r+1 bits (gerador G). ● Bit + significativo é 1. ● (D * 2r)XOR R = nG ○ D: bits de dados a enviar ○ R: bits de CRC ○ r: quantidade de bits do gerador ○ G: gerador ○ n: d+r deve ser divisível por G, usando aritmética de módulo 2. 5.3 Protocolos de acesso múltiplo ● Coordenar as transmissões de nós ativos num canal broadcast
●
Categorias de protocolos de acesso múltiplo: ○ protocolos de divisão de canal ■ TDM ■ FDM ○ protocolos de acesso aleatório ○ protocolos de revezamento ● Características desejáveis de um protocolo de acesso múltiplo para um canal broadcast com velocidade Rbps: ○ Quando só um nó tem dados para enviar, a vazão é R bps ○ Quando M nós têm dados a enviar, cada um desses nós tem uma vazão de R/M bps. Cada nó deverá ter uma velocidade média de transmissão de R/M. ○ O protocolo é descentralizado. Não há nós mestres que possam falhar e derrubar todo o sistema ○ O protocolo é simples para ter implementação barata 5.3.1 Protocolos de divisão de canal ● TDM divide o tempo em quadros temporais e depois divide cada quadro temporal em N compartimentos. Cada compartimento é atribuído a um dos N nós. ○ Analogia com uma sala de pessoas. Cada pessoa tem sua vez de falar e um tempo definido. ○ Problema: se só tem uma pessoa para falar, ela terá que falar pelo seu tempo e esperar chegar na sua vez para poder falar novamente ● FDM divide o canal d R bps em frequências diferentes. Cada um com largura de banda R/N. Cada frequência fica para cada um dos N nós. ○ Mesmas vantagens do TDM (sem colisões e divide a banda com justiça). ○ Desvantagem: um nó é limitado a uma largura de R/N bps, mesmo se o canal estiver livre ● CDMA Acesso múltiplo por divisão de código (Code Division Multiple Access) ○ Um código para cada nó. ○ nós diferentes transmitem simultaneamente e conseguem que os receptores respectivos recebam corretamente os bits codificados pelo remetente 5.3.2 Protocolos de acesso aleatório ● Nó transmissor sempre transmite à taxa total do canal, R bps ● Quando há colisão, o nó espera um tempo aleatório antes de retransmitir o quadro ● Exemplos de protocolos de acesso aleatório: Aloha e CSMA Slotted Aloha ● Exercícios:
Seção 5.1 a 5.2 1. Considere a analogia de transporte na Seção 5.1.1. Se o passageiro é análogo ao datagrama, o que é análogo ao quadro da camada de enlace? Resposta: Limosine, avião e trem. 2. Se todos os enlaces da internet fornecessem serviço confiável de entrega, o serviço confiável de entrega TCP seria redundante? Justifique sua resposta. Resposta: Não. A entrega confiável na camada de enlace não garante que o quadro seja transmitido sem erros, pois os métodos de detecção e correção de erros na camada de enlace não asseguram que os bits não contém erros. Ou seja, há possibilidade de erros de bits não serem detectados. 3. Quais alguns possíveis serviços que um protocolo da camada de enlace pode oferecer à camada de rede? Quais desses serviços de camada de enlace têm serviços correspondentes no IP? e no TCP? Resposta: Serviços oferecidos à camada de rede : Enquadramento de dados, Acesso ao enlace, Entrega confiável, Controle de fluxo, Detecção de erros, Correção de erros, Halfduplex e Fullduplex. Serviços de enlace que têm correspondentes no IP : Enquadramento de dados, Acesso ao enlace. Serviços de enlace que têm correspondentes no TCP : Enquadramento de dados, Acesso ao enlace, Entrega confiável, Controle de fluxo, Detecção de erros, Correção de erros. Seção 5.3 4. Suponha que dois nós comecem a transmitir ao mesmo tempo um pacote de comprimento L por um canal broadcast de velocidade R . Denote o atraso de propagação entre os dois nós como tprop. Haverá uma colisão se tprop < L / R ? Por quê? 5. Na seção 5.3, relacionamos quatro características desejáveis de broadcast. O slotted ALOHA tem quais dessas características? E o protocolo de passagem de permissão, tem quais dessas características? Resposta: O slotted ALOHA tem duas características e meia: ● quando um nó quer transmitir, transmite à velocidade Rbps ● É um protocolo simples. ● É parcialmente descentralizado: precisa fazer sincronismo no clock dos nós. 6. Descreva os protocolos de polling e de passagem de permissão usando a analogia com as interações ocorridas em um coquetel. 7. Por que o protocolo de passagem de permissão seria ineficiente se uma LAN tivesse um perímetro muito grande? Seção 5.4 8. Que tamanho tem o espaço de endereço MAC? E o espaço de endereço IPv4? E o espaço
de endereço IPv6?