Performance of rdt 3 0 r rdt 3

  • Slides: 11
Download presentation
Performance of rdt 3. 0 r rdt 3. 0 works, but performance stinks r

Performance of rdt 3. 0 r rdt 3. 0 works, but performance stinks r example: 1 Gbps link, 15 ms e-e prop. delay, 1 KB packet: Ttransmit = 8 kb/pkt = 8 microsec 10**9 b/sec 8 microsec fraction of time = = 0. 00015 Utilization = U = sender busy sending 30. 016 msec m m 1 KB pkt every 30 msec -> 33 k. B/sec thruput over 1 Gbps link network protocol limits use of physical resources! 3: Transport Layer 1

Pipelined protocols Pipelining: sender allows multiple, “in-flight”, yet-tobe-acknowledged pkts m m range of sequence

Pipelined protocols Pipelining: sender allows multiple, “in-flight”, yet-tobe-acknowledged pkts m m range of sequence numbers must be increased buffering at sender and/or receiver r Two generic forms of pipelined protocols: go-Back-N, selective repeat 3: Transport Layer 2

Go-Back-N Sender: r k-bit seq # in pkt header r “window” of up to

Go-Back-N Sender: r k-bit seq # in pkt header r “window” of up to N, consecutive unack’ed pkts allowed r ACK(n): ACKs all pkts up to, including seq # n - “cumulative ACK” may receive duplicate ACKs (see receiver) r timer for each in-flight pkt r timeout(n): retransmit pkt n and all higher seq # pkts in window m 3: Transport Layer 3

GBN: sender extended FSM 3: Transport Layer 4

GBN: sender extended FSM 3: Transport Layer 4

GBN: receiver extended FSM receiver simple: r ACK-only: always send ACK for correctly-received pkt

GBN: receiver extended FSM receiver simple: r ACK-only: always send ACK for correctly-received pkt with highest in-order seq # m m may generate duplicate ACKs need only remember expectedseqnum r out-of-order pkt: m discard (don’t buffer) -> no receiver buffering! m ACK pkt with highest in-order seq # 3: Transport Layer 5

GBN in action N=4 3: Transport Layer 6

GBN in action N=4 3: Transport Layer 6

Selective Repeat r receiver individually acknowledges all correctly received pkts m buffers pkts, as

Selective Repeat r receiver individually acknowledges all correctly received pkts m buffers pkts, as needed, for eventual in-order delivery to upper layer r sender only resends pkts for which ACK not received m sender timer for each un. ACKed pkt r sender window m N consecutive seq #’s m again limits seq #s of sent, un. ACKed pkts 3: Transport Layer 7

Selective repeat: sender, receiver windows 3: Transport Layer 8

Selective repeat: sender, receiver windows 3: Transport Layer 8

Selective repeat sender data from above : receiver pkt n in [rcvbase, rcvbase+N-1] r

Selective repeat sender data from above : receiver pkt n in [rcvbase, rcvbase+N-1] r if next available seq # in r send ACK(n) timeout(n): r in-order: deliver (also window, send pkt r resend pkt n, restart timer ACK(n) in [sendbase, sendbase+N]: r mark pkt n as received r if n smallest un. ACKed pkt, advance window base to next un. ACKed seq # r out-of-order: buffer deliver buffered, in-order pkts), advance window to next not-yet-received pkt n in [rcvbase-N, rcvbase-1] r ACK(n) otherwise: r ignore 3: Transport Layer 9

Selective repeat in action 3: Transport Layer 10

Selective repeat in action 3: Transport Layer 10

Selective repeat: dilemma Example: r seq #’s: 0, 1, 2, 3 r window size=3

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