DEV Community

Cover image for Check Internet Speed with Apple Network Responsiveness
NaveenKumar Namachivayam ⚡
NaveenKumar Namachivayam ⚡

Posted on • Originally published at qainsights.com

Check Internet Speed with Apple Network Responsiveness

There are umpteen tools available to check the internet speed. SpeedTest, Speed from Cloudflare, Netflix's Fast, or if you use Google search, you can test the internet speed and its analytics. In macOS Monterey, Apple has released a command line tool called networkQuality. In this blog article we will deep dive into networkQuality and its usage.

Launching networkQuality

The only prerequisite to launch networkQuality is macOS Monterey. Launch the terminal from the Finder. In the terminal, type networkQuality and hit enter.

The tool will display the download and upload capacity for every second as shown below.

Testing
Testing

Once the test is done after ~15 seconds, you can see the summary of your internet performance.

The Responsiveness in the above summary is in roundtrips completed per minute (RPM). Responsiveness measures the quality of the network by the number of roundtrips per minute.

There are three categories in Responsiveness. Low, Medium, and High. High means there is a reliable network connection. Low means, you can see the issues while on a call or downloading a huge document or media file. Medium means, you can see a brief delay in the network.

To view the manual page, enter man networkQuality and hit enter.

By default, networkQuality tests with parallel upload/download. If you want to test in sequential order add -s option to the command.

Download Stats
Download Stats

 Upload Stats
Upload Stats

To view the output in JSON format, enter networkQuality -c.

JSON output
JSON output

To view the verbose output, enter networkQuality -v.

Summary
Summary

To test other interface in the network, enter networkQuality -I <interface_name>. This will bind the interface and run the tests.

By default, networkQuality uses the below configuration for testing.If you want to configure, you can use the -C option.

In the JSON file, there are three different URLs to test the network speed. Small and Large are for GET requests. The Upload URL is for POST request.

{
  "version": 1,
  "urls": {
    "small_https_download_url": "https://mensura.cdn-apple.com/api/v1/gm/small",
    "large_https_download_url": "https://mensura.cdn-apple.com/api/v1/gm/large",
    "https_upload_url": "https://mensura.cdn-apple.com/api/v1/gm/slurp"
  },
  "test_endpoint": "usqas2-edge-bx-023.aaplimg.com"
}

Here is an example of a custom configuration file. But it is not properly working; If you find a solution, please share it in the comments.

networkQuality Repo

<!-- /wp:button -->

Using the Fiddler Everywhere, I captured the traffic when the test was running. Here is the screenshot. Totally, there were around 40+ requests made to conclude the testing.

Fiddler Capture during the test

Conclusion

Apple's networkQuality is not a full-fledged solution to test the network speed. There are many matured solutions that are available for free. But if you are in the Apple ecosystem and love being a fan of Apple, you can add networkQuality in your shell file.

Top comments (0)