Google's new experimental protocol that theoretically transports web content faster than HTTP has attracted interest from users and developers — but the web giant has now come up with proof, not theories, that it will work for mobile devices.
The protocol, which Google has named SPDY, which is pronounced "speedy", has already spurred Mozilla into working support for it into Firefox, and sent Microsoft to the drawing board to create competing technology. Google's application on mobile platforms, however, has seen limited results, until now.
New research by three developers, Matt Welsh, Ben Greenstein and Michael Piatek of Google's Mobile Web Performance team, has shown that mobile can also benefit from SPDY. Mobile platforms are typically plagued by issues of higher round-trip times and, at least on 3G networks in Australia, typically lower broadband speeds than is available through wired networks.
The three researchers set about using Google Chrome for Android, which has support for SPDY, to test 77 URLs from 31 different websites, and compared SPDY results with those obtained using the traditional HTTP protocol.
The results found that on average, SPDY was faster than HTTP in all but one instance and resulted in an average load-time reduction of 23 per cent over HTTP, or a speed increase of up of 1.3 times.
The ability to load content faster stems from a combination of features. Using header compression, redundant data can be removed, reducing the overhead that is found in using HTTP. SPDY also uses a single Transmission Control Protocol (TCP) connection to the web host. This connection is then used to spawn several SPDY streams, which can fetch website resources in parallel. With HTTP, several TCP connections are used, and resources are fetched almost always sequentially for each TCP connection. HTTP Pipelining is a proposed method of allowing parallel connections in a single TCP stream, but few browsers support it, and any delay in a single requested resource can delay the entire stream.
The use of a single TCP connection also has an effect on the security of connections. SPDY has been designed to mandate the connection to use secure socket layer (SSL) encryption. To achieve the same level of security under HTTPS, it would require an additional SSL overhead for each of the TCP connections established. SPDY, on the other hand, only has to experience this overhead once.
Special care was taken by the research team to perform the experiment in a controlled environment. It tethered the test phone, a Samsung Galaxy Nexus, to a desktop machine, and then emulated a 3G network with 1Mbps/2Mbps up/down bandwidth and a 150-millisecond round-trip delay. The team also decided to use its own DNS server to isolate requests from the internet and remove any potential variance due to different DNS look-up times. Content from each of the sites was also cached on its own servers to eliminate variances in routing or differences in the hosts' server loads, between tests.