Alan Menk Santos alanmenk@hotmail.com www.sistemasul.com.br/menk Redes de Computadores e Telecomunicações. Camada de Enlace de Dados Modelo de Referência OSI 1
1 - Fornece interface bem definida para a camada de rede; 2 - Organiza os dados recebidos da camada de rede em quadros (frames) a serem transmitidos na rede física (e viceversa); 3 - Trata erros de transmissão; e 4 - Realiza controle de fluxo para evitar que receptores lentos (ou muito ocupados) sejam inundados de quadros por emissores rápidos (ou pouco ocupados); 1 - Fornece interface bem definida para a camada de rede; 2
2 - Organiza os dados recebidos da camada de rede em quadros (frames) a serem transmitidos na rede física (e viceversa); Exemplo 2 Exemplo: Frames PPP (Point-to-Point Protocol) Formato de quadros do PPP Flag End CC Protocolo Dados FCS Flag 8 bits 8bits 8bits 16 bits até 1500 bytes 16 bits 8 bits 11111111 0.0.2.1- IP Oct. Delimit. 01111110 00000011 Oct. Delimit. 01111110 3
3 - Trata erros de transmissão; (Serviços possíveis) Sem conexão, sem confirmação: usado quando se dispõe de canais de comunicação com alta confiabilidade, como em redes locais; Sem conexão, com confirmação: usado quando se dispõe de canais de comunicação com razoável confiabilidade, como nas transmissões sem fio; Com conexão, com confirmação: usado quando se dispõe de canais de comunicação com baixa confiabilidade, como em redes telefônicas. A geração de quadros pode ser: Por temporização de intervalos entre quadros, quando são inseridos intervalos de tempo entre um quadro e outro; não é muito confiável porque as redes de transmissão não garante a temporização do sistema para o usuário final; Por contagem de bytes, quando se usa um cabeçalho no quadro indicando a quantidade de bytes no mesmo; apresenta um problema sério quando os contadores dos quadros são alterados por erros de transmissão. 4
3 Exemplo: Mas o que causa estes erros? 5
Os erros podem ser causados por: Indução eletromagnética; Falha de sincronização entre emissor e receptor, defeito de componentes, etc; Esquema de detecção e recuperação de erros na transmissão A camada de enlace de dados deve garantir uma transmissão livre de erros entre duas máquinas diretamente conectadas. Os erros podem ser causados por: Paridade de Caracteres Quando se usa codificação de 7 bits em bytes de 8 bits, é possível a utilização do oitavo bit como sinalizador de paridade, de modo que a quantidade de bits 1 no byte seja par (no caso de paridade par) ou ímpar (no caso de paridade ímpar). Este esquema permite detectar, mas não corrigir erros. 6
Verificação de Redundância Cíclica (Cyclic Redundancy Checking - CRC) É um método de detecção polinomial que permite a detecção de praticamente toda ocorrência de erros Algoritmo de Hamming Algoritmo de correção de Erros por meio de cálculos dos bits protegidos por um bit de paridade 4 - Controle de Fluxo Regula o fluxo de quadros entre emissor e receptor, não permitindo que um emissor rápido (ou pouco ocupado) inunde um receptor lento (ou muito ocupado). Essa regulagem normalmente requer algum mecanismo de realimentação do emissor por parte do receptor, de acordo com regras bem definidas. 7
4 - Controle de fluxo baseado em Confirmação Positiva com Retransmissão (Positive Acknowledgment - PAR) Cada quadro enviado deve ser confirmado pelo receptor. O emissor reenvia automaticamente um quadro se não receber a confirmação dentro de um intervalo de tempo (timeout). Para o receptor não confundir um quadro já recebido com uma cópia retransmitida, usa-se um campo de sequência no cabeçalho do quadro (que, nesse caso específico, somente necessita de um bit). 4 - Controle de fluxo baseado em Confirmação Positiva com Retransmissão (Positive Acknowledgment - PAR) Problema 1: Gera um quadro completo (vários bits) para transmitir somente um ACK 0 ou um ACK 1 (dois bits seriam suficientes). Problema 2: Desperdiça muita banda de transmissão porque a transmissão é half-duplex. 8
4 - Controle de fluxo baseado em Janela Deslizante (Sliding Window) Melhora 1: envia confirmação do quadro anterior da máquina A para a máquina B junto com um quadro da máquina B para a máquina A. Se não houver nada a ser transmitido de B para A, envia um ACK isolado. Melhora 2: envia vários quadros (N) antes de obter a confirmação; conforme forem sendo confirmados, continua a transmitir, de modo que em um dado instante possa existir N quadros pendentes de confirmação. 4 - Pipeling É fácil concluir que a combinação (grande atraso de transmissão, banda larga e quadro pequeno) é desastrosa em termos de utilização de um canal de comunicação. Com a escolha apropriada da quantidade de quadros a transmitir sem confirmação, pode-se ter o emissor transmitindo continuamente basta que o emissor receba a confirmação do primeiro quadro da janela logo após terminar de sinalizar o último quadro. Essa técnica é chamada de pipelining. 9
4 - No caso da ocorrência de erro em algum quadro, pode-se: Ignorar toda a seqüência de quadros a partir do errado; não confirmar a recepção; aguardar a retransmissão de todos os quadros a partir do errado (técnica go back n). É um procedimento ruim para canais de comunicação com muito erro. Guardar os quadros da seqüência após o quadro errado; não confirmar o quadro errado; aguardar a retransmissão do mesmo (técnica seletive repeat). É um procedimento bem mais eficiente em termos de aproveitamento de banda, mas requer mais memória no nível de enlace do receptor Vamos ver a seguir um exemplo de um protocolo de enlace tipo PAR muito simples usado em canais unidirecionais. Suponha-se que SEQUENCIA, QUADRO, PACOTE e EVENTO são tipos de dados pré-definidos. 10
Receptor Protocolos da camada de Enlace HDLC - High-level Data Link Control Protocolo derivado do SDLS (Syncronous Data Link Control) usado na arquitetura SNA da IBM. Foi adotado e modificado pelo CCITT para produzir o LAP (Link Access Procedure) usado como parte da arquitetura de rede X.25. Todos são protocolos orientados a bit, usando inserção de bit (insere um bit 0 após cada sequência de cinco bits 1) para a transparência de dados. Todos usam a estrutura de quadro indicada na figura abaixo. 11
Protocolos da camada de Enlace HDLC - High-level Data Link Control Endereço: em canais compartilhados, é usado para identificar emissor/receptor. Em canais ponto-a-ponto, pode ser usado para diferenciar comandos de respostas. Controle: é usado para o envio de números de seqüência, reconhecimento (ACK) e outras informações. Dados: contem os dados (pacote da camada de rede) a serem transportados. Pode ser vazio. CRC: contêm verificação de erros, usando Cyclic Redundance Check com polinômio gerador CRC-CCITT. 01111110: seqüência delimitadora do quadro. Protocolos da camada de Enlace SLIP - Serial Line Internet Protocol Criado por Rick Adamns em 1984 para conectar estações de trabalho SUN na Internet através de uma linha telefônica. É um protocolo orientado a caracter, com inserção de byte (0xDB, 0xDC) para transparência de dados. Tem uma estrutura de quadro muito simples. Embora ainda seja bastante usado, tem vários problemas: Não detecta e/ou corrige erro; Só transporta datagramas IP (Internet); Não negocia endereçamento (cada lado precisa conhecer seu parceiro antecipadamente); Não tem nenhum mecanismo de autenticação; Não é um padrão aprovado pela Internet (existem várias versões incompatíveis). 12
Protocolos da camada de Enlace PPP Point to Point Protocol É um protocolo de enlace proposto IETF para suprir as deficiências do SLIP. O PPP fornece: Um método de enquadramento que delimita o início/fim de cada quadro com um padrão de bits; Um controle de enlace para "ativar" a linha de comunicação, testá-la, negociar opções e "desativá-la" quando não mais necessária. Isso é feito pelo subprotocolo LCP (Link Control Protocol); Um mecanismo de negociação de opções de rede, de modo independente do protocolo de rede adotado. Isso é implementado por um NCP (Network Control Protocol) para cada nível de rede suportado. Subcamada de Acesso ao Meio Redes de Difusão Trata dos problemas e protocolos para acesso ao meio, onde múltiplos usuários (estações) tem de competir entre si para usar o meio de transmissão. Os protocolos usados para determinar quem usa a rede na próxima vez pertencem à subcamada de acesso ao meio, chamada de controle de acesso ao meio (MAC - Medium Access Control). Como controlar o acesso a um canal de transmissão compartilhado por N usuários? 13
Subcamada de Acesso ao Meio Redes de Difusão Alocação Estática de Canal em LANs e MANs Idéia: dividir a banda passante (W) em N faixas, usando FDM. Problemas: Diminui a taxa de transmissão disponível para cada usuário (banda passante de cada usuário passa a ser W/N), logo a taxa de transmissão é menor; 2) Quando um usuário não transmite, o canal é desperdiçado (vai acontecer muito porque o tráfego típico em LAN/MAN é em rajada). Multiplexação por divisão de frequência (MDF), ou do inglês Frequency Division Multiplexing - FDM, é um tipo de multiplexação que permite transmitir simultaneamente vários sinais, dentro do mesmo espaço físico, onde cada canal possui uma banda espectral própria e bem definida. Subcamada de Acesso ao Meio Redes de Difusão Alocação Dinâmica de Canal em LANs e MANs Definições: Modelo de Estações (Station Model): N estações independentes, cada uma com um programa/usuário gerando quadros para transmissão; Presunção de Canal Único (Single Channel Assumption): um único canal está disponível para transmissão/recepção das N estações; Presunção de Colisão (Collision Assumption): dois quadros transmitidos ao mesmo tempo colidem e são deteriorados, exigindo retransmissão; Transmissão em Tempo Contínuo (Continous Time): um quadro pode ser transmitido a qualquer tempo. Não existe um relógio mestre dividindo o tempo em intervalos discretos (fatias); Transmissão em Tempo Fatiado (Slotted Time): um quadro só pode ser transmitido em uma fatia de tempo. Uma fatia de tempo pode conter 0, 1 ou mais quadros, indicando uma fatia vazia, com um quadro ou colisão, respectivamente; Transmissão com Teste de Portadora (Carrier Sense): uma estação pode testar se o canal está livre para, somente nesse caso, iniciar sua transmissão; Transmissão sem Teste de Portadora (No Carrier Sense): uma estação não pode testar se o canal está livre. 14
PROTOCOLOS DE ACESSO MÚLTIPLO ALOHA (puro) (1970) Um dos primeiros a ser desenvolvido. Princípio de funcionamento de uma estação que quer transmitir um quadro: Estação transmite quadro; Estação escuta o canal para receber o quadro que ela mesma transmitiu; Se receber o quadro, a transmissão foi um sucesso; Se não receber, houve colisão. Espera um tempo aleatório (crescente) e retransmite. Esse sistema é chamado de transmissão com contenção. Eficiência: aproximadamente 18 % PROTOCOLOS DE ACESSO MÚLTIPLO CSMA - Carrier Sense Multiple Access (1-persistente) Portador em sentido multiplo acesso Princípio de funcionamento de uma estação que quer transmitir um quadro: Estação testa o canal para ver se está livre; Se estiver ocupado, aguarda ficar livre testando continuamente; O restante do comportamento é igual ao ALOHA. Eficiência: aproximadamente 50 % 15
PROTOCOLOS DE ACESSO MÚLTIPLO CSMA (Não persistente) Princípio de funcionamento semelhante ao CSMA, só que quando o canal está ocupado, aguarda um tempo aleatório (crescente) antes de tentar de novo. Eficiência: aproximadamente 85% (mas com atraso alto). CSMA (p-persistente) PROTOCOLOS DE ACESSO MÚLTIPLO Usado em canais fatiados no tempo. Princípio de funcionamento: Estação aguarda fatia de tempo para transmitir, e transmite com probabilidade p. Com probabilidade q = 1 - p, deixa para transmitir na próxima fatia de tempo (não tem o que transmitir). Quando ocorre colisão, aguarda tempo aleatório (crescente) para retransmitir. Eficiência: aproximadamente 70% com p = 0,5, 90% com p=0,1 e 95% com p=0,01. 16
PROTOCOLOS DE ACESSO MÚLTIPLO CSMA (Collision Detection) Idéia: além de não iniciar a transmissão com o canal ocupado, interrompe uma transmissão tão logo seja detectada colisão. Quando ocorre colisão, aguarda um tempo aleatório (crescente) para retransmitir. É a base do IEEE 802.3 (Ethernet). Entregar uma tonelada de milho: Nº Carros Nº Motos Nº Caminhões PROTOCOLOS DE ACESSO MÚLTIPLO Redes Locais 802.3 Comutadas O crescimento do número de estações em rede implica no crescimento do tráfego; quando satura, o que fazer? Aumentar a capacidade da rede de 10 Mbps (Ethernet) para 100 Mbps (Fast Ethernet), implica em trocar todas as interfaces de rede e trocar o concentrador (hub). Utilizar tecnologia de comutação de circuito através de comutadores (switchs) Ethernet é uma solução bastante adotada para preservar o investimento em interfaces de comunicação, obtendo-se um ganho considerável de performance. 17
Subcamada de Acesso ao Meio Redes de Difusão A codificação usada segue dois padrões: Manchester e Manchester Diferencial. Switch X Hub Subcamada de Acesso ao Meio Redes de Difusão 18
Dúvidas? 19