Mobile/Gonzales

From MozillaWiki
< Mobile
Revision as of 16:00, 30 April 2014 by Esawin (talk | contribs)
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 enhance 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

Tracking Bugs

Currently, we only track the work on the proxy on this wiki page, but we require secure SPDY proxy support on Fennec, which is tracked in

  • bug 378637 - Add support for connecting to HTTP proxy over HTTPS

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:

Here are some experimental setups.

P1

In this setup, we connect a desktop browser via HTTP with a local forwarding proxy, which establishes a SPDY connection with the remote secure SPDY proxy. The secure SDPY proxy connects to a local web proxy to fetch the documents.

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

P2

This setup is similar to P1, but running on a mobile client. This requires either direct secure SPDY proxy support on the mobile browser, or the usage of a local forwarding proxy running on the mobile device.

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

Compression

Caching