Packets Falling from the Air
Jeremy Stinson
VP of Network Operations
MeetMe
@jstinson
Cheesy jokes will
follow, continue at
your own risk!!!
Latency is defined as the time it takes for a
source to send a packet of data to a receiver.
Latency is typically measure in milliseconds. The
lower the latency (the fewer the milliseconds),
the better the network performance.
Data from OpenSignal (Feb 2014)
0
20
40
60
80
100
120
LTE LTE LTE LTE
AT&T Sprint T-Mobile Verizon
LTE Mean Latency (ms)
Data from OpenSignal (Feb 2014)
0
50
100
150
200
250
AT&T T-Mobile AT&T T-Mobile AT&T T-Mobile Sprint Verizon Sprint Verizon
UMTS HSPAP HSPA EVDO A eHRPD
3G Mean Latency (ms)
How does
mobile work?
When is the
speed of light
not the speed
of light?
40% Loss
I tried to come
up with an IPv4
joke, but the
good ones were
all already
exhausted…
Didn’t we run out of
IPv4 jokes?
How does
TCP work?
45ms
SYN
45ms
SYN-ACK
45ms
ACK
45ms
GET / HTTP/1.0
45ms +
200ms
HTTP 200 …
So what what does this mean?
45
45
45
45
+ 200
-------------
380ms
45ms
SYN
90ms
45ms
SYN-ACK
90m
s
45ms
ACK
90ms
45ms
GET / HTTP/1.0
90ms
45ms +
200ms
HTTP 200 …
90m
s
So how much worse is this going to be?
45 + 90
45 + 90
45 + 90
45 + 90
+ 200
-------------
740ms
740 - 380 = 360ms
What about 3G or worse?
45 + 150
45 + 150
45 + 150
45 + 150
+ 200
-------------
980ms
3G sucks more
Reality
90m
s
15ms
45ms
Reality
90m
s
90m
s
15ms
45ms
Reality
90m
s
90m
s
90m
s
15ms15ms
45ms
Reality
90m
s
90m
s
90m
s
90m
s
45ms
15ms15ms
45ms
Reality
90m
s
90m
s
90m
s
90m
s
45ms
15ms15ms
2.9 seconds later
What lessons can
we learn from
this?
Limit the number
of API endpoints
Limit DNS
queries
Limit low DNS
TTLs
Use HTTP
Keepalive
Use Websockets
Use client side
cache
Bending the
laws of
physics
45ms
HTTP Proxy
90m
s
5ms
Results
Normal HTTP Request
Server Software: Apache
Server Hostname: www.meetme.com
Server Port: 80
Document Path: /
Document Length: 30332 bytes
Time taken for tests: 4.202 seconds
Total transferred: 316049 bytes
HTML transferred: 303307 bytes
Requests per second: 2.38 [#/sec] (mean)
Time per request: 420.232 [ms] (mean)
Transfer rate: 73.45 [Kbytes/sec]
Proxyed HTTP Request
Server Software: Apache
Server Hostname: www.meetme.com
Server Port: 3300
Document Path: /
Document Length: 30259 bytes
Time taken for tests: 2.197 seconds
Total transferred: 315326 bytes
HTML transferred: 302582 bytes
Requests per second: 4.55 [#/sec] (mean)
Time per request: 219.739 [ms] (mean)
Transfer rate: 140.14 [Kbytes/sec]
47%
Do-it yourself opensource
WANProxy
Do-it yourself vendors
CDNs
CDNs
CDNs
SSL
Additional Overhead
The problem with SSL
jokes is that you must get
someone else to vouch for
you before you can tell the
joke.
SPDY
• Connection multiplexing
• Multiple Requests per connection
• Out of order responses
• Compress HTTP Headers
• Server side push
MCTCP
Questions?

Packets Falling From The Air

Editor's Notes

  • #6  ----- Meeting Notes (7/29/14 18:36) ----- There is limit gain after a certain point
  • #13 Lay their towers in a grid formation so that their licensed frequencies do not overlap ----- Meeting Notes (7/29/14 18:57) ----- 1. Each carrier goes through a auction system to purchase free frequencies, the more frequencies the denser you can get. 2. Frequencies are laid out in a grid to prevent overlap which allows the carrier to re-use the same frequencies in the region
  • #14  ----- Meeting Notes (7/29/14 18:57) ----- 1. phone comes out of sleep mode, negotiates a frequency to use with the local tower, and data can start being sent out
  • #15  ----- Meeting Notes (7/29/14 18:57) ----- Conveintly near you, different atteneas are used for different technologies (LTE vs 3g, etc)
  • #18  ----- Meeting Notes (7/29/14 18:57) ----- translates data from LTE to ethernet and sends it out
  • #21  ----- Meeting Notes (7/29/14 18:57) ----- local pop
  • #35 3g, 4g, and LTE are all over IP from the beginning, LTE is native IPv6. Why is this important?
  • #36 EVIL!!!!
  • #58 DNS lookup
  • #59 First Request
  • #60 Another DNS lookup
  • #61 Facebook auth
  • #62 Final data set
  • #74 First Request
  • #80 First Request
  • #81 First Request
  • #82 First Request
  • #93 Header compression resulted in an ~88% reduction in the size of request headers and an ~85% reduction in the size of response headers. On the lower-bandwidth DSL link, in which the upload link is only 375 Kbps, request header compression in particular, led to significant page load time improvements for certain sites (i.e. those that issued large number of resource requests). We found a reduction of 45 - 1142 ms in page load time simply due to header compression
  • #98 MPTCP is intended to create more robust connections, resistant to path failures, and to improve performance, especially for delay-sensitive applications such as voice