Post on 05-Feb-2021
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)