BrowserHawk provides several different options for detecting broadband Vs. dial-up users, as well as measuring actual connection speeds if desired. These options provide great flexibility in enabling you to choose the approach which is best for your particular needs for detecting connection speeds and dial-up users.
Note: This topic refers only to detecting download connection speeds. For information on detecting upload speeds see the topic on Detecting Upload Speeds.
The properties used for detecting download speeds are: ConnectionSpeed, Broadband, and ConnectionType. Furthermore, the ConnectionSpeed property offers two testing methods: "Progressive" and "Original". See Progressive Versus Original Speed Test for more information.
ConnectionSpeed, Broadband, and ConnectionType each have their own advantages and disadvantages. In general, the Progressive ConnectionSpeed is designed to provide the best and most accurate results and is the recommended approach for measuring connection speeds.
ConnectionSpeed Property - Measures the visitor's actual connection speed:
Advantages:
The main advantage of the ConnectionSpeed property is that it detects the actual speed of the connection. Therefore, for example, you can detect the difference between a user with a 1 Mbps connection versus a 5 Mbps connection.
The actual connection speed measurement is very useful if you want to serve varying levels of content based on how fast the visitor's connection is, or to determine if the visitor's connection is suitable for the content you wish to serve.
The connection speed is also very useful if you want to accurately estimate the amount of time a download will take (see the EstDownloadTimeDesc and EstDownloadTimeSec methods).
Progressive method only: Highly accurate and repeatable results with a short (default of 2 seconds, user controllable) testing time for all connection types.
Progressive method only: Advanced property settings allow for very fine grain control over the speed tests so you can help balance testing time, accuracy, and bandwidth used. See links under the Controlling the Progressive Speed Check Method heading below.
Progressive method only: The connection latency is also measurable in milliseconds. This is exposed via the ConnectionLatency property.
Original method only: Test uses little bandwidth – approximately 50KB per test.
Disadvantages:
Original method only: Visitors on dial-up connections will take between 4-10 seconds to test their speed.
Original method only: Measurement is only an approximation with little control over accuracy or testing speed.
Progressive method only: Generates approximately 3 - 5MB of traffic on your web server per test for users on fast connections, and approximately 1 - 3MB of traffic for users on slower connections. Depending on your service plan with your hosting provider, this increase in traffic could impact your hosting fees. See the Progressive Versus Original Speed Test topic for more information and tips on reducing this bandwidth.
Broadband Property: Detects just whether it is a broadband or dial-up connection:
Advantages:
The main advantage of the Broadband property is that it quickly detects whether a visitor is on broadband vs. dial-up, while using minimal bandwidth (approximately 25KB per test). If you only want to differentiate between users on broadband vs. dial-up, this test is recommended over the ConnectionSpeed tests.
Disadvantages:
One disadvantage is that it is possible a visitor on a poor broadband connection could be detected as being on a dial-up connection if there is high traffic or latency in their network (as may be encountered on some public wireless networks). You may be able to account for these conditions by changing the BroadbandMaxWait property from its default setting. For more information see the BroadbandMaxWait (ActiveX) property or BroadbandMaxWait (.NET) property.
ConnectionType Property: Detects connection type based on the visitor's settings.
Advantages:
The main advantage of the ConnectionType property is that it instantly detects the visitor's connection type ("lan" vs. "modem"), without any slow down for dial-up visitors whatsoever. This is because unlike with the ConnectionSpeed and Broadband properties, there is no actual speed measurement taken with the ConnectionType test. Instead the connection type setting is obtained from the visitor's machine. This is both an advantage (speed) and a disadvantage (accuracy) as explained next.
Disadvantages:
The disadvantages to the ConnectionType property are fairly significant, and in general, the ConnectionSpeed or Broadband tests are recommended instead. In some cases the settings on the visitor's machine do not match up with their actual connection type. This causes the test results to be incorrect in these cases. For instance, we have seen several cases where an AOL user's machine reports "lan" for the connection type when they are actually using a modem, and the reverse where it reports "modem" when they are on broadband.
Another disadvantage to the ConnectionType property is that it is only available for visitor's with Internet Explorer 5 and higher on Windows. Given the greater number of visitors using alternative browsers such as Firefox, this is not as ideal as it was when IE was far more dominant.
Summary:
If you are want to distinguish visitors on broadband vs. dial-up and are not concerned about their actual connection speed, the Broadband property provides the favorable approach. If it is important to obtain their actual connection speed (as it is to estimate a download time or to serve varying levels of richer content) then we recommend the "Progressive" ConnectionSpeed test. If an estimated speed is sufficient, we recommend the "Original" ConnectionSpeed test. If you want to distinguish between broadband vs. dial-up, and accuracy is not of high importance, and if only having results for IE 5+ users is acceptable, then consider the ConnectionType property.
The following properties provide very fine grain, advanced control over the Progressive speed check method. This helps you balance testing time, accuracy, bandwidth used and more:
See Also:
Progressive Versus Original Speed Test
ConnectionSpeed Property (.NET)
ConnectionType Property (.NET)