networkQuality
—
Network quality testing tool
networkQuality |
[-bdhksuv ] [-B
Bonjour name] [-C
configuration URL] [-c
filename] [-f
protocol selection] [-I
interface] [-r
host] [-S
port] |
networkQuality
allows for measuring the
different aspects of Network Quality, including:
Maximal capacity (often described as speed)
The responsiveness of the connection. Responsiveness measures the
quality of your network by the number of roundtrips completed per minute
(RPM) under working conditions. See
https://support.apple.com/kb/HT212313
Other aspects of the connection that affect the quality of
experience.
NOTE: This tool will connect to the Internet to perform its
tests. This will use data on your Internet service plan.
For more details about the RPM score and the methodology around
the testing, see
https://datatracker.ietf.org/doc/draft-cpaasch-ippm-responsiveness/
The following options are available:
-b
- Show Bonjour advertised networkQuality servers
-B
Bonjour name
- Run against specified Bonjour instance
-C
configuration URL/path
- Use custom configuration URL or path (with scheme file://). See
https://github.com/network-quality/server for server
implementation details.
-f
<option[,<option>,...]>
- Force usage of a specific protocol selection:
h1: To enforce HTTP/1.1
h2: To enforce HTTP/2
h3: To enforce HTTP/3 (QUIC)
L4S: To force-enable L4S
noL4S: To force-disable L4S
-I
interface
- Bind test to interface (e.g., en0, pdp_ip0,...)
If not specified, the default interface will be used.
-r
host
- Connect to host or IP, overriding DNS for initial config request
-S
port
- Create a networkQuality server-instance running locally on the specified
port. It will display the URL of the config-file that can be passed on to
a client-instance with option -C. Note that the certificate is self-signed
and thus option -k needs to be used on the client-instance.
-c
[filename]
- Produce computer-readable output (JSON). filename is optional, will
default to STDOUT.
-d
- Do not run a download test (implies -s)
-h
- Show help
-k
- Disable verification of the server identity via TLS.
-p
- Use iCloud Private Relay.
-s
- Run tests sequentially instead of parallel upload/download.
-u
- Do not run an upload test (implies -s)
-v
- Verbose output.
The -c option will produce JSON output with the following fields,
depending on the options used and the result of the run.
- base_rtt
- The calculated idle latency of the test run (in milliseconds).
- dl_flows
- Number of download flows initiated.
- dl_responsiveness
- The downlink responsiveness score (in RPM)
(only available when -s is specified).
- dl_throughput
- The measured downlink throughput (in bytes per second).
- end_date
- Time when test run was completed (in local time).
- il_h2_req_resp
- The idle-latency Request/Response times for HTTP/2 (in milliseconds).
- il_tcp_handshake_443
- The idle-latency TCP-handshake times (in milliseconds).
- il_tls_handshake
- The idle-latency TLS-handshake times (in milliseconds).
- interface_name
- Interface name in which the test ran against.
- lud_foreign_dl_h2_req_resp
- Download latency-under-load request/response times for HTTP/2 (in
milliseconds).
(only available when -s is specified).
- lud_foreign_dl_tcp_handshake_443
- Download latency-under-load for for TCP-handshake times (in milliseconds).
(only available when -s is specified).
- lud_foreign_dl_tls_handshake
- Download latency-under-load for for TLS-handshake times (in milliseconds).
(only available when -s is specified).
- lud_foreign_h2_req_resp
- Combined upload/download latency-under-load request/response times for
HTTP/2 (in milliseconds).
(only available when -s is not specified).
- lud_foreign_tcp_handshake_443
- Combined upload/download latency-under-load for for TCP-handshake times
(in milliseconds).
(only available when -s is not specified).
- lud_foreign_tls_handshake
- Combined foreign upload/download latency-under-load for for TLS-handshake
times (in milliseconds).
(only available when -s is not specified).
- lud_foreign_ul_h2_req_resp
- Foreign upload latency-under-load request/response times for HTTP/2 (in
milliseconds).
(only available when -s is specified).
- lud_foreign_ul_tcp_handshake_443
- Foreign upload latency-under-load for for TCP-handshake times (in
milliseconds).
(only available when -s is specified).
- lud_foreign_ul_tls_handshake
- Upload latency-under-load for for TLS-handshake times (in milliseconds).
(only available when -s is specified).
- lud_self_dl_h2_req_resp
- Self download latency-under-load request/response times for HTTP/2 (in
milliseconds).
(only available when -s is specified).
- lud_self_h2_req_resp
- Combined self upload/download latency-under-load request/response times
for HTTP/2 (in milliseconds).
(only available when -s is not specified).
- lud_self_ul_h2_req_resp
- Self upload latency-under-load request/response times for HTTP/2 (in
milliseconds).
(only available when -s is specified).
- os_version
- The version of the OS the test was run on.
- responsiveness
- The responsiveness score (in RPM)
(the combined value if -c is not specified).
- start_date
- Time when test run was started (in local time).
- ul_flows
- Number of upload flows created.
- ul_responsiveness
- The uplink responsiveness score (in RPM)
(only available when -s is specified).
- ul_throughput
- The measured uplink throughput (in bytes per second).
- error_code
- Error domain specific error code
(only displayed if could not complete its test).
- error_domain
- Error domain in which an error occurred in
(only displayed if networkQuality
could not complete its test).
NOTE: This is not meant to be a comprehensive list of
fields.