Video streaming over the cellular connection is one of the increasingly popular, as well as demanding, applications on smartphones. In this work, we consider a group of smartphone users, within proximity of each other, who are interested in streaming the same video from the Internet at the same time. The common practice today is that each user downloads the video independently using one connection (e.g., cellular or WiFi), which often leads to poor quality.
We design, implement, and evaluate a novel system, called MicroCast, that cooperatively uses the resources on all smartphones of the group so as to improve the streaming experience. Each phone uses simultaneously two network interfaces: one (cellular) to connect to the video server and another (WiFi) to connect to the rest of the group. Key ingredients of our design include the following. First, we propose a scheduling algorithm, MicroDownload, that decides what parts of the video each phone should download from the server, based on the phones’ download rates and the congestion in the local network. Second, we propose a novel all-to-all local dissemination scheme, MicroNC-P2, for sharing content among group members, which outperforms state-of-the-art peer-to-peer schemes in our setting. MicroNC-P2 is explicitly designed to exploit WiFi overhearing and network coding, based on a local broadcast framework, MicroBroadcast, which we developed specifically for Android phones.