GPRSWeb: optimizing the web for GPRS links
Rajiv Chakravorty
The General Packet Radio Service (GPRS) is being deployed by GSM
network operators world-wide, and promises to offer users "always-on"
data access at bandwidths comparable to that of conventional
fixed-line telephone modems. Unfortunately, many users have found the
reality to be rather different, experiencing very disappointing
performance when, for example, browsing the web over GPRS.
In this paper we investigate what causes the HTTP protocol and its
underlying transport TCP to underperform in a GPRS environment. We
examine why certain GPRS network characteristics interact badly with
TCP to yield problems such as: link under-utilization for short-lived
flows, excess queueing for long-lived flows, ACK compression, poor
loss recovery, and gross unfairness between competing flows. We also
show that many web browsers tend to be overly aggressive, and by
opening too many simultaneous TCP connections can aggravate matters.
We present the design and implementation of GPRSWeb -- a mobile HTTP
proxy system that mitigates many of the performance problems with a
simple software update to a GPRS mobile device. The update is a
'client proxy' that sits in the mobile device, and communicates with a
'server proxy' located at the other end of the GPRS link close to the
wired-wireless border. The dual proxy architecture collectively
implements a number of key enhancements -- an aggressive caching
scheme that employs content-based hash keying to improve hit rates for
dynamic content, a preemptive push of web page support resources to
mobile clients, resource adaptation to suit client capabilities, delta
encoded data transfers, DNS lookup migration, and a UDP-based reliable
transport protocol that is specifically optimized for use over
GPRS. We show that these enhancements result in significant
improvement in overall WWW performance over GPRS.
|