Redes de Computadores Aula 6 Aula passada Aula de hoje Camada de - - PowerPoint PPT Presentation

redes de computadores aula 6
SMART_READER_LITE
LIVE PREVIEW

Redes de Computadores Aula 6 Aula passada Aula de hoje Camada de - - PowerPoint PPT Presentation

Redes de Computadores Aula 6 Aula passada Aula de hoje Camada de transporte Eficincia Multiplexao Go-Back N Princpios de Selective Repeat transmisso confivel Stop-and-wait Figueiredo 2011 Eficincia do Stop-and-Wait


slide-1
SLIDE 1

Figueiredo – 2011

Redes de Computadores Aula 6

Aula passada Camada de transporte Multiplexação Princípios de transmissão confiável Stop-and-wait Aula de hoje Eficiência Go-Back N Selective Repeat

slide-2
SLIDE 2

Figueiredo – 2011

Eficiência do Stop-and-Wait

Início da transmissão

tempo tempo

Fim da transmissão Recebe confirmação

Pacote L bytes Taxa de transmissão R Propagação p Vazão máxima do canal? Utilização?

Muito ruim!

slide-3
SLIDE 3

Figueiredo – 2011

Eficiência do Stop-and-Wait

Pacote L bytes Taxa de transmissão R Propagação p Vazão = L / (L/R + 2p)

  • Ex. L = 1000 bytes, R = 1Gbps, p = 10ms

V = 400Kbps Apesar do enlace ser de 1Gbps! U = 0.4/1000 = 0.0004!

Como melhorar eficiência?

slide-4
SLIDE 4

Figueiredo – 2011

Protocolos com Pipeline

Problemas que teremos que resolver? Significado do ACK, número de sequência, ordenação, bufferização

Pipeline: transmissor permite múltiplos pacotes “em trânsito”, antes de receber ACK

slide-5
SLIDE 5

Figueiredo – 2011

Vazão com Pipeline

Tx P1

tempo tempo

Rx ACK 1

Supor pipeline de 3 pacotes Ganho na vazão? Ganho na utilização? Transmissão de 3 pacotes Vazão 3 vezes maior!

Tx P2 Tx P3 Rx ACK 2 Rx ACK 3 Tx ACK 1 Tx ACK 2 Tx ACK 3 Tx P4 Tx P5 Tx P6

slide-6
SLIDE 6

Figueiredo – 2011

Protocolos com Pipeline (ou Janela)

Go-back N Tx poder ter até N pacotes sem ACK no pipeline Rx transmite ACKs cumulativos Não envia ACK se tiver faltando na sequência Tx tem timer para pacote mais antigo sem ACK Retransmite todos

  • s pacotes se timer

expira

Selective Repeat: Tx pode ter até N pacotes sem ACK no pipeline RX envia ACK individual para pacotes Tx mantém um timer para cada pacote

Retransmite somente o pacote se timer expira

slide-7
SLIDE 7

Figueiredo – 2011

Go-Back-N

Sender: k-bit seq # in pkt header “window” of up to N, consecutive unack’ed pkts allowed

❒ ACK(n): ACKs all pkts up to, including seq # n - “cumulative ACK”

❍ may receive duplicate ACKs (see receiver)

❒ timer for each in-flight pkt ❒ timeout(n): retransmit pkt n and all higher seq # pkts in window

slide-8
SLIDE 8

Figueiredo – 2011

GBN: sender extended FSM

Wait

start_timer udt_send(sndpkt[base]) udt_send(sndpkt[base+1]) … udt_send(sndpkt[nextseqnum-1]) timeout rdt_send(data) if (nextseqnum < base+N) { sndpkt[nextseqnum] = make_pkt(nextseqnum,data,chksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) start_timer nextseqnum++ } else refuse_data(data) base = getacknum(rcvpkt)+1 If (base == nextseqnum) stop_timer else start_timer rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) base=1 nextseqnum=1 rdt_rcv(rcvpkt) && corrupt(rcvpkt)

Λ

slide-9
SLIDE 9

Figueiredo – 2011

GBN: receiver extended FSM

ACK-only: always send ACK for correctly-received pkt with highest in-order seq #

may generate duplicate ACKs need only remember expectedseqnum

  • ut-of-order pkt:

discard (don’t buffer) -> no receiver buffering! Re-ACK pkt with highest in-order seq #

Wait

udt_send(sndpkt) default rdt_rcv(rcvpkt) && notcurrupt(rcvpkt) && hasseqnum(rcvpkt,expectedseqnum) extract(rcvpkt,data) deliver_data(data) sndpkt = make_pkt(expectedseqnum,ACK,chksum) udt_send(sndpkt) expectedseqnum++ expectedseqnum=1 sndpkt = make_pkt(expectedseqnum,ACK,chksum)

Λ

slide-10
SLIDE 10

Figueiredo – 2011

GBN in action

slide-11
SLIDE 11

Figueiredo – 2011

Selective Repeat

receiver individually acknowledges all correctly received pkts

buffers pkts, as needed, for eventual in-order delivery to upper layer

sender only resends pkts for which ACK not received

sender timer for each unACKed pkt

sender window

N consecutive seq #’s again limits seq #s of sent, unACKed pkts

slide-12
SLIDE 12

Figueiredo – 2011

Selective repeat: sender, receiver windows

slide-13
SLIDE 13

Figueiredo – 2011

Selective repeat

data from above :

if next available seq # in window, send pkt

timeout(n):

resend pkt n, restart timer

ACK(n) in [sendbase,sendbase+N]:

mark pkt n as received if n smallest unACKed pkt, advance window base to next unACKed seq #

sender

pkt n in [rcvbase, rcvbase+N-1]

❒ send ACK(n) ❒ out-of-order: buffer ❒ in-order: deliver (also

deliver buffered, in-order pkts), advance window to next not-yet-received pkt

pkt n in [rcvbase-N,rcvbase-1]

❒ ACK(n)

  • therwise:

❒ ignore

receiver

slide-14
SLIDE 14

Figueiredo – 2011

Selective repeat in action

slide-15
SLIDE 15

Figueiredo – 2011

Selective repeat: dilemma

Example:

seq #’s: 0, 1, 2, 3 window size=3 receiver sees no difference in two scenarios! incorrectly passes duplicate data as new in (a) Q: what relationship between seq # size and window size?