Pakettkommutatsiooniga võrgu latentsusaeg

**Pakettkommutatsiooniga võrgu latentsusaeg** on aeg, mis kulub andmepaketi saatmiseks ühest võrgupunktist teise. Latentsusaeg koos ribalaiusega (ingl *bandwidth*) defineerivad võrgu kiirust ja võimsust. 

Mõõtmiseks kasutatakse kas ühesuunalist või edasi-tagasi viivitusaega. Ühesuunaliseks latentsusajaks on paketi saatmise lähtepunktist ja selle kättesaamise sihtpunktis vaheline ajavahemik. Edasi-tagasi latentsusajaks on ühesuunaline latentsusaeg lähtepunktist sihtpunkti pluss ühesuunaline latentsusaeg sihtpunktist lähtepunkti. Enamasti mõõdetakse edasi-tagasi latentsusaega, mida saab mõõta ühest masinast.

Paljudel tarkvaraplatvormidel on olemas teenus ping, mille abil saab latentsusaega mõõta. Pingimisteenus ei teosta paketi töötlemist; paketi saamise korral see saadab kohe vastuspaketi tagasi. Pingimisteenuse abil ei saa teha täpseid mõõtmisi. Põhjuseks on ICMP protokolli kasutamine, mille eesmärgiks on süsteemi diagnoosimine ja kontroll. 

Täpsete mõõtude saamiseks on soovitatav kasutada selleks ette nähtud tarkvara.

## Latentsusaja komponendid
Latentsusaeg koosneb järgmistest komponentidest: 

# Aeg, mis kuluks andmete edastamiseks ühest punktist teise valguse kiirusega.
# Keskkonnast (kiudoptiline kaabel, raadiokanal, traatliinid vms) põhjustatud viide.
# Marsruuterites ja lüüsides tekkiv viide. Iga lüüsisõlm vajab mingit aega, et uurida ja vajaduse korral muuta paketi päist.
# Sihtpunkti arvutis tekkiv viide, kui pakett salvestatakse kõvakettale ja loetakse sealt jälle välja, samuti viited kommutaatorites ja sildades.

## Latentsusaeg Internet-kommunikatsiooniga mängudes
Internet-kommunikatsiooniga (ingl *[[Onlain ja offlain|online]]*) mängud on väga tundlikud latentsusaegale, eriti need mängud, mille tempo on kiire ja tegevusaeg on piiratud. Tihtipeale väikese latentsusajaga mängimine on autasustatud ja suurega karistatud.  

### Partner võrguarhitektuur
*Online*-mängude sünniajal oli kasutusel partner võrguarhitektuur (ingl *peer-to-peer*), mida tänapäevaselt kasutatakse harvasti. Põhjusteks on eksponentsiaalselt raske mängu deterministlikkuse tagamine, mängijate sünkroonimise vajadus ning ka see, et iga mängija käsud peaksid olema saadud enne järgmist käiku (mis tähendab, et iga mängija latentsusaeg on võrdne kõige suurima latentsusajaga mängijale).  

### Kliendi-serveri võrguarhitektuur
Kõige levinum *online*-mängude võrguarhitektuuriks on klient-server arhitektuur (ingl *client-server*), mille põhimõtteliselt ainus piirang on mängijate latentsusaeg. Klient-server arhitektuuri põhiprintsiip on see, et on olemas arvuti-server, kus jookseb tegelik mänguprotsess, mille kaudu mängijad (kliendid) saavad teineteisega suhelda. mängijate arvutites jooksevad klientmängud on tavaliselt graafilised representatsioonid sellest, mida toimub serveris. Latentsusaeg põhjustab seda, et iga mängija näeb oma mängu klientrakenduses teisi mängijaid n-ö minevikus.  

Näiteks, kui mängija A vajutab aktiivse nuppu peale, mida server peab edastama teistele mängijatele, siis selle registreerimine serveril toimub peale mängija A ja serveri ühesuunalise latentsusaega. Server omakorda saadab selle informatsiooni edasi mängijale B, mis jõuab mängijani B peale serveri ja mängija B ühesuunalise latentsusaega. *Online-*mängude latentsusaega probleemi heaks näideks on situatsioon tulistamismängudes, kus mängija A just peidis ennast seina taga, ning mängija B tulistab ja tabab mängijat A enda kliendis (kus ta näeb, et mängija A ei ole veel seina taga peitnud). See probleem ei ole täielikult lahendatud ning seetõttu erinevate mängijate erinev latentsusaeg on peamine takistus ja puudus *online-*mängudes. 

## Viited