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
Download

Envia quadro