❘❡❧✐❛❜❧❡ ❚r❛♥s♣♦rt Pr♦t♦❝♦❧ ❙❤❛♥❦❛r ❏✉♥❡ ✶✻✱ ✷✵✶✹
❖✉t❧✐♥❡ ♦✈❡r✈✐❡✇ ❖✈❡r✈✐❡✇ ●r❛❝❡❢✉❧✲❝❧♦s✐♥❣ ❞❛t❛ tr❛♥s❢❡r ♣r♦t♦❝♦❧ ❚r❛♥s♣♦rt ♣r♦t♦❝♦❧ ❞❡s❝r✐♣t✐♦♥ ❚r❛♥s♣♦rt ♣r♦t♦❝♦❧ ♣r♦❣r❛♠✿ ✉♥❜♦✉♥❞❡❞ ❡♥❞♣♦✐♥t ♥✉♠❜❡rs ❚r❛♥s♣♦rt ♣r♦t♦❝♦❧ ♣r♦❣r❛♠✿ ❝②❝❧✐❝ ❡♥❞♣♦✐♥t ♥✉♠❜❡rs ❚r❛♥s♣♦rt ♣r♦t♦❝♦❧ ✇✐t❤ ❛❜♦rt
❚r❛♥s♣♦rt ♣r♦t♦❝♦❧ ♦✈❡r✈✐❡✇ ♦✈❡r✈✐❡✇ v .accept(), v .endServer() ��� ��� j j ��� ��� ��� ��� ��� ��� v .connect(k) j ��� ��� ��� ��� ��� ��� v .tx(k,msg), v .rx(k) j ��� ��� j ��� ��� ��� ��� v .close(k) ��� ��� j j ��� ��� k vj vk TpDist(...) GcDtp GcDtp GcDtp GcDtp Tp(...) Tp(...) c .tx(k,msg), c .rx(k) j k j j ck cj LRD channel ■♠♣❧❡♠❡♥ts r❡❧✐❛❜❧❡ tr❛♥s♣♦rt s❡r✈✐❝❡ ✉s✐♥❣ ▲❘❉ ❝❤❛♥♥❡❧ Tp s②st❡♠ ❛t ❡❛❝❤ ❛❞❞r❡ss
❉✐str✐❜✉t❡❞ ♣r♦❣r❛♠ ♦✈❡r✈✐❡✇ ♣r♦❣r❛♠ TpDist ( ADDR ) // ✐♠♣❧❡♠❡♥ts RelTransportService ( ADDR ) { cj } ← st❛rt LrdChannel(ADDR) ❢♦r j ✐♥ ADDR vj ← st❛rt Tp ( ADDR, j, cj ) r❡t✉r♥ { vj }
❙✐♠✐❧❛r✐t✐❡s ✇✐t❤ ❚❈P ♦✈❡r✈✐❡✇ ❈♦♥♥❡❝t✐♦♥ ❡st❛❜❧✐s❤♠❡♥t ✐♥✈♦❧✈❡s ✸✲✇❛② ❤❛♥❞s❤❛❦❡ ❚♣ j ♠❛✐♥t❛✐♥s ❛♥ ❡♥❞♣♦✐♥t ❢♦r k ♦♥❧② ✇❤✐❧❡ ✐♥t❡r❛❝t✐♥❣ ✇✐t❤ k ♦♣❡♥✐♥❣✱ ♦♣❡♥✱ ♦♣❡♥✲❛♥❞✲❝❧♦s✐♥❣✱ ❝❧♦s❡❞ ♦♣❡♥✐♥❣✿ ❛❝t✐✈❡ ✭✐❢ ❝❧✐❡♥t✮ ♦r ♣❛ss✐✈❡ ✭✐❢ s❡r✈❡r✮ ❊❛❝❤ ❡♥❞♣♦✐♥t ❣❡ts ❛ ✉♥✐q✉❡ ❡♥❞♣♦✐♥t ♥✉♠❜❡r ✇❤❡♥ ❝r❡❛t❡❞ s❛♠❡ r♦❧❡ ❛s ❚❈P✬s ✐♥✐t✐❛❧ s❡q✉❡♥❝❡ ♥✉♠❜❡rs ✐♥❝r❡❛s✐♥❣ ❜✉t ♥❡❡❞ ♥♦t ❜❡ ❝♦♥s❡❝✉t✐✈❡ // ❝❧♦❝❦✱ ❝♦✉♥t❡r ✇❤❡♥ ♦♣❡♥✱ ♠❛✐♥t❛✐♥s ❜♦t❤ ❧♦❝❛❧ ❛♥❞ r❡♠♦t❡ ❡♥❞♣♦✐♥t ♥✉♠❜❡rs ❊♥❞♣♦✐♥t✬s ✹✲t✉♣❧❡✿ [j,k,n,m] // ❛❞❞rs j ✱ k ❀ ❡♥❞♣t ♥✉♠❜❡rs n ✱ m
❉✐✛❡r❡♥❝❡s ✇✐t❤ ❚❈P ♦✈❡r✈✐❡✇ ❈❧❡❛♥ s❡♣❛r❛t✐♦♥ ♦❢ ❝♦♥♥❡❝t✐♦♥ ❡st❛❜❧✐s❤♠❡♥t ❛♥❞ ❞❛t❛ tr❛♥s❢❡r ❈♦♥♥ ❡st❛❜❧✐s❤♠❡♥t ♣r♦✈✐❞❡s ❞❡❞✐❝❛t❡❞ ✈✐rt✉❛❧ ❝❤❛♥♥❡❧ ❜② t❛❣❣✐♥❣ ♠s❣s ✇✐t❤ ❡♥❞♣♦✐♥t✬s ✹✲t✉♣❧❡ ❈❛♥ r✉♥ ❛♥② ❞t♣ ✭❞❛t❛ tr❛♥s❢❡r ♣r♦t♦❝♦❧✮ ♦✈❡r t❤✐s ❢♦r ❝♦♥❝r❡t❡♥❡ss✱ ✉s❡ ❣r❛❝❡❢✉❧✲❝❧♦s✐♥❣ ❞t♣ ✭ GcDtp ✮ ❚♣ s②st❡♠ st❛rts ❛ ❞t♣ s②st❡♠ ✇❤❡♥ ❡♥❞♣♦✐♥t ❜❡❝♦♠❡s ♦♣❡♥ r❡❧❛②s ♠s❣s✿ ❞t♣ s②st❡♠ ↔ ✉s❡r✱ ▲❘❉ ❝❤❛♥♥❡❧ ❈♦♥♥❡❝t r❡q ♠s❣ ✐♥❞✐❝❛t❡s ✇❤❡t❤❡r s❡♥❞❡r ✐s ❝❧✐❡♥t ♦r s❡r✈❡r ❚❈P ❞♦❡s ♥♦t ❞♦ t❤✐s✱ ❛♥❞ ❤❡♥❝❡ ❤❛s ❛ ✢❛✇
❖✉t❧✐♥❡ ❣❝✲❞t♣ ❖✈❡r✈✐❡✇ ●r❛❝❡❢✉❧✲❝❧♦s✐♥❣ ❞❛t❛ tr❛♥s❢❡r ♣r♦t♦❝♦❧ ❚r❛♥s♣♦rt ♣r♦t♦❝♦❧ ❞❡s❝r✐♣t✐♦♥ ❚r❛♥s♣♦rt ♣r♦t♦❝♦❧ ♣r♦❣r❛♠✿ ✉♥❜♦✉♥❞❡❞ ❡♥❞♣♦✐♥t ♥✉♠❜❡rs ❚r❛♥s♣♦rt ♣r♦t♦❝♦❧ ♣r♦❣r❛♠✿ ❝②❝❧✐❝ ❡♥❞♣♦✐♥t ♥✉♠❜❡rs ❚r❛♥s♣♦rt ♣r♦t♦❝♦❧ ✇✐t❤ ❛❜♦rt
●r❛❝❡❢✉❧✲❝❧♦s✐♥❣ ❞t♣✿ r❡✈✐❡✇ ❣❝✲❞t♣ tx, rx, close tx, rx, close j k GcDtp GcDtp GcDtpDist Lossy/Lrd Channel ■♥♣✉t ❢♥s t① (k, data) r① () ✿ r❡t✉r♥s [0, data] ♦r [ − 1] ✭✐❢ ✐♥✲❞❛t❛ ❞♦♥❡✮ ❝❧♦s❡ () ✿ r❡t✉r♥s ✐❢ ❞❛t❛ ①❢r ❞♦♥❡✱ r❡♠♦t❡ ❝❧♦s✐♥❣ ▼s❣s✿ DAT ✱ ACK ✱ FIN ✱ FINACK // FIN s s❡♥t ❜② close ▲♦❝❛❧ t❤r❡❛❞ ❢♥s✿ doTxDat() ✿ s❡♥❞s DAT doRxDatAck() ✿ r❝✈s❀ s❡♥❞s ACK ✱ FINACK
●r❛❝❡❢✉❧✲❝❧♦s✐♥❣ ❞t♣✿ ♣r♦♣❡rt✐❡s ❣❝✲❞t♣ A ✶ : ✐❢ j.rx r❡t✉r♥s [0,db] t❤❡♥ j.drxh ◦ [db] ♣r❡✜①✲♦❢ k.dtxh A ✷ : ✐❢ j.rx r❡t✉r♥s [ − 1] t❤❡♥ j.drxh = k.dtxh ✱ k ❝❧♦s✐♥❣✴❝❧♦s❡❞ A ✸ : ✐❢ j ✐s ❝❧♦s❡❞ t❤❡♥ ♥♦ ♦♥❣♦✐♥❣ j.tx ♦r j.rx ✱ j.drxh = k.dtxh ✱ ❛♥❞ k ❝❧♦s✐♥❣✴❝❧♦s❡❞ A ✹ : ✐❢ j.tx ✐s ♦♥❣♦✐♥❣ t❤❡♥ j.tx r❡t✉r♥s A ✺ : ✐❢ j.rx ♦♥❣♦✐♥❣✱ j.drxh � = k.dtxh ✱ t❤❡♥ j.rx r❡t✉r♥s A ✻ : ✐❢ j.rx ✐s ♦♥❣♦✐♥❣✱ j.drxh = k.dtxh ✱ k ❝❧♦s✐♥❣✴❝❧♦s❡❞ t❤❡♥ j.rx r❡t✉r♥s A ✼ : ✐❢ j ❝❧♦s✐♥❣✱ k ❝❧♦s✐♥❣✴❝❧♦s❡❞ t❤❡♥ j ❜❡❝♦♠❡s ❝❧♦s❡❞ ♦r j.rx ♥♦t ♦♥❣♦✐♥❣
❚✇♦ ♠♦❞✐✜❝❛t✐♦♥s t♦ GcDtp ❣❝✲❞t♣ ❚❡r♠✐♥❛t❡ GcDtp s②st❡♠ ✇❤❡♥ ✐t ❜❡❝♦♠❡s ❝❧♦s❡❞✿ ❢♥ close ✿ ✐♥s❡rt endSystem() ❜❡❢♦r❡ t❤❡ r❡t✉r♥ ♦r✐❣✐♥❛❧✿ doRxDatAck() r❡s♣♦♥❞s t♦ FIN ❡✈❡♥ ✇❤❡♥ ❝❧♦s❡❞ ♥♦✇✿ tp s②st❡♠ ❤❛♥❞❧❡s t❛❦❡s ❝❛r❡ ♦❢ t❤✐s ❘❡♥❛♠❡ ♦✉t♣✉t ❝❛❧❧s✿ c.tx ✱ c.rx → x.dTx ✱ x.dRx ♦r✐❣✐♥❛❧✿ c ✐s ▲r❞ ❝❤❛♥♥❡❧ s✐❞ ♥♦✇✿ c ✐s t♣ s✐❞ // ❛❧r❡❛❞② ❤❛s ✐♥♣✉t ❢♥s tx ✱ rx
❖✉t❧✐♥❡ t♣ ❞❡s❝ ❖✈❡r✈✐❡✇ ●r❛❝❡❢✉❧✲❝❧♦s✐♥❣ ❞❛t❛ tr❛♥s❢❡r ♣r♦t♦❝♦❧ ❚r❛♥s♣♦rt ♣r♦t♦❝♦❧ ❞❡s❝r✐♣t✐♦♥ ❚r❛♥s♣♦rt ♣r♦t♦❝♦❧ ♣r♦❣r❛♠✿ ✉♥❜♦✉♥❞❡❞ ❡♥❞♣♦✐♥t ♥✉♠❜❡rs ❚r❛♥s♣♦rt ♣r♦t♦❝♦❧ ♣r♦❣r❛♠✿ ❝②❝❧✐❝ ❡♥❞♣♦✐♥t ♥✉♠❜❡rs ❚r❛♥s♣♦rt ♣r♦t♦❝♦❧ ✇✐t❤ ❛❜♦rt
❚r❛♥s♣♦rt ♣r♦t♦❝♦❧ ❡♥❞♣♦✐♥ts t♣ ❞❡s❝ ❊♥❞♣♦✐♥t ✭❡♣✮ [ ❥✱ ❦✱ ♥✱ ♠ ] ♠❛✐♥t❛✐♥❡❞ ❛t t♣ ❥ ✇❤✐❧❡ ✐♥t❡r❛❝t✐♥❣ ✇✐t❤ t♣ ❦ ♥✿ ❡♣✬s ❧♦❝❛❧ ♥✉♠❜❡r❀ ≥ ✵ s❡t ❢r♦♠ ✐♥❝r❡❛s✐♥❣ ❝❧♦❝❦✴❝♦✉♥t❡r ✇❤❡♥ ❡♣ ❝r❡❛t❡❞ ♠✿ ❡♣✬s r❡♠♦t❡ ♥✉♠❜❡r❀ − ✶ ✐❢ ✉♥❦♥♦✇♥ r❝✈❞ ❢r♦♠ r❡♠♦t❡ ❡♥❞♣♦✐♥t [ ❦✱ ❥✱ ♠✱ ♥ ] ❊♣ [ ❥✱ ❦✱ ♥✱ ♠ ] ❛❝t✐✈❡ ♦♣❡♥✐♥❣ ✭❛♦♣✮✿ ❥✳❝♦♥♥❡❝t ( ❦ ) ♦♥❣♦✐♥❣ ♣❛ss✐✈❡ ♦♣❡♥✐♥❣ ✭♣♦♣✮✿ ❥✳❛❝❝❡♣t r❡s♣♦♥❞✐♥❣ t♦ ❦✳❝♦♥♥❡❝t ( ❥ ) ♦♣❡♥✿ ❝♦♥♥❡❝t❡❞ t♦ [ ❦✱❥✱♠✱♥ ] ❀ s❡♥❞✴r❝✈ ❞❛t❛ ❝❧♦s✐♥❣✿ ❥✳❝❧♦s❡ ( ❦ ) ♦♥❣♦✐♥❣❀ r❝✈ ❞❛t❛ // st✐❧❧ ♦♣❡♥ ❝❧♦s❡❞✿ ❡♥❞♣♦✐♥t ♥♦ ❧♦♥❣❡r ❡①✐sts
■♥t❡r❛❝t✐♦♥ ❜❡t✇❡❡♥ t♣ s②st❡♠s t♣ ❞❡s❝ ■♥t❡r❛❝t✐♦♥ ❜❡t✇❡❡♥ ❥ ❛♥❞ ❦ ✐s ❛ s✉❝❝❡ss✐♦♥ ♦❢ ❤❛♥❞s❤❛❦❡s ❡❛❝❤ ❝♦♥♥❡❝t✴❝❧♦s❡ r❡q ✐♥✐t✐❛t❡s ❛ ❤❛♥❞s❤❛❦❡ ✷✲✇❛② ❤❛♥❞s❤❛❦❡ ✸✲✇❛② ❤❛♥❞s❤❛❦❡ m1 − → m1 − → ❥ ❦ ← − m2 ← − m2 ❥ ❦ m3 − → ❈❧✐❡♥t✲s❡r✈❡r ❝♦♥♥❡❝t✐♦♥✿ ♦♥❡ ✸✲✇❛② ❤❛♥❞s❤❛❦❡ ❈❧✐❡♥t✲❝❧✐❡♥t ❝♦♥♥❡❝t✐♦♥✿ t✇♦ s✐♠✉❧t❛♥❡♦✉s ✷✲✇❛② ❤❛♥❞s❤❛❦❡s ❈♦♥♥❡❝t r❡❥❡❝t✐♦♥✿ t✇♦ s✐♠✉❧t❛♥❡♦✉s ✷✲✇❛② ❤❛♥❞s❤❛❦❡s ❉❛t❛ tr❛♥s❢❡r✿ ✷✲✇❛② ❤❛♥❞s❤❛❦❡s ❈❧♦s❡✿ t✇♦ ✷✲✇❛② ❤❛♥❞s❤❛❦❡s // ♦♥❡ ❢♦r ❡❛❝❤ ❞✐r❡❝t✐♦♥
Recommend
More recommend