Account Options

  1. Sign in
The old Google Groups will be going away soon, but your browser is incompatible with the new version.
Google Groups Home
« Groups Home
Detecting HTTP pipelining in Network tests
There are currently too many topics in this group that display first. To make this topic appear first, remove this option from another topic.
There was an error processing your request. Please try again.
flag
  4 messages - Collapse all  -  Translate all to Translated (View all originals)
The group you are posting to is a Usenet group. Messages posted to this group will make your email address visible to anyone on the Internet.
Your reply message has not been sent.
Your post was successful
 
From:
To:
Cc:
Followup To:
Add Cc | Add Followup-to | Edit Subject
Subject:
Validation:
For verification purposes please type the characters you see in the picture below or the numbers you hear by clicking the accessibility icon. Listen and type the numbers you hear
 
Guypo  
View profile   Translate to Translated (View Original)
 More options Aug 13 2011, 5:29 pm
From: Guypo <guy...@gmail.com>
Date: Sat, 13 Aug 2011 14:29:15 -0700 (PDT)
Local: Sat, Aug 13 2011 5:29 pm
Subject: Detecting HTTP pipelining in Network tests
Hey,

While HTTP pipelining has been dormant in desktop, it's very much
alive in mobile browsers. Android and Opera support it (accounting for
40% of total mobile browsing), and there are indications more browsers
will be adding support soon.

WDYT about adding HTTP pipelining detection in Browserscope?
It should be fairly easy to detect - simply create an iframe going to
a test page with ~40 resource on the same host, and track on the
server how they were requested. That said, it may get tricky if the
web server hides the fact the requests were piped. Ideally you can
capture the network traffic going to that client at that time, and
reach conclusions from that (that's how I was doing it manually).

I would suggest capturing these variables:
1) HTTP pipelining support in general.
2) Max piped requests per connection
3) Server Support Detection (Per Server, Per Connection)
4) Request Distribution Algorithm

The 1st is obvious.
The 2nd and 3rd are explained in this blog post:
http://www.blaze.io/mobile/http-pipelining-big-in-mobile/
The 4th is explained in this blog post:
http://www.blaze.io/technical/http-pipelining-request-distribution-al...

Just throwing the idea out there... I'm afraid I can't volunteer dev
time to go along with it right now.

WDYT?

Cheers,
Guypo


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Steve Souders  
View profile   Translate to Translated (View Original)
 More options Aug 15 2011, 3:10 pm
From: Steve Souders <st...@souders.org>
Date: Mon, 15 Aug 2011 12:10:53 -0700 (PDT)
Local: Mon, Aug 15 2011 3:10 pm
Subject: Re: Detecting HTTP pipelining in Network tests
Hi, Guypo.

This would be nice to do. It won't be much of a differentiator now
since so few browsers support it, but it could help push future
browser development in this area.

One complication is the Network category runs on Google App Engine
which dramatically limits what you can do on the server wrt inspecting
and setting HTTP headers. Can you expand on the logic to "track on the
server how they were requested" in order to measure the variables you
suggested?

Thanks.

-Steve

On Aug 13, 2:29 pm, Guypo <guy...@gmail.com> wrote:


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Brian Pane  
View profile  
 More options Aug 15 2011, 3:39 pm
From: Brian Pane <bri...@brianp.net>
Date: Mon, 15 Aug 2011 12:39:30 -0700
Local: Mon, Aug 15 2011 3:39 pm
Subject: Re: [Browserscope] Re: Detecting HTTP pipelining in Network tests
Here's an idea for detecting pipelining inside an app that doesn't
have low-level access to the TCP streams:

1. Attempt to measure the round trip time between the client and the
server.  To do this, get the browser to request a URI X, send back a
302 with "Connection: Keep-Alive" and "Location: Y," where Y is a new
URI that has the server's current clock value encoded into it.  When
the browser requests Y, measure the time delta.  Repeat several times
and keep the smallest value found.

2. Ask the browser to fetch a lot of very small resources.  As each
resource is requested, make a note of the connection (based on the
client's IP address and TCP port number) and the current time.

3. If the resulting data set contains successive requests on the same
connection that are separated in time by less than the round trip time
measured in step 1, you've found request pipelining.

-Brian


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Guypo  
View profile  
 More options Aug 15 2011, 6:56 pm
From: Guypo <guy...@gmail.com>
Date: Mon, 15 Aug 2011 15:56:59 -0700 (PDT)
Local: Mon, Aug 15 2011 6:56 pm
Subject: Re: Detecting HTTP pipelining in Network tests
Steve,

Pipelining is already reasonably supported in Mobile, and there are
various indications it's growing there, so IMO this won't be too
premature :)
In fact, since we haven't tested for it, we may know that even more
browsers support it (amongst the less mainstream browsers)

Brian,

Very creative thinking, and I can see it working.
It relies on the roundtrip time being much bigger than the server
processing time, but that's probably a fair assumption.
It also relies on the servlet knowing at least the source IP, and
ideally the connection ID - do you know if those details are available
to a Google App Engine Servlet?

I think Browserscope actually already measures latency at an earlier
network test, so that might be good enough instead of step #2.

Seems like this technique also helps you determine the other
pipelining aspects too, since not only can you detect pipelining, but
also how many requests were piped on each connection. Thus you can
determine max piped requests per connection, the server-support
detection model (per connection or per server), and if we number the
resources also the fill-first vs distribute-first methodology.

Very cool!

Cheers,
Guypo

On Aug 15, 3:39 pm, Brian Pane <bri...@brianp.net> wrote:


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
End of messages
« Back to Discussions « Newer topic     Older topic »