lec2 project details - UCR Computer Science and...
Transcript of lec2 project details - UCR Computer Science and...
-
ProjectDetailsJiasi Chen
Lectures:Monday1:10-2pminSproul2343TA:RyanHolt
Lab:Tuesday7-10pminChung133
http://www.cs.ucr.edu/~rholt002/cs179i_winter17/1
-
Outline
• Virtualreality
• Videostreaming
• Downloadbooster
• Proposal
2
-
VirtualReality
3
-
AvailablePlatforms• GoogleCardboard
• $20cardboardviewertouseanyAndroidphoneasaVRdisplay
• SamsungGearVR• OnlycertainSamsungphones(GalaxyS7,GalaxyS6,Note5)• Bettermotion-tracking,higherresolutionscreens
• GoogleDaydream• Onlycertainphones(GooglePixel,MotoZ,ASUSZenfone,HuaweiMate,ZTEAxon)
• Bluetoothcontroller
4
-
AvailablePlatforms
• HTCVive• Accuratemotiontrackingwithroomcameras
• OculusRift• Xboxcontroller• OculusTouchcontrollers
• 360cameras• 6GoPros onamount• AdobePremiereProandKolor Autopano
5
-
HowtoProgram?
• Unity(GUI+C#)orAndroidStudio(Java)• NeedappropriateSDK(Oculus,Android,Daydream)
6
-
MPEG-DASHVideoStreaming
7
-
MPEG-DASHProtocol
• MPEG-DASH• APP-layerprotocolforadaptingvideoqualitytonetworkconditions• Client-driven:clientestimatesnetworkconditionsandrequestsappropriatevideoquality• Standarddoesn’tspecifyadaptationalgorithm,justthecommunicationprotocolbetweenclientandserver
• Whousesit?
8
time
rate networkbandwidth
videorate
-
ProjectGoal
• Currentapproaches• Numerousapproachesproposedinresearchliteratureandinpractice• Needaapples-to-applescomparisonundercommonsetoftestconditions
• Resources• MPEG-DASHvideoplayer:https://github.com/Dash-Industry-Forum/dash.js/wiki
9
-
Server
ManifestFile Multiplebit-rate/resolutionvideosdivided
intomulti-secondsegments
HowDASHWorks
10
Clients
§ ClientsrequestanewvideosegmenteveryX seconds.§ Thebit-rateoftherequestedsegmentisbasedonthe
averageTCPthroughputoflastY segments.
HTTP
GET
VIDEOVIDEOVIDEO
-
GeneralVideoRateAdaptationAlgorithm
1. Estimatebandwidth1. Updatebandwidthestimateofith chunk,B[t]2. BasedonpreviousbandwidthestimatesB[1],B[2],...,B[t],predictnew
bandwidthB[t+1]
2. Makenewvideorateselection1. PickthenewvideorateR=f(videobitrate,networkbandwidth,buffersize)2. t++
3. Gotostep1
11
-
CurrentApproach1:Bandwidth-based
• Defaultapproach:R[t+1]=max{r:r<B[t+1]}
• Problem:higherbitratesà higherbandwidthestimateà unfaircompetitionbetweenclients• Loweroverheadforhigherbitrates
• R[t+1]=f(previousvideobitrate,bandwidthestimate)=f(R[t],B[t+1])
• Compensatebyrampingupquicklyforlowerbitrates,rampingupslowlyforhigherbitrates
12Reference:http://conferences.sigcomm.org/co-next/2012/eproceedings/conext/p97.pdf
currentvideobitrate
rateofincrease
-
CurrentApproach2:Buffer-based
• Insteadystate,R=f(buffersize)
13Reference:http://yuba.stanford.edu/~nickm/papers/sigcomm2014-video.pdf
-
CurrentApproach3:Bandwidth+Buffer-based• Lookintothefuture:makebandwidthpredictionsforthenextNtimeslots
• R[t+1]=f(previousvideobitrate,bandwidthestimate,buffer)
=f(R[t],B[t],…,B[t+N],buffersize)
• Markovdecisionprocesswithonlinetablelookup• Multi-criterionobjective
14Reference:http://conferences.sigcomm.org/sigcomm/2015/pdf/papers/p325.pdf
-
DownloadBooster
15
-
DownloadBooster• Wanttospeedupdownloadsoflargefilesbyusingmultipleinterfacessimultaneously(e.g.,WiFi,4G,Ethernet)
• SamsungintroducedDownloadBooster,butitgotblockedbymajorcarriers
• Multipath-TCPisanothermajorstandardizationefforttoenablemultiplenetworks
16
-
ReviewofTCPThroughput
• Controltransmissionratebysettingwindowsize• Windowsize=min{cwnd,rwnd}• cwnd =congestionwindow(setbysender)• rwnd =receivewindow(setbyreceiver)
• Scheduler(multiplenetworksonly)• If#ofpkts tosend<windowsize,whichpipeshouldIsendthepkts on?
17
time
cwnd
slowstart congestionavoidance
IfACKreceived:cwndß cwnd +1/cwnd
Ifloss:cwndß cwnd/2
TCPcongestionavoidance:
-
TransportandApplicationLayerApproaches
Transportlayer:multipath-TCP• MPTCPcongestioncontrol+(default,roundrobin)scheduler• Corse-grainedschedulercontrol(operateonpackets)
Applicationlayer:HTTPproxy• TCPcongestioncontrol+yourscheduler• Fine-grainedschedulercontrol(operateonbytes)
18
Client
Internet
Application
Virtualinterface
Remoteserver
-
Multipath-TCP
• Congestioncontrol• Separatecongestionwindowforeachsubflow r
• Scheduler• Default:SendpacketsonthepipewiththelowestRTT• Round-robin:Mayleavespaceopenincongestionwindow
19
[1]https://www.eecs.berkeley.edu/~sylvia/cs268-2014/papers/mptcp.pdf[2]http://conferences.sigcomm.org/co-next/2012/eproceedings/conext/p1.pdf
IfACKreceived:
cwndr ß cwndr +!"#%
&'()*+,,*
-
∑ /012*/�* 566*-
Ifloss:cwndß cwnd/2
MPTCPdefault[1] Pareto-optimal[2]
IfACKreceived:
cwndr ß cwndr +/0127/5667-
∑ /012*/�* 566*- +
9:/012:
Ifloss:cwndß cwnd/2
-
HTTPProxy
• Congestioncontrol• StandardTCPcongestioncontroloneachpipe
• Scheduler• Howtoschedulepacketsontoeachpipe?Yourdesign!• E.g.,schedulepacketsproportionaltoestimatedbandwidth
20
IfACKreceived:cwndß cwnd +1/cwnd
Ifloss:cwndß cwnd/2
-
ExampleProjectsfromPreviousYears
• Convertfirst-person-shootervideogameonPCtodisplayinVR• “Zombietag”appusingNFConphones• WebsiteforsynchronizedvideowatchingonYouTube
21
-
Proposal
• 1-pagesummaryandplanofyourproject• DuenextMonday• Worth10%ofyourgrade• FeelfreetocometoofficehoursonThursday2-4pm
• Sections• Executivesummary• Comparisonagainstwhatothershavedone
• e.g.,startups,researchpapers,commercialproducts• Targetfeatures
• Milestone0(oralprogressupdatemid-quarter)• Milestone1
• Methodology(e.g.,tools,programminglanguages)• Evaluation(e.g.,testbed,metrics)
22
-
Proposal
• Makesuretoaddress• Whatmakesyourprojectinteresting?Doesitfulfilsomeunmetneed?Whoisitusefulfor?
• Atleastonefigureshowingsystemdesign/architecture
• Ifyou’rechoosinganexistingproject(MPEG-DASHorMPTCP)• Readthereferences,comparethem,anddiscusswhatyouexpecttofind/improve
• Ifyou’rechoosingyourownproject• Whyshouldsomeoneinvestinyour“startup”?
• Writtenfeedbackgiven1weeklater23
-
ComingUp…
• Labthisweek• Workonyourproposal
• TodobynextMonday(1/30)• SubmitproposalviaiLearn by1:10pm(onepergroup)
24