• No results found

4.7 Handshake datagramov´ eho spojen´ı

4.8.2 Negativn´ı potvrzov´ an´ı

| ack_id=16 ack=30 |

+<---+

| |

| pay_id=31 |

+--->+

| |

| ack_id=17 ack=31 |

|

X<---+-| | \

| | } t_err

| pay_id=52 ack_id=18 ack=31 | /

+<---+-| |

. .

Obr´azek 4.31: Pˇr´ıklad ztr´aty paketu s pozitivn´ım potvrzen´ım

4.8.2 Negativn´ı potvrzov´ an´ı

Detekce ztr´aty paket˚u se v nov´em protokolu Verse prov´ad´ı dvˇema zp˚usoby.

Prvn´ı zp˚usob vych´az´ı z p˚uvodn´ıho protokolu Verse 3.3, kdy ztr´ata paketu je detekov´ana pˇr´ıjemcem. Druh´y zp˚usob pouˇz´ıv´a pro detekci ztr´aty paketu Re-transmit Timeout (RTO) interval na stranˇe odes´ılatele paketu. K v´ypoˇctu se pouˇz´ıv´a pomˇernˇe konzervativn´ı metoda popsan´a v [22] zamezuj´ıc´ı zbyteˇcn´emu pˇrepos´ıl´an´ı dat. RTO se vypoˇc´ıt´a ze Smoothed Round Trip Time (SRTT):

SRT T ← RT T, SRT T = 0

α · SRT T + (1 − α) · RT T, SRT T > 0 (4.1) kde RTT pˇredstavuje Round Trip Time, nebo-li aktu´aln´ı ˇcas v sekund´ach, kter´y potˇreboval paket na vykon´an´ı cesty k pˇr´ıjemci a zpˇet. V´ysledn´a hodnota SRTT je v´ysledkem filtrace posledn´ıch hodnot RTT. Hodnota α je konstanta v rozsahu (0, 1), kter´a kontroluje, jak rychle se SRTT adaptuje na zmˇeny RTT. Doporuˇcen´a hodnota pro α je hodnota 0,9. ˇCasovaˇc pro pˇrepos´ıl´an´ı ztracen´ych paket˚u s spoˇc´ıt´a podle vztahu:

RT O = β · SRT T (4.2)

kde β je opˇet konstanta a jej´ı doporuˇcen´a hodnota je 2. K pˇreposl´an´ı paketu dojde v pˇr´ıpadˇe, ˇze paket nen´ı potvrzen v ˇcase kratˇs´ım jak RTO.

Bude uk´az´ano, ˇze detekce ztr´aty paketu na z´akladˇe vyprˇsen´ı ˇcasovaˇce nen´ı pro aplikace sd´ılen´e virtu´aln´ı reality (ASVR) v nˇekter´ych pˇr´ıpadech efektivn´ı.

Pro ASVR je nˇekdy efektivnˇejˇs´ı pouˇz´ıt detekci ztr´aty paketu na stranˇe pˇr´ıjemce, kdyˇz nen´ı doruˇcen paket s oˇcek´avan´ym Payload ID. Tento pˇr´ıpad

detekce se aplikuje v pˇr´ıpadˇe, ˇze RT T  tF P S, jak je vidˇet na obr´azku 4.33a.

tF P S je doba mezi dvˇema sn´ımky. Detekce ztr´aty paketu na z´akladˇe ˇcasovaˇce se naopak aplikuje v pˇr´ıpadˇe, ˇze RT T  tF P S, jak je vidˇet na obr´azku 4.33b.

Pˇr´ıklad detekce ztr´aty paketu na stranˇe pˇr´ıjemce je uveden na obr´azku 4.32.

| pay_id=32 ack_id=27 ank_id=31 ack=52 | +--->X |

| |

| pay_id=33 ack_id=28 ank_id=31 ack=52 | +--->+

| |

| ack_id=19 ank_id=52 nak=32 ack=33 | +<---+

| |

| pay_id=53 ack_id=20 ank_id=52 nak=32 ack=33 | +<---+

| |

. .

. .

Obr´azek 4.32: Pˇr´ıklad negativn´ıho potvrzen´ı

V uveden´em pˇr´ıkladu pˇr´ıjemce (v tomto pˇr´ıpadˇe server) detekuje ztr´atu payload paketu s ID = 32, kdyˇz od odes´ılatele (v tomto pˇr´ıpadˇe klienta) obdrˇz´ı m´ısto oˇcek´avan´eho paketu s ID = 32 paket s ID = 33. Zmˇenu poˇrad´ı paketu prozat´ım neuvaˇzujeme. Server mus´ı okamˇzitˇe informovat kli-enta o ztr´atˇe paketu zasl´an´ım potvrzovac´ıho paketu s pˇr´ıkazy Ack = 33 a N ak = 32. Tyto pˇr´ıkazy mus´ı b´yt pˇribalov´any do vˇsech n´asleduj´ıc´ı paket˚u, dokud odes´ılatel nepotvrd´ı pˇrijet´ı potvrzovac´ıch pˇr´ıkaz˚u pomoc´ı platn´e hod-noty ANK v nˇejak´em n´asleduj´ıc´ım paketu.

Kdyˇz klient obdrˇz´ı informaci o ztr´atˇe paketu, tak by mˇel ztracen´y paket vyvolat z historie odeslan´ych paket˚u a ze ztracen´eho paketu pˇreposlat pouze aktu´aln´ı informace. Klient by nemˇel pˇrepos´ılat napˇr´ıklad zastaralou infor-maci o pozici objektu z paketu ID = 32, kdyˇz pozice objektu byla ´uspˇeˇsnˇe pˇrenesena v paketu ID = 33. Prost´e pˇrepos´ıl´an´ı cel´eho ztracen´eho paketu by

vedlo k nekonzistenci dat na stranˇe klienta a serveru. Mechanismus zajiˇst’uj´ıc´ı v´ybˇer aktu´aln´ıch dat bude detailnˇe probr´an v kapitole 6.

Obr´azek 4.33: Porovn´an´ı metod detekce ztr´aty paketu pro velk´e RTT Kdyˇz by byla pouˇzita pouze detekce ztr´aty paketu pomoc´ı ˇcasovaˇce na datov´em okruhu jehoˇz SRT T = X s, tak by odes´ılatel detekoval ztr´atu paketu za t0 = RT O = 2 · SRT T . Za pˇredpokladu, ˇze by nedoˇslo ke ztr´atˇe pˇreposlan´eho paketu, by pˇr´ıjemce obdrˇzel paket za tc1 = 2 · SRT T + RT T /2.

Kdyˇz je SRT T ∼ RT T , tak v´ysledn´y ˇcas doruˇcen´ı muˇze b´yt aproximov´an pomoc´ı:

tc1 ∼ 2, 5 · RT T

Navrhovan´a detekce ztr´aty paketu poˇc´ıt´a s t´ım, ˇze pakety se ztr´acej´ı nejˇcastˇeji, kdyˇz odes´ılatel pos´ıl´a velk´e mnoˇzstv´ı dat a dojde k zahlcen´ı pˇre-nosov´ych cest. Odes´ılatel mus´ı pos´ılat pakety v pravideln´ych intervalech a ˇ

casov´y rozestup tp mezi jednotliv´ymi pakety mus´ı b´yt tp  RT T , jak je uvedeno na obr´azku 4.33. Za tohoto pˇredpokladu pˇr´ıjemce detekuje ztr´atu paketu za t0 = RT T /2 + tp. Jelikoˇz pˇr´ıjemce mus´ı okamˇzitˇe odeslat potvr-zen´ı o ztr´atˇe paketu a odes´ılatel ztracen´y paket, tak zpoˇzdˇen´ı vznikl´e zpra-cov´an´ım lze zanedbat a lze tvrdit, ˇze pˇr´ıjemce obdrˇz´ı pˇreposlan´y paket za tc2 = RT T /2 + tp + RT T . V´ysledn´y ˇcas doruˇcen´ı m˚uˇze b´yt aproximov´an pomoc´ı:

tc2 ∼ 1, 5 · RT T

Z obr´azku 4.33 je patrn´e, ˇze detekce na stranˇe pˇr´ıjemce (a) umoˇzˇnuje za dan´ych podm´ınek detekovat ztr´atu rychleji neˇz pomoc´ı RTO (b). Nav´ıc ztr´ata vˇsech paket˚u je detekovan´a najednou a nikoliv postupnˇe jako je tomu v pˇr´ıpadˇe detekce pomoc´ı RTO.

Obr´azek 4.34: Porovn´an´ı metod detekce ztr´aty paketu pro mal´e RTT Na druhou stranu m˚uˇze b´yt i RT T  tF P S, coˇz je uvedeno v pˇr´ıkladˇe na obr´azku 4.34. V takov´em pˇr´ıpadˇe m˚uˇze b´yt znaˇcnˇe neefektivn´ı detekovat ztr´atu paketu na stranˇe pˇr´ıjemce, protoˇze odes´ılatel m˚uˇze detekovat ztr´atu paketu pomoc´ı RTO (b) mnohem dˇr´ıve neˇz to umoˇzˇnuje p˚uvodn´ı metoda (a).

Klientsk´a aplikace totiˇz v mnoha pˇr´ıpadech nezas´ıl´a pakety v pravideln´ych intervalech, ale pakety jsou zas´ıl´any v kr´atk´ych shluc´ıch a ˇcasov´e rozestupy mezi shluky tF P S odpov´ıdaj´ı FPS pouˇz´ıvan´e danou aplikac´ı. Klientsk´a apli-kace nav´ıc ˇcasto nem´a potˇrebu pos´ılat v´ıce jak jeden paket za tF P S.

Obˇe navrhovan´e metody mohou fungovat souˇcasnˇe a vˇzdy se uplatn´ı me-toda, kter´a detekuje ztr´atu paketu dˇr´ıve. Duplicitn´ımu pˇreposl´an´ı zabraˇnuje skuteˇcnost, ˇze pˇri detekci ztr´aty paketu je ztracen´y paket odstranˇen z his-torie. Kdyˇz odes´ılatel obdrˇz´ı pˇr´ıkaz Nak obsahuj´ıc´ı ID, kter´e se nenach´az´ı v historii odeslan´ych paket˚u (ztr´ata paketu byla detekov´ana ˇcasovaˇcem, nebo odes´ılatel jiˇz obdrˇzel tento pˇr´ıkaz Nak ), tak tento pˇr´ıkaz mus´ı ignorovat.