A popular tweak to Firefox may actually result in slower internet surfing if used improperly. Tests by New Tech Heroes show that setting the "pipelining" configuration setting to an excessively high number appears to result in throttling by either the user's ISP or by individual websites, or both.
Pipelining is a feature of the HTTP/1.1 internet protocol, which is part of the basic control structure of the Internet, what makes it work, if you will. Pipelining allows multiple HTTP (internet data) requests to be sent at the same time without waiting for an answer from the target web server. This generally results in faster web page load times, however, HTTP/1.1 is supported by most, but not all, web servers, so the pipelining technique doesn't always work. Also, if you're surfing the web on a dial-up connection, pipelining does you no good at all.
Browser support for pipelining is also variable. Internet Explorer, even in version 7, doesn't support it. Some reports suggest Opera does so by default. Firefox has pipelining turned off by default, but it can be activated by accessing Firefox's configuration page by typing "about:config" (without the quotes, of course) into the address field. This gives the user control over pretty much every setting used by the browser and any add-ons you have installed. Naturally, you want to be very careful when accessing this page, so you don't change a setting that causes Firefox not to function properly.
The problem with the pipelining setting is that several articles and blogs have recommended changing the "maxrequests" setting to 30 or more simultaneous HTTP requests. First, according to Mozilla's knowledge base, the number needs to be "any integer from 1 to 8 inclusive," which seems to imply that Firefox will only send a maximum of 8 HTTP requests at a time in any case. So setting it to anything larger than 8 isn't going to give any additional benefit. Second, consider that web servers have a limited ability to handle requests for data. Certainly it varies from server to server and network to network, but every server has a limit at which it can no longer handle data requests, and when that limit is approached or reached, the response time from that server degrades, not just for the user who reached the limit, but for all users currently trying to connect to it. So setting the "maxrequests" to 30 would also be a selfish behavior, and could result in the server's owner implementing methods to restrict such excessive data requests in order to maintain overall server reliability.
And it appears that is happening. New Tech Heroes Test Labs tried a number of settings for "maxrequests" in Firefox today, and discovered that values from 2 to 4 resulted in occasional disruption of web page loading, while settings from 5 to 8 resulted in the disruption every time we tested. Specifically, images loaded very slowly or not at all on the Google Image page we chose as our test page.
All tests were run on a PC running Windows XP Home. We opened a blank Firefox (version 2.0.0.11, with "about:blank" as our home page) browser window with a single tab, and then directed the browser to "www.google.com." "IBM logo" was used as our search term, and after the web page search results were displayed, we clicked "Images" to see Google's display of matching images to our search term. The "network.http.pipelining.maxrequests" setting was then changed in about:config, the browser closed, and then relaunched in the same method as described. The test was repeated for each integer value from 2 to 8 inclusive (setting "maxrequests" to 1 disables pipelining regardless of the value of "network.http.pipelining"). Our Firefox browser was configured to clear its cache and all other "private data" each time it closes, so there were no images pre-loaded from test to test.
NOTE: The same test was run using Internet Explorer 7, Opera 9.25 and Safari for Windows 3.04. In each case, the browser was set to its default settings. None of these browsers experienced any page loading difficulties when the "IBM logo" Google Image search was run.
We're uncertain whether the throttling of HTTP requests was being done by Google at its web server or perhaps by our ISP (Comcast). Certainly Comcast has been in the news in the past year for placing limits on excessive bandwidth use by its customers (using BitTorrent and similar peer-to-peer networking applications), but does have to maintain its network's reliability to all users and so may be filtering pipelining requests as well. Or Google may be limiting such excessive pipelining requests at the server level. The exact source of the apparent throttling, however, is less significant than the evidence that setting the "maxrequests" value to anything higher than 2 may result in slower page loading, not faster as suggested by some of those promoting the tweak (and especially anyone claiming that setting the value to 30 is beneficial).
The New Tech Heroes recommend using Firefox's pipelining option, but also recommend keeping the "maxrequests" value between 2 and 4. Try different settings for yourself and use the highest value that doesn't result in degraded page loading behavior.
To turn the Firefox pipelining feature on, type "about:config" into the address field (no http://, just about:config). Scroll down to the settings for "network.http.pipelining" and "network.http.pipelining.maxrequests" (a shortcut is to type "pipelining" into the Filter: field). By default, pipelining should be set to "false."

Double-click the "network.http.pipelining" line to change it to "true." Then double-click the "network.http.pipelining.maxrequests" line. A small window will pop up. Type a value from 2 to 8 (again, we recommend 2, but 3 or 4 may also work for you). Click "OK" to close the window. Close the "about:config" page and close Firefox. When you launch the browser the next time, pipelining will be on.
We welcome comments from other users who have experienced this behavior, especially anyone with knowledge about whether the source of the throttling is likely to be Comcast or Google (or both).
Post new comment