Transmissão de Dados Modelo de Referência TCP/IP Camada de Enlace de Dados UNIP Transmissão de Dados – Camada de Enlace de Dados Modelo de Referência TCP/IP Camada de Aplicação Camada de Transporte Camada de Rede Camada de Enlace de Dados Camada de Física UNIP Transmissão de Dados – Camada de Enlace de Dados Definição de Quadro Cabeçalho Dados do usuário Fim (“trailer”) Cabeçalho: Endereço de destino, endereço de origem, contagem de hops, tamanho do quadro, etc. Dados do usuário: Parte útil do quadro, onde os dados são transportados Fim: Marca de fim, soma de verificação. UNIP Transmissão de Dados – Camada de Enlace de Dados Funções Principais 1. Proporcionar uma interface de serviços bem definidos para a camada de Rede. 2. Determinar como os bits da camada Física são agrupados em quadros (enquadramento). 3. Lidar com os erros de transmissão. 4. Regular o fluxo de quadros para que transmissores rápidos não “afoguem” receptores lentos. UNIP Transmissão de Dados – Camada de Enlace de Dados 2. Enquadramento 2.1. Método da contagem de caracteres. 2.2. Método dos caracteres de início e fim, com preenchimento de caracteres. 2.3. Método dos caracteres de início e fim, com preenchimento de bits. UNIP Transmissão de Dados – Camada de Enlace de Dados 2.1. Método da contagem de caracteres Utiliza um campo no cabeçalho (contador) para especificar o número de caracteres no quadro. Com esta informação, o receptor “sabe” onde está o final do quadro. UNIP Transmissão de Dados – Camada de Enlace de Dados 2.1. Método da contagem de caracteres Exemplo Bits a transmitir: 1o quadro: 1, 2, 3, 4 2o quadro: 5, 6, 7, 8 3o quadro: 10 e 11 Transmissor 11 10 3 Receptor 9 8 7 6 5 4 3 Contador UNIP Transmissão de Dados – Camada de Enlace de Dados 2 1 5 2.1. Método da contagem de caracteres Problema: Se o contador for alterado por um erro de transmissão: • Perde-se o sincronismo de final de quadro e início do seguinte. • Não há como localizar o quadro danificado para solicitar uma retransmissão. UNIP Transmissão de Dados – Camada de Enlace de Dados 2.2. Método dos caracteres de início e fim, com preenchimento de caracteres A) Resolve o problema de ressincronizar quadros depois de um erro. B) Utilizando o conjunto de caracteres ASCII como padrão. C) Cada quadro começa e termina com um padrão especial de caracteres: C.1) Inicia com DLESTX C.2) Termina com DLEETX UNIP Transmissão de Dados – Camada de Enlace de Dados 2.2. Método dos caracteres de início e fim, com preenchimento de caracteres DLE - Data Link Escape STX - Start of Text ETX - End of Text D) Se o destino perder o controle dos limites dos quadros é só procurar pelos caracteres DLESTX e DLEETX para ressincronizar. UNIP Transmissão de Dados – Camada de Enlace de Dados 2.2. Método dos caracteres de início e fim, com preenchimento de caracteres Exemplo Bits a transmitir: A, B Transmissor Receptor XTEELDBAXTSELD Marca de término UNIP Marca de início Transmissão de Dados – Camada de Enlace de Dados 2.2. Método dos caracteres de início e fim, com preenchimento de caracteres Problema: Os caracteres DLESTX e DLEETX podem repetir-se na forma de dados, confundindo o controle de quadros. Solução: A camada de Enlace de Dados do transmissor insere um caracter DLE antes de cada DLE “acidental” nos dados, e a camada de Enlace de Dados do receptor retira-o. UNIP Transmissão de Dados – Camada de Enlace de Dados 2.2. Método dos caracteres de início e fim, com preenchimento de caracteres Exemplo Bits a transmitir: A, D, L, E, S, T, X, B Transmissor Receptor XTEELDBXTSELDELDAXTSELD Marca de término UNIP DLE Marca de inserido início Transmissão de Dados – Camada de Enlace de Dados 2.2. Método dos caracteres de início e fim, com preenchimento de caracteres Restrição: Este método está fortemente ligado ao conjunto de caracteres adotado (ASCII no exemplo). Ele não é universal, não funciona com outros conjuntos de caracteres. UNIP Transmissão de Dados – Camada de Enlace de Dados 2.3. Método dos caracteres de início e fim, com preenchimento de bits A) Permite que os quadros tenham um número aleatório de bits. B) Não depende do conjunto de caracteres em utilização. C) Cada quadro começa e termina com um padrão especial de bits: 01111110 6 uns UNIP Transmissão de Dados – Camada de Enlace de Dados 2.3. Método dos caracteres de início e fim, com preenchimento de bits D) Sempre que a camada de Enlace de Dados do transmissor encontra 5 uns consecutivos nos dados, ela insere um bit 0 (zero) (bit de enchimento) imediatamente depois. E) Quando a camada de Enlace de Dados do receptor encontra um 0 (zero) após 5 uns consecutivos, ela descarta-o. UNIP Transmissão de Dados – Camada de Enlace de Dados 2.3. Método dos caracteres de início e fim, com preenchimento de bits Exemplo Bits a transmitir: 011011111111111111110010 16 uns Transmissor Receptor 01111110 UNIP Transmissão de Dados – Camada de Enlace de Dados 2.3. Método dos caracteres de início e fim, com preenchimento de bits Exemplo Bits a transmitir: 011011111111111111110010 16 uns Transmissor Receptor 01001011111011111011111011001111110 Bits de enchimento UNIP Transmissão de Dados – Camada de Enlace de Dados 2.3. Método dos caracteres de início e fim, com preenchimento de bits Exemplo Bits a transmitir: 011011111111111111110010 16 uns Transmissor Receptor 0111111001001011111011111011111011001111110 Bits de enchimento UNIP Transmissão de Dados – Camada de Enlace de Dados 3. Lidar com erros de transmissão UNIP Transmissão de Dados – Camada de Enlace de Dados 3. Lidar com erros de transmissão Como ter certeza de que todos os quadros enviados são recebidos corretamente? A única solução é o receptor informar ao transmissor o que ocorre com cada quadro. UNIP Transmissão de Dados – Camada de Enlace de Dados 3. Lidar com erros de transmissão Envia quadro 1 Envia quadro 2 Envia confirmação negativa do quadro 2 Retransmite o quadro 2 Envia confirmação positiva do quadro 2 Perda do quadro UNIP Transmissão de Dados – Camada de Enlace de Dados Receptor Transmissor Envia confirmação positiva do quadro 1 3. Lidar com erros de transmissão Time out do quadro 2 Retransmite o quadro 2 Envia confirmação positiva do quadro 2 Descarte do quadro 2 UNIP Transmissão de Dados – Camada de Enlace de Dados Receptor Transmissor Envia confirmação positiva do quadro 2 3. Lidar com erros de transmissão UNIP Transmissão de Dados – Camada de Enlace de Dados 3. Lidar com erros de transmissão Estratégias para lidar com erros • Incluir muita informação redundante em cada quadro enviado para possibilitar, ao receptor, perceber e corrigir o problema. • Incluir redundância suficiente para permitir ao receptor perceber que houve um erro e solicitar uma retransmissão ao transmissor. • A utilização de algoritmos de detecção / correção de erros gera menos carga (tráfego) na rede. UNIP Transmissão de Dados – Camada de Enlace de Dados 3. Lidar com erros de transmissão Conclusões • É necessária a utilização de cronômetros temporizadores (“timers”) no transmissor. • Cada quadro enviado dispara o cronômetro. • O tempo máximo de espera antes da retransmissão de um quadro é parametrizado. • A camada de Enlace de Dados no receptor deve descartar quadros duplicados, se houver. UNIP Transmissão de Dados – Camada de Enlace de Dados 4. Regular o fluxo de dados Situação: Um transmissor rápido, ou pouco carregado, enviando quadros para um receptor lento (ou sobrecarregado com outras recepções). Problema: O receptor pode perder quadros. Solução: Adotar um controle de fluxo para regular a velocidade de transmissão do transmissor. UNIP Transmissão de Dados – Camada de Enlace de Dados 4. Regular o fluxo de dados Envia quadro 1 Envia quadro 2 Envia confirmação positiva do quadro 2 Envia quadro de controle de fluxo Veloc. A Envia quadro 3 Envia confirmação positiva do quadro 3 UNIP Receptor Transmissor Envia confirmação positiva do quadro 1 Transmissão de Dados – Camada de Enlace de Dados Veloc. B Protocolos de Enlace de Dados Pressupostos simplificadores adotados • Que as camadas Física, de Enlace de Dados e de Rede são processos independentes. • Que o Host A deseja enviar dados para o Host B usando um serviço confiável baseado em conexões. • Que o Host A já tem todos os dados a serem transmitidos e não precisa esperar que eles sejam gerados. UNIP Transmissão de Dados – Camada de Enlace de Dados Protocolos de Enlace de Dados O autor (Tanenbaum) propõe três protocolos que tratam progressivamente os problemas dessa camada: • Protocolo simplex (modelo) • Protocolo simplex “stop-and-wait” • Protocolo simplex para um canal ruidoso UNIP Transmissão de Dados – Camada de Enlace de Dados Protocolos de Enlace de Dados Protocolo Simplex: • Os dados são transmitidos em apenas um sentido. • As camadas de Rede (do transmissor e do receptor) estão sempre prontas. • Não há danos aos quadros. • O receptor pode absorver todos os quadros enviados. UNIP Transmissão de Dados – Camada de Enlace de Dados Protocolos de Enlace de Dados Protocolo Simplex: • O tempo de processamento pode ser ignorado. • Há dois eventos: “Espera” e “Chegou quadro”. UNIP Transmissão de Dados – Camada de Enlace de Dados Protocolos de Enlace de Dados Protocolo Simplex “stop-and-wait”: • O receptor não pode absorver todos os quadros enviados. • Há dois eventos no transmissor: “Envia quadro” e “Espera”. • Há três eventos no receptor: “Recebe quadro”, “Processa quadro” e “Pede quadro”. UNIP Transmissão de Dados – Camada de Enlace de Dados Protocolos de Enlace de Dados Protocolo Simplex “stop-and-wait”: Envia autorização para o quadro 2 Envia quadro 2 Envia autorização para o quadro 3 Eventos: Eventos: • Envia quadro • Recebe quadro • Espera • Processa quadro • Pede quadro UNIP Transmissão de Dados – Camada de Enlace de Dados Receptor Transmissor Envia quadro 1 Protocolos de Enlace de Dados Protocolo Simplex para um canal ruidoso: • Há danos aos quadros. • Há dois eventos no transmissor: “Pára e espera” e “Quadro a enviar”. • Há três eventos no receptor: “Espera”, “Recebe quadro” e “Aguarda quadro”. UNIP Transmissão de Dados – Camada de Enlace de Dados Protocolos de Enlace de Dados Protocolo Simplex para um canal ruidoso: Envia quadro 1 Envia quadro 2 Envia confirmação negativa do quadro 2 Retransmite o quadro 2 Envia confirmação positiva do quadro 2 Perda do quadro UNIP Transmissão de Dados – Camada de Enlace de Dados Receptor Transmissor Envia confirmação positiva do quadro 1 Protocolos de Enlace de Dados Protocolo Simplex para um canal ruidoso: Time out do quadro 2 Retransmite o quadro 2 Envia confirmação positiva do quadro 2 Eventos: • Pára e espera • Quadro a enviar UNIP Descarte do quadro 2 Eventos: • Espera • Recebe quadro • Aguarda quadro Transmissão de Dados – Camada de Enlace de Dados Receptor Transmissor Envia confirmação positiva do quadro 2 Protocolos de Janelas Deslizantes Objetivo O protocolo de janela deslizante é um dos protocolos mais divulgados do nível de dados. O protocolo permite acompanhar quadros enviados e as respectivas confirmações. Os dados são transmitidos por um canal não confiável do nível físico ligando ponto a ponto. Com este protocolo, o nível de dados torna-se confiável para a rede. O protocolo de janela deslizante apresenta maior desempenho do que o protocolo simples de entrega. UNIP Transmissão de Dados – Camada de Enlace de Dados Protocolos de Janelas Deslizantes Características No protocolo simples, após enviar um quadro, o processo fica bloqueado à espera da confirmação da entrega: se a confirmação não chegar a tempo, o quadro é reenviado. No protocolo de janela deslizante, os processos de dados possuem uma memória tampão (``buffer'') de dimensão 2n. Cada processo mantém dois índices SentN e AckN que, respectivamente, determinam o numero do próximo quadro a enviar e o último quadro transmitido com sucesso. De início, SentN=1,AckN=0. Quando um quadro é enviado, o transmissor dispara um temporizador. O protocolo é executado de acordo com os lados do canal: UNIP Transmissão de Dados – Camada de Enlace de Dados Protocolos de Janelas Deslizantes No transmissor • Pedido de envio de novo quadro: se a distância entre SentN e AckN for menor que a dimensão da memória tampão, o transmissor lê o pedido e: Chama a primitiva do nível físico para enviar o quadro. Incrementa SentN. Se SentN=AckN, dispara o temporizador. • Recepção de confirmação de entrega: o número enviado não é cumulativo (i.e., reconhece um a um). Avança AckN. • Erro na recepção de um quadro: o transmissor volta a enviar o quadro errado, cujo numero é indicado pelo receptor. • Fim de temporização: Chama a primitiva do nível físico para envio de todos os quadros, desde o mais antigo não confirmado até o último enviado, Reinicia o temporizador. UNIP Transmissão de Dados – Camada de Enlace de Dados Protocolos de Janelas Deslizantes No receptor • Chegada de um quadro errado: envia pedido de reenvio do quadro. • Chegada de um quadro correto: Se o quadro recebido for diferente do AckN (por exemplo, porque um se perdeu ou porque houve atrasos), pára e espera. Se o quadro recebido completar uma seqüência de entregas com sucesso desde AckN até número superior, entrega todos os dados, envia confirmação da seqüência e incrementa AckN para valor recebido. UNIP Transmissão de Dados – Camada de Enlace de Dados Protocolos de Janelas Deslizantes Características • A transmissão dos dados ocorre no modo “Full Duplex”. • Os quadros de dados e de confirmações trafegam nos dois sentidos. • A identificação se o quadro é de dados ou de confirmação fica no cabeçalho do quadro. • Para se aumentar a performance da rede é possível retardar o envio da confirmação para acoplar um quadro de confirmação a outro de dados: UNIP Transmissão de Dados – Camada de Enlace de Dados Protocolos de Janelas Deslizantes Características Quadro A1 UNIP Quadro A2 + Confirmação B1 Confirmação A2 + Quadro B2 Transmissão de Dados – Camada de Enlace de Dados Host B Host A Confirmação A1 + Quadro B1 Protocolos de Janelas Deslizantes Quadro de confirmação acoplado ao de dados Cabeçalho Confirmação Dados Fim (“trailer”) Problema: Se o tempo de retardo > tempo do temporizador do transmissor, o quadro será retransmitido aumentando, desnecessariamente, o tráfego na rede. Solução: Se tempo de retardo <= X mseg, há o acoplamento. Se tempo de retardo > X mseg, não há o acoplamento e é enviado um quadro de confirmação independente do quadro de dados. UNIP Transmissão de Dados – Camada de Enlace de Dados Protocolos de Janelas Deslizantes Características • Cada quadro transmitido tem um número de seqüência. • O transmissor tem uma lista dos quadros a enviar. • O receptor tem uma lista dos quadros que pode receber. • O transmissor mantém uma janela de transmissão e o receptor uma janela de recepção (não precisam ter o mesmo tamanho). UNIP Transmissão de Dados – Camada de Enlace de Dados Protocolos de Janelas Deslizantes Características • A janela de transmissão contém quadros enviados mas não confirmados. • A janela de recepção contém quadros já recebidos e em processamento. • Procedimento: UNIP Transmissão de Dados – Camada de Enlace de Dados Protocolos de Janelas Deslizantes Características • Procedimento: Transmitir um número finito de quadros antes de parar e esperar pela confirmação. O transmissor possui uma janela de tamanho variável contendo todos os quadros que pode transmitir. Cada quadro recebe uma numeração seqüencial. UNIP Transmissão de Dados – Camada de Enlace de Dados Protocolos de Janelas Deslizantes Transmissor Receptor Uma janela deslizante de tamanho 1, com um número de seqüência de 3 bits. (a) Inicialmente. (b) Depois que o primeiro quadro é enviado. (c) Depois que o primeiro quadro é recebido. (d) Depois que a primeira confirmação é recebida. UNIP Transmissão de Dados – Camada de Enlace de Dados A camada de Enlace de Dados na Internet A comunicação ponto a ponto é utilizada, principalmente, em duas situações: • Nas sub-redes de comunicação, compostas por roteadores e linhas privadas, de muitas organizações. • Na comunicação usuário x provedor de acesso. UNIP Transmissão de Dados – Camada de Enlace de Dados A camada de Enlace de Dados na Internet As funções da camada de Enlace de Dados para conexões ponto a ponto na Internet exigem protocolos específicos como, por exemplo: SLIP – Serial Line IP Trata da conexão de PCs à Internet. PPP – Point to Point Protocol É uma evolução do SLIP e tornou-se o padrão da Internet. UNIP Transmissão de Dados – Camada de Enlace de Dados A camada de Enlace de Dados na Internet PPP – Point to Point Protocol O PPP possui três recursos: • Um método de enquadramento • Um protocolo para ativar linhas, testá-las, transmitir e desativá-las. • Um protocolo de comunicação com a Camada de Rede: NCP (Network Control Protocol). UNIP Transmissão de Dados – Camada de Enlace de Dados A camada de Enlace de Dados na Internet Um computador pessoal doméstico que atua como um host da Internet (protocolo PPP): UNIP Transmissão de Dados – Camada de Enlace de Dados A camada de Enlace de Dados na Internet Formato do quadro PPP UNIP Transmissão de Dados – Camada de Enlace de Dados A camada de Enlace de Dados na Internet Diagrama simplificado de fases para ativar e desativar uma linha: NCP – Network Control Protocol UNIP Transmissão de Dados – Camada de Enlace de Dados Transmissão de Dados Modelo de Referência TCP/IP Camada de Enlace de Dados UNIP Transmissão de Dados – Camada de Enlace de Dados