Redes de Computadores
2011
Revisão
A Camada de Enlace de Dados
Parte 4
Redes de Computadores A Camada de Enlace de Dados
Camada de Aplicação Camada de Transporte
Camada de Rede
Camada de Enlace de Dados Camada de Física
Modelo de Referência TCP/IP
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.
1. Serviços oferecidos à camada de Rede
• Serviço sem conexão e sem confirmação.
• Serviço sem conexão com confirmação.
• Serviço orientado a conexões com confirmação
1. Serviços oferecidos à camada de Rede Serviço sem conexão e sem confirmação
• Consiste em fazer o transmissor enviar quadros independentes ao receptor, sem que o receptor confirme o recebimento dos quadros.
• Nenhuma conexão lógica é estabelecida antes ou liberada depois do processo.
• Se um quadro for perdido, não haverá nenhuma tentativa de detectar a perda ou de recuperá-la.
1. Serviços oferecidos à camada de Rede Serviço sem conexão e sem confirmação
• Este serviço é apropriado para o tráfego em tempo real, no qual os dados recebidos com atraso causam mais problemas que dados recebidos com falhas.
• Exemplo: áudio e vídeo.
1. Serviços oferecidos à camada de Rede Serviço sem conexão com confirmação
• Também neste caso, nenhuma conexão lógica é estabelecida antes ou liberada depois do processo.
• Cada quadro enviado é, individualmente, confirmado pelo receptor. Dessa forma o transmissor sabe se um quadro chegou corretamente no receptor, ou não.
1. Serviços oferecidos à camada de Rede Serviço sem conexão com confirmação
• Caso o quadro não tenha chegado dentro de um determinado intervalo de tempo, este quadro é retransmitido.
• Esse serviço é útil em meios não confiáveis, como os sistemas sem fio.
1. Serviços oferecidos à camada de Rede Serviço orientado a conexões
• As máquinas de origem e de destino estabelecem uma conexão antes dos dados serem transferidos.
• Cada quadro enviado é numerado, e a camada de Enlace de Dados garante que cada quadro será recebido e na ordem numérica correta.
1. Serviços oferecidos à camada de Rede Serviço orientado a conexões
As transferências de dados passam por três fases distintas:
1ª - A conexão é estabelecida.
2ª - Os quadros são transmitidos.
3ª - A conexão é desfeita.
1. Serviços oferecidos à camada de Rede Serviço orientado a conexões
As transferências de dados passam por três fases distintas:
2ª - Os quadros são transmitidos.
3ª - A conexão é desfeita, liberando as variáveis, os buffers e demais recursos alocados para a conexão.
2. Enquadramento
O que a camada Física faz é aceitar um fluxo de bits e tentar entregá-lo no destino. Não há uma garantia de que esse fluxo esteja livre de erros.
A camada de Enlace de Dados é responsável por detectar e, se necessário, corrigir erros de transmissão.
2. Enquadramento
2.1. Método da contagem de caracteres.
2.2. Método dos bytes de flags, com inserção de bytes.
2.3. Método dos bytes iniciais e finais, com inserção de bits. Vide exemplo a seguir.
A) Permite que os quadros tenham um número aleatório de bits.
B) Não depende do conjunto de caracteres utilizado.
C) Cada quadro começa e termina com um padrão especial de bits:
01111110
2.3. Método dos bytes iniciais e finais, com inserção de bits
6 uns
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.
2.3. Método dos bytes iniciais e finais, com inserção de bits
Exemplo
Bits a transmitir: 011011111111111111110010 16 uns
Transmissor Receptor
01111110
2.3. Método dos bytes iniciais e finais, com inserção de bits
Exemplo
Bits a transmitir: 011011111111111111110010 16 uns
Transmissor Receptor
01001011111011111011111011001111110
Bits de enchimento
2.3. Método dos bytes iniciais e finais, com inserção de bits
Exemplo
Bits a transmitir: 011011111111111111110010 16 uns
Transmissor Receptor
0111111001001011111011111011111011001111110
Bits de enchimento
2.3. Método dos bytes iniciais e finais, com inserção de bits
3. Controle de erros
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.
3. Controle de erros
Transmissor Receptor
Envia quadro 1
Envia confirmação positiva do 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
3. Controle de erros
Transmissor Receptor
Envia confirmação positiva do quadro 2
Retransmite o quadro 2
Time out do quadro 2
Envia confirmação positiva do quadro 2
Descarte do quadro 2
Conclusões
3. Controle de erros
• É 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.
Situação:
Um transmissor rápido, ou pouco carregado, enviando quadros para um receptor lento (ou sobrecarregado com outras recepções).
4. Controle de fluxo
Problema:
O receptor pode perder quadros.
Solução:
Adotar um controle de fluxo para regular a velocidade de transmissão do transmissor.
Exemplo de dois métodos:
• Controle de fluxo baseado em feedback
• Controle de fluxo baseado na velocidade 4. Controle de fluxo
Controle de fluxo baseado em feedback 4. Controle de fluxo
O receptor envia de volta ao transmissor informações que permitem ao transmissor enviar mais dados ou que, pelo menos, mostram ao transmissor qual a situação real do receptor.
4. Controle de fluxo
Transmissor Receptor
Envia quadro 1
Envia confirmação positiva do quadro 1 Envia quadro 2
Envia confirmação positiva do quadro 2 Envia quadro de controle de fluxo
Envia quadro 3
Veloc. A
Veloc. B Envia confirmação positiva do quadro 3
Controle de fluxo baseado na velocidade 4. Controle de fluxo
O protocolo tem um mecanismo interno que limita a velocidade com que os transmissores podem enviar os dados, sem usar o feedback do receptor.
Tempo Velocidade
0 Vmáx
Protocolos de Janela Deslizante
Nos protocolos anteriores os quadros de dados são transmitidos em apenas um sentido por vez.
Pode-se obter uma transmissão full-duplex definindo dois canais de comunicação distintos, e usar cada um deles para um tráfego de dados simplex.
Com isto haverá dois circuitos físicos separados, cada um deles com um “canal direto”: um para dados e outro para confirmações.
Objetivo
Protocolos de Janela Deslizante
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.
Objetivo
Protocolos de Janela Deslizante
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:
Características
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.
• 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.
Protocolos de Janela Deslizante
Protocolos de Janela Deslizante
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.
Protocolos de Janela Deslizante
• A transmissão dos dados ocorre no modo “Full Duplex”.
• Os quadros de dados e de confirmação 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:
Características
Protocolos de Janela Deslizante Características
Host A Host BQuadro A2 + Confirmação B1 Confirmação A2 + Quadro B2
Quadro A1
Confirmação A1 + Quadro B1
Protocolos de Janela Deslizante
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.
Protocolos de Janela Deslizante
• 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).
Características
Protocolos de Janela Deslizante
• 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:
Características
Protocolos de Janela Deslizante
• 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.
Características
Protocolos de Janela Deslizante
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.
Transmissor
Receptor
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.
A camada de Enlace de Dados na Internet
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).
PPP – Point to Point Protocol
A camada de Enlace de Dados na Internet
Diagrama simplificado de fases para ativar e desativar uma linha:
NCP – Network Control Protocol
Redes de Computadores
2011