Você está na página 1de 38

Implementação de Redes de

Computadores

Unidade 2
2.4-Conceitos Sobre Protocolos de Enlace

Prof. Daniel
Objetivos
● Conhecer os princípios dos protocolos de
enlace
● Descrever protocolos ponto a ponto
● Descrever protocolos de acesso aleatório
Revisão
● Tipos de serviço
– Não orientado à conexão sem confirmação
– Não orientado à conexão com confirmação
– Orientado à conexão com confirmação
Revisão
● Enquadramento
– Contagem de caracteres
– Bytes de Flag com inserção de bytes
– Flags iniciais e finais com Inserção de bits
– Violação de codificação da camada física
Tipos de Enlace
● Ponto a ponto
– Único remetente em uma extremidade e um único
receptor na outra
– Exemplos: ppp, HDLC
● Difusão
– Vários remetentes e receptores
● Todos conectador ao mesmo canal de transmissão único
e compartilhado
● Exemplos: Ethernet, Wireless
Detecção e Correção de Erros
● Nem todos os erros são detectados
● Para correção é necessário inserir informações
redundantes suficientes
● Normalmente faz-se somente detecção:
– Paridade
● Simples, detecta poucos erros
– Checksum
● Soma de verificação, utilizado na camada de transporte e rede
– CRC
● Complexo, executado em hardware pela camada de enlace
Protocolos Elementares
● Um protocolo Simplex sem restrições
– Dados são transmitidos apenas em um sentido
– O canal nunca é danificado nem perde quadros
● Procolo Utopia
– Dois procedimentos:
● Envia
● recebe
Utopia
● Transmissor executa 3 ações:
– Buscar um pacote da camada de rede
– Criar um quadro
– Transmitir o quadro ao destino
Simplex Stop-and-Wait
● Um protocolo Simplex Stop-and-Wait
– Canal ainda livre de erros
– A camada de rede do receptor não pode processar
os dados de forma infinitamente rápida
● A camada de rede do receptor retira um pacote do buffer,
verifica o endereço, verifica se houve erro em seguida
passa à camada de transporte
● Um receptor com processamento lento pode ter seu buffer
preenchido antes de poder processar todos os pacotes
Precisamos impedir que o transmissor inunde o receptor com dados
mais rapidamente do que ele é capaz de processá-los
Stop-and-Wait
● Fornecer feedback ao emissor
– Após receber um pacote, o receptor envia um
pacote de confirmação, para que o emissor possa
enviar um novo quadro
● Transmissor
– Envia e espera por uma confirmação:
● Stop and wait (“para e aguarda”)
Simplex Stop-and-Wait com ruído
● Canal de comunicação onde ocorrem erros
– Quadros podem ser danificados ou completamente
perdidos
– Considera-se que um quadro danificado é
detectado pelo receptor através da verificação de
erros (checksum ou CRC)
Simplex Stop-and-Wait com ruído
● Variação do protocolo anterior:
– Inclusão de um Timer
● Se um quadro danificado chegar ao receptor e for descartado,
basta por um timer no emissor e ele reenviaria o quadro ao
não receber uma confirmação após zerar o timer
– Esse esquema tem uma falha fatal, qual seria?
– Se um pacote de confirmação se perder?
Simplex Stop-and-Wait com ruído
● Como resolver?
– Colocar um número de Sequência
– Qual deve ser o tamanho do número de sequência?
● 1 bit?
● 1 byte?
● Múltiplos bytes?

Apenas 1 bit é necessário!


● Até agora os dados eram enviados apenas em um
sentido
● Na prática, dados são enviados de ambos os lados
● Você poderia utilizar um canal para envio de dados
e outro para envio de confirmações
– A capacidade do canal 'reverso' seria perdida
● Utilizar o mesmo circuito para dados em ambos os
sentidos
Canal de A para B

Dados confirmação Dados confirmação Dados

A Canal de B para A B
Dados confirmação Dados confirmação Dados
● É possível melhorar ainda mais:
– Envio dados junto com as confirmações, em um
único quadro
Canal de A para B

Dados + Dados + Dados + Dados + Dados +


confirmação confirmação confirmação confirmação confirmação

Piggybacking (pegar carona)


● Problema do piggybacking
– Se a camada de enlace esperar muito até que um
novo pacote chegue da camada de rede, o receptor
pode achar que o quadro foi perdido e retransmiti-lo
– A camada de enlace aguarda alguns milisegundos,
se nenhum pacote novo chegar, ela envia somente
a confirmação.
Protocolos de Janela Deslizante
Protocolos de Janela Deslizante
● O emissor mantém um controle dos números
de sequência de quadros que ele pode enviar
– 2n – 1
– Caiba em um campo de n bits
– Stop and wait → n=1
Protocolos de Janela Deslizante
● Os números de sequência na janela do transmissor
representam os quadros que foram ou podem ser enviados,
mas não confirmados
● Os dados ainda precisam ser repassados à camada de rede
em ordem!
● Se a janela do emissor estiver cheia, nenhum novo quadro
pode ser transmitido enquanto não houver uma vaga na
janela
● Quando o receptor recebe um quadro com número de
sequência igual ao limite inferior, ele é repassado à camada
de rede, uma confirmação é gerada e a janela é incrementada
Janela Deslizante de 1 bit
Go Back N
● Quando o tempo de transmissão até que o
quadro chegue no receptor mais o tempo até o
retorno da confirmação são muito grandes, a
camada de enlace ficará muito tempo ociosa
aguardando a confirmação
– Enlaces de satélite, por exemplo
Go Back N
● O problema é consequência da regra que exige que só
seja enviado um novo quadro, após a chegada de uma
confirmação
● Se o transmissor puder enviar w quadros, antes de ser
bloqueado, podemos obter uma eficiência melhor
● Com um w apropriado, o transmissor será capaz de
enviar dados continuamente, pois quando estiver
próximo de atingir w, as confirmações começaram a
chegar, impedindo que a janela se encha
● Pipelining
Go Back N
● O que acontece se um quadro x, no meio dos
w quadros, chegar defeituoso, mas vários
quadros após x, chegarem corretamente?
● Go Back N descarta os quadros acima de x e
aguarda que o transmissor atinga o timeout de
x. O transmissor reenvia todos os quadros à
partir de x
Retransmissão Seletiva
● Ao receber um quadro X com erro, o receptor
guarda em buffer os quadros subsequentes
que chegaram corretamente e envia uma
confirmação negativa que continua aguardando
o quadro X.
● O transmissor reenvia somente o quadro X e
em seguida continua a enviar os quadros
subsequentes
Retransmissão Seletiva
● Requer grande capacidade de memória na
camada de enlace
– Se não for possível, pode-se utilizar Go-Back-N
● Retransmissão seletiva pode causar problemas
com números de sequência, por isto se utiliza
um tamanho de janela de (MAX_SEQ+1)/2
– MAX_SEQ é 2n - 1
Exemplos de Protocolos de Enlace
de Dados
● Em um mesmo prédio, LANs são bastante
utilizadas, mas a maior parte da infraestrutura
de rede a longa distância é montada a partir de
linhas ponto a ponto
– Enlaces de Fibra Ótica SONET
● Muito utilizados para conectar roteadores nos diferentes
locais da rede de um ISP
● O protocolo PPP (Point-to-Point Protocol) é usado para
enviar pacotes por esses enlaces
SONET
● Protocolo de camada física mais utilizado pelos
enlaces de Fibra Ótica que compõem o backbone das
redes de comunicação - incluindo o sistema
telefônico.
● SONET envia fluxos de bits a cada 125μs havendo ou
não carga útil para transmitir
● Para transportar pacotes por esses enlaces é preciso
que haja um mecanismo de enquadramento para
distinguir os dados dos fluxos contínuos no qual são
transportados
PPP
● PPP é uma melhoria de um protocolo antigo e
mais simples: SLIP (Serial Line Internet
Protocol).
● PPP dispõe de 3 recursos principais
– Método de enquadramento que delineia de forma
não ambígua o fim de um quadro e o início do
seguinte. O formato do quadro também lida com a
detecção de erros.
PPP
– Um protocolo de controle de enlace usado para ativar
linhas, testá-las, negociar opções e desativá-las
novamente de forma controlada quando não forem
mais necessárias:
● Protocolo de controle de enlace (LCP – Link Control Protocol)
– Um modo de negociar as opções da camada de rede
de modo independente do protocolo da camada
utilizado.
● O método escolhido deve ter um protocolo de controle de
rede (NCP – network control protocol), diferente para cada
camada de rede aceita
PPP
● O formato do quadro PPP foi definido de modo a ter uma
aparencia semelhante ao formato de quadro HDLC
(High-level Data Link Control)
– Instância bastante utilizada de uma família de protocolos mais
antiga
– PPP é orientado a caracteres e não a bits
● PPP utiliza a técnica de inserção de bytes
– Todos os quadros representam um número inteiro de bytes
● HDLC utiliza inserção de bits
– HDLC oferece transmissão confiável com janela deslizante
– PPP pode oferecer, mas raramente é utilizado → não orientado à conexão e sem
confirmação
PPP
Formato do quadro

Byte de flag: 0x7E


Escape: 0x7D
O byte após o escape é alterado com um XOR entre escape e 0x20
PPP
● Endereço sempre é 11111111
● Controle por padrão é 00000011
– LCP pode configurar para não utilizar esses bytes
● Protocolo pode utilizar somente 1 byte
– Negociado pelo LCP
● Checksum é um CRC de 32 bits
– Um CRC de 16 bits também pode ser negociado
PPP
● Antes que um os quadros PPP possam ser
transportados por linhas SONET, o enlace PPP
precisa ser estabelecido e configurado
● Tanenbaum
– 3.3 – Protocolos básicos de enlace de dados
– 3.4 - Protocolos de Janela Deslizante
– 3.5 – Exemplos de Protocolos de Enlace de Dados

Você também pode gostar