TCP INFO

TCP measures the network as part of its normal operation. All transport protocols, including TCP, measure the network to determine how much data to send and when to optimally fill the network. Sending too much data or sending it too fast results in congestion, network queue overflows and discarded packets; sending data too slowly results in under-filled networks and wasted idle capacity. TCP INFO exposes these built in measurements for diagnostics and other applications.

M-Lab uses TCP INFO to collect statistics about every TCP connection used by each hosted measurement service running on the M-Lab platform. TCP INFO runs as a “side” addition to other tools, taking advantage of TCP connections generated by incoming tests to M-Lab.

Source code for M-Lab’s TCP INFO statistics collector

Citing the M-Lab TCP INFO Dataset

Please cite this data set as follows: The M-Lab TCP INFO Data Set, <date range used>. https://measurementlab.net/tests/tcp-info

TCP INFO Data in Raw Format

Data collected by TCP INFO is available in raw format in Google Cloud Storage for each hosted measurement service:

TCP INFO Data in BigQuery

M-Lab parses all TCP INFO data into BigQuery tables and views, and makes query access available for free. Find out more about how to get access on our BigQuery QuickStart page.

BigQuery Tables/Views for TCP INFO Data:

  • M-Lab Host Server TCP INFO data - Coming soon: measurement-lab.host.tcpinfo
  • NDT TCP INFO data - measurement-lab.ndt.tcpinfo
  • Neubot TCP INFO data - Coming soon: measurement-lab.neubot.tcpinfo
  • WeHe TCP INFO data - Coming soon: measurement-lab.wehe.tcpinfo

TCP INFO Schema

Note: The tcpinfo schema has not yet been migrated to standard columns. Until that time, this schema should be considered temporary or unstable.

Field name Type Description
UUID STRING  
TestTime TIMESTAMP  
ClientASN INTEGER  
ServerASN INTEGER  
ParseInfo RECORD Metadata about how the parser processed the measurement.
ParseInfo.TaskFileName STRING GCS URL to the archive containing the test_id for this row.
ParseInfo.ParseTime TIMESTAMP Time that the parser processed this row.
ParseInfo.ParserVersion STRING Version of the parser that processed this row.
ParseInfo.Filename STRING  
SockID RECORD  
SockID.SPort INTEGER  
SockID.DPort INTEGER  
SockID.SrcIP STRING  
SockID.DstIP STRING  
SockID.Interface INTEGER  
SockID.Cookie INTEGER  
Server RECORD  
Server.IP STRING  
Server.Port INTEGER  
Server.IATA STRING  
Server.Geo RECORD  
Server.Geo.continent_code STRING  
Server.Geo.country_code STRING  
Server.Geo.country_code3 STRING  
Server.Geo.country_name STRING  
Server.Geo.region STRING  
Server.Geo.metro_code INTEGER  
Server.Geo.city STRING  
Server.Geo.area_code INTEGER  
Server.Geo.postal_code STRING  
Server.Geo.latitude FLOAT  
Server.Geo.longitude FLOAT  
Server.Geo.radius INTEGER  
Server.Network RECORD Network information about connection.
Server.Network.IPPrefix STRING  
Server.Network.Systems RECORD  
Server.Network.Systems.ASNs INTEGER  
Client RECORD  
Client.IP STRING  
Client.Port INTEGER  
Client.Geo RECORD  
Client.Geo.continent_code STRING  
Client.Geo.country_code STRING  
Client.Geo.country_code3 STRING  
Client.Geo.country_name STRING  
Client.Geo.region STRING  
Client.Geo.metro_code INTEGER  
Client.Geo.city STRING  
Client.Geo.area_code INTEGER  
Client.Geo.postal_code STRING  
Client.Geo.latitude FLOAT  
Client.Geo.longitude FLOAT  
Client.Geo.radius INTEGER  
Client.Network RECORD Network information about connection.
Client.Network.IPPrefix STRING  
Client.Network.Systems RECORD  
Client.Network.Systems.ASNs INTEGER  
FinalSnapshot RECORD  
FinalSnapshot.Timestamp TIMESTAMP  
FinalSnapshot.Observed INTEGER  
FinalSnapshot.NotFullyParsed INTEGER  
FinalSnapshot.InetDiagMsg RECORD  
FinalSnapshot.InetDiagMsg.IDiagFamily INTEGER  
FinalSnapshot.InetDiagMsg.IDiagState INTEGER  
FinalSnapshot.InetDiagMsg.IDiagTimer INTEGER  
FinalSnapshot.InetDiagMsg.IDiagRetrans INTEGER  
FinalSnapshot.InetDiagMsg.IDiagExpires INTEGER  
FinalSnapshot.InetDiagMsg.IDiagRqueue INTEGER  
FinalSnapshot.InetDiagMsg.IDiagWqueue INTEGER  
FinalSnapshot.InetDiagMsg.IDiagUID INTEGER  
FinalSnapshot.InetDiagMsg.IDiagInode INTEGER  
FinalSnapshot.CongestionAlgorithm STRING  
FinalSnapshot.TOS INTEGER  
FinalSnapshot.TClass INTEGER  
FinalSnapshot.ClassID INTEGER  
FinalSnapshot.Shutdown INTEGER  
FinalSnapshot.Protocol INTEGER  
FinalSnapshot.Mark INTEGER  
FinalSnapshot.TCPInfo RECORD Results from getsockopt(..TCP_INFO..)
FinalSnapshot.TCPInfo.State INTEGER TCP State
In MLab data TCP state is nominally 1 (Established). Other values reflect transient states having incomplete rows.
Kernel: See TCP_ESTABLISHED in include/net/tcp_states.h
FinalSnapshot.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
FinalSnapshot.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
FinalSnapshot.TCPInfo.Probes INTEGER Consecutive zero window probes that have gone unanswered
Kernel: icsk_probes_out in include/net/inet_connection_sock.h
FinalSnapshot.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
FinalSnapshot.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
FinalSnapshot.TCPInfo.WScale INTEGER BUG Conflation of SndWScale and RcvWScale
See github.com/m-lab/etl/issues/790
FinalSnapshot.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
FinalSnapshot.TCPInfo.RTO INTEGER Retransmission Timeout
Quantized to system jiffies
Kernel: icsk_rto in include/net/inet_connection_sock.h
FinalSnapshot.TCPInfo.ATO INTEGER Delayed ACK Timeout
Quantized to system jiffies
Kernel: ato in icsk_ack in include/net/inet_connection_sock.h
FinalSnapshot.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
FinalSnapshot.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
FinalSnapshot.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
FinalSnapshot.TCPInfo.Sacked INTEGER Scoreboard segment marked SACKED by sack blocks
Accounting for the Pipe algorithm
Kernel: sacked_out in include/linux/tcp.h
FinalSnapshot.TCPInfo.Lost INTEGER Scoreboard segments marked lost by loss detection heuristics
Accounting for the Pipe algorithm
Kernel: lost_out in include/linux/tcp.h
FinalSnapshot.TCPInfo.Retrans INTEGER Scoreboard segments marked retransmitted
Accounting for the Pipe algorithm
Kernel: retrans_out in include/linux/tcp.h
FinalSnapshot.TCPInfo.Fackets INTEGER Unused
Kernel: tcpi_fackets in include/uapi/linux/tcp.h
FinalSnapshot.TCPInfo.LastDataSent INTEGER Time since last data segment was sent
Quantized to jiffies
Kernel: lsndtime in include/linux/tcp.h
FinalSnapshot.TCPInfo.LastAckSent INTEGER Time since last ACK was sent (Not implemented)
Present in TCP_INFO but not elsewhere in the kernel
FinalSnapshot.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
FinalSnapshot.TCPInfo.LastAckRecv INTEGER Time since last ACK was received
Quantized to jiffies
Kernel: rcv_tstamp in include/linux/tcp.h
FinalSnapshot.TCPInfo.PMTU INTEGER Maximum IP Transmission Unit for this path
Kernel: icsk_pmtu_cookie in include/net/inet_connection_sock.h
FinalSnapshot.TCPInfo.RcvSsThresh INTEGER Current Window Clamp
Receiver algorithm to avoid allocating excessive receive buffers
Kernel: rcv_ssthresh in include/linux/tcp.h
FinalSnapshot.TCPInfo.RTT INTEGER Smoothed Round Trip Time (RTT)
The Linux implementation differs from the standard
Kernel: srtt_us in include/linux/tcp.h
FinalSnapshot.TCPInfo.RTTVar INTEGER RTT variance
The Linux implementation differs from the standard
Kernel: mdev_us in include/linux/tcp.h
FinalSnapshot.TCPInfo.SndSsThresh INTEGER Slow Start Threshold
Value controlled by the selected congestion control algorithm
Kernel: snd_ssthresh in include/linux/tcp.h
FinalSnapshot.TCPInfo.SndCwnd INTEGER Congestion Window
Value controlled by the selected congestion control algorithm
Kernel: snd_cwnd in include/linux/tcp.h
FinalSnapshot.TCPInfo.AdvMSS INTEGER Advertised MSS
Kernel: advmss in include/linux/tcp.h
FinalSnapshot.TCPInfo.Reordering INTEGER Maximum observed reordering distance
Kernel: reordering in include/linux/tcp.h
FinalSnapshot.TCPInfo.RcvRTT INTEGER Receiver Side RTT estimate
Kernel: rcv_rtt_est.rtt_us in include/linux/tcp.h
FinalSnapshot.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
FinalSnapshot.TCPInfo.TotalRetrans INTEGER Total number of segments containing retransmitted data
Kernel: total_retrans in include/linux/tcp.h
FinalSnapshot.TCPInfo.PacingRate INTEGER Current Pacing Rate, nominally updated by congestion control
Kernel: sk_pacing_rate in include/net/sock.h
FinalSnapshot.TCPInfo.MaxPacingRate INTEGER Settable pacing rate clamp
Set with setsockopt( ..SO_MAX_PACING_RATE.. )
Kernel: sk_max_pacing_rate in include/net/sock.h
FinalSnapshot.TCPInfo.BytesAcked INTEGER The number of data bytes for which cumulative acknowledgments have been received
Kernel: bytes_acked in include/linux/tcp.h
FinalSnapshot.TCPInfo.BytesReceived INTEGER The number of data bytes for which have been received
Kernel: bytes_received in include/linux/tcp.h
FinalSnapshot.TCPInfo.SegsOut INTEGER The number of segments transmitted
Includes data and pure ACKs
Kernel: segs_out in include/linux/tcp.h
FinalSnapshot.TCPInfo.SegsIn INTEGER The number of segments received
Includes data and pure ACKs
Kernel: segs_in in include/linux/tcp.h
FinalSnapshot.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
FinalSnapshot.TCPInfo.MinRTT INTEGER Minimum RTT
From an older, pre-BBR algorithm
Kernel: tcp_min_rtt in include/net/tcp.h
FinalSnapshot.TCPInfo.DataSegsIn INTEGER Input segments carrying data (len>0)
Kernel: data_segs_in in include/net/tcp.h
FinalSnapshot.TCPInfo.DataSegsOut INTEGER Transmitted segments carrying data (len>0)
Kernel: data_segs_out in include/net/tcp.h
FinalSnapshot.TCPInfo.DeliveryRate INTEGER Observed Maximum Delivery Rate
Kernel: tcp_compute_delivery_rate() in net/ipv4/tcp.c
FinalSnapshot.TCPInfo.BusyTime INTEGER Time with outstanding (unacknowledged) data
Time when snd.una not equal to snd.next
Kernel: tcp_get_info_chrono_stats() in net/ipv4/tcp.c
FinalSnapshot.TCPInfo.RWndLimited INTEGER Time spend waiting for receiver window
Kernel: tcp_get_info_chrono_stats() in net/ipv4/tcp.c
FinalSnapshot.TCPInfo.SndBufLimited INTEGER Time spend 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
FinalSnapshot.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
FinalSnapshot.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
FinalSnapshot.TCPInfo.BytesSent INTEGER Payload bytes sent (excludes headers, includes retransmissions)
Kernel: bytes_sent
FinalSnapshot.TCPInfo.BytesRetrans INTEGER Bytes retransmitted
May include headers and new data carried with a retransmission (for thin flows).
Kernel: bytes_retrans
FinalSnapshot.TCPInfo.DSackDups INTEGER Duplicate segments reported by DSACK
Not reported by some OS
Kernel: dsack_dups
FinalSnapshot.TCPInfo.ReordSeen INTEGER Received ACKs that were out of order
Estimates reordering on the return path
Kernel: reord_seen
FinalSnapshot.MemInfo RECORD  
FinalSnapshot.MemInfo.Rmem INTEGER  
FinalSnapshot.MemInfo.Wmem INTEGER  
FinalSnapshot.MemInfo.Fmem INTEGER  
FinalSnapshot.MemInfo.Tmem INTEGER  
FinalSnapshot.SocketMem RECORD  
FinalSnapshot.SocketMem.RmemAlloc INTEGER  
FinalSnapshot.SocketMem.Rcvbuf INTEGER  
FinalSnapshot.SocketMem.WmemAlloc INTEGER  
FinalSnapshot.SocketMem.Sndbuf INTEGER  
FinalSnapshot.SocketMem.FwdAlloc INTEGER  
FinalSnapshot.SocketMem.WmemQueued INTEGER  
FinalSnapshot.SocketMem.Optmem INTEGER  
FinalSnapshot.SocketMem.Backlog INTEGER  
FinalSnapshot.SocketMem.Drops INTEGER  
FinalSnapshot.VegasInfo RECORD Instrumntation in Vegas TCP
Not used by M-Lab
FinalSnapshot.VegasInfo.Enabled INTEGER  
FinalSnapshot.VegasInfo.RTTCount INTEGER  
FinalSnapshot.VegasInfo.RTT INTEGER  
FinalSnapshot.VegasInfo.MinRTT INTEGER  
FinalSnapshot.DCTCPInfo RECORD Instrumentation in DCTCP
Not used by M-Lab
FinalSnapshot.DCTCPInfo.Enabled INTEGER  
FinalSnapshot.DCTCPInfo.CEState INTEGER  
FinalSnapshot.DCTCPInfo.Alpha INTEGER  
FinalSnapshot.DCTCPInfo.ABEcn INTEGER  
FinalSnapshot.DCTCPInfo.ABTot INTEGER  
FinalSnapshot.BBRInfo RECORD Instrumentation in the BBR TCP module in the kernel.
FinalSnapshot.BBRInfo.BW INTEGER The maximum end-to-end bandwidth from the server to the client as measured by BBR.
FinalSnapshot.BBRInfo.MinRTT INTEGER The minimum round trip time as measured by BBR.
FinalSnapshot.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.
FinalSnapshot.BBRInfo.CwndGain INTEGER Fixed point multiplier used to set the maximum window size from BW*MinRTT.
Snapshots RECORD  
Snapshots.Timestamp TIMESTAMP  
Snapshots.Observed INTEGER  
Snapshots.NotFullyParsed INTEGER  
Snapshots.InetDiagMsg RECORD  
Snapshots.InetDiagMsg.IDiagFamily INTEGER  
Snapshots.InetDiagMsg.IDiagState INTEGER  
Snapshots.InetDiagMsg.IDiagTimer INTEGER  
Snapshots.InetDiagMsg.IDiagRetrans INTEGER  
Snapshots.InetDiagMsg.IDiagExpires INTEGER  
Snapshots.InetDiagMsg.IDiagRqueue INTEGER  
Snapshots.InetDiagMsg.IDiagWqueue INTEGER  
Snapshots.InetDiagMsg.IDiagUID INTEGER  
Snapshots.InetDiagMsg.IDiagInode INTEGER  
Snapshots.CongestionAlgorithm STRING  
Snapshots.TOS INTEGER  
Snapshots.TClass INTEGER  
Snapshots.ClassID INTEGER  
Snapshots.Shutdown INTEGER  
Snapshots.Protocol INTEGER  
Snapshots.Mark INTEGER  
Snapshots.TCPInfo RECORD Results from getsockopt(..TCP_INFO..)
Snapshots.TCPInfo.State INTEGER TCP State
In MLab data TCP state is nominally 1 (Established). Other values reflect transient states having incomplete rows.
Kernel: See TCP_ESTABLISHED in include/net/tcp_states.h
Snapshots.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
Snapshots.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
Snapshots.TCPInfo.Probes INTEGER Consecutive zero window probes that have gone unanswered
Kernel: icsk_probes_out in include/net/inet_connection_sock.h
Snapshots.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
Snapshots.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
Snapshots.TCPInfo.WScale INTEGER BUG Conflation of SndWScale and RcvWScale
See github.com/m-lab/etl/issues/790
Snapshots.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
Snapshots.TCPInfo.RTO INTEGER Retransmission Timeout
Quantized to system jiffies
Kernel: icsk_rto in include/net/inet_connection_sock.h
Snapshots.TCPInfo.ATO INTEGER Delayed ACK Timeout
Quantized to system jiffies
Kernel: ato in icsk_ack in include/net/inet_connection_sock.h
Snapshots.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
Snapshots.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
Snapshots.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
Snapshots.TCPInfo.Sacked INTEGER Scoreboard segment marked SACKED by sack blocks
Accounting for the Pipe algorithm
Kernel: sacked_out in include/linux/tcp.h
Snapshots.TCPInfo.Lost INTEGER Scoreboard segments marked lost by loss detection heuristics
Accounting for the Pipe algorithm
Kernel: lost_out in include/linux/tcp.h
Snapshots.TCPInfo.Retrans INTEGER Scoreboard segments marked retransmitted
Accounting for the Pipe algorithm
Kernel: retrans_out in include/linux/tcp.h
Snapshots.TCPInfo.Fackets INTEGER Unused
Kernel: tcpi_fackets in include/uapi/linux/tcp.h
Snapshots.TCPInfo.LastDataSent INTEGER Time since last data segment was sent
Quantized to jiffies
Kernel: lsndtime in include/linux/tcp.h
Snapshots.TCPInfo.LastAckSent INTEGER Time since last ACK was sent (Not implemented)
Present in TCP_INFO but not elsewhere in the kernel
Snapshots.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
Snapshots.TCPInfo.LastAckRecv INTEGER Time since last ACK was received
Quantized to jiffies
Kernel: rcv_tstamp in include/linux/tcp.h
Snapshots.TCPInfo.PMTU INTEGER Maximum IP Transmission Unit for this path
Kernel: icsk_pmtu_cookie in include/net/inet_connection_sock.h
Snapshots.TCPInfo.RcvSsThresh INTEGER Current Window Clamp
Receiver algorithm to avoid allocating excessive receive buffers
Kernel: rcv_ssthresh in include/linux/tcp.h
Snapshots.TCPInfo.RTT INTEGER Smoothed Round Trip Time (RTT)
The Linux implementation differs from the standard
Kernel: srtt_us in include/linux/tcp.h
Snapshots.TCPInfo.RTTVar INTEGER RTT variance
The Linux implementation differs from the standard
Kernel: mdev_us in include/linux/tcp.h
Snapshots.TCPInfo.SndSsThresh INTEGER Slow Start Threshold
Value controlled by the selected congestion control algorithm
Kernel: snd_ssthresh in include/linux/tcp.h
Snapshots.TCPInfo.SndCwnd INTEGER Congestion Window
Value controlled by the selected congestion control algorithm
Kernel: snd_cwnd in include/linux/tcp.h
Snapshots.TCPInfo.AdvMSS INTEGER Advertised MSS
Kernel: advmss in include/linux/tcp.h
Snapshots.TCPInfo.Reordering INTEGER Maximum observed reordering distance
Kernel: reordering in include/linux/tcp.h
Snapshots.TCPInfo.RcvRTT INTEGER Receiver Side RTT estimate
Kernel: rcv_rtt_est.rtt_us in include/linux/tcp.h
Snapshots.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
Snapshots.TCPInfo.TotalRetrans INTEGER Total number of segments containing retransmitted data
Kernel: total_retrans in include/linux/tcp.h
Snapshots.TCPInfo.PacingRate INTEGER Current Pacing Rate, nominally updated by congestion control
Kernel: sk_pacing_rate in include/net/sock.h
Snapshots.TCPInfo.MaxPacingRate INTEGER Settable pacing rate clamp
Set with setsockopt( ..SO_MAX_PACING_RATE.. )
Kernel: sk_max_pacing_rate in include/net/sock.h
Snapshots.TCPInfo.BytesAcked INTEGER The number of data bytes for which cumulative acknowledgments have been received
Kernel: bytes_acked in include/linux/tcp.h
Snapshots.TCPInfo.BytesReceived INTEGER The number of data bytes for which have been received
Kernel: bytes_received in include/linux/tcp.h
Snapshots.TCPInfo.SegsOut INTEGER The number of segments transmitted
Includes data and pure ACKs
Kernel: segs_out in include/linux/tcp.h
Snapshots.TCPInfo.SegsIn INTEGER The number of segments received
Includes data and pure ACKs
Kernel: segs_in in include/linux/tcp.h
Snapshots.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
Snapshots.TCPInfo.MinRTT INTEGER Minimum RTT
From an older, pre-BBR algorithm
Kernel: tcp_min_rtt in include/net/tcp.h
Snapshots.TCPInfo.DataSegsIn INTEGER Input segments carrying data (len>0)
Kernel: data_segs_in in include/net/tcp.h
Snapshots.TCPInfo.DataSegsOut INTEGER Transmitted segments carrying data (len>0)
Kernel: data_segs_out in include/net/tcp.h
Snapshots.TCPInfo.DeliveryRate INTEGER Observed Maximum Delivery Rate
Kernel: tcp_compute_delivery_rate() in net/ipv4/tcp.c
Snapshots.TCPInfo.BusyTime INTEGER Time with outstanding (unacknowledged) data
Time when snd.una not equal to snd.next
Kernel: tcp_get_info_chrono_stats() in net/ipv4/tcp.c
Snapshots.TCPInfo.RWndLimited INTEGER Time spend waiting for receiver window
Kernel: tcp_get_info_chrono_stats() in net/ipv4/tcp.c
Snapshots.TCPInfo.SndBufLimited INTEGER Time spend 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
Snapshots.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
Snapshots.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
Snapshots.TCPInfo.BytesSent INTEGER Payload bytes sent (excludes headers, includes retransmissions)
Kernel: bytes_sent
Snapshots.TCPInfo.BytesRetrans INTEGER Bytes retransmitted
May include headers and new data carried with a retransmission (for thin flows).
Kernel: bytes_retrans
Snapshots.TCPInfo.DSackDups INTEGER Duplicate segments reported by DSACK
Not reported by some OS
Kernel: dsack_dups
Snapshots.TCPInfo.ReordSeen INTEGER Received ACKs that were out of order
Estimates reordering on the return path
Kernel: reord_seen
Snapshots.MemInfo RECORD  
Snapshots.MemInfo.Rmem INTEGER  
Snapshots.MemInfo.Wmem INTEGER  
Snapshots.MemInfo.Fmem INTEGER  
Snapshots.MemInfo.Tmem INTEGER  
Snapshots.SocketMem RECORD  
Snapshots.SocketMem.RmemAlloc INTEGER  
Snapshots.SocketMem.Rcvbuf INTEGER  
Snapshots.SocketMem.WmemAlloc INTEGER  
Snapshots.SocketMem.Sndbuf INTEGER  
Snapshots.SocketMem.FwdAlloc INTEGER  
Snapshots.SocketMem.WmemQueued INTEGER  
Snapshots.SocketMem.Optmem INTEGER  
Snapshots.SocketMem.Backlog INTEGER  
Snapshots.SocketMem.Drops INTEGER  
Snapshots.VegasInfo RECORD Instrumntation in Vegas TCP
Not used by M-Lab
Snapshots.VegasInfo.Enabled INTEGER  
Snapshots.VegasInfo.RTTCount INTEGER  
Snapshots.VegasInfo.RTT INTEGER  
Snapshots.VegasInfo.MinRTT INTEGER  
Snapshots.DCTCPInfo RECORD Instrumentation in DCTCP
Not used by M-Lab
Snapshots.DCTCPInfo.Enabled INTEGER  
Snapshots.DCTCPInfo.CEState INTEGER  
Snapshots.DCTCPInfo.Alpha INTEGER  
Snapshots.DCTCPInfo.ABEcn INTEGER  
Snapshots.DCTCPInfo.ABTot INTEGER  
Snapshots.BBRInfo RECORD Instrumentation in the BBR TCP module in the kernel.
Snapshots.BBRInfo.BW INTEGER The maximum end-to-end bandwidth from the server to the client as measured by BBR.
Snapshots.BBRInfo.MinRTT INTEGER The minimum round trip time as measured by BBR.
Snapshots.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.
Snapshots.BBRInfo.CwndGain INTEGER Fixed point multiplier used to set the maximum window size from BW*MinRTT.
Back to Top