Redes de Computadores Camada de Enlace
Camada de Enlace Serviços Detecção de Erros Protocolos Elementares Protocolos de Janela Deslizante Exemplo de Protocolo Subcamada de Acesso ao Meio (MAC) Camada de Enlace 2
Protocolos da Camada de Enlace 5: Camada de Enlace 3
Serviços 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 4
Serviços da Camada de Enlace (mais) 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 5
Implementação de Protocolo 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 6
Camada de Enlace 7 Delimitação dos Quadros Contador de caracteres
Camada de Enlace 8 Delimitação dos Quadros Caracteres de inicialização e finalização, com caracter de enchimento
Camada de Enlace 9 Delimitação dos Quadros Flags de inicialização e finalização, com caracter de enchimento Violação de código no nível físico
Camada de Enlace 10 Detecção de Erros 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 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
Uso de Bits de Paridade Paridade de 1 Bit: Detecta erros em um único bit Paridade de Bit Bidimensional: Detecta e corrige em um único bit Camada de Enlace 11
Camada de Enlace 12 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. 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*2 r 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
Exemplo de CRC Camada de Enlace 13
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 14
Protocolos Elementares Protocolo Simplex sem restrições Protocolo Simplex Pare-e-Espere (Stopand-wait) Protocolo Simplex para um canal com ruído Camada de Enlace 15
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 16
Protocolo Simplex sem restrições Transmissor Enlace Receptor Camada de Enlace 17
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 18
Protocolo Simplex Pare-e- Espere Transmissor Enlace Receptor Camada de Enlace 19
Camada de Enlace 20 Protocolo Simplex para um Canal com Ruído (I) Transmissor Liga timer Enlace X (erro) Receptor Detectado erro. Quadro ignorado Estoura timer Religa timer Desliga timer
Protocolo Simplex para um Canal com Ruído (II) Transmissor Liga timer Enlace X (erro) Receptor Estoura timer Religa timer Desliga timer DUPLICATA! SOLUÇÃO: Números de Seqüência Camada de Enlace 21
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 22
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 23
Janela Deslizante de tamanho 1 Inicialmente Após a tx do 1o. quadro Após a rx do 1o. quadro Após a rx do 1o. Reconhecimento Camada de Enlace 24
Protocolos com Pipelining 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 Camada de Enlace 25
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 26
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 27
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 28
Camada de Enlace 29 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 30 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.
Protocolo com Retransmissão Seletiva Camada de Enlace 31
Exemplo de Protocolo de Enlace 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 32
Formato do Quadro para Protocolos Orientados a Bits Flags Endereço: usado para identificar terminais em canais multiponto ou para distinguir comandos de respostas. CRC-CCITT Dados: de comprimento variável. Controle: inclui nos. de seqüência, reconhecimentos, etc. Camada de Enlace 33
Camada de Enlace 34 Campo de Controle Quadro de Informação: Quadro de Supervisão: Quadro Não Numerado:
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 35
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 36
Camada de Enlace 37 Subcamada de Acesso ao Meio 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 38 Problemas (I) Num canal com ruído poderíamos utilizar um protocolo que possuísse apenas reconhecimentos negativos (NAKs)? Quais seriam as suas vantagens e desvantagens? Queremos utilizar um canal E1 de 3.000 km para transmitir quadros de 64 bytes utilizando um protocolo do tipo Volte a n. Se a velocidade de propagação do sinal for de 6 seg/km, quantos bits deveríamos utilizar para o número de seqüência dos quadros?
Camada de Enlace 39 Problemas (II) Assumindo que o protocolo de enlace utilizado seja o LAPB, com apenas 3 bits para os números de seqüência, e onde BI corresponde à Borda Inferior da janela de transmissão, V(S) corresponde ao número de seqüência do próximo quadro a ser transmitido e V(R) corresponde à variável que indica o número de seqüência do próximo quadro esperado. Complete o cenário abaixo, indicando claramente a troca de mensagens nas interfaces entre as camadas de enlace e de rede, assim como os instantes em que são liberados os buffers de transmissão correspondentes a que mensagens.
BI V(S) V(R) BI V(S) V(R) 7 7 3 I= N(S)= N(R)= I= N(S)= N(R)= I= N(S)= N(R)= 3 3 7 I= N(S)= N(R)= I= N(S)= N(R)= I= N(S)= N(R)= I= N(S)= N(R)= I= N(S)= N(R)= Tipo= N(R)= I= N(S)= N(R)= I= N(S)= N(R)= I= N(S)= N(R)= I= N(S)= N(R)= I= N(S)= N(R)= I= N(S)= N(R)= RR N(R)=
BI V(S) V(R) BI V(S) V(R) A 7 7 3 I=A N(S)= 7 N(R)= 3 liga temp. 3 3 7 B. 7 0 3 3 3 0 A X I= B N(S)= 0 N(R)= 3 X 7 1 3 3 4 0 Liga temp. Libera Buffer A I= X N(S)= 3 N(R)= 0 3 4 1 B Religa temporizador 0 1 4 C I= C N(S)=1 N(R)= 4 Y Libera Buffer B Religa temporizador Y D E F Religa temporizador Z Libera Buffers C a F Desliga temporizador W 0 2 4 1 2 5 1 3 5 I=Y N(S)= 4 N(R)= 1 I= D N(S)=2 N(R)= 5 I= E N(S)= 3 N(R)= 5 1 4 5 I= F N(S)= 4 N(R)= 5 5 5 1 Libera Buffers X e Y Deslliga temporizador 5 5 1 1 5 5 Liga temp.p/ REJ Tipo= REJ N(R)= 1 5 5 1 1 1 5 Z I= C N(S)= 1 N(R)= 5 1 2 5 5 6 1 Liga temp. I= Z N(S)= 5 N(R)= 1 C 1 2 6 5 6 2 Desliga temp.p/ REJ I= D N(S)= 2 N(R)= 6 1 3 6 1 4 6 1 5 6 5 5 7 5 5 7 RR N(R)=7 I= E N(S)= 3 N(R)= 6 I= F N(S)= 4 N(R)= 6 I= W N(S)= 6 N(R)=5 3 5 1 6 6 3 D Libera Buffer Z Deslliga temporizador 6 6 4 6 6 5 6 7 5 E F W Liga temp. 7 7 5 Libera Buffer W Deslliga temporizador