REDES E SISTEMAS
INTERNET
Camada de Enlace
Roteiro
•
Introdução
•
Enquadramento
•Controle de Erros
Protocolos simples de enlace
•
Protocolos:
• Protocolo simplex sem restrições.
• Protocolo simples stop-and-wait.
• Protocolo simplex para canal com ruído. • Protocolo de janela deslizante.
• Protocolo que utiliza go back n
• Protocolo com retransmissão seletiva
Protocolo simplex sem restrições
•
Transmissão de dados em um único sentido
•
Camada de redes sempre pronta para enviar dados
• O tempo de processamento ignorado
•
O buffer é infinito
• Não é preciso ter mecanismo de controle de fluxo
•
Não há perda de quadros
• Não é preciso ter mecanismo de controle de erros
Protocolo simplex sem restrições
•
Fluxo de informações transmissor
receptor:
Transmissor Enlace Receptor
Retardo
Protocolo simplex
stop-and-wait
•
Os buffers não são infinitos
é preciso controle de fluxo!
•
O tempo de processamento não é ignorado
•
O canal de comunicação não possui ruído
•Regra para controle de fluxo
• O transmissor não envia uma nova mensagem até que a anterior
Protocolo simplex
stop-and-wait
•
Fluxo de informações transmissor
receptor:
Transmissor Enlace Receptor
Protocolo simplex para canal com ruído
•
Os buffers não são infinitos
é preciso controle de fluxo
•
O tempo de processamento não é ignorado
•
O canal de comunicação possui ruído
Protocolo simplex para canal com ruído
•
Fluxo de informações transmissor
receptor:
Transmissor Enlace Receptor
Liga timer
Acaba o tempo Liga timer
Detecta o erro
quadro ignorado
Quadro OK
envia ACK
Liga timer
Protocolo simplex para canal com ruído
•
Fluxo de informações transmissor
receptor:
Transmissor Enlace Receptor
Liga timer
Acaba o tempo Liga timer
Detecta duplicata
Protocolo simplex para canal com ruído
•
Os quadros são numerados sequencialmente
•
O transmissor transmite um quadro
•
O receptor envia um quadro de reconhecimento se o
quadro for recebido corretamente
• Se houver erro o quadro é ignorado esperando-se que seja retransmitido
Protocolos para transmissão bidirecional
•
Nos exemplos anteriores o modelo era apenas simplex
• Em um dado momento apenas A envia para B ou B envia para A
• O que fazer se ambos desejarem enviar dados ao mesmo tempo?
•
Opções:
Protocolos de janela deslizante
•
Usam o conceito de piggybacking (superposição):
• Os quadros de confirmação viajam junto com quadros de dados (usando o campo ACK do cabeçalho de quadro)
• As confirmações pegam “carona” com o próximo quadro!
•
Protocolos de janela deslizante mantém um conjunto de
números de sequência dos quadros que ele pode enviar
• Dizemos que estes quadros pertencem à janela de transmissão• O receptor também mantém uma janela de recepção que equivale aos quadros que está apto a aceitar
• Os números de sequência da janela corresponde aos quadros ainda não confirmados:
• Quando um quadro chega da camada de rede é colocado no final da janela
Protocolos de janela deslizante
TX
RX
Inicialmente
Após enviar o 1º quadro
Após receber o 1º quadro
Protocolos de janela deslizante
•
Protocolos que usam janela de tamanho 1 são inviáveis
na prática, pois desperdiçam largura de banda
• Especialmente problemático em se tratando de longos tempos de
trânsito e quadros curtos
•
Exemplo
comunicação por satélite com largura de
banda de 50 kbps e retardo de ida e volta de 500 ms
• Se em t = 20 ms o transmissor envia um quadro de 1000 bits • Em t = 270 o receptor obtém o quadro e envia confirmação • A confirmação chega em t = 520 ms• O transmissor ficou bloqueado durante 500/520 = 0,96 ou 96% do tempo total apenas 4% da largura de banda foi usada!
Protocolos com
pipelining
•
Usa um tamanho de janela que é proporcional à largura
de banda, tempo de ida e volta e tamanho de quadro
• Se a capacidade do canal for de b bits/s e o tamanho do quadro é
de l bits e o tempo de ida e volta é de R segundos:
• O tempo necessário para transmissão de um quadro único é l/b s
• Depois que o quadro é enviado, haverá um retardo de R/2 para chegar
no receptor e mais R/2 para chegar a confirmação
• No protocolo stop-and-wait, a linha fica ocupada durante l/b s e ociosa
durante o tempo R, logo:
• Tamanho máximo da janela w = 2 x b x (R/2) + 1 • Utilização ≤ w / (1 = 2 x b x (R/2))
• O pipelining é usado para ocupar o longo tempo de retardo
Protocolos com
pipelining
•
Como ajustar o pipelining para funcionar em caso de
detecção de erro de um dos quadros da sequência?
• Lembre-se que a camada 2 do receptor deve enviar os quadros em
ordem e sem erros para a camada de rede do receptor!
• Soluções:
• Abordagem go-back-n
Pipelining:
tratamento de erros
•
Solução 1
abordagem
go back n
• O receptor detecta um erro e ignora os próximos quadros
• Quando o timeout no transmissor se esgota para o quadro 2, ele
envia tudo de novo
• Desperdiça largura de banda em taxas de erros altas!
Intervalo de timeout
Erro Quadros descartados pela camada de enlace
Pipelining:
tratamento de erros
•
Solução 2
retransmissão seletiva
• Os quadros que chegam após o quadro defeituoso são armazenados em buffer
• O receptor envia um NAK para melhorar o desempenho!
O protocolo HDLC
•
HDLC - High-level Data Link Control
• Proposto pela IBM e padronizado por várias entidade com nomes diferentes e pequenas modificações
• É um protocolo orientado a bits, utiliza a técnica de inserção de bits
já apresentada e uma variante do algoritmo CRC
• Formato do quadro:
01111110 Endereço Controle Dados Checksum 01111110 Bits 8 8 8 ≥ 0 16 8
Flags para
Delimitar os quadros
Identificação de terminais
Números de sequências
O protocolo PPP
•
PPP
–
Point-to-Point protocol
• Usado entre roteador-roteador e usuário doméstico-ISP
• O formato do quadro é semelhante do HDLC, mas possui algumas
diferenças:
• É orientado a caracteres
• O campo endereço possui o valor 11111111 (não faz endereçamento)
• Na maior parte das vezes o “Controle” fica com o valor fixo 00000011 (não usa números de sequência e confirmações)
• É multiprotocolo • Formato:
01111110 Endereço Controle Dados Checksum 01111110
Bytes 1 1 1 1 ou 2 Variável 2 ou 4 1
O protocolo PPP
•
PPP
–
Point-to-Point protocol
• É usado em diferentes redes físicas, como SONET (fibra óptica) e ADSL (cabos metálicos entre provedor e usuários domésticos).
• Aspectos importantes que permitem a versatilidade:
• Usa LCP (Link Control Protocol) para ativar/desativar linhas ponto a ponto.
• Usa NCP (Network Control Protocol) para negociar com a camada de rede.
• Exemplo com uso em redes SONET: