Upload
others
View
2
Download
0
Embed Size (px)
Citation preview
ACompara)veStudyofAndroidandiOSforAccessingInternetStreamingServices
YaoLiu@GeorgeMasonUniversityFeiLi@GeorgeMasonUniversityLeiGuo@OhioStateUniversityBoShen@VuclipSongqingChen@GeorgeMasonUniversity
Internetstreamingtomobiledevices
• Internetstreamingservicesreceiveanincreasingnumberofaccessfrommobiledevices– 25%ofYouTubeviewsarefrommobiledevices1
• Today,50%ofmobilenetworktrafficisvideo2
• By2016,thisnumberwillgrowto66%2
2�1.Datasource:YouTube2.Datasource:Cisco
PseudostreamingisusedinmobileInternetstreaming
GEThHp://*.youtube.com/videoplayback…
3
HTTP/1.1200OKContent‐Type:video/mp4Content‐Length:37MB
HTTP/1.1206Par)alContentContent‐Type:video/mp4Content‐Range:bytes10MB‐37MB/37MB
GEThHp://*.youtube.com/videoplayback…Range:bytes10MB‐37MB
Server‐sideobservaTons(from)
• Server‐sidelogduringFebruary2011• 26,713,708HTTPrequests• 15,725videoclips• 27.4TBvideotraffic
• 397,940uniquevideosessionsfromiOSdevices• 884,648uniquevideosessionsfromAndroiddevices
4�
iOSandAndroidusedifferentcontentrequesTngapproaches
5�
iOS
HTTP200 HTTP206
%ofRequests 0.01 99.99
%ofTrafficAmount 0.001 99.999
Android
HTTP200 HTTP206
%ofRequests 27.30 72.70
%ofTrafficAmount 80.594 19.406
AlmostalliOStrafficisdeliveredusing
HTTPparTalcontentresponse(206)
80%ofAndroidtrafficisdeliveredusingstandardHTTPresponses(200)
MorerequestsaresentoutbyiOSdevices
6�
80%ofAndroidsessionsuseonlyonesingleHTTPrequest
50%iOSsessionsissuedmorethan12HTTPrequestspersession
MoretrafficisreceivedatiOSdevices
7�
28%iOSsessionsreceivedmoretrafficthanthefilesize
55%Androidsessionsdownloadedexactthe
sameamountoftrafficasthefilesize
Highlightsofserver‐sideobservaTons
• iOSusesHTTPrangerequests,whileAndroidusesstandardHTTPrequests
• Mul)pleHTTPrequestsareissuedwheniOSdevicesarewatchingstreamingvideo,while80%AndroidsessionsuseonlyoneHTTPrequest
• 28%iOSsessionsreceivedmoretrafficthanthevideofilesize,whileonly2%forAndroid
8�
Devicesusedforclient‐sideexperiments
Name OSversion MemorysizeiPodTouch iOS3.1.2 128MB
iPhone3G iOS4.2.1 128MB
iPhone3GS iOS5.0.1 256MB
iPhone4S iOS5.1 512MB
NexusOne Android2.3.4 512MB
KindleFire Android2.3.4 512MB
9�
Watchingan8‐minuteYouTubevideooniOSdevices(1)
• 8‐minutevideo,360P• 38,517,389bytes(36.7MBytes)
10�
#ofHTTPrequests
iPodTouch 261
iPhone3G 301
iPhone3GS 105
iPhone4S 67
MulTpleHTTPrequestswere
issuedtodownloadthestreamingdata
iOSdevicesfrequentlyabortHTTPconnecTons
11�
iPhone3GS
Onaverage,iPhone3GSuses61HTTPrequeststo
downloadthe8‐minutevideo
Availablememoryisfilledup,causingconnecTonstobeaborted
12
availablememory
currentplayback
AvailableMemory
currentplayback
resumedownloading
abortconnec)on
abortconnec)on
Watchingan8‐minuteYouTubevideooniOSdevices(2)
13�
iPodTouch
iPhone3G
iPhone3GS
iPhone4S
116% 65%
114%34%
Re‐downloadingcausesredundanttraffic
14�
iPhone3GS 0~16MBytesfinishdownloading
GEThHp://*.youtube.com/videoplayback…Range:bytes0‐16MB
[FIN,ACK](receivedfullvideocontent)
Watchingan8‐minuteYouTubevideooniOSdevices
• 8‐minutevideo,360P• 38,517,389bytes(36.7MBytes)
15�
#ofHTTPrequests
ReceivedHTTPbody(Bytes)
Re‐downloaded(Bytes)
iPodTouch 261 83,410,351 26,450,851
iPhone3G 301 82,616,828 37,449,911
iPhone3GS 105 63,713,281 11,523,915
iPhone4S 67 51,625,429 9,292,410
Limitedavailablememorycausesre‐downloading
missingin‐memorycontent
currentplayback
played
16
Re‐downloadingamountisdifferentacrossdifferent
experimentswatchingthesamevideoonthesamedevice
Videofilesizevs.redundanttrafficamount
17�
Video1 Video2 Video3Dura%on(sec) 360 480 657
Filesize(Bytes) 29,503,221 38,517,389 53,405,910
LESSredundanttraffic
MOREredundanttraffic
iPodTouch
iPhone3G
iPhone3GS
iPhone4S
42,379,164 144%
42,322,498 143%
37,702,143 128%
32,248,384 109%
57,176,659 148%
74,442,375 193%
47,460,396 123%
44,538,836 116%
90,445,044 169%
86,933,886 163%
72,388,936 136%
61,731,408 116%
FindingswithiOS
• Dynamicbuffermanagement– TheHTTPconnecTonisabortedwhentheplaybackbufferfillsup,causingmul)pleHTTPrangerequeststobeusedinonestreamingsession
– DownloadingresumeswhenmorememoryissuppliedbytheoperaTngsystem
– Usesre‐downloadingtofetchplayedcontentthathasbeenevictedfromthememory
– Causesredundanttraffic
18�
Watchingthesame8‐minuteYouTubevideoonAndroiddevices
19�
NexusOne KindleFire
#ofHTTPrequests
ReceivedHTTPbody(Bytes)
Re‐downloaded(Bytes)
NexusOne 1 38,517,389 0
KindleFire 1 38,517,389 0
AndroidusesTCPwindowtocontroldownloading
GEThHp://*.youtube.com/videoplayback…
20
HTTP/1.1200OKContent‐Type:video/mp4Content‐Length:37MB
[ACK]ACK=10MB,Window=0
...
[ACK]ACK=10MB,Window=64KB
21�
enum { kPageSize = 65535, kDefaultHighWaterThreshold = 20 * 1024 * 1024, kDefaultLowWaterThreshold = 4 * 1024 * 1024, kDefaultKeepAliveIntervals = 15000000, };
Codesnippetfrom:/libstagefright/include/NuCachedSource2.h
20MB4MB
StaTcbuffermanagementinAndroid
22
HighWaterThres
currentplayback
HighWaterThreshold
currentplayback
re‐openTCPwindow
closeTCPwindow
closeTCPwindow
LowWaterThreshold
FindingswithAndroid
• Sta)cbuffermanagement– Keepsafixedamountofdatainthebuffer(HighWaterThresholde.g.,20MB)
– Downloadingisstrictlysynchronizedwiththeplaybackprogress(LowWaterThreshold)
– NoredundanttrafficistransmiHed
23�
Conclusion
• Mobiledeviceshavealimitedamountofmemory
• iOSusesadynamicbuffermanagementmethod– MulTpleHTTPrequests
– Redundanttraffic
• Androidusesasta)cbuffermanagementmethod– OnesingleHTTPrequest– Noredundanttraffic
24�