Procjena performansi usluge strujanja sadržaja uživo putem ... Matic 2018.pdfSVEUČILIŠTE U...

36
SVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA ZAVRŠNI RAD br. 5792 Procjena performansi usluge strujanja sadržaja uživo putem platforme YouTube na osnovu analize kriptiranog prometa uporabom metoda strojnog učenja Filip Matić Zagreb, lipanj 2018.

Transcript of Procjena performansi usluge strujanja sadržaja uživo putem ... Matic 2018.pdfSVEUČILIŠTE U...

Page 1: Procjena performansi usluge strujanja sadržaja uživo putem ... Matic 2018.pdfSVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA ZAVRŠNI RAD br. 5792 Procjena performansi

SVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA

ZAVRŠNI RAD br. 5792

Procjena performansi usluge strujanja sadržaja uživo putem platforme YouTube

na osnovu analize kriptiranog prometa uporabom metoda strojnog učenja

Filip Matić

Zagreb, lipanj 2018.

Page 2: Procjena performansi usluge strujanja sadržaja uživo putem ... Matic 2018.pdfSVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA ZAVRŠNI RAD br. 5792 Procjena performansi
Page 3: Procjena performansi usluge strujanja sadržaja uživo putem ... Matic 2018.pdfSVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA ZAVRŠNI RAD br. 5792 Procjena performansi

iii

Sadržaj

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

2. YouTube .............................................................................................. 3

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

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

3. Iskustvena kvaliteta ............................................................................. 6

3.1. Mjerenje iskustvene kvalitete ...................................................... 6

4. Metodologija rada ................................................................................ 8

4.1. Laboratorijsko okruženje ............................................................ 8

4.2. Prikupljanje podataka ................................................................. 9

4.2.1. Prikupljanje podataka s mrežne razine .............................. 10

4.2.1.1. IMUNES ......................................................................... 10

4.2.1.2. Tcpdump ........................................................................ 10

4.2.2. Prikupljanje podataka s aplikacijske razine ........................ 10

4.2.2.1. YouTube statistika za štrebere ....................................... 12

4.2.2.2. ViQMon .......................................................................... 13

4.3. Priprema podataka za analizu .................................................. 14

4.3.1. Skripta za izračun KPI-eva ................................................. 14

5. Strojno učenje ................................................................................... 16

5.1. Algoritmi strojnog učenja .......................................................... 16

5.1.1. OneR ................................................................................. 16

5.1.2. J48 ..................................................................................... 17

5.1.3. Random forest ................................................................... 17

5.2. Weka ........................................................................................ 17

6. Analiza rezultata ................................................................................ 19

Page 4: Procjena performansi usluge strujanja sadržaja uživo putem ... Matic 2018.pdfSVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA ZAVRŠNI RAD br. 5792 Procjena performansi

iv

7. Zaključak ........................................................................................... 22

8. Literatura ........................................................................................... 23

9. Sažetak ............................................................................................. 26

10. Summary ......................................................................................... 27

11. Popis slika ....................................................................................... 28

12. Popis tablica .................................................................................... 29

Dodatak A: Skripta za izračun KPI-eva ................................................. 30

Page 5: Procjena performansi usluge strujanja sadržaja uživo putem ... Matic 2018.pdfSVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA ZAVRŠNI RAD br. 5792 Procjena performansi

v

Popis oznaka i kratica

ISP – pružatelj internetske usluge (engl. Internet Service Provider)

KPI – ključni pokazatelji uspješnosti (engl. Key Performance Indicators)

QoE – iskustvena kvaliteta (engl. Quality of Experience)

QoS – kvaliteta usluge (engl. Quality of Service)

HAS – prilagodljivo strujanje putem protokola HTTP (engl. HTTP Adaptive Streaming)

Page 6: Procjena performansi usluge strujanja sadržaja uživo putem ... Matic 2018.pdfSVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA ZAVRŠNI RAD br. 5792 Procjena performansi

Uvod

1

1. Uvod

U današnje vrijeme razvojem tehnologije sve veći broj ljudi ima pristup

Internetu. Prema podacima iz 2017. godine nešto više od 4 milijarde ljudi (od

ukupno malo više od 7 i pol) ima pristup Internetu, što znači da je 54% svjetske

populacije umreženo putem Interneta [1].

Predviđanja su da će promet koji se generira na pametnim telefonima

premašiti promet ostvaren na računalima. U 2016. godini na računala je

otpadalo 46% ukupnog mrežnog prometa, ali predviđa se da će do 2021.

iznositi samo 25%. Predviđa se da će pametni telefoni generirati 33% ukupnog

mrežnog prometa, što je znatan porast u odnosu na 13% u 2016. godini [2].

Prema predviđanjima do 2021. godine, 82% ukupnog internetskog prometa

će pripadati različitim video sadržajima, a 13% od ukupnog video sadržaja će

činiti video sadržaj koji se prenosi uživo [2]. Upravo je YouTube jedan od

najpopularnijih servisa koji imaju uslugu strujanja video sadržaja uživo.

Dominantni udio ukupnog prometa na Internetu danas čine usluge video

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

temeljenim na prilagodljivom strujanju putem protokola HTTP. YouTube

predstavlja jedan od najpoznatijih primjera takvih usluga. Jedan tip usluga

video strujanja koje YouTube nudi jest i strujanje uživo.

Glavni problem s kojim se susreću pružatelji internetskih usluga (ISP, engl.

Internet Service Provider) je nemogućnost praćenja kvalitete sadržaja

isporučenog krajnjim korisnicima. Budući da je promet često kriptiran, davatelji

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

video tokova koji prolaze njihovom mrežom.

Kvaliteta sadržaja za prilagodljivo strujanje sadržaja uživo putem protokola

HTTP mjeri se ključnim pokazateljima uspješnosti (KPI, eng. Key Performance

Indicators), kao što su početno kašnjenje, ukupan broj zastajkivanja, ukupno

trajanje zastajkivanja, rezolucija[3]. Prije su pružatelji internetskih usluga

(odnosno mrežni operatori) mogli te podatke iščitati iz HTTP zaglavlja, no od

siječnja 2015. godine YouTube krajnjim korisnicima podatke šalje isključivo

Page 7: Procjena performansi usluge strujanja sadržaja uživo putem ... Matic 2018.pdfSVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA ZAVRŠNI RAD br. 5792 Procjena performansi

Uvod

2

putem protokola HTTPS (HTTP Secure) koji kriptira podatke [4]. Zbog

navedenog, mrežni operatori se suočavaju s izazovom predviđanja iskustvene

kvalitete (eng. Quality of Experience, QoE) krajnjih korisnika samo na temelju

dostupnih podataka sa mrežne razine.

Jedno od mogućih rješenja ovog problema čine rješenja koja koriste tehnike

strojnog učenja za procjenu iskustvene kvalitete temeljem analize značajki

mrežnog prometa. Cilj ovog rada je, koristeći strojno učenje, testirati do koje

se mjere performanse na razini aplikacije mogu procijeniti na temelju

prometnih značajki.

Rad će se fokusirati na snimanje mrežnog prometa usluge YouTube

prilikom strujanja sadržaja uživo, te će se paralelno prikupljati informacije o

događajima na aplikacijskoj razini na Android uređaju, koristeći dostupne

alate. Prikupljeni podaci na mrežnoj razini će se obraditi te sinkronizirati s

podacima prikupljenim na razini aplikacije. Tako obrađeni podaci čine ulazni

skup podataka za algoritme strojnog učenja.

Ovaj rad je podijeljen u 6 poglavlja. U drugom poglavlju je opisana platforma

YouTube i tehnologija isporuke video sadržaja koju koristi. Zatim je u trećem

poglavlju objašnjen pojam iskustvene kvalitete. Četvrto poglavlje opisuje

laboratorijsko okruženje u kojem su se vršila mjerenja te način na koji su se

prikupljali i obrađivali podaci. U petom poglavlju su opisani algoritmi strojnog

učenja koji su se koristili u ovom radu. Iduće, šesto poglavlje, sadrži analizu

svih prikupljenih podataka. Na kraju rada slijedi zaključak, popis korištene

literature, sažetak, popis slika, popis tablica, te dodatak koji sadrži skriptu za

izračun KPI-eva koja se koristila za potrebe ovog rada.

Page 8: Procjena performansi usluge strujanja sadržaja uživo putem ... Matic 2018.pdfSVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA ZAVRŠNI RAD br. 5792 Procjena performansi

YouTube

3

2. YouTube

YouTube je jedna od najpopularnijih platformi za strujanje video sadržaja.

Svoju popularnost je YouTube stekao činjenicom da je servis u potpunosti

besplatan te ne samo da svim registriranim korisnicima omogućuje da objave

vlastite video uratke nego, im YouTube omogućuje i da na njima zarade preko

oglasa koji se prikazuju pored videa. Osnovan je 2005. godine, a danas broji

više od milijardu korisnika i stranica je prevedena na 76 različitih jezika. Danas

se više od pola video pregleda ostvaruje preko mobilnih telefona [6]. YouTube

trenutno za isporuku video sadržaja krajnjem korisniku koristi tehnologiju

prilagodljivog strujanja putem protokola HTTP koja je detaljnije opisana u

nastavku.

2.1. Prilagodljivo strujanje putem protokola HTTP

Promjene u mrežnim uvjetima (npr. promjene propusnosti, kašnjenja,

gubitak paketa) predstavljaju velike probleme pri strujanju video sadržaja na

Internetu. Prilagodljivo strujanje putem protokola HTTP (engl. HTTP Adaptive

Streaming, HAS) je tehnologija koja rješava navedene probleme

prilagođavanjem video sadržaja trenutnim mrežnim uvjetima. Također

pružateljima usluge omogućava poboljšanje iskoristivosti resursa i iskustvene

kvalitete (engl. Quality of Experience, QoE (Poglavlje 3)) korištenjem

informacija iz različitih slojeva kako bi se video sadržaj prilagodio i isporučio u

najboljoj raspoloživoj kvaliteti. Pri tome se uzimaju u obzir mogućnosti uređaja

krajnjeg korisnika, dostupne razine kvalitete videozapisa, trenutni mrežni uvjeti

i trenutno opterećenje poslužitelja. Glavna prednost HAS-a, u odnosu na

klasično HTTP strujanje u konstantnoj kvaliteti bez prilagodbe na mrežne

uvjete, za krajnjeg korisnika je smanjeno vrijeme zastajkivanja i prekida u

reprodukciji video sadržaja [3].

YouTube je koristio klasično strujanje sadržaja preko protokola HTTP sve

do 2013. godine. Tada su se odlučili na HAS kao zadanu metodu isporuke

sadržaja [8], odnosno MPEG-DASH standard (engl. Dynamic Adaptive

Streaming over HTTP) [9]. To znači da svaki videozapis mora biti dostupan u

Page 9: Procjena performansi usluge strujanja sadržaja uživo putem ... Matic 2018.pdfSVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA ZAVRŠNI RAD br. 5792 Procjena performansi

YouTube

4

različitim razinama kvalitete i podijeljen na male dijelove (segmente) od kojih

svaki sadrži nekoliko sekundi videa za reprodukciju. Klijent procjenjuje

trenutnu propusnost i stanje međuspremnika (engl. buffer) te zahtijeva sljedeći

segment videozapisa u odgovarajućoj kvaliteti da ne dođe do zastoja i da se

raspoloživa širina pojasa najbolje iskoristi.

Slika 2.1 prikazuje primjer procesa pohrane i prijenosa video sadržaja

putem tehnologije HAS. U ovom slučaju, snimljeni video se kodira u tri različite

razine kvalitete te se dijeli na više manjih segmenata. Video se zatim

pohranjuje na poslužitelj i svaki segment je adresiran HTTP URL-om. Klijent

na temelju trenutnih uvjeta u mreži odlučuje koje od segmenata će u

određenom trenutku preuzeti. Klijent spaja preuzete segmente i reproducira

video.

Slika 2.1 Prilagodljivo strujanje putem protokola HTTP [12]

2.2. Strujanje sadržaja uživo

Strujanje sadržaja uživo označava isporuku sadržaja korisnicima u realnom

vremenu. YouTube je 2011. godine korisnicima počeo nuditi opciju strujanja

sadržaja uživo. 2018. godine je uvedeno dosta novih opcija kako bi se

Page 10: Procjena performansi usluge strujanja sadržaja uživo putem ... Matic 2018.pdfSVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA ZAVRŠNI RAD br. 5792 Procjena performansi

YouTube

5

poboljšao doživljaj sadržaja uživo kako korisnicima koji objavljuju video sadržaj

tako i gledateljima: automatski prijevod videa na engleski jezik, live chat,

lokacijske oznake [11]. Također YouTube sav sadržaj pohranjuje i omogućuje

korisnicima da ga premotaju unazad u bilo kojem trenutku. Za vrijeme kada se

sadržaj reproducira uživo u lijevom kutu stoji indikator uživo (Slika 2.2).

Slika 2.2 Indikator uživo na YouTube videu

Strujanje sadržaja uživo je zahtjevno za poslužitelje jer se unatoč

promjenama mrežnih uvjeta velikom broju korisnika mora isporučiti sadržaj.

Dodatan izazov je isporučiti video sa što kraćim kašnjenjem radi poboljšanja

iskustvene kvalitete. YouTube za raspoređivanje opterećenja poslužitelja

koristi mrežu za isporuku sadržaja (engl. Content Delivery Network, CDN) [30].

Kašnjenje strujanja uživo (engl. live streaming latency) je vremenska razlika

između trenutka kada je kamera zabilježila neki događaj i trenutka kada je taj

događaj prikazan korisnicima. Prilikom postavljanja postavki za strujanje video

sadržaja uživo, YouTube korisnicima nudi tri različite opcije za kašnjenje

strujanja uživo: normalno, nisko i ultra-nisko [10]. Normalno kašnjenje je

najpogodnije za video sadržaj u kojem nema interakcije s gledateljima, dok su

opcije niskih kašnjenja namijenjene korisnicima koji su u interakciji s

gledateljima za vrijeme strujanja sadržaja. Obe opcije niskog kašnjenja ne

podržavaju reprodukciju u visokim rezolucijama (npr. 4K) i što je manje

kašnjenje to je veća mogućnost da se gledatelju dogodi zastoj zbog punjenja

međuspremnika.

Page 11: Procjena performansi usluge strujanja sadržaja uživo putem ... Matic 2018.pdfSVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA ZAVRŠNI RAD br. 5792 Procjena performansi

Iskustvena kvaliteta

6

3. Iskustvena kvaliteta

Sve do devedesetih godina dvadesetog stoljeća, u komunikacijskim

uslugama, pojam kvalitete se poistovjećivao s pojmom kvalitete usluge (engl.

Quality of Service, QoS). No zbog konstantnog povećanja zastupljenosti

raznih višemedijskih sadržaja na Internetu, s vremenom je pojam iskustvene

kvalitete (engl. Quality of Experience, QoE) počeo dobivati na značajnosti [18].

Tako da danas razlikujemo dva različita pojma, odnosno dva pristupa mjerenju

kvalitete usluge.

Pojam kvalitete usluge se primarno odnosi na svojstva mreže, te se kod

mjerenja kvalitete usluge razmatraju razni mrežni parametri kao što je veličina

paketa, gubitak paketa, kašnjenje, korekcija grešaka, fragmentacija. Dok je

kvaliteta usluge više orijentirana na tehničku stranu komunikacijskih usluga,

iskustvena kvaliteta je više usmjerena na iskustvo i zadovoljstvo krajnjeg

korisnika uslugom koja mu se isporučuje [19]. Iskustvena kvaliteta se definira

kao stupanj oduševljenja ili nezadovoljstva korisnika aplikacijom odnosno

uslugom [18]. Neupitno je da su i kvaliteta usluge i iskustvena kvaliteta vrlo

bitne za pružatelje internetskih usluga, no kako je glavni zadatak pružatelja

usluge da korisnik ima pozitivno iskustvo i da je u potpunosti zadovoljan sa

uslugom koja mu se isporučuje, razumijevanje odnosa između kvalitete usluge

i iskustvene kvalitete postaje ključno [19].

3.1. Mjerenje iskustvene kvalitete

Metode kojima se mjeri iskustvena kvaliteta se dijele na subjektivne i

objektivne. Jedna od najpopularnijih ljestvica koja se koristi kod subjektivnog

ispitivanja iskustvene kvalitete je ljestvica kvantificiranja korisničkog iskustva

(engl. Mean Opinion Score, MOS). Subjektivne metode ispitivanja nisu

najbolje rješenje za mjerenje iskustvene kvalitete, jer svaki korisnik ima

različitu percepciju kvalitete [20]. Međunarodna telekomunikacijska unija (engl.

International Telecommunication Union, ITU) je definirala ljestvicu korisničkog

iskustva kao vrijednost na unaprijed određenoj skali koju ispitanik dodijeli

usluzi prema svojem mišljenju [21]. Korisnici svoje iskustvo ocjenjuju sa jednim

Page 12: Procjena performansi usluge strujanja sadržaja uživo putem ... Matic 2018.pdfSVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA ZAVRŠNI RAD br. 5792 Procjena performansi

Iskustvena kvaliteta

7

brojem u rasponu od 1 do 5 gdje 1 označava najlošiju ocjenu, a 5 najbolju.

Brojčana skala za određivanje iskustvene kvalitete se naziva ACR (engl.

Absolute Category Rating) (Tablica 1). MOS je prosjek ocjena svih korisnika

koji su sudjelovali u ispitivanju.

Tablica 1 MOS skala [22]

Ocjena ACR skala

5 izvrsno

4 dobro

3 prihvatljivo

2 loše

1 vrlo loše

Page 13: Procjena performansi usluge strujanja sadržaja uživo putem ... Matic 2018.pdfSVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA ZAVRŠNI RAD br. 5792 Procjena performansi

Metodologija rada

8

4. Metodologija rada

Ovaj odlomak detaljno opisuje sve elemente koji su sastavni dio

metodologije istraživanja provedenog u sklopu ovog rada. Istraživanje

obuhvaća gledanje video sadržaja uživo putem nativne YouTube aplikacije na

mobilnom Android uređaju, praćenje KPI-eva na aplikacijskoj razini, te

snimanje mrežnog prometa. Prikupljeni podatci su zatim obrađeni i oni

predstavljaju ulazni skup podataka za treniranje i validaciju algoritama strojnog

učenja (Slika 4.1).

Slika 4.1 Shema postupka obrade podataka

4.1. Laboratorijsko okruženje

Da bi prikupljanje podataka uopće bilo moguće, laboratorijsko okruženje je

postavljeno na način kako je prikazano na Slici 4.2.YouTube video sadržaj se

reproducira na Android mobilnom uređaju koji je bežičnom vezom povezan s

usmjeriteljem. Mobilni uređaj ima instaliranu aplikaciju ViQMon (Poglavlje

4.2.2.2) pomoću koje se prikupljaju podaci s aplikacijske razine.

Računalo PC1 pokreće operacijski sustav FreeBSD i ima dvije mrežne

kartice. Preko jedne mrežne kartice računalo je povezano s usmjeriteljem, a

preko druge je spojeno na Internet. Također računalo PC1 ima instaliran alat

IMUNES (engl. Integrated Multiprotocol Network Emulator/Simulator) pomoću

Page 14: Procjena performansi usluge strujanja sadržaja uživo putem ... Matic 2018.pdfSVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA ZAVRŠNI RAD br. 5792 Procjena performansi

Metodologija rada

9

kojeg je omogućena manipulacija mrežnih parametara (konkretno u ovom radu

se manipulirala mrežna propusnost). Između računala PC1 i usmjeritelja se

nalazi uređaj Albedo Net.Shark [16] koji replicira mrežni promet i zatim ga šalje

računalu PC2, koje pokreće operacijski sustav Ubuntu, na kojem se vrši

snimanje mrežnog prometa pomoću alata tcpdump.

Slika 4.2 Shema laboratorijskog okruženja

4.2. Prikupljanje podataka

Prikupljanje podataka za pojedini video se vrši na način da se prilikom

reprodukcije istovremeno prikupljaju podaci na mrežnoj i aplikacijskoj razini. U

nastavku je detaljnije opisana procedura prikupljanja za obje razine.

Page 15: Procjena performansi usluge strujanja sadržaja uživo putem ... Matic 2018.pdfSVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA ZAVRŠNI RAD br. 5792 Procjena performansi

Metodologija rada

10

4.2.1. Prikupljanje podataka s mrežne razine

Prikupljanje podataka mrežne razine se odvija na računalu PC2 (Slika 4.2).

Sav mrežni promet se preko Net.Shark uređaja replicira do računala PC2 na

kojem se preko komandne linije pokreće alat tcpdump koji snima mrežni

promet te generirane podatke sprema u datoteku formata .pcap (packet

capture).

Kako je u laboratoriju mrežna propusnost velika, a u realnim uvjetima to

najčešće nije slučaj, za potrebe mjerenja su se simulirali realni uvjeti mrežne

propusnosti u pokretnim mobilnim mrežama. Za simulaciju se koristilo pet

gotovih skripti za alat IMUNES koje sadrže logove 4G/LTE mrežne propusnosti

objavljene u [17]. Logovi pokrivaju pet sati aktivnog snimanja i prikupljeni su u

različitim scenarijima pokretljivosti: pješke, vožnja biciklom, tramvajem, vlakom

i automobilom.

4.2.1.1. IMUNES

IMUNES (engl. Integrated Multiprotocol Network Emulator/Simulator) je alat

čija je glavna svrha emulacija odnosno simulacija raznih IP mrežnih topologija.

Temelji se na operacijskom sustavu FreeBSD i operacijskom sustavu Linux

[13]. Jedna od glavnih značajki alata je da omogućuje da se postave

ograničenja na propusnost (engl. bandwidth) mrežnog prometa, te je moguće

koristiti vlastite skripte koje će automatski mijenjati ta ograničenja u realnom

vremenu.

4.2.1.2. Tcpdump

Tcpdump je besplatan alat koji je distribuiran pod BSD licencom. Koristi se

za analizu i nadgledanje mrežnog prometa koji se šalje preko mreže na koju

je spojeno računalo na kojem je pokrenut alat. Nema grafičko sučelje nego

samo konzolno te je za njegovo korištenje potrebno upisivati naredbe [14].

4.2.2. Prikupljanje podataka s aplikacijske razine

Prikupljanje podataka aplikacijske razine se odvija na mobilnom uređaju

Samsung Galaxy S6 (Tablica 2). Proces prikupljanja podataka za jedan video

je sljedeći: najprije se na YouTube aplikaciji uključi opcija statistika za štrebere

(engl. Stats for Nerds), zatim se pokrene aplikacija ViQMon, koja je razvijena

Page 16: Procjena performansi usluge strujanja sadržaja uživo putem ... Matic 2018.pdfSVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA ZAVRŠNI RAD br. 5792 Procjena performansi

Metodologija rada

11

u kompaniji Ericsson Nikola Tesla (ETK) u sklopu projekta QoMoVid (QoE

Monitoring Solutions for Mobile OTT Video Streaming) koji se provodi u

suradnji između FER-a i ETK, te se nakon toga pokrene video sadržaj (koji se

emitira uživo) preko cijelog zaslona (engl. fullscreen) i na kraju se zaustavlja

rad ViQMon što rezultira izlaznom datotekom koja sadrži podatke aplikacijske

razine (jedinstveni identifikator videa, audio i video itag1, dropped frames,

buffer health) za vrijeme reproduciranja video sadržaja (Slika 4.3).

Tablica 2 Specifikacije uređaja Samsung Galaxy S6 [15]

Model Samsung Galaxy S6

Operacijski sustav Android 7.0 (Nougat)

Veličina zaslona 5.1“

Rezolucija zaslona 1440 x 2560 piksela

Radna memorija 3 GB

Bežična mrežna kartica (WLAN) Wi-Fi 802.11 a/b/g/n/ac

S obzirom da video sadržaj uživo nema predefinirano vrijeme trajanja, bilo

bi nepraktično reproducirati svaki video do završetka jer potencijalno može

trajati beskonačno. Za svrhe ovog završnog rada reprodukcija svakog videa je

ograničena na dvije minute, odnosno 120 sekundi.

1 itag - brojčana vrijednost koju je definirao YouTube kako bi identificirali i

razlikovali razine kvalitete, npr. 22 označava HD 720p mp4 video format [29]

Page 17: Procjena performansi usluge strujanja sadržaja uživo putem ... Matic 2018.pdfSVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA ZAVRŠNI RAD br. 5792 Procjena performansi

Metodologija rada

12

Slika 4.3 Primjer JSON objekta za jednu sekundu u izlaznoj datoteci

ViQMon aplikacije

4.2.2.1. YouTube statistika za štrebere

Statistika za štrebere (engl. Stats for nerds) je opcija koja omogućava prikaz

detaljnih informacija o video sadržaju prilikom strujanja. Prikazuju se

informacije o trenutnoj rezoluciji, audio i video kodecima, broju sličica po

sekundi, jedinstveni identifikator videozapisa, te dodatno za sadržaj uživo se

prikazuje kašnjenje strujanja. Statistika se osvježava svake sekunde i postoji

mogućnost da se navedena statistika kopira klikom na link copy debug info

(Slika 4.4).

Page 18: Procjena performansi usluge strujanja sadržaja uživo putem ... Matic 2018.pdfSVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA ZAVRŠNI RAD br. 5792 Procjena performansi

Metodologija rada

13

Slika 4.4 Statistika za štrebere (YouTube)

4.2.2.2. ViQMon

ViQMon je Android aplikacija koja svake sekunde kopira sadržaj YouTube

statistike za štrebere u tekstualnu datoteku. Najprije se pritisne gumb su grant

(Slika 4.5) čime se aplikaciji daju prava da radi u pozadini, zatim se klikom

gumba start recording pokreće background process koji periodički svake

sekunde tapka po ekranu na mjesto u kojem se nalazi copy debug info

statistike za štrebere, te zapise od svake sekunde sprema u tekstualnu

datoteku kojoj je naziv timestamp trenutka početka reprodukcije videa u

formatu epoch time2. Navedena datoteka sadrži onoliko redaka koliko sekundi

je trajao video, a svaki redak zapravo predstavlja JSON objekt čiji atributi

predstavljaju informacije iz statistike za štrebere.

2 Epoch time – broj sekundi koje su protekle od ponoći 1. siječnja 1970.

godine [23]

Page 19: Procjena performansi usluge strujanja sadržaja uživo putem ... Matic 2018.pdfSVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA ZAVRŠNI RAD br. 5792 Procjena performansi

Metodologija rada

14

Slika 4.5 ViQMon Android aplikacija

4.3. Priprema podataka za analizu

Prikupljeni podatci se mogu razvrstati u pet kategorija jer se prilikom

mjerenja koristilo pet različitih skripti koje su simulirale realne mrežne uvjete

(odlomak 4.2.1). Za svaku od kategorija mrežnih uvjeta se reproduciralo 20

različitih videa. Za svaki od ukupno 100 reproduciranih videa su se

istovremeno prikupljali podatci i na mrežnoj i aplikacijskoj razini.

Da bi se dobiveni podatci mogli dalje analizirati najprije je bilo potrebno

pojedinačno obraditi podatke mrežne i aplikacijske razine za svaki video te ih

u konačnici povezati.

4.3.1. Skripta za izračun KPI-eva

Podatke prikupljene na aplikacijskoj razini čini 100 datoteka, za svaki video

jedna. Svaka datoteka sadrži zapis o detaljnim informacijama parametara

strujanja video sadržaja (rezolucija, …) u svakoj sekundi reprodukcije. Za svaki

video je potrebno izračunati KPI-eve jer je to mjera kvalitete sadržaja

prilagodljivog strujanja video sadržaja. Zbog navedenih razloga u sklopu ovog

završnog rada je napravljena skripta u programskom jeziku Python 2.7 koja

automatizira izračun KPI-eva za bilo koji broj videa (Dodatak A).

Page 20: Procjena performansi usluge strujanja sadržaja uživo putem ... Matic 2018.pdfSVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA ZAVRŠNI RAD br. 5792 Procjena performansi

Metodologija rada

15

Skripta iterira po svim tekstualnim datotekama unutar repozitorija unutar

kojeg se skripta nalazi. Za svaku datoteku (video) se izračuna:

početno kašnjenje,

postotak vremena tijekom kojeg je reprodukcija video sadržaja bila

na pojedinoj rezoluciji,

ukupan broj zastoja,

prosječno trajanje zastoja.

Izlazna datoteka koju generira skripta je formata .csv (engl. Comma

Separated Values) koja ima onoliko redaka koliko ima ulaznih tekstualnih

datoteka. Za svaki video se osim izračunatih KPI-eva zapisuju i videoID

(identifikator jedinstven za svaki video) i timestamp početka reprodukcije

videa.

Page 21: Procjena performansi usluge strujanja sadržaja uživo putem ... Matic 2018.pdfSVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA ZAVRŠNI RAD br. 5792 Procjena performansi

Strojno učenje

16

5. Strojno učenje

Strojno učenje je grana umjetne inteligencije koja se bavi programiranjem

računala na način da se optimizira neki kriterij uspješnosti na temelju

podatkovnih primjera ili prethodnog iskustva. Situacije u kojima uporaba

strojnog učenja ima svrhe su problemi koji su presloženi da bi se mogli riješiti

algoritamski (npr. raspoznavanje govora), sustavi koji se dinamički mijenjaju

(npr. prilagodba korisničkih sučelja) te kada raspolažemo ogromnim

količinama podataka iz kojih trebamo izvući neko znanje [24].

Zbog različitih pristupa obradi podataka razlikujemo tri vrste strojnog učenja:

nadzirano učenje (engl. supervised learning), nenadzirano učenje (engl.

unsupervised learning) i podržano učenje (engl. reinforcement learning). Kod

nadziranog učenja raspolažemo podacima oblika (ulaz, izlaz) iz kojih algoritmi

kreiraju funkciju kojom će se neki novi podaci moći klasificirati. Ulazni podatak

je najčešće vektor značajki (engl. features) dok je izlazni podatak jedna

vrijednost (engl. label). S druge strane kod nenadziranog učenja raspolažemo

podacima bez ciljne vrijednosti. U tom slučaju se strojno učenje koristi za

pronalazak pravilnosti među podacima. Podržano učenje svodi se na učenje

optimalne strategije na temelju pokušaja s odgođenom nagradom.

5.1. Algoritmi strojnog učenja

U strojnom učenju se koriste algoritmi koji svoju učinkovitost poboljšavaju

na temelju podataka s kojima raspolažu. Za potrebe ovog završnog rada će se

koristiti tri različita algoritma za klasifikaciju modela: OneR, J48, Random

forest.

5.1.1. OneR

OneR (skraćeno od One Rule) je jednostavan algoritam strojnog učenja

kojeg je napravio Robert Holte na Sveučilištu u Ottawi [25]. Algoritam stvara

jedno pravilo koje klasificira objekt na temelju jednog atributa. Iako je vrlo

jednostavan algoritam, u praksi se pokazao samo neznatno lošijim od drugih,

mnogo kompliciranijih algoritama [26].

Page 22: Procjena performansi usluge strujanja sadržaja uživo putem ... Matic 2018.pdfSVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA ZAVRŠNI RAD br. 5792 Procjena performansi

Strojno učenje

17

5.1.2. J48

J48 je algoritam koji treniranjem na ulaznom skupu podataka kreira stablo

odlučivanja prema kojem se rade predviđanja za nove podatke. Izgradnja

stabla odlučivanja se odvija na način da se jedan atribut postavi za korijenski

čvor koji ima onoliko grana koliko taj atribut ima različitih vrijednosti, a zatim

se na svaku granu za čvor postavlja drugi atribut koji se grana na isti način kao

i prethodni čvor. Takav postupak se ponavlja sve dok se ne iskoriste svi atributi

[27].

5.1.3. Random forest

Random forest je algoritam koji na ulaznom skupu podataka kreira odabrani

broj različitih stabala odlučivanja. Algoritam funkcionira na način da se iz skupa

ulaznog podataka nasumično (engl. random) odabere se podskup od svih

atributa prema kojem će se izgraditi jedno stablo odlučivanja. Taj postupak se

ponavlja onliko puta koliko je zadano (najčešće oko 100). Predviđanje za novi

skup podataka se odvija tako da se odabere ona vrijednost koja je dobivena

na najvećem broju stabala [28].

5.2. Weka

Weka (Waikato Environment for Knowledge Analysis) je program otvorenog

koda pod GNU općom javnom licencom [5]. Napravljen je na Sveučilištu u

Waikatu na Novom Zelandu i program je napisan u potpunosti u Javi što znači

da je dostupan na svim platformama. Weka je zapravo kolekcija algoritama

strojnog učenja koji se koriste za dubinsku analizu podataka. Također sadrži

alate za obradu, klasifikaciju, regresiju i vizualizaciju podataka. Primjer

grafičkog sučelja programa se nalazi na Slici 5.1.

Page 23: Procjena performansi usluge strujanja sadržaja uživo putem ... Matic 2018.pdfSVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA ZAVRŠNI RAD br. 5792 Procjena performansi

Strojno učenje

18

Slika 5.1 Weka 3.8.2: primjer prikaza grafičkog sučelja

Page 24: Procjena performansi usluge strujanja sadržaja uživo putem ... Matic 2018.pdfSVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA ZAVRŠNI RAD br. 5792 Procjena performansi

Analiza rezultata

19

6. Analiza rezultata

Cilj ovog rada je procjena performansi na aplikacijskoj razini kod strujanja

video sadržaja uživo putem platforme YouTube na temelju analize mrežnog

prometa. Za analizu podataka prikupljenih na mrežnoj razini su se koristile

metode strojnog učenja.

Ulazni skup podataka za algoritme strojnog učenja se sastoji od značajki

(engl. features) koje opisuju statistike mrežnog prometa i od ciljne oznake

(engl. label) koja predstavlja ponašanje na aplikacijskoj razini. Iz navedenih

podataka, algoritmi strojnog učenja generiraju modele pomoću kojih će se

moći vršiti predviđanja ciljne oznake samo na temelju mrežnih značajki.

Ciljne oznake parametara aplikacijske razine koje ćemo predviđati u ovom

radu su sljedeće:

Dvije stalling occurence klase („yes“, „no“), koje opisuju da li je došlo

do zastoja,

Tri longest resolution klase („high“, „medium“, „low“) koje označavaju

u kojoj se rezoluciji većinu vremena reproducirao video sadržaj, gdje

high označava rezoluciju 720p ili veću, medium 480p i 360p, a low

240p, 144p ili manju.

Predviđanje se temelji na oko 100 značajki koje su izračunate iz mrežnog

prometa. Većina značajki je dobivena računanjem statističkih parametara iz

mrežnog prometa u periodu od jedne, tri i pet sekundi. Neke od značajki

prometa koje su odabrane za klasifikaciju su:

avgPacketSizeDL (prosječna veličina paketa),

numOfPacketsLarger100BUL (broj paketa većih od 100 bajtova),

averageThroughputUL (prosječna propusnost mrežnog prometa),

stDevSizeIn5sIntervalsDL (standardna devijacija veličine prenesenih

podataka na intervalu od 5 sekundi)

Page 25: Procjena performansi usluge strujanja sadržaja uživo putem ... Matic 2018.pdfSVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA ZAVRŠNI RAD br. 5792 Procjena performansi

Analiza rezultata

20

maxSizeIn3sIntervalsDL (najveća veličina prenesenih podataka u

intervalu od 3 sekunde)

medianSizeIn1sIntervalsDL (medijan veličine prenesenih podataka u

intervalu od 1 sekunde)

Za svaku ciljnu oznaku su se generirali modeli koristeći tri algoritma: OneR,

J48 i Random forest. Dobiveni rezultati su prikazani u Tablici 3. Točnost se

definira kao postotak ispravno klasificiranih instanci, preciznost se definira kao

omjer ispravno klasificiranih instanci u promatrani razred i zbroja ispravno i

pogrešno klasificiranih instanci u promatrani razred, dok se odziv definira kao

omjer ispravno klasificiranih instanci i zbroja instanci koje su ispravno

klasificirane u promatranu klasu i instanci koje su klasificirane u krivi razred.

Najtočnija klasifikacija za stalling occurence se postigla algoritmom J48

(73%), dok je za longest resolution Random forest algoritam (71%) bio

najtočniji. Iz tablice se također može iščitati da su kod klasifikacije zastoja

složeniji algoritmi značajno točniji (čak oko 20%) od jednostavnog OneR

algoritma. Dok je kod klasifikacije rezolucije, zanimljivo primijetiti da je OneR

algoritam podjednako točan, a za procjenu se koristila samo jedna značajka

mrežnog prometa.

Page 26: Procjena performansi usluge strujanja sadržaja uživo putem ... Matic 2018.pdfSVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA ZAVRŠNI RAD br. 5792 Procjena performansi

Analiza rezultata

21

Tablica 3 Rezultati

Ciljna oznaka

Algoritam Korištene značajke Točnost

[%] Preciznost Odziv

Stalling

occurence

{yes, no}

OneR numOfPacketsLarger100BUL,

averageThroughputUL 54.6392

y: 0.593

n: 0.488

y: 0.593

n: 0.488

J48

avgPacketSizeDL,

numOfPacketsLarger100BUL,

stDevSizeIn5sIntervalsDL,

maxSizeIn3sIntervalsDL,

stDevSizeIn5sIntervalsUL,

stDevSizeIn1sIntervalsUL

73.1959 y: 0.694

n: 0.840

y: 0.926

n: 0.488

RF

avgPacketSizeDL,

stDevSizeIn5sIntervalsDL,

stDevSizeIn3sIntervalsDL,

pStDevSizeIn3sIntervalsDL,

stDevSizeIn1sIntervalsDL,

hMeanSizeIn5sIntervalsUL,

maxSizeIn3sIntervalsUL

69.0722 y: 0.714

n: 0.659

y: 0.741

n: 0.628

Longest

resolution

{high,

medium,

low}

OneR medianSizeIn3sIntervalsDL 67.0103

h: 0.000

m: 0.730

l: 0.613

h: 0.000

m: 0.767

l: 0.594

J48 averageThroughputDL,

medianSizeIn3sIntervalsDL 65.9794

h: 0.000

m: 0.759

l: 0.548

h: 0.000

m: 0.683

l: 0.719

RF

medianSizeIn5sIntervalsDL,

medianSizeIn3sIntervalsDL,

avgSizeIn2sIntervalsDL,

medianSizeIn1sIntervalsDL,

maxSizeIn1sIntervalsUL

71.134

h: 0.500

m: 0.750

l: 0.645

h: 0.200

m: 0.800

l: 0.625

Page 27: Procjena performansi usluge strujanja sadržaja uživo putem ... Matic 2018.pdfSVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA ZAVRŠNI RAD br. 5792 Procjena performansi

Zaključak

22

7. Zaključak

Zbog činjenice da je danas mrežni promet najčešće kriptiran, pružatelji

mrežnih usluga ne mogu vidjeti performanse videa koji struje kroz njihovu

mrežu. Zbog navedenog nisu u mogućnosti pratiti kvalitetu sadržaja koja se

isporučuje krajnjim korisnicima.

U ovom radu se razmatra iskustvena kvaliteta usluge strujanja sadržaja

uživo na platformi YouTube na Android mobilnom uređaju. Prethodno

navedeni problem s kojim se suočavaju mrežni operatori se rješava procjenom

iskustvene kvalitete uporabom metoda strojnog učenja. Cilj rada je procijeniti

parametre iskustvene kvalitete na temelju poznatih mrežnih značajki.

Podaci su se prikupljali na 100 različitih videa. Prilikom reprodukcije svakog

videa se snimao mrežni promet te su se istovremeno prikupljali podaci na

aplikacijskoj razini na Android uređaju. Na temelju prikupljenih podataka su se

izračunali KPI-evi. Tako obrađeni podaci čine skup ulaznih podataka za

treniranje algoritama strojnog učenja. Za potrebe ovog rada se za obradu

podataka algoritmima strojnog učenja koristio programski alat Weka. Na

temelju rezultata dobivenih u ovom radu se može zaključiti da se parametri

aplikacijske razine (stalling occurence, longest resolution) mogu procijeniti sa

prihvatljivom točnošću od oko 60-70%.

Page 28: Procjena performansi usluge strujanja sadržaja uživo putem ... Matic 2018.pdfSVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA ZAVRŠNI RAD br. 5792 Procjena performansi

Literatura

23

8. Literatura

1. Internet usage statistics: world Internet usage and population

statistics. Internet World Stats.

https://www.internetworldstats.com/stats.htm, 9.4.2018.

2. The Zettabyte Era: Trends and Analysis. Cisco (2017),

https://www.cisco.com/c/en/us/solutions/collateral/service-

provider/visual-networking-index-vni/vni-hyperconnectivity-wp.html,

9.4.2018.

3. SEUFERT, Michael, et al. A survey on quality of experience of

HTTP adaptive streaming. IEEE Communications Surveys & Tutorials,

2015, 17.1: 469-492.

4. SIEBER, Christian, et al. The cost of aggressive HTTP adaptive

streaming: Quantifying YouTube's redundant traffic. In: IFIP/IEEE

International Symposium on Integrated Network Management (IM),

2015. IEEE, 2015. p. 1261-1267.

5. Weka 3: Data Mining Software in Java,

https://www.cs.waikato.ac.nz/ml/weka/, 14.4.2018.

6. Press – YouTube, https://www.youtube.com/intl/en-

GB/yt/about/press/, 14.4.2018.

7. Resursi robne marke – YouTube,

https://www.youtube.com/yt/about/brand-resources/#logos-icons-

colors, 14.4.2018.

8. Roettgers, J., Don’t touch that dial: How YouTube is bringing

adaptive streaming to mobile, TVs,

https://gigaom.com/2013/03/13/youtube-adaptive-streaming-mobile-

tv/, 14.4.2018.

9. Information Technology—Dynamic Adaptive Streaming Over

HTTP (DASH)—Part 1: Media Presentation Description and Segment

Formats, ISO/IEC 23009-1:2012, 2012.

10. Live Streaming Latency – YouTube Help,

https://support.google.com/youtube/answer/7444635?hl=en&ref_topic

=6136989, 14.4.2018.

Page 29: Procjena performansi usluge strujanja sadržaja uživo putem ... Matic 2018.pdfSVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA ZAVRŠNI RAD br. 5792 Procjena performansi

Literatura

24

11. YouTube Creator Blog: Updates to YouTube Live Streaming,

https://youtube-creators.googleblog.com/2018/02/updates-to-youtube-

live-streaming.html, 14.4.2018.

12. HTTP Adaptive Streaming. GitHub,

https://github.com/rabit/wiki/blob/master/HTTP_Adaptive_Streaming.m

d, 14.4.2018.

13. Integrated Multiprotocol Network Emulator/Simulator,

http://imunes.net/, 14.4.2018.

14. Analiza alata Wireshark, Nacionalni CERT,

https://www.cis.hr/www.edicija/LinkedDocuments/NCERT-PUBDOC-

2010-09-312.pdf

15. Samsung Galaxy S6, GSMArena,

https://www.gsmarena.com/samsung_galaxy_s6-6849.php, 11.5.2018.

16. Net.Shark,

http://www.albedotelecom.com/pages/fieldtools/src/netshark.php,

11.5.2018.

17. 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.

18. 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.

19. Quality of Experience vs. Quality of Service,

https://www.qualitytaskforce.com/quality-of-experience-vs-quality-of-

service, 28.5.2018.

20. Streijl, R.C., Winkler, S. & Hands, D.S. Multimedia Systems

(2016) 22: 213. https://doi.org/10.1007/s00530-014-0446-1

21. ITU-T Rec. P.10: Vocabulary for performance and quality of

service (2006)

Page 30: Procjena performansi usluge strujanja sadržaja uživo putem ... Matic 2018.pdfSVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA ZAVRŠNI RAD br. 5792 Procjena performansi

Literatura

25

22. HUYNH-THU, Quan, et al. Study of rating scales for subjective

quality assessment of high-definition video. IEEE Transactions on

Broadcasting, 2011, 57.1: 1-14.

23. Epoch & Unix Timestamp Conversion Tools,

https://www.epochconverter.com/, 28.5.2018.

24. Bojana Dalbelo Bašić, Jan Šnajder, Umjetna inteligencija:

Strojno učenje, http://www.fer.unizg.hr/_download/repository/UI-2017-

10-StrojnoUcenje.pdf

25. R.C. Holte. Very simple classification rules perform well on

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

26. OneR, http://www.saedsayad.com/oner.htm, 30.5.2018.

27. University of Minnesota Duluth, Classification methods,

http://www.d.umn.edu/~padhy005/Chapter5.html, 30.5.2018.

28. Leo Breiman, Adele Cutler, Random forests,

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

, 30.5.2018

29. Youtube Video Formats, Resolutions and iTags,

http://www.codosia.com/web/youtube-video-formats-resolutions-and-

itags/, 11.6.2018.

30. Umrežavanje sadržaja: Mreže za potporu strujanja

višemedijskog sadržaja, Fakultet elektrotehnike i računarstva,

https://www.fer.unizg.hr/_download/repository/US-2017_03.pdf

Page 31: Procjena performansi usluge strujanja sadržaja uživo putem ... Matic 2018.pdfSVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA ZAVRŠNI RAD br. 5792 Procjena performansi

Sažetak

26

9. Sažetak

Danas dominantni udio ukupnog prometa na Internetu čine usluge video

strujanja. Većina tog prometa se temelji na prilagodljivom strujanju putem

protokola HTTP. Jedna od najpopularnijih platformi za dijeljenje takvog

sadržaja je YouTube. U okviru ovog rada će se posebno razmatrati usluga

strujanja sadržaja uživo putem YouTube-a na Android mobilnim uređajima.

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

video tokova koji prolaze njihovom mrežom jer je promet najčešće kriptiran. To

mrežnim operaterima predstavlja veliki problem zbog nemogućnosti praćenja

iskustvene kvalitete sadržaja koji isporučuju korisnicima. Zadatak ovog rada je

procijeniti performanse na razini aplikacije na temelju prometnih značajki

koristeći metode strojnog učenja. U istraživanju koje je provedeno u sklopu

ovog rada su se prikupljali podaci mrežne i aplikacijske razine za 100 videa.

Prikupljeni podaci čine ulazni skup podataka za algoritme strojnog učenja. Kao

rezultat analize su dobiveni modeli na temelju kojih se parametri aplikacijske

razine mogu procijeniti sa točnošću oko 60-70%.

Ključne riječi: strujanje sadržaja uživo, iskustvena kvaliteta, YouTube,

strojno učenje

Page 32: Procjena performansi usluge strujanja sadržaja uživo putem ... Matic 2018.pdfSVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA ZAVRŠNI RAD br. 5792 Procjena performansi

Summary

27

10. Summary

Nowdays largest amount of Internet traffic belongs to video streaming

services. Most of that traffic is delivered via the Adaptive Streaming over

HTTP. One of the most popular platform for sharing that kind of content is

YouTube. This thesis particulary analyzes live streaming on YouTube on

Android smartphones.

Network operators generally lack insight into application-level quality

indicators because most of the traffic is encrypted. This is big problem for ISPs

due to the inability to monitor end-user Quality of Experience. Main objective

of this thesis is to estimate performance of live YouTube streaming based on

the analysis of encrypted network traffic using machine learning. In research

conducted for the purposes of this thesis data of aplication-level quality

indicators and corresponding traffic traces has been collected for 100 YouTube

videos. Collected data is then used for the development of machine learning

models for QoE classification based on computed traffic features. As a result

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

Key words: Live streaming , Quality of Experience, YouTube, Machine

learning

Page 33: Procjena performansi usluge strujanja sadržaja uživo putem ... Matic 2018.pdfSVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA ZAVRŠNI RAD br. 5792 Procjena performansi

Popis slika

28

11. Popis slika

Slika 2.1 Prilagodljivo strujanje putem protokola HTTP [12] ...................... 4

Slika 2.2 Indikator uživo na YouTube videu ............................................... 5

Slika 4.1 Shema postupka obrade podataka ............................................. 8

Slika 4.2 Shema laboratorijskog okruženja ................................................ 9

Slika 4.3 Primjer JSON objekta za jednu sekundu u izlaznoj datoteci

ViQMon aplikacije ........................................................................................ 12

Slika 4.4 Statistika za štrebere (YouTube) ............................................... 13

Slika 4.5 ViQMon Android aplikacija ........................................................ 14

Slika 5.1 Weka 3.8.2: primjer prikaza grafičkog sučelja ........................... 18

Page 34: Procjena performansi usluge strujanja sadržaja uživo putem ... Matic 2018.pdfSVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA ZAVRŠNI RAD br. 5792 Procjena performansi

Popis tablica

29

12. Popis tablica

Tablica 1 MOS skala [22] ........................................................................... 7

Tablica 2 Specifikacije uređaja Samsung Galaxy S6 [15] ..................... 11

Tablica 3 Rezultati ................................................................................... 21

Page 35: Procjena performansi usluge strujanja sadržaja uživo putem ... Matic 2018.pdfSVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA ZAVRŠNI RAD br. 5792 Procjena performansi

DODATAK A

30

Dodatak A: Skripta za izračun KPI-eva

import json

import sys

import os

import csv

itag = dict()

itag.update({"278":"144p", "242":"240p", "160":"144p", "133":"240p", "243":"360p",

"244":"480p", "134":"360p", "135":"480p", "247":"720p", "136":"720p",

"248":"1080p",

"137":"1080p", "302":"720p", "298":"720p", "303":"1080p", "299":"1080p"})

for root, dirs, files in os.walk('.'):

for filename in files:

if(filename.endswith(".txt")):

f = open(os.path.join(root, filename), 'r+')

lines = f.readlines()

f.seek(0)

f.write('[')

for line in lines:

f.write(line)

f.write(']')

f.close()

with open(os.path.join(root, filename)) as json_file:

json_data_list = json.load(json_file)

timestamp = filename[:-4]

videoID = json_data_list[0]["videoid"]

initDelay = 0

stallingDurationDict = dict()

prevFrameNum = "/0"

stallCount = 0

duration = 0

dur144 = 0

dur240 = 0

dur360 = 0

dur480 = 0

dur720 = 0

dur1080 = 0

for json_data in json_data_list:

if(json_data["df"].endswith(prevFrameNum)):

if(stallingDurationDict.has_key(prevFrameNum)):

Page 36: Procjena performansi usluge strujanja sadržaja uživo putem ... Matic 2018.pdfSVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA ZAVRŠNI RAD br. 5792 Procjena performansi

DODATAK A

31

stallingDurationDict[prevFrameNum] =

stallingDurationDict.get(prevFrameNum) + 1

else:

stallingDurationDict[prevFrameNum] = 1

else:

duration += 1

if(itag.get(json_data["fmt"]) == "144p"):

dur144 += 1

if(itag.get(json_data["fmt"]) == "240p"):

dur240 += 1

if(itag.get(json_data["fmt"]) == "360p"):

dur360 += 1

if(itag.get(json_data["fmt"]) == "480p"):

dur480 += 1

if(itag.get(json_data["fmt"]) == "720p"):

dur720 += 1

if(itag.get(json_data["fmt"]) == "1080p"):

dur1080 += 1

prevFrameNum = '/' + json_data["df"].split("/")[1]

perc144 = float(dur144)/duration

perc240 = float(dur240)/duration

perc360 = float(dur360)/duration

perc480 = float(dur480)/duration

perc720 = float(dur720)/duration

perc1080 = float(dur1080)/duration

if(stallingDurationDict.has_key("/0")):

initDelay = stallingDurationDict.get("/0")

stallCount = len(stallingDurationDict.values())

avgStallDur = 0

if(stallCount != 0):

avgStallDur =

float(sum(stallingDurationDict.values()))/stallCount

with open('kpis.csv', 'ab') as csvfile:

fieldnames = ['timestamp', 'videoID', 'initDelay', 'perc1080',

'perc720', 'perc480',

'perc360', 'perc240', 'perc144', 'avgStallDur',

'stallCount']

writer = csv.DictWriter(csvfile, fieldnames)

writer.writerow({'timestamp':timestamp, 'videoID':videoID,

'initDelay':initDelay, 'perc1080':perc1080,

'perc720':perc720, 'perc480':perc480, 'perc360':perc360,

'perc240':perc240, 'perc144':perc144,

'avgStallDur':avgStallDur, 'stallCount':stallCount})