t strsr s ss - - PowerPoint PPT Presentation

t s tr s r s ss r s tr s r
SMART_READER_LITE
LIVE PREVIEW

t strsr s ss - - PowerPoint PPT Presentation

t strsr s ss r strsr r r t trsr


slide-1
SLIDE 1

■♠♣❧❡♠❡♥t✐♥❣ ✜❢♦ ♠s❣tr❛♥s❢❡r✷ ✉s✐♥❣ ❧♦ss② ♦r ▲❘❉ ♠s❣tr❛♥s❢❡r✷

❙❤❛♥❦❛r ▼❛r❝❤ ✶✷✱ ✷✵✶✾

slide-2
SLIDE 2

❉❛t❛ tr❛♥s❢❡r ♣r♦t♦❝♦❧✿ DtpDist

send recv send send send recv recv recv lossy/lrd msgtransfer a2 a1 a2 a1 dtp a2 dtp a1 fifo msgtransfer ■♠♣❧❡♠❡♥ts ✜❢♦ ♠s❣tr❛♥s❢❡r✭❛✶✱❛✷✮ ✉s✐♥❣ ❧♦ss②⑤❧r❞ ♠s❣tr❛♥s❢❡r ❙❧✐❞✐♥❣ ✇✐♥❞♦✇ ♣r♦t♦❝♦❧ ✭❙✇♣✮ a1 → a2 ✜❢♦ tr❛♥s❢❡r ❞❡✜♥❡ ♣r♦❣r❛♠s ❛t ✏❛❧❣♦r✐t❤♠✲❧❡✈❡❧✑✿ ❛t♦♠✐❝ r✉❧❡s ♣r♦✈❡ ❝♦rr❡❝t♥❡ss ✇✐t❤ ♠♦❞✉❧♦✲◆ s❡q✉❡♥❝❡ ♥✉♠❜❡rs ❝♦rr❡❝t♥❡ss✲♣r❡s❡r✈✐♥❣ r❡✜♥❡♠❡♥t t♦ ❛✇❛✐t ♣r♦❣r❛♠ ❖❜t❛✐♥ dtp ✈✐❛ ❝♦rr❡❝t♥❡ss✲♣r❡s❡r✈✐♥❣ ♠❡r❣❡ ♦❢ t✇♦ Swps

slide-3
SLIDE 3

❖✉t❧✐♥❡

s✇♣

❙❧✐❞✐♥❣ ❲✐♥❞♦✇ Pr♦t♦❝♦❧ ❆♥❛❧②s✐s ♦❢ ❙❧✐❞✐♥❣ ❲✐♥❞♦✇ Pr♦t♦❝♦❧ ❆✇❛✐t✲str✉❝t✉r❡❞ ❙♦✉r❝❡ ❛♥❞ ❙✐♥❦ Pr♦❣r❛♠s ❉❛t❛ tr❛♥s❢❡r Pr♦t♦❝♦❧ ❛♥❞ Pr♦♦❢

  • r❛❝❡❢✉❧✲❝❧♦s✐♥❣ ❉❛t❛ tr❛♥s❢❡r Pr♦t♦❝♦❧

❆❜♦rt❛❜❧❡ ❉❛t❛ tr❛♥s❢❡r Pr♦t♦❝♦❧

slide-4
SLIDE 4

❙❧✐❞✐♥❣ ✇✐♥❞♦✇ ♣r♦t♦❝♦❧✿ SwpDist

s✇♣

send recv send recv lossy/lrd msgtransfer a2 a1 a2 a1 Sink Source 1-way fifo msgtransfer send recv

Swp(a1, a2) xa1, xa2 ← startSystem ( Lossy | LrdChannel (a1, a2) ) ya1 ← startSystem ( Source(a1, a2, xa1)) ya2 ← startSystem ( Sink(a2, a1, xa2)) return ya1, ya2

slide-5
SLIDE 5

❙♦❧✉t✐♦♥ ✉s✐♥❣ s❡q✉❡♥❝❡ ♥✉♠❜❡rs

s✇♣

d✵✱ d✶✱ · · · ✿ ❞❛t❛ ❜❧♦❝❦s s❡♥t ✐♥t♦ s♦✉r❝❡ ❜② ✐ts ✉s❡r ❙♦✉r❝❡ s❡♥❞ [dk, k] r❡♣❡❛t❡❞❧② ✉♥t✐❧ ❛❝❦❡❞ / / k✿ s❡q ★ ❙✐♥❦ r❡s♣♦♥❞ ✇✐t❤ ❛✇❛✐t❡❞ s❡q ★ / / ❝✉♠✉❧❛t✐✈❡ ❛❝❦ ❤❛s 0 ... 4 ⊔ 6, ... 8✿ r❡❝✈ ✼ ✴ s❡♥❞ ✺❀ r❡❝✈ ✺ ✴ s❡♥❞ ✾ ♣❛ss❡s ❞❛t❛ ❜❧♦❝❦s t♦ ✐ts ✉s❡r ✐♥ ♦r❞❡r ❋♦r ❣♦♦❞ t❤r♦✉❣❤♣✉t > ✶ ♦✉tst❛♥❞✐♥❣ ❛t s♦✉r❝❡✱ ❜✉✛❡r ♦✉t✲♦❢✲s❡q✉❡♥❝❡ ❛t s✐♥❦ ❆❜♦✈❡ r❡q✉✐r❡s ✉♥❜♦✉♥❞❡❞ s❡q ★s ✭✉s♥✮ ♥♦t ❣♦♦❞ ❢♦r ❤✇ ✐♠♣❧❡♠❡♥t❛t✐♦♥ ■♥st❡❛❞ ✉s❡ ❝②❝❧✐❝ s❡q ★s ✭❝s♥✮

slide-6
SLIDE 6

❯s✐♥❣ ♠♦❞✉❧♦✲N ❝②❝❧✐❝ s❡q✉❡♥❝❡ ♥✉♠❜❡rs

s✇♣

❯s❡ ♠♦❞✲N ❝s♥ ✐♥st❡❛❞ ♦❢ ✉s♥ ❙❡♥❞ ❝s♥ ♠♦❞✭k✱N✮ ✐♥st❡❛❞ ♦❢ ✉s♥ k ❘❡❝❡✐✈❡r ♦❢ csn ❤❛s t♦ ✐♥❢❡r t❤❡ ❝♦rr❡s♣♦♥❞✐♥❣ usn ♠❛✐♥t❛✐♥s ✇✐♥❞♦✇ ♦❢ ✏♣♦ss✐❜❧❡✑ ✉s♥ s❛② L · · · U ♠❛♣s r❝✈❞ csn t♦ usn ✇✐t❤ s❛♠❡ ❝②❝❧✐❝ ✈❛❧✉❡ usn ← L + ♠♦❞(csn − L, N)❀ ✐❢ usn > U ✐❣♥♦r❡ r❝✈❞ csn ❙❡q ★s ✐♥ tr❛♥s✐t ♠✉st r❡♠❛✐♥ ❝❧♦s❡ t♦ ✇✐♥❞♦✇

slide-7
SLIDE 7

❙❧✐❞✐♥❣ ✇✐♥❞♦✇ ♣r♦t♦❝♦❧ ✇✐t❤ ♠♦❞✲◆ ❝s♥

s✇♣

❙♦✉r❝❡ ng✿ # ❜❧❦s ❢r♦♠ ✉s❡r ns✿ # ❜❧❦s s❡♥t ❛t ❧❡❛st ♦♥❝❡ na✿ # ❜❧❦s ❛❝❦❡❞ ♠❛♣ sbuff✿ ❢♦r ❜❧❦s na · · · ng-1 s❡♥❞ ✇✐♥❞♦✇✿ na · · · ns✰SW-1 / / SW < N ♦✉tst❛♥❞✐♥❣ ✇✐♥❞♦✇✿ na · · · ns / / ♦❦ ✐❢ ❧♦✇ ❡♥❞ ✐s na+1 ❙✐♥❦ nd✿ # ❜❧❦s t♦ ✉s❡r nr✿ # ❝♦♥t✐❣✉♦✉s ❜❧❦s r❝✈❞ ♠❛♣ rbuff✿ ❢♦r ❜❧❦s nd · · · nd + RW-1 / / RW < N r❡❝❡✐✈❡ ✇✐♥❞♦✇✿ nr · · · nd + RW-1 ❖✈❡r t✐♠❡✱ ✇✐♥❞♦✇s s❧✐❞❡ t♦ ✐♥❝r❡❛s✐♥❣ s❡q #s

slide-8
SLIDE 8

❙❧✐❞✐♥❣ ✇✐♥❞♦✇s

s✇♣

  • 1

ns ng na+SW-1 1 nd nr delivered

  • utstanding

not yet sent acked received possibly sbuff window receive na nd+RW-1 rbuff Sink Source (not received) send window received na nr vars : # blks : # sent : # acked from user vars : # blks : blk next to user awaited ng ns na sbuff rbuff nr nd

slide-9
SLIDE 9

❙✇♣ ♠♦❞✲◆✿ ❛❧❣♦r✐t❤♠✲❧❡✈❡❧

s✇♣

❙♦✉r❝❡ na,ns,ng ← 0❀ sbuff ← [] db ❢r♦♠ ✉s❡r✿ sbuffng ← db❀ ng++ ns < min (na+SW, ng)✿ s❡♥❞ [sbuffns, ns]❀ ns++ k in na..ns-1✿ s❡♥❞ [sbuffk, k] r❡❝✈ ❬cn❪✿ j ← na + cn-na if na < j ≤ ns: sbuff.remove(na..j-1) na ← j ❙✐♥❦ nd,nr ← 0; rbuff ← [] nd < nr✿ rbuffnd t♦ ✉s❡r❀ nd++ r❡❝✈ [db,cn]✿ j ← nr + cn-nr if nr ≤ j < nd+RW: rbuffj ← db ✇❤✐❧❡ nr in rbuff.keys: nr ← nr+1 s❡♥❞ ❬nr❪ k ✿ ♠♦❞✭k✱◆✮

slide-10
SLIDE 10

❖✉t❧✐♥❡

s✇♣ ❛♥❛❧②s✐s

❙❧✐❞✐♥❣ ❲✐♥❞♦✇ Pr♦t♦❝♦❧ ❆♥❛❧②s✐s ♦❢ ❙❧✐❞✐♥❣ ❲✐♥❞♦✇ Pr♦t♦❝♦❧ ❆✇❛✐t✲str✉❝t✉r❡❞ ❙♦✉r❝❡ ❛♥❞ ❙✐♥❦ Pr♦❣r❛♠s ❉❛t❛ tr❛♥s❢❡r Pr♦t♦❝♦❧ ❛♥❞ Pr♦♦❢

  • r❛❝❡❢✉❧✲❝❧♦s✐♥❣ ❉❛t❛ tr❛♥s❢❡r Pr♦t♦❝♦❧

❆❜♦rt❛❜❧❡ ❉❛t❛ tr❛♥s❢❡r Pr♦t♦❝♦❧

slide-11
SLIDE 11

❉❡s✐r❡❞ ♣r♦♣❡rt✐❡s ♦❢ SwpDist

s✇♣ ❛♥❛❧②s✐s

dbh✿ ❛✉①✐❧✐❛r② ✈❛r ✐♥❞✐❝❛t✐♥❣ s❡q ♦❢ ❜❧❦s s❡♥t ❜② ✉s❡r ❉❡s✐r❡❞ ♣r♦♣❡rt✐❡s X✶ : ■♥✈ (nd < nr ⇒ rbuffnd = dbhnd) X✷ : (nd = k < ng ❧❡❛❞s✲t♦ nd > k) ❛ss✉♠✐♥❣ ✇❢❛✐r s❡♥❞ sbuffns✱ r❡s❡♥❞ sbuffna✱ ❞❡❧✐✈❡r rbuffnd t♦ ✉s❡r✱ s♦✉r❝❡✴s✐♥❦ r❝✈ ♠s❣✱ ❝❤❛♥♥❡❧ ♣r♦❣r❡ss ■♥t❡r♠❡❞✐❛t❡ ❞❡s✐r❡❞ ■♥✈ A✶✕A✸ A✵ : nd · · · nr-1 ✐♥ rbuff.keys A✶ : (k ✐♥ rbuff.keys) ⇒ rbuffk = dbhk / / A✵,✶ ⇒ X✶✳♣r❡❞ A✷ : na ≤ nr ≤ ns ≤ na+SW ❛♥❞ ns ≤ ng

slide-12
SLIDE 12

❈♦rr❡❝t ✐♥t❡r♣r❡t❛t✐♦♥ ❝♦♥❞✐t✐♦♥s

s✇♣ ❛♥❛❧②s✐s

❆❞❞ ❛✉①✐❧✐❛r② usn ✜❡❧❞ t♦ ♠s❣s / / ♥♦t r❡❛❞ s♦✉r❝❡ s❡♥❞s [sbuffj, j, j] s✐♥❦ s❡♥❞s [nr, nr] ❙✐♥❦ ♠❛♣s r❝✈❞ [j, j] ✇rt r❝✈ ✇✐♥❞♦✇ nr · · · nr+RW-1 j ✐♥ ✇✐♥❞♦✇✿ ♠❛♣♣❡❞ ❝♦rr❡❝t❧② j < ✇✐♥❞♦✇✿ nr-1 ✱ nr-2 ✱ · · · ✱ nr-N+RW-1 × j > ✇✐♥❞♦✇✿ nr+RW ✱ nr+RW+1 ✱ · · · ✱ nr+N × ❞❡s✐r❡❞ ■♥✈ A✸ A✸ : ❞❛t❛ j r❝✈❛❜❧❡ ⇒ j ✐♥ nr-N+RW · · · nr+N-1 ❙♦✉r❝❡ ♠❛♣s r❝✈❞ [j, j] ✇rt ♦✉tst❛♥❞✐♥❣ ✇✐♥❞♦✇ na · · · ns ❞❡s✐r❡❞ ■♥✈ A✸ A✹ : ❛❝❦ j r❝✈❛❜❧❡ ⇒ j ✐♥ ns-N+1 · · · na+N

slide-13
SLIDE 13

❘❡❝❛♣

s✇♣ ❛♥❛❧②s✐s

  • ♦❛❧

A✵ : nd · · · nr-1 ✐♥ rbuff.keys A✶ : (k ✐♥ rbuff.keys) ⇒ rbuffk = dbhk A✷ : na ≤ nr ≤ ns ≤ na+SW ❈♦rr❡❝t ✐♥t❡r♣r❡t❛t✐♦♥ A✸ : ❞❛t❛ j r❝✈❛❜❧❡ ⇒ j ✐♥ nr-N+RW · · · nr+N-1 A✹ : ❛❝❦ j r❝✈❛❜❧❡ ⇒ j ✐♥ ns-N+1 · · · na+N ❋♦r ❡✈❡r② st❡♣ e✿ {A✵ ✕ A✹} e {A✵, A✶, A✷} ❤♦❧❞s ❙✉✣❝❡s t♦ ❡st❛❜❧✐s❤ {A✷,✸,✹} e {A✸} ❢♦r e✿ s❡♥❞ ❞❛t❛❀ r❝✈ ❞❛t❛ ❛✛❡❝t✐♥❣ nr {A✷,✸,✹} e {A✹} ❢♦r e✿ s❡♥❞ ❛❝❦❀ r❝✈ ❛❝❦ ❛✛❡❝t✐♥❣ ns

slide-14
SLIDE 14

❖✉t❧✐♥❡

❧♦ss② ❝❤❛♥♥❡❧ s✇♣ ❛♥❛❧②s✐s

❙❧✐❞✐♥❣ ❲✐♥❞♦✇ Pr♦t♦❝♦❧ ❆♥❛❧②s✐s ♦❢ ❙❧✐❞✐♥❣ ❲✐♥❞♦✇ Pr♦t♦❝♦❧ ■♥✈ A✸✕A✹ ❢♦r ❧♦ss② ❝❤❛♥♥❡❧ ■♥✈ A✸✕A✹ ❢♦r ▲❘❉ ❝❤❛♥♥❡❧ Pr♦❣r❡ss ❢♦r ❧♦ss②✴▲❘❉ ❝❤❛♥♥❡❧ ❆✇❛✐t✲str✉❝t✉r❡❞ ❙♦✉r❝❡ ❛♥❞ ❙✐♥❦ Pr♦❣r❛♠s ❉❛t❛ tr❛♥s❢❡r Pr♦t♦❝♦❧ ❛♥❞ Pr♦♦❢

  • r❛❝❡❢✉❧✲❝❧♦s✐♥❣ ❉❛t❛ tr❛♥s❢❡r Pr♦t♦❝♦❧

❆❜♦rt❛❜❧❡ ❉❛t❛ tr❛♥s❢❡r Pr♦t♦❝♦❧

slide-15
SLIDE 15

❆♥❛❧②s✐s ❢♦r ▲♦ss② ❈❤❛♥♥❡❧

❧♦ss② ❝❤❛♥♥❡❧ s✇♣ ❛♥❛❧②s✐s

❋♦r SwpDist ✇✐t❤ ❧♦ss② ❝❤❛♥♥❡❧ ♥♦✇ s❤♦✇ t❤❛t ■♥✈ A✸✕A✹ ❤♦❧❞s ✐❢ N ≥ SW + RW

slide-16
SLIDE 16

Pr❡s❡r✈✐♥❣ A✸ ✇rt s❡♥❞ ❞❛t❛

❧♦ss② ❝❤❛♥♥❡❧ s✇♣ ❛♥❛❧②s✐s

A✷ : na ≤ nr ≤ ns ≤ na+SW A✸ : ❞❛t❛ j r❝✈❛❜❧❡ ⇒ j ✐♥ nr-N+RW · · · nr+N-1 ❙❡♥❞ ❞❛t❛ k ♣r❡s❡r✈❡s A✸✳r❤s ❧♦✇❡r ❜♦✉♥❞ ✐❢ N ≥ SW + RW k ≥ na / / ❣✉❛r❞s✱ A✷

≥ ns - SW

/ / A✷

≥ nr - SW

/ / A✷

≥ nr - N + RW

/ / N ≥ SW + RW ❙❡♥❞ ❞❛t❛ k ♣r❡s❡r✈❡s A✸✳r❤s ✉♣♣❡r ❜♦✉♥❞ k ≤ na + SW - 1 / / ❣✉❛r❞s✱ A✷

≤ nr + SW - 1

/ / A✷

≤ nr + N - 1

/ / N ≥ SW

slide-17
SLIDE 17

Pr❡s❡r✈✐♥❣ A✸ ✇rt nr ✐♥❝r❡❛s❡

❧♦ss② ❝❤❛♥♥❡❧ s✇♣ ❛♥❛❧②s✐s

A✷ : na ≤ nr ≤ ns ≤ na+SW A✸ : ❞❛t❛ j r❝✈❛❜❧❡ ⇒ j ✐♥ nr-N+RW · · · nr+N-1 nr ✐♥❝r❡❛s❡ ♣r❡s❡r✈❡s A✸ ✐❢ N ≥ SW + RW ❧❡t nr ❜❡❝♦♠❡ k ❛t t✐♠❡ t✵✳ s♦ k-1 r❝✈❞ ❛t t✵ ♦r ♣r✐♦r✱ s♦ s❡♥t ❛t s♦♠❡ t✶ / / t✶ < t✵ ns(t✶) ≥ k+1 / / ❣✉❛r❞s na(t✶) ≥ k+1-SW ⋆⋆ / / A✷ ❧❡t j ❜❡ r❝✈❛❜❧❡ ❛❢t❡r t✵✱ s♦ s❡♥t ❛t s♦♠❡ t✷ ❛❢t❡r t✶ j ≥ na(t✷) ≥ na(t✶) / / na ♥♦♥✲❞❡❝r❡❛s✐♥❣ ≥ k+1-SW / / ⋆⋆ ≥ k+1-N+RW / / N ≥ SW + RW ❆❜♦✈❡ ✐s ❛♥ ♦♣❡r❛t✐♦♥❛❧ ♣r♦♦❢❀ s❡❡ t❡①t ❢♦r ❛♥ ❛ss❡rt✐♦♥❛❧ ♣r♦♦❢

slide-18
SLIDE 18

Pr❡s❡r✈✐♥❣ A✹

❧♦ss② ❝❤❛♥♥❡❧ s✇♣ ❛♥❛❧②s✐s

A✷ : na ≤ nr ≤ ns ≤ na+SW A✹ : ❛❝❦ j r❝✈❛❜❧❡ ⇒ j ✐♥ ns-N+1 · · · na+N Pr♦♦❢ ♦❢ ■♥✈ A✹ ✶✳ ❛❝❦s s❡♥t ❤❛✈❡ ♥♦♥✲❞❡❝r❡❛s✐♥❣ ✉s♥ / / nr ♥♦♥✲❞❡❝r❡❛s✐♥❣ ✷✳ ❛❝❦s ✐♥ tr❛♥s✐t ❤❛✈❡ ♥♦♥✲❞❡❝r❡❛s✐♥❣ ✉s♥ / / ♥♦ r❡♦❞❡r✐♥❣ ✸✳ ❛❝❦ ✉s♥ ❧♦✇❡r ❜♦✉♥❞❡❞ ❜② na / / na ✐s ❛♥ ❛❝❦ ✉s♥ ✹✳ ■♥✈ ✭❛❝❦ j r❝✈❛❜❧❡ ⇒ na ≤ j ≤ nr✮ / / ✶✱ ✷✱ ✸ ✺✳ ■♥✈ A✹ / / ✹✱ A✷ ❆❜♦✈❡ ✐s ❛♥ ♦♣❡r❛t✐♦♥❛❧ ♣r♦♦❢❀ s❡❡ t❡①t ❢♦r ❛♥ ❛ss❡rt✐♦♥❛❧ ♣r♦♦❢

slide-19
SLIDE 19

❖✉t❧✐♥❡

▲❘❉ ❝❤❛♥♥❡❧ s✇♣ ❛♥❛❧②s✐s

❙❧✐❞✐♥❣ ❲✐♥❞♦✇ Pr♦t♦❝♦❧ ❆♥❛❧②s✐s ♦❢ ❙❧✐❞✐♥❣ ❲✐♥❞♦✇ Pr♦t♦❝♦❧ ■♥✈ A✸✕A✹ ❢♦r ❧♦ss② ❝❤❛♥♥❡❧ ■♥✈ A✸✕A✹ ❢♦r ▲❘❉ ❝❤❛♥♥❡❧ Pr♦❣r❡ss ❢♦r ❧♦ss②✴▲❘❉ ❝❤❛♥♥❡❧ ❆✇❛✐t✲str✉❝t✉r❡❞ ❙♦✉r❝❡ ❛♥❞ ❙✐♥❦ Pr♦❣r❛♠s ❉❛t❛ tr❛♥s❢❡r Pr♦t♦❝♦❧ ❛♥❞ Pr♦♦❢

  • r❛❝❡❢✉❧✲❝❧♦s✐♥❣ ❉❛t❛ tr❛♥s❢❡r Pr♦t♦❝♦❧

❆❜♦rt❛❜❧❡ ❉❛t❛ tr❛♥s❢❡r Pr♦t♦❝♦❧

slide-20
SLIDE 20

❆♥❛❧②s✐s ❢♦r ▲❘❉ ❈❤❛♥♥❡❧

▲❘❉ ❝❤❛♥♥❡❧ s✇♣ ❛♥❛❧②s✐s

❋♦r SwpDist ✇✐t❤ ▲❘❉ ❝❤❛♥♥❡❧ ♦❜✈✐♦✉s❧② ■♥✈ A✸✕A✹ ❞♦❡s ♥♦t ❤♦❧❞ ❢♦r ❛♥② N ❇✉t ■♥✈ A✸✕A✹ ❤♦❧❞s ✐❢ ▲❘❉ ❝❤❛♥♥❡❧ ❤❛s ♠❛① ♠s❣ ❧✐❢❡t✐♠❡ L ♠✐♥ t✐♠❡ δ ❜❡t✇❡❡♥ ns ✐♥❝r❡♠❡♥ts N ≥ SW + RW + L δ

slide-21
SLIDE 21

Pr❡s❡r✈✐♥❣ A✸

▲❘❉ ❝❤❛♥♥❡❧ s✇♣ ❛♥❛❧②s✐s

A✷ : na ≤ nr ≤ ns ≤ na+SW A✸ : ❞❛t❛ j r❝✈❛❜❧❡ ⇒ j ✐♥ nr-N+RW · · · nr+N-1 A✸✳r❤s ✉♣♣❡r ❜♦✉♥❞ ❤♦❧❞s ❡①❛❝t❧② ❛s ✐♥ ❧♦ss② ❝❤❛♥♥❡❧ ❝❛s❡ A✸✳r❤s ❧♦✇❡r ❜♦✉♥❞ ❤♦❧❞s ❛s ❢♦❧❧♦✇s ✶ ❧❡t ❞❛t❛ j ❜❡ r❝✈❛❜❧❡ ❛t t✵ ✷ ❞❛t❛ j ✇❛s s❡♥t ❛t s♦♠❡ t✶ > t✵ − L / / ✶ ✸ j ≥ na(t✶) ≥ ns(t✶) - SW / / ❣✉❛r❞s✱ A✷ ✹ ❞✉r✐♥❣ [t✶, t✵]✿ ns ✐♥❝r❡❛s❡s ❜② ❛t ♠♦st L/δ / / ❣✉❛r❞s ✺ j ≥ ns(t✵) - L/δ - SW / / ✸✱ ✹ ✻ j ≥ ns(t✵) - N + RW / / ✺✱ N ≥ SW + RW + L/δ ✼ j ≥ nr(t✵) - N + RW / / ✻✱ A✷

slide-22
SLIDE 22

Pr❡s❡r✈✐♥❣ A✹

▲❘❉ ❝❤❛♥♥❡❧ s✇♣ ❛♥❛❧②s✐s

A✷ : na ≤ nr ≤ ns ≤ na+SW A✹ : ❛❝❦ j r❝✈❛❜❧❡ ⇒ j ✐♥ ns-N+1 · · · na+N A✹✳r❤s ✉♣♣❡r ❜♦✉♥❞ ❤♦❧❞s ❡①❛❝t❧② ❛s ✐♥ ❧♦ss② ❝❤❛♥♥❡❧ ❝❛s❡ A✹✳r❤s ❧♦✇❡r ❜♦✉♥❞ ❤♦❧❞s ❛s ❢♦❧❧♦✇s ✶ ❧❡t ❛❝❦ j ❜❡ r❝✈❛❜❧❡ ❛t t✵ ✷ ❛❝❦ j ✇❛s s❡♥t ❛t s♦♠❡ t✶ > t✵ − L / / ✶ ✸ j = nr(t✶) ≥ na(t✶) ≥ ns(t✶) - SW / / ✷✱ ❣✉❛r❞✱ A✷ ✹ ❞✉r✐♥❣ [t✶, t✵]✿ ns ✐♥❝r❡❛s❡s ❜② ❛t ♠♦st L/δ ✺ j ≥ ns(t✵) - L/δ - SW / / ✸✱ ✹ ✻ j ≥ ns(t✵) - N + 1 / / ✺✱ N ≥ SW + RW + L/δ✱ RW > 0

slide-23
SLIDE 23

❖✉t❧✐♥❡

♣r♦❣r❡ss s✇♣ ❛♥❛❧②s✐s

❙❧✐❞✐♥❣ ❲✐♥❞♦✇ Pr♦t♦❝♦❧ ❆♥❛❧②s✐s ♦❢ ❙❧✐❞✐♥❣ ❲✐♥❞♦✇ Pr♦t♦❝♦❧ ■♥✈ A✸✕A✹ ❢♦r ❧♦ss② ❝❤❛♥♥❡❧ ■♥✈ A✸✕A✹ ❢♦r ▲❘❉ ❝❤❛♥♥❡❧ Pr♦❣r❡ss ❢♦r ❧♦ss②✴▲❘❉ ❝❤❛♥♥❡❧ ❆✇❛✐t✲str✉❝t✉r❡❞ ❙♦✉r❝❡ ❛♥❞ ❙✐♥❦ Pr♦❣r❛♠s ❉❛t❛ tr❛♥s❢❡r Pr♦t♦❝♦❧ ❛♥❞ Pr♦♦❢

  • r❛❝❡❢✉❧✲❝❧♦s✐♥❣ ❉❛t❛ tr❛♥s❢❡r Pr♦t♦❝♦❧

❆❜♦rt❛❜❧❡ ❉❛t❛ tr❛♥s❢❡r Pr♦t♦❝♦❧

slide-24
SLIDE 24

❉❡s✐r❡❞ ♣r♦❣r❡ss ♦❢ ❙✇♣

♣r♦❣r❡ss s✇♣ ❛♥❛❧②s✐s

X✷ : (nd = k < ng ❧❡❛❞s✲t♦ nd > k) ❛ss✉♠✐♥❣ ✇❢❛✐r s❡♥❞ ✭♦❢ sbuffns✮ ✇❢❛✐r r❡s❡♥❞ ✭♦❢ sbuffna✮ ✇❢❛✐r s✐♥❦ ✉s❡r r❡❝✈ ✭♦❢ rbuffnd✮ ✇❢❛✐r s♦✉r❝❡ r❡❝✈ ✭♦❢ ♠s❣ ❢r♦♠ ❧♦ss②✴❧r❞ ❝❤❛♥♥❡❧✮ ✇❢❛✐r s✐♥❦ r❡❝✈ ✭♦❢ ♠s❣ ❢r♦♠ ❧♦ss②✴❧r❞ ❝❤❛♥♥❡❧✮ ❧♦ss②✴❧r❞ ❝❤❛♥♥❡❧ ♣r♦❣r❡ss

slide-25
SLIDE 25

Pr♦❣r❡ss ♦❢ s❧✐❞✐♥❣ ✇✐♥❞♦✇s

♣r♦❣r❡ss s✇♣ ❛♥❛❧②s✐s

P✶ : na = k < nr ≤ ns ❧❡❛❞s✲t♦ na > k / / sr❝ r❡s❡♥❞✱ s♥❦ r❡❝✈✱ sr❝ r❡❝✈✱ ❝❤❛♥♥❡❧ ♣r♦❣r❡ss P✷ : (na = k = nr < ns and nr < nd+RW) ❧❡❛❞s✲t♦ nr > k / / sr❝ r❡s❡♥❞✱ s♥❦ r❡❝✈✱ ❝❤❛♥♥❡❧ ♣r♦❣r❡ss P✸ : (na = k = nr < ns and nr = nd+RW) ❧❡❛❞s✲t♦ nr > k / / s✐♥❦ ✉s❡r r❡❝✈✱ P✷ P✹ : na = k = nr < ns ❧❡❛❞s✲t♦ nr > k / / P✷✱ P✸ P✺ : na = k < ns ❧❡❛❞s✲t♦ na > k / / P✹✱ P✶ P✻ : nr = k < ns ❧❡❛❞s✲t♦ nr > k / / P✺✱ ■♥✈ nr ≥ na

slide-26
SLIDE 26

Pr♦❣r❡ss✿ ✉s❡r✲❧❡✈❡❧ ↔ ✇✐♥❞♦✇s

♣r♦❣r❡ss s✇♣ ❛♥❛❧②s✐s

P✼ : (ns = k < ng and ns < na+SW) ❧❡❛❞s✲t♦ ns > k / / sr❝ s❡♥❞ P✽ : (ns = k < ng and ns = na+SW) ❧❡❛❞s✲t♦ (ns = k < ng and ns < na+SW) / / P✺ P✾ : ns = k < ng ❧❡❛❞s✲t♦ ns > k / / P✼✱ P✽ P✶✵ : nr = k < ng ❧❡❛❞s✲t♦ nr > k / / P✾✱ P✻ P✶✶ : nd = k < ng ❧❡❛❞s✲t♦ nd > k / / P✶✵✱ s✐♥❦ ✉s❡r r❡❝✈

slide-27
SLIDE 27

❖✉t❧✐♥❡

s♦✉r❝❡✴s✐♥❦ ❛✇❛✐t

❙❧✐❞✐♥❣ ❲✐♥❞♦✇ Pr♦t♦❝♦❧ ❆♥❛❧②s✐s ♦❢ ❙❧✐❞✐♥❣ ❲✐♥❞♦✇ Pr♦t♦❝♦❧ ❆✇❛✐t✲str✉❝t✉r❡❞ ❙♦✉r❝❡ ❛♥❞ ❙✐♥❦ Pr♦❣r❛♠s ❉❛t❛ tr❛♥s❢❡r Pr♦t♦❝♦❧ ❛♥❞ Pr♦♦❢

  • r❛❝❡❢✉❧✲❝❧♦s✐♥❣ ❉❛t❛ tr❛♥s❢❡r Pr♦t♦❝♦❧

❆❜♦rt❛❜❧❡ ❉❛t❛ tr❛♥s❢❡r Pr♦t♦❝♦❧

slide-28
SLIDE 28

❈♦rr❡❝t♥❡ss✲♣r❡s❡r✈✐♥❣ tr❛♥s❢♦r♠❛t✐♦♥

s♦✉r❝❡✴s✐♥❦ ❛✇❛✐t

  • ✐✈❡♥✿ ❛❧❣♦r✐t❤♠✲❧❡✈❡❧ ♣r♦❣r❛♠ A

✐♥✐t✱ ✈❛rs✱ ❛t♦♠✐❝ r✉❧❡s✱ ❢❛✐r♥❡ss ❢♦r r✉❧❡s

  • ♦❛❧✿ ♣r♦❣r❛♠ B t❤❛t ✐♠♣❧❡♠❡♥ts A

✐♥✐t✱ ✈❛rs✱ t❤r❡❛❞s✱ ❛✇❛✐t st❛t❡♠❡♥ts✱ ❢❛✐r♥❡ss ❢♦r t❤r❡❛❞s ❈♦♥str✉❝t B ❛s ❢♦❧❧♦✇s ✐♥❝❧✉❞❡ A✲✈❛rs ❡❛❝❤ A✲r✉❧❡ → ❛✇❛✐t st❛t❡♠❡♥t / / ♣r❡s❡r✈❡s ❛❞❞✐t✐♦♥❛❧ B✲st❡♣s ❞♦ ♥♦t ❛✛❡❝t A✲✈❛rs / / s❛❢❡t② ❛❧❧♦❝❛t❡ ❧♦❝❛❧✴❣✉❡st t❤r❡❛❞s t♦ ❛✇❛✐ts / / ♣r❡s❡r✈❡s ❢❛✐r♥❡ss ♦❢ A✲r✉❧❡s → ❢❛✐r♥❡ss ♦❢ t❤r❡❛❞s / / ♣r♦❣r❡ss

slide-29
SLIDE 29

❙♦✉r❝❡ ♣r♦❣r❛♠ ✕ ✶

s♦✉r❝❡✴s✐♥❦ ❛✇❛✐t

♣r♦❣r❛♠ Source(aL, aR, xL, N, SW, RW) ♣❛r❛♠❡t❡rs aL: ❧♦❝❛❧ ❛❞❞r✱ aR: r❡♠♦t❡ ❛❞❞r✱ xL: ❝❤❛♥♥❡❧ ❛❝❝❡ss s✐❞ ❝♦♥st❛♥ts✿ DAT✱ ACK✱ RTO / / ❞❛t❛ ♠s❣✱ ❛❝❦ ♠s❣✱ t✐♠❡♦✉t ❢✉♥❝t✐♦♥s ✐♥♣✉t mysid.send✿ ❣❡t ❞❜ ❢r♦♠ ✉s❡r doSendDat✿ s❡♥❞ ♥s✱ r❡s❡♥❞ ❦ / / ❝❛❧❧s xL.send doRecvAck✿ r❝✈ ❛❝❦ ♠s❣ / / ❝❛❧❧s xL.recv ♠❛✐♥ ng, ns, na ← 0✱ sbuff ← [] timer ← OFF / / OFF, 0, 1, · · · tSrcSend ← startThread ( doSendDat() ) tSrcRecv ← startThread ( doRecvAck() ) r❡t✉r♥ ♠②s✐❞

slide-30
SLIDE 30

❙♦✉r❝❡ ♣r♦❣r❛♠ ✕ ✷

s♦✉r❝❡✴s✐♥❦ ❛✇❛✐t

input mysid.send ( aR, db): await True: sbuffng ← db ng++ return function doSendDat(): while True:

  • await (timer = OFF

and ns < min(ng, na+SW)) or (timer > RTO and na < ns): ns ← min(ng, na+SW) for j in na..ns-1: xL.send ( aR, [DAT, sbuffj, mod(j,N)]) timer ← 0 / / (re)start timer

slide-31
SLIDE 31

❙♦✉r❝❡ ♣r♦❣r❛♠ ✕ ✸

s♦✉r❝❡✴s✐♥❦ ❛✇❛✐t

function void doRecvAck(): while True:

  • Seq msg ← xL.recv();

ia {msg in Tuple<ACK, 0..N-1>} await True: int j ← na + mod ( msg[1] - na, N) if na < j ≤ ns: for k in na..j-1: sbuff.remove(k) na ← j if na = ns: timer ← OFF; / / stop timer ❛t♦♠✐❝✐t② ❛ss✉♠♣t✐♦♥✿ ❛✇❛✐ts ♣r♦❣r❡ss ❛ss✉♠♣t✐♦♥✿ ✇❡❛❦ ❢❛✐r♥❡ss ♦❢ t❤r❡❛❞s

slide-32
SLIDE 32

❙♦✉r❝❡ ♣r♦❣r❛♠✿ ✐♠♣r♦✈✐♥❣ ♣❡r❢♦r♠❛♥❝❡

s♦✉r❝❡✴s✐♥❦ ❛✇❛✐t

❙❡♥❞ ♥❡✇ ❞❛t❛ ❜❧♦❝❦s ❛s❛♣✱ ✐♥st❡❛❞ ♦❢ ✉♣♦♥ t✐♠❡♦✉t ❘❡❞✉❝❡ ❡①t❡♥t ♦❢ ❜❧♦❝❦✐♥❣ ❛t ❛✇❛✐ts ❝♦♥❝✉rr❡♥t ❛❝❝❡ss t♦ sbuff ❞✉♣❧✐❝❛t❡ ❝♦✉♥t❡rs · · · ❆❞❛♣t RTO t♦ ♠❡❛s✉r❡❞ r♦✉♥❞tr✐♣ t✐♠❡ / / ❝♦♥❣❡st✐♦♥ ❝♦♥tr♦❧

slide-33
SLIDE 33

❙✐♥❦ ♣r♦❣r❛♠ ✕ ✶

s♦✉r❝❡✴s✐♥❦ ❛✇❛✐t

♣r♦❣r❛♠ Sink(aL, aR, xL, N, SW, RW) ♣❛r❛♠❡t❡rs aL: ❧♦❝❛❧ ❛❞❞r✱ aR: r❡♠♦t❡ ❛❞❞r✱ xL: ❝❤❛♥♥❡❧ ❛❝❝❡ss s✐❞ ❝♦♥st❛♥ts✿ DAT✱ ACK / / ❞❛t❛ ♠s❣✱ ❛❝❦ ♠s❣ ❢✉♥❝t✐♦♥s ✐♥♣✉t mysid.recv✿ ❞❡❧✐✈❡r ❞❜ t♦ ✉s❡r doRecvDatSendAck✿ r❝✈ ❞❛t❛✱ s❡♥❞ ❛❝❦ / / ❝❛❧❧s xL.recv✱ xL.send ♠❛✐♥ nd, nr ← 0✱ rbuff ← [] tSnkRecv ← startThread ( doRecvDatSendAck() ) r❡t✉r♥ ♠②s✐❞

slide-34
SLIDE 34

❙✐♥❦ ♣r♦❣r❛♠ ✕ ✷

s♦✉r❝❡✴s✐♥❦ ❛✇❛✐t

input mysid.recv():

  • await nd < nr:

Seq db ← rbuffnd rbuff.remove(nd) nd++ return db

slide-35
SLIDE 35

❙✐♥❦ ♣r♦❣r❛♠ ✕ ✸

s♦✉r❝❡✴s✐♥❦ ❛✇❛✐t

function doRecvDatSendAck(): while True:

  • Seq msg ← xL.recv();

ia {msg in Tuple<DAT, 0..N-1, Seq>} await True: int j ← nr + mod ( msg[2] - nr, N) if (nr ≤ j < nd+RW) and (not j in rbuff.keys): rbuffj ← msg[1] while nr in rbuff.keys: nr++ xL.send(aR, [ACK, mod(nr,N)]) ❛t♦♠✐❝✐t② ❛ss✉♠♣t✐♦♥✿ ❛✇❛✐ts ♣r♦❣r❡ss ❛ss✉♠♣t✐♦♥✿ ✇❡❛❦ ❢❛✐r♥❡ss ♦❢ t❤r❡❛❞s

slide-36
SLIDE 36

❖✉t❧✐♥❡

❞t♣

❙❧✐❞✐♥❣ ❲✐♥❞♦✇ Pr♦t♦❝♦❧ ❆♥❛❧②s✐s ♦❢ ❙❧✐❞✐♥❣ ❲✐♥❞♦✇ Pr♦t♦❝♦❧ ❆✇❛✐t✲str✉❝t✉r❡❞ ❙♦✉r❝❡ ❛♥❞ ❙✐♥❦ Pr♦❣r❛♠s ❉❛t❛ tr❛♥s❢❡r Pr♦t♦❝♦❧ ❛♥❞ Pr♦♦❢

  • r❛❝❡❢✉❧✲❝❧♦s✐♥❣ ❉❛t❛ tr❛♥s❢❡r Pr♦t♦❝♦❧

❆❜♦rt❛❜❧❡ ❉❛t❛ tr❛♥s❢❡r Pr♦t♦❝♦❧

slide-37
SLIDE 37

Pr♦❣r❛♠ Dtp ♦✈❡r✈✐❡✇

❞t♣

DtpDist✿ ♠❡r❣❡ t✇♦ SwpDist✱ ❜✉t ♦♥❡ ❧♦ss②✴❧r❞ ❝❤❛♥♥❡❧ Dtp✿ Source ✰ Sink✱ ❜✉t s❤❛r❡ ❝❤❛♥♥❡❧ ❛❝❝❡ss ♣❛r❛♠s✱ ✐❛✱ ❝♦♥st❛♥ts✿ / / s❛♠❡ ❛s sr❝✱ s♥❦ ❙♦✉r❝❡ ng✱ ns✱ na✱sbuff✱ timer mysid.send() doSendDat()✿ t❤r❡❛❞ tSrcSend / / await{.. xL.send ..} doRecvAck()✿ t❤r❡❛❞ tSrcRecv / / xL.recv ❙✐♥❦ nd✱ nr✱ rbuff mysid.recv doRecvDatSendAck✿ t❤r❡❛❞ tSnkRecv / / xL.recv✱ await{.. xL.send ..} doRecvDatAck()✿ t❤r❡❛❞ tRecv / / xL.recv✱ await{.. xL.send ..} r❝✈ ❞❛t❛✴❛❝❦ ♠s❣✱ ❞♦ doRecvAck ✴ doRecvDatSendAck

slide-38
SLIDE 38

Pr♦❣r❛♠ Dtp ✕ ✶

❞t♣

♣❛r❛♠s✿ aL✱ aR✱ xL✱ N✱ SW✱ RW ♠❛✐♥ ng✱ ns✱ na✱ sbuff✱ timer nd✱ nr✱ rbuff tSrcSend ← startThread ( doSendDat() ) tSnkRecv ← startThread ( doRecvDatAck() ) input mysid.send ( aR, db) <as in Source()> input mysid.recv () <as in Sink()> function doSendDat() <as in Source()>

slide-39
SLIDE 39

Pr♦❣r❛♠ Dtp ✕ ✷

❞t♣

function doRecvDatAck(): while True:

  • Seq msg ← xL.recv();

ia {msg in union (Tuple<ACK, 0..N-1>, Tuple<DAT, 0..N-1, Seq>} if msg[0] = ACK: <Source.doRecvAck() update> elif msg[0] = ACK: <Sink.doRecvDatSendAck() update> ❛t♦♠✐❝✐t② ❛ss✉♠♣t✐♦♥✿ ❛✇❛✐ts ♣r♦❣r❡ss ❛ss✉♠♣t✐♦♥✿ ✇❡❛❦ ❢❛✐r♥❡ss ♦❢ t❤r❡❛❞s

slide-40
SLIDE 40

Pr♦✈✐♥❣ t❤❛t ❉t♣❉✐st ✐♠♣❧❡♠❡♥ts ❋✐❢♦ ❈❤❛♥♥❡❧

❞t♣

❖❜t❛✐♥ ✜❢♦ ❝❤❛♥♥❡❧ ✐♥✈❡rs❡ ♦♥❧② t✇♦ ❛❞❞r❡ss❡s✱ s♦ ♥♦ ✐♥t❡r♥❛❧ ♥♦♥❞❡t❡r♠✐♥✐s♠ ❉❡✜♥❡ ♣r♦❣r❛♠ Z ♦❢ DtpDist ❛♥❞ ✜❢♦ ❝❤❛♥♥❡❧ ✐♥✈❡rs❡ ❉❡✜♥❡ ❛ss❡rt✐♦♥s t❤❛t Z ♠✉st s❛t✐s❢② Pr♦♦❢ t❤❛t Z s❛t✐s✜❡s t❤❡♠ ❢♦❧❧♦✇s ❢r♦♠ ❙✇♣ ♣r♦♣❡rt✐❡s ✜❢♦✲❝❤❛♥♥❡❧ ✐♥✈❡rs❡ txha1,a2 = ❛✉① ✈❛r Dtp(a1).dbh s❡❡ t❡①t ❢♦r ❞❡t❛✐❧s

slide-41
SLIDE 41

❖✉t❧✐♥❡

❣r❛❝❡❢✉❧ ❞t♣

❙❧✐❞✐♥❣ ❲✐♥❞♦✇ Pr♦t♦❝♦❧ ❆♥❛❧②s✐s ♦❢ ❙❧✐❞✐♥❣ ❲✐♥❞♦✇ Pr♦t♦❝♦❧ ❆✇❛✐t✲str✉❝t✉r❡❞ ❙♦✉r❝❡ ❛♥❞ ❙✐♥❦ Pr♦❣r❛♠s ❉❛t❛ tr❛♥s❢❡r Pr♦t♦❝♦❧ ❛♥❞ Pr♦♦❢

  • r❛❝❡❢✉❧✲❝❧♦s✐♥❣ ❉❛t❛ tr❛♥s❢❡r Pr♦t♦❝♦❧

❆❜♦rt❛❜❧❡ ❉❛t❛ tr❛♥s❢❡r Pr♦t♦❝♦❧

slide-42
SLIDE 42

❆❞❞✐♥❣ ❣r❛❝❡❢✉❧ ❝❧♦s✐♥❣ t♦ ❉t♣

❣r❛❝❡❢✉❧ ❞t♣

❆❧❧♦✇ ✉s❡r t♦ ❝❧♦s❡ t❤❡ ❞❛t❛ tr❛♥s❢❡r ♦♣❡♥ → ❝❧♦s✐♥❣ → ❝❧♦s❡❞ ❛❢t❡r ❝❛❧❧✿ ✉s❡r ❝❛♥♥♦t send✱ ❜✉t ❝❛♥ recv r❡t✉r♥s ✇❤❡♥ r❡♠♦t❡ ✉s❡r ❛❧s♦ ❤❛s r❡q✉❡st❡❞ ❝❧♦s✐♥❣ ❛❧❧ ❞❛t❛ ✐♥ ❜♦t❤ ❞✐r❡❝t✐♦♥s ❤❛✈❡ ❜❡❡♥ ❞❡❧✐✈❡r❡❞ t♦ ✉s❡rs ◆❡✇ ♠❡ss❛❣❡s [FIN]✿ ✐♥❞✐❝❛t❡s ❝❧♦s✐♥❣ [FINACK]✿ ❛❝❦ t♦ [FIN] ◆❡✇ ✢❛❣s✱ ❛❧❧ ✐♥✐t✐❛❧❧② ❢❛❧s❡✿ finRcvd finAckRcvd closed

slide-43
SLIDE 43
  • r❛❝❡❢✉❧✲❝❧♦s✐♥❣ ❉t♣

✕ ✶

❣r❛❝❡❢✉❧ ❞t♣

✐♥♣✉t mysid.close() ✇❛✐t ❢♦r na = ng❀ / / ❛❧❧ ♦✉t❣♦✐♥❣ ❞❛t❛ ❛❝❦❡❞ r❡♣❡❛t❡❞❧② s❡♥❞ [FIN] ✉♥t✐❧ finAckRcvd ✐s tr✉❡❀ ✇❛✐t ❢♦r finRcvd t♦ ❜❡ tr✉❡❀ ✇❛✐t ❢♦r nd = nr❀ / / ♥♦ ♠♦r❡ ✐♥❝♦♠✐♥❣ ❞❛t❛ s❡t closed t♦ tr✉❡❀ r❡t✉r♥❀

slide-44
SLIDE 44
  • r❛❝❡❢✉❧✲❝❧♦s✐♥❣ ❉t♣

✕ ✷

❣r❛❝❡❢✉❧ ❞t♣

❆✉❣♠❡♥t doRecvDatAck() t♦ ❤❛♥❞❧❡ FIN ❛♥❞ FINACK ❈❤❛♥❣❡ ♣❛rt ❛❢t❡r ✏msg ← xL.recv()✑ t♦✿ ✐❢ ✭♥♦t ❝❧♦s❡❞✮ ✐❢ msg ✐s DAT ♦r ACK✿ ❤❛♥❞❧❡ ❛s ❜❡❢♦r❡ ✐❢ msg ✐s FIN✿ s❡t finRcvd✱ s❡♥❞ [FINACK] ✐❢ msg ✐s FINACK✿ s❡t finAckRcvd ❡❧s❡ ✐❢ ✭❝❧♦s❡❞ ❛♥❞ msg ✐s [FIN]✮ s❡♥❞ [FINACK] ▼♦❞✐❢② mysid.recv r❡t✉r♥ [0,data] ✐❢ nr > nd / / ✐♥❝♦♠✐♥❣ ❞❛t❛ r❡t✉r♥ [-1] ✐❢ finRcvd ❛♥❞ nr = nd / / ♥♦ ♠♦r❡ ✐♥❝♦♠✐♥❣ ❞❛t❛

slide-45
SLIDE 45
  • r❛❝❡❢✉❧✲❝❧♦s✐♥❣ ❉t♣❉✐st✭j✱ k✮

❣r❛❝❡❢✉❧ ❞t♣

❙❛❢❡t② ♣r♦♣❡rt✐❡s ✐❢ j.recv r❡t✉r♥s [0,data]✿ j.drxh ◦ [data] ♣r❡✜①✲♦❢ k.dtxh ✐❢ j.recv r❡t✉r♥s [-1] ♦r j ✐s ❝❧♦s❡❞✿ j.drxh = k.dtxh ❛♥❞ k ✐s ❝❧♦s✐♥❣ ♦r ❝❧♦s❡❞✳ Pr♦❣r❡ss ♣r♦♣❡rt✐❡s j.send ♦♥❣♦✐♥❣ ❧❡❛❞s✲t♦ j.send r❡t✉r♥s j.recv ♦♥❣♦✐♥❣✱ j.drxh = k.dtxh ❧❡❛❞s✲t♦ j.recv r❡t✉r♥s j.recv ♦♥❣♦✐♥❣✱ j.drxh = k.dtxh✱ k ✐s ❝❧♦s✐♥❣ ♦r ❝❧♦s❡❞ ❧❡❛❞s✲t♦ j.recv r❡t✉r♥s j ❝❧♦s✐♥❣✱ k ✐s ❝❧♦s✐♥❣ ♦r ❝❧♦s❡❞ ❧❡❛❞s✲t♦ j ❜❡❝♦♠❡s ❝❧♦s❡❞ ♦r j.recv ♥♦t ♦♥❣♦✐♥❣

slide-46
SLIDE 46

❖✉t❧✐♥❡

❛❜♦rt❛❜❧❡ ❞t♣

❙❧✐❞✐♥❣ ❲✐♥❞♦✇ Pr♦t♦❝♦❧ ❆♥❛❧②s✐s ♦❢ ❙❧✐❞✐♥❣ ❲✐♥❞♦✇ Pr♦t♦❝♦❧ ❆✇❛✐t✲str✉❝t✉r❡❞ ❙♦✉r❝❡ ❛♥❞ ❙✐♥❦ Pr♦❣r❛♠s ❉❛t❛ tr❛♥s❢❡r Pr♦t♦❝♦❧ ❛♥❞ Pr♦♦❢

  • r❛❝❡❢✉❧✲❝❧♦s✐♥❣ ❉❛t❛ tr❛♥s❢❡r Pr♦t♦❝♦❧

❆❜♦rt❛❜❧❡ ❉❛t❛ tr❛♥s❢❡r Pr♦t♦❝♦❧

slide-47
SLIDE 47

❆❜♦rt❛❜❧❡ ❉t♣

❛❜♦rt❛❜❧❡ ❞t♣

  • r❛❝❡❢✉❧✲❝❧♦s✐♥❣ t❡r♠✐♥❛t❡s ❝♦♥♥❡❝t✐♦♥

❜✉t ♥♦t ❞t♣ s②st❡♠s ♦r ❧♦ss②✴❧r❞ ❝❤❛♥♥❡❧ ❝❧♦s❡❞ ❞t♣ s②st❡♠ st✐❧❧ ♥❡❡❞s t♦ r❡s♣♦♥❞ t♦ FIN ❚♦ ❝❧♦s❡ ❞t♣ s②st❡♠s ❛♥❞ ❝❤❛♥♥❡❧✱ ♥❡❡❞ t♦ ♠♦❞✐❢② Dtp ❛❜♦rt ✐❢ FINACK ♥♦t r❝✈❞ ✇✐t❤✐♥ s♦♠❡ K s❡♥❞s ♦❢ FIN ❝❛♥ ❞♦ t❤❡ s❛♠❡ ❢♦r ❞❛t❛ tr❛♥s❢❡r ❛❜♦rt✿ r❡t✉r♥ ❣✉❡st t❤r❡❛❞s✱ r❡tr✐❡✈❡ ❧♦❝❛❧ t❤r❡❛❞s✱ ❡♥❞ s②st❡♠ ❆❜♦rt❛❜❧❡ ❉t♣❉✐st ♣r♦✈✐❞❡s ❛ ✇❡❛❦❡r s❡r✈✐❝❡ ❞❛t❛ ❞❡❧✐✈❡r❡❞ ✐s ♣r❡✜① ♦❢ ❞❛t❛ s❡♥t / / st✐❧❧ ❤♦❧❞s ❛❧❧ ❞❛t❛ s❡♥t ✐s ❞❡❧✐✈❡r❡❞ ✇❤❡♥ ❝❧♦s❡ r❡t✉r♥s ❛❧❧ ❞❛t❛ s❡♥t ✐s ❡✈❡♥t✉❛❧❧② ❞❡❧✐✈❡r❡❞