UNEMAT-FACIEX Camada de Enlace Dr. José Raúl Vento 2005 CAMADA DE ENLACE CAMADA DE ENLACE ROTEIRO Serviços Detecção de Erros Protocolos Elementares Protocolos de Janela Deslizante Exemplo de Protocolo Subcamada de Acesso ao Meio (MAC) CAMADA DE ENLACE CAMADA DE ENLACE Protocolos da Camada de Enlace CAMADA DE ENLACE CAMADA DE ENLACE Tipos de canais em camada 2 • Há dois tipos de canais em camada de enlace, completamente diferente : • Broadcast • Redes locais (Lans), Lans sem fio, redes por satélite e redes de acesso híbrido de cabo coaxial e de fibra. • Ponto-a-ponto • Conexão entre dois roteadores, um modem residencial e um roteador ISP (PPP) CAMADA DE ENLACE CAMADA DE ENLACE Funções da Camada de Enlace • Conexão de Enlace • Sequenciação • Notificação de Erros Ack/ Nack, time out, Paridade, FCS (Frame Check sequence), CRC • Controle de Fluxo Stop and wait Sliding window CAMADA DE ENLACE CAMADA DE ENLACE Funções da Camada de Enlace Funções Internas Estabelecimento e liberação de conexões Compartilhamento do meio físico - sub-camada MAC Receber dados do nível de rede e dividi-los em frames Receber bits do nível físico agrupá-los em frames Delimitação e sincronização de quadros • Character stuffing • Bit stuffing CAMADA DE ENLACE CAMADA DE ENLACE Funções da Camada de Enlace Enquadramento e acesso ao enlace: encapsula datagrama num quadro incluindo cabeçalho e cauda, implementa acesso ao canal se meio for compartilhado, ‘endereços físicos’ são usados em cabeçalhos de quadros para identificar origem e destino de quadros em enlaces multiponto Entrega confiável: Pouco usada em fibra óptica, cabo coaxial e alguns tipos de pares trançados devido a taxas de erro de bit muito baixas. Usada em enlaces de rádio, onde a meta é reduzir erros evitando assim a retransmissão fim a fim. CAMADA DE ENLACE CAMADA DE ENLACE Funções da Camada de Enlace Controle de Fluxo: compatibilizar taxas de produção e consumo de quadros entre remetentes e receptores Detecção de Erros: erros são causados por atenuação do sinal e por ruído receptor detecta presença de erros receptor sinaliza ao remetente para retransmissão, ou simplesmente descarta o quadro em erro Correção de Erros: mecanismo que permite que o receptor localize e corrija o erro sem precisar da retransmissão CAMADA DE ENLACE CAMADA DE ENLACE Quadros (FRAME) CAMADA DE ENLACE CAMADA DE ENLACE Quadros (FRAME) CAMADA DE ENLACE CAMADA DE ENLACE Delimitação dos Quadros Contador de caracteres CAMADA DE ENLACE CAMADA DE ENLACE Delimitação dos Quadros Caracteres de inicialização e finalização, com caracter de enchimento CAMADA DE ENLACE CAMADA DE ENLACE Delimitação dos Quadros flag byte pattern in data to send flag byte pattern plus stuffed byte in transmitted data CAMADA DE ENLACE CAMADA DE ENLACE Delimitação dos Quadros CAMADA DE ENLACE CAMADA DE ENLACE Delimitação dos Quadros Flags de inicialização e finalização, com caracter de enchimento CAMADA DE ENLACE CAMADA DE ENLACE Delimitação dos Quadros Flags de inicialização e finalização, com caracter de enchimento CAMADA DE ENLACE CAMADA DE ENLACE Delimitação dos Quadros Violação de código no nível físico (RDSI- Interfaz ST) CAMADA DE ENLACE CAMADA DE ENLACE Detecção de Erros CAMADA REDE CAMADA ENLACE CAMADA FISICA CAMADA DE ENLACE EDC= bits de Detecção e Correção de Erros (redundância) D = Dados protegidos por verificação de erros, podem incluir alguns campos do cabeçalho CAMADA DE ENLACE Detecção de Erros Detecção de erros não é 100% perfeita; Protocolo pode não identificar alguns erros, mas é raro Maior campo de EDC permite melhorar detecção e correção CAMADA DE ENLACE Detecção de Erros Uso de Bits de Paridade Paridade de 1 Bit: Detecta erros em um único bit CAMADA DE ENLACE Paridade de Bit Bidimensional: Detecta e corrige em um único bit Detecção de Erros Métodos de “Checksum” Checksum “Internet”: Remetente considera dados como compostos de inteiros de 16 bits; soma todos os campos de 16 bits (usando aritmética de complemento de um) e acrescenta a soma ao quadro; o receptor repete a mesma operação e compara o resultado com o checksum enviado com o quadro. CAMADA DE ENLACE Detecção de Erros Métodos de “CRC” Códigos de Redundância Cíclica (Cyclic Redundancy Codes): Dados considerados como a seqüência de coeficientes de um polinômio (D) É escolhido um polinômio Gerador, (G), (=> r+1 bits) Divide-se (módulo 2) o polinômio D*2r por G. Acrescenta-se o resto (R) a D. Observa-se que, por construção, a nova seqüência <D,R> agora é exatamente divisível por G CAMADA DE ENLACE Detecção de Erros Métodos de “CRC” Implementação de CRC Códigos de Redundância Cíclica (Cyclic Redundancy Codes): Exemplo de CRC CAMADA DE ENLACE Detecção de Erros Métodos de “CRC” Códigos de Redundância Cíclica (Cyclic Redundancy Codes): Implementação de CRC (cont) Remetente realiza em tempo real por hardware a divisão da seqüência D pelo polinômio G e acrescenta o resto R a D O receptor divide <D,R> por G; se o resto for diferente de zero, a transmissão teve erro Padrões internacionais de polinômios G de graus 8, 12, 15 e 32 já foram definidos A ARPANET utilizava um CRC de 24 bits no protocolo de enlace de bit alternado ATM utiliza um CRC de 32 bits em AAL5 HDLC utiliza um CRC de 16 bits CAMADA DE ENLACE Detecção de Erros Métodos de “CRC” em Ethernet EXEMPLO CRC ETHERNET Códigos de Redundância Cíclica (Cyclic Redundancy Codes): CAMADA DE ENLACE Detecção de Erros Métodos de “CRC” em Ethernet EXEMPLO CRC ETHERNET Códigos de Redundância Cíclica (Cyclic Redundancy Codes): CAMADA DE ENLACE Detecção de Erros Métodos de “CRC” em Ethernet EXEMPLO CRC ETHERNET Códigos de Redundância Cíclica (Cyclic Redundancy Codes): CAMADA DE ENLACE CAMADA DE ENLACE Protocolos da Camada de Enlace CAMADA DE ENLACE CAMADA DE ENLACE Protocolos da Camada de Enlace CAMADA DE ENLACE CAMADA DE ENLACE Protocolos da Camada de Enlace Protocolo da camada de enlace é implementado totalmente no adaptador (p.ex., cartão PCMCIA). Adaptador tipicamente inclui: RAM, circuitos de processamento digital de sinais, interface do barramento do computador, e interface do enlace Operações de transmissão do adaptador: encapsula (coloca número de seqüência, info de realimentação, etc.), inclui bits de detecção de erros, implementa acesso ao canal para meios compartilhados, coloca no enlace Operações de recepção do adaptador: verificação e correção de erros, interrompe computador para enviar quadro para a camada superior, atualiza info de estado a respeito de realimentação para o remetente, número de seqüência, etc. CAMADA DE ENLACE CAMADA DE ENLACE Protocolos da Camada de Enlace Protocolo Simplex sem restrições Protocolo Simplex Pare-e-Espere (Stop-and-wait) Protocolo Simplex para um canal com ruído CAMADA DE ENLACE CAMADA DE ENLACE Protocolos da Camada de Enlace Protocolo Simplex sem restrições Transmissão num único sentido O nível de rede está sempre pronto para transmitir e receber O tempo de processamento é ignorado Buffers infinitos Canal de comunicação perfeito CAMADA DE ENLACE CAMADA DE ENLACE Protocolos da Camada de Enlace Protocolo Simplex sem restrições Transmissor CAMADA DE ENLACE Enlace Receptor CAMADA DE ENLACE Protocolos da Camada de Enlace Protocolo Simplex Pare-e-Espere (Stop-and-wait) Os buffers não são infinitos O tempo de processamento não é ignorado O transmissor não envia outra mensagem até que a anterior tenha sido aceita como correta pelo receptor Embora o tráfego de dados seja simplex, há fluxo de quadros em ambos os sentidos CAMADA DE ENLACE CAMADA DE ENLACE Protocolo Simplex Pare-e-Espere (Stop-and-wait) Transmissor CAMADA DE ENLACE Enlace Receptor CAMADA DE ENLACE Protocolo Simplex Pare-e-Espere (Stop-and-wait) CAMADA DE ENLACE CAMADA DE ENLACE Protocolo Simplex para um Canal com Ruído (I) Transmissor Liga timer Enlace X (erro) Estoura timer Religa timer Desliga timer CAMADA DE ENLACE Receptor Detectado erro. Quadro ignorado CAMADA DE ENLACE Protocolo Simplex para um Canal com Ruído (II) Transmissor Enlace Receptor Liga timer X (erro) Estoura timer Religa timer Desliga timer CAMADA DE ENLACE DUPLICATA! SOLUÇÃO: Números de Seqüência CAMADA DE ENLACE Protocolos de Janela Deslizante Protocolos de Janela deslizante ou Sliding Windows É um mecanismo de controle de fluxo e otimização Quem transmite tem um limite de quadros para enviar segundo um parâmetro L que estabelece sua janela de Transmissão Após o envio de L quadros sem receber nenhum ACK o transmissor interrompe o envio de quadros CAMADA DE ENLACE CAMADA DE ENLACE Protocolo Simplex para um Canal com Ruído (III) Os quadros são numerados seqüencialmente O tx transmite um quadro O rx envia uma quadro de reconhecimento se o quadro for recebido corretamente, caso contrário, há um descarte e é aguardada uma retransmissão Quadros não reconhecidos são retransmitidos (temporização) CAMADA DE ENLACE CAMADA DE ENLACE Protocolos de Janela Deslizante Transmissão de dados em ambos sentidos Utilizam a técnica de carona (piggybacking) Possui janelas para transmissão e recepção Janela de transmissão números de seqüência habilitados para transmissão Janela de recepção números de seqüência habilitados para recepção Os quadros são mantidos na memória para possível retransmissão CAMADA DE ENLACE CAMADA DE ENLACE Protocolos de Janela Deslizante CAMADA DE ENLACE CAMADA DE ENLACE Protocolos de Janela Deslizante CAMADA DE ENLACE CAMADA DE ENLACE Protocolos de Janela Deslizante tamanho 1 Inicialmente CAMADA DE ENLACE Após a tx do 1o. quadro Após a rx do Após a rx do 1o. quadro 1o. Reconhecimento CAMADA DE ENLACE Protocolos de Janela Deslizante tamanho 1 A janela de tamanho 1 compromete a eficiência para longo tempo de trânsito (ida e volta) alta largura de banda comprimento de quadro curto Solução: Protocolos com Pipelining CAMADA DE ENLACE CAMADA DE ENLACE Protocolos com Pipelining Solução: Deixar o transmissor transmitir até w quadros (sem receber o reconhecimento do primeiro) antes de ser bloqueado. Devemos escolher w de modo que o transmissor possa transmitir quadros por um tempo igual ao de trânsito, antes de encher a janela CAMADA DE ENLACE CAMADA DE ENLACE Protocolos com Pipelining O que fazer se um quadro no meio da janela for danificado ou perdido? Abordagens: Volte a n (Go Back n) Retransmissão Seletiva (Selective Reject) CAMADA DE ENLACE CAMADA DE ENLACE Protocolos com Pipelining Volte a n O receptor descarta os quadros seguintes ao errado O transmissor identifica que houve erro, com estouro da temporização sem que tenha recebido um reconhecimento Ineficiente se a taxa de erros for alta Janela de recepção 1 CAMADA DE ENLACE CAMADA DE ENLACE Protocolos com Pipelining Protocolo Volte a n Alternativa: quadro correto fora da seqüência dispara a transmissão de um quadro de NAK antecipando o início da retransmissão dos quadros. CAMADA DE ENLACE CAMADA DE ENLACE Protocolos com Pipelining Protocolo Volte a n CAMADA DE ENLACE CAMADA DE ENLACE Protocolos com Pipelining Retransmissão seletiva O nó armazena os quadros corretos que chegarem após o com erro. O transmissor retransmite apenas o com erro. Ao receber o quadro que faltava, o nó entrega os diversos quadros já recebidos rapidamente e envia um reconhecimento do quadro de ordem mais alta Janela de recepção maior que 1 Necessita de maior quantidade de memória no nó CAMADA DE ENLACE CAMADA DE ENLACE Protocolos com Pipelining Retransmissão seletiva CAMADA DE ENLACE CAMADA DE ENLACE EXEMPLO Protocolos da Camada de Enlace (HDLC) HDLC (High-level Data link Control) É uma evolução do protocolo SDLC (Synchronous Data Link Control) desenvolvido pela IBM Padronizado pela ISO O ITU-T modificou o HDLC para o seu LAPB (Link Access Procedure Balanced) utilizado no X.25 CAMADA DE ENLACE CAMADA DE ENLACE EXEMPLO Protocolos Orientados a Bits Formato do Quadro HDLC O High Level Data Link Control (HDLC) foi padronizado pela ISO em 1979, ele é considerado o pai de todos os protocolos de nível 2. • Orientado a bit, início e fim de frame 01111110 • Numero de seqüência • CRC A partir de sua generalidade foram definidos diversos protocolos de nível 2 para algumas arquiteturas de redes específicas, baseados em subconjuntos funcionais do HDLC. • LAP-B de redes X.25 (ex.: RENPAC), • LAP-D para redes ISDN, • LAP-M para modens inteligentes, • LLC (Logical Link Control ) do IEEE-802.2 para redes locais CAMADA DE ENLACE CAMADA DE ENLACE EXEMPLO Protocolos Orientados a Bits Formato do Quadro HDLC CAMADA DE ENLACE CAMADA DE ENLACE Protocolos Orientados a Bits Formato do Quadro HDLC Flags Endereço: usado para identificar terminais em canais multiponto ou para distinguir comandos de respostas. CAMADA DE ENLACE CRC-CCITT Dados: de comprimento variável. Controle: inclui nos. de seqüência, reconhecimentos, etc. CAMADA DE ENLACE Protocolos Orientados a Bits Quadro HDLC Campo de Controle Quadro de Informação: Quadro de Supervisão: Quadro Não Numerado: CAMADA DE ENLACE CAMADA DE ENLACE Protocolos Orientados a Bits Quadro HDLC Campo de Controle CAMADA DE ENLACE CAMADA DE ENLACE Quadros de Supervisão Tipo 0: quadro de reconhecimento positivo (RR - Receive Ready) Tipo 1: quadro de reconhecimento negativo (REJ - REJect) Tipo 2: quadro de reconhecimento (RNR Receive Not Ready) Tipo 3: quadro de rejeição seletiva (SREJ - Selective Reject) CAMADA DE ENLACE CAMADA DE ENLACE Quadros Não Numerados DISC (DISConnect) SNRM (Set Normal Response Mode) SABM (Set Asynchronous Balanced Mode) FRMR (FRaMe Reject) UA (Unnumbered Acknowledgment) CAMADA DE ENLACE EXEMPLO PPP CAMADA DE ENLACE Protocolos da Camada de Enlace Point to Point Protocol CAMADA DE ENLACE EXEMPLO PPP CAMADA DE ENLACE Protocolos da Camada de Enlace Point to Point Protocol CAMADA DE ENLACE EXEMPLO PPP CAMADA DE ENLACE Protocolos da Camada de Enlace Point to Point Protocol CAMADA DE ENLACE CAMADA DE ENLACE Subcamada de Acesso ao Meio (MAC) Controle de acesso a um meio físico compartilhado entre múltiplas estações Será estudada no módulo de Redes Locais. CAMADA DE ENLACE