Bandwidth and this Utility
-
This Bandwidth utility is provided as a courtesy of Fourth Integral. It is not the intention of Fourth Integral to
endorse any particular Internet Service Provider (ISP) or hosting provider by the reported throughput of this
utility.
- What does this measure?
-
No bandwidth assessment device will yield truly accurate throughput measurements on an open network. Networks don't
get much more open than internet. For this reason, someone attempting to gauge the speed of his or her internet
connection over the internet must realize that many things influence the end speed of data transmission.
-
This utility measures the speed at which several groups of data (segments) can be downloaded to your computer. It differs
from other "connection speed" scripts in several ways. One of the most important is the method of timing. The php
function microtime is used to
calculate the elapsed time of each operation to a precision that exceeds significance. This method is also preferred
because speed calculations are performed entirely on the server, thus minimizing errors.
-
Like with any measurement of throughput done over the internet, the idea is that the limiting factor is the end user's
ability to receive data. Simply, all of these measurements are calculated under the assumption that the server can send
faster than you can receive (else we measure the servers throughput and not yours). This assumption can introduce serious
errors in throughput calculations. For example, if a server is experiencing heavy traffic, its ability to send data in
a contiguous sense is seriously impeded and results in erroneously small (slow) throughput estimation.
- What am I downloading?
-
This utility sends the 23 segments of data as commented code. The data that is stuffed into the comments is normally
distributed, pseudo-random binary data. As the page loads, each segment is sent as another <script> block with
the random data commented out. Random (or pseudo-random, to be accurate) data was generated for this purpose to ensure
that it is difficult to compress. Some of the newer "5x" dialup connections offered by popular ISP's use compression
techniques to give the appearance of a faster connection. This method is particularly effective on textual web pages since
compression algorithms like Lempel-Ziv-Welch
(LZW) can greatly reduce text with repeating character sets. By limiting the compressibility of the data sent, a more
accurate measurement of throughput can be made.
- Why 23 segments of data?
-
Many throughput measurement utilities send less than 100 KB (KiB) of data during their test. Sending small amounts of
data is often error-prone because of the way your ISP restricts your bandwidth. Most bandwidth or throughput limiting
algorithms allow for a brief burst of speed when a data transfer starts, if there is available bandwidth. This utility
implements 23 individual tests of bandwidth to account for this "burst speed". The size of the segments are also tapered
to fit a function of data size over time. The size of each segment approximately fits and exponential function of segment
order. This effectively increases the load on your connection at an exponential rate in an attempt to overcome initial
"bursts" of speed.
-
In the end, only the last several tests are used in calculating your actual throughput. And as can
be seen on most runs with this utility, the plot usually appears to minimize oscillation and converge on the estimated
throughput.
- Why do I see data points without a line connecting them?
-
Some of the data points fall outside of a reasonable range for plotting. In order to plot all of the data on one
graph, either the graph would be very tall, or the scale would be meaningless. This is usually due to burst speeds
being up to 100 times the actual (stabilized) throughput. To account for this, the plot for data outside of the usable
range is replaced with an arrow (or hat) to signify that the point falls off the graph. When several of these points fall
off of the graph and then on (alternately), the plot interpolates the line connecting them with a straight line from the
last good group of data to the next.

The "good" data points that fall between the "bad" ones are not counted
because the resulting pattern is likely an oscillation (which confounds the calculation).
-
When more than three data points fall out of the reasonable range, the utility calculates the mean for this group and displays
it just below the arrows (hats) signifying the points. This is done to give the user an idea of how far out of range a group of
values lie and to help illustrate overall oscillations in speed.

Copyright © 2004 Fourth Integral. All Rights Reserved.