ndt7 Protocol - NDT (Network Diagnostic Tool)

Current

ndt7 Protocol - NDT (Network Diagnostic Tool)#

ndt7 is a 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.

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 nameTypeDescription
idSTRINGUUID of the connection under consideration.
aRECORDFields summarizing or derived from the raw data.
a.UUIDSTRINGUUID for TCP connection.
a.TestTimeTIMESTAMPThe date and time of the measurement in UTC.
a.CongestionControlSTRINGThe congestion control algorithm used for connection.
a.MeanThroughputMbpsFLOATThe 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.MinRTTFLOATThe minimum Round Trip Time observed during the measurement, recorded in milliseconds.
a.LossRateFLOATLoss rate from the lifetime of the connection.
parserRECORDMetadata about how the parser processed this measurement row.
parser.VersionSTRINGVersion is the symbolic version (if any) of the running server code that produced this measurement.
parser.TimeTIMESTAMPThe time that the parser processed this row.
parser.ArchiveURLSTRINGThe Google Cloud Storage URL to the archive containing the Filename for this row.
parser.FilenameSTRINGThe 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.PriorityINTEGER
parser.GitCommitSTRINGThe git commit of this build of the parser.
parser.ArchiveSizeINTEGERThe original archive size as found in GCS.
parser.FileSizeINTEGERThe size of the file data provided to the parser for this row.
dateDATEDate is used by BigQuery to partition data to improve query performance.
rawRECORDFields from the raw data.
raw.GitShortCommitSTRINGGitShortCommit is the Git commit (short form) of the running server code that produced this measurement.
raw.VersionSTRINGVersion is the symbolic version (if any) of the running server code that produced this measurement.
raw.ServerIPSTRINGThe IP address assigned to the M-Lab server that conducted the measurement.
raw.ServerPortINTEGERThe port used by the server to conduct the measurement.
raw.ClientIPSTRINGThe IP address assigned to the client that conducted the measurement.
raw.ClientPortINTEGERThe port used by the client to conduct the measurement.
raw.StartTimeTIMESTAMPThe date and time when the measurement began in UTC.
raw.EndTimeTIMESTAMPThe date and time when the measurement ended in UTC.
raw.UploadRECORDMetadata for the NDT7 protocol for this measurement.
raw.Upload.UUIDSTRINGUUID for TCP connection for this measurement.
raw.Upload.StartTimeTIMESTAMPThe date and time when the measurement began in UTC.
raw.Upload.EndTimeTIMESTAMPThe date and time when the measurement ended in UTC.
raw.Upload.ServerMeasurementsRECORDMeasurements reported by the M-Lab server. Not all fields are reported by all versions of the server.
raw.Upload.ServerMeasurements.AppInfoRECORDServer measurements performed outside of the kernel
raw.Upload.ServerMeasurements.AppInfo.NumBytesINTEGERThe number of bytes written to or read from the socket during the measurement.
raw.Upload.ServerMeasurements.AppInfo.ElapsedTimeINTEGERThe duration of the measurement as measured by the M-Lab server in microseconds.
raw.Upload.ServerMeasurements.ConnectionInfoRECORD
raw.Upload.ServerMeasurements.ConnectionInfo.ClientSTRING
raw.Upload.ServerMeasurements.ConnectionInfo.ServerSTRING
raw.Upload.ServerMeasurements.ConnectionInfo.UUIDSTRINGUUID for TCP connection for this measurement.
raw.Upload.ServerMeasurements.BBRInfoRECORDInstrumentation in the BBR TCP module in the kernel.
raw.Upload.ServerMeasurements.BBRInfo.BWINTEGERThe maximum end-to-end bandwidth from the server to the client as measured by BBR.
raw.Upload.ServerMeasurements.BBRInfo.MinRTTINTEGERThe minimum round trip time as measured by BBR. Recorded in microseconds.
raw.Upload.ServerMeasurements.BBRInfo.PacingGainINTEGERFixed 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.CwndGainINTEGERFixed point multiplier used to set the maximum window size from BW*MinRTT. The denominator varies by kernel version.
raw.Upload.ServerMeasurements.BBRInfo.ElapsedTimeINTEGERThe duration of the measurement as measured by the M-Lab server in microseconds.
raw.Upload.ServerMeasurements.TCPInfoRECORDTCP Instrumentation in the kernel, as accessed by the server.
raw.Upload.ServerMeasurements.TCPInfo.StateINTEGERTCP 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.CAStateINTEGERLoss 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.RetransmitsINTEGERNumber 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.ProbesINTEGERConsecutive zero window probes that have gone unanswered.
Kernel: icsk_probes_out in include/net/inet_connection_sock.h
raw.Upload.ServerMeasurements.TCPInfo.BackoffINTEGERExponential 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.OptionsINTEGERBit 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.WScaleINTEGERBUG Conflation of SndWScale and RcvWScale. See github.com/m-lab/etl/issues/790
raw.Upload.ServerMeasurements.TCPInfo.AppLimitedINTEGERFlag 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.RTOINTEGERRetransmission Timeout. Quantized to system jiffies.
Kernel: icsk_rto in include/net/inet_connection_sock.h
raw.Upload.ServerMeasurements.TCPInfo.ATOINTEGERDelayed ACK Timeout. Quantized to system jiffies.
Kernel: ato in icsk_ack in include/net/inet_connection_sock.h
raw.Upload.ServerMeasurements.TCPInfo.SndMSSINTEGERCurrent 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.RcvMSSINTEGERMaximum 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.UnackedINTEGERNumber 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.SackedINTEGERScoreboard segment marked SACKED by sack blocks. Accounting for the Pipe algorithm.
Kernel: sacked_out in include/linux/tcp.h
raw.Upload.ServerMeasurements.TCPInfo.LostINTEGERScoreboard segments marked lost by loss detection heuristics. Accounting for the Pipe algorithm.
Kernel: lost_out in include/linux/tcp.h
raw.Upload.ServerMeasurements.TCPInfo.RetransINTEGERScoreboard segments marked retransmitted. Accounting for the Pipe algorithm.
Kernel: retrans_out in include/linux/tcp.h
raw.Upload.ServerMeasurements.TCPInfo.FacketsINTEGERNot Used - obsolete kernel instrument.
raw.Upload.ServerMeasurements.TCPInfo.LastDataSentINTEGERTime since last data segment was sent. Quantized to jiffies.
Kernel: lsndtime in include/linux/tcp.h
raw.Upload.ServerMeasurements.TCPInfo.LastAckSentINTEGERTime since last ACK was sent (not implemented). Present in TCP_INFO but not elsewhere in the kernel.
raw.Upload.ServerMeasurements.TCPInfo.LastDataRecvINTEGERTime 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.LastAckRecvINTEGER
raw.Upload.ServerMeasurements.TCPInfo.PMTUINTEGERMaximum IP Transmission Unit for this path.
Kernel: icsk_pmtu_cookie in include/net/inet_connection_sock.h
raw.Upload.ServerMeasurements.TCPInfo.RcvSsThreshINTEGERCurrent Window Clamp. Receiver algorithm to avoid allocating excessive receive buffers.
Kernel: rcv_ssthresh in include/linux/tcp.h
raw.Upload.ServerMeasurements.TCPInfo.RTTINTEGERSmoothed Round Trip Time (RTT). The Linux implementation differs from the standard.
Kernel: srtt_us in include/linux/tcp.h
raw.Upload.ServerMeasurements.TCPInfo.RTTVarINTEGERThe variation in round trip time during the upload measurement as measured by the M-Lab server.
raw.Upload.ServerMeasurements.TCPInfo.SndSsThreshINTEGERSlow Start Threshold. Value controlled by the selected congestion control algorithm.
Kernel: snd_ssthresh in include/linux/tcp.h
raw.Upload.ServerMeasurements.TCPInfo.SndCwndINTEGERCongestion Window. Value controlled by the selected congestion control algorithm.
Kernel: snd_cwnd in include/linux/tcp.h
raw.Upload.ServerMeasurements.TCPInfo.AdvMSSINTEGERAdvertised MSS.
Kernel: advmss in include/linux/tcp.h
raw.Upload.ServerMeasurements.TCPInfo.ReorderingINTEGERMaximum observed reordering distance.
Kernel: reordering in include/linux/tcp.h
raw.Upload.ServerMeasurements.TCPInfo.RcvRTTINTEGERReceiver Side RTT estimate.
Kernel: rcv_rtt_est.rtt_us in include/linux/tcp.h
raw.Upload.ServerMeasurements.TCPInfo.RcvSpaceINTEGERSpace 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.TotalRetransINTEGERTotal number of segments containing retransmitted data.
Kernel: total_retrans in include/linux/tcp.h
raw.Upload.ServerMeasurements.TCPInfo.PacingRateINTEGERCurrent Pacing Rate, nominally updated by congestion control.
Kernel: sk_pacing_rate in include/net/sock.h
raw.Upload.ServerMeasurements.TCPInfo.MaxPacingRateINTEGERSettable pacing rate clamp. Set with setsockopt( ..SO_MAX_PACING_RATE.. ).
Kernel: sk_max_pacing_rate in include/net/sock.h
raw.Upload.ServerMeasurements.TCPInfo.BytesAckedINTEGERThe number of data bytes for which cumulative acknowledgments have been received.
Kernel: bytes_acked in include/linux/tcp.h
raw.Upload.ServerMeasurements.TCPInfo.BytesReceivedINTEGERThe number of data bytes for which have been received.
Kernel: bytes_received in include/linux/tcp.h
raw.Upload.ServerMeasurements.TCPInfo.SegsOutINTEGERThe number of segments transmitted. Includes data and pure ACKs.
Kernel: segs_out in include/linux/tcp.h
raw.Upload.ServerMeasurements.TCPInfo.SegsInINTEGERThe number of segments received. Includes data and pure ACKs.
Kernel: segs_in in include/linux/tcp.h
raw.Upload.ServerMeasurements.TCPInfo.NotsentBytesINTEGERNumber 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.MinRTTINTEGERMinimum Round Trip Time. Recorded in microseconds.
Kernel: tcp_min_rtt in include/net/tcp.h
raw.Upload.ServerMeasurements.TCPInfo.DataSegsInINTEGERInput segments carrying data (len>0).
Kernel: data_segs_in in include/net/tcp.h
raw.Upload.ServerMeasurements.TCPInfo.DataSegsOutINTEGERTransmitted segments carrying data (len>0).
Kernel: data_segs_out in include/net/tcp.h
raw.Upload.ServerMeasurements.TCPInfo.DeliveryRateINTEGERObserved Maximum Delivery Rate.
Kernel: tcp_compute_delivery_rate() in net/ipv4/tcp.c
raw.Upload.ServerMeasurements.TCPInfo.BusyTimeINTEGERTime 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.RWndLimitedINTEGERTime spend waiting for receiver window.
Kernel: tcp_get_info_chrono_stats() in net/ipv4/tcp.c
raw.Upload.ServerMeasurements.TCPInfo.SndBufLimitedINTEGERTime 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.DeliveredINTEGERData 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.DeliveredCEINTEGERECE 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.BytesSentINTEGERPayload bytes sent (excludes headers, includes retransmissions).
Kernel: bytes_sent
raw.Upload.ServerMeasurements.TCPInfo.BytesRetransINTEGERBytes retransmitted. May include headers and new data carried with a retransmission (for thin flows).
Kernel: bytes_retrans
raw.Upload.ServerMeasurements.TCPInfo.DSackDupsINTEGERDuplicate segments reported by DSACK. Not reported by some Operating Systems.
Kernel: dsack_dups
raw.Upload.ServerMeasurements.TCPInfo.ReordSeenINTEGERReceived ACKs that were out of order. Estimates reordering on the return path.
Kernel: reord_seen
raw.Upload.ServerMeasurements.TCPInfo.RcvOooPackINTEGER
raw.Upload.ServerMeasurements.TCPInfo.SndWndINTEGER
raw.Upload.ServerMeasurements.TCPInfo.ElapsedTimeINTEGERThe duration of the measurement as measured by the M-Lab server in microseconds.
raw.Upload.ClientMeasurementsRECORDPeriodic measurements reported by the client. Not all clients report this information.
raw.Upload.ClientMeasurements.AppInfoRECORDServer measurements performed outside of the kernel
raw.Upload.ClientMeasurements.AppInfo.NumBytesINTEGERThe number of bytes written to or read from the socket during the measurement.
raw.Upload.ClientMeasurements.AppInfo.ElapsedTimeINTEGERThe duration of the measurement as measured by the M-Lab server in microseconds.
raw.Upload.ClientMeasurements.ConnectionInfoRECORD
raw.Upload.ClientMeasurements.ConnectionInfo.ClientSTRING
raw.Upload.ClientMeasurements.ConnectionInfo.ServerSTRING
raw.Upload.ClientMeasurements.ConnectionInfo.UUIDSTRINGUUID for TCP connection for this measurement.
raw.Upload.ClientMeasurements.BBRInfoRECORDInstrumentation in the BBR TCP module in the kernel.
raw.Upload.ClientMeasurements.BBRInfo.BWINTEGERThe maximum end-to-end bandwidth from the server to the client as measured by BBR.
raw.Upload.ClientMeasurements.BBRInfo.MinRTTINTEGERThe minimum round trip time as measured by BBR. Recorded in microseconds.
raw.Upload.ClientMeasurements.BBRInfo.PacingGainINTEGERFixed 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.CwndGainINTEGERFixed point multiplier used to set the maximum window size from BW*MinRTT. The denominator varies by kernel version.
raw.Upload.ClientMeasurements.BBRInfo.ElapsedTimeINTEGERThe duration of the measurement as measured by the M-Lab server in microseconds.
raw.Upload.ClientMeasurements.TCPInfoRECORDTCP Instrumentation in the kernel, as accessed by the server.
raw.Upload.ClientMeasurements.TCPInfo.StateINTEGERTCP 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.CAStateINTEGERLoss 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.RetransmitsINTEGERNumber 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.ProbesINTEGERConsecutive zero window probes that have gone unanswered.
Kernel: icsk_probes_out in include/net/inet_connection_sock.h
raw.Upload.ClientMeasurements.TCPInfo.BackoffINTEGERExponential 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.OptionsINTEGERBit 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.WScaleINTEGERBUG Conflation of SndWScale and RcvWScale. See github.com/m-lab/etl/issues/790
raw.Upload.ClientMeasurements.TCPInfo.AppLimitedINTEGERFlag 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.RTOINTEGERRetransmission Timeout. Quantized to system jiffies.
Kernel: icsk_rto in include/net/inet_connection_sock.h
raw.Upload.ClientMeasurements.TCPInfo.ATOINTEGERDelayed ACK Timeout. Quantized to system jiffies.
Kernel: ato in icsk_ack in include/net/inet_connection_sock.h
raw.Upload.ClientMeasurements.TCPInfo.SndMSSINTEGERCurrent 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.RcvMSSINTEGERMaximum 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.UnackedINTEGERNumber 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.SackedINTEGERScoreboard segment marked SACKED by sack blocks. Accounting for the Pipe algorithm.
Kernel: sacked_out in include/linux/tcp.h
raw.Upload.ClientMeasurements.TCPInfo.LostINTEGERScoreboard segments marked lost by loss detection heuristics. Accounting for the Pipe algorithm.
Kernel: lost_out in include/linux/tcp.h
raw.Upload.ClientMeasurements.TCPInfo.RetransINTEGERScoreboard segments marked retransmitted. Accounting for the Pipe algorithm.
Kernel: retrans_out in include/linux/tcp.h
raw.Upload.ClientMeasurements.TCPInfo.FacketsINTEGERNot Used - obsolete kernel instrument.
raw.Upload.ClientMeasurements.TCPInfo.LastDataSentINTEGERTime since last data segment was sent. Quantized to jiffies.
Kernel: lsndtime in include/linux/tcp.h
raw.Upload.ClientMeasurements.TCPInfo.LastAckSentINTEGERTime since last ACK was sent (not implemented). Present in TCP_INFO but not elsewhere in the kernel.
raw.Upload.ClientMeasurements.TCPInfo.LastDataRecvINTEGERTime 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.LastAckRecvINTEGER
raw.Upload.ClientMeasurements.TCPInfo.PMTUINTEGERMaximum IP Transmission Unit for this path.
Kernel: icsk_pmtu_cookie in include/net/inet_connection_sock.h
raw.Upload.ClientMeasurements.TCPInfo.RcvSsThreshINTEGERCurrent Window Clamp. Receiver algorithm to avoid allocating excessive receive buffers.
Kernel: rcv_ssthresh in include/linux/tcp.h
raw.Upload.ClientMeasurements.TCPInfo.RTTINTEGERSmoothed Round Trip Time (RTT). The Linux implementation differs from the standard.
Kernel: srtt_us in include/linux/tcp.h
raw.Upload.ClientMeasurements.TCPInfo.RTTVarINTEGERThe variation in round trip time during the upload measurement as measured by the M-Lab server.
raw.Upload.ClientMeasurements.TCPInfo.SndSsThreshINTEGERSlow Start Threshold. Value controlled by the selected congestion control algorithm.
Kernel: snd_ssthresh in include/linux/tcp.h
raw.Upload.ClientMeasurements.TCPInfo.SndCwndINTEGERCongestion Window. Value controlled by the selected congestion control algorithm.
Kernel: snd_cwnd in include/linux/tcp.h
raw.Upload.ClientMeasurements.TCPInfo.AdvMSSINTEGERAdvertised MSS.
Kernel: advmss in include/linux/tcp.h
raw.Upload.ClientMeasurements.TCPInfo.ReorderingINTEGERMaximum observed reordering distance.
Kernel: reordering in include/linux/tcp.h
raw.Upload.ClientMeasurements.TCPInfo.RcvRTTINTEGERReceiver Side RTT estimate.
Kernel: rcv_rtt_est.rtt_us in include/linux/tcp.h
raw.Upload.ClientMeasurements.TCPInfo.RcvSpaceINTEGERSpace 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.TotalRetransINTEGERTotal number of segments containing retransmitted data.
Kernel: total_retrans in include/linux/tcp.h
raw.Upload.ClientMeasurements.TCPInfo.PacingRateINTEGERCurrent Pacing Rate, nominally updated by congestion control.
Kernel: sk_pacing_rate in include/net/sock.h
raw.Upload.ClientMeasurements.TCPInfo.MaxPacingRateINTEGERSettable pacing rate clamp. Set with setsockopt( ..SO_MAX_PACING_RATE.. ).
Kernel: sk_max_pacing_rate in include/net/sock.h
raw.Upload.ClientMeasurements.TCPInfo.BytesAckedINTEGERThe number of data bytes for which cumulative acknowledgments have been received.
Kernel: bytes_acked in include/linux/tcp.h
raw.Upload.ClientMeasurements.TCPInfo.BytesReceivedINTEGERThe number of data bytes for which have been received.
Kernel: bytes_received in include/linux/tcp.h
raw.Upload.ClientMeasurements.TCPInfo.SegsOutINTEGERThe number of segments transmitted. Includes data and pure ACKs.
Kernel: segs_out in include/linux/tcp.h
raw.Upload.ClientMeasurements.TCPInfo.SegsInINTEGERThe number of segments received. Includes data and pure ACKs.
Kernel: segs_in in include/linux/tcp.h
raw.Upload.ClientMeasurements.TCPInfo.NotsentBytesINTEGERNumber 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.MinRTTINTEGERMinimum Round Trip Time. Recorded in microseconds.
Kernel: tcp_min_rtt in include/net/tcp.h
raw.Upload.ClientMeasurements.TCPInfo.DataSegsInINTEGERInput segments carrying data (len>0).
Kernel: data_segs_in in include/net/tcp.h
raw.Upload.ClientMeasurements.TCPInfo.DataSegsOutINTEGERTransmitted segments carrying data (len>0).
Kernel: data_segs_out in include/net/tcp.h
raw.Upload.ClientMeasurements.TCPInfo.DeliveryRateINTEGERObserved Maximum Delivery Rate.
Kernel: tcp_compute_delivery_rate() in net/ipv4/tcp.c
raw.Upload.ClientMeasurements.TCPInfo.BusyTimeINTEGERTime 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.RWndLimitedINTEGERTime spend waiting for receiver window.
Kernel: tcp_get_info_chrono_stats() in net/ipv4/tcp.c
raw.Upload.ClientMeasurements.TCPInfo.SndBufLimitedINTEGERTime 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.DeliveredINTEGERData 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.DeliveredCEINTEGERECE 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.BytesSentINTEGERPayload bytes sent (excludes headers, includes retransmissions).
Kernel: bytes_sent
raw.Upload.ClientMeasurements.TCPInfo.BytesRetransINTEGERBytes retransmitted. May include headers and new data carried with a retransmission (for thin flows).
Kernel: bytes_retrans
raw.Upload.ClientMeasurements.TCPInfo.DSackDupsINTEGERDuplicate segments reported by DSACK. Not reported by some Operating Systems.
Kernel: dsack_dups
raw.Upload.ClientMeasurements.TCPInfo.ReordSeenINTEGERReceived ACKs that were out of order. Estimates reordering on the return path.
Kernel: reord_seen
raw.Upload.ClientMeasurements.TCPInfo.RcvOooPackINTEGER
raw.Upload.ClientMeasurements.TCPInfo.SndWndINTEGER
raw.Upload.ClientMeasurements.TCPInfo.ElapsedTimeINTEGERThe duration of the measurement as measured by the M-Lab server in microseconds.
raw.Upload.ClientMetadataRECORDClient-reported metadata as name/value pairs.
raw.Upload.ClientMetadata.NameSTRINGIf set, contains text that identifies and provides context for the corresponding metadata value. For example, “OS” or “clientApplication”
raw.Upload.ClientMetadata.ValueSTRINGIf set, contains a value corresponding to metadata name. For example, “Windows 10” or “ndtJS”
raw.Upload.ServerMetadataRECORDAuthoritative metadata added by the server configuration.
raw.Upload.ServerMetadata.NameSTRINGIf 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.ValueSTRINGIf 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.DownloadRECORD
raw.Download.UUIDSTRINGUUID for TCP connection for this measurement.
raw.Download.StartTimeTIMESTAMPThe date and time when the measurement began in UTC.
raw.Download.EndTimeTIMESTAMPThe date and time when the measurement ended in UTC.
raw.Download.ServerMeasurementsRECORDMeasurements reported by the M-Lab server. Not all fields are reported by all versions of the server.
raw.Download.ServerMeasurements.AppInfoRECORDServer measurements performed outside of the kernel
raw.Download.ServerMeasurements.AppInfo.NumBytesINTEGERThe number of bytes written to or read from the socket during the measurement.
raw.Download.ServerMeasurements.AppInfo.ElapsedTimeINTEGERThe duration of the measurement as measured by the M-Lab server in microseconds.
raw.Download.ServerMeasurements.ConnectionInfoRECORD
raw.Download.ServerMeasurements.ConnectionInfo.ClientSTRING
raw.Download.ServerMeasurements.ConnectionInfo.ServerSTRING
raw.Download.ServerMeasurements.ConnectionInfo.UUIDSTRINGUUID for TCP connection for this measurement.
raw.Download.ServerMeasurements.BBRInfoRECORDInstrumentation in the BBR TCP module in the kernel.
raw.Download.ServerMeasurements.BBRInfo.BWINTEGERThe maximum end-to-end bandwidth from the server to the client as measured by BBR.
raw.Download.ServerMeasurements.BBRInfo.MinRTTINTEGERThe minimum round trip time as measured by BBR. Recorded in microseconds.
raw.Download.ServerMeasurements.BBRInfo.PacingGainINTEGERFixed 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.CwndGainINTEGERFixed point multiplier used to set the maximum window size from BW*MinRTT. The denominator varies by kernel version.
raw.Download.ServerMeasurements.BBRInfo.ElapsedTimeINTEGERThe duration of the measurement as measured by the M-Lab server in microseconds.
raw.Download.ServerMeasurements.TCPInfoRECORDTCP Instrumentation in the kernel, as accessed by the server.
raw.Download.ServerMeasurements.TCPInfo.StateINTEGERTCP 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.CAStateINTEGERLoss 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.RetransmitsINTEGERNumber 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.ProbesINTEGERConsecutive zero window probes that have gone unanswered.
Kernel: icsk_probes_out in include/net/inet_connection_sock.h
raw.Download.ServerMeasurements.TCPInfo.BackoffINTEGERExponential 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.OptionsINTEGERBit 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.WScaleINTEGERBUG Conflation of SndWScale and RcvWScale. See github.com/m-lab/etl/issues/790
raw.Download.ServerMeasurements.TCPInfo.AppLimitedINTEGERFlag 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.RTOINTEGERRetransmission Timeout. Quantized to system jiffies.
Kernel: icsk_rto in include/net/inet_connection_sock.h
raw.Download.ServerMeasurements.TCPInfo.ATOINTEGERDelayed ACK Timeout. Quantized to system jiffies.
Kernel: ato in icsk_ack in include/net/inet_connection_sock.h
raw.Download.ServerMeasurements.TCPInfo.SndMSSINTEGERCurrent 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.RcvMSSINTEGERMaximum 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.UnackedINTEGERNumber 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.SackedINTEGERScoreboard segment marked SACKED by sack blocks. Accounting for the Pipe algorithm.
Kernel: sacked_out in include/linux/tcp.h
raw.Download.ServerMeasurements.TCPInfo.LostINTEGERScoreboard segments marked lost by loss detection heuristics. Accounting for the Pipe algorithm.
Kernel: lost_out in include/linux/tcp.h
raw.Download.ServerMeasurements.TCPInfo.RetransINTEGERScoreboard segments marked retransmitted. Accounting for the Pipe algorithm.
Kernel: retrans_out in include/linux/tcp.h
raw.Download.ServerMeasurements.TCPInfo.FacketsINTEGERNot Used - obsolete kernel instrument.
raw.Download.ServerMeasurements.TCPInfo.LastDataSentINTEGERTime since last data segment was sent. Quantized to jiffies.
Kernel: lsndtime in include/linux/tcp.h
raw.Download.ServerMeasurements.TCPInfo.LastAckSentINTEGERTime since last ACK was sent (not implemented). Present in TCP_INFO but not elsewhere in the kernel.
raw.Download.ServerMeasurements.TCPInfo.LastDataRecvINTEGERTime 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.LastAckRecvINTEGER
raw.Download.ServerMeasurements.TCPInfo.PMTUINTEGERMaximum IP Transmission Unit for this path.
Kernel: icsk_pmtu_cookie in include/net/inet_connection_sock.h
raw.Download.ServerMeasurements.TCPInfo.RcvSsThreshINTEGERCurrent Window Clamp. Receiver algorithm to avoid allocating excessive receive buffers.
Kernel: rcv_ssthresh in include/linux/tcp.h
raw.Download.ServerMeasurements.TCPInfo.RTTINTEGERSmoothed Round Trip Time (RTT). The Linux implementation differs from the standard.
Kernel: srtt_us in include/linux/tcp.h
raw.Download.ServerMeasurements.TCPInfo.RTTVarINTEGERThe variation in round trip time during the upload measurement as measured by the M-Lab server.
raw.Download.ServerMeasurements.TCPInfo.SndSsThreshINTEGERSlow Start Threshold. Value controlled by the selected congestion control algorithm.
Kernel: snd_ssthresh in include/linux/tcp.h
raw.Download.ServerMeasurements.TCPInfo.SndCwndINTEGERCongestion Window. Value controlled by the selected congestion control algorithm.
Kernel: snd_cwnd in include/linux/tcp.h
raw.Download.ServerMeasurements.TCPInfo.AdvMSSINTEGERAdvertised MSS.
Kernel: advmss in include/linux/tcp.h
raw.Download.ServerMeasurements.TCPInfo.ReorderingINTEGERMaximum observed reordering distance.
Kernel: reordering in include/linux/tcp.h
raw.Download.ServerMeasurements.TCPInfo.RcvRTTINTEGERReceiver Side RTT estimate.
Kernel: rcv_rtt_est.rtt_us in include/linux/tcp.h
raw.Download.ServerMeasurements.TCPInfo.RcvSpaceINTEGERSpace 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.TotalRetransINTEGERTotal number of segments containing retransmitted data.
Kernel: total_retrans in include/linux/tcp.h
raw.Download.ServerMeasurements.TCPInfo.PacingRateINTEGERCurrent Pacing Rate, nominally updated by congestion control.
Kernel: sk_pacing_rate in include/net/sock.h
raw.Download.ServerMeasurements.TCPInfo.MaxPacingRateINTEGERSettable pacing rate clamp. Set with setsockopt( ..SO_MAX_PACING_RATE.. ).
Kernel: sk_max_pacing_rate in include/net/sock.h
raw.Download.ServerMeasurements.TCPInfo.BytesAckedINTEGERThe number of data bytes for which cumulative acknowledgments have been received.
Kernel: bytes_acked in include/linux/tcp.h
raw.Download.ServerMeasurements.TCPInfo.BytesReceivedINTEGERThe number of data bytes for which have been received.
Kernel: bytes_received in include/linux/tcp.h
raw.Download.ServerMeasurements.TCPInfo.SegsOutINTEGERThe number of segments transmitted. Includes data and pure ACKs.
Kernel: segs_out in include/linux/tcp.h
raw.Download.ServerMeasurements.TCPInfo.SegsInINTEGERThe number of segments received. Includes data and pure ACKs.
Kernel: segs_in in include/linux/tcp.h
raw.Download.ServerMeasurements.TCPInfo.NotsentBytesINTEGERNumber 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.MinRTTINTEGERMinimum Round Trip Time. Recorded in microseconds.
Kernel: tcp_min_rtt in include/net/tcp.h
raw.Download.ServerMeasurements.TCPInfo.DataSegsInINTEGERInput segments carrying data (len>0).
Kernel: data_segs_in in include/net/tcp.h
raw.Download.ServerMeasurements.TCPInfo.DataSegsOutINTEGERTransmitted segments carrying data (len>0).
Kernel: data_segs_out in include/net/tcp.h
raw.Download.ServerMeasurements.TCPInfo.DeliveryRateINTEGERObserved Maximum Delivery Rate.
Kernel: tcp_compute_delivery_rate() in net/ipv4/tcp.c
raw.Download.ServerMeasurements.TCPInfo.BusyTimeINTEGERTime 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.RWndLimitedINTEGERTime spend waiting for receiver window.
Kernel: tcp_get_info_chrono_stats() in net/ipv4/tcp.c
raw.Download.ServerMeasurements.TCPInfo.SndBufLimitedINTEGERTime 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.DeliveredINTEGERData 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.DeliveredCEINTEGERECE 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.BytesSentINTEGERPayload bytes sent (excludes headers, includes retransmissions).
Kernel: bytes_sent
raw.Download.ServerMeasurements.TCPInfo.BytesRetransINTEGERBytes retransmitted. May include headers and new data carried with a retransmission (for thin flows).
Kernel: bytes_retrans
raw.Download.ServerMeasurements.TCPInfo.DSackDupsINTEGERDuplicate segments reported by DSACK. Not reported by some Operating Systems.
Kernel: dsack_dups
raw.Download.ServerMeasurements.TCPInfo.ReordSeenINTEGERReceived ACKs that were out of order. Estimates reordering on the return path.
Kernel: reord_seen
raw.Download.ServerMeasurements.TCPInfo.RcvOooPackINTEGER
raw.Download.ServerMeasurements.TCPInfo.SndWndINTEGER
raw.Download.ServerMeasurements.TCPInfo.ElapsedTimeINTEGERThe duration of the measurement as measured by the M-Lab server in microseconds.
raw.Download.ClientMeasurementsRECORDPeriodic measurements reported by the client. Not all clients report this information.
raw.Download.ClientMeasurements.AppInfoRECORDServer measurements performed outside of the kernel
raw.Download.ClientMeasurements.AppInfo.NumBytesINTEGERThe number of bytes written to or read from the socket during the measurement.
raw.Download.ClientMeasurements.AppInfo.ElapsedTimeINTEGERThe duration of the measurement as measured by the M-Lab server in microseconds.
raw.Download.ClientMeasurements.ConnectionInfoRECORD
raw.Download.ClientMeasurements.ConnectionInfo.ClientSTRING
raw.Download.ClientMeasurements.ConnectionInfo.ServerSTRING
raw.Download.ClientMeasurements.ConnectionInfo.UUIDSTRINGUUID for TCP connection for this measurement.
raw.Download.ClientMeasurements.BBRInfoRECORDInstrumentation in the BBR TCP module in the kernel.
raw.Download.ClientMeasurements.BBRInfo.BWINTEGERThe maximum end-to-end bandwidth from the server to the client as measured by BBR.
raw.Download.ClientMeasurements.BBRInfo.MinRTTINTEGERThe minimum round trip time as measured by BBR. Recorded in microseconds.
raw.Download.ClientMeasurements.BBRInfo.PacingGainINTEGERFixed 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.CwndGainINTEGERFixed point multiplier used to set the maximum window size from BW*MinRTT. The denominator varies by kernel version.
raw.Download.ClientMeasurements.BBRInfo.ElapsedTimeINTEGERThe duration of the measurement as measured by the M-Lab server in microseconds.
raw.Download.ClientMeasurements.TCPInfoRECORDTCP Instrumentation in the kernel, as accessed by the server.
raw.Download.ClientMeasurements.TCPInfo.StateINTEGERTCP 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.CAStateINTEGERLoss 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.RetransmitsINTEGERNumber 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.ProbesINTEGERConsecutive zero window probes that have gone unanswered.
Kernel: icsk_probes_out in include/net/inet_connection_sock.h
raw.Download.ClientMeasurements.TCPInfo.BackoffINTEGERExponential 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.OptionsINTEGERBit 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.WScaleINTEGERBUG Conflation of SndWScale and RcvWScale. See github.com/m-lab/etl/issues/790
raw.Download.ClientMeasurements.TCPInfo.AppLimitedINTEGERFlag 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.RTOINTEGERRetransmission Timeout. Quantized to system jiffies.
Kernel: icsk_rto in include/net/inet_connection_sock.h
raw.Download.ClientMeasurements.TCPInfo.ATOINTEGERDelayed ACK Timeout. Quantized to system jiffies.
Kernel: ato in icsk_ack in include/net/inet_connection_sock.h
raw.Download.ClientMeasurements.TCPInfo.SndMSSINTEGERCurrent 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.RcvMSSINTEGERMaximum 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.UnackedINTEGERNumber 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.SackedINTEGERScoreboard segment marked SACKED by sack blocks. Accounting for the Pipe algorithm.
Kernel: sacked_out in include/linux/tcp.h
raw.Download.ClientMeasurements.TCPInfo.LostINTEGERScoreboard segments marked lost by loss detection heuristics. Accounting for the Pipe algorithm.
Kernel: lost_out in include/linux/tcp.h
raw.Download.ClientMeasurements.TCPInfo.RetransINTEGERScoreboard segments marked retransmitted. Accounting for the Pipe algorithm.
Kernel: retrans_out in include/linux/tcp.h
raw.Download.ClientMeasurements.TCPInfo.FacketsINTEGERNot Used - obsolete kernel instrument.
raw.Download.ClientMeasurements.TCPInfo.LastDataSentINTEGERTime since last data segment was sent. Quantized to jiffies.
Kernel: lsndtime in include/linux/tcp.h
raw.Download.ClientMeasurements.TCPInfo.LastAckSentINTEGERTime since last ACK was sent (not implemented). Present in TCP_INFO but not elsewhere in the kernel.
raw.Download.ClientMeasurements.TCPInfo.LastDataRecvINTEGERTime 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.LastAckRecvINTEGER
raw.Download.ClientMeasurements.TCPInfo.PMTUINTEGERMaximum IP Transmission Unit for this path.
Kernel: icsk_pmtu_cookie in include/net/inet_connection_sock.h
raw.Download.ClientMeasurements.TCPInfo.RcvSsThreshINTEGERCurrent Window Clamp. Receiver algorithm to avoid allocating excessive receive buffers.
Kernel: rcv_ssthresh in include/linux/tcp.h
raw.Download.ClientMeasurements.TCPInfo.RTTINTEGERSmoothed Round Trip Time (RTT). The Linux implementation differs from the standard.
Kernel: srtt_us in include/linux/tcp.h
raw.Download.ClientMeasurements.TCPInfo.RTTVarINTEGERThe variation in round trip time during the upload measurement as measured by the M-Lab server.
raw.Download.ClientMeasurements.TCPInfo.SndSsThreshINTEGERSlow Start Threshold. Value controlled by the selected congestion control algorithm.
Kernel: snd_ssthresh in include/linux/tcp.h
raw.Download.ClientMeasurements.TCPInfo.SndCwndINTEGERCongestion Window. Value controlled by the selected congestion control algorithm.
Kernel: snd_cwnd in include/linux/tcp.h
raw.Download.ClientMeasurements.TCPInfo.AdvMSSINTEGERAdvertised MSS.
Kernel: advmss in include/linux/tcp.h
raw.Download.ClientMeasurements.TCPInfo.ReorderingINTEGERMaximum observed reordering distance.
Kernel: reordering in include/linux/tcp.h
raw.Download.ClientMeasurements.TCPInfo.RcvRTTINTEGERReceiver Side RTT estimate.
Kernel: rcv_rtt_est.rtt_us in include/linux/tcp.h
raw.Download.ClientMeasurements.TCPInfo.RcvSpaceINTEGERSpace 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.TotalRetransINTEGERTotal number of segments containing retransmitted data.
Kernel: total_retrans in include/linux/tcp.h
raw.Download.ClientMeasurements.TCPInfo.PacingRateINTEGERCurrent Pacing Rate, nominally updated by congestion control.
Kernel: sk_pacing_rate in include/net/sock.h
raw.Download.ClientMeasurements.TCPInfo.MaxPacingRateINTEGERSettable pacing rate clamp. Set with setsockopt( ..SO_MAX_PACING_RATE.. ).
Kernel: sk_max_pacing_rate in include/net/sock.h
raw.Download.ClientMeasurements.TCPInfo.BytesAckedINTEGERThe number of data bytes for which cumulative acknowledgments have been received.
Kernel: bytes_acked in include/linux/tcp.h
raw.Download.ClientMeasurements.TCPInfo.BytesReceivedINTEGERThe number of data bytes for which have been received.
Kernel: bytes_received in include/linux/tcp.h
raw.Download.ClientMeasurements.TCPInfo.SegsOutINTEGERThe number of segments transmitted. Includes data and pure ACKs.
Kernel: segs_out in include/linux/tcp.h
raw.Download.ClientMeasurements.TCPInfo.SegsInINTEGERThe number of segments received. Includes data and pure ACKs.
Kernel: segs_in in include/linux/tcp.h
raw.Download.ClientMeasurements.TCPInfo.NotsentBytesINTEGERNumber 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.MinRTTINTEGERMinimum Round Trip Time. Recorded in microseconds.
Kernel: tcp_min_rtt in include/net/tcp.h
raw.Download.ClientMeasurements.TCPInfo.DataSegsInINTEGERInput segments carrying data (len>0).
Kernel: data_segs_in in include/net/tcp.h
raw.Download.ClientMeasurements.TCPInfo.DataSegsOutINTEGERTransmitted segments carrying data (len>0).
Kernel: data_segs_out in include/net/tcp.h
raw.Download.ClientMeasurements.TCPInfo.DeliveryRateINTEGERObserved Maximum Delivery Rate.
Kernel: tcp_compute_delivery_rate() in net/ipv4/tcp.c
raw.Download.ClientMeasurements.TCPInfo.BusyTimeINTEGERTime 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.RWndLimitedINTEGERTime spend waiting for receiver window.
Kernel: tcp_get_info_chrono_stats() in net/ipv4/tcp.c
raw.Download.ClientMeasurements.TCPInfo.SndBufLimitedINTEGERTime 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.DeliveredINTEGERData 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.DeliveredCEINTEGERECE 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.BytesSentINTEGERPayload bytes sent (excludes headers, includes retransmissions).
Kernel: bytes_sent
raw.Download.ClientMeasurements.TCPInfo.BytesRetransINTEGERBytes retransmitted. May include headers and new data carried with a retransmission (for thin flows).
Kernel: bytes_retrans
raw.Download.ClientMeasurements.TCPInfo.DSackDupsINTEGERDuplicate segments reported by DSACK. Not reported by some Operating Systems.
Kernel: dsack_dups
raw.Download.ClientMeasurements.TCPInfo.ReordSeenINTEGERReceived ACKs that were out of order. Estimates reordering on the return path.
Kernel: reord_seen
raw.Download.ClientMeasurements.TCPInfo.RcvOooPackINTEGER
raw.Download.ClientMeasurements.TCPInfo.SndWndINTEGER
raw.Download.ClientMeasurements.TCPInfo.ElapsedTimeINTEGERThe duration of the measurement as measured by the M-Lab server in microseconds.
raw.Download.ClientMetadataRECORDClient-reported metadata as name/value pairs.
raw.Download.ClientMetadata.NameSTRINGIf set, contains text that identifies and provides context for the corresponding metadata value. For example, “OS” or “clientApplication”
raw.Download.ClientMetadata.ValueSTRINGIf set, contains a value corresponding to metadata name. For example, “Windows 10” or “ndtJS”
raw.Download.ServerMetadataRECORDAuthoritative metadata added by the server configuration.
raw.Download.ServerMetadata.NameSTRINGIf 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.ValueSTRINGIf 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.