Redes de Computadores - CIC/UnB · 2015. 5. 19. · Redes de Computadores Protocolos ARQ –...

25
Redes de Computadores Protocolos ARQ – Continuação Profa. Priscila Solís Barreto

Transcript of Redes de Computadores - CIC/UnB · 2015. 5. 19. · Redes de Computadores Protocolos ARQ –...

  • Redes de Computadores

    Protocolos ARQ – Continuação

    Profa. Priscila Solís Barreto

  • Análise do STOP and Wait nf=1250 bytes = 10000 bits, na=no=25 bytes = 200 bits

    O STOP and WAIT não funciona bem para altas velocidades ou tempos longos de propagação

  • Análise da eficiência em um canal com erros •  Seja 1-Pf a probabilidade de que um quadro

    chegue sem erros •  Número médio de transmissões para o primeiro

    envio de quadro com sucesso é 1/(1-Pf) •  Tempo médio de transmissão por quadro é t0/(1-

    Pf)

  • Exemplo: Impacto da taxa de erro de bits •  nf=1250 bytes = 10000 bits, na=no=25 bytes = 200 bits

    Encontrar a eficiência para erros aleatórios de bits com p=0, 10-6, 10-5, 10-4

    •  1-Pf =(1- p)nf ≈e-nf p para um nf grande e um p pequeno

  • Análise •  No modelo geral, dada a capacidade do canal b bits/s, o

    tamanho do quadro de L bits, e o tempo de propagação round-trip em R segs. Qual é o tempo necessário para transmitir um único quadro? Qual é a utilização da linha ?

    •  A combinação de um tempo longo de transito (RTT alto), ampla largura de banda e tamanho pequeno do quadro, provoca baixa eficiência no protocolo.

    •  Piggybacking: carona gratis para o ACK? Pipelining: enviar mais quadros antes dos ACKs?

  • Piggybacking •  Sendo que em uma transmissão full duplex, os

    quadros de dados e os quadros de ACK se intercalam, poderia se enviar um ACK enquanto se entregam dados? – Como o receptor saberia que o quadro é de dados ou

    ACK? – Para o piggybacking, por quanto tempo a camada de

    enlace deveria esperar um quadro para enviar nele o ACK ?

  • Exemplo

    Dois cenários. A notação é (seq, ack, número de pacote). Um asterisco indica quando a camada de rede aceita o pacote. Existe algum problema?

  • Go Back n ARQ Melhora o Stop and Wait ao eliminar a espera •  Mantém o canal ocupado enviando quadros de forma

    continua •  Permite uma janela de tamanho Ws de quadros

    excedentes •  A janela do receptor é de tamanho 1 •  Usa uma sequencia de numeração m-bit •  Se um ACK para um quadro antigo chega antes de

    tamanho da janela ser alcançado, pode-se continuar transmitindo

    •  Se a janela é esaurida, se volta e se retransmitem os quadros excedentes

    •  Alternativa: uso de timeout

  • GO BACK n ARQ

    A

    B

    fr 0

    tempo fr 1

    fr 2

    fr 3

    fr 4

    fr 5

    fr 6

    fr 3

    ACK1 erro

    Quadros fora de sequencia

    Go-Back-4: 4 quadros foram enviados voltar 4

    fr 5

    fr 6

    fr 4

    fr 7

    fr 8

    fr 9

    ACK2

    ACK3

    ACK4

    ACK5

    ACK6

    ACK7

    ACK8

    ACK9

  • Comparação Stop and Wait e GO Back N ARQ

    A

    B

    fr 0

    tempo fr 1

    fr 2

    fr 3

    fr 0

    erro

    Quadros fora de sequencia

    4 quadros excedentes voltar 4

    fr 2

    fr 3

    fr 1

    fr 4

    fr 5

    fr 6

    A

    B

    tempo fr 0

    fr 0

    erro

    Time-out expira fr 1

    ACK1

    Stop-and-Wait

    Go-Back-N

    ACK1

    ACK2

    ACK3

    ACK4

    ACK5

    ACK6

  • Timer Slast

    Slast+1

    Srecent

    Slast+Ws-1

    Timer

    Timer

    emissor receptor

    ...

    Recebe janela

    Buffers

    Slast Slast+Ws-1

    ... Envia janela

    Srecent

    Quadros transmitidos

    e confirmados

    Rnext quadros

    recebidos

    receptor somente aceita um quadro sem erro e com número de sequencia Rnext

    ...

    GO Back N ARQ

  • GO BACK n com Timeout •  Alguns problemas com o Go-Back-N :

    –  O tamanho da janela deve ser de tamanho suficiênte para cobrir o tempo de round trip

    –  Se um quadro é perdido e o emissor não tem um quadro para enviar, a janela não será esaurida e a recuperação não começará

    •  Usar timeout com cada quadro –  Quando o timeout expira, enviar todos os quadros relevantes

  • Tamanho Máximo da Janela •  Dados números de sequenica de n-bits, qual é o número máximo

    de quadros que podem ser contemplados no “go back N”? •  MAX_SEQ = 2^m – 1 enquanto existem 2^m números de

    sequencia. O número máximo deveria ser MAX_SEQ ou MAX_SEQ + 1?

    •  Exemplo m = 2; números de sequencia: 0, 1, 2, 3 1) O emissor envia 4 quadros (0 a 3) 2) Um ACK em piggyback para o quadro 3 e enviado para o emissor 3) O emissor envia outros 4 quadros (0 até 3) 4) Outro ACK em piggyback para o quadro 3 é enviado ao emissor

    •  Pode o emissor saber se todos os 4 quadros no segundo lote foram recebidos ou foram todos perdidos?

  • A

    B

    fr 0

    tempo fr 1

    fr 2

    fr 3

    fr 0

    fr 1

    fr 2

    fr 3

    ACK1

    M =22 = 4, Go-Back - 4:

    ACK4

    ACK2

    ACK3

    Transmissor volta 4

    Receptor tem Rnext=0, mas não sabe se o ACK para o quadro 0

    foi recebido, então não pode distinguir se este é para o frame

    0 antigo ou novo

    A

    B

    fr 0

    tempo fr 1

    fr 2

    fr 0

    fr 1

    fr 2

    ACK1

    M=22=4, Go-Back-3:

    ACK2

    ACK3

    Transmissor volta 3

    O Receptor tem Rnext=3 , então rejeita o quadro velho com seq= 0

    Janela com número fixo de bits

  • Tamanho do Timeout e da Janela

    •  O valor do timeout deve permitir que: –  2 tempos de propagação + 2 tempos de transmissão + 1 tempo de

    processamento: 2 Tprop + 2 Tf + Tproc –  Se assume que o receptor inicia a transmissão logo após o recebimento

    •  O tamanho da janela Ws deve ser grande o suficiênte para manter o canal ocupado por Tout

  • Transmissor Receptor

    Transmissor Receptor

    ACKs are piggybacked in headers

    Estação A Estação B

    RA next

    Janela de recepção de “A

    RB next

    Janela de recepção de “B”

    SA last

    SA last

    SA last+1

    SArecent

    SA last+WA s-1 Timer

    SA last+WA s-1

    ...

    ...

    Buffers

    Janela de envio de “A”

    ...

    SB last

    SB last

    SBlast+1

    SBrecent

    SB last+WB s-1

    SB last+WB s-1

    ...

    ...

    Buffers

    Janela de envio de “B”

    ...

    SArecent RA next

    SBrecent RB next

    Timer

    Timer

    Timer

    Timer

    Timer

    Timer

    Timer

  • Tamanho da Janela para o Produto Atraso x Largura de Banda

  • A

    B

    fr 0

    tempo fr 1

    fr 2

    fr 3

    fr 4

    fr 5

    fr 1

    fr 2

    ACK1

    erro

    Quadros fora de sequencia

    Go-Back-7:

    fr 4

    fr 5

    fr 3

    fr 6

    fr 7

    fr 0

    NAK1

    ACK3

    ACK4

    ACK5

    ACK6

    ACK7

    ACK2

    Transmissor retorna ao quadro 1

    Erro de recuperação de NAK

  • Selective Repeat ARQ •  Porque o Go-Back-N ARQ é ineficiênte?

    –  Vários quadros são re-enviados no caso de erros ou perdas

    •  O Selective Repeat retransmite somente quadros individuais –  O timeout permite que o quadro correspondente seja enviado –  NAK permite retransmissão de quadros antigos ou não confirmados

    •  O receptor mantém uma janela de recepção com sequencias que podem ser aceitas –  Os quadros sem erros con números de sequencia dentro da janela de recepção

    são mantidos no buffer

    –  A chegada do quadro Rnext permite que a janela de desloque adiante em uma unidade ou mais

  • Transmissor Receptor

    Buffers

    Slast Slast+Ws-1

    ... Janela emissora

    Srecent

    Quadros Transmitidos

    E confirmados

    Timer Slast

    Slast+1

    Srecent

    Slast+Ws-1

    Timer

    Timer

    ...

    ...

    Janela Receptora

    Rnext Quadros recebidos Rnext +Wr-1

    Rnext+1

    Rnext+2

    Rnext+Wr-1

    ...

    Buffers

    Selective Repeat ARQ

  • A

    B

    fr 0

    tempo fr 1

    fr 2

    fr 3

    fr 4

    fr 5

    fr 6

    fr 2

    ACK1 erro

    fr 8

    fr 9

    fr 7

    fr 10

    fr 11

    fr 12

    ACK2

    NAK2

    ACK7

    ACK8

    ACK9

    ACK10

    ACK11

    ACK12

    ACK2

    ACK2

    ACK2

    Recuperação de Erro em Selective Repeat ARQ

  • A

    B

    fr 0

    tempo fr 1

    fr 2

    fr 0

    ACK1

    M=22=4, Selective Repeat: Janela envio = janela recepção = 3

    ACK2

    ACK3 Janela recepção {3,0,1}

    Quadro 0 reenviado

    A

    B

    fr 0

    tempo fr 1

    fr 0

    ACK1

    Janela de envio = Janela recepção= 2

    ACK2 Janela recepção {2,3}

    Quadro 0 reenviado

    Quadro 0 rejeitado

    Tamanho Máximo de Janela em SR-ARQ

  • Que tamanhos de Ws e Wr são permitidos ?

    •  Exemplo (Go-back N): M=22=4, Ws=3, Wr=3 Quadro 0 reenviado

    Janela de envio

    Janela de recepção

    tempo

    O Quadro velho 0 é aceito como um novo quadro por cair na janela

    de recepção Depois que o receptor avança na sua janela, o novo intervalo de sequencia válida se sobrepõe com a antiga e

    o receptor não pode distinguir um quadro duplicado de um novo

  • Em resumo •  Ws+Wr= 2m é o tamanho máximo •  Exemplo: M=22=4, Ws=2, Wr=2

    tempo Janela envio

    Janela recepção

    Quadro 0 reenviado

    O Quadro 0 é rejeitado por cair fora

    da janela de recepção

  • Eficiência do Selective Repeat

    Supondo que Pf é a probabilidade de perda do quadro, o número de transmissões necesárias para entregar o quadro é 1/(1-P

    f), então o tempo médio de transmissão é tf /(1-Pf)