ndt7 Protocol - NDT (Network Diagnostic Tool)
ndt7 is a new protocol in ndt-server that uses TCP BBR where available and collects TCP statistics using TCP_INFO.
ndt7 test data has been collected since 2020-02-18 using tcp-info for all TCP metrics. Data from the ndt7 test is currently available in raw format in Google Cloud Storage and will be made available in queryable format in BigQuery in the third quarter of 2020.
More details about the ndt7 protocol can be found in the ndt7 protocol specification on Github. Additional information about the ndt7 data format is also available on Github.
ndt7 BigQuery Schema
Field name | Type | Description |
---|---|---|
id | STRING | UUID of the connection under consideration. |
a | RECORD | Fields summarizing or derived from the raw data. |
a.UUID | STRING | UUID for TCP connection. |
a.TestTime | TIMESTAMP | The date and time of the measurement in UTC. |
a.CongestionControl | STRING | The congestion control algorithm used for connection. |
a.MeanThroughputMbps | FLOAT | 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”. |
a.MinRTT | FLOAT | The minimum Round Trip Time observed during the measurement, recorded in milliseconds. |
a.LossRate | FLOAT | Loss rate from the lifetime of the connection. |
parser | RECORD | Metadata about how the parser processed this measurement row. |
parser.Version | STRING | Version is the symbolic version (if any) of the running server code that produced this measurement. |
parser.Time | TIMESTAMP | The time that the parser processed this row. |
parser.ArchiveURL | STRING | The Google Cloud Storage URL to the archive containing the Filename for this row. |
parser.Filename | STRING | The name of the file within the ArchiveURL originally created by the measurement service. Results in the raw record are derived from measurements in this file. |
parser.Priority | INTEGER | |
parser.GitCommit | STRING | The git commit of this build of the parser. |
parser.ArchiveSize | INTEGER | The original archive size as found in GCS. |
parser.FileSize | INTEGER | The size of the file data provided to the parser for this row. |
date | DATE | Date is used by BigQuery to partition data to improve query performance. |
raw | RECORD | Fields from the raw data. |
raw.GitShortCommit | STRING | GitShortCommit is the Git commit (short form) of the running server code that produced this measurement. |
raw.Version | STRING | Version is the symbolic version (if any) of the running server code that produced this measurement. |
raw.ServerIP | STRING | The IP address assigned to the M-Lab server that conducted the measurement. |
raw.ServerPort | INTEGER | The port used by the server to conduct the measurement. |
raw.ClientIP | STRING | The IP address assigned to the client that conducted the measurement. |
raw.ClientPort | INTEGER | The port used by the client to conduct the measurement. |
raw.StartTime | TIMESTAMP | The date and time when the measurement began in UTC. |
raw.EndTime | TIMESTAMP | The date and time when the measurement ended in UTC. |
raw.Upload | RECORD | Metadata for the NDT7 protocol for this measurement. |
raw.Upload.UUID | STRING | UUID for TCP connection for this measurement. |
raw.Upload.StartTime | TIMESTAMP | The date and time when the measurement began in UTC. |
raw.Upload.EndTime | TIMESTAMP | The date and time when the measurement ended in UTC. |
raw.Upload.ServerMeasurements | RECORD | Measurements reported by the M-Lab server. Not all fields are reported by all versions of the server. |
raw.Upload.ServerMeasurements.AppInfo | RECORD | Server measurements performed outside of the kernel |
raw.Upload.ServerMeasurements.AppInfo.NumBytes | INTEGER | The number of bytes written to or read from the socket during the measurement. |
raw.Upload.ServerMeasurements.AppInfo.ElapsedTime | INTEGER | The duration of the measurement as measured by the M-Lab server in milliseconds. |
raw.Upload.ServerMeasurements.ConnectionInfo | RECORD | |
raw.Upload.ServerMeasurements.ConnectionInfo.Client | STRING | |
raw.Upload.ServerMeasurements.ConnectionInfo.Server | STRING | |
raw.Upload.ServerMeasurements.ConnectionInfo.UUID | STRING | UUID for TCP connection for this measurement. |
raw.Upload.ServerMeasurements.BBRInfo | RECORD | Instrumentation in the BBR TCP module in the kernel. |
raw.Upload.ServerMeasurements.BBRInfo.BW | INTEGER | The maximum end-to-end bandwidth from the server to the client as measured by BBR. |
raw.Upload.ServerMeasurements.BBRInfo.MinRTT | INTEGER | The minimum round trip time as measured by BBR. Recorded in microseconds. |
raw.Upload.ServerMeasurements.BBRInfo.PacingGain | INTEGER | Fixed point multiplier used to set the pacing rate from the maximum bandwidth. The binary point varies by kernel version but the statistical mode is always 1.0. |
raw.Upload.ServerMeasurements.BBRInfo.CwndGain | INTEGER | Fixed point multiplier used to set the maximum window size from BW*MinRTT. The denominator varies by kernel version. |
raw.Upload.ServerMeasurements.BBRInfo.ElapsedTime | INTEGER | The duration of the measurement as measured by the M-Lab server in milliseconds. |
raw.Upload.ServerMeasurements.TCPInfo | RECORD | TCP Instrumentation in the kernel, as accessed by the server. |
raw.Upload.ServerMeasurements.TCPInfo.State | INTEGER | TCP state is nominally 1 (Established). Other values reflect transient states having incomplete rows. Kernel: See TCP_ESTABLISHED in include/net/tcp_states.h |
raw.Upload.ServerMeasurements.TCPInfo.CAState | INTEGER | Loss recovery state machine. For traditional loss based congestion control algorithms, CAState is also used to control window adjustments. Kernel: tcp_set_ca_state in include/net/tcp.h |
raw.Upload.ServerMeasurements.TCPInfo.Retransmits | INTEGER | Number of timeouts (RTO based retransmissions) at this sequence. Reset to zero on forward progress. Kernel: icsk_retransmits in include/net/inet_connection_sock.h |
raw.Upload.ServerMeasurements.TCPInfo.Probes | INTEGER | Consecutive zero window probes that have gone unanswered. Kernel: icsk_probes_out in include/net/inet_connection_sock.h |
raw.Upload.ServerMeasurements.TCPInfo.Backoff | INTEGER | Exponential timeout backoff counter. Increment on RTO, reset on successful RTT measurements. Kernel: icsk_backoff in include/net/inet_connection_sock.h |
raw.Upload.ServerMeasurements.TCPInfo.Options | INTEGER | Bit encoded SYN options and other negotiations TIMESTAMPS 0x1; SACK 0x2; WSCALE 0x4; ECN 0x8 - Was negotiated; ECN_SEEN - At least one ECT seen; SYN_DATA - SYN-ACK acknowledged data in SYN sent or rcvd. Kernel: TCPI_OPT_TIMESTAMPS in include/uapi/linux/tcp.h |
raw.Upload.ServerMeasurements.TCPInfo.WScale | INTEGER | BUG Conflation of SndWScale and RcvWScale. See github.com/m-lab/etl/issues/790 |
raw.Upload.ServerMeasurements.TCPInfo.AppLimited | INTEGER | Flag indicating that rate measurements reflect non-network bottlenecks. Note that even very short application stalls invalidate max_BW measurements. Kernel: rate_app_limited in include/linux/tcp.h |
raw.Upload.ServerMeasurements.TCPInfo.RTO | INTEGER | Retransmission Timeout. Quantized to system jiffies. Kernel: icsk_rto in include/net/inet_connection_sock.h |
raw.Upload.ServerMeasurements.TCPInfo.ATO | INTEGER | Delayed ACK Timeout. Quantized to system jiffies. Kernel: ato in icsk_ack in include/net/inet_connection_sock.h |
raw.Upload.ServerMeasurements.TCPInfo.SndMSS | INTEGER | Current Maximum Segment Size. Note that this can be smaller than the negotiated MSS for various reasons. Kernel: mss_cache in include/linux/tcp.h |
raw.Upload.ServerMeasurements.TCPInfo.RcvMSS | INTEGER | Maximum observed segment size from the remote host. Used to trigger delayed ACKs. Kernel: rcv_mss in icsk_ack in include/net/inet_connection_sock.h |
raw.Upload.ServerMeasurements.TCPInfo.Unacked | INTEGER | Number of segments between snd.nxt and snd.una. Accounting for the Pipe algorithm. Kernel: packets_out in include/linux/tcp.h |
raw.Upload.ServerMeasurements.TCPInfo.Sacked | INTEGER | Scoreboard segment marked SACKED by sack blocks. Accounting for the Pipe algorithm. Kernel: sacked_out in include/linux/tcp.h |
raw.Upload.ServerMeasurements.TCPInfo.Lost | INTEGER | Scoreboard segments marked lost by loss detection heuristics. Accounting for the Pipe algorithm. Kernel: lost_out in include/linux/tcp.h |
raw.Upload.ServerMeasurements.TCPInfo.Retrans | INTEGER | Scoreboard segments marked retransmitted. Accounting for the Pipe algorithm. Kernel: retrans_out in include/linux/tcp.h |
raw.Upload.ServerMeasurements.TCPInfo.Fackets | INTEGER | Not Used - obsolete kernel instrument. |
raw.Upload.ServerMeasurements.TCPInfo.LastDataSent | INTEGER | Time since last data segment was sent. Quantized to jiffies. Kernel: lsndtime in include/linux/tcp.h |
raw.Upload.ServerMeasurements.TCPInfo.LastAckSent | INTEGER | Time since last ACK was sent (not implemented). Present in TCP_INFO but not elsewhere in the kernel. |
raw.Upload.ServerMeasurements.TCPInfo.LastDataRecv | INTEGER | Time since last data segment was received. Quantized to jiffies. Kernel: lrcvtime in icsk_ack in include/net/inet_connection_sock.h |
raw.Upload.ServerMeasurements.TCPInfo.LastAckRecv | INTEGER | |
raw.Upload.ServerMeasurements.TCPInfo.PMTU | INTEGER | Maximum IP Transmission Unit for this path. Kernel: icsk_pmtu_cookie in include/net/inet_connection_sock.h |
raw.Upload.ServerMeasurements.TCPInfo.RcvSsThresh | INTEGER | Current Window Clamp. Receiver algorithm to avoid allocating excessive receive buffers. Kernel: rcv_ssthresh in include/linux/tcp.h |
raw.Upload.ServerMeasurements.TCPInfo.RTT | INTEGER | Smoothed Round Trip Time (RTT). The Linux implementation differs from the standard. Kernel: srtt_us in include/linux/tcp.h |
raw.Upload.ServerMeasurements.TCPInfo.RTTVar | INTEGER | The variation in round trip time during the upload measurement as measured by the M-Lab server. |
raw.Upload.ServerMeasurements.TCPInfo.SndSsThresh | INTEGER | Slow Start Threshold. Value controlled by the selected congestion control algorithm. Kernel: snd_ssthresh in include/linux/tcp.h |
raw.Upload.ServerMeasurements.TCPInfo.SndCwnd | INTEGER | Congestion Window. Value controlled by the selected congestion control algorithm. Kernel: snd_cwnd in include/linux/tcp.h |
raw.Upload.ServerMeasurements.TCPInfo.AdvMSS | INTEGER | Advertised MSS. Kernel: advmss in include/linux/tcp.h |
raw.Upload.ServerMeasurements.TCPInfo.Reordering | INTEGER | Maximum observed reordering distance. Kernel: reordering in include/linux/tcp.h |
raw.Upload.ServerMeasurements.TCPInfo.RcvRTT | INTEGER | Receiver Side RTT estimate. Kernel: rcv_rtt_est.rtt_us in include/linux/tcp.h |
raw.Upload.ServerMeasurements.TCPInfo.RcvSpace | INTEGER | Space reserved for the receive queue. Typically updated by receiver side auto-tuning. Kernel: space in rcvq_space in include/linux/tcp.h |
raw.Upload.ServerMeasurements.TCPInfo.TotalRetrans | INTEGER | Total number of segments containing retransmitted data. Kernel: total_retrans in include/linux/tcp.h |
raw.Upload.ServerMeasurements.TCPInfo.PacingRate | INTEGER | Current Pacing Rate, nominally updated by congestion control. Kernel: sk_pacing_rate in include/net/sock.h |
raw.Upload.ServerMeasurements.TCPInfo.MaxPacingRate | INTEGER | Settable pacing rate clamp. Set with setsockopt( ..SO_MAX_PACING_RATE.. ). Kernel: sk_max_pacing_rate in include/net/sock.h |
raw.Upload.ServerMeasurements.TCPInfo.BytesAcked | INTEGER | The number of data bytes for which cumulative acknowledgments have been received. Kernel: bytes_acked in include/linux/tcp.h |
raw.Upload.ServerMeasurements.TCPInfo.BytesReceived | INTEGER | The number of data bytes for which have been received. Kernel: bytes_received in include/linux/tcp.h |
raw.Upload.ServerMeasurements.TCPInfo.SegsOut | INTEGER | The number of segments transmitted. Includes data and pure ACKs. Kernel: segs_out in include/linux/tcp.h |
raw.Upload.ServerMeasurements.TCPInfo.SegsIn | INTEGER | The number of segments received. Includes data and pure ACKs. Kernel: segs_in in include/linux/tcp.h |
raw.Upload.ServerMeasurements.TCPInfo.NotsentBytes | INTEGER | Number of bytes queued in the send buffer that have not been sent. Kernel: tcpi_notsent_bytes() in net/ipv4/tcp.c |
raw.Upload.ServerMeasurements.TCPInfo.MinRTT | INTEGER | Minimum Round Trip Time. Recorded in microseconds. Kernel: tcp_min_rtt in include/net/tcp.h |
raw.Upload.ServerMeasurements.TCPInfo.DataSegsIn | INTEGER | Input segments carrying data (len>0). Kernel: data_segs_in in include/net/tcp.h |
raw.Upload.ServerMeasurements.TCPInfo.DataSegsOut | INTEGER | Transmitted segments carrying data (len>0). Kernel: data_segs_out in include/net/tcp.h |
raw.Upload.ServerMeasurements.TCPInfo.DeliveryRate | INTEGER | Observed Maximum Delivery Rate. Kernel: tcp_compute_delivery_rate() in net/ipv4/tcp.c |
raw.Upload.ServerMeasurements.TCPInfo.BusyTime | INTEGER | Time with outstanding (unacknowledged) data. Time when snd.una is not equal to snd.next. Kernel: tcp_get_info_chrono_stats() in net/ipv4/tcp.c |
raw.Upload.ServerMeasurements.TCPInfo.RWndLimited | INTEGER | Time spend waiting for receiver window. Kernel: tcp_get_info_chrono_stats() in net/ipv4/tcp.c |
raw.Upload.ServerMeasurements.TCPInfo.SndBufLimited | INTEGER | Time spent waiting for sender buffer space. This only includes the time when TCP transmissions are starved for data, but the application has been stopped because the buffer is full and can not be grown for some reason. Kernel: tcp_get_info_chrono_stats() in net/ipv4/tcp.c |
raw.Upload.ServerMeasurements.TCPInfo.Delivered | INTEGER | Data segments delivered to the receiver including retransmits. As reported by returning ACKs, used by ECN. Kernel: delivered in include/linux/tcp.h |
raw.Upload.ServerMeasurements.TCPInfo.DeliveredCE | INTEGER | ECE marked data segments delivered to the receiver including retransmits. As reported by returning ACKs, used by ECN. Kernel: delivered_ce in include/linux/tcp.h |
raw.Upload.ServerMeasurements.TCPInfo.BytesSent | INTEGER | Payload bytes sent (excludes headers, includes retransmissions). Kernel: bytes_sent |
raw.Upload.ServerMeasurements.TCPInfo.BytesRetrans | INTEGER | Bytes retransmitted. May include headers and new data carried with a retransmission (for thin flows). Kernel: bytes_retrans |
raw.Upload.ServerMeasurements.TCPInfo.DSackDups | INTEGER | Duplicate segments reported by DSACK. Not reported by some Operating Systems. Kernel: dsack_dups |
raw.Upload.ServerMeasurements.TCPInfo.ReordSeen | INTEGER | Received ACKs that were out of order. Estimates reordering on the return path. Kernel: reord_seen |
raw.Upload.ServerMeasurements.TCPInfo.RcvOooPack | INTEGER | |
raw.Upload.ServerMeasurements.TCPInfo.SndWnd | INTEGER | |
raw.Upload.ServerMeasurements.TCPInfo.ElapsedTime | INTEGER | The duration of the measurement as measured by the M-Lab server in milliseconds. |
raw.Upload.ClientMeasurements | RECORD | Periodic measurements reported by the client. Not all clients report this information. |
raw.Upload.ClientMeasurements.AppInfo | RECORD | Server measurements performed outside of the kernel |
raw.Upload.ClientMeasurements.AppInfo.NumBytes | INTEGER | The number of bytes written to or read from the socket during the measurement. |
raw.Upload.ClientMeasurements.AppInfo.ElapsedTime | INTEGER | The duration of the measurement as measured by the M-Lab server in milliseconds. |
raw.Upload.ClientMeasurements.ConnectionInfo | RECORD | |
raw.Upload.ClientMeasurements.ConnectionInfo.Client | STRING | |
raw.Upload.ClientMeasurements.ConnectionInfo.Server | STRING | |
raw.Upload.ClientMeasurements.ConnectionInfo.UUID | STRING | UUID for TCP connection for this measurement. |
raw.Upload.ClientMeasurements.BBRInfo | RECORD | Instrumentation in the BBR TCP module in the kernel. |
raw.Upload.ClientMeasurements.BBRInfo.BW | INTEGER | The maximum end-to-end bandwidth from the server to the client as measured by BBR. |
raw.Upload.ClientMeasurements.BBRInfo.MinRTT | INTEGER | The minimum round trip time as measured by BBR. Recorded in microseconds. |
raw.Upload.ClientMeasurements.BBRInfo.PacingGain | INTEGER | Fixed point multiplier used to set the pacing rate from the maximum bandwidth. The binary point varies by kernel version but the statistical mode is always 1.0. |
raw.Upload.ClientMeasurements.BBRInfo.CwndGain | INTEGER | Fixed point multiplier used to set the maximum window size from BW*MinRTT. The denominator varies by kernel version. |
raw.Upload.ClientMeasurements.BBRInfo.ElapsedTime | INTEGER | The duration of the measurement as measured by the M-Lab server in milliseconds. |
raw.Upload.ClientMeasurements.TCPInfo | RECORD | TCP Instrumentation in the kernel, as accessed by the server. |
raw.Upload.ClientMeasurements.TCPInfo.State | INTEGER | TCP state is nominally 1 (Established). Other values reflect transient states having incomplete rows. Kernel: See TCP_ESTABLISHED in include/net/tcp_states.h |
raw.Upload.ClientMeasurements.TCPInfo.CAState | INTEGER | Loss recovery state machine. For traditional loss based congestion control algorithms, CAState is also used to control window adjustments. Kernel: tcp_set_ca_state in include/net/tcp.h |
raw.Upload.ClientMeasurements.TCPInfo.Retransmits | INTEGER | Number of timeouts (RTO based retransmissions) at this sequence. Reset to zero on forward progress. Kernel: icsk_retransmits in include/net/inet_connection_sock.h |
raw.Upload.ClientMeasurements.TCPInfo.Probes | INTEGER | Consecutive zero window probes that have gone unanswered. Kernel: icsk_probes_out in include/net/inet_connection_sock.h |
raw.Upload.ClientMeasurements.TCPInfo.Backoff | INTEGER | Exponential timeout backoff counter. Increment on RTO, reset on successful RTT measurements. Kernel: icsk_backoff in include/net/inet_connection_sock.h |
raw.Upload.ClientMeasurements.TCPInfo.Options | INTEGER | Bit encoded SYN options and other negotiations TIMESTAMPS 0x1; SACK 0x2; WSCALE 0x4; ECN 0x8 - Was negotiated; ECN_SEEN - At least one ECT seen; SYN_DATA - SYN-ACK acknowledged data in SYN sent or rcvd. Kernel: TCPI_OPT_TIMESTAMPS in include/uapi/linux/tcp.h |
raw.Upload.ClientMeasurements.TCPInfo.WScale | INTEGER | BUG Conflation of SndWScale and RcvWScale. See github.com/m-lab/etl/issues/790 |
raw.Upload.ClientMeasurements.TCPInfo.AppLimited | INTEGER | Flag indicating that rate measurements reflect non-network bottlenecks. Note that even very short application stalls invalidate max_BW measurements. Kernel: rate_app_limited in include/linux/tcp.h |
raw.Upload.ClientMeasurements.TCPInfo.RTO | INTEGER | Retransmission Timeout. Quantized to system jiffies. Kernel: icsk_rto in include/net/inet_connection_sock.h |
raw.Upload.ClientMeasurements.TCPInfo.ATO | INTEGER | Delayed ACK Timeout. Quantized to system jiffies. Kernel: ato in icsk_ack in include/net/inet_connection_sock.h |
raw.Upload.ClientMeasurements.TCPInfo.SndMSS | INTEGER | Current Maximum Segment Size. Note that this can be smaller than the negotiated MSS for various reasons. Kernel: mss_cache in include/linux/tcp.h |
raw.Upload.ClientMeasurements.TCPInfo.RcvMSS | INTEGER | Maximum observed segment size from the remote host. Used to trigger delayed ACKs. Kernel: rcv_mss in icsk_ack in include/net/inet_connection_sock.h |
raw.Upload.ClientMeasurements.TCPInfo.Unacked | INTEGER | Number of segments between snd.nxt and snd.una. Accounting for the Pipe algorithm. Kernel: packets_out in include/linux/tcp.h |
raw.Upload.ClientMeasurements.TCPInfo.Sacked | INTEGER | Scoreboard segment marked SACKED by sack blocks. Accounting for the Pipe algorithm. Kernel: sacked_out in include/linux/tcp.h |
raw.Upload.ClientMeasurements.TCPInfo.Lost | INTEGER | Scoreboard segments marked lost by loss detection heuristics. Accounting for the Pipe algorithm. Kernel: lost_out in include/linux/tcp.h |
raw.Upload.ClientMeasurements.TCPInfo.Retrans | INTEGER | Scoreboard segments marked retransmitted. Accounting for the Pipe algorithm. Kernel: retrans_out in include/linux/tcp.h |
raw.Upload.ClientMeasurements.TCPInfo.Fackets | INTEGER | Not Used - obsolete kernel instrument. |
raw.Upload.ClientMeasurements.TCPInfo.LastDataSent | INTEGER | Time since last data segment was sent. Quantized to jiffies. Kernel: lsndtime in include/linux/tcp.h |
raw.Upload.ClientMeasurements.TCPInfo.LastAckSent | INTEGER | Time since last ACK was sent (not implemented). Present in TCP_INFO but not elsewhere in the kernel. |
raw.Upload.ClientMeasurements.TCPInfo.LastDataRecv | INTEGER | Time since last data segment was received. Quantized to jiffies. Kernel: lrcvtime in icsk_ack in include/net/inet_connection_sock.h |
raw.Upload.ClientMeasurements.TCPInfo.LastAckRecv | INTEGER | |
raw.Upload.ClientMeasurements.TCPInfo.PMTU | INTEGER | Maximum IP Transmission Unit for this path. Kernel: icsk_pmtu_cookie in include/net/inet_connection_sock.h |
raw.Upload.ClientMeasurements.TCPInfo.RcvSsThresh | INTEGER | Current Window Clamp. Receiver algorithm to avoid allocating excessive receive buffers. Kernel: rcv_ssthresh in include/linux/tcp.h |
raw.Upload.ClientMeasurements.TCPInfo.RTT | INTEGER | Smoothed Round Trip Time (RTT). The Linux implementation differs from the standard. Kernel: srtt_us in include/linux/tcp.h |
raw.Upload.ClientMeasurements.TCPInfo.RTTVar | INTEGER | The variation in round trip time during the upload measurement as measured by the M-Lab server. |
raw.Upload.ClientMeasurements.TCPInfo.SndSsThresh | INTEGER | Slow Start Threshold. Value controlled by the selected congestion control algorithm. Kernel: snd_ssthresh in include/linux/tcp.h |
raw.Upload.ClientMeasurements.TCPInfo.SndCwnd | INTEGER | Congestion Window. Value controlled by the selected congestion control algorithm. Kernel: snd_cwnd in include/linux/tcp.h |
raw.Upload.ClientMeasurements.TCPInfo.AdvMSS | INTEGER | Advertised MSS. Kernel: advmss in include/linux/tcp.h |
raw.Upload.ClientMeasurements.TCPInfo.Reordering | INTEGER | Maximum observed reordering distance. Kernel: reordering in include/linux/tcp.h |
raw.Upload.ClientMeasurements.TCPInfo.RcvRTT | INTEGER | Receiver Side RTT estimate. Kernel: rcv_rtt_est.rtt_us in include/linux/tcp.h |
raw.Upload.ClientMeasurements.TCPInfo.RcvSpace | INTEGER | Space reserved for the receive queue. Typically updated by receiver side auto-tuning. Kernel: space in rcvq_space in include/linux/tcp.h |
raw.Upload.ClientMeasurements.TCPInfo.TotalRetrans | INTEGER | Total number of segments containing retransmitted data. Kernel: total_retrans in include/linux/tcp.h |
raw.Upload.ClientMeasurements.TCPInfo.PacingRate | INTEGER | Current Pacing Rate, nominally updated by congestion control. Kernel: sk_pacing_rate in include/net/sock.h |
raw.Upload.ClientMeasurements.TCPInfo.MaxPacingRate | INTEGER | Settable pacing rate clamp. Set with setsockopt( ..SO_MAX_PACING_RATE.. ). Kernel: sk_max_pacing_rate in include/net/sock.h |
raw.Upload.ClientMeasurements.TCPInfo.BytesAcked | INTEGER | The number of data bytes for which cumulative acknowledgments have been received. Kernel: bytes_acked in include/linux/tcp.h |
raw.Upload.ClientMeasurements.TCPInfo.BytesReceived | INTEGER | The number of data bytes for which have been received. Kernel: bytes_received in include/linux/tcp.h |
raw.Upload.ClientMeasurements.TCPInfo.SegsOut | INTEGER | The number of segments transmitted. Includes data and pure ACKs. Kernel: segs_out in include/linux/tcp.h |
raw.Upload.ClientMeasurements.TCPInfo.SegsIn | INTEGER | The number of segments received. Includes data and pure ACKs. Kernel: segs_in in include/linux/tcp.h |
raw.Upload.ClientMeasurements.TCPInfo.NotsentBytes | INTEGER | Number of bytes queued in the send buffer that have not been sent. Kernel: tcpi_notsent_bytes() in net/ipv4/tcp.c |
raw.Upload.ClientMeasurements.TCPInfo.MinRTT | INTEGER | Minimum Round Trip Time. Recorded in microseconds. Kernel: tcp_min_rtt in include/net/tcp.h |
raw.Upload.ClientMeasurements.TCPInfo.DataSegsIn | INTEGER | Input segments carrying data (len>0). Kernel: data_segs_in in include/net/tcp.h |
raw.Upload.ClientMeasurements.TCPInfo.DataSegsOut | INTEGER | Transmitted segments carrying data (len>0). Kernel: data_segs_out in include/net/tcp.h |
raw.Upload.ClientMeasurements.TCPInfo.DeliveryRate | INTEGER | Observed Maximum Delivery Rate. Kernel: tcp_compute_delivery_rate() in net/ipv4/tcp.c |
raw.Upload.ClientMeasurements.TCPInfo.BusyTime | INTEGER | Time with outstanding (unacknowledged) data. Time when snd.una is not equal to snd.next. Kernel: tcp_get_info_chrono_stats() in net/ipv4/tcp.c |
raw.Upload.ClientMeasurements.TCPInfo.RWndLimited | INTEGER | Time spend waiting for receiver window. Kernel: tcp_get_info_chrono_stats() in net/ipv4/tcp.c |
raw.Upload.ClientMeasurements.TCPInfo.SndBufLimited | INTEGER | Time spent waiting for sender buffer space. This only includes the time when TCP transmissions are starved for data, but the application has been stopped because the buffer is full and can not be grown for some reason. Kernel: tcp_get_info_chrono_stats() in net/ipv4/tcp.c |
raw.Upload.ClientMeasurements.TCPInfo.Delivered | INTEGER | Data segments delivered to the receiver including retransmits. As reported by returning ACKs, used by ECN. Kernel: delivered in include/linux/tcp.h |
raw.Upload.ClientMeasurements.TCPInfo.DeliveredCE | INTEGER | ECE marked data segments delivered to the receiver including retransmits. As reported by returning ACKs, used by ECN. Kernel: delivered_ce in include/linux/tcp.h |
raw.Upload.ClientMeasurements.TCPInfo.BytesSent | INTEGER | Payload bytes sent (excludes headers, includes retransmissions). Kernel: bytes_sent |
raw.Upload.ClientMeasurements.TCPInfo.BytesRetrans | INTEGER | Bytes retransmitted. May include headers and new data carried with a retransmission (for thin flows). Kernel: bytes_retrans |
raw.Upload.ClientMeasurements.TCPInfo.DSackDups | INTEGER | Duplicate segments reported by DSACK. Not reported by some Operating Systems. Kernel: dsack_dups |
raw.Upload.ClientMeasurements.TCPInfo.ReordSeen | INTEGER | Received ACKs that were out of order. Estimates reordering on the return path. Kernel: reord_seen |
raw.Upload.ClientMeasurements.TCPInfo.RcvOooPack | INTEGER | |
raw.Upload.ClientMeasurements.TCPInfo.SndWnd | INTEGER | |
raw.Upload.ClientMeasurements.TCPInfo.ElapsedTime | INTEGER | The duration of the measurement as measured by the M-Lab server in milliseconds. |
raw.Upload.ClientMetadata | RECORD | Client-reported metadata as name/value pairs. |
raw.Upload.ClientMetadata.Name | STRING | If set, contains text that identifies and provides context for the corresponding metadata value. For example, “OS” or “clientApplication” |
raw.Upload.ClientMetadata.Value | STRING | If set, contains a value corresponding to metadata name. For example, “Windows 10” or “ndtJS” |
raw.Upload.ServerMetadata | RECORD | Authoritative metadata added by the server configuration. |
raw.Upload.ServerMetadata.Name | STRING | If set, contains the name of a single piece of metadata. This name will be the same for all measurements collected while this server was running with this configuration. |
raw.Upload.ServerMetadata.Value | STRING | If name is set, contains the text of a server configuration value. This value will be the same for all measurements collected while this server was running with this configuration. |
raw.Download | RECORD | |
raw.Download.UUID | STRING | UUID for TCP connection for this measurement. |
raw.Download.StartTime | TIMESTAMP | The date and time when the measurement began in UTC. |
raw.Download.EndTime | TIMESTAMP | The date and time when the measurement ended in UTC. |
raw.Download.ServerMeasurements | RECORD | Measurements reported by the M-Lab server. Not all fields are reported by all versions of the server. |
raw.Download.ServerMeasurements.AppInfo | RECORD | Server measurements performed outside of the kernel |
raw.Download.ServerMeasurements.AppInfo.NumBytes | INTEGER | The number of bytes written to or read from the socket during the measurement. |
raw.Download.ServerMeasurements.AppInfo.ElapsedTime | INTEGER | The duration of the measurement as measured by the M-Lab server in milliseconds. |
raw.Download.ServerMeasurements.ConnectionInfo | RECORD | |
raw.Download.ServerMeasurements.ConnectionInfo.Client | STRING | |
raw.Download.ServerMeasurements.ConnectionInfo.Server | STRING | |
raw.Download.ServerMeasurements.ConnectionInfo.UUID | STRING | UUID for TCP connection for this measurement. |
raw.Download.ServerMeasurements.BBRInfo | RECORD | Instrumentation in the BBR TCP module in the kernel. |
raw.Download.ServerMeasurements.BBRInfo.BW | INTEGER | The maximum end-to-end bandwidth from the server to the client as measured by BBR. |
raw.Download.ServerMeasurements.BBRInfo.MinRTT | INTEGER | The minimum round trip time as measured by BBR. Recorded in microseconds. |
raw.Download.ServerMeasurements.BBRInfo.PacingGain | INTEGER | Fixed point multiplier used to set the pacing rate from the maximum bandwidth. The binary point varies by kernel version but the statistical mode is always 1.0. |
raw.Download.ServerMeasurements.BBRInfo.CwndGain | INTEGER | Fixed point multiplier used to set the maximum window size from BW*MinRTT. The denominator varies by kernel version. |
raw.Download.ServerMeasurements.BBRInfo.ElapsedTime | INTEGER | The duration of the measurement as measured by the M-Lab server in milliseconds. |
raw.Download.ServerMeasurements.TCPInfo | RECORD | TCP Instrumentation in the kernel, as accessed by the server. |
raw.Download.ServerMeasurements.TCPInfo.State | INTEGER | TCP state is nominally 1 (Established). Other values reflect transient states having incomplete rows. Kernel: See TCP_ESTABLISHED in include/net/tcp_states.h |
raw.Download.ServerMeasurements.TCPInfo.CAState | INTEGER | Loss recovery state machine. For traditional loss based congestion control algorithms, CAState is also used to control window adjustments. Kernel: tcp_set_ca_state in include/net/tcp.h |
raw.Download.ServerMeasurements.TCPInfo.Retransmits | INTEGER | Number of timeouts (RTO based retransmissions) at this sequence. Reset to zero on forward progress. Kernel: icsk_retransmits in include/net/inet_connection_sock.h |
raw.Download.ServerMeasurements.TCPInfo.Probes | INTEGER | Consecutive zero window probes that have gone unanswered. Kernel: icsk_probes_out in include/net/inet_connection_sock.h |
raw.Download.ServerMeasurements.TCPInfo.Backoff | INTEGER | Exponential timeout backoff counter. Increment on RTO, reset on successful RTT measurements. Kernel: icsk_backoff in include/net/inet_connection_sock.h |
raw.Download.ServerMeasurements.TCPInfo.Options | INTEGER | Bit encoded SYN options and other negotiations TIMESTAMPS 0x1; SACK 0x2; WSCALE 0x4; ECN 0x8 - Was negotiated; ECN_SEEN - At least one ECT seen; SYN_DATA - SYN-ACK acknowledged data in SYN sent or rcvd. Kernel: TCPI_OPT_TIMESTAMPS in include/uapi/linux/tcp.h |
raw.Download.ServerMeasurements.TCPInfo.WScale | INTEGER | BUG Conflation of SndWScale and RcvWScale. See github.com/m-lab/etl/issues/790 |
raw.Download.ServerMeasurements.TCPInfo.AppLimited | INTEGER | Flag indicating that rate measurements reflect non-network bottlenecks. Note that even very short application stalls invalidate max_BW measurements. Kernel: rate_app_limited in include/linux/tcp.h |
raw.Download.ServerMeasurements.TCPInfo.RTO | INTEGER | Retransmission Timeout. Quantized to system jiffies. Kernel: icsk_rto in include/net/inet_connection_sock.h |
raw.Download.ServerMeasurements.TCPInfo.ATO | INTEGER | Delayed ACK Timeout. Quantized to system jiffies. Kernel: ato in icsk_ack in include/net/inet_connection_sock.h |
raw.Download.ServerMeasurements.TCPInfo.SndMSS | INTEGER | Current Maximum Segment Size. Note that this can be smaller than the negotiated MSS for various reasons. Kernel: mss_cache in include/linux/tcp.h |
raw.Download.ServerMeasurements.TCPInfo.RcvMSS | INTEGER | Maximum observed segment size from the remote host. Used to trigger delayed ACKs. Kernel: rcv_mss in icsk_ack in include/net/inet_connection_sock.h |
raw.Download.ServerMeasurements.TCPInfo.Unacked | INTEGER | Number of segments between snd.nxt and snd.una. Accounting for the Pipe algorithm. Kernel: packets_out in include/linux/tcp.h |
raw.Download.ServerMeasurements.TCPInfo.Sacked | INTEGER | Scoreboard segment marked SACKED by sack blocks. Accounting for the Pipe algorithm. Kernel: sacked_out in include/linux/tcp.h |
raw.Download.ServerMeasurements.TCPInfo.Lost | INTEGER | Scoreboard segments marked lost by loss detection heuristics. Accounting for the Pipe algorithm. Kernel: lost_out in include/linux/tcp.h |
raw.Download.ServerMeasurements.TCPInfo.Retrans | INTEGER | Scoreboard segments marked retransmitted. Accounting for the Pipe algorithm. Kernel: retrans_out in include/linux/tcp.h |
raw.Download.ServerMeasurements.TCPInfo.Fackets | INTEGER | Not Used - obsolete kernel instrument. |
raw.Download.ServerMeasurements.TCPInfo.LastDataSent | INTEGER | Time since last data segment was sent. Quantized to jiffies. Kernel: lsndtime in include/linux/tcp.h |
raw.Download.ServerMeasurements.TCPInfo.LastAckSent | INTEGER | Time since last ACK was sent (not implemented). Present in TCP_INFO but not elsewhere in the kernel. |
raw.Download.ServerMeasurements.TCPInfo.LastDataRecv | INTEGER | Time since last data segment was received. Quantized to jiffies. Kernel: lrcvtime in icsk_ack in include/net/inet_connection_sock.h |
raw.Download.ServerMeasurements.TCPInfo.LastAckRecv | INTEGER | |
raw.Download.ServerMeasurements.TCPInfo.PMTU | INTEGER | Maximum IP Transmission Unit for this path. Kernel: icsk_pmtu_cookie in include/net/inet_connection_sock.h |
raw.Download.ServerMeasurements.TCPInfo.RcvSsThresh | INTEGER | Current Window Clamp. Receiver algorithm to avoid allocating excessive receive buffers. Kernel: rcv_ssthresh in include/linux/tcp.h |
raw.Download.ServerMeasurements.TCPInfo.RTT | INTEGER | Smoothed Round Trip Time (RTT). The Linux implementation differs from the standard. Kernel: srtt_us in include/linux/tcp.h |
raw.Download.ServerMeasurements.TCPInfo.RTTVar | INTEGER | The variation in round trip time during the upload measurement as measured by the M-Lab server. |
raw.Download.ServerMeasurements.TCPInfo.SndSsThresh | INTEGER | Slow Start Threshold. Value controlled by the selected congestion control algorithm. Kernel: snd_ssthresh in include/linux/tcp.h |
raw.Download.ServerMeasurements.TCPInfo.SndCwnd | INTEGER | Congestion Window. Value controlled by the selected congestion control algorithm. Kernel: snd_cwnd in include/linux/tcp.h |
raw.Download.ServerMeasurements.TCPInfo.AdvMSS | INTEGER | Advertised MSS. Kernel: advmss in include/linux/tcp.h |
raw.Download.ServerMeasurements.TCPInfo.Reordering | INTEGER | Maximum observed reordering distance. Kernel: reordering in include/linux/tcp.h |
raw.Download.ServerMeasurements.TCPInfo.RcvRTT | INTEGER | Receiver Side RTT estimate. Kernel: rcv_rtt_est.rtt_us in include/linux/tcp.h |
raw.Download.ServerMeasurements.TCPInfo.RcvSpace | INTEGER | Space reserved for the receive queue. Typically updated by receiver side auto-tuning. Kernel: space in rcvq_space in include/linux/tcp.h |
raw.Download.ServerMeasurements.TCPInfo.TotalRetrans | INTEGER | Total number of segments containing retransmitted data. Kernel: total_retrans in include/linux/tcp.h |
raw.Download.ServerMeasurements.TCPInfo.PacingRate | INTEGER | Current Pacing Rate, nominally updated by congestion control. Kernel: sk_pacing_rate in include/net/sock.h |
raw.Download.ServerMeasurements.TCPInfo.MaxPacingRate | INTEGER | Settable pacing rate clamp. Set with setsockopt( ..SO_MAX_PACING_RATE.. ). Kernel: sk_max_pacing_rate in include/net/sock.h |
raw.Download.ServerMeasurements.TCPInfo.BytesAcked | INTEGER | The number of data bytes for which cumulative acknowledgments have been received. Kernel: bytes_acked in include/linux/tcp.h |
raw.Download.ServerMeasurements.TCPInfo.BytesReceived | INTEGER | The number of data bytes for which have been received. Kernel: bytes_received in include/linux/tcp.h |
raw.Download.ServerMeasurements.TCPInfo.SegsOut | INTEGER | The number of segments transmitted. Includes data and pure ACKs. Kernel: segs_out in include/linux/tcp.h |
raw.Download.ServerMeasurements.TCPInfo.SegsIn | INTEGER | The number of segments received. Includes data and pure ACKs. Kernel: segs_in in include/linux/tcp.h |
raw.Download.ServerMeasurements.TCPInfo.NotsentBytes | INTEGER | Number of bytes queued in the send buffer that have not been sent. Kernel: tcpi_notsent_bytes() in net/ipv4/tcp.c |
raw.Download.ServerMeasurements.TCPInfo.MinRTT | INTEGER | Minimum Round Trip Time. Recorded in microseconds. Kernel: tcp_min_rtt in include/net/tcp.h |
raw.Download.ServerMeasurements.TCPInfo.DataSegsIn | INTEGER | Input segments carrying data (len>0). Kernel: data_segs_in in include/net/tcp.h |
raw.Download.ServerMeasurements.TCPInfo.DataSegsOut | INTEGER | Transmitted segments carrying data (len>0). Kernel: data_segs_out in include/net/tcp.h |
raw.Download.ServerMeasurements.TCPInfo.DeliveryRate | INTEGER | Observed Maximum Delivery Rate. Kernel: tcp_compute_delivery_rate() in net/ipv4/tcp.c |
raw.Download.ServerMeasurements.TCPInfo.BusyTime | INTEGER | Time with outstanding (unacknowledged) data. Time when snd.una is not equal to snd.next. Kernel: tcp_get_info_chrono_stats() in net/ipv4/tcp.c |
raw.Download.ServerMeasurements.TCPInfo.RWndLimited | INTEGER | Time spend waiting for receiver window. Kernel: tcp_get_info_chrono_stats() in net/ipv4/tcp.c |
raw.Download.ServerMeasurements.TCPInfo.SndBufLimited | INTEGER | Time spent waiting for sender buffer space. This only includes the time when TCP transmissions are starved for data, but the application has been stopped because the buffer is full and can not be grown for some reason. Kernel: tcp_get_info_chrono_stats() in net/ipv4/tcp.c |
raw.Download.ServerMeasurements.TCPInfo.Delivered | INTEGER | Data segments delivered to the receiver including retransmits. As reported by returning ACKs, used by ECN. Kernel: delivered in include/linux/tcp.h |
raw.Download.ServerMeasurements.TCPInfo.DeliveredCE | INTEGER | ECE marked data segments delivered to the receiver including retransmits. As reported by returning ACKs, used by ECN. Kernel: delivered_ce in include/linux/tcp.h |
raw.Download.ServerMeasurements.TCPInfo.BytesSent | INTEGER | Payload bytes sent (excludes headers, includes retransmissions). Kernel: bytes_sent |
raw.Download.ServerMeasurements.TCPInfo.BytesRetrans | INTEGER | Bytes retransmitted. May include headers and new data carried with a retransmission (for thin flows). Kernel: bytes_retrans |
raw.Download.ServerMeasurements.TCPInfo.DSackDups | INTEGER | Duplicate segments reported by DSACK. Not reported by some Operating Systems. Kernel: dsack_dups |
raw.Download.ServerMeasurements.TCPInfo.ReordSeen | INTEGER | Received ACKs that were out of order. Estimates reordering on the return path. Kernel: reord_seen |
raw.Download.ServerMeasurements.TCPInfo.RcvOooPack | INTEGER | |
raw.Download.ServerMeasurements.TCPInfo.SndWnd | INTEGER | |
raw.Download.ServerMeasurements.TCPInfo.ElapsedTime | INTEGER | The duration of the measurement as measured by the M-Lab server in milliseconds. |
raw.Download.ClientMeasurements | RECORD | Periodic measurements reported by the client. Not all clients report this information. |
raw.Download.ClientMeasurements.AppInfo | RECORD | Server measurements performed outside of the kernel |
raw.Download.ClientMeasurements.AppInfo.NumBytes | INTEGER | The number of bytes written to or read from the socket during the measurement. |
raw.Download.ClientMeasurements.AppInfo.ElapsedTime | INTEGER | The duration of the measurement as measured by the M-Lab server in milliseconds. |
raw.Download.ClientMeasurements.ConnectionInfo | RECORD | |
raw.Download.ClientMeasurements.ConnectionInfo.Client | STRING | |
raw.Download.ClientMeasurements.ConnectionInfo.Server | STRING | |
raw.Download.ClientMeasurements.ConnectionInfo.UUID | STRING | UUID for TCP connection for this measurement. |
raw.Download.ClientMeasurements.BBRInfo | RECORD | Instrumentation in the BBR TCP module in the kernel. |
raw.Download.ClientMeasurements.BBRInfo.BW | INTEGER | The maximum end-to-end bandwidth from the server to the client as measured by BBR. |
raw.Download.ClientMeasurements.BBRInfo.MinRTT | INTEGER | The minimum round trip time as measured by BBR. Recorded in microseconds. |
raw.Download.ClientMeasurements.BBRInfo.PacingGain | INTEGER | Fixed point multiplier used to set the pacing rate from the maximum bandwidth. The binary point varies by kernel version but the statistical mode is always 1.0. |
raw.Download.ClientMeasurements.BBRInfo.CwndGain | INTEGER | Fixed point multiplier used to set the maximum window size from BW*MinRTT. The denominator varies by kernel version. |
raw.Download.ClientMeasurements.BBRInfo.ElapsedTime | INTEGER | The duration of the measurement as measured by the M-Lab server in milliseconds. |
raw.Download.ClientMeasurements.TCPInfo | RECORD | TCP Instrumentation in the kernel, as accessed by the server. |
raw.Download.ClientMeasurements.TCPInfo.State | INTEGER | TCP state is nominally 1 (Established). Other values reflect transient states having incomplete rows. Kernel: See TCP_ESTABLISHED in include/net/tcp_states.h |
raw.Download.ClientMeasurements.TCPInfo.CAState | INTEGER | Loss recovery state machine. For traditional loss based congestion control algorithms, CAState is also used to control window adjustments. Kernel: tcp_set_ca_state in include/net/tcp.h |
raw.Download.ClientMeasurements.TCPInfo.Retransmits | INTEGER | Number of timeouts (RTO based retransmissions) at this sequence. Reset to zero on forward progress. Kernel: icsk_retransmits in include/net/inet_connection_sock.h |
raw.Download.ClientMeasurements.TCPInfo.Probes | INTEGER | Consecutive zero window probes that have gone unanswered. Kernel: icsk_probes_out in include/net/inet_connection_sock.h |
raw.Download.ClientMeasurements.TCPInfo.Backoff | INTEGER | Exponential timeout backoff counter. Increment on RTO, reset on successful RTT measurements. Kernel: icsk_backoff in include/net/inet_connection_sock.h |
raw.Download.ClientMeasurements.TCPInfo.Options | INTEGER | Bit encoded SYN options and other negotiations TIMESTAMPS 0x1; SACK 0x2; WSCALE 0x4; ECN 0x8 - Was negotiated; ECN_SEEN - At least one ECT seen; SYN_DATA - SYN-ACK acknowledged data in SYN sent or rcvd. Kernel: TCPI_OPT_TIMESTAMPS in include/uapi/linux/tcp.h |
raw.Download.ClientMeasurements.TCPInfo.WScale | INTEGER | BUG Conflation of SndWScale and RcvWScale. See github.com/m-lab/etl/issues/790 |
raw.Download.ClientMeasurements.TCPInfo.AppLimited | INTEGER | Flag indicating that rate measurements reflect non-network bottlenecks. Note that even very short application stalls invalidate max_BW measurements. Kernel: rate_app_limited in include/linux/tcp.h |
raw.Download.ClientMeasurements.TCPInfo.RTO | INTEGER | Retransmission Timeout. Quantized to system jiffies. Kernel: icsk_rto in include/net/inet_connection_sock.h |
raw.Download.ClientMeasurements.TCPInfo.ATO | INTEGER | Delayed ACK Timeout. Quantized to system jiffies. Kernel: ato in icsk_ack in include/net/inet_connection_sock.h |
raw.Download.ClientMeasurements.TCPInfo.SndMSS | INTEGER | Current Maximum Segment Size. Note that this can be smaller than the negotiated MSS for various reasons. Kernel: mss_cache in include/linux/tcp.h |
raw.Download.ClientMeasurements.TCPInfo.RcvMSS | INTEGER | Maximum observed segment size from the remote host. Used to trigger delayed ACKs. Kernel: rcv_mss in icsk_ack in include/net/inet_connection_sock.h |
raw.Download.ClientMeasurements.TCPInfo.Unacked | INTEGER | Number of segments between snd.nxt and snd.una. Accounting for the Pipe algorithm. Kernel: packets_out in include/linux/tcp.h |
raw.Download.ClientMeasurements.TCPInfo.Sacked | INTEGER | Scoreboard segment marked SACKED by sack blocks. Accounting for the Pipe algorithm. Kernel: sacked_out in include/linux/tcp.h |
raw.Download.ClientMeasurements.TCPInfo.Lost | INTEGER | Scoreboard segments marked lost by loss detection heuristics. Accounting for the Pipe algorithm. Kernel: lost_out in include/linux/tcp.h |
raw.Download.ClientMeasurements.TCPInfo.Retrans | INTEGER | Scoreboard segments marked retransmitted. Accounting for the Pipe algorithm. Kernel: retrans_out in include/linux/tcp.h |
raw.Download.ClientMeasurements.TCPInfo.Fackets | INTEGER | Not Used - obsolete kernel instrument. |
raw.Download.ClientMeasurements.TCPInfo.LastDataSent | INTEGER | Time since last data segment was sent. Quantized to jiffies. Kernel: lsndtime in include/linux/tcp.h |
raw.Download.ClientMeasurements.TCPInfo.LastAckSent | INTEGER | Time since last ACK was sent (not implemented). Present in TCP_INFO but not elsewhere in the kernel. |
raw.Download.ClientMeasurements.TCPInfo.LastDataRecv | INTEGER | Time since last data segment was received. Quantized to jiffies. Kernel: lrcvtime in icsk_ack in include/net/inet_connection_sock.h |
raw.Download.ClientMeasurements.TCPInfo.LastAckRecv | INTEGER | |
raw.Download.ClientMeasurements.TCPInfo.PMTU | INTEGER | Maximum IP Transmission Unit for this path. Kernel: icsk_pmtu_cookie in include/net/inet_connection_sock.h |
raw.Download.ClientMeasurements.TCPInfo.RcvSsThresh | INTEGER | Current Window Clamp. Receiver algorithm to avoid allocating excessive receive buffers. Kernel: rcv_ssthresh in include/linux/tcp.h |
raw.Download.ClientMeasurements.TCPInfo.RTT | INTEGER | Smoothed Round Trip Time (RTT). The Linux implementation differs from the standard. Kernel: srtt_us in include/linux/tcp.h |
raw.Download.ClientMeasurements.TCPInfo.RTTVar | INTEGER | The variation in round trip time during the upload measurement as measured by the M-Lab server. |
raw.Download.ClientMeasurements.TCPInfo.SndSsThresh | INTEGER | Slow Start Threshold. Value controlled by the selected congestion control algorithm. Kernel: snd_ssthresh in include/linux/tcp.h |
raw.Download.ClientMeasurements.TCPInfo.SndCwnd | INTEGER | Congestion Window. Value controlled by the selected congestion control algorithm. Kernel: snd_cwnd in include/linux/tcp.h |
raw.Download.ClientMeasurements.TCPInfo.AdvMSS | INTEGER | Advertised MSS. Kernel: advmss in include/linux/tcp.h |
raw.Download.ClientMeasurements.TCPInfo.Reordering | INTEGER | Maximum observed reordering distance. Kernel: reordering in include/linux/tcp.h |
raw.Download.ClientMeasurements.TCPInfo.RcvRTT | INTEGER | Receiver Side RTT estimate. Kernel: rcv_rtt_est.rtt_us in include/linux/tcp.h |
raw.Download.ClientMeasurements.TCPInfo.RcvSpace | INTEGER | Space reserved for the receive queue. Typically updated by receiver side auto-tuning. Kernel: space in rcvq_space in include/linux/tcp.h |
raw.Download.ClientMeasurements.TCPInfo.TotalRetrans | INTEGER | Total number of segments containing retransmitted data. Kernel: total_retrans in include/linux/tcp.h |
raw.Download.ClientMeasurements.TCPInfo.PacingRate | INTEGER | Current Pacing Rate, nominally updated by congestion control. Kernel: sk_pacing_rate in include/net/sock.h |
raw.Download.ClientMeasurements.TCPInfo.MaxPacingRate | INTEGER | Settable pacing rate clamp. Set with setsockopt( ..SO_MAX_PACING_RATE.. ). Kernel: sk_max_pacing_rate in include/net/sock.h |
raw.Download.ClientMeasurements.TCPInfo.BytesAcked | INTEGER | The number of data bytes for which cumulative acknowledgments have been received. Kernel: bytes_acked in include/linux/tcp.h |
raw.Download.ClientMeasurements.TCPInfo.BytesReceived | INTEGER | The number of data bytes for which have been received. Kernel: bytes_received in include/linux/tcp.h |
raw.Download.ClientMeasurements.TCPInfo.SegsOut | INTEGER | The number of segments transmitted. Includes data and pure ACKs. Kernel: segs_out in include/linux/tcp.h |
raw.Download.ClientMeasurements.TCPInfo.SegsIn | INTEGER | The number of segments received. Includes data and pure ACKs. Kernel: segs_in in include/linux/tcp.h |
raw.Download.ClientMeasurements.TCPInfo.NotsentBytes | INTEGER | Number of bytes queued in the send buffer that have not been sent. Kernel: tcpi_notsent_bytes() in net/ipv4/tcp.c |
raw.Download.ClientMeasurements.TCPInfo.MinRTT | INTEGER | Minimum Round Trip Time. Recorded in microseconds. Kernel: tcp_min_rtt in include/net/tcp.h |
raw.Download.ClientMeasurements.TCPInfo.DataSegsIn | INTEGER | Input segments carrying data (len>0). Kernel: data_segs_in in include/net/tcp.h |
raw.Download.ClientMeasurements.TCPInfo.DataSegsOut | INTEGER | Transmitted segments carrying data (len>0). Kernel: data_segs_out in include/net/tcp.h |
raw.Download.ClientMeasurements.TCPInfo.DeliveryRate | INTEGER | Observed Maximum Delivery Rate. Kernel: tcp_compute_delivery_rate() in net/ipv4/tcp.c |
raw.Download.ClientMeasurements.TCPInfo.BusyTime | INTEGER | Time with outstanding (unacknowledged) data. Time when snd.una is not equal to snd.next. Kernel: tcp_get_info_chrono_stats() in net/ipv4/tcp.c |
raw.Download.ClientMeasurements.TCPInfo.RWndLimited | INTEGER | Time spend waiting for receiver window. Kernel: tcp_get_info_chrono_stats() in net/ipv4/tcp.c |
raw.Download.ClientMeasurements.TCPInfo.SndBufLimited | INTEGER | Time spent waiting for sender buffer space. This only includes the time when TCP transmissions are starved for data, but the application has been stopped because the buffer is full and can not be grown for some reason. Kernel: tcp_get_info_chrono_stats() in net/ipv4/tcp.c |
raw.Download.ClientMeasurements.TCPInfo.Delivered | INTEGER | Data segments delivered to the receiver including retransmits. As reported by returning ACKs, used by ECN. Kernel: delivered in include/linux/tcp.h |
raw.Download.ClientMeasurements.TCPInfo.DeliveredCE | INTEGER | ECE marked data segments delivered to the receiver including retransmits. As reported by returning ACKs, used by ECN. Kernel: delivered_ce in include/linux/tcp.h |
raw.Download.ClientMeasurements.TCPInfo.BytesSent | INTEGER | Payload bytes sent (excludes headers, includes retransmissions). Kernel: bytes_sent |
raw.Download.ClientMeasurements.TCPInfo.BytesRetrans | INTEGER | Bytes retransmitted. May include headers and new data carried with a retransmission (for thin flows). Kernel: bytes_retrans |
raw.Download.ClientMeasurements.TCPInfo.DSackDups | INTEGER | Duplicate segments reported by DSACK. Not reported by some Operating Systems. Kernel: dsack_dups |
raw.Download.ClientMeasurements.TCPInfo.ReordSeen | INTEGER | Received ACKs that were out of order. Estimates reordering on the return path. Kernel: reord_seen |
raw.Download.ClientMeasurements.TCPInfo.RcvOooPack | INTEGER | |
raw.Download.ClientMeasurements.TCPInfo.SndWnd | INTEGER | |
raw.Download.ClientMeasurements.TCPInfo.ElapsedTime | INTEGER | The duration of the measurement as measured by the M-Lab server in milliseconds. |
raw.Download.ClientMetadata | RECORD | Client-reported metadata as name/value pairs. |
raw.Download.ClientMetadata.Name | STRING | If set, contains text that identifies and provides context for the corresponding metadata value. For example, “OS” or “clientApplication” |
raw.Download.ClientMetadata.Value | STRING | If set, contains a value corresponding to metadata name. For example, “Windows 10” or “ndtJS” |
raw.Download.ServerMetadata | RECORD | Authoritative metadata added by the server configuration. |
raw.Download.ServerMetadata.Name | STRING | If set, contains the name of a single piece of metadata. This name will be the same for all measurements collected while this server was running with this configuration. |
raw.Download.ServerMetadata.Value | STRING | If name is set, contains the text of a server configuration value. This value will be the same for all measurements collected while this server was running with this configuration. |