Comunicacao de Dados 3.3 e 3.4
Download
Report
Transcript Comunicacao de Dados 3.3 e 3.4
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.