Baixe o app para aproveitar ainda mais
Prévia do material em texto
12/04/2018 1 PROTOCOLOS DE REDES AULA 05 Danilo C. Pereira Camada de Transporte Objetivos • Detalhar o mecanismo de transferência confiável de dados do protocolo TCP • Discorrer sobre os protocolos Go-Back-N e Repetição Seletiva TRANSFERÊNCIA CONFIÁVEL DE DADOS Revisão e Continuação Transferência Confiável de Dados Transferência confiável de dados por um canal com erros de bits – Reconhecimentos Positivos (“OK”) – Reconhecimentos Negativos (“Enviar Novamente”) 12/04/2018 2 Transferência Confiável de Dados • Esse tipo de esquema é definido de: – Protocolos ARQ (Automatic Repeat reQuest — solicitação automática de repetição) Transferência Confiável de Dados • Mecanismos que deve adotar: 1. Detecção de erros o Como? 2. Realimentação do destinatário o ACK e NAK 3. Retransmissão Transferência Confiável de Dados Transferência confiável de dados por um canal com erros de bits – Lado Remetente Transferência Confiável de Dados Transferência confiável de dados por um canal com erros de bits – Lado Destinatário Transferência Confiável de Dados • E se os pacotes ACK e/ou NAK forem corrompidos no meio do caminho? ACK NAK Transferência Confiável de Dados • A solução adotada pelo TCP para esse problema é bem simples. – Número de Sequência 12/04/2018 3 Transferência Confiável de Dados • Transferência confiável de dados por um canal com perda e com erros de bits – O que fazer quando há perdas de pacotes? Transferência Confiável de Dados Transferência Confiável de Dados • Se faz necessário adotar – Retransmissão de pacotes – Temporizador de contagem regressiva Transferência Confiável de Dados • Iniciar o temporizador todas as vezes que um pacote for enviado – quer seja a primeira vez, quer seja uma retransmissão • Responder a uma interrupção feita pelo temporizador – realizando as ações necessárias • Parar o temporizador Transferência Confiável de Dados Transferência Confiável de Dados • Há um problema nesse modelo anterior: – Tipo pare-e-espere • Problemas de desempenho • Muito tempo ocioso sem transmitir dados 12/04/2018 4 Transferência Confiável de Dados Transferência Confiável de Dados Transferência Confiável de Dados Transferência Confiável de Dados • Implicações da operação com paralelismo: 1. Faixa de número de sequência ampliada • 0, 1, 2, ..., N 2. Uso de Buffers no lado remetente e destinatário 3. 1 e 2 dependem do protocolo de transferência utilizado, como • Go-Back-N • Repetição Seletiva GO-BACK-N Go-Back-N • Características de um protocolo de transmissão Go-Back-N – O remetente é autorizado a enviar múltiplos pacotes • Isso se existirem – Não precisa esperar ACK – Limitado a número máximo de pacotes • Conhecido por tubulação 12/04/2018 5 Go-Back-N Visão do remetente para os números de sequência no protocolo Go-Back-N Go-Back-N base Número de sequência do pacote não reconhecido mais antigo nextseqnum Menor número de sequência não utilizado Go-Back-N • Pacotes já enviados – [0, base-1] • Pacotes enviados e não reconhecidos – [base,nextseqnum-1] • Pacotes que podem ser enviados imediatamente após novos ACK – [nextseqnum,base+N-1] Go-Back-N • Números de sequência que não podem ser usados ainda – >= base+N • N é denominado de tamanho de janela • E o GBN é um protocolo de janela deslizante Go-Back-N • Lado Remetente deve responder a três tipos de eventos: 1. Chamada vinda de cima • Para enviar pacotes e verificando se a janela está cheia 2. Recebimento de um ACK 3. Um evento de esgotamento de temporização (timeout) Go-Back-N • Lado Destinatário: – Pacote com número de sequência N recebido corretamente e na ordem envia um ACK para N – Caso contrário, descarta o pacote e envia ACK com o número do último pacote recebido corretamente 12/04/2018 6 Go-Back-N REPETIÇÃO SELETIVA Repetição Seletiva • GBN permite “encher” a rede com pacotes • GBN pode sofrer com problemas de desempenho – Se janela e atraso são grandes – Grandes número de pacotes são reenviados • A rede pode ficar lotada Repetição Seletiva • Protocolos de repetição seletiva (Selective Repeated – SR) evitam retransmissões desnecessárias – Apenas pacotes suspeitos de conter erros • Corrompidos e perdidos Repetição Seletiva • Também utiliza uma janela de tamanho N • A diferença é que o remetente já possui ACK’s de alguns pacotes na janela 12/04/2018 7 Repetição Seletiva Repetição Seletiva • Eventos e ações do SR Remetente 1. Dados recebidos de cima • Se requisição está na janela, dados são empacotados e enviados • Contrário, são armazenados ou devolvidos 2. Esgotamento de temporização • Um temporizador por pacote 3. ACK recebido • A janela se desloca para frente até o menor número de sequência cujo ACK não foi recebido Repetição Seletiva • Eventos e ações do SR Destinatário 1. Pacote com número de sequência no intervalo [rcv_base, rcv_base+N–1] foi recebido corretamente • Pacote dentro da janela do destinatário e ACK seletivo devolvido • Se não recebido, vai para buffer • Se ACK == base, então ele e demais no buffer tem ACK devolvido – Janela desloca para frente Repetição Seletiva • Eventos e ações do SR Destinatário 2. Pacote com número de sequência no intervalo [rcv_base-N, rcv_base-1] foi corretamente recebido • ACK é gerado mesmo se pacote já reconhecido 3. Qualquer outro, ignora o pacote Repetição Seletiva Link Externo – Simulação do TCP • http://www.ccs- labs.org/teaching/rn/animations/gbn_sr/
Compartilhar