Re: [Cerowrt-devel] [Bloat] blip: a tool for seeing internet latency with javascript

2013-04-28 Thread Rich Brown
This is indeed a cool hack. I was astonished for a moment, because it was a 
bedrock belief that you can't send pings from Javascript. And in fact, that is 
still true.

Apenwarr's code sends short HTTP queries of the format shown below to each of 
two hosts: 

http://gstatic.com/generate_204
http://apenwarr.ca/blip/

The Blip tool shows ~60-70ms for the gstatic host, and ~130 msec for the 
latter. Ping times are ~52 msec and 125msec, respectively. These times seem to 
track response times by my eye (no serious analysis) to load both on my primary 
(bloated) router and CeroWrt.

Still a cool hack.

Rich

-
HTTP Request  Response for typical blip ping

OPTIONS /generate_204 HTTP/1.1
Host: gstatic.com
Connection: keep-alive
Access-Control-Request-Method: GET
Origin: http://gfblip.appspot.com
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_3) AppleWebKit/537.31 
(KHTML, like Gecko) Chrome/26.0.1410.65 Safari/537.31
Access-Control-Request-Headers: accept, origin, x-requested-with
Accept: */*
Referer: http://gfblip.appspot.com/
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3

HTTP/1.1 204 No Content
Content-Length: 0
Content-Type: text/html; charset=UTF-8
Date: Sun, 28 Apr 2013 12:37:17 GMT
Server: GFE/2.0


On Apr 26, 2013, at 7:04 PM, Dave Taht dave.t...@gmail.com wrote:

 Apenwarr has developed a really unique tool for seeing latency and
 packet loss via javascript. I had no idea this was possible:
 
 http://apenwarr.ca/log/?m=201304#26
 
 
 
 -- 
 Dave Täht
 
 Fixing bufferbloat with cerowrt: 
 http://www.teklibre.com/cerowrt/subscribe.html
 ___
 Bloat mailing list
 bl...@lists.bufferbloat.net
 https://lists.bufferbloat.net/listinfo/bloat

___
Cerowrt-devel mailing list
Cerowrt-devel@lists.bufferbloat.net
https://lists.bufferbloat.net/listinfo/cerowrt-devel


Re: [Cerowrt-devel] [Bloat] blip: a tool for seeing internet latency with javascript

2013-04-28 Thread Maciej Soltysiak
At home with latest cero, I'm getting results similar to Rich.

I'm wondering how this will look tomorrow when I run it at company network,
which is incredibly complex WAN path, proxied, with things like riverbed
and checkpoint along the way.

Maciej



On Sun, Apr 28, 2013 at 4:56 PM, Rich Brown richb.hano...@gmail.com wrote:

 This is indeed a cool hack. I was astonished for a moment, because it was
 a bedrock belief that you can't send pings from Javascript. And in fact,
 that is still true.

 Apenwarr's code sends short HTTP queries of the format shown below to each
 of two hosts:

 http://gstatic.com/generate_204
 http://apenwarr.ca/blip/

 The Blip tool shows ~60-70ms for the gstatic host, and ~130 msec for the
 latter. Ping times are ~52 msec and 125msec, respectively. These times seem
 to track response times by my eye (no serious analysis) to load both on my
 primary (bloated) router and CeroWrt.

 Still a cool hack.

 Rich

 -
 HTTP Request  Response for typical blip ping

 OPTIONS /generate_204 HTTP/1.1
 Host: gstatic.com
 Connection: keep-alive
 Access-Control-Request-Method: GET
 Origin: http://gfblip.appspot.com
 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_3)
 AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.65 Safari/537.31
 Access-Control-Request-Headers: accept, origin, x-requested-with
 Accept: */*
 Referer: http://gfblip.appspot.com/
 Accept-Encoding: gzip,deflate,sdch
 Accept-Language: en-US,en;q=0.8
 Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3

 HTTP/1.1 204 No Content
 Content-Length: 0
 Content-Type: text/html; charset=UTF-8
 Date: Sun, 28 Apr 2013 12:37:17 GMT
 Server: GFE/2.0


 On Apr 26, 2013, at 7:04 PM, Dave Taht dave.t...@gmail.com wrote:

  Apenwarr has developed a really unique tool for seeing latency and
  packet loss via javascript. I had no idea this was possible:
 
  http://apenwarr.ca/log/?m=201304#26
 
 
 
  --
  Dave Täht
 
  Fixing bufferbloat with cerowrt:
 http://www.teklibre.com/cerowrt/subscribe.html
  ___
  Bloat mailing list
  bl...@lists.bufferbloat.net
  https://lists.bufferbloat.net/listinfo/bloat

 ___
 Cerowrt-devel mailing list
 Cerowrt-devel@lists.bufferbloat.net
 https://lists.bufferbloat.net/listinfo/cerowrt-devel

___
Cerowrt-devel mailing list
Cerowrt-devel@lists.bufferbloat.net
https://lists.bufferbloat.net/listinfo/cerowrt-devel


Re: [Cerowrt-devel] [Bloat] blip: a tool for seeing internet latency with javascript

2013-04-28 Thread dpreed


 
Actually, using HTTP 1.1 GET  that generates a single packet in each direction 
for a ping is quite reasonable.  In fact, it is better for measuring actual 
path latencies, since ICMP pings *could* be discriminated against in a router 
along the way (in the old days people in the routing community suggested that 
ICMP should be diverted off of the fast path to avoid degrading the user 
experience).
 
I've been using this technique to measure bufferbloat-induced delays on Phones 
and Android phones for quite a while.  I have a couple of servers that use 
nginx status handlers to generate a short GET response without touching files 
as my targets.
 
Since it depends on HTTP 1.1's re-use of the underlying TCP connection for 
successive GET commands, it's a bit fragile.
 
Javascript can be made to do a lot of performance testing - you can access both 
TCP and DNS protocols from the browser, so if you play cards right, you can 
cause single TCP exchanges and single UDP exchanges to happen with cooperative 
servers (web servers using HTTP 1.1 and DNS resolvers using uncacheable UDP 
name lookups).
 
 
 


On Sunday, April 28, 2013 10:56am, Rich Brown richb.hano...@gmail.com said:



 This is indeed a cool hack. I was astonished for a moment, because it was a
 bedrock belief that you can't send pings from Javascript. And in fact, that is
 still true.
 
 Apenwarr's code sends short HTTP queries of the format shown below to each of 
 two
 hosts:
 
 http://gstatic.com/generate_204
 http://apenwarr.ca/blip/
 
 The Blip tool shows ~60-70ms for the gstatic host, and ~130 msec for the 
 latter.
 Ping times are ~52 msec and 125msec, respectively. These times seem to track
 response times by my eye (no serious analysis) to load both on my primary
 (bloated) router and CeroWrt.
 
 Still a cool hack.
 
 Rich
 
 -
 HTTP Request  Response for typical blip ping
 
 OPTIONS /generate_204 HTTP/1.1
 Host: gstatic.com
 Connection: keep-alive
 Access-Control-Request-Method: GET
 Origin: http://gfblip.appspot.com
 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_3) AppleWebKit/537.31
 (KHTML, like Gecko) Chrome/26.0.1410.65 Safari/537.31
 Access-Control-Request-Headers: accept, origin, x-requested-with
 Accept: */*
 Referer: http://gfblip.appspot.com/
 Accept-Encoding: gzip,deflate,sdch
 Accept-Language: en-US,en;q=0.8
 Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
 
 HTTP/1.1 204 No Content
 Content-Length: 0
 Content-Type: text/html; charset=UTF-8
 Date: Sun, 28 Apr 2013 12:37:17 GMT
 Server: GFE/2.0
 
 
 On Apr 26, 2013, at 7:04 PM, Dave Taht dave.t...@gmail.com wrote:
 
  Apenwarr has developed a really unique tool for seeing latency and
  packet loss via javascript. I had no idea this was possible:
 
  http://apenwarr.ca/log/?m=201304#26
 
 
 
  --
  Dave Täht
 
  Fixing bufferbloat with cerowrt:
 http://www.teklibre.com/cerowrt/subscribe.html
  ___
  Bloat mailing list
  bl...@lists.bufferbloat.net
  https://lists.bufferbloat.net/listinfo/bloat
 
 ___
 Cerowrt-devel mailing list
 Cerowrt-devel@lists.bufferbloat.net
 https://lists.bufferbloat.net/listinfo/cerowrt-devel

 ___
Cerowrt-devel mailing list
Cerowrt-devel@lists.bufferbloat.net
https://lists.bufferbloat.net/listinfo/cerowrt-devel