Google’s SPDY protocol aims to speed up web browsing
14 Nov 2009
Google's, 'let's make the web faster' initiative aims to bring the ease of turning the pages of a book. to the web. Towards that end the search engine company has been experimenting with alternative protocols to cut the latency of web pages.
In a data network like the internet, latency is a measure of how much time a packet of data takes to get one designated point to another. The less the amount of latency, the less time it takes for a packet of data to reach an particular point from another and therefore the faster is the network.
Google has developed the SPDY protocol, an application level protocol for transporting content over the web to cut down latency and additionally has also developed a SPDY-enabled Google Chrome browser and open-source web server.
The lab tests it has conducted have shown up improvement in performance to the extent of 64 per cent reduction in page load times in SPDY over HTTP, the application level protocol providing basic request / response semantics.
Though HTTP has proved to be robust application level protocol, it was not designed to handle the kind of demands web pages transmitted today, which are significantly different from the kind 10 years ago, place on a protocol. HTTP therefore falls short on a number of features some of which are:
- Single request per connection allows only one resource at a time to be fetched
- Only client can initiate requests in HTTP. Server cannot inform client even if it knows the client needs a resource. Consequently it has to wait for a request for the resource from the client.
- Uncompressed request and response headers –Request headers range in size today from 200 bytes to over 2KB which can cause significant latency for modems or ADSL connections with low uplink bandwidth.
SPDY addresses the demands of today's networking through a number of innovative design features. It incorporates a session layer atop of SSL for multiple concurrent, interleaved streams over a single TCP connection. It allows bidirectional streams i.e. both client and server can initiate streams.