Protocolos da Camada de
Enlace de Dados
Aluna : Michelle Foltran Miranda
3.3 Protocolos Elementares de Enlace de Dados

Máquina A -> B:





Suposição:
 Camada de dados de A solicita dados, a de rede obedece
imediatamente;
Pacote com dados enviado: Camada de rede -> Camada de Enlace;
Camada de Enlace de dados: Encapsulamento (pacote+cabeçalho+trailer).
Frame é transmitido para outra camada de enlace de dados.
Procedimentos:


to_physical_layer e from_physical layer: enviar e receber um frame;
wait_for_event(&envent): indicar a espera de eventos;
3.3 Protocolos Elementares de Enlace de Dados

Chegada de um frame: checksum.



Soma incorreta: event = checksum_err;
Soma correta:
 event = frame_arrival;
 Pacote: passado da Camada de Enlace para a de Rede.
Frame: composto por 4 campos:


kind, seq, ack: informações de controle (cabeçalho do frame)
info: dados a serem transferidos.
3.3 Protocolos Elementares de Enlace de Dados
Protocol.h: Definições usadas nos protocolos a seguir
3.3.1 Um Protocolo Simplex sem Restrições



Tráfego unidirecional;
Canal de comunicação nunca perde frames;
Protocolo “Utopia”:



2 procedimentos principais:
 A envia dados (transmissor);
 B recebe dados (receptor);
Não há: seq ou ack;
Evento possível: frame_arrival;
3.3.1 Um Protocolo Simplex sem Restrições
3.3.2 Um Protocolo Stop-and-Wait Simplex



Tráfego simplex;
Canal não apresenta erros;
Receptor:


Principal problema:



Não há buffer infinito para armazenar frames;
Impedir transmissor de sobrecarregar receptor;
Solução: receptor envia feedback ao transmissor.
Transmissor:


Envia frame;
Aguarda confirmação;
3.3.2 Um Protocolo Stop-and-Wait Simplex
3.3.3 Um Protocolo Simplex para Canal com Ruído




Frames: danificados ou perdidos;
Checksum: detecta erro;
Problema de Dados Duplicados;
Receptor distingue frame já enviado:



Transmissor: insere número de seqüência;
Frame com seqüência errada é rejeitado (cópia).
Protocolos ARQ: Transmissor espera confirmação positiva antes
de passar para próximo item de informação.
3.3.3 Um Protocolo Simplex para Canal com Ruído
3.4 Protocolos de Janela Deslizante


Tráfego Full Duplex;
Frames de dados e confirmações são misturados:


Campo kind para identificação.
Piggybacking: retardar a confirmação (ack) e enviá-la com
próximo frame de dados.


Vantagem: melhor utilização da largura de banda.
Desvantagem: tempo de espera da camada de enlace (ms).
3.4 Protocolos de Janela Deslizante

3 Protocolos de Janela Deslizante:


Transmissor:




Divergem na eficiência, complexidade e requisitos de buffer.
Janela de transmissão com frames a serem enviados;
Números de seqüência: frames enviados, mas não confirmados;
Armazenar frames não-confirmados: n buffers (tamanho n da janela).
Receptor:


Janela de recepção com frames apto a receber;
Frames que caírem fora da janela são descartados.
3.4 Protocolos de Janela Deslizante
3.4.1 Um Protocolo de Janela Deslizante de 1 bit


Tamanho máximo de janela = 1;
Stop-and-wait:



Transmissor envia frame;
Aguarda confirmação;
Máquina A ->B:


Máquina A:
 Pacote da camada de rede,
 Construir e enviar frame.
Máquina B:
 Camada de enlace de dados verifica se ele é uma cópia.
 Se for o esperado, passará para a camada de rede
 Janela do receptor: deslocada para cima.
3.4.1 Um Protocolo de Janela Deslizante de 1 bit
3.4.2 Um Protocolo que Utiliza Go-back-n


Ida e volta da informação: problemas na eficiência do uso
da largura de banda.
Solução pipelinning:


Transmissor:
 Enviar até w frames antes de haver bloqueio.
 Tamanho máximo da janela: w
 Frames não-confirmados: pendência.
Problema: erros na presença de pipelinning
3.4.2 Um Protocolo que Utiliza Go-back-n


Duas Estratégias contra erros:
Go-back-n:





Descarta frames subseqüentes;
Não envia confirmação de frames descartados;
Janela do receptor: tamanho 1;
Taxa de erro alta: muita largura de banda
Retransmissão seletiva:




Camada de enlace receptora: armazena frames corretos após defeituoso;
Transmissor: retransmite apenas frame defeituoso;
Janela receptor: maior que 1;
Janela muito grande: muita memória da camada de enlace.
3.4.2 Um Protocolo que Utiliza Go-back-n
3.4.2 Um Protocolo que Utiliza Go-back-n


Camada de rede: sem infinitos pacotes para envio.
Quando há pacote:


Evento: network_layer_ready.
Camada de enlace de dados:

enable_network_layer e disable_network_layer.
3.4.3 Um Protocolo que Utiliza Retransmissão Seletiva


Protocolo Go-back-n: para poucos erros.
Estratégia:



Receptor: frames após outro danificado são inseridos no buffer.
Tamanho da janela do transmissor: varia de 0 – MAX_SEQ;
Tamanho da janela do receptor: fixo MAX_SEQ.
3.4.3 Um Protocolo que Utiliza Retransmissão Seletiva

Procedimento:



Frame chega: número de seqüência é verificado para confirmar se
corresponde ao interior da janela.
Se ainda não tiver sido recebido, será aceito e armazenado.
Frame: mantido na camada de enlace e não deve ser
passado para a camada de rede até que todos os frames de
números anteriores tenham sido entregues na ordem
correta.
3.4.3 Um Protocolo que Utiliza Retransmissão Seletiva

Estratégia mais eficiente para tratamento de erros:



Receptor: envia frame de confirmação negativo NAK (pedido de
retransmissão).
2 casos para NAK:
 Chegada de um quadro danificado;
 Chegada de um quadro diferente do esperado;
Para evitar vários NAK’s de um mesmo frame:
 Receptor: controla NAK para o frame.
Download

Comunicacao de Dados 3.3 e 3.4