Skip to Content.
Sympa Menu

ndt-dev - [ndt-dev] [ndt] r630 committed - Attempt to clarify the bottleneck link detection methodology

Subject: NDT-DEV email list created

List archive

[ndt-dev] [ndt] r630 committed - Attempt to clarify the bottleneck link detection methodology


Chronological Thread 
  • From:
  • To:
  • Subject: [ndt-dev] [ndt] r630 committed - Attempt to clarify the bottleneck link detection methodology
  • Date: Fri, 16 Sep 2011 15:04:15 +0000

Revision: 630
Author:

Date: Fri Sep 16 08:03:18 2011
Log: Attempt to clarify the bottleneck link detection methodology


http://code.google.com/p/ndt/source/detail?r=630

Modified:
/wiki/NDTTestMethodology.wiki

=======================================
--- /wiki/NDTTestMethodology.wiki Fri Sep 16 07:27:38 2011
+++ /wiki/NDTTestMethodology.wiki Fri Sep 16 08:03:18 2011
@@ -144,23 +144,17 @@

=== Bottleneck Link Detection ===

-NDT tries to find the answer to the question "What is the link in the end-to-end path with the smallest capacity?" by doing the following:
- * monitoring packet arrival times using libpcap routine (all test traffic during both the C2S and the S2C throughput tests is monitored)
- * using TCP dynamics to analyze packet pairs (i.e. compare two subsequent packets on the same connection; for example if 4 packets are received (a, b, c and d), then all subsequent packet pairs are analyzed: a-b, b-c and c-d)
- * quantizing results into link type bins
-
-NDT uses packet dispersion techniques (i.e. it measures the inter-packet arrival times for all data and ACK packets sent or received during both the C2S and the S2C throughput tests). It also knows the packet size, so it can calculate the speed for each pair of packets sent or received and quantize the results into the link type bins.
-
-The speed calculation is done using the following formula:
-{{{
-bits/time
-}}}
-
-where:
- * *bits* - the number of bits in the current packet
- * *time* - the time in microseconds from the last packet arrival
-
-It means that the calculated speed is in mbits/second. The results are then quantized into the following bins:
+NDT attempts to detect the link in the end-to-end path with the smallest capacity (i.e. the narrowest link) using the following methodology.
+
+The way NDT handles sends, there is no application-induced delay between successive packets being sent, so any delays between packets are introduced in-transit. NDT uses the inter-packet delay and the size of the packet as a metric to gauge what the narrowest link in the path is. It does this by calculating the inter-packet bandwidth which, on average, will correspond to the bandwidth of the lowest-speed link.
+
+The algorithm NDT uses to calculate the narrowest link is as follows:
+ * NDT records the arrival time of each packet using the libpcap routine
+ * NDT calculates the inter-packet bandwidth by dividing the packet's size, in bits, by the difference between the time that it arrived and the time the previous packet arrived
+ * NDT quantizes the bandwidth into one of a group of pre-defined bins (described below), incrementing the counter for that bin
+ * Once the test is complete, NDT determines the link speed according to the bin with the largest counter value
+
+The bins are defined in mbits/second:

* 0 < calculated speed (mbits/second) <= 0.01 - *RTT*
* 0.01 < calculated speed (mbits/second) <= 0.064 - *Dial-up Modem*
@@ -175,8 +169,6 @@
* bits cannot be determined - *Retransmissions* (this bin counts the duplicated or invalid packets and does not denote a real link type)
* otherwise - ?

-The detected link type is indicated by the bin with the most packet pairs in it.
-
==== Known limitations (Bottleneck Link Detection) ====

The Bottleneck Link Detection assumes that packet coalescing is disabled.


  • [ndt-dev] [ndt] r630 committed - Attempt to clarify the bottleneck link detection methodology, ndt, 09/16/2011

Archive powered by MHonArc 2.6.16.

Top of Page