ANN ARBOR--Despite that most web traffic today comes from smartphones and tablets, the mobile web remains inconveniently slow. Even on fast 4G networks, a page takes 14 seconds to load on average--an eternity in today's connected world.
A team of computer science researchers at the University of Michigan and MIT has found a way to dramatically speed up the mobile web. Their new Vroom software prototype works by optimizing the end-to-end interaction between mobile devices and web servers. They tested the software on 100 popular news and sports websites, and they found that Vroom cut in half the median load time on landing pages--from 10 seconds to 5.
"Vroom dramatically improves upon solutions such as proxy servers, which come with security and privacy concerns. And it complements solutions such as Google's Accelerated Mobile Pages project, which requires web pages to be rewritten. For any particular version of a web page, Vroom optimizes the process of loading that page," said Harsha Madhyastha, U-M associate professor of computer science and engineering and one of Vroom's developers.
Why the mobile web is slow
A key reason for the lag on mobile sites is that, even when a user visits a mobile-optimized page, the browser must incrementally discover, download and process close to 100 URLs--the resources that constitute the page--before that page fully reveals itself.
"A lot needs to be bound and assembled, especially on sports and news pages with live content and personalized ads," said Vaspol Ruamviboonsuk, U-M doctoral student in computer science and engineering who led the development of Vroom. "When a browser begins to load a page, all it knows is the main URL. Everything else, it has to discover on its own through multiple rounds of parsing and executing code to determine all the assets it needs."
This back-and-forth is necessary because both the central processing units and the networks of mobile devices are much slower than their counterparts on desktop and laptop machines. As a result, the mobile device's CPU sits idle and underutilized while requests and responses are transferred to servers over the cellular network.
One could rely on proxy servers to accelerate websites. Proxies essentially act as virtual CPUs, building out pages before transferring them to the browser. But they compromise security and privacy. They intercept HTTPS content and require access to a user's cookies.
The Vroom solution
In contrast, the new Vroom architecture bundles together resources that browsers will need to fully load pages. When a web server receives a request from a browser, in addition to returning the requested resource, the server also informs the browser about other dependent resources it will need to fetch.
Vroom takes a three-pronged approach to accomplishing this.
First, it augments HTTP responses with custom headers in order to push dependent resources. In the case of third-party content, which is common on web pages, Vroom doesn't deliver the resources, but instead sends "dependency hints" in the form of URLs for resources that the browser should fetch. This maintains security, but still allows web servers to personalize the information that's sent back, which is useful, for example, on news sites that recommend different stories to different users.
Second, Vroom makes web servers capable of identifying what resources and dependency hints make sense for the server to pass on to the browser. Third, Vroom coordinates server-side pushes and browser-side fetches in a way that maximizes use of the mobile device's CPU.
The researchers will present their findings at the ACM SIGCOMM conference Aug. 24 in a paper titled "Vroom: Accelerating the Mobile Web with Server-Aided Dependency Resolution." The research is funded in part by a Google Faculty Research Award, the National Science Foundation and the MIT Center for Wireless Networks and Mobile Computing.