39
SVEUC ˇ ILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA ZAVRŠNI RAD br. 5791 Procjena performansi usluga strujanja igara uživo na osnovu analize kriptiranog prometa uporabom metoda strojnog učenja Blaž Planinić Zagreb, lipanj 2018.

Procjena performansi usluga strujanja igara uživo na ... Planinic 2018.pdf · Gaming. Koliko je popularno strujanje igara uživo, govore i same brojke. Tako Twitch kaže da trenutno

  • Upload
    others

  • View
    9

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Procjena performansi usluga strujanja igara uživo na ... Planinic 2018.pdf · Gaming. Koliko je popularno strujanje igara uživo, govore i same brojke. Tako Twitch kaže da trenutno

SVEUC ILIŠTE U ZAGREBU

FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA

ZAVRŠNI RAD br. 5791

Procjena performansi usluga strujanja igara uživo na osnovu

analize kriptiranog prometa uporabom metoda strojnog

učenja

Blaž Planinić

Zagreb, lipanj 2018.

Page 2: Procjena performansi usluga strujanja igara uživo na ... Planinic 2018.pdf · Gaming. Koliko je popularno strujanje igara uživo, govore i same brojke. Tako Twitch kaže da trenutno
Page 3: Procjena performansi usluga strujanja igara uživo na ... Planinic 2018.pdf · Gaming. Koliko je popularno strujanje igara uživo, govore i same brojke. Tako Twitch kaže da trenutno
Page 4: Procjena performansi usluga strujanja igara uživo na ... Planinic 2018.pdf · Gaming. Koliko je popularno strujanje igara uživo, govore i same brojke. Tako Twitch kaže da trenutno

Sadržaj

1. Uvod ............................................................................................................. 1

2. Strujanje video sadržaja ............................................................................. 3

2.1. Prilagodljivo strujanje putem protokola HTTP ..................................... 3

2.2. Strujanje video sadržaja uživo ............................................................. 4

2.3. Platforma Twitch.tv .............................................................................. 4

3. Iskustvena kvaliteta ..................................................................................... 7

3.1. Definicija iskustvene kvalitete .............................................................. 7

3.2. Iskustvena kvaliteta usluga video strujanja ......................................... 8

4. Metodologija rada ........................................................................................ 9

4.1. Laboratorijsko okruženje ..................................................................... 9

4.2. Korišteni alati ..................................................................................... 10

4.2.1. Alat tcpdump ............................................................................ 10

4.2.2. IMUNES ................................................................................... 11

4.2.3. JavaScript ................................................................................ 11

4.2.4. Weka ........................................................................................ 12

4.3. Priprema podataka za analizu ........................................................... 12

4.3.1. Prikupljanje podataka ............................................................... 13

4.3.1.1. Prikupljanje podataka s aplikacijske razine ........................ 13

4.3.1.2 Prikupljanje mrežnog prometa ............................................ 15

4.3.2. Obrada prikupljanih podataka .................................................. 16

4.4. Strojno učenje ................................................................................... 17

5. Analiza rezultata ........................................................................................ 19

6. Zaključak .................................................................................................... 22

7. Literatura .................................................................................................... 23

8. Sažetak ....................................................................................................... 25

9. Summary .................................................................................................... 26

10. Dodaci ........................................................................................................ 27

10.1 Dodatak: Popis Slika ........................................................................ 27

Page 5: Procjena performansi usluga strujanja igara uživo na ... Planinic 2018.pdf · Gaming. Koliko je popularno strujanje igara uživo, govore i same brojke. Tako Twitch kaže da trenutno

10.2 Dodatak: Popis Tablica .................................................................... 28

10.3 Dodatak A: Skripta za prikupljanje podataka s aplikacijske razine ... 29

10.4 Dodatak B: Skripta za parsiranje podataka s aplikacijske razine ..... 29

Page 6: Procjena performansi usluga strujanja igara uživo na ... Planinic 2018.pdf · Gaming. Koliko je popularno strujanje igara uživo, govore i same brojke. Tako Twitch kaže da trenutno

1

1. Uvod

U današnje vrijeme, jedan od najpopularnijih oblika zabave jest igranje

višemedijskih videoigara. Ljudi zamjenjuju odmor i tradicionalna druženja igranjem

videoigara, te im to zapravo predstavlja bijeg od svakodnevnih problema i

razmišljanja. Prema statističkim podacima, u 2017. godini 65% kućanstava sadrži

uređaj za igranje videoigara, a prosječna dob igrača (eng. gamer) je 35 godina [1].

Videoigre je moguće igrati na različitim uređajima, kao što su: osobno računalo (eng.

personal computer, PC), PlayStation, Xbox, osobni mobitel i mnogi drugi.

Međutim, u novije vrijeme sve popularnije postaje i takozvano strujanje (engl.

streaming) videoigara uživo u kojem igrači dijele svoj video sadržaj igre koju igraju

s drugima na Internetu. Trenutno među vodećim platformama u Europi i Americi

koje nude igračima uslugu dijeljenja sadržaja videoigara su Twitch i YouTube

Gaming. Koliko je popularno strujanje igara uživo, govore i same brojke. Tako

Twitch kaže da trenutno broji preko 2 milijuna aktivnih ljudi koji streamaju, te preko

15 milijuna dnevno aktivnih korisnika [2][3].

Dakle, usluge video strujanja danas čine dominantni udio ukupnog prometa

na Internetu [13]. Najveći dio tog prometa povezan je s popularnim uslugama

temeljenim na prilagodljivom strujanju putem protokola HTTP. Davatelji mrežnih

usluga uglavnom nemaju uvid u performanse i parametre kvalitete video tokova koji

prolaze njihovom mrežom, obzirom da je promet često kriptiran.

Cilj ovog rada je prikupljanje i snimanje podataka sa mrežne i aplikacijske

razine usluge Twitch prilikom strujanja igara uživo kako bi se razvio model temeljen

na tehnici strojnog učenja kojim bi se testiralo do koje se mjere performanse na

razini aplikacije mogu procijeniti na temelju prometnih značajki.

Ovaj rad sastoji se od 6 poglavlja. U drugom poglavlju ukratko je opisano

strujanje video sadržaja uživo, platforma Twitch.tv i njezina svrha. Također su

opisane tehnike kojima se koristi Twitch.tv za strujanje videoigara uživo. Tako je

opisano prilagodljivo strujanje putem protokola HTTP.

U trećem poglavlju objašnjen je pojam iskustvene kvalitete i njezinog

značenja danas. Osim iskustvene kvalitete opisana je i kvaliteta usluge, te koja je

razlika između njih. Također je opisan jedan od načina mjerenja iskustvene kvalitete

Page 7: Procjena performansi usluga strujanja igara uživo na ... Planinic 2018.pdf · Gaming. Koliko je popularno strujanje igara uživo, govore i same brojke. Tako Twitch kaže da trenutno

2

te koji su to parametri koji utječu na iskustvenu kvalitetu.

U sljedećem poglavlju objašnjena je metodologija rada, odnosno način

prikupljanja i pripreme podataka s mrežne i aplikacijske razine te je opisana

arhitektura sustava koja je bila korištena pri mjerenju. Također su objašnjeni

korišteni alati koji su bili potrebni u mjerenju i prikupljanju podataka.

U petom poglavlju opisana je analiza prikupljenih podataka. Podaci su

obrađeni i pripremljeni za stvaranje modela strojnog učenja, te se analizira koliko je

moguće na osnovu mrežnih parametara procijeniti aplikacijske parametre, odnosno

parametre iskustvene kvalitete.

Na samom kraju rada slijede zaključak, popis korištene literature, sažetak na

hrvatskom i engleskom jeziku te dodaci s popisom slika, popisom tablica i

napravljenim skriptama.

Page 8: Procjena performansi usluga strujanja igara uživo na ... Planinic 2018.pdf · Gaming. Koliko je popularno strujanje igara uživo, govore i same brojke. Tako Twitch kaže da trenutno

3

2. Strujanje video sadržaja

U ovom poglavlju opisana je platforma Twitch.tv, njezin nastanak i razvoj sve

do danas. Također su opisane tehnike kojima se Twitch.tv služi u strujanju video

sadržaja uživo koje je isto tako ukratko objašnjeno.

2.1. Prilagodljivo strujanje putem protokola HTTP

Prilagodljivo strujanje putem protokola HTTP (eng. HTTP adaptive

streaming) je jedan od najčešće korištenih tehnologija kod platformi koje se bave

prikazivanjem video zapisa. Ovaj protokol je kombinacija učitavanja (eng. download)

i istovremenog prikazivanja video sadržaja. Podaci video zapisa se prenose do

korisnika putem HTTP veze gdje se pohranjuju u aplikacijski spremnik (eng. buffer).

Kada je dovoljna količina podataka skinuta, odnosno pohranjena u buffer, video će

se pokrenuti. Sve dok ima podataka u buffer-u video će se prikazivati, a u suprotnom

video će zastati (eng. stalling) i pričekati dok se buffer ponovno ne napuni dovoljnom

količinom podataka potrebnom da bi se video počeo reproducirati. Ovo će se

događati kada su uvjeti u mreži loši, te je potrebno više vremena za skidanje

podataka. Kvaliteta, odnosno rezolucija videa se automatski prilagođava uvjetima u

mreži. Tako, kada su uvjeti dobri video teži biti reproduciran na što većoj kvaliteti, a

u suprotnom u što manjoj kvaliteti samo da ne dođe do zastoja [20]. Slika 1 prikazuje

kako se kvaliteta video zapisa prilagođava dinamičkim uvjetima u mreži. Video zapis

na poslužitelju je pohranjen u obliku različitih segmenata određene veličine, duljine

i kvalitete. Dakle, video zapis se pohranjuje u raznim verzijama koje se razlikuju po

kvaliteti, odnosno mogu biti različite rezolucije ili brzine kodiranja (eng. bitrate).

Svaka verzija videa podijeljena je u segmente koji obično traju otprilike dvije do

deset sekundi, te se učitava segment po segment. Kada klijent procijeni da je pala

propusnost mreže (Slika 1), sljedeći segmenti će se slati u nižoj kvaliteti.

Page 9: Procjena performansi usluga strujanja igara uživo na ... Planinic 2018.pdf · Gaming. Koliko je popularno strujanje igara uživo, govore i same brojke. Tako Twitch kaže da trenutno

4

Slika 1 - Prilgodljivo strujanje putem protokola HTTP

2.2. Strujanje video sadržaja uživo

Danas, strujanje video sadržaja uživo jedna od najdominantijih usluga na

Internetu. Prema istraživanjima, najveći dio prometa na Internetu otpada na

gledanje video zapisa i video zapisa uživo. Predviđa se da će video, bio uživo ili ne,

zauzimati 78% svijetskog prometa na Internetu do 2021. godine [13]. Strujanje video

sadržaja uživo koristi se u svim područjima života, od streamanja nogometnih

utakmica i velikih događanja pa sve do streamanja vlastitih zbivanja koje želimo

podijeliti s drugima. Tako strujanje video sadržaja uživo koriste i nude svojim

korisnicima jedne od najpopularnijih društvenih mreža danas, Facebook i Instagram

[21][22].

Jedna od glavnih značajki strujanja video sadržaja uživo je da ono zaista

bude uživo, odnosno da se video koji snima igrač prenese do gledatelja bez

kašnjenja. No nažalost to nije ostvarivo te uvijek postoji kašnjenje (eng. latency).

Kašnjenje je vrijeme koje protekne od trenutka kada se neki događaj u videu dogodi

do trenutka kada gledatelj taj događaj vidi. Nastoji se da kašnjenje bude što manje

te da video bude što više u stvarnom vremenu (eng. real time). Nažalost Twitch.tv

ne omogućuje svojim gledateljima premotavanje videa unazad za vrijeme gledanja

video sadržaja uživo, a video je nakadno moguće vidjeti samo ako streamer pohrani

prethodno snimljen video na svoj račun (eng. account) na Twitch.tv-u.

2.3. Platforma Twitch.tv

Twitch je trenutno jedna od vodećih platformi u svijetu videoigara koja služi

za dijeljenje i prikazivanje video sadržaja igrača. Platforma je osnovana u lipnju

Page 10: Procjena performansi usluga strujanja igara uživo na ... Planinic 2018.pdf · Gaming. Koliko je popularno strujanje igara uživo, govore i same brojke. Tako Twitch kaže da trenutno

5

2011. godine, a trenutni vlasnik je tvrtka Amazon koja ga je kupila 2014. godine za

skoro milijardu dolara [9]. Twitch je prvotno bio dio Justin.tv platforme koja je

osnovana 2007. godine i koja je bila podjeljena u nekoliko kategorija. Kako je interes

za gaming kategoriju rastao jako brzo, kompanija je odlučila osnovati posebnu

platformu za istoimenu kategoriju, te je tako nastao Twitch.tv [10]. Prema podacima

iz ožujka 2018. godine, broj zaposlenih bio je preko 1000 [10].

Twitch je platforma napravljena za igrače koji dijele svoj video sadržaj s

drugima i za one koji taj sadržaj žele gledati. Pritom, igrači koji dijele svoj sadržaj s

drugima, imaju mogućnost komentiranja svoje igre (eng. gameplay) i istovremenog

prikazvanja sebe dok igraju. Također Twitch omogućuje igračima šansu da kroz

svoju strast za igranjem nešto i zarade. Igrač može zaraditi na više načina. Jedan

je taj da po broju svojih novih pretplatnika (eng. subscribers) mjesečno zaradi

određeni iznos, a drugi je da ga njegovi gledatelji doniraju. Donirati se može

proizvoljan iznos, pa se tako donacije kreću od jednog dolara pa sve do nekoliko

stotinjaka dolara. Kako mlade generacije vide mogućnost lake zarade, svakim

danom ima sve više i više novih streamera, no ipak samo rijetki uspiju. Gledatelji

svoje omiljene streamer-e mogu gledati putem aplikacije koja je dostupna za

Android i za iOS mobilne uređaje, te putem Internet preglednika [11]. U ovom radu

video zapisi će se gledati putem Internet pregledinika Google Chrome.

Twitch, kao i platforma YouTube, za prikazivanje videa koristi tehniku

prilagodljivog strujanja putem protokola HTTP. Ova tehnika prilagodljivog strujanja

detaljnije je opisana u poglavlju 2.1. Slika 2 prikazuje postavke potrebne za

emitiranje (eng. braodcast) na Twitch.tv-u. Tako se može vidjeti da Twitch korisiti

H.264 kodek (eng. codec) za kodiranje video sadržaja.

Page 11: Procjena performansi usluga strujanja igara uživo na ... Planinic 2018.pdf · Gaming. Koliko je popularno strujanje igara uživo, govore i same brojke. Tako Twitch kaže da trenutno

6

Slika 2 - Twitch.tv potrebne postavke [11]

Page 12: Procjena performansi usluga strujanja igara uživo na ... Planinic 2018.pdf · Gaming. Koliko je popularno strujanje igara uživo, govore i same brojke. Tako Twitch kaže da trenutno

7

3. Iskustvena kvaliteta

U ovom poglavlju objašnjen je pojam iskustvene kvalitete i njezinog značenja

danas. Osim iskustvene kvalitete opisana je i kvaliteta usluge, te koja je razlika

između njih. Također je opisan jedan od načina mjerenja iskustvene kvalitete te koji

su to parametri koji utječu na iskustvenu kvalitetu.

3.1. Definicija iskustvene kvalitete

Iskustvena kvaliteta (eng. Quality of Experience, QoE) relativno je novi

koncept koji se bavi mjerenjem razine korisničkog zadovoljstva korištenjem

određene usluge ili proizvoda [14]. Sve većim razvojem višemedijskih usluga,

naglasak s tehnologije pomaknuo se na korisnike i njihove zahtjeve. Kako je danas

velik broj različitih usluga, a svakim danom izlaze nove, iskustvena kvaliteta je

otvoreno područje istraživanja. Nažalost, zbog subjektivnosti iskustvene kvalitete

nemoguće je definirati gotov model za mjerenje iskustvene kvalitete koji bi vrijedio

za sve telekomunikacijske usluge, ali je zato moguće definirati pojedine modele za

procjenu iskustvene kvalitete za različite tipove usluga.

Iskustvena kvaliteta nastala je kao nadopuna kvalitete usluge (eng. Quality

of Service, QoS). Međunarodna unija za telekomunikaciju (eng. International

Telecommunication Union, ITU) definira QoS kao ukupan efekt performansi

određene usluge koja se određuje zadovoljstvom krajnjeg korisnika [12]. Dakle, cilj

je osigurati uvjete u mreži i na razini usluge takve da se zadovolje očekivanja i

zahtjevi krajnjeg korisnika u smislu iskustvene kvalitete.

Kao što je već rečeno, iskustvena kvaliteta jest subjektivna mjera koja se

oslanja na korisnička mišljenja. Kod takvih se mjerenja najčešće koristi ljestvica

srednje ocjene kvalitete (eng. Mean Opinion Score, MOS). MOS vrijednosti se

izražavaju pomoću ACR (eng. Absolute Category Rating) ljestvice (Tablica 1). No

mora se naglasiti kako ni ova mjera nije najbolja za ocjenu kvalitete usluge jer

različiti su kriteriji ocjenjivanja pojedinih korisnika [15].

Page 13: Procjena performansi usluga strujanja igara uživo na ... Planinic 2018.pdf · Gaming. Koliko je popularno strujanje igara uživo, govore i same brojke. Tako Twitch kaže da trenutno

8

Tablica 1 - MOS vrijednosti

Ocjena Opis

5 Odlično

4 Dobro

3 Prihvatljivo

2 Loše

1 Vrlo loše

3.2. Iskustvena kvaliteta usluga video strujanja

Prilikom gledanja videa postoje mnogi parametri koji utječu na iskustvenu

kvalitetu. Ti parametri zovu se ključni pokazatelji uspješnosti (eng. Key Performance

Indicators, KPI). Neki od njih su početno kašnjenje (eng. inital delay), zastajkivanje

(eng. stalling), postotak video zapisa prikazanog na određenoj rezoluciji i mnogi

drugi. U nastavku su ukratko opisani navedeni KPIevi.

Početno kašnjenje je jedan od najprisutnijih KPIeva koji utječu na

iskustvenu kvalitetu prilikom gledanja video zapisa. Sve dok se dovoljno podataka

ne prikupi u buffer video se neće pokrenuti. Dakle, vrijeme proteklo od trenutka kada

korisnik pokrene video reprodukciju do trenutka kada ta reprodukcija zaista krene

naziva se početno kašnjenje.

Zastajkivanje je slično kao i početno kašnjenje, no ono se ne manifestira na

početku videa, već nakon što video krene s reprodukcijom. Događa se kada se

buffer isprazni te nema dovoljno podataka za daljnju reprodukciju videa. Vrijeme

potrebno da se buffer ponovno dovoljno napuni i da video nastavi s reprodukcijom

naziva se vremenom zastajkivanja (eng. stalling duration).

Kvaliteta video zapisa je isto jedan od faktora koji najviše utječu na

iskustvenu kvalitetu. Segmenti video zapisa mogu se razlikovati po kvaliteti

primjerice u smislu rezolucije ili brzine kodiranja. Što je postotak ukupnog videa

prikazanog na višoj rezoluciji veći, to će i iskustvena kvaliteta u pravilu biti bolja.

Page 14: Procjena performansi usluga strujanja igara uživo na ... Planinic 2018.pdf · Gaming. Koliko je popularno strujanje igara uživo, govore i same brojke. Tako Twitch kaže da trenutno

9

4. Metodologija rada

U ovom poglavlju je opisan način mjerenja i prikupljanja podataka s

aplikacijske i mreže razine u laboratoriju koji su nam potrebni za kasnije razvijanje

modela putem metoda strojnog učenja (Slika 3). Podaci s aplikacijske razine (npr.

timestamp, naslov videa, trenutna veličina buffera itd.) se prikupljaju putem

platforme Twitch.tv, prilikom gledanja video igara uživo, koja nudi opciju detalja

videa (eng. Show video stats), što je opisano u poglavlju 2.3. Obradom prikupljenih

podataka s aplikacijske razine dobivamo KPIeve (u ovom radu samo početno

kašnjenje) koji predstavaljaju podatke koji utječu na razinu zadovoljstva korisnika.

Podaci s mrežne razine zajedno s KPIevima čine skup podataka za razvijanje

modela strojnog učenja. Prilikom prikupljanja podataka, uvjeti u mreži su kontrolirani

pomoću skripte u IMUNES-u [4] koja svake sekunde mijenja karakteristike mreže,

što je detaljnije opisano u poglavlju 4.3.

Slika 3 - Prikupljanje i priprema podataka

4.1. Laboratorijsko okruženje

Prilikom prikupljanja podataka korištena su tri računala koja imaju pristup

Internetu te uređaj Net.Shark koji služi za repliciranje mrežnog prometa [16]. Slika

4 prikazuje postrojenje u laboratoriju.

Računalo br.1 u sebi sadrži dvije mrežne kartice, od kojih je jedna povezana

izravno na Internet, a druga na lokalni usmjeritelj (eng. router). Ono pokreće

operacijski sustav FreeBSD na kojem je instaliran program IMUNES [4] pomoću

kojeg se manipulira propusnost mrežne poveznice. Računalo br.1 je dalje spojeno

na uređaj Net.Shark koji samo služi za kopiranje podataka mrežnog prometa na

Page 15: Procjena performansi usluga strujanja igara uživo na ... Planinic 2018.pdf · Gaming. Koliko je popularno strujanje igara uživo, govore i same brojke. Tako Twitch kaže da trenutno

10

računalo br.2. Računalo br.2 pokreće operacijski sustav Linux te ono preko

programskog alata tcpdump snima i sprema mrežni promet u obliku .pcap datoteke.

Računalo br.3 pokreće operacijski sustav Windows 10 na kojem se preko

preglednika Google Chrome gleda strujanje igrara uživo putem platforme Twitch.tv.

Računalo je spojeno na lokalni usmjeritelj, koji je preko Računala br.1 spojeno na

Internet.

Slika 4 - Laboratorijsko okruženje

4.2. Korišteni alati

U ovom potpoglavlju opisani su alati koji su korišteni kao pomoć u izradi

ovog završnog rada.

4.2.1. Alat tcpdump

Tcpdump je jedan od najrasprostranjenijih besplatnih alata koji se pokreće

pomoću komande linije, a služi za prikaz i prikupljanje mrežnih podataka, odnosno

TCP/IP i ostalih paketa koji su primljeni ili poslani na mreži na kojoj je računalo

spojeno [17]. Alat je moguće instalirati i koristiti na različitim operacijskim sustavim,

kao što su Linux, Solaris, BSD, macOS i drugi [6].

Tcpdump nudi mogućnost ispisa podataka mreže u izlaznu datoteku koja je

oblika .pcap (Slika 10).

Page 16: Procjena performansi usluga strujanja igara uživo na ... Planinic 2018.pdf · Gaming. Koliko je popularno strujanje igara uživo, govore i same brojke. Tako Twitch kaže da trenutno

11

4.2.2. IMUNES

IMUNES (eng. Multiprotocol Network Emulator/Simulator, IMUNES) je alat

pomoću kojeg se može manipulirati mrežnim parametrima [4]. On nudi interaktivno

grafičko sučelje (eng. Graphical User Interface, GUI) za prikaz topologije mreže koja

se onda može emulirati, odnosno simulirati u realnom vremenu [5]. IMUNES je

temeljen na operacijskim sustavima Linux i FreeBSD [4].

Slika 5 prikazuje shemu u IMUNES-u koja se odnosi na računalo (Računalo

br.1 , Slika 4) s dvije mrežne kartice koje koristimo za prikupljanje podataka u ovom

radu. Jedna mrežna kartica spojena je izravno na Internet, a druga mrežna kartica

je spojena preko Net.Shark-a u lokalni usmjeritelj. Promet se sa sučelja koje je

spojeno na Internet preusmjerava na sučelje koje je spojeno na usmjeritelj.

Slika 5 - Shema u IMUNES-u koja se koristi tijekom prikupljanja podataka

Jedna od najznačajnijih mogućnosti koje nudi IMUNES su postavke

ograničenja na propusnost mrežnog prometa (eng. bandwidth). U ovom radu koristit

će se 5 različitih skripti koje generiraju različite propusnosti u mreži što je detaljnije

opisano u sljedećim poglavljima.

4.2.3. JavaScript

JavaScript (JS) je skriptni programski jezik sličan Javi koji se prvi put pojavio

1995. godine te se razvija sve do danas. Zadnja stabilna verzija JavaScripta je izašla

2017. godine. Jezik je poseban po tome što se izvršava u Internet pregledniku (eng.

Web browser) na strani korisnika, a ne na poslužitelju (eng. Server) [7]. JavaScript

omogućuje različite stvari, kao što su mijenjanje sadržaja prikazane Internet

stranice, rad s animacijama, dohvat informacija o Internet stranici, validaciju

različitih formi i mnoge druge [18].

Pomoću JavaScript-a u ovome radu će se napisati skripta koja prikuplja

Page 17: Procjena performansi usluga strujanja igara uživo na ... Planinic 2018.pdf · Gaming. Koliko je popularno strujanje igara uživo, govore i same brojke. Tako Twitch kaže da trenutno

12

podatke s aplikacijske razine. Skripta se nalazi na kraju rada (Dodatak A) te je

detaljnije opisana u poglavlju 4.3.

4.2.4. Weka

Weka (eng. Waikato Environment For Knowledge Analysis) je programski

alat napisan u jeziku Java koji sadrži kolekciju algoritama strojnog učenja za

obavljanje posla dubinske analize podataka (eng. Data mining) [18]. Alat je razvijen

na Sveučilištu Waikato u Novom Zelandu. Weka uključuje cijeli niz postupaka za

pripremu podataka te neke mogućnosti za vizualizaciju dobivenih rezultata.

Algoritmi u Weka-i mogu biti direktno primjenjeni na skup podataka (kao što će se

koristiti u ovom radu) ili pozvani iz vlastitog Java programa, odnosno koda. Slika 6

prikazuje izgled grafičkog sučelja programskog alata Weka-e.

Slika 6 - Weka programski alat: primjer grafičkog sučelja

4.3. Priprema podataka za analizu

U ovom potpoglavlju opisan je način prikupljanja podataka, odnosno osnovne

informacije i upute kako su podaci prikupljani. Također je opisana obrada

prikupljenih podataka pripremljenih za daljnju analizu, odnosno za generiranje

modela strojnog učenja.

Page 18: Procjena performansi usluga strujanja igara uživo na ... Planinic 2018.pdf · Gaming. Koliko je popularno strujanje igara uživo, govore i same brojke. Tako Twitch kaže da trenutno

13

4.3.1. Prikupljanje podataka

Potrebno je istovremeno prikupiti podatke s aplikacijske i mrežne razine.

Prikupljat će s podaci o 100 različitih video zapisa. Prilikom prikupljanja podataka

mrežni uvjeti su kontrolirani pomoću 5 različitih skripti koje se pokreću u

programskom alatu IMUNES [4] na računalu br.1 (Slika 4). Skripte smanjuju

propustnost mreže, od kojih neke predstavljaju bolje, a neke lošije uvjete u mreži.

Skripte koriste dnevnike koje manipuliraju raspoloživim prijenosnim pojasom

objavljenje u [28]. Svaka skripta traje 5 sati te kada dođe do kraja počinje ponovno

ispočetka i tako sve dok se ručno ne prekine. Kao što je već rečeno neke skripte

predstavljaju bolje, a neke lošije uvjete u mreži, a razlog tome je što su prijenosni

pojasevi podijeljeni s određenim faktorom (10, 20, 30, 40 i 50). Stoga je 100 videa

podjeljeno u 5 skupina po 20 različitih videa, tako da je svaka skupina kontorlirana

pomoću jedne skripte. U sljedeća dva potpoglavalja opisan je detaljan postupak

prikupljanja podataka.

4.3.1.1. Prikupljanje podataka s aplikacijske razine

Prikupljanje podataka s aplikacijske razine odvija se u pregledniku Google

Chrome u tri koraka:

1.) Uključivanje Alata za razvojne programere,

2.) Omogućavanje opcije „Show Video Stats“ na stranici Twitch.tv i pokretanje

video zapisa uživo,

3.) Pokretanje JavaScript skripte u Alatu za razvojne programere.

Navedeni koraci detaljnije su objašnjeni u nastavku. 1.) Uključivanje Alata za razvojne programere:

Potrebno je uključiti opciju alata za razvojne programere koja se aktivira u

nekoliko koraka:

1.) Opcije Google Chrome-a,

2.) Više Alata (eng. More tools),

3.) Alati za razvojne programere (eng. Developer tools).

Nakon što se alat otvorio potrebno se pozicionirati na opciju „Console“ koja nudi

mogućnost izvršavanja različitih naredbi. Slika 7 prikazuje prethodno opisan korak.

Page 19: Procjena performansi usluga strujanja igara uživo na ... Planinic 2018.pdf · Gaming. Koliko je popularno strujanje igara uživo, govore i same brojke. Tako Twitch kaže da trenutno

14

Slika 7 - Alati za razvojne programere

2.) Omogućavanje opcije „Show video stats“ na stranici Twitch.tv i pokretanje video

zapisa uživo:

Otvaranjem bilo kojeg video zapisa potrebno je pritisnuti na opciju „Settings“

(kotačić s desne donje strane video zapisa) nakon čega se otvara izbornik s više

opcija. Nadalje, potrebno je pritisnuti na opciju „Advanced“, a potom na „Show video

stats“ nakon čega se otvara prozorčić s dodatnim informacijama o parametrima

video zapisa (Slika 8).

Slika 8 - Statistika video zapisa uživo na Twitch.tv-u

Page 20: Procjena performansi usluga strujanja igara uživo na ... Planinic 2018.pdf · Gaming. Koliko je popularno strujanje igara uživo, govore i same brojke. Tako Twitch kaže da trenutno

15

3.) Pokretanje JavaScript skripte u Alatu za razvojne programere:

Nakon što su obavljena prethodna dva koraka, potrebno je pokrenuti skriptu

(Dodatak A) koja dohvaća podatke statistike video zapisa iz opcije „Show video

stats“ koja je opisana u drugom koraku. Skripta je automatizirana tako da podatke

dohvaća svake sekunde. Za svaki video potrebno je prikupiti 120 zapisa što zapravo

predstavlja 120 sekundi video zapisa jer se podaci prikupljaju svake sekunde, te

nakon toga prijeći na novi video. Slika 9 prikazuje primjer prikupljanja podataka

nakon pokretanja skripte.

Slika 9 - Primjer prikupljanja podataka iz Console-e nakon pokretanja skripte

4.3.1.2 Prikupljanje mrežnog prometa

Podaci s mrežne razine prikupljaju se na Računalu br.2 (Slika 4). Mrežni

promet se počinje prikupljati nakon pokretanja skripte u alatu tcpdump, te je skriptu

potrebno pokrenuti prije nego što se podaci s aplikacijske razine počnu prikupljati.

Podaci se na kraju spremaju u datoteku oblika .pcap (Slika 10). Također, ta

datoteka omogućuje uvid u protokole koji se koriste u gledanju video zapisa uživo,

a to su TCP na transportnom sloju i TLS koji se koristi za sigurnost, odnosno

šifiriranje.

Page 21: Procjena performansi usluga strujanja igara uživo na ... Planinic 2018.pdf · Gaming. Koliko je popularno strujanje igara uživo, govore i same brojke. Tako Twitch kaže da trenutno

16

Slika 10 - Mrežni promet u Wiresharku

4.3.2. Obrada prikupljanih podataka

Podaci koji su prikupljeni s aplikacijske i mrežne razine potrebno je obraditi i

pripremiti tako da se dobije skup podataka za razvijanje modela strojnog učenja

(Slika 3).

Podaci dobiveni s aplikacijske razine pohranjeni su u tekstualnu datoteku.

Svaku tekstualnu datoteku potrebno je obraditi tako da se dobiju željeni ključni

pokazatelji uspješnosti (KPIevi) video zapisa. Obrada datoteke vrši se pomoću

skripte napisane u Javi (Dodatak B). Skripta računa sljedeće KPI-eve: postotak

video zapisa prikazanog na određenoj rezoluciji (1080, 768, 720, 480, 360, 240,

160, 144), početno kašnjenje te prosjek playback rate-ova. Pošto Twitch.tv uvijek

pokušava video prikazivati na što većoj rezoluciji, za jako loše mrežne uvjete

postotak videa na najvećoj rezoluciji će biti visok jer bufferu treba dosta vremena da

se napuni te je tako početno kašnjenje na visokoj rezoluciji dosta veliko. Twitch.tv

tako funkcionira, tako da nema smisla izračunavat postotak videa na određenoj

rezoluciji i prosječni playback jer neće odavati realan dojam stvarne situacije. Stoga

će se za KPI-eve uzimati samo prosječno kašnjenje videa. Izračunati KPI-evi se

Page 22: Procjena performansi usluga strujanja igara uživo na ... Planinic 2018.pdf · Gaming. Koliko je popularno strujanje igara uživo, govore i same brojke. Tako Twitch kaže da trenutno

17

zajedno s timestamp-om i naslovom videa spremaju u izlaznu datoteku oblika .csv

(eng. Comma Separated Values) (Slika 11).

Slika 11 - Primjer .csv datoteke

Prikupljeni podaci koji predstavljaju značajke mrežnog prometa se dalje

trebaju obraditi tako da se pomoću njih može istrenirati model strojnog učenja.

Dakle, mrežni atributi s kojima će se predviđati KPIevi su navedeni u tablici (Tablica

2), a neki od njih zapravo prestavljaju podatke koji su dobiveni matematičkim

izračunom. Dakle, to su medijan, maksimalna vrijednost, prosječna vrijednost,

standradna devijacija i varijanca od podataka koji su učitani od strane klijenta u

periodima od jedne ili dvije sekudne. Osim podataka koji su dobiveni matematičkim

izračunom, za predviđanje će se također koristiti i broj izgubljenih segemenata i broj

resetiranja.

4.4. Strojno učenje

U prethodnim potpoglavljima opisano je kako su podaci prikupljeni i obrađeni

za strojno učenje. Strojno učenje (eng. Machine learning) je znanost koja se bavi

programiranjem računala na način da optimiziraju neki kriterij uspješnosti temeljem

podatkovnih primjera ili prethodnog iskustva [23]. Pomoću strojnog učenja želi se

na temelju viđenih podataka stvoriti model koji mora moći predvidjeti svojstva novih,

još neviđenih podataka. Odnosno, cilj strojnog učenja je izgraditi modele koji dobro

generaliziraju.

Page 23: Procjena performansi usluga strujanja igara uživo na ... Planinic 2018.pdf · Gaming. Koliko je popularno strujanje igara uživo, govore i same brojke. Tako Twitch kaže da trenutno

18

Postoji mnogo algoritama u strojnom učenju, no u ovom radu opisat će se i

koristiti samo tri. U nastavku su ukratko objašnjeni i opisani OneR, J48 i Random

Forest algoritmi. Ovi algoritmi su implementirani u programsku alatu Weka koji će

se koristiti za razvijanje modela u ovome radu.

1.) OneR je jednostavan algoritam učenja razvijen od strane Roberta Holtea sa

Sveučilišta Ottawa [24]. Ovaj algoritam generira skup pravila koji testiraju samo

jedan atribut. Algoritam se koristi za diskretne atribute, a glavna ideja je [25]:

for each attribute a do

for each value v from the domain of a do

Select the set of instances where a has value v.;

Let c be the most frequent class in that set.;

Add clause to rule for a: if a has value v then the class is c

end

Calculate the classification accuracy of this rule.

end

Use the rule with the highest classification accuracy.

2.) J48 je algoritam stabla odluke (eng. decision tree) koji koristi strategiju od vrha

prema dnu (eng. top-down strategy) [26]. To znači da u početku algoritam odabire

atribut kao korijenski čvor i onda stvara grane za svaku moguću vrijednost atributa.

Instance su podijeljene u podskupove, ovisno o vrijednosti atributa, i dodani kao

čvorovi na kraj odgovarajućih grana. Proces se ponovalja sve dok sve instance u

pojedinom podskupu nisu iz iste klase.

3.) Random Forest je algoritam učenja koji razvija puno stabla odluka [27]. Za

klasifikaciju nove instance, svako stablo „glasa“ za pojedinu klasu. Instanca je

označena i nazvana klasom koja je dobila najveći broj glasova.

Page 24: Procjena performansi usluga strujanja igara uživo na ... Planinic 2018.pdf · Gaming. Koliko je popularno strujanje igara uživo, govore i same brojke. Tako Twitch kaže da trenutno

19

5. Analiza rezultata

Predviđanje i analiza rezultata rađena je na dva skupa podataka (Slika 12):

• Skup1: početno kašnjenje je podijeljeno u dvije skupine (kratka, dugačka)

• Skup2: početno kašnjenje je podijeljeno u tri skupine (kratka, srednja i dugačka)

U prvom slučaju (Skup1) dugačka kašnjenja su ona koja su veća od 20

sekudni (plava boja) , a kratka kašnjenja su ona manja od 20 sekundi (crvena boja).

Dok u drugom slučaju (Skup2) kratka kašnjenja su ona od 0 sekudni do 10 sekundi

(modra boja), srednja od 10 do 30 sekudni (crvena boja), a dugačka su ona koja su

veća od 30 sekudni (plava boja).

Cilj je vidjeti do koje se razine ova dva skupa podatka mogu procijeniti samo

na temelju znanja kojeg su naučili pomoću odgovarajućeg algoritma. Za treniranje

na podacima koristi se „Cross-validation“ koji je inicijalno postavljen na 10, što znači

da će se znanje trenirati na 90% podataka, a da će se na preostalih 10% testirati.

Dobiveni rezultati prikazani su u tablici ispod (Tablica 2). Za svaki skup podataka i

pripradajući algoritam dobivene su sljedeće vrijednosti:

• Točnost (eng. Accuracy) – kolika je točnost testiranih podataka u

odnosu na njihovu stvarnu vrijednost.

Slika 12 - Atrubuti za procjenu u Weki

Page 25: Procjena performansi usluga strujanja igara uživo na ... Planinic 2018.pdf · Gaming. Koliko je popularno strujanje igara uživo, govore i same brojke. Tako Twitch kaže da trenutno

20

• Preciznost (eng. Precision)– koliko je podataka točno procijenjeno da

pripada određenoj vrijednosti (npr. kratko kašnjenje ili dugo kašnjenje)

u odnosu na to koliko je svekupno podataka procjenjeno da pripada

toj vrijednosti.

• Odziv (eng. Recall) – koliko je podataka točno procijenjeno da pripada

određenoj vrijednosti u odnosu na to koliko je stvarna količina tih

vrijednosti.

Tablica 2 - Analiza rezultata dobivenih različitim algoritmima učenja

Atributi Algoritam Odabrani mrežni atributi s kojima predviđamo Točnost

[%]

Preciznost Odziv

MOS

{kratka:s,

dugačka:l}

OneR

stDevSizeIn2sIntervalsDL

75.9259

s: 0.731

l: 0.786

s: 0.760

l: 0.759

J48

maxSizeIn2sIntervalsDL

77.7778

s: 0.882

l: 0.730

s: 0.600

l: 0.931

Random Forest

avgSizeLarger100BUL, stDevSizeIn2sIntervalsDL,

pStDevSizeIn2sIntervalsDL, stDevSizeIn1sIntervalsDL,

lostSegmentCount

82.4074

s: 0.816

l: 0.831

s: 0.800

l: 0.845

MOS

{kratka:s,

srednja:m,

dugačka:l}

OneR

medianSizeIn2sIntervalsDL

68.5185

s: 0.636

m: 0.750

l: 0.652

s: 0.560

m: 0.652

l: 0.811

J48

medianSizeIn2sIntervalsDL

70.3704

s: 0.778

m: 0.756

l: 0.633

s: 0.560

m: 0.674

l: 0.838

Random Forest

percOfUsedTransTimeDL, medianSizeIn2sIntervalsDL,

pVarSizeIn2sIntervalsDL, maxSizeIn2sIntervalsUL,

resetCount

67.5926

s: 0.778

m: 0.653

l: 0.659

s: 0.560

m: 0.696

l: 0.730

Kao što se vidi u tablici (Tablica 2) za predviđanje rezultata pomoću

određenog algoritma odabrani su različiti mrežni atributi. Baš ti mrežni atributi su

odabrani iz razloga jer uz određeni algoritam najbolje predviđaju rezultat. Tako se

vidi da uz neke algoritme ima više mrežnih atributa, a uz neke manje. U pravilu, a

Page 26: Procjena performansi usluga strujanja igara uživo na ... Planinic 2018.pdf · Gaming. Koliko je popularno strujanje igara uživo, govore i same brojke. Tako Twitch kaže da trenutno

21

vidi se i iz rezultata, kada ima više atributa pomoću kojih predviđamo, rezultat će biti

točniji i precizniji.

Skupovi podataka su obrađeni i testirani pomoću tri algoritma, a to su OneR,

J48 i Random Forest. Za svaki algoritam i skup podataka izračunati su točnost,

preciznost i odziv (Tablica 2). Ovi podaci nam govore do koje je razine moguće

predvidjeti podatke s aplikacijske razine pomoću podataka s mrežne razine. Vidi se

da se podaci s aplikacijske razine relativno dobro mogu procijeniti, pa se tako

točnost kreće od 67% pa sve do 82%. Isto tako se može primjetiti da je prvi skup

podataka (onaj koji samo sadrži kratka i duga kašnjenja) točnije procjenjen, nego

drugi skup podataka koji sadrži kratka, srednja i duga kašnjenja. Razlog tome je što

je lakše procijenti dva parametra, nego tri.

Točnost je zapravo srednja vrijednost preciznosti parametara. Pomoću

preciznosti se vidi koliko se točno procijenio određeni parametar, pa tako se vidi da

je za prvi skup podataka i algoritam Random Forest preciznost za parametre

najveća (81.6% za kratko kašnjenje i 83.1% za dugo kašnjenje), dok je za drugi

skup podataka preciznost najveća uz algoritam J48 (77.8% za kratko kašnjenje,

75.6% za srednje kašnjenje i 63.3% za dugo kašnjenje).

Odziv nam govori koliko je podataka točno procijenjeno da pripada određenoj

vrijednosti u odnosu na stvarnu količinu vrijednosti tih podataka. Vidi se da ovdje

postoci preciznosti variraju i kreću se od čak 50% pa sve do visokih 93%.

Page 27: Procjena performansi usluga strujanja igara uživo na ... Planinic 2018.pdf · Gaming. Koliko je popularno strujanje igara uživo, govore i same brojke. Tako Twitch kaže da trenutno

22

6. Zaključak

Usluge video strujanja danas čine dominantni udio ukupnog prometa u

Internetu. Najveći dio tog prometa povezan je s popularnim uslugama temeljenim

na prilagodljivom strujanju putem protokola HTTP. Jedan tip usluga video strujanja

jest i strujanje uživo, a u ovom radu sadržaj gledanih video zapisa uživo povezan je

s digitalnim igrama. Trenutno jedne od vodećih platformi u Europi i Americi za

strujanje video igara uživo su Twitch i YouTube Gaming.

Davatelji mrežnih usluga uglavnom nemaju uvid u performanse i parametre

kvalitete video tokova koji prolaze njihovom mrežom, obzirom da je promet često

kriptiran. Stoga, jedini način da se riješi taj problem jest korištenje tehnika strojnog

učenja s kojima bi se na temelju analize značajki mrežnog prometa procijenjivali

parametri koji utječu na iskustvenu kvalitetu. Dakle, cilj ovog rada je prikupljanje i

snimanje podataka sa mrežne i aplikacijske razine usluge Twitch prilikom strujanja

igara uživo kako bi se razvio model temeljen na tehnici strojnog učenja kojim bi se

testiralo do koje se mjere performanse na razini aplikacije mogu procijeniti na

temelju prometnih značajki.

Prilikom gledanja 100 različitih video zapisa uživo putem Web preglednika,

podaci s aplikacijske i mrežne razine istovremeno su prikupljani. Prikupljeni podaci

su dalje obrađeni i sinkronizirani tako da su spremni za generiranje modela strojnog

učenja. Nakon što je izabran podskup značajki mrežnog prometa, generiran je

model kojim se testiralo do koje je mjere podatke s aplikacijske razine moguće

procijeniti na temelju izabranih značajki mrežnog prometa.

Uzimajući sve dobivene rezultate u obzir, može se zaključiti da je podatke s

aplikacijske razine moguće procijeniti i klasificirati pomoću parametara s mrežne

razine u relativno velikoj točnosti (prosječno 70%) generiranjem modela strojnog

učenja.

Page 28: Procjena performansi usluga strujanja igara uživo na ... Planinic 2018.pdf · Gaming. Koliko je popularno strujanje igara uživo, govore i same brojke. Tako Twitch kaže da trenutno

23

7. Literatura

[1] https://www.bigfishgames.com/blog/2017-video-game-trends-and-statistics-

whos-playing-what-and-why/, zadnji pristup: 06.04.2018.

[2] https://www.twitch.tv/p/partners/faq/, zadnji pristup: 06.04.2018.

[3] https://expandedramblings.com/index.php/twitch-stats/, zadnji pristup:

06.04.2018.

[4] Integrated Multiprotocol Network Emulator/Simulator, http://www.imunes.net/,

zadnji pristup: 11.5.2018.

[5] Puljiz, Zrinka, and Miljenko Mikuc. "Imunes based distributed network

emulator." Software in Telecommunications and Computer Networks, 2006.

SoftCOM 2006. International Conference on. IEEE, 2006.

[6] https://en.wikipedia.org/wiki/Tcpdump, zadnji pristup: 11.5.2018.

[7] https://hr.wikipedia.org/wiki/JavaScript, zadnji pristup: 11.5.2018.

[8] https://commons.wikimedia.org/wiki/File:JavaScript-logo.png, zadnji pristup:

11.5.2018.

[9] Wawro, Alex (2014-08-25). "Amazon to acquire Twitch". Gamasutra. UBM plc.

zadnji pristup: 9.4.2018.

[10] https://en.wikipedia.org/wiki/Twitch.tv, zadnji pristup: 9.4.2018.

[11] https://www.twitch.tv/, zadnji pristup: 11.5.2018.

[12] Definitions of terms related to quality of service , rujan 2008.

[13] https://www.cisco.com/c/en/us/solutions/collateral/service-provider/visual-

networking-index-vni/mobile-white-paper-c11-520862.html, zadnji pristup:

21.06.2018.

[14] Sebastian Möller, Patrick Le Callet and Andrew Perkis, editors. Qualinet White

Paper on Definitions of Quality of Experience. Technical Report Version 1.2.

European Network on Quality of Experience in Multimedia Systems and Services,

2013.

[15] International Telecommunication Union - Telecommunications Sector (ITU-T)

Recommendation P.800.1, 2006. Mean Opinion Score (MOS) Terminology, ožujak

2003.

[16] http://www.albedotelecom.com/pages/fieldtools/src/netshark.php, zadnji

pristup: 21.05.2018.

[17] https://www.tcpdump.org/, zadnji pristup: 21.05.2018.

Page 29: Procjena performansi usluga strujanja igara uživo na ... Planinic 2018.pdf · Gaming. Koliko je popularno strujanje igara uživo, govore i same brojke. Tako Twitch kaže da trenutno

24

[18] https://www.javascript.com/, zadnji pristup: 21.05.2018.

[19] https://www.cs.waikato.ac.nz/ml/weka/, zadnji pristup: 21.05.2018.

[20] Seufert, Michael, et al. "A survey on quality of experience of HTTP adaptive

streaming." IEEE Communications Surveys & Tutorials 17.1 (2015): 469-492.

[21] https://live.fb.com/, zadnji pristup: 26.05.2018.

[22] https://help.instagram.com, zadnji pristup: 26.05.2018.

[23] Bojana Dalbelo Bašić i Jan Šnajder, Strojno učenje, FER, Kolegij Umjetna

inteligencija, akademska godina 2016./2017.

[24] R.C. Holte. Very simple classification rules perform well on most commonly

used datasets. Machine Learning, 11:63–91, 1993.

[25] Craig G Nevill-Manning, Geoffrey Holmes, and Ian H Witten. The development

of Holte’s 1R classifier. In Second New Zealand International Two-Stream

Conference on Artificial Neural Networks and Expert Systems, 1995.

Proceedings., pages 239–242. IEEE, 1995.

[26] Data Mining with Weka: Decision trees, URL

https://www.youtube.com/watch?v=l7R9NHqvI0Y.

[27] Leo Breiman and Adele Cutler. Random Forests. URL

https://www.stat.berkeley.edu/~breiman/RandomForests/cc_home.htm, zadnji

pristup: 26.05.2018.

[28] J. van der Hooft, et al., “HTTP/2-Based Adaptive Streaming of HEVC Video

Over 4G/LTE Networks,” IEEE Comm. Letters, vol. 20, no. 11, pp. 2177–2180,

2016.

Page 30: Procjena performansi usluga strujanja igara uživo na ... Planinic 2018.pdf · Gaming. Koliko je popularno strujanje igara uživo, govore i same brojke. Tako Twitch kaže da trenutno

25

8. Sažetak

Strujanje video igara uživo putem platforme Twitch.tv jedna je od

najpopularnijih aktivnosti na Internetu danas. Stoga je bitno da ta aktivnost i usluga

budu što bolji. Često se zna dogoditi da te usluge imaju problema, odnosno da je

iskustvena kvaliteta korisnika koji gleda video zapis uživo loša. Ti podaci koji utječu

na iskustvenu kvalitetu su u mrežnom prometu kripitirani, te ne postoji mogućnost

njihovog pregleda u mreži, već samo na aplikacijskoj razini. Stoga, u ovom radu je

u laboratorijskom okruženju ispitano do koje je mjere podatke s aplikacijske razine

moguće procijeniti na temelju podataka s mrežne razine pomoću metoda strojnog

učenja. Dobiveni rezultati govore da je podatke s aplikacijske razine moguće

procijeniti u relativno velikoj točnosti pomoću određenih mrežnih atributa

generiranjem modela strojnog učenja.

Ključne riječi: Twitch.tv, iskustvena kvaliteta, strujanje igara uživo, strojno učenje

Page 31: Procjena performansi usluga strujanja igara uživo na ... Planinic 2018.pdf · Gaming. Koliko je popularno strujanje igara uživo, govore i same brojke. Tako Twitch kaže da trenutno

26

9. Summary

Nowadays, watching live video gaming using the Twitch.tv platform is one of

the most popular activities on the Internet. For that reason, it is important that

services on this platform are delivered on a high professional level. Often these

services experience difficulties. In other words, the Quality of Experience (QoE) of

the user watching live video can be low. Since traffic is encrypted, it is not possible

to directly detect problems related to KPIs by inspecting application-level packet

headers. The aim of this study was to investigate whether it is possible to estimate

KPIs only from analyzing encrypted traffic using machine learning techniques. As a

result of the analysis, classification accuracy was found to be about 70%.

Key words: Twitch.tv, Quality of Experience, machine learning, live video gaming

Page 32: Procjena performansi usluga strujanja igara uživo na ... Planinic 2018.pdf · Gaming. Koliko je popularno strujanje igara uživo, govore i same brojke. Tako Twitch kaže da trenutno

27

10. Dodaci

10.1 Dodatak: Popis Slika

Slika 1 - Prilgodljivo strujanje putem protokola HTTP .............................................. 4

Slika 2 - Twitch.tv potrebne postavke [11] ............................................................... 6

Slika 3 - Prikupljanje i priprema podataka ............................................................... 9

Slika 4 - Laboratorijsko okruženje ......................................................................... 10

Slika 5 - Shema u IMUNES-u koja se koristi tijekom prikupljanja podataka .......... 11

Slika 6 - Weka programski alat .............................................................................. 12

Slika 7 - Alati za razvojne programere ................................................................... 14

Slika 8 - Statistika video zapisa uživo na Twitch.tv-u ............................................ 14

Slika 9 - Primjer prikupljanja podataka iz Console-e nakon pokretanja skripte...... 15

Slika 10 - Mrežni promet u Wiresharku ................................................................. 16

Slika 11 - Primjer .csv datoteke ............................................................................. 17

Slika 12 - Atrubuti za procjenu u Weki ................................................................... 19

Page 33: Procjena performansi usluga strujanja igara uživo na ... Planinic 2018.pdf · Gaming. Koliko je popularno strujanje igara uživo, govore i same brojke. Tako Twitch kaže da trenutno

28

10.2 Dodatak: Popis Tablica

Tablica 1 - MOS vrijednosti ..................................................................................... 8

Tablica 2 - Analiza rezultata dobivenih različitim algoritmima učenja .................... 20

Page 34: Procjena performansi usluga strujanja igara uživo na ... Planinic 2018.pdf · Gaming. Koliko je popularno strujanje igara uživo, govore i same brojke. Tako Twitch kaže da trenutno

29

10.3 Dodatak A: Skripta za prikupljanje podataka s aplikacijske razine

window.setInterval(function(){

console.log(new Date().getTime());

console.log(document.getElementsByClassName("tw-ellipsis tw-mg-b-05")[0].innerText);

console.log(document.getElementsByClassName("pl-stats-list js-playback-stats")[0].innerText);

}, 1000);

10.4 Dodatak B: Skripta za parsiranje podataka s aplikacijske razine

import java.io.BufferedReader; import java.io.File; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.io.PrintWriter; import java.util.ArrayList; import java.util.List; public class Skripta { public static class Data{ String timestamp; String title; int initialDelay; float perc1080; float perc900; float perc864; float perc810; float perc768; float perc720; float perc480; float perc360; float perc240; float perc160; float perc144; float avgBitRate; int id; } public static void main(String[] args) throws IOException {

Page 35: Procjena performansi usluga strujanja igara uživo na ... Planinic 2018.pdf · Gaming. Koliko je popularno strujanje igara uživo, govore i same brojke. Tako Twitch kaže da trenutno

30

BufferedReader br = new BufferedReader(new FileReader("div50.txt")); PrintWriter pw = new PrintWriter(new File("id_div50.csv")); List<Data> lista = new ArrayList<>(); String line = null; String timestamp = null; String title = null; int initialDelay = 0; float perc1080 = 0; float perc900 = 0; float perc864 = 0; float perc810 = 0; float perc768 = 0; float perc720 = 0; float perc480 = 0; float perc360 = 0; float perc240 = 0; float perc160 = 0; float perc144 = 0; float avgBitRate = 0; float perc0 = 0; boolean isInitial = true; int id = 0; String savedTitle = null; int counter = 0; while((line = br.readLine()) != null) { if(line.isEmpty()) { counter++; continue; } if(line.startsWith("VM92:5")) { continue; } if (counter >= 120) { savedTitle = title; Data data = new Data(); data.timestamp = timestamp; data.title = title; data.initialDelay = initialDelay; data.perc1080 = (float) perc1080/(120-initialDelay); data.perc900 = (float) perc900/(120-initialDelay);

Page 36: Procjena performansi usluga strujanja igara uživo na ... Planinic 2018.pdf · Gaming. Koliko je popularno strujanje igara uživo, govore i same brojke. Tako Twitch kaže da trenutno

31

data.perc864 = (float) perc864/(120 - initialDelay); data.perc810 = (float) perc810/(120 - initialDelay); data.perc768 = (float) perc768/(120-initialDelay); data.perc720 = (float) perc720/(120-initialDelay); data.perc480 = (float) perc480/(120-initialDelay); data.perc360 = (float) perc360/(120-initialDelay); data.perc240 = (float) perc240/(120-initialDelay); data.perc160 = (float) perc160/(120-initialDelay); data.perc144 = (float) perc144/(120-initialDelay); data.avgBitRate = (float) avgBitRate/120; data.id = id; timestamp = null; title = null; initialDelay = 0; perc1080 = 0; perc900 = 0; perc864 = 0; perc810 = 0; perc768 = 0; perc720 = 0; perc480 = 0; perc360 = 0; perc240 = 0; perc160 = 0; perc144 = 0; avgBitRate = 0; perc0= 0; isInitial = true; id = 0; lista.add(data); counter = 0; } String tempTimestamp; if(line.startsWith("VM92:3") && counter <= 0) { String[] temp = line.split("\\s+"); timestamp = temp[1].trim(); while((line = br.readLine().trim()) != null) { if (line.startsWith("VM92:3")) { temp = line.split("\\s+"); timestamp = temp[1].trim(); continue; } else { break;

Page 37: Procjena performansi usluga strujanja igara uživo na ... Planinic 2018.pdf · Gaming. Koliko je popularno strujanje igara uživo, govore i same brojke. Tako Twitch kaže da trenutno

32

} } String[] temp2 = line.split("\\s+"); if(temp2.length < 2) { while((line = br.readLine().trim()) != null) { if(line.isEmpty()) break; } continue; } title = line.substring(9, line.length()).trim(); title = title.replace(",", "a"); if(savedTitle != null) { if(savedTitle.compareTo(title) == 0) { while((line = br.readLine().trim()) != null) { if(line.isEmpty()) break; } continue; } } continue; } else if(line.startsWith("VM92:3") && counter > 0 && counter < 120) { String[] temp = line.split("\\s+"); tempTimestamp = temp[1].trim(); while((line = br.readLine().trim()) != null) { if (line.startsWith("VM92:3")) { temp = line.split("\\s+"); tempTimestamp = temp[1].trim(); continue; } else { break; } } String[] temp2 = line.split("\\s+"); if(temp2.length < 2) continue; String tempTitle = line.substring(9, line.length()).trim(); tempTitle = tempTitle.replace(",", "a"); if(tempTitle.compareTo(title) != 0) { counter = 1; timestamp = tempTimestamp; title = tempTitle; initialDelay = 0;

Page 38: Procjena performansi usluga strujanja igara uživo na ... Planinic 2018.pdf · Gaming. Koliko je popularno strujanje igara uživo, govore i same brojke. Tako Twitch kaže da trenutno

33

perc1080 = 0; perc900 = 0; perc864 = 0; perc810 = 0; perc768 = 0; perc720 = 0; perc480 = 0; perc360 = 0; perc240 = 0; perc160 = 0; perc144 = 0; avgBitRate = 0; id = 0; } continue; } if(line.startsWith("Video")) { line = br.readLine(); String[] a = line.split("x"); int res = Integer.parseInt(a[1]); if(res == 1080) perc1080++; else if(res == 900) perc900++; else if(res == 864) perc864++; else if(res == 810) perc810++; else if(res == 768) perc768++; else if(res == 720) perc720++; else if(res == 480) perc480++; else if(res == 360) perc360++; else if(res == 240) perc240++; else if (res == 160) perc160++; else if (res == 144) perc144++; else if(res == 0) initialDelay++; else System.out.println(res); continue;

Page 39: Procjena performansi usluga strujanja igara uživo na ... Planinic 2018.pdf · Gaming. Koliko je popularno strujanje igara uživo, govore i same brojke. Tako Twitch kaže da trenutno

34

} if(line.startsWith("Playback")) { line = br.readLine(); avgBitRate += Float.parseFloat(line.split("\\s+")[0]); continue; } if (line.startsWith("Latency")){ line = br.readLine(); String[] t = line.split("\\s+"); float a = Float.parseFloat(t[0]); if(a == 0) id++; } } StringBuilder sb = new StringBuilder(); for(Data d : lista) { sb.append(d.timestamp + "," + d.title + "," + d.id + "\n"); } pw.write(sb.toString()); pw.close(); System.out.println("done."); } }