What exactly is mean throughput on the NDT7 test?

132 views
Skip to first unread message

Kelsey Nanan

unread,
Jul 21, 2021, 4:50:39 PM7/21/21
to discuss
Hi, 

In the schema for the NDT7 test, a.MeanThroughputMbps is defined as follows: 
"The measured rate as calculated by the server. Presented in megabits per second, or Mbit/s, this value is the average of tcp-info snapshots taken at the beginning and end of an ndt7 measurement. Therefore it is identified as “MeanThroughputMbps”."

I was wondering exactly what TCP Info snapshots are averaged to calculate Mean Throughput, since it seems as there are many TCP Info fields. 
Also, does Mean Throughput average both upload and download speeds? 

Thanks for any help!
Kelsey

Chris Ritzo

unread,
Jul 23, 2021, 9:29:23 AM7/23/21
to discuss, kelsey...@gmail.com
Hi Kelsey,
Thanks for asking this question.

The TCP info snapshots are like samples taken over the time an individual test is run. The many TCP info fields are the various metrics collected by TCP Info about the state of the connection during the test. As you note, there are many, and for researchers deeply familiar with TCP they will be more recognizable. For most people though, including myself, we summarize the metrics of highest interest like "MeanThroughputMbps". 

As the NDT test runs, samples or snapshots of the "speed" or throughput are taken by TCP info, and the final field, MeanThroughputMbps is provided as the average of those samples. When an NDT test is run, to the user it's like running one test, but the upload and download measurements are saved as separate rows in our datasets. So MeanThroughputMbps is provided for download and upload measurements individually but not combined.

I hope this helps. If you have additional questions please let us know.

Best,
Chris - M-Lab Support

Kelsey Nanan

unread,
Jul 26, 2021, 8:19:20 AM7/26/21
to discuss, Chris Ritzo, Kelsey Nanan
Hi Chris, 

Thank you so much for your quick response! I ran the following query a while ago (before I knew a bit more about speed tests - upload vs download lol): 

mlab_query.jpg

(Sorry for the poor image quality) But would the a.MeanThroughputMbps that I downloaded be average upload or download speed? And if I want to get the individual upload and download mean throughput values, what would those fields be called in the database? I'm looking at the BigQuery schema here - https://www.measurementlab.net/tests/ndt/ndt7/#ndt7-bigquery-schema , sorry if I seem to be missing it.. 

Thanks for your help! 
Kelsey

Chris Ritzo

unread,
Jul 26, 2021, 8:54:54 AM7/26/21
to discuss, kelsey...@gmail.com, Chris Ritzo
Hi Kelsey,

I might back up and suggest that depending on your line of inquiry or research question, the ndt7 table may not be the right table to look at. If you are interested in looking at all ndt7 tests including those that failed, or were not complete, according to our team's best understanding, then continue using the ndt7 table.

However, if you are interested in only ndt7 tests that are considered by M-Lab to be complete and valid tests for understanding what ndt7 measures, then our NDT unified views should be your starting point for queries. For more information, this blog post discusses the NDT unified views and what they provide.

I also must recommend that you review our blog post, Using M-Lab Data in Broadband Advocacy and Policy, for our research recommendations when working with NDT data.

ndt.unified_uploads and ndt.unified_downloads allow you to query specifically for one or the other or both measurements, and these views are filtered to provide only tests that meet our team's understanding of test completeness. You can join the upload and download measurements using the UUID field if you want to get both...

To query the unified ndt views for only ndt7 tests, you can use the field node._Instruments in the WHERE part of your query. For example: WHERE node._Instruments = "ndt7" will return only ndt7 tests.  If the value of this field is "tcpinfo" then the test will be from the ndt5 protocol.

Specific to your questions about the schema pages and the measurements in the ndt7 table, my apologies that the schema descriptions on the website are not up to date. We hope to rectify that soon. The field names and descriptions are valid, but may not be complete or in the same order as those in the BigQuery tables. For the most current schema fields, I would rely in the listing in BigQuery as seen in the screenshot below, and for field descriptions, reference the pages on our website for now.
Screenshot 2021-07-26 at 08-26-50 SQL workspace – BigQuery – MLab project - publ… – Google Cloud Platform.png
The individual upload and download measurements in the ndt7 table are stored within the raw record section under raw.upload and raw.download. If the row is an upload measurement, the raw.upload fields will be present, and download fields will be blank or null. Vice versa for download measurements. So if you are looking at the field ndt7.a.MeanThroughputMbps, this value will be the upload measurement when the field raw.Upload.UUID is not null, and will be the value for a download measurement if the field raw.Download.UUID is not null.

I hope this helps.

Best,
Chris
Reply all
Reply to author
Forward
0 new messages