Mobile/Gonzales: Difference between revisions
(→Goals) |
No edit summary |
||
| Line 6: | Line 6: | ||
* Reduce page load times | * Reduce page load times | ||
* Reduce bandwidth requirements | * Reduce bandwidth requirements | ||
* Increase user privacy | * '''Increase user privacy''' | ||
* Increase responsiveness for slow sites | * 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 == | == System Overview == | ||
| Line 33: | Line 37: | ||
* Spdylay (http://tatsuhiro-t.github.io/spdylay) | * Spdylay (http://tatsuhiro-t.github.io/spdylay) | ||
* Squid (http://www.squid-cache.org) | * Squid (http://www.squid-cache.org) | ||
* [alternative] Node SPDY proxy (https://github.com/igrigorik/node-spdyproxy) | |||
Here are some experimental setups. | |||
==== P1 ==== | ==== 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. | |||
<code> | <code> | ||
Desktop Client <-SPDY-> SPDY Proxy <-HTTP-> Web Proxy <-HTTP-> Web | Desktop Client <-SPDY-> SPDY Proxy <-HTTP-> Web Proxy <-HTTP-> Web | ||
| Line 40: | Line 49: | ||
Firefox <-HTTP-> [shrpx -k -p] --[shrpx -s]-- ----Squid---- | Firefox <-HTTP-> [shrpx -k -p] --[shrpx -s]-- ----Squid---- | ||
</code> | </code> | ||
==== P2 ==== | ==== 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. | |||
<code> | <code> | ||
Mobile Client <-SPDY-> SPDY Proxy <-HTTP-> Web Proxy <-HTTP-> Web | Mobile Client <-SPDY-> SPDY Proxy <-HTTP-> Web Proxy <-HTTP-> Web | ||
Revision as of 16:00, 30 April 2014
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:
- Firefox/Fennec
- Spdylay (http://tatsuhiro-t.github.io/spdylay)
- Squid (http://www.squid-cache.org)
- [alternative] Node SPDY proxy (https://github.com/igrigorik/node-spdyproxy)
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----