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
> Bloat mailing list
On Apr 26, 2013, at 7:04 PM, Dave Taht <dave.taht@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@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