Mobile/Gonzales

From MozillaWiki
Jump to navigation Jump to search

Gonzales is a SPDY compression proxy prototype for more efficient mobile browsing.

Goals

The goal of Gonzales is to verify whether we can improve the mobile browsing experience by achieving the following improvements in a practical way:

  • Reduce radio time
  • Reduce page load times
  • Reduce bandwidth requirements
  • Increase user privacy
  • Increase responsiveness for slow sites

System Overview

Gonzales is a proxy server that accepts HTTP requests via the SPDY protocol and serves compressed content directly from its cache, if available.

Browser <-SPDY-> Gonzales                                <-HTTP/HTTPS/SPDY-> Web
               |                                         |
               Proxy <-> Cache <-?-> Compressor <-> Loader

Routing requests through a SPDY proxy does require less open TCP connections (multiplexing), decreases packet sizes (header compression) and reduces the number of packets (header caching) compared to HTTP/1. Low bandwidth and high latency connections should benefit from this.

The current trend on the Web shows an increase in average page size, especially due to high-resolution images. Additional image compression and downsizing should decrease the bandwidth requirements and enable faster page loads. To counteract the introduced processing overhead and boost load times for slow pages, we add intermediate caching for the compressed results.

Experimental Setups

To evaluate the system, we test each component in isolation first. We identify third-party systems suitable for integration into the prototype and evaluate them. All qualified systems will be considered for integration or as the base of our final implementation.

SPDY Proxy

Currently, only Google Chrome supports secure SPDY proxies [still holds?], but it requires valid certificates, which makes it unsuitable for testing. We bypass the missing support by using shrpx in client mode as a forward proxy, and that way simulate SPDY support on the client.

Dependencies:

P1

Desktop Client               <-SPDY-> SPDY Proxy <-HTTP-> Web Proxy <-HTTP-> Web
                             |      |            |      |           |
Firefox <-HTTP-> [shrpx -k -p]      --[shrpx -s]--      ----Squid----

P2

Mobile Client               <-SPDY-> SPDY Proxy <-HTTP-> Web Proxy <-HTTP-> Web
                            |      |            |      |           |
Fennec <-HTTP-> [shrpx -k -p]      --[shrpx -s]--      ----Squid----

Compression

Caching