TCP connection proliferation.
Increasing concurrent connections
through browser policy and sharding
can improve page-load time but create
other problems. Though highly concurrent connections circumvent an overly
conservative slow start on a single TCP
connection, they may (in aggregate) exceed total available bandwidth, inducing packet loss. Moreover, the likelihood of losing a critical control packet
increases with the number of concurrent connections; for example, the TCP
SYN packet, which initiates a TCP connection, has a retransmission timeout
measured on the order of seconds if no
acknowledgment is received.
Highly concurrent TCP connec-
tions also decrease the likelihood of
fast retransmit being invoked under
packet loss. Fast retransmit is a TCP
enhancement that immediately re-
sends a packet without waiting for
a fixed timeout delay if acknowledg-
ments for several packets subsequent
to the lost packet are received. High-
ly concurrent connections obtain
less bandwidth individually than a
single long-lived connection and are
therefore less likely to receive and ac-
knowledge enough packets in a short
enough duration to trigger fast re-
transmit. There is also less “body” in
each short-lived connection, increas-
ing the likelihood that any packet loss
would occur near the end of a connec-
tion where too few acknowledgments
exist to trigger fast retransmit.
to competing applications still using
multiple TCP connections; for example, a backoff algorithm that responds
to packet loss by reducing the available
bandwidth of a connection by 50% will
likewise halve the total bandwidth
available to an application using a single SPDY TCP connection. The same
backoff algorithm applied to an application using 12 concurrent TCP connections would reduce the total available bandwidth to the application by
only 4% (1/24) of the connections. Connection proliferation should not be encouraged over the long term, though a
short-term mitigation strategy would
involve using a small number of concurrent SPDY connections. Long-term
research may look to address this issue
through smarter backoff algorithms
providing equitable treatment to applications, independent of the number of TCP connections.
transitioning to sPDY
SPDY has been implemented in several
popular client browsers, most notably
Chrome and Firefox. Though server
support for SPDY continues to grow,
it has yet to reach the maturity and
adoption of client implementations.
SPDY gateways are one way to acceler-
No SPDY Gateway
client
translateexample.com
example.com is 192.0.43.10
DNS name server
example.com
(192.0.43.10)
GETexample.com/home
200 OK
With SPDY Gateway
client
Client sends
request
without
translating
domain name
GETexample.com/home
SPDY gateway
DNS name server
translateexample.com
GETexample.com/home
example.com is 192.0.43.10
200 OK
200 OK
december 2012 | vol. 55 | no. 12 | communications of the acm 71