diff options
Diffstat (limited to 'doc/rfc/rfc4898.txt')
-rw-r--r-- | doc/rfc/rfc4898.txt | 4203 |
1 files changed, 4203 insertions, 0 deletions
diff --git a/doc/rfc/rfc4898.txt b/doc/rfc/rfc4898.txt new file mode 100644 index 0000000..babe343 --- /dev/null +++ b/doc/rfc/rfc4898.txt @@ -0,0 +1,4203 @@ + + + + + + +Network Working Group M. Mathis +Request for Comments: 4898 J. Heffner +Category: Standards Track Pittsburgh Supercomputing Center + R. Raghunarayan + Cisco Systems + May 2007 + + + TCP Extended Statistics MIB + +Status of This Memo + + This document specifies an Internet standards track protocol for the + Internet community, and requests discussion and suggestions for + improvements. Please refer to the current edition of the "Internet + Official Protocol Standards" (STD 1) for the standardization state + and status of this protocol. Distribution of this memo is unlimited. + +Copyright Notice + + Copyright (C) The IETF Trust (2007). + +Abstract + + This document describes extended performance statistics for TCP. + They are designed to use TCP's ideal vantage point to diagnose + performance problems in both the network and the application. If a + network-based application is performing poorly, TCP can determine if + the bottleneck is in the sender, the receiver, or the network itself. + If the bottleneck is in the network, TCP can provide specific + information about its nature. + +Table of Contents + + 1. Introduction ....................................................2 + 2. The Internet-Standard Management Framework ......................2 + 3. Overview ........................................................2 + 3.1. MIB Initialization and Persistence .........................4 + 3.2. Relationship to TCP Standards ..............................4 + 3.3. Diagnosing SYN-Flood Denial-of-Service Attacks .............6 + 4. TCP Extended Statistics MIB .....................................7 + 5. Security Considerations ........................................69 + 6. IANA Considerations ............................................70 + 7. Normative References ...........................................70 + 8. Informative References .........................................72 + 9. Contributors ...................................................73 + 10. Acknowledgments ...............................................73 + + + + +Mathis, et al. Standards Track [Page 1] + +RFC 4898 TCP Extended Statistics MIB May 2007 + + +1. Introduction + + This document describes extended performance statistics for TCP. + They are designed to use TCP's ideal vantage point to diagnose + performance problems in both the network and the application. If a + network-based application is performing poorly, TCP can determine if + the bottleneck is in the sender, the receiver, or the network itself. + If the bottleneck is in the network, TCP can provide specific + information about its nature. + + The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", + "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this + document are to be interpreted as described in RFC 2119. + + The Simple Network Management Protocol (SNMP) objects defined in this + document extend TCP MIB, as specified in RFC 4022 [RFC4022]. In + addition to several new scalars and other objects, it augments two + tables and makes one clarification to RFC 4022. Existing management + stations for the TCP MIB are expected to be fully compatible with + these clarifications. + +2. The Internet-Standard Management Framework + + For a detailed overview of the documents that describe the current + Internet-Standard Management Framework, please refer to section 7 of + RFC 3410 [RFC3410]. + + Managed objects are accessed via a virtual information store, termed + the Management Information Base or MIB. MIB objects are generally + accessed through the Simple Network Management Protocol (SNMP). + Objects in the MIB are defined using the mechanisms defined in the + Structure of Management Information (SMI). This memo specifies a MIB + module that is compliant to the SMIv2, which is described in STD 58, + RFC 2578 [RFC2578], STD 58, RFC 2579 [RFC2579] and STD 58, RFC 2580 + [RFC2580]. + +3. Overview + + The TCP-ESTATS-MIB defined in this memo consists of two groups of + scalars, seven tables, and two notifications: + + * The first group of scalars contain statistics of the TCP protocol + engine not covered in RFC 4022. This group consists of the single + scalar tcpEStatsListenerTableLastChange, which provides management + stations with an easier mechanism to validate their listener + caches. + + + + + +Mathis, et al. Standards Track [Page 2] + +RFC 4898 TCP Extended Statistics MIB May 2007 + + + * The second group of scalars consist of knobs to enable and disable + information collection by the tables containing connection-related + statistics/information. For example, the tcpEStatsControlPath + object controls the activation of the tcpEStatsPathTable. The + tcpEStatsConnTableLatency object determines how long connection + table rows are retained after a TCP connection transitions into + the closed state. + + * The tcpEStatsListenerTable augments tcpListenerTable in TCP-MIB + [RFC4022] to provide additional information on the active TCP + listeners on a device. It supports objects to monitor and + diagnose SYN-flood denial-of-service attacks as described below. + + * The tcpEStatsConnectIdTable augments the tcpConnectionTable in + TCP-MIB [RFC4022] to provide a mapping between connection 4-tuples + (which index tcpConnectionTable) and an integer connection index, + tcpEStatsConnectIndex. The connection index is used to index into + the five remaining tables in this MIB module, and is designed to + facilitate rapid polling of multiple objects associated with one + TCP connection. + + * The tcpEStatsPerfTable contains objects that are useful for + measuring TCP performance and first check problem diagnosis. + + * The tcpEStatsPathTable contains objects that can be used to infer + detailed behavior of the Internet path, such as the extent that + there are segment losses or reordering, etc. + + * The tcpEStatsStackTable contains objects that are most useful for + determining how well the TCP control algorithms are coping with + this particular path. + + * The tcpEStatsAppTable provides objects that are useful for + determining if the application using TCP is limiting TCP + performance. + + * The tcpEStatsTuneTable provides per-connection controls that can + be used to work around a number of common problems that plague TCP + over some paths. + + * The two notifications defined in this MIB module are + tcpEStatsEstablishNotification, indicating that a new connection + has been accepted (or established, see below), and + tcpEStatsCloseNotification, indicating that an existing connection + has recently closed. + + + + + + +Mathis, et al. Standards Track [Page 3] + +RFC 4898 TCP Extended Statistics MIB May 2007 + + +3.1. MIB Initialization and Persistence + + The TCP protocol itself is specifically designed not to preserve any + state whatsoever across system reboots, and enforces this by + requiring randomized Initial Sequence numbers and ephemeral ports + under any conditions where segments from old connections might + corrupt new connections following a reboot. + + All of the objects in the MIB MUST have the same persistence + properties as the underlying TCP implementation. On a reboot, all + zero-based counters MUST be cleared, all dynamically created table + rows MUST be deleted, and all read-write objects MUST be restored to + their default values. It is assumed that all TCP implementation have + some initialization code (if nothing else, to set IP addresses) that + has the opportunity to adjust tcpEStatsConnTableLatency and other + read-write scalars controlling the creation of the various tables, + before establishing the first TCP connection. Implementations MAY + also choose to make these control scalars persist across reboots. + + The ZeroBasedCounter32 and ZeroBasedCounter64 objects in the listener + and connection tables are initialized to zero when the table row is + created. + + The tcpEStatsConnTableLatency object determines how long connection + table rows are retained after a TCP connection transitions into the + closed state, to permit reading final connection completion + statistics. In RFC 4022 (TCP-MIB), the discussion of + tcpConnectionTable row latency (page 9) the words "soon after" are + understood to mean after tcpEStatsConnTableLatency, such that all + rows of all tables associated with one connection are retained at + least tcpEStatsConnTableLatency after connection close. This + clarification to RFC 4022 only applies when TCP-ESTATS-MIB is + implemented. If TCP-ESTATS-MIB is not implemented, RFC 4022 permits + an unspecified delay between connection close and row deletion. + +3.2. Relationship to TCP Standards + + There are more than 70 RFCs and other documents that specify various + aspects of the Transmission Control Protocol (TCP) [RFC4614]. While + most protocols are completely specified in one or two documents, this + has not proven to be feasible for TCP. TCP implements a reliable + end-to-end data transport service over a very weakly constrained IP + datagram service. The essential problem that TCP has to solve is + balancing the applications need for fast and reliable data transport + against the need to make fair, efficient, and equitable use of + network resources, with only sparse information about the state of + the network or its capabilities. + + + + +Mathis, et al. Standards Track [Page 4] + +RFC 4898 TCP Extended Statistics MIB May 2007 + + + TCP maintains this balance through the use of many estimators and + heuristics that regulate various aspects of the protocol. For + example, RFC 2988 describes how to calculate the retransmission timer + (RTO) from the average and variance of the network round-trip-time + (RTT), as estimated from the round-trip time sampled on some data + segments. Although these algorithms are standardized, they are a + compromise which is optimal for only common Internet environments. + Other estimators might yield better results (higher performance or + more efficient use of the network) in some environments, particularly + under uncommon conditions. + + It is the consensus of the community that nearly all of the + estimators and heuristics used in TCP might be improved through + further research and development. For this reason, nearly all TCP + documents leave some latitude for future improvements, for example, + by the use of "SHOULD" instead of "MUST" [RFC2119]. Even standard + algorithms that are required because they critically effect fairness + or the dynamic stability of Internet congestion control, include some + latitude for evolution. As a consequence, there is considerable + diversity in the details of the TCP implementations actually in use + today. + + The fact that the underlying algorithms are not uniform makes it + difficult to tightly specify a MIB. We could have chosen the point + of view that the MIB should publish precisely defined metrics of the + network path, even if they are different from the estimators in use + by TCP. This would make the MIB more useful as a measurement tool, + but less useful for understanding how any specific TCP implementation + is interacting with the network path and upper protocol layers. We + chose instead to have the MIB expose the estimators and important + states variables of the algorithms in use, without constraining the + TCP implementation. + + As a consequence, the MIB objects are defined in terms of fairly + abstract descriptions (e.g., round-trip time), but are intended to + expose the actual estimators or other state variables as they are + used in TCP implementations, possibly transformed (e.g., scaled or + otherwise adjusted) to match the spirit of the object descriptions in + this document. + + This may mean that MIB objects may not be exactly comparable between + two different TCP implementations. A general management station can + only assume the abstract descriptions, which are useful for a general + assessment of how TCP is functioning. To a TCP implementer with + detailed knowledge about the TCP implementation on a specific host, + this MIB might be useful for debugging or evaluating the algorithms + in their implementation. + + + + +Mathis, et al. Standards Track [Page 5] + +RFC 4898 TCP Extended Statistics MIB May 2007 + + + Under no conditions is this MIB intended to constrain TCP to use (or + exclude) any particular estimator, heuristic, algorithm, or + implementation. + +3.3. Diagnosing SYN-Flood Denial-of-Service Attacks + + The tcpEStatsListenerTable is specifically designed to provide + information that is useful for diagnosing SYN-flood Denial-of-Service + attacks, where a server is overwhelmed by forged or otherwise + malicious connection attempts. There are several different + techniques that can be used to defend against SYN-flooding but none + are standardized [Edd06]. These different techniques all have the + same basic characteristics that are instrumentable with a common set + of objects, even though the techniques differ greatly in the details. + + All SYN-flood defenses avoid allocating significant resources (memory + or CPU) to incoming (passive open) connections until the connections + meet some liveness criteria (to defend against forged IP source + addresses) and the server has sufficient resources to process the + incoming request. Note that allocating resources is an + implementation-specific event that may not correspond to an + observable protocol event (e.g., segments on the wire). There are + two general concepts that can be applied to all known SYN-flood + defenses. There is generally a well-defined event when a connection + is allocated full resources, and a "backlog" -- a queue of embryonic + connections that have been allocated only partial resources. + + In many implementations, incoming TCP connections are allocated + resources as a side effect of the POSIX [POSIX] accept() call. For + this reason we use the terminology "accepting a connection" to refer + to this event: committing sufficient network resources to process the + incoming request. Accepting a connection typically entails + allocating memory for the protocol control block [RFC793], the per- + connection table rows described in this MIB and CPU resources, such + as process table entries or threads. + + Note that it is not useful to accept connections before they are + ESTABLISHED, because this would create an easy opportunity for + Denial-of-Service attacks, using forged source IP addresses. + + The backlog consists of connections that are in SYN-RCVD or + ESTABLISHED states, that have not been accepted. For purposes of + this MIB, we assume that these connections have been allocated some + resources (e.g., an embryonic protocol control block), but not full + resources (e.g., do not yet have MIB table rows). + + + + + + +Mathis, et al. Standards Track [Page 6] + +RFC 4898 TCP Extended Statistics MIB May 2007 + + + Note that some SYN-Flood defenses dispense with explicit SYN-RCVD + state by cryptographically encoding the state in the ISS (initial + sequence number sent) of the SYN-ACK (sometimes called a syn-cookie), + and then using the sequence number of the first ACK to reconstruct + the SYN-RCVD state before transitioning to the ESTABLISHED state. + For these implementations there is no explicit representation of the + SYN-RCVD state, and the backlog only consists of connections that are + ESTABLISHED and are waiting to be ACCEPTED. + + Furthermore, most SYN-flood defenses have some mechanism to throttle + connections that might otherwise overwhelm this endpoint. They + generally use some combination of discarding incoming SYNs and + discarding connections already in the backlog. This does not cause + all connections from legitimate clients to fail, as long as the + clients retransmit the SYN or first ACK as specified in RFC 793. + Most diversity in SYN flood defenses arise from variations in these + algorithms to limit load, and therefore cannot be instrumented with a + common standard MIB. + + The Listen Table instruments all passively opened TCP connections in + terms of observable protocol events (e.g., sent and received + segments) and resource allocation events (entering the backlog and + being accepted). This approach eases generalization to SYN-flood + mechanisms that use alternate TCP state transition diagrams and + implicit mechanisms to encode some states. + +4. TCP Extended Statistics MIB + + This MIB module IMPORTS definitions from [RFC2578], [RFC2579], + [RFC2580], [RFC2856], [RFC4022], and [RFC4502]. It uses REFERENCE + clauses to refer to [RFC791], [RFC793], [RFC1122], [RFC1191], + [RFC1323], [RFC2018], [RFC2581], [RFC2861], [RFC2883], [RFC2988], + [RFC3168], [RFC3260], [RFC3517], [RFC3522], and [RFC3742]. + + TCP-ESTATS-MIB DEFINITIONS ::= BEGIN + IMPORTS + MODULE-IDENTITY, Counter32, Integer32, Unsigned32, + Gauge32, OBJECT-TYPE, mib-2, + NOTIFICATION-TYPE + FROM SNMPv2-SMI -- [RFC2578] + MODULE-COMPLIANCE, OBJECT-GROUP, NOTIFICATION-GROUP + FROM SNMPv2-CONF -- [RFC2580] + ZeroBasedCounter32 + FROM RMON2-MIB -- [RFC4502] + ZeroBasedCounter64 + FROM HCNUM-TC -- [RFC2856] + TEXTUAL-CONVENTION, + DateAndTime, TruthValue, TimeStamp + + + +Mathis, et al. Standards Track [Page 7] + +RFC 4898 TCP Extended Statistics MIB May 2007 + + + FROM SNMPv2-TC -- [RFC2579] + tcpListenerEntry, tcpConnectionEntry + FROM TCP-MIB; -- [RFC4022] + + tcpEStatsMIB MODULE-IDENTITY + LAST-UPDATED "200705180000Z" -- 18 May 2007 + ORGANIZATION "IETF TSV Working Group" + CONTACT-INFO + "Matt Mathis + John Heffner + Web100 Project + Pittsburgh Supercomputing Center + 300 S. Craig St. + Pittsburgh, PA 15213 + Email: mathis@psc.edu, jheffner@psc.edu + + Rajiv Raghunarayan + Cisco Systems Inc. + San Jose, CA 95134 + Phone: 408 853 9612 + Email: raraghun@cisco.com + + Jon Saperia + 84 Kettell Plain Road + Stow, MA 01775 + Phone: 617-201-2655 + Email: saperia@jdscons.com " + DESCRIPTION + "Documentation of TCP Extended Performance Instrumentation + variables from the Web100 project. [Web100] + + All of the objects in this MIB MUST have the same + persistence properties as the underlying TCP implementation. + On a reboot, all zero-based counters MUST be cleared, all + dynamically created table rows MUST be deleted, and all + read-write objects MUST be restored to their default values. + + It is assumed that all TCP implementation have some + initialization code (if nothing else to set IP addresses) + that has the opportunity to adjust tcpEStatsConnTableLatency + and other read-write scalars controlling the creation of the + various tables, before establishing the first TCP + connection. Implementations MAY also choose to make these + control scalars persist across reboots. + + Copyright (C) The IETF Trust (2007). This version + of this MIB module is a part of RFC 4898; see the RFC + itself for full legal notices." + + + +Mathis, et al. Standards Track [Page 8] + +RFC 4898 TCP Extended Statistics MIB May 2007 + + + REVISION "200705180000Z" -- 18 May 2007 + DESCRIPTION + "Initial version, published as RFC 4898." + ::= { mib-2 156 } + + tcpEStatsNotifications OBJECT IDENTIFIER ::= { tcpEStatsMIB 0 } + tcpEStatsMIBObjects OBJECT IDENTIFIER ::= { tcpEStatsMIB 1 } + tcpEStatsConformance OBJECT IDENTIFIER ::= { tcpEStatsMIB 2 } + tcpEStats OBJECT IDENTIFIER ::= { tcpEStatsMIBObjects 1 } + tcpEStatsControl OBJECT IDENTIFIER ::= { tcpEStatsMIBObjects 2 } + tcpEStatsScalar OBJECT IDENTIFIER ::= { tcpEStatsMIBObjects 3 } + + -- + -- Textual Conventions + -- + + TcpEStatsNegotiated ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "Indicates if some optional TCP feature was negotiated. + + Enabled(1) indicates that the feature was successfully + negotiated on, which generally requires both hosts to agree + to use the feature. + + selfDisabled(2) indicates that the local host refused the + feature because it is not implemented, configured off, or + refused for some other reason, such as the lack of + resources. + + peerDisabled(3) indicates that the local host was willing + to negotiate the feature, but the remote host did not + do so." + SYNTAX INTEGER { + enabled(1), + selfDisabled(2), + peerDisabled(3) + } + + -- + -- TCP Extended statistics scalars + -- + + tcpEStatsListenerTableLastChange OBJECT-TYPE + SYNTAX TimeStamp + MAX-ACCESS read-only + STATUS current + DESCRIPTION + + + +Mathis, et al. Standards Track [Page 9] + +RFC 4898 TCP Extended Statistics MIB May 2007 + + + "The value of sysUpTime at the time of the last + creation or deletion of an entry in the tcpListenerTable. + If the number of entries has been unchanged since the + last re-initialization of the local network management + subsystem, then this object contains a zero value." + ::= { tcpEStatsScalar 3 } + + -- ================================================================ + -- + -- The tcpEStatsControl Group + -- + + -- The scalar objects in this group are used to control the + -- activation and deactivation of the TCP Extended Statistics + -- tables and notifications in this module. + -- + + tcpEStatsControlPath OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Controls the activation of the TCP Path Statistics + table. + + A value 'true' indicates that the TCP Path Statistics + table is active, while 'false' indicates that the + table is inactive." + DEFVAL { false } + ::= { tcpEStatsControl 1 } + + tcpEStatsControlStack OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Controls the activation of the TCP Stack Statistics + table. + + A value 'true' indicates that the TCP Stack Statistics + table is active, while 'false' indicates that the + table is inactive." + DEFVAL { false } + ::= { tcpEStatsControl 2 } + + tcpEStatsControlApp OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-write + + + +Mathis, et al. Standards Track [Page 10] + +RFC 4898 TCP Extended Statistics MIB May 2007 + + + STATUS current + DESCRIPTION + "Controls the activation of the TCP Application + Statistics table. + + A value 'true' indicates that the TCP Application + Statistics table is active, while 'false' indicates + that the table is inactive." + DEFVAL { false } + ::= { tcpEStatsControl 3 } + + tcpEStatsControlTune OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Controls the activation of the TCP Tuning table. + + A value 'true' indicates that the TCP Tuning + table is active, while 'false' indicates that the + table is inactive." + DEFVAL { false } + ::= { tcpEStatsControl 4 } + + tcpEStatsControlNotify OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Controls the generation of all notifications defined in + this MIB. + + A value 'true' indicates that the notifications + are active, while 'false' indicates that the + notifications are inactive." + DEFVAL { false } + ::= { tcpEStatsControl 5 } + + tcpEStatsConnTableLatency OBJECT-TYPE + SYNTAX Unsigned32 + UNITS "seconds" + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Specifies the number of seconds that the entity will + retain entries in the TCP connection tables, after the + connection first enters the closed state. The entity + SHOULD provide a configuration option to enable + + + +Mathis, et al. Standards Track [Page 11] + +RFC 4898 TCP Extended Statistics MIB May 2007 + + + customization of this value. A value of 0 + results in entries being removed from the tables as soon as + the connection enters the closed state. The value of + this object pertains to the following tables: + tcpEStatsConnectIdTable + tcpEStatsPerfTable + tcpEStatsPathTable + tcpEStatsStackTable + tcpEStatsAppTable + tcpEStatsTuneTable" + DEFVAL { 0 } + ::= { tcpEStatsControl 6 } + + -- ================================================================ + -- + -- Listener Table + -- + + tcpEStatsListenerTable OBJECT-TYPE + SYNTAX SEQUENCE OF TcpEStatsListenerEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "This table contains information about TCP Listeners, + in addition to the information maintained by the + tcpListenerTable RFC 4022." + ::= { tcpEStats 1 } + + tcpEStatsListenerEntry OBJECT-TYPE + SYNTAX TcpEStatsListenerEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Each entry in the table contains information about + a specific TCP Listener." + AUGMENTS { tcpListenerEntry } + ::= { tcpEStatsListenerTable 1 } + + TcpEStatsListenerEntry ::= SEQUENCE { + tcpEStatsListenerStartTime TimeStamp, + tcpEStatsListenerSynRcvd ZeroBasedCounter32, + tcpEStatsListenerInitial ZeroBasedCounter32, + tcpEStatsListenerEstablished ZeroBasedCounter32, + tcpEStatsListenerAccepted ZeroBasedCounter32, + tcpEStatsListenerExceedBacklog ZeroBasedCounter32, + tcpEStatsListenerHCSynRcvd ZeroBasedCounter64, + tcpEStatsListenerHCInitial ZeroBasedCounter64, + tcpEStatsListenerHCEstablished ZeroBasedCounter64, + + + +Mathis, et al. Standards Track [Page 12] + +RFC 4898 TCP Extended Statistics MIB May 2007 + + + tcpEStatsListenerHCAccepted ZeroBasedCounter64, + tcpEStatsListenerHCExceedBacklog ZeroBasedCounter64, + tcpEStatsListenerCurConns Gauge32, + tcpEStatsListenerMaxBacklog Unsigned32, + tcpEStatsListenerCurBacklog Gauge32, + tcpEStatsListenerCurEstabBacklog Gauge32 + } + + tcpEStatsListenerStartTime OBJECT-TYPE + SYNTAX TimeStamp + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value of sysUpTime at the time this listener was + established. If the current state was entered prior to + the last re-initialization of the local network management + subsystem, then this object contains a zero value." + ::= { tcpEStatsListenerEntry 1 } + + tcpEStatsListenerSynRcvd OBJECT-TYPE + SYNTAX ZeroBasedCounter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SYNs which have been received for this + listener. The total number of failed connections for + all reasons can be estimated to be tcpEStatsListenerSynRcvd + minus tcpEStatsListenerAccepted and + tcpEStatsListenerCurBacklog." + ::= { tcpEStatsListenerEntry 2 } + + tcpEStatsListenerInitial OBJECT-TYPE + SYNTAX ZeroBasedCounter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of connections for which the Listener + has allocated initial state and placed the + connection in the backlog. This may happen in the + SYN-RCVD or ESTABLISHED states, depending on the + implementation." + ::= { tcpEStatsListenerEntry 3 } + + tcpEStatsListenerEstablished OBJECT-TYPE + SYNTAX ZeroBasedCounter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + + + +Mathis, et al. Standards Track [Page 13] + +RFC 4898 TCP Extended Statistics MIB May 2007 + + + "The number of connections that have been established to + this endpoint (e.g., the number of first ACKs that have + been received for this listener)." + ::= { tcpEStatsListenerEntry 4 } + + tcpEStatsListenerAccepted OBJECT-TYPE + SYNTAX ZeroBasedCounter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of connections for which the Listener + has successfully issued an accept, removing the connection + from the backlog." + ::= { tcpEStatsListenerEntry 5 } + + tcpEStatsListenerExceedBacklog OBJECT-TYPE + SYNTAX ZeroBasedCounter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of connections dropped from the + backlog by this listener due to all reasons. This + includes all connections that are allocated initial + resources, but are not accepted for some reason." + ::= { tcpEStatsListenerEntry 6 } + + tcpEStatsListenerHCSynRcvd OBJECT-TYPE + SYNTAX ZeroBasedCounter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SYNs that have been received for this + listener on systems that can process (or reject) more + than 1 million connections per second. See + tcpEStatsListenerSynRcvd." + ::= { tcpEStatsListenerEntry 7 } + + tcpEStatsListenerHCInitial OBJECT-TYPE + SYNTAX ZeroBasedCounter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of connections for which the Listener + has allocated initial state and placed the connection + in the backlog on systems that can process (or reject) + more than 1 million connections per second. See + tcpEStatsListenerInitial." + ::= { tcpEStatsListenerEntry 8 } + + + +Mathis, et al. Standards Track [Page 14] + +RFC 4898 TCP Extended Statistics MIB May 2007 + + + tcpEStatsListenerHCEstablished OBJECT-TYPE + SYNTAX ZeroBasedCounter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of connections that have been established to + this endpoint on systems that can process (or reject) more + than 1 million connections per second. See + tcpEStatsListenerEstablished." + ::= { tcpEStatsListenerEntry 9 } + + tcpEStatsListenerHCAccepted OBJECT-TYPE + SYNTAX ZeroBasedCounter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of connections for which the Listener + has successfully issued an accept, removing the connection + from the backlog on systems that can process (or reject) + more than 1 million connections per second. See + tcpEStatsListenerAccepted." + ::= { tcpEStatsListenerEntry 10 } + + tcpEStatsListenerHCExceedBacklog OBJECT-TYPE + SYNTAX ZeroBasedCounter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of connections dropped from the + backlog by this listener due to all reasons on + systems that can process (or reject) more than + 1 million connections per second. See + tcpEStatsListenerExceedBacklog." + ::= { tcpEStatsListenerEntry 11 } + + tcpEStatsListenerCurConns OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current number of connections in the ESTABLISHED + state, which have also been accepted. It excludes + connections that have been established but not accepted + because they are still subject to being discarded to + shed load without explicit action by either endpoint." + ::= { tcpEStatsListenerEntry 12 } + + tcpEStatsListenerMaxBacklog OBJECT-TYPE + + + +Mathis, et al. Standards Track [Page 15] + +RFC 4898 TCP Extended Statistics MIB May 2007 + + + SYNTAX Unsigned32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The maximum number of connections allowed in the + backlog at one time." + ::= { tcpEStatsListenerEntry 13 } + + tcpEStatsListenerCurBacklog OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current number of connections that are in the backlog. + This gauge includes connections in ESTABLISHED or + SYN-RECEIVED states for which the Listener has not yet + issued an accept. + + If this listener is using some technique to implicitly + represent the SYN-RECEIVED states (e.g., by + cryptographically encoding the state information in the + initial sequence number, ISS), it MAY elect to exclude + connections in the SYN-RECEIVED state from the backlog." + ::= { tcpEStatsListenerEntry 14 } + + tcpEStatsListenerCurEstabBacklog OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current number of connections in the backlog that are + in the ESTABLISHED state, but for which the Listener has + not yet issued an accept." + ::= { tcpEStatsListenerEntry 15 } + + + -- ================================================================ + -- + -- TCP Connection ID Table + -- + + tcpEStatsConnectIdTable OBJECT-TYPE + SYNTAX SEQUENCE OF TcpEStatsConnectIdEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "This table maps information that uniquely identifies + each active TCP connection to the connection ID used by + + + +Mathis, et al. Standards Track [Page 16] + +RFC 4898 TCP Extended Statistics MIB May 2007 + + + other tables in this MIB Module. It is an extension of + tcpConnectionTable in RFC 4022. + + Entries are retained in this table for the number of + seconds indicated by the tcpEStatsConnTableLatency + object, after the TCP connection first enters the closed + state." + ::= { tcpEStats 2 } + + tcpEStatsConnectIdEntry OBJECT-TYPE + SYNTAX TcpEStatsConnectIdEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Each entry in this table maps a TCP connection + 4-tuple to a connection index." + AUGMENTS { tcpConnectionEntry } + ::= { tcpEStatsConnectIdTable 1 } + + TcpEStatsConnectIdEntry ::= SEQUENCE { + tcpEStatsConnectIndex Unsigned32 + } + + tcpEStatsConnectIndex OBJECT-TYPE + SYNTAX Unsigned32 (1..4294967295) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A unique integer value assigned to each TCP Connection + entry. + + The RECOMMENDED algorithm is to begin at 1 and increase to + some implementation-specific maximum value and then start + again at 1 skipping values already in use." + ::= { tcpEStatsConnectIdEntry 1 } + + -- ================================================================ + -- + -- Basic TCP Performance Statistics + -- + + tcpEStatsPerfTable OBJECT-TYPE + SYNTAX SEQUENCE OF TcpEStatsPerfEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + + "This table contains objects that are useful for + + + +Mathis, et al. Standards Track [Page 17] + +RFC 4898 TCP Extended Statistics MIB May 2007 + + + measuring TCP performance and first line problem + diagnosis. Most objects in this table directly expose + some TCP state variable or are easily implemented as + simple functions (e.g., the maximum value) of TCP + state variables. + + Entries are retained in this table for the number of + seconds indicated by the tcpEStatsConnTableLatency + object, after the TCP connection first enters the closed + state." + ::= { tcpEStats 3 } + + tcpEStatsPerfEntry OBJECT-TYPE + SYNTAX TcpEStatsPerfEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Each entry in this table has information about the + characteristics of each active and recently closed TCP + connection." + INDEX { tcpEStatsConnectIndex } + ::= { tcpEStatsPerfTable 1 } + + TcpEStatsPerfEntry ::= SEQUENCE { + + tcpEStatsPerfSegsOut ZeroBasedCounter32, + tcpEStatsPerfDataSegsOut ZeroBasedCounter32, + tcpEStatsPerfDataOctetsOut ZeroBasedCounter32, + tcpEStatsPerfHCDataOctetsOut ZeroBasedCounter64, + tcpEStatsPerfSegsRetrans ZeroBasedCounter32, + tcpEStatsPerfOctetsRetrans ZeroBasedCounter32, + tcpEStatsPerfSegsIn ZeroBasedCounter32, + tcpEStatsPerfDataSegsIn ZeroBasedCounter32, + tcpEStatsPerfDataOctetsIn ZeroBasedCounter32, + tcpEStatsPerfHCDataOctetsIn ZeroBasedCounter64, + tcpEStatsPerfElapsedSecs ZeroBasedCounter32, + tcpEStatsPerfElapsedMicroSecs ZeroBasedCounter32, + tcpEStatsPerfStartTimeStamp DateAndTime, + tcpEStatsPerfCurMSS Gauge32, + tcpEStatsPerfPipeSize Gauge32, + tcpEStatsPerfMaxPipeSize Gauge32, + tcpEStatsPerfSmoothedRTT Gauge32, + tcpEStatsPerfCurRTO Gauge32, + tcpEStatsPerfCongSignals ZeroBasedCounter32, + tcpEStatsPerfCurCwnd Gauge32, + tcpEStatsPerfCurSsthresh Gauge32, + tcpEStatsPerfTimeouts ZeroBasedCounter32, + tcpEStatsPerfCurRwinSent Gauge32, + + + +Mathis, et al. Standards Track [Page 18] + +RFC 4898 TCP Extended Statistics MIB May 2007 + + + tcpEStatsPerfMaxRwinSent Gauge32, + tcpEStatsPerfZeroRwinSent ZeroBasedCounter32, + tcpEStatsPerfCurRwinRcvd Gauge32, + tcpEStatsPerfMaxRwinRcvd Gauge32, + tcpEStatsPerfZeroRwinRcvd ZeroBasedCounter32, + tcpEStatsPerfSndLimTransRwin ZeroBasedCounter32, + tcpEStatsPerfSndLimTransCwnd ZeroBasedCounter32, + tcpEStatsPerfSndLimTransSnd ZeroBasedCounter32, + tcpEStatsPerfSndLimTimeRwin ZeroBasedCounter32, + tcpEStatsPerfSndLimTimeCwnd ZeroBasedCounter32, + tcpEStatsPerfSndLimTimeSnd ZeroBasedCounter32 + } + + -- + -- The following objects provide statistics on aggregate + -- segments and data sent on a connection. These provide a + -- direct measure of the Internet capacity consumed by a + -- connection. + -- + + tcpEStatsPerfSegsOut OBJECT-TYPE + SYNTAX ZeroBasedCounter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of segments sent." + ::= { tcpEStatsPerfEntry 1 } + + tcpEStatsPerfDataSegsOut OBJECT-TYPE + SYNTAX ZeroBasedCounter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of segments sent containing a positive length + data segment." + ::= { tcpEStatsPerfEntry 2 } + + tcpEStatsPerfDataOctetsOut OBJECT-TYPE + SYNTAX ZeroBasedCounter32 + UNITS "octets" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of octets of data contained in transmitted + segments, including retransmitted data. Note that this does + not include TCP headers." + ::= { tcpEStatsPerfEntry 3 } + + + + +Mathis, et al. Standards Track [Page 19] + +RFC 4898 TCP Extended Statistics MIB May 2007 + + + tcpEStatsPerfHCDataOctetsOut OBJECT-TYPE + SYNTAX ZeroBasedCounter64 + UNITS "octets" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of octets of data contained in transmitted + segments, including retransmitted data, on systems that can + transmit more than 10 million bits per second. Note that + this does not include TCP headers." + ::= { tcpEStatsPerfEntry 4 } + + tcpEStatsPerfSegsRetrans OBJECT-TYPE + SYNTAX ZeroBasedCounter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of segments transmitted containing at least some + retransmitted data." + REFERENCE + "RFC 793, Transmission Control Protocol" + ::= { tcpEStatsPerfEntry 5 } + + tcpEStatsPerfOctetsRetrans OBJECT-TYPE + SYNTAX ZeroBasedCounter32 + UNITS "octets" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of octets retransmitted." + REFERENCE + "RFC 793, Transmission Control Protocol" + ::= { tcpEStatsPerfEntry 6 } + + tcpEStatsPerfSegsIn OBJECT-TYPE + SYNTAX ZeroBasedCounter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of segments received." + ::= { tcpEStatsPerfEntry 7 } + + tcpEStatsPerfDataSegsIn OBJECT-TYPE + SYNTAX ZeroBasedCounter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of segments received containing a positive + + + +Mathis, et al. Standards Track [Page 20] + +RFC 4898 TCP Extended Statistics MIB May 2007 + + + length data segment." + ::= { tcpEStatsPerfEntry 8 } + + tcpEStatsPerfDataOctetsIn OBJECT-TYPE + SYNTAX ZeroBasedCounter32 + UNITS "octets" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of octets contained in received data segments, + including retransmitted data. Note that this does not + include TCP headers." + ::= { tcpEStatsPerfEntry 9 } + + tcpEStatsPerfHCDataOctetsIn OBJECT-TYPE + SYNTAX ZeroBasedCounter64 + UNITS "octets" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of octets contained in received data segments, + including retransmitted data, on systems that can receive + more than 10 million bits per second. Note that this does + not include TCP headers." + ::= { tcpEStatsPerfEntry 10 } + + tcpEStatsPerfElapsedSecs OBJECT-TYPE + SYNTAX ZeroBasedCounter32 + UNITS "seconds" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The seconds part of the time elapsed between + tcpEStatsPerfStartTimeStamp and the most recent protocol + event (segment sent or received)." + ::= { tcpEStatsPerfEntry 11 } + + tcpEStatsPerfElapsedMicroSecs OBJECT-TYPE + SYNTAX ZeroBasedCounter32 + UNITS "microseconds" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The micro-second part of time elapsed between + tcpEStatsPerfStartTimeStamp to the most recent protocol + event (segment sent or received). This may be updated in + whatever time granularity is the system supports." + ::= { tcpEStatsPerfEntry 12 } + + + +Mathis, et al. Standards Track [Page 21] + +RFC 4898 TCP Extended Statistics MIB May 2007 + + + tcpEStatsPerfStartTimeStamp OBJECT-TYPE + SYNTAX DateAndTime + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Time at which this row was created and all + ZeroBasedCounters in the row were initialized to zero." + ::= { tcpEStatsPerfEntry 13 } + + -- + -- The following objects can be used to fit minimal + -- performance models to the TCP data rate. + -- + + tcpEStatsPerfCurMSS OBJECT-TYPE + SYNTAX Gauge32 + UNITS "octets" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current maximum segment size (MSS), in octets." + REFERENCE + "RFC 1122, Requirements for Internet Hosts - Communication + Layers" + ::= { tcpEStatsPerfEntry 14 } + + tcpEStatsPerfPipeSize OBJECT-TYPE + SYNTAX Gauge32 + UNITS "octets" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The TCP senders current estimate of the number of + unacknowledged data octets in the network. + + While not in recovery (e.g., while the receiver is not + reporting missing data to the sender), this is precisely the + same as 'Flight size' as defined in RFC 2581, which can be + computed as SND.NXT minus SND.UNA. [RFC793] + + During recovery, the TCP sender has incomplete information + about the state of the network (e.g., which segments are + lost vs reordered, especially if the return path is also + dropping TCP acknowledgments). Current TCP standards do not + mandate any specific algorithm for estimating the number of + unacknowledged data octets in the network. + + RFC 3517 describes a conservative algorithm to use SACK + + + +Mathis, et al. Standards Track [Page 22] + +RFC 4898 TCP Extended Statistics MIB May 2007 + + + information to estimate the number of unacknowledged data + octets in the network. tcpEStatsPerfPipeSize object SHOULD + be the same as 'pipe' as defined in RFC 3517 if it is + implemented. (Note that while not in recovery the pipe + algorithm yields the same values as flight size). + + If RFC 3517 is not implemented, the data octets in flight + SHOULD be estimated as SND.NXT minus SND.UNA adjusted by + some measure of the data that has left the network and + retransmitted data. For example, with Reno or NewReno style + TCP, the number of duplicate acknowledgment is used to + count the number of segments that have left the network. + That is, + PipeSize=SND.NXT-SND.UNA+(retransmits-dupacks)*CurMSS" + REFERENCE + "RFC 793, RFC 2581, RFC 3517" + ::= { tcpEStatsPerfEntry 15 } + + tcpEStatsPerfMaxPipeSize OBJECT-TYPE + SYNTAX Gauge32 + UNITS "octets" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The maximum value of tcpEStatsPerfPipeSize, for this + connection." + REFERENCE + "RFC 793, RFC 2581, RFC 3517" + ::= { tcpEStatsPerfEntry 16 } + + tcpEStatsPerfSmoothedRTT OBJECT-TYPE + SYNTAX Gauge32 + UNITS "milliseconds" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The smoothed round trip time used in calculation of the + RTO. See SRTT in [RFC2988]." + REFERENCE + "RFC 2988, Computing TCP's Retransmission Timer" + ::= { tcpEStatsPerfEntry 17 } + + tcpEStatsPerfCurRTO OBJECT-TYPE + SYNTAX Gauge32 + UNITS "milliseconds" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + + + +Mathis, et al. Standards Track [Page 23] + +RFC 4898 TCP Extended Statistics MIB May 2007 + + + "The current value of the retransmit timer RTO." + REFERENCE + "RFC 2988, Computing TCP's Retransmission Timer" + ::= { tcpEStatsPerfEntry 18 } + + tcpEStatsPerfCongSignals OBJECT-TYPE + SYNTAX ZeroBasedCounter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of multiplicative downward congestion window + adjustments due to all forms of congestion signals, + including Fast Retransmit, Explicit Congestion Notification + (ECN), and timeouts. This object summarizes all events that + invoke the MD portion of Additive Increase Multiplicative + Decrease (AIMD) congestion control, and as such is the best + indicator of how a cwnd is being affected by congestion. + + Note that retransmission timeouts multiplicatively reduce + the window implicitly by setting ssthresh, and SHOULD be + included in tcpEStatsPerfCongSignals. In order to minimize + spurious congestion indications due to out-of-order + segments, tcpEStatsPerfCongSignals SHOULD be incremented in + association with the Fast Retransmit algorithm." + REFERENCE + "RFC 2581, TCP Congestion Control" + ::= { tcpEStatsPerfEntry 19 } + + tcpEStatsPerfCurCwnd OBJECT-TYPE + SYNTAX Gauge32 + UNITS "octets" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current congestion window, in octets." + REFERENCE + "RFC 2581, TCP Congestion Control" + ::= { tcpEStatsPerfEntry 20 } + + tcpEStatsPerfCurSsthresh OBJECT-TYPE + SYNTAX Gauge32 + UNITS "octets" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current slow start threshold in octets." + REFERENCE + "RFC 2581, TCP Congestion Control" + + + +Mathis, et al. Standards Track [Page 24] + +RFC 4898 TCP Extended Statistics MIB May 2007 + + + ::= { tcpEStatsPerfEntry 21 } + + tcpEStatsPerfTimeouts OBJECT-TYPE + SYNTAX ZeroBasedCounter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of times the retransmit timeout has expired when + the RTO backoff multiplier is equal to one." + REFERENCE + "RFC 2988, Computing TCP's Retransmission Timer" + ::= { tcpEStatsPerfEntry 22 } + + -- + -- The following objects instrument receiver window updates + -- sent by the local receiver to the remote sender. These can + -- be used to determine if the local receiver is exerting flow + -- control back pressure on the remote sender. + -- + + tcpEStatsPerfCurRwinSent OBJECT-TYPE + SYNTAX Gauge32 + UNITS "octets" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The most recent window advertisement sent, in octets." + REFERENCE + "RFC 793, Transmission Control Protocol" + ::= { tcpEStatsPerfEntry 23 } + + tcpEStatsPerfMaxRwinSent OBJECT-TYPE + SYNTAX Gauge32 + UNITS "octets" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The maximum window advertisement sent, in octets." + REFERENCE + "RFC 793, Transmission Control Protocol" + ::= { tcpEStatsPerfEntry 24 } + + tcpEStatsPerfZeroRwinSent OBJECT-TYPE + SYNTAX ZeroBasedCounter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of acknowledgments sent announcing a zero + + + +Mathis, et al. Standards Track [Page 25] + +RFC 4898 TCP Extended Statistics MIB May 2007 + + + receive window, when the previously announced window was + not zero." + REFERENCE + "RFC 793, Transmission Control Protocol" + ::= { tcpEStatsPerfEntry 25 } + + -- + -- The following objects instrument receiver window updates + -- from the far end-system to determine if the remote receiver + -- has sufficient buffer space or is exerting flow-control + -- back pressure on the local sender. + -- + + tcpEStatsPerfCurRwinRcvd OBJECT-TYPE + SYNTAX Gauge32 + UNITS "octets" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The most recent window advertisement received, in octets." + REFERENCE + "RFC 793, Transmission Control Protocol" + ::= { tcpEStatsPerfEntry 26 } + + tcpEStatsPerfMaxRwinRcvd OBJECT-TYPE + SYNTAX Gauge32 + UNITS "octets" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The maximum window advertisement received, in octets." + REFERENCE + "RFC 793, Transmission Control Protocol" + ::= { tcpEStatsPerfEntry 27 } + + tcpEStatsPerfZeroRwinRcvd OBJECT-TYPE + SYNTAX ZeroBasedCounter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of acknowledgments received announcing a zero + receive window, when the previously announced window was + not zero." + REFERENCE + "RFC 793, Transmission Control Protocol" + ::= { tcpEStatsPerfEntry 28 } + + -- + + + +Mathis, et al. Standards Track [Page 26] + +RFC 4898 TCP Extended Statistics MIB May 2007 + + + -- The following optional objects can be used to quickly + -- identify which subsystems are limiting TCP performance. + -- There are three parallel pairs of instruments that measure + -- the extent to which TCP performance is limited by the + -- announced receiver window (indicating a receiver + -- bottleneck), the current congestion window or + -- retransmission timeout (indicating a path bottleneck) and + -- all others events (indicating a sender bottleneck). + -- + -- These instruments SHOULD be updated every time the TCP + -- output routine stops sending data. The elapsed time since + -- the previous stop is accumulated into the appropriate + -- object as determined by the previous stop reason (e.g., + -- stop state). The current stop reason determines which timer + -- will be updated the next time TCP output stops. + -- + -- Since there is no explicit stop at the beginning of a + -- timeout, it is necessary to retroactively reclassify the + -- previous stop as 'Congestion Limited'. + -- + + tcpEStatsPerfSndLimTransRwin OBJECT-TYPE + SYNTAX ZeroBasedCounter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of transitions into the 'Receiver Limited' state + from either the 'Congestion Limited' or 'Sender Limited' + states. This state is entered whenever TCP transmission + stops because the sender has filled the announced receiver + window, i.e., when SND.NXT has advanced to SND.UNA + + SND.WND - 1 as described in RFC 793." + REFERENCE + "RFC 793, Transmission Control Protocol" + ::= { tcpEStatsPerfEntry 31 } + + tcpEStatsPerfSndLimTransCwnd OBJECT-TYPE + SYNTAX ZeroBasedCounter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of transitions into the 'Congestion Limited' + state from either the 'Receiver Limited' or 'Sender + Limited' states. This state is entered whenever TCP + transmission stops because the sender has reached some + limit defined by congestion control (e.g., cwnd) or other + algorithms (retransmission timeouts) designed to control + network traffic. See the definition of 'CONGESTION WINDOW' + + + +Mathis, et al. Standards Track [Page 27] + +RFC 4898 TCP Extended Statistics MIB May 2007 + + + in RFC 2581." + REFERENCE + "RFC 2581, TCP Congestion Control" + ::= { tcpEStatsPerfEntry 32 } + + tcpEStatsPerfSndLimTransSnd OBJECT-TYPE + SYNTAX ZeroBasedCounter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of transitions into the 'Sender Limited' state + from either the 'Receiver Limited' or 'Congestion Limited' + states. This state is entered whenever TCP transmission + stops due to some sender limit such as running out of + application data or other resources and the Karn algorithm. + When TCP stops sending data for any reason, which cannot be + classified as Receiver Limited or Congestion Limited, it + MUST be treated as Sender Limited." + ::= { tcpEStatsPerfEntry 33 } + + tcpEStatsPerfSndLimTimeRwin OBJECT-TYPE + SYNTAX ZeroBasedCounter32 + UNITS "milliseconds" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The cumulative time spent in the 'Receiver Limited' state. + See tcpEStatsPerfSndLimTransRwin." + ::= { tcpEStatsPerfEntry 34 } + + tcpEStatsPerfSndLimTimeCwnd OBJECT-TYPE + SYNTAX ZeroBasedCounter32 + UNITS "milliseconds" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The cumulative time spent in the 'Congestion Limited' + state. See tcpEStatsPerfSndLimTransCwnd. When there is a + retransmission timeout, it SHOULD be counted in + tcpEStatsPerfSndLimTimeCwnd (and not the cumulative time + for some other state.)" + ::= { tcpEStatsPerfEntry 35 } + + tcpEStatsPerfSndLimTimeSnd OBJECT-TYPE + SYNTAX ZeroBasedCounter32 + UNITS "milliseconds" + MAX-ACCESS read-only + STATUS current + + + +Mathis, et al. Standards Track [Page 28] + +RFC 4898 TCP Extended Statistics MIB May 2007 + + + DESCRIPTION + "The cumulative time spent in the 'Sender Limited' state. + See tcpEStatsPerfSndLimTransSnd." + ::= { tcpEStatsPerfEntry 36 } + + -- ================================================================ + -- + -- Statistics for diagnosing path problems + -- + + tcpEStatsPathTable OBJECT-TYPE + SYNTAX SEQUENCE OF TcpEStatsPathEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "This table contains objects that can be used to infer + detailed behavior of the Internet path, such as the + extent that there is reordering, ECN bits, and if + RTT fluctuations are correlated to losses. + + Entries are retained in this table for the number of + seconds indicated by the tcpEStatsConnTableLatency + object, after the TCP connection first enters the closed + state." + ::= { tcpEStats 4 } + + tcpEStatsPathEntry OBJECT-TYPE + SYNTAX TcpEStatsPathEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Each entry in this table has information about the + characteristics of each active and recently closed TCP + connection." + INDEX { tcpEStatsConnectIndex } + ::= { tcpEStatsPathTable 1 } + + TcpEStatsPathEntry ::= SEQUENCE { + + tcpEStatsPathRetranThresh Gauge32, + tcpEStatsPathNonRecovDAEpisodes ZeroBasedCounter32, + tcpEStatsPathSumOctetsReordered ZeroBasedCounter32, + tcpEStatsPathNonRecovDA ZeroBasedCounter32, + tcpEStatsPathSampleRTT Gauge32, + tcpEStatsPathRTTVar Gauge32, + tcpEStatsPathMaxRTT Gauge32, + tcpEStatsPathMinRTT Gauge32, + tcpEStatsPathSumRTT ZeroBasedCounter32, + + + +Mathis, et al. Standards Track [Page 29] + +RFC 4898 TCP Extended Statistics MIB May 2007 + + + tcpEStatsPathHCSumRTT ZeroBasedCounter64, + tcpEStatsPathCountRTT ZeroBasedCounter32, + tcpEStatsPathMaxRTO Gauge32, + tcpEStatsPathMinRTO Gauge32, + tcpEStatsPathIpTtl Unsigned32, + tcpEStatsPathIpTosIn OCTET STRING, + tcpEStatsPathIpTosOut OCTET STRING, + tcpEStatsPathPreCongSumCwnd ZeroBasedCounter32, + tcpEStatsPathPreCongSumRTT ZeroBasedCounter32, + tcpEStatsPathPostCongSumRTT ZeroBasedCounter32, + tcpEStatsPathPostCongCountRTT ZeroBasedCounter32, + tcpEStatsPathECNsignals ZeroBasedCounter32, + tcpEStatsPathDupAckEpisodes ZeroBasedCounter32, + tcpEStatsPathRcvRTT Gauge32, + tcpEStatsPathDupAcksOut ZeroBasedCounter32, + tcpEStatsPathCERcvd ZeroBasedCounter32, + tcpEStatsPathECESent ZeroBasedCounter32 + } + + -- + -- The following optional objects can be used to infer segment + -- reordering on the path from the local sender to the remote + -- receiver. + -- + + tcpEStatsPathRetranThresh OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of duplicate acknowledgments required to trigger + Fast Retransmit. Note that although this is constant in + traditional Reno TCP implementations, it is adaptive in + many newer TCPs." + REFERENCE + "RFC 2581, TCP Congestion Control" + ::= { tcpEStatsPathEntry 1 } + + tcpEStatsPathNonRecovDAEpisodes OBJECT-TYPE + SYNTAX ZeroBasedCounter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of duplicate acknowledgment episodes that did + not trigger a Fast Retransmit because ACK advanced prior to + the number of duplicate acknowledgments reaching + RetranThresh. + + + + +Mathis, et al. Standards Track [Page 30] + +RFC 4898 TCP Extended Statistics MIB May 2007 + + + In many implementations this is the number of times the + 'dupacks' counter is set to zero when it is non-zero but + less than RetranThresh. + + Note that the change in tcpEStatsPathNonRecovDAEpisodes + divided by the change in tcpEStatsPerfDataSegsOut is an + estimate of the frequency of data reordering on the forward + path over some interval." + REFERENCE + "RFC 2581, TCP Congestion Control" + ::= { tcpEStatsPathEntry 2 } + + tcpEStatsPathSumOctetsReordered OBJECT-TYPE + SYNTAX ZeroBasedCounter32 + UNITS "octets" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The sum of the amounts SND.UNA advances on the + acknowledgment which ends a dup-ack episode without a + retransmission. + + Note the change in tcpEStatsPathSumOctetsReordered divided + by the change in tcpEStatsPathNonRecovDAEpisodes is an + estimates of the average reordering distance, over some + interval." + ::= { tcpEStatsPathEntry 3 } + + tcpEStatsPathNonRecovDA OBJECT-TYPE + SYNTAX ZeroBasedCounter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Duplicate acks (or SACKS) that did not trigger a Fast + Retransmit because ACK advanced prior to the number of + duplicate acknowledgments reaching RetranThresh. + + In many implementations, this is the sum of the 'dupacks' + counter, just before it is set to zero because ACK advanced + without a Fast Retransmit. + + Note that the change in tcpEStatsPathNonRecovDA divided by + the change in tcpEStatsPathNonRecovDAEpisodes is an + estimate of the average reordering distance in segments + over some interval." + REFERENCE + "RFC 2581, TCP Congestion Control" + ::= { tcpEStatsPathEntry 4 } + + + +Mathis, et al. Standards Track [Page 31] + +RFC 4898 TCP Extended Statistics MIB May 2007 + + + -- + -- The following optional objects instrument the round trip + -- time estimator and the retransmission timeout timer. + -- + + tcpEStatsPathSampleRTT OBJECT-TYPE + SYNTAX Gauge32 + UNITS "milliseconds" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The most recent raw round trip time measurement used in + calculation of the RTO." + REFERENCE + "RFC 2988, Computing TCP's Retransmission Timer" + ::= { tcpEStatsPathEntry 11 } + + tcpEStatsPathRTTVar OBJECT-TYPE + SYNTAX Gauge32 + UNITS "milliseconds" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The round trip time variation used in calculation of the + RTO. See RTTVAR in [RFC2988]." + REFERENCE + "RFC 2988, Computing TCP's Retransmission Timer" + ::= { tcpEStatsPathEntry 12 } + + tcpEStatsPathMaxRTT OBJECT-TYPE + SYNTAX Gauge32 + UNITS "milliseconds" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The maximum sampled round trip time." + REFERENCE + "RFC 2988, Computing TCP's Retransmission Timer" + ::= { tcpEStatsPathEntry 13 } + + tcpEStatsPathMinRTT OBJECT-TYPE + SYNTAX Gauge32 + UNITS "milliseconds" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The minimum sampled round trip time." + REFERENCE + + + +Mathis, et al. Standards Track [Page 32] + +RFC 4898 TCP Extended Statistics MIB May 2007 + + + "RFC 2988, Computing TCP's Retransmission Timer" + ::= { tcpEStatsPathEntry 14 } + + tcpEStatsPathSumRTT OBJECT-TYPE + SYNTAX ZeroBasedCounter32 + UNITS "milliseconds" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The sum of all sampled round trip times. + + Note that the change in tcpEStatsPathSumRTT divided by the + change in tcpEStatsPathCountRTT is the mean RTT, uniformly + averaged over an enter interval." + REFERENCE + "RFC 2988, Computing TCP's Retransmission Timer" + ::= { tcpEStatsPathEntry 15 } + + tcpEStatsPathHCSumRTT OBJECT-TYPE + SYNTAX ZeroBasedCounter64 + UNITS "milliseconds" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The sum of all sampled round trip times, on all systems + that implement multiple concurrent RTT measurements. + + Note that the change in tcpEStatsPathHCSumRTT divided by + the change in tcpEStatsPathCountRTT is the mean RTT, + uniformly averaged over an enter interval." + REFERENCE + "RFC 2988, Computing TCP's Retransmission Timer" + ::= { tcpEStatsPathEntry 16 } + + tcpEStatsPathCountRTT OBJECT-TYPE + SYNTAX ZeroBasedCounter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of round trip time samples included in + tcpEStatsPathSumRTT and tcpEStatsPathHCSumRTT." + REFERENCE + "RFC 2988, Computing TCP's Retransmission Timer" + ::= { tcpEStatsPathEntry 17 } + + tcpEStatsPathMaxRTO OBJECT-TYPE + SYNTAX Gauge32 + UNITS "milliseconds" + + + +Mathis, et al. Standards Track [Page 33] + +RFC 4898 TCP Extended Statistics MIB May 2007 + + + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The maximum value of the retransmit timer RTO." + REFERENCE + "RFC 2988, Computing TCP's Retransmission Timer" + ::= { tcpEStatsPathEntry 18 } + + tcpEStatsPathMinRTO OBJECT-TYPE + SYNTAX Gauge32 + UNITS "milliseconds" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The minimum value of the retransmit timer RTO." + REFERENCE + "RFC 2988, Computing TCP's Retransmission Timer" + ::= { tcpEStatsPathEntry 19 } + + -- + -- The following optional objects provide information about + -- how TCP is using the IP layer. + -- + + tcpEStatsPathIpTtl OBJECT-TYPE + SYNTAX Unsigned32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value of the TTL field carried in the most recently + received IP header. This is sometimes useful to detect + changing or unstable routes." + REFERENCE + "RFC 791, Internet Protocol" + ::= { tcpEStatsPathEntry 20 } + + tcpEStatsPathIpTosIn OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(1)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value of the IPv4 Type of Service octet, or the IPv6 + traffic class octet, carried in the most recently received + IP header. + + This is useful to diagnose interactions between TCP and any + IP layer packet scheduling and delivery policy, which might + be in effect to implement Diffserv." + + + +Mathis, et al. Standards Track [Page 34] + +RFC 4898 TCP Extended Statistics MIB May 2007 + + + REFERENCE + "RFC 3260, New Terminology and Clarifications for Diffserv" + ::= { tcpEStatsPathEntry 21 } + + tcpEStatsPathIpTosOut OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(1)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value of the IPv4 Type Of Service octet, or the IPv6 + traffic class octet, carried in the most recently + transmitted IP header. + + This is useful to diagnose interactions between TCP and any + IP layer packet scheduling and delivery policy, which might + be in effect to implement Diffserv." + REFERENCE + "RFC 3260, New Terminology and Clarifications for Diffserv" + ::= { tcpEStatsPathEntry 22 } + + -- + -- The following optional objects characterize the congestion + -- feedback signals by collecting statistics on how the + -- congestion events are correlated to losses, changes in RTT + -- and other protocol events. + -- + + tcpEStatsPathPreCongSumCwnd OBJECT-TYPE + SYNTAX ZeroBasedCounter32 + UNITS "octets" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The sum of the values of the congestion window, in octets, + captured each time a congestion signal is received. This + MUST be updated each time tcpEStatsPerfCongSignals is + incremented, such that the change in + tcpEStatsPathPreCongSumCwnd divided by the change in + tcpEStatsPerfCongSignals is the average window (over some + interval) just prior to a congestion signal." + ::= { tcpEStatsPathEntry 23 } + + tcpEStatsPathPreCongSumRTT OBJECT-TYPE + SYNTAX ZeroBasedCounter32 + UNITS "milliseconds" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + + + +Mathis, et al. Standards Track [Page 35] + +RFC 4898 TCP Extended Statistics MIB May 2007 + + + "Sum of the last sample of the RTT (tcpEStatsPathSampleRTT) + prior to the received congestion signals. This MUST be + updated each time tcpEStatsPerfCongSignals is incremented, + such that the change in tcpEStatsPathPreCongSumRTT divided by + the change in tcpEStatsPerfCongSignals is the average RTT + (over some interval) just prior to a congestion signal." + ::= { tcpEStatsPathEntry 24 } + + tcpEStatsPathPostCongSumRTT OBJECT-TYPE + SYNTAX ZeroBasedCounter32 + UNITS "octets" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Sum of the first sample of the RTT (tcpEStatsPathSampleRTT) + following each congestion signal. Such that the change in + tcpEStatsPathPostCongSumRTT divided by the change in + tcpEStatsPathPostCongCountRTT is the average RTT (over some + interval) just after a congestion signal." + ::= { tcpEStatsPathEntry 25 } + + tcpEStatsPathPostCongCountRTT OBJECT-TYPE + SYNTAX ZeroBasedCounter32 + UNITS "milliseconds" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of RTT samples included in + tcpEStatsPathPostCongSumRTT such that the change in + tcpEStatsPathPostCongSumRTT divided by the change in + tcpEStatsPathPostCongCountRTT is the average RTT (over some + interval) just after a congestion signal." + ::= { tcpEStatsPathEntry 26 } + + -- + -- The following optional objects can be used to detect other + -- types of non-loss congestion signals such as source quench + -- or ECN. + -- + + tcpEStatsPathECNsignals OBJECT-TYPE + SYNTAX ZeroBasedCounter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of congestion signals delivered to the TCP + sender via explicit congestion notification (ECN). This is + typically the number of segments bearing Echo Congestion + + + +Mathis, et al. Standards Track [Page 36] + +RFC 4898 TCP Extended Statistics MIB May 2007 + + + Experienced (ECE) bits, but + should also include segments failing the ECN nonce check or + other explicit congestion signals." + REFERENCE + "RFC 3168, The Addition of Explicit Congestion Notification + (ECN) to IP" + ::= { tcpEStatsPathEntry 27 } + + -- + -- The following optional objects are receiver side + -- instruments of the path from the sender to the receiver. In + -- general, the receiver has less information about the state + -- of the path because the receiver does not have a robust + -- mechanism to infer the sender's actions. + -- + + tcpEStatsPathDupAckEpisodes OBJECT-TYPE + SYNTAX ZeroBasedCounter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of Duplicate Acks Sent when prior Ack was not + duplicate. This is the number of times that a contiguous + series of duplicate acknowledgments have been sent. + + This is an indication of the number of data segments lost + or reordered on the path from the remote TCP endpoint to + the near TCP endpoint." + REFERENCE + "RFC 2581, TCP Congestion Control" + ::= { tcpEStatsPathEntry 28 } + + tcpEStatsPathRcvRTT OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The receiver's estimate of the Path RTT. + + Adaptive receiver window algorithms depend on the receiver + to having a good estimate of the path RTT." + ::= { tcpEStatsPathEntry 29 } + + tcpEStatsPathDupAcksOut OBJECT-TYPE + SYNTAX ZeroBasedCounter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + + + +Mathis, et al. Standards Track [Page 37] + +RFC 4898 TCP Extended Statistics MIB May 2007 + + + "The number of duplicate ACKs sent. The ratio of the change + in tcpEStatsPathDupAcksOut to the change in + tcpEStatsPathDupAckEpisodes is an indication of reorder or + recovery distance over some interval." + REFERENCE + "RFC 2581, TCP Congestion Control" + ::= { tcpEStatsPathEntry 30 } + + tcpEStatsPathCERcvd OBJECT-TYPE + SYNTAX ZeroBasedCounter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of segments received with IP headers bearing + Congestion Experienced (CE) markings." + REFERENCE + "RFC 3168, The Addition of Explicit Congestion Notification + (ECN) to IP" + ::= { tcpEStatsPathEntry 31 } + + tcpEStatsPathECESent OBJECT-TYPE + SYNTAX ZeroBasedCounter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of times the Echo Congestion Experienced (ECE) bit + in the TCP header has been set (transitioned from 0 to 1), + due to a Congestion Experienced (CE) marking on an IP + header. Note that ECE can be set and reset only once per + RTT, while CE can be set on many segments per RTT." + REFERENCE + "RFC 3168, The Addition of Explicit Congestion Notification + (ECN) to IP" + ::= { tcpEStatsPathEntry 32 } + + -- ================================================================ + -- + -- Statistics for diagnosing stack algorithms + -- + + tcpEStatsStackTable OBJECT-TYPE + SYNTAX SEQUENCE OF TcpEStatsStackEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "This table contains objects that are most useful for + determining how well some of the TCP control + algorithms are coping with this particular + + + +Mathis, et al. Standards Track [Page 38] + +RFC 4898 TCP Extended Statistics MIB May 2007 + + + path. + + Entries are retained in this table for the number of + seconds indicated by the tcpEStatsConnTableLatency + object, after the TCP connection first enters the closed + state." + ::= { tcpEStats 5 } + + tcpEStatsStackEntry OBJECT-TYPE + SYNTAX TcpEStatsStackEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Each entry in this table has information about the + characteristics of each active and recently closed TCP + connection." + INDEX { tcpEStatsConnectIndex } + ::= { tcpEStatsStackTable 1 } + + TcpEStatsStackEntry ::= SEQUENCE { + + tcpEStatsStackActiveOpen TruthValue, + tcpEStatsStackMSSSent Unsigned32, + tcpEStatsStackMSSRcvd Unsigned32, + tcpEStatsStackWinScaleSent Integer32, + tcpEStatsStackWinScaleRcvd Integer32, + tcpEStatsStackTimeStamps TcpEStatsNegotiated, + tcpEStatsStackECN TcpEStatsNegotiated, + tcpEStatsStackWillSendSACK TcpEStatsNegotiated, + tcpEStatsStackWillUseSACK TcpEStatsNegotiated, + tcpEStatsStackState INTEGER, + tcpEStatsStackNagle TruthValue, + tcpEStatsStackMaxSsCwnd Gauge32, + tcpEStatsStackMaxCaCwnd Gauge32, + tcpEStatsStackMaxSsthresh Gauge32, + tcpEStatsStackMinSsthresh Gauge32, + tcpEStatsStackInRecovery INTEGER, + tcpEStatsStackDupAcksIn ZeroBasedCounter32, + tcpEStatsStackSpuriousFrDetected ZeroBasedCounter32, + tcpEStatsStackSpuriousRtoDetected ZeroBasedCounter32, + tcpEStatsStackSoftErrors ZeroBasedCounter32, + tcpEStatsStackSoftErrorReason INTEGER, + tcpEStatsStackSlowStart ZeroBasedCounter32, + tcpEStatsStackCongAvoid ZeroBasedCounter32, + tcpEStatsStackOtherReductions ZeroBasedCounter32, + tcpEStatsStackCongOverCount ZeroBasedCounter32, + tcpEStatsStackFastRetran ZeroBasedCounter32, + tcpEStatsStackSubsequentTimeouts ZeroBasedCounter32, + + + +Mathis, et al. Standards Track [Page 39] + +RFC 4898 TCP Extended Statistics MIB May 2007 + + + tcpEStatsStackCurTimeoutCount Gauge32, + tcpEStatsStackAbruptTimeouts ZeroBasedCounter32, + tcpEStatsStackSACKsRcvd ZeroBasedCounter32, + tcpEStatsStackSACKBlocksRcvd ZeroBasedCounter32, + tcpEStatsStackSendStall ZeroBasedCounter32, + tcpEStatsStackDSACKDups ZeroBasedCounter32, + tcpEStatsStackMaxMSS Gauge32, + tcpEStatsStackMinMSS Gauge32, + tcpEStatsStackSndInitial Unsigned32, + tcpEStatsStackRecInitial Unsigned32, + tcpEStatsStackCurRetxQueue Gauge32, + tcpEStatsStackMaxRetxQueue Gauge32, + tcpEStatsStackCurReasmQueue Gauge32, + tcpEStatsStackMaxReasmQueue Gauge32 + } + + -- + -- The following objects reflect TCP options carried on the + -- SYN or SYN-ACK. These options are used to provide + -- additional protocol parameters or to enable various + -- optional TCP features or algorithms. + -- + -- Except as noted, the TCP protocol does not permit these + -- options to change after the SYN exchange. + -- + + tcpEStatsStackActiveOpen OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "True(1) if the local connection traversed the SYN-SENT + state, else false(2)." + REFERENCE + "RFC 793, Transmission Control Protocol" + ::= { tcpEStatsStackEntry 1 } + + tcpEStatsStackMSSSent OBJECT-TYPE + SYNTAX Unsigned32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value sent in an MSS option, or zero if none." + REFERENCE + "RFC 1122, Requirements for Internet Hosts - Communication + Layers" + ::= { tcpEStatsStackEntry 2 } + + + + +Mathis, et al. Standards Track [Page 40] + +RFC 4898 TCP Extended Statistics MIB May 2007 + + + tcpEStatsStackMSSRcvd OBJECT-TYPE + SYNTAX Unsigned32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value received in an MSS option, or zero if none." + REFERENCE + "RFC 1122, Requirements for Internet Hosts - Communication + Layers" + ::= { tcpEStatsStackEntry 3 } + + tcpEStatsStackWinScaleSent OBJECT-TYPE + SYNTAX Integer32 (-1..14) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value of the transmitted window scale option if one was + sent; otherwise, a value of -1. + + Note that if both tcpEStatsStackWinScaleSent and + tcpEStatsStackWinScaleRcvd are not -1, then Rcv.Wind.Scale + will be the same as this value and used to scale receiver + window announcements from the local host to the remote + host." + REFERENCE + "RFC 1323, TCP Extensions for High Performance" + ::= { tcpEStatsStackEntry 4 } + + tcpEStatsStackWinScaleRcvd OBJECT-TYPE + SYNTAX Integer32 (-1..14) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value of the received window scale option if one was + received; otherwise, a value of -1. + + Note that if both tcpEStatsStackWinScaleSent and + tcpEStatsStackWinScaleRcvd are not -1, then Snd.Wind.Scale + will be the same as this value and used to scale receiver + window announcements from the remote host to the local + host." + REFERENCE + "RFC 1323, TCP Extensions for High Performance" + ::= { tcpEStatsStackEntry 5 } + + tcpEStatsStackTimeStamps OBJECT-TYPE + SYNTAX TcpEStatsNegotiated + MAX-ACCESS read-only + + + +Mathis, et al. Standards Track [Page 41] + +RFC 4898 TCP Extended Statistics MIB May 2007 + + + STATUS current + DESCRIPTION + "Enabled(1) if TCP timestamps have been negotiated on, + selfDisabled(2) if they are disabled or not implemented on + the local host, or peerDisabled(3) if not negotiated by the + remote hosts." + REFERENCE + "RFC 1323, TCP Extensions for High Performance" + ::= { tcpEStatsStackEntry 6 } + + tcpEStatsStackECN OBJECT-TYPE + SYNTAX TcpEStatsNegotiated + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Enabled(1) if Explicit Congestion Notification (ECN) has + been negotiated on, selfDisabled(2) if it is disabled or + not implemented on the local host, or peerDisabled(3) if + not negotiated by the remote hosts." + REFERENCE + "RFC 3168, The Addition of Explicit Congestion Notification + (ECN) to IP" + ::= { tcpEStatsStackEntry 7 } + + tcpEStatsStackWillSendSACK OBJECT-TYPE + SYNTAX TcpEStatsNegotiated + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Enabled(1) if the local host will send SACK options, + selfDisabled(2) if SACK is disabled or not implemented on + the local host, or peerDisabled(3) if the remote host did + not send the SACK-permitted option. + + Note that SACK negotiation is not symmetrical. SACK can + enabled on one side of the connection and not the other." + REFERENCE + "RFC 2018, TCP Selective Acknowledgement Options" + ::= { tcpEStatsStackEntry 8 } + + tcpEStatsStackWillUseSACK OBJECT-TYPE + SYNTAX TcpEStatsNegotiated + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Enabled(1) if the local host will process SACK options, + selfDisabled(2) if SACK is disabled or not implemented on + the local host, or peerDisabled(3) if the remote host sends + + + +Mathis, et al. Standards Track [Page 42] + +RFC 4898 TCP Extended Statistics MIB May 2007 + + + duplicate ACKs without SACK options, or the local host + otherwise decides not to process received SACK options. + + Unlike other TCP options, the remote data receiver cannot + explicitly indicate if it is able to generate SACK options. + When sending data, the local host has to deduce if the + remote receiver is sending SACK options. This object can + transition from Enabled(1) to peerDisabled(3) after the SYN + exchange. + + Note that SACK negotiation is not symmetrical. SACK can + enabled on one side of the connection and not the other." + REFERENCE + "RFC 2018, TCP Selective Acknowledgement Options" + ::= { tcpEStatsStackEntry 9 } + + -- + -- The following two objects reflect the current state of the + -- connection. + -- + + tcpEStatsStackState OBJECT-TYPE + SYNTAX INTEGER { + tcpESStateClosed(1), + tcpESStateListen(2), + tcpESStateSynSent(3), + tcpESStateSynReceived(4), + tcpESStateEstablished(5), + tcpESStateFinWait1(6), + tcpESStateFinWait2(7), + tcpESStateCloseWait(8), + tcpESStateLastAck(9), + tcpESStateClosing(10), + tcpESStateTimeWait(11), + tcpESStateDeleteTcb(12) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "An integer value representing the connection state from the + TCP State Transition Diagram. + + The value listen(2) is included only for parallelism to the + old tcpConnTable, and SHOULD NOT be used because the listen + state in managed by the tcpListenerTable. + + The value DeleteTcb(12) is included only for parallelism to + the tcpConnTable mechanism for terminating connections, + + + +Mathis, et al. Standards Track [Page 43] + +RFC 4898 TCP Extended Statistics MIB May 2007 + + + although this table does not permit writing." + REFERENCE + "RFC 793, Transmission Control Protocol" + ::= { tcpEStatsStackEntry 10 } + + tcpEStatsStackNagle OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "True(1) if the Nagle algorithm is being used, else + false(2)." + REFERENCE + "RFC 1122, Requirements for Internet Hosts - Communication + Layers" + ::= { tcpEStatsStackEntry 11 } + + -- + -- The following objects instrument the overall operation of + -- TCP congestion control and data retransmissions. These + -- instruments are sufficient to fit the actual performance to + -- an updated macroscopic performance model [RFC2581] [Mat97] + -- [Pad98]. + -- + + tcpEStatsStackMaxSsCwnd OBJECT-TYPE + SYNTAX Gauge32 + UNITS "octets" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The maximum congestion window used during Slow Start, in + octets." + REFERENCE + "RFC 2581, TCP Congestion Control" + ::= { tcpEStatsStackEntry 12 } + + tcpEStatsStackMaxCaCwnd OBJECT-TYPE + SYNTAX Gauge32 + UNITS "octets" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The maximum congestion window used during Congestion + Avoidance, in octets." + REFERENCE + "RFC 2581, TCP Congestion Control" + ::= { tcpEStatsStackEntry 13 } + + + +Mathis, et al. Standards Track [Page 44] + +RFC 4898 TCP Extended Statistics MIB May 2007 + + + tcpEStatsStackMaxSsthresh OBJECT-TYPE + SYNTAX Gauge32 + UNITS "octets" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The maximum slow start threshold, excluding the initial + value." + REFERENCE + "RFC 2581, TCP Congestion Control" + ::= { tcpEStatsStackEntry 14 } + + tcpEStatsStackMinSsthresh OBJECT-TYPE + SYNTAX Gauge32 + UNITS "octets" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The minimum slow start threshold." + REFERENCE + "RFC 2581, TCP Congestion Control" + ::= { tcpEStatsStackEntry 15 } + + tcpEStatsStackInRecovery OBJECT-TYPE + SYNTAX INTEGER { + tcpESDataContiguous(1), + tcpESDataUnordered(2), + tcpESDataRecovery(3) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "An integer value representing the state of the loss + recovery for this connection. + + tcpESDataContiguous(1) indicates that the remote receiver + is reporting contiguous data (no duplicate acknowledgments + or SACK options) and that there are no unacknowledged + retransmissions. + + tcpESDataUnordered(2) indicates that the remote receiver is + reporting missing or out-of-order data (e.g., sending + duplicate acknowledgments or SACK options) and that there + are no unacknowledged retransmissions (because the missing + data has not yet been retransmitted). + + tcpESDataRecovery(3) indicates that the sender has + outstanding retransmitted data that is still + + + +Mathis, et al. Standards Track [Page 45] + +RFC 4898 TCP Extended Statistics MIB May 2007 + + + unacknowledged." + REFERENCE + "RFC 2581, TCP Congestion Control" + ::= { tcpEStatsStackEntry 16 } + + tcpEStatsStackDupAcksIn OBJECT-TYPE + SYNTAX ZeroBasedCounter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of duplicate ACKs received." + REFERENCE + "RFC 2581, TCP Congestion Control" + ::= { tcpEStatsStackEntry 17 } + + tcpEStatsStackSpuriousFrDetected OBJECT-TYPE + SYNTAX ZeroBasedCounter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of acknowledgments reporting out-of-order + segments after the Fast Retransmit algorithm has already + retransmitted the segments. (For example as detected by the + Eifel algorithm).'" + REFERENCE + "RFC 3522, The Eifel Detection Algorithm for TCP" + ::= { tcpEStatsStackEntry 18 } + + tcpEStatsStackSpuriousRtoDetected OBJECT-TYPE + SYNTAX ZeroBasedCounter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of acknowledgments reporting segments that have + already been retransmitted due to a Retransmission Timeout." + ::= { tcpEStatsStackEntry 19 } + + -- + -- The following optional objects instrument unusual protocol + -- events that probably indicate implementation problems in + -- the protocol or path. + -- + + tcpEStatsStackSoftErrors OBJECT-TYPE + SYNTAX ZeroBasedCounter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + + + +Mathis, et al. Standards Track [Page 46] + +RFC 4898 TCP Extended Statistics MIB May 2007 + + + "The number of segments that fail various consistency tests + during TCP input processing. Soft errors might cause the + segment to be discarded but some do not. Some of these soft + errors cause the generation of a TCP acknowledgment, while + others are silently discarded." + REFERENCE + "RFC 793, Transmission Control Protocol" + ::= { tcpEStatsStackEntry 21 } + + tcpEStatsStackSoftErrorReason OBJECT-TYPE + SYNTAX INTEGER { + belowDataWindow(1), + aboveDataWindow(2), + belowAckWindow(3), + aboveAckWindow(4), + belowTSWindow(5), + aboveTSWindow(6), + dataCheckSum(7), + otherSoftError(8) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This object identifies which consistency test most recently + failed during TCP input processing. This object SHOULD be + set every time tcpEStatsStackSoftErrors is incremented. The + codes are as follows: + + belowDataWindow(1) - All data in the segment is below + SND.UNA. (Normal for keep-alives and zero window probes). + + aboveDataWindow(2) - Some data in the segment is above + SND.WND. (Indicates an implementation bug or possible + attack). + + belowAckWindow(3) - ACK below SND.UNA. (Indicates that the + return path is reordering ACKs) + + aboveAckWindow(4) - An ACK for data that we have not sent. + (Indicates an implementation bug or possible attack). + + belowTSWindow(5) - TSecr on the segment is older than the + current TS.Recent (Normal for the rare case where PAWS + detects data reordered by the network). + + aboveTSWindow(6) - TSecr on the segment is newer than the + current TS.Recent. (Indicates an implementation bug or + possible attack). + + + +Mathis, et al. Standards Track [Page 47] + +RFC 4898 TCP Extended Statistics MIB May 2007 + + + + dataCheckSum(7) - Incorrect checksum. Note that this value + is intrinsically fragile, because the header fields used to + identify the connection may have been corrupted. + + otherSoftError(8) - All other soft errors not listed + above." + REFERENCE + "RFC 793, Transmission Control Protocol" + ::= { tcpEStatsStackEntry 22 } + + -- + -- The following optional objects expose the detailed + -- operation of the congestion control algorithms. + -- + + tcpEStatsStackSlowStart OBJECT-TYPE + SYNTAX ZeroBasedCounter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of times the congestion window has been + increased by the Slow Start algorithm." + REFERENCE + "RFC 2581, TCP Congestion Control" + ::= { tcpEStatsStackEntry 23 } + + tcpEStatsStackCongAvoid OBJECT-TYPE + SYNTAX ZeroBasedCounter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of times the congestion window has been + increased by the Congestion Avoidance algorithm." + REFERENCE + "RFC 2581, TCP Congestion Control" + ::= { tcpEStatsStackEntry 24 } + + tcpEStatsStackOtherReductions OBJECT-TYPE + SYNTAX ZeroBasedCounter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of congestion window reductions made as a result + of anything other than AIMD congestion control algorithms. + Examples of non-multiplicative window reductions include + Congestion Window Validation [RFC2861] and experimental + algorithms such as Vegas [Bra94]. + + + +Mathis, et al. Standards Track [Page 48] + +RFC 4898 TCP Extended Statistics MIB May 2007 + + + + All window reductions MUST be counted as either + tcpEStatsPerfCongSignals or tcpEStatsStackOtherReductions." + REFERENCE + "RFC 2861, TCP Congestion Window Validation" + ::= { tcpEStatsStackEntry 25 } + + tcpEStatsStackCongOverCount OBJECT-TYPE + SYNTAX ZeroBasedCounter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of congestion events that were 'backed out' of + the congestion control state machine such that the + congestion window was restored to a prior value. This can + happen due to the Eifel algorithm [RFC3522] or other + algorithms that can be used to detect and cancel spurious + invocations of the Fast Retransmit Algorithm. + + Although it may be feasible to undo the effects of spurious + invocation of the Fast Retransmit congestion events cannot + easily be backed out of tcpEStatsPerfCongSignals and + tcpEStatsPathPreCongSumCwnd, etc." + REFERENCE + "RFC 3522, The Eifel Detection Algorithm for TCP" + ::= { tcpEStatsStackEntry 26 } + + tcpEStatsStackFastRetran OBJECT-TYPE + SYNTAX ZeroBasedCounter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of invocations of the Fast Retransmit algorithm." + REFERENCE + "RFC 2581, TCP Congestion Control" + ::= { tcpEStatsStackEntry 27 } + + tcpEStatsStackSubsequentTimeouts OBJECT-TYPE + SYNTAX ZeroBasedCounter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of times the retransmit timeout has expired after + the RTO has been doubled. See Section 5.5 of RFC 2988." + REFERENCE + "RFC 2988, Computing TCP's Retransmission Timer" + ::= { tcpEStatsStackEntry 28 } + + + + +Mathis, et al. Standards Track [Page 49] + +RFC 4898 TCP Extended Statistics MIB May 2007 + + + tcpEStatsStackCurTimeoutCount OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current number of times the retransmit timeout has + expired without receiving an acknowledgment for new data. + tcpEStatsStackCurTimeoutCount is reset to zero when new + data is acknowledged and incremented for each invocation of + Section 5.5 of RFC 2988." + REFERENCE + "RFC 2988, Computing TCP's Retransmission Timer" + ::= { tcpEStatsStackEntry 29 } + + tcpEStatsStackAbruptTimeouts OBJECT-TYPE + SYNTAX ZeroBasedCounter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of timeouts that occurred without any + immediately preceding duplicate acknowledgments or other + indications of congestion. Abrupt Timeouts indicate that + the path lost an entire window of data or acknowledgments. + + Timeouts that are preceded by duplicate acknowledgments or + other congestion signals (e.g., ECN) are not counted as + abrupt, and might have been avoided by a more sophisticated + Fast Retransmit algorithm." + REFERENCE + "RFC 2581, TCP Congestion Control" + ::= { tcpEStatsStackEntry 30 } + + tcpEStatsStackSACKsRcvd OBJECT-TYPE + SYNTAX ZeroBasedCounter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SACK options received." + REFERENCE + "RFC 2018, TCP Selective Acknowledgement Options" + ::= { tcpEStatsStackEntry 31 } + + tcpEStatsStackSACKBlocksRcvd OBJECT-TYPE + SYNTAX ZeroBasedCounter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SACK blocks received (within SACK options)." + + + +Mathis, et al. Standards Track [Page 50] + +RFC 4898 TCP Extended Statistics MIB May 2007 + + + REFERENCE + "RFC 2018, TCP Selective Acknowledgement Options" + ::= { tcpEStatsStackEntry 32 } + + tcpEStatsStackSendStall OBJECT-TYPE + SYNTAX ZeroBasedCounter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of interface stalls or other sender local + resource limitations that are treated as congestion + signals." + ::= { tcpEStatsStackEntry 33 } + + tcpEStatsStackDSACKDups OBJECT-TYPE + SYNTAX ZeroBasedCounter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of duplicate segments reported to the local host + by D-SACK blocks." + REFERENCE + "RFC 2883, An Extension to the Selective Acknowledgement + (SACK) Option for TCP" + ::= { tcpEStatsStackEntry 34 } + + -- + -- The following optional objects instrument path MTU + -- discovery. + -- + + tcpEStatsStackMaxMSS OBJECT-TYPE + SYNTAX Gauge32 + UNITS "octets" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The maximum MSS, in octets." + REFERENCE + "RFC 1191, Path MTU discovery" + ::= { tcpEStatsStackEntry 35 } + + tcpEStatsStackMinMSS OBJECT-TYPE + SYNTAX Gauge32 + UNITS "octets" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + + + +Mathis, et al. Standards Track [Page 51] + +RFC 4898 TCP Extended Statistics MIB May 2007 + + + "The minimum MSS, in octets." + REFERENCE + "RFC 1191, Path MTU discovery" + ::= { tcpEStatsStackEntry 36 } + + -- + -- The following optional initial value objects are useful for + -- conformance testing instruments on application progress and + -- consumed network resources. + -- + + tcpEStatsStackSndInitial OBJECT-TYPE + SYNTAX Unsigned32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Initial send sequence number. Note that by definition + tcpEStatsStackSndInitial never changes for a given + connection." + REFERENCE + "RFC 793, Transmission Control Protocol" + ::= { tcpEStatsStackEntry 37 } + + tcpEStatsStackRecInitial OBJECT-TYPE + SYNTAX Unsigned32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Initial receive sequence number. Note that by definition + tcpEStatsStackRecInitial never changes for a given + connection." + REFERENCE + "RFC 793, Transmission Control Protocol" + ::= { tcpEStatsStackEntry 38 } + + -- + -- The following optional objects instrument the senders + -- buffer usage, including any buffering in the application + -- interface to TCP and the retransmit queue. All 'buffer + -- memory' instruments are assumed to include OS data + -- structure overhead. + -- + + tcpEStatsStackCurRetxQueue OBJECT-TYPE + SYNTAX Gauge32 + UNITS "octets" + MAX-ACCESS read-only + STATUS current + + + +Mathis, et al. Standards Track [Page 52] + +RFC 4898 TCP Extended Statistics MIB May 2007 + + + DESCRIPTION + "The current number of octets of data occupying the + retransmit queue." + ::= { tcpEStatsStackEntry 39 } + + tcpEStatsStackMaxRetxQueue OBJECT-TYPE + SYNTAX Gauge32 + UNITS "octets" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The maximum number of octets of data occupying the + retransmit queue." + ::= { tcpEStatsStackEntry 40 } + + tcpEStatsStackCurReasmQueue OBJECT-TYPE + SYNTAX Gauge32 + UNITS "octets" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current number of octets of sequence space spanned by + the reassembly queue. This is generally the difference + between rcv.nxt and the sequence number of the right most + edge of the reassembly queue." + ::= { tcpEStatsStackEntry 41 } + + tcpEStatsStackMaxReasmQueue OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The maximum value of tcpEStatsStackCurReasmQueue" + ::= { tcpEStatsStackEntry 42 } + + -- ================================================================ + -- + -- Statistics for diagnosing interactions between + -- applications and TCP. + -- + + tcpEStatsAppTable OBJECT-TYPE + SYNTAX SEQUENCE OF TcpEStatsAppEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "This table contains objects that are useful for + determining if the application using TCP is + + + +Mathis, et al. Standards Track [Page 53] + +RFC 4898 TCP Extended Statistics MIB May 2007 + + + limiting TCP performance. + + Entries are retained in this table for the number of + seconds indicated by the tcpEStatsConnTableLatency + object, after the TCP connection first enters the closed + state." + ::= { tcpEStats 6 } + + tcpEStatsAppEntry OBJECT-TYPE + SYNTAX TcpEStatsAppEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Each entry in this table has information about the + characteristics of each active and recently closed TCP + connection." + INDEX { tcpEStatsConnectIndex } + ::= { tcpEStatsAppTable 1 } + + TcpEStatsAppEntry ::= SEQUENCE { + + tcpEStatsAppSndUna Counter32, + tcpEStatsAppSndNxt Unsigned32, + tcpEStatsAppSndMax Counter32, + tcpEStatsAppThruOctetsAcked ZeroBasedCounter32, + tcpEStatsAppHCThruOctetsAcked ZeroBasedCounter64, + tcpEStatsAppRcvNxt Counter32, + tcpEStatsAppThruOctetsReceived ZeroBasedCounter32, + tcpEStatsAppHCThruOctetsReceived ZeroBasedCounter64, + tcpEStatsAppCurAppWQueue Gauge32, + tcpEStatsAppMaxAppWQueue Gauge32, + tcpEStatsAppCurAppRQueue Gauge32, + tcpEStatsAppMaxAppRQueue Gauge32 + } + + -- + -- The following objects provide throughput statistics for the + -- connection including sequence numbers and elapsed + -- application data. These permit direct observation of the + -- applications progress, in terms of elapsed data delivery + -- and elapsed time. + -- + + tcpEStatsAppSndUna OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + + + +Mathis, et al. Standards Track [Page 54] + +RFC 4898 TCP Extended Statistics MIB May 2007 + + + "The value of SND.UNA, the oldest unacknowledged sequence + number. + + Note that SND.UNA is a TCP state variable that is congruent + to Counter32 semantics." + REFERENCE + "RFC 793, Transmission Control Protocol" + ::= { tcpEStatsAppEntry 1 } + + tcpEStatsAppSndNxt OBJECT-TYPE + SYNTAX Unsigned32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value of SND.NXT, the next sequence number to be sent. + Note that tcpEStatsAppSndNxt is not monotonic (and thus not + a counter) because TCP sometimes retransmits lost data by + pulling tcpEStatsAppSndNxt back to the missing data." + REFERENCE + "RFC 793, Transmission Control Protocol" + ::= { tcpEStatsAppEntry 2 } + + tcpEStatsAppSndMax OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The farthest forward (right most or largest) SND.NXT value. + Note that this will be equal to tcpEStatsAppSndNxt except + when tcpEStatsAppSndNxt is pulled back during recovery." + REFERENCE + "RFC 793, Transmission Control Protocol" + ::= { tcpEStatsAppEntry 3 } + + tcpEStatsAppThruOctetsAcked OBJECT-TYPE + SYNTAX ZeroBasedCounter32 + UNITS "octets" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of octets for which cumulative acknowledgments + have been received. Note that this will be the sum of + changes to tcpEStatsAppSndUna." + ::= { tcpEStatsAppEntry 4 } + + tcpEStatsAppHCThruOctetsAcked OBJECT-TYPE + SYNTAX ZeroBasedCounter64 + UNITS "octets" + + + +Mathis, et al. Standards Track [Page 55] + +RFC 4898 TCP Extended Statistics MIB May 2007 + + + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of octets for which cumulative acknowledgments + have been received, on systems that can receive more than + 10 million bits per second. Note that this will be the sum + of changes in tcpEStatsAppSndUna." + ::= { tcpEStatsAppEntry 5 } + + tcpEStatsAppRcvNxt OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value of RCV.NXT. The next sequence number expected on + an incoming segment, and the left or lower edge of the + receive window. + + Note that RCV.NXT is a TCP state variable that is congruent + to Counter32 semantics." + REFERENCE + "RFC 793, Transmission Control Protocol" + ::= { tcpEStatsAppEntry 6 } + + tcpEStatsAppThruOctetsReceived OBJECT-TYPE + SYNTAX ZeroBasedCounter32 + UNITS "octets" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of octets for which cumulative acknowledgments + have been sent. Note that this will be the sum of changes + to tcpEStatsAppRcvNxt." + ::= { tcpEStatsAppEntry 7 } + + tcpEStatsAppHCThruOctetsReceived OBJECT-TYPE + SYNTAX ZeroBasedCounter64 + UNITS "octets" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of octets for which cumulative acknowledgments + have been sent, on systems that can transmit more than 10 + million bits per second. Note that this will be the sum of + changes in tcpEStatsAppRcvNxt." + ::= { tcpEStatsAppEntry 8 } + + tcpEStatsAppCurAppWQueue OBJECT-TYPE + + + +Mathis, et al. Standards Track [Page 56] + +RFC 4898 TCP Extended Statistics MIB May 2007 + + + SYNTAX Gauge32 + UNITS "octets" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current number of octets of application data buffered + by TCP, pending first transmission, i.e., to the left of + SND.NXT or SndMax. This data will generally be transmitted + (and SND.NXT advanced to the left) as soon as there is an + available congestion window (cwnd) or receiver window + (rwin). This is the amount of data readily available for + transmission, without scheduling the application. TCP + performance may suffer if there is insufficient queued + write data." + ::= { tcpEStatsAppEntry 11 } + + tcpEStatsAppMaxAppWQueue OBJECT-TYPE + SYNTAX Gauge32 + UNITS "octets" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The maximum number of octets of application data buffered + by TCP, pending first transmission. This is the maximum + value of tcpEStatsAppCurAppWQueue. This pair of objects can + be used to determine if insufficient queued data is steady + state (suggesting insufficient queue space) or transient + (suggesting insufficient application performance or + excessive CPU load or scheduler latency)." + ::= { tcpEStatsAppEntry 12 } + + tcpEStatsAppCurAppRQueue OBJECT-TYPE + SYNTAX Gauge32 + UNITS "octets" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current number of octets of application data that has + been acknowledged by TCP but not yet delivered to the + application." + ::= { tcpEStatsAppEntry 13 } + + tcpEStatsAppMaxAppRQueue OBJECT-TYPE + SYNTAX Gauge32 + UNITS "octets" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + + + +Mathis, et al. Standards Track [Page 57] + +RFC 4898 TCP Extended Statistics MIB May 2007 + + + "The maximum number of octets of application data that has + been acknowledged by TCP but not yet delivered to the + application." + ::= { tcpEStatsAppEntry 14 } + + -- ================================================================ + -- + -- Controls for Tuning TCP + -- + + tcpEStatsTuneTable OBJECT-TYPE + SYNTAX SEQUENCE OF TcpEStatsTuneEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "This table contains per-connection controls that can + be used to work around a number of common problems that + plague TCP over some paths. All can be characterized as + limiting the growth of the congestion window so as to + prevent TCP from overwhelming some component in the + path. + + Entries are retained in this table for the number of + seconds indicated by the tcpEStatsConnTableLatency + object, after the TCP connection first enters the closed + state." + ::= { tcpEStats 7 } + + tcpEStatsTuneEntry OBJECT-TYPE + SYNTAX TcpEStatsTuneEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Each entry in this table is a control that can be used to + place limits on each active TCP connection." + INDEX { tcpEStatsConnectIndex } + ::= { tcpEStatsTuneTable 1 } + + TcpEStatsTuneEntry ::= SEQUENCE { + + tcpEStatsTuneLimCwnd Unsigned32, + tcpEStatsTuneLimSsthresh Unsigned32, + tcpEStatsTuneLimRwin Unsigned32, + tcpEStatsTuneLimMSS Unsigned32 + } + + tcpEStatsTuneLimCwnd OBJECT-TYPE + SYNTAX Unsigned32 + + + +Mathis, et al. Standards Track [Page 58] + +RFC 4898 TCP Extended Statistics MIB May 2007 + + + UNITS "octets" + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "A control to set the maximum congestion window that may be + used, in octets." + REFERENCE + "RFC 2581, TCP Congestion Control" + ::= { tcpEStatsTuneEntry 1 } + + tcpEStatsTuneLimSsthresh OBJECT-TYPE + SYNTAX Unsigned32 + UNITS "octets" + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "A control to limit the maximum queue space (in octets) that + this TCP connection is likely to occupy during slowstart. + + It can be implemented with the algorithm described in + RFC 3742 by setting the max_ssthresh parameter to twice + tcpEStatsTuneLimSsthresh. + + This algorithm can be used to overcome some TCP performance + problems over network paths that do not have sufficient + buffering to withstand the bursts normally present during + slowstart." + REFERENCE + "RFC 3742, Limited Slow-Start for TCP with Large Congestion + Windows" + ::= { tcpEStatsTuneEntry 2 } + + tcpEStatsTuneLimRwin OBJECT-TYPE + SYNTAX Unsigned32 + UNITS "octets" + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "A control to set the maximum window advertisement that may + be sent, in octets." + REFERENCE + "RFC 793, Transmission Control Protocol" + ::= { tcpEStatsTuneEntry 3 } + + tcpEStatsTuneLimMSS OBJECT-TYPE + SYNTAX Unsigned32 + UNITS "octets" + MAX-ACCESS read-write + + + +Mathis, et al. Standards Track [Page 59] + +RFC 4898 TCP Extended Statistics MIB May 2007 + + + STATUS current + DESCRIPTION + "A control to limit the maximum segment size in octets, that + this TCP connection can use." + REFERENCE + "RFC 1191, Path MTU discovery" + ::= { tcpEStatsTuneEntry 4 } + + -- ================================================================ + -- + -- TCP Extended Statistics Notifications Group + -- + + tcpEStatsEstablishNotification NOTIFICATION-TYPE + OBJECTS { + tcpEStatsConnectIndex + } + STATUS current + DESCRIPTION + "The indicated connection has been accepted + (or alternatively entered the established state)." + ::= { tcpEStatsNotifications 1 } + + tcpEStatsCloseNotification NOTIFICATION-TYPE + OBJECTS { + tcpEStatsConnectIndex + } + STATUS current + DESCRIPTION + "The indicated connection has left the + established state" + ::= { tcpEStatsNotifications 2 } + + -- ================================================================ + -- + -- Conformance Definitions + -- + + tcpEStatsCompliances OBJECT IDENTIFIER + ::= { tcpEStatsConformance 1 } + tcpEStatsGroups OBJECT IDENTIFIER + ::= { tcpEStatsConformance 2 } + + -- + -- Compliance Statements + -- + + tcpEStatsCompliance MODULE-COMPLIANCE + + + +Mathis, et al. Standards Track [Page 60] + +RFC 4898 TCP Extended Statistics MIB May 2007 + + + STATUS current + DESCRIPTION + "Compliance statement for all systems that implement TCP + extended statistics." + MODULE -- this module + MANDATORY-GROUPS { + tcpEStatsListenerGroup, + tcpEStatsConnectIdGroup, + tcpEStatsPerfGroup, + tcpEStatsPathGroup, + tcpEStatsStackGroup, + tcpEStatsAppGroup + } + GROUP tcpEStatsListenerHCGroup + DESCRIPTION + "This group is mandatory for all systems that can + wrap the values of the 32-bit counters in + tcpEStatsListenerGroup in less than one hour." + + GROUP tcpEStatsPerfOptionalGroup + DESCRIPTION + "This group is optional for all systems." + + GROUP tcpEStatsPerfHCGroup + DESCRIPTION + "This group is mandatory for systems that can + wrap the values of the 32-bit counters in + tcpEStatsPerfGroup in less than one hour. + + Note that any system that can attain 10 Mb/s + can potentially wrap 32-Bit Octet counters in + under one hour." + + GROUP tcpEStatsPathOptionalGroup + DESCRIPTION + "This group is optional for all systems." + + GROUP tcpEStatsPathHCGroup + DESCRIPTION + "This group is mandatory for systems that can + wrap the values of the 32-bit counters in + tcpEStatsPathGroup in less than one hour. + + Note that any system that can attain 10 Mb/s + can potentially wrap 32-Bit Octet counters in + under one hour." + + GROUP tcpEStatsStackOptionalGroup + + + +Mathis, et al. Standards Track [Page 61] + +RFC 4898 TCP Extended Statistics MIB May 2007 + + + DESCRIPTION + "This group is optional for all systems." + + GROUP tcpEStatsAppHCGroup + DESCRIPTION + "This group is mandatory for systems that can + wrap the values of the 32-bit counters in + tcpEStatsStackGroup in less than one hour. + + Note that any system that can attain 10 Mb/s + can potentially wrap 32-Bit Octet counters in + under one hour." + + GROUP tcpEStatsAppOptionalGroup + DESCRIPTION + "This group is optional for all systems." + + GROUP tcpEStatsTuneOptionalGroup + DESCRIPTION + "This group is optional for all systems." + + GROUP tcpEStatsNotificationsGroup + DESCRIPTION + "This group is optional for all systems." + + GROUP tcpEStatsNotificationsCtlGroup + DESCRIPTION + "This group is mandatory for systems that include the + tcpEStatsNotificationGroup." + + ::= { tcpEStatsCompliances 1 } + + -- ================================================================ + -- + -- Units of Conformance + -- + tcpEStatsListenerGroup OBJECT-GROUP + OBJECTS { + tcpEStatsListenerTableLastChange, + tcpEStatsListenerStartTime, + tcpEStatsListenerSynRcvd, + tcpEStatsListenerInitial, + tcpEStatsListenerEstablished, + tcpEStatsListenerAccepted, + tcpEStatsListenerExceedBacklog, + tcpEStatsListenerCurConns, + tcpEStatsListenerMaxBacklog, + tcpEStatsListenerCurBacklog, + + + +Mathis, et al. Standards Track [Page 62] + +RFC 4898 TCP Extended Statistics MIB May 2007 + + + tcpEStatsListenerCurEstabBacklog + } + STATUS current + DESCRIPTION + "The tcpEStatsListener group includes objects that + provide valuable statistics and debugging + information for TCP Listeners." + ::= { tcpEStatsGroups 1 } + + tcpEStatsListenerHCGroup OBJECT-GROUP + OBJECTS { + tcpEStatsListenerHCSynRcvd, + tcpEStatsListenerHCInitial, + tcpEStatsListenerHCEstablished, + tcpEStatsListenerHCAccepted, + tcpEStatsListenerHCExceedBacklog + } + STATUS current + DESCRIPTION + "The tcpEStatsListenerHC group includes 64-bit + counters in tcpEStatsListenerTable." + ::= { tcpEStatsGroups 2 } + + tcpEStatsConnectIdGroup OBJECT-GROUP + OBJECTS { + tcpEStatsConnTableLatency, + tcpEStatsConnectIndex + } + STATUS current + DESCRIPTION + "The tcpEStatsConnectId group includes objects that + identify TCP connections and control how long TCP + connection entries are retained in the tables." + ::= { tcpEStatsGroups 3 } + + tcpEStatsPerfGroup OBJECT-GROUP + OBJECTS { + tcpEStatsPerfSegsOut, tcpEStatsPerfDataSegsOut, + tcpEStatsPerfDataOctetsOut, + tcpEStatsPerfSegsRetrans, + tcpEStatsPerfOctetsRetrans, tcpEStatsPerfSegsIn, + tcpEStatsPerfDataSegsIn, + tcpEStatsPerfDataOctetsIn, + tcpEStatsPerfElapsedSecs, + tcpEStatsPerfElapsedMicroSecs, + tcpEStatsPerfStartTimeStamp, tcpEStatsPerfCurMSS, + tcpEStatsPerfPipeSize, tcpEStatsPerfMaxPipeSize, + tcpEStatsPerfSmoothedRTT, tcpEStatsPerfCurRTO, + + + +Mathis, et al. Standards Track [Page 63] + +RFC 4898 TCP Extended Statistics MIB May 2007 + + + tcpEStatsPerfCongSignals, tcpEStatsPerfCurCwnd, + tcpEStatsPerfCurSsthresh, tcpEStatsPerfTimeouts, + tcpEStatsPerfCurRwinSent, + tcpEStatsPerfMaxRwinSent, + tcpEStatsPerfZeroRwinSent, + tcpEStatsPerfCurRwinRcvd, + tcpEStatsPerfMaxRwinRcvd, + tcpEStatsPerfZeroRwinRcvd + } + STATUS current + DESCRIPTION + "The tcpEStatsPerf group includes those objects that + provide basic performance data for a TCP connection." + ::= { tcpEStatsGroups 4 } + + tcpEStatsPerfOptionalGroup OBJECT-GROUP + OBJECTS { + tcpEStatsPerfSndLimTransRwin, + tcpEStatsPerfSndLimTransCwnd, + tcpEStatsPerfSndLimTransSnd, + tcpEStatsPerfSndLimTimeRwin, + tcpEStatsPerfSndLimTimeCwnd, + tcpEStatsPerfSndLimTimeSnd + } + STATUS current + DESCRIPTION + "The tcpEStatsPerf group includes those objects that + provide basic performance data for a TCP connection." + ::= { tcpEStatsGroups 5 } + + tcpEStatsPerfHCGroup OBJECT-GROUP + OBJECTS { + tcpEStatsPerfHCDataOctetsOut, + tcpEStatsPerfHCDataOctetsIn + } + STATUS current + DESCRIPTION + "The tcpEStatsPerfHC group includes 64-bit + counters in the tcpEStatsPerfTable." + ::= { tcpEStatsGroups 6 } + + + tcpEStatsPathGroup OBJECT-GROUP + OBJECTS { + tcpEStatsControlPath, + tcpEStatsPathRetranThresh, + tcpEStatsPathNonRecovDAEpisodes, + tcpEStatsPathSumOctetsReordered, + + + +Mathis, et al. Standards Track [Page 64] + +RFC 4898 TCP Extended Statistics MIB May 2007 + + + tcpEStatsPathNonRecovDA + } + STATUS current + DESCRIPTION + "The tcpEStatsPath group includes objects that + control the creation of the tcpEStatsPathTable, + and provide information about the path + for each TCP connection." + ::= { tcpEStatsGroups 7 } + + tcpEStatsPathOptionalGroup OBJECT-GROUP + OBJECTS { + tcpEStatsPathSampleRTT, tcpEStatsPathRTTVar, + tcpEStatsPathMaxRTT, tcpEStatsPathMinRTT, + tcpEStatsPathSumRTT, tcpEStatsPathCountRTT, + tcpEStatsPathMaxRTO, tcpEStatsPathMinRTO, + tcpEStatsPathIpTtl, tcpEStatsPathIpTosIn, + tcpEStatsPathIpTosOut, + tcpEStatsPathPreCongSumCwnd, + tcpEStatsPathPreCongSumRTT, + tcpEStatsPathPostCongSumRTT, + tcpEStatsPathPostCongCountRTT, + tcpEStatsPathECNsignals, + tcpEStatsPathDupAckEpisodes, tcpEStatsPathRcvRTT, + tcpEStatsPathDupAcksOut, tcpEStatsPathCERcvd, + tcpEStatsPathECESent + } + STATUS current + DESCRIPTION + "The tcpEStatsPath group includes objects that + provide additional information about the path + for each TCP connection." + ::= { tcpEStatsGroups 8 } + + tcpEStatsPathHCGroup OBJECT-GROUP + OBJECTS { + tcpEStatsPathHCSumRTT + } + STATUS current + DESCRIPTION + "The tcpEStatsPathHC group includes 64-bit + counters in the tcpEStatsPathTable." + ::= { tcpEStatsGroups 9 } + + tcpEStatsStackGroup OBJECT-GROUP + OBJECTS { + tcpEStatsControlStack, + tcpEStatsStackActiveOpen, tcpEStatsStackMSSSent, + + + +Mathis, et al. Standards Track [Page 65] + +RFC 4898 TCP Extended Statistics MIB May 2007 + + + tcpEStatsStackMSSRcvd, tcpEStatsStackWinScaleSent, + tcpEStatsStackWinScaleRcvd, + tcpEStatsStackTimeStamps, tcpEStatsStackECN, + tcpEStatsStackWillSendSACK, + tcpEStatsStackWillUseSACK, tcpEStatsStackState, + tcpEStatsStackNagle, tcpEStatsStackMaxSsCwnd, + tcpEStatsStackMaxCaCwnd, + tcpEStatsStackMaxSsthresh, + tcpEStatsStackMinSsthresh, + tcpEStatsStackInRecovery, tcpEStatsStackDupAcksIn, + tcpEStatsStackSpuriousFrDetected, + tcpEStatsStackSpuriousRtoDetected + } + STATUS current + DESCRIPTION + "The tcpEStatsConnState group includes objects that + control the creation of the tcpEStatsStackTable, + and provide information about the operation of + algorithms used within TCP." + ::= { tcpEStatsGroups 10 } + + tcpEStatsStackOptionalGroup OBJECT-GROUP + OBJECTS { + tcpEStatsStackSoftErrors, + tcpEStatsStackSoftErrorReason, + tcpEStatsStackSlowStart, tcpEStatsStackCongAvoid, + tcpEStatsStackOtherReductions, + tcpEStatsStackCongOverCount, + tcpEStatsStackFastRetran, + tcpEStatsStackSubsequentTimeouts, + tcpEStatsStackCurTimeoutCount, + tcpEStatsStackAbruptTimeouts, + tcpEStatsStackSACKsRcvd, + tcpEStatsStackSACKBlocksRcvd, + tcpEStatsStackSendStall, tcpEStatsStackDSACKDups, + tcpEStatsStackMaxMSS, tcpEStatsStackMinMSS, + tcpEStatsStackSndInitial, + tcpEStatsStackRecInitial, + tcpEStatsStackCurRetxQueue, + tcpEStatsStackMaxRetxQueue, + tcpEStatsStackCurReasmQueue, + tcpEStatsStackMaxReasmQueue + } + STATUS current + DESCRIPTION + "The tcpEStatsConnState group includes objects that + provide additional information about the operation of + algorithms used within TCP." + + + +Mathis, et al. Standards Track [Page 66] + +RFC 4898 TCP Extended Statistics MIB May 2007 + + + ::= { tcpEStatsGroups 11 } + + tcpEStatsAppGroup OBJECT-GROUP + OBJECTS { + tcpEStatsControlApp, + tcpEStatsAppSndUna, tcpEStatsAppSndNxt, + tcpEStatsAppSndMax, tcpEStatsAppThruOctetsAcked, + tcpEStatsAppRcvNxt, + tcpEStatsAppThruOctetsReceived + } + STATUS current + DESCRIPTION + "The tcpEStatsConnState group includes objects that + control the creation of the tcpEStatsAppTable, + and provide information about the operation of + algorithms used within TCP." + ::= { tcpEStatsGroups 12 } + + tcpEStatsAppHCGroup OBJECT-GROUP + OBJECTS { + tcpEStatsAppHCThruOctetsAcked, + tcpEStatsAppHCThruOctetsReceived + } + STATUS current + DESCRIPTION + "The tcpEStatsStackHC group includes 64-bit + counters in the tcpEStatsStackTable." + ::= { tcpEStatsGroups 13 } + + tcpEStatsAppOptionalGroup OBJECT-GROUP + OBJECTS { + tcpEStatsAppCurAppWQueue, + tcpEStatsAppMaxAppWQueue, + tcpEStatsAppCurAppRQueue, + tcpEStatsAppMaxAppRQueue + } + STATUS current + DESCRIPTION + "The tcpEStatsConnState group includes objects that + provide additional information about how applications + are interacting with each TCP connection." + ::= { tcpEStatsGroups 14 } + + tcpEStatsTuneOptionalGroup OBJECT-GROUP + OBJECTS { + tcpEStatsControlTune, + tcpEStatsTuneLimCwnd, tcpEStatsTuneLimSsthresh, + tcpEStatsTuneLimRwin, tcpEStatsTuneLimMSS + + + +Mathis, et al. Standards Track [Page 67] + +RFC 4898 TCP Extended Statistics MIB May 2007 + + + } + STATUS current + DESCRIPTION + "The tcpEStatsConnState group includes objects that + control the creation of the tcpEStatsConnectionTable, + which can be used to set tuning parameters + for each TCP connection." + ::= { tcpEStatsGroups 15 } + + tcpEStatsNotificationsGroup NOTIFICATION-GROUP + NOTIFICATIONS { + tcpEStatsEstablishNotification, + tcpEStatsCloseNotification + } + STATUS current + DESCRIPTION + "Notifications sent by a TCP extended statistics agent." + ::= { tcpEStatsGroups 16 } + + tcpEStatsNotificationsCtlGroup OBJECT-GROUP + OBJECTS { + tcpEStatsControlNotify + } + STATUS current + DESCRIPTION + "The tcpEStatsNotificationsCtl group includes the + object that controls the creation of the events + in the tcpEStatsNotificationsGroup." + ::= { tcpEStatsGroups 17 } + + END + + + + + + + + + + + + + + + + + + + + +Mathis, et al. Standards Track [Page 68] + +RFC 4898 TCP Extended Statistics MIB May 2007 + + +5. Security Considerations + + There are a number of management objects defined in this MIB module + with a MAX-ACCESS clause of read-write and/or read-create. Such + objects may be considered sensitive or vulnerable in some network + environments. The support for SET operations in a non-secure + environment without proper protection can have a negative effect on + network operations. These are the tables and objects and their + sensitivity/vulnerability: + + * Changing tcpEStatsConnTableLatency or any of the control objects + in the tcpEStatsControl group (tcpEStatsControlPath, + tcpEStatsControlStack, tcpEStatsControlApp, tcpEStatsControlTune) + may affect the correctness of other management applications + accessing this MIB. Generally, local policy should only permit + limited write access to these controls (e.g., only by one + management station or only during system configuration). + + * The objects in the tcpEStatsControlTune group + (tcpEStatsTuneLimCwnd, tcpEStatsTuneLimSsthresh, + tcpEStatsTuneLimRwin) can be used to limit resources consumed by + TCP connections or to limit TCP throughput. An attacker might + manipulate these objects to reduce performance to levels below the + minimum acceptable for a particular application. + + Some of the readable objects in this MIB module (i.e., objects with a + MAX-ACCESS other than not-accessible) may be considered sensitive or + vulnerable in some network environments. It is thus important to + control even GET and/or NOTIFY access to these objects and possibly + to even encrypt the values of these objects when sending them over + the network via SNMP. These are the tables and objects and their + sensitivity/vulnerability: + + * All objects which expose TCP sequence numbers (tcpEStatsAppSndUna, + tcpEStatsAppSndNxt, tcpEStatsAppSndMax, tcpEStatsStackSndInitial, + tcpEStatsAppRcvNxt, and tcpEStatsStackRecInitial) might make it + easier for an attacker to forge in sequence TCP segments to + disrupt TCP connections. + + * Nearly all objects in this (or any other) MIB may be used to + estimate traffic volumes, which may reveal unanticipated + information about an organization to the outside world. + + SNMP versions prior to SNMPv3 did not include adequate security. + Even if the network itself is secure (for example by using IPsec), + even then, there is no control as to who on the secure network is + allowed to access and GET/SET (read/change/create/delete) the objects + in this MIB module. + + + +Mathis, et al. Standards Track [Page 69] + +RFC 4898 TCP Extended Statistics MIB May 2007 + + + It is RECOMMENDED that implementers consider the security features as + provided by the SNMPv3 framework (see [RFC3410], section 8), + including full support for the SNMPv3 cryptographic mechanisms (for + authentication and privacy). + + Further, deployment of SNMP versions prior to SNMPv3 is NOT + RECOMMENDED. Instead, it is RECOMMENDED to deploy SNMPv3 and to + enable cryptographic security. It is then a customer/operator + responsibility to ensure that the SNMP entity giving access to an + instance of this MIB module is properly configured to give access to + the objects only to those principals (users) that have legitimate + rights to indeed GET or SET (change/create/delete) them. + +6. IANA Considerations + + The MIB module in this document uses the following IANA-assigned + OBJECT IDENTIFIER values recorded in the SMI Numbers registry: + + Descriptor OBJECT IDENTIFIER value + ------------ ----------------------- + tcpEStatsMIB { mib-2 156 } + +7. Normative References + + [RFC791] Postel, J., "Internet Protocol", STD 5, RFC 791, September + 1981. + + [RFC793] Postel, J., "Transmission Control Protocol", STD 7, RFC + 793, September 1981. + + [RFC1122] Braden, R., Ed., "Requirements for Internet Hosts - + Communication Layers", STD 3, RFC 1122, October 1989. + + [RFC1191] Mogul, J. and S. Deering, "Path MTU discovery", RFC 1191, + November 1990. + + [RFC1323] Jacobson, V., Braden, R., and D. Borman, "TCP Extensions + for High Performance", RFC 1323, May 1992. + + [RFC2018] Mathis, M., Mahdavi, J., Floyd, S., and A. Romanow, "TCP + Selective Acknowledgment Options", RFC 2018, October 1996. + + [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate + Requirement Levels", BCP 14, RFC 2119, March 1997. + + + + + + + +Mathis, et al. Standards Track [Page 70] + +RFC 4898 TCP Extended Statistics MIB May 2007 + + + [RFC2578] McCloghrie, K., Perkins, D., Schoenwaelder, J., Case, J., + Rose, M., and S. Waldbusser, "Structure of Management + Information Version 2 (SMIv2)", STD 58, RFC 2578, April + 1999. + + [RFC2579] McCloghrie, K., Perkins, D., Schoenwaelder, J., Case, J., + Rose, M., and S. Waldbusser, "Textual Conventions for + SMIv2", RFC 2579, STD 58, April 1999. + + [RFC2580] McCloghrie, K., Perkins, D., Schoenwaelder, J., Case, J., + Rose, M., and S. Waldbusser, "Conformance Statements for + SMIv2", RFC 2580, STD 58, April 1999. + + [RFC2581] Allman, M., Paxson, V., and W. Stevens, "TCP Congestion + Control", RFC 2581, April 1999. + + [RFC2856] Bierman, A., McCloghrie, K., and R. Presuhn, "Textual + Conventions for Additional High Capacity Data Types", RFC + 2856, June 2000. + + [RFC2883] Floyd, S., Mahdavi, J., Mathis, M., and M. Podolsky, "An + Extension to the Selective Acknowledgement (SACK) Option + for TCP", RFC 2883, July 2000. + + [RFC2988] Paxson, V. and M. Allman, "Computing TCP's Retransmission + Timer", RFC 2988, November 2000. + + [RFC3168] Ramakrishnan, K., Floyd, S., and D. Black, "The Addition + of Explicit Congestion Notification (ECN) to IP", RFC + 3168, September 2001. + + [RFC3517] Blanton, E., Allman, M., Fall, K., and L. Wang, "A + Conservative Selective Acknowledgment (SACK)-based Loss + Recovery Algorithm for TCP", RFC 3517, April 2003. + + [RFC4022] Raghunarayan, R., Ed., "Management Information Base for + the Transmission Control Protocol (TCP)", RFC 4022, March + 2005. + + [RFC4502] Waldbusser, S., "Remote Network Monitoring Management + Information Base Version 2", RFC 4502, May 2006. + + + + + + + + + + +Mathis, et al. Standards Track [Page 71] + +RFC 4898 TCP Extended Statistics MIB May 2007 + + +8. Informative References + + [Mat97] M. Mathis, J. Semke, J. Mahdavi, T. Ott, "The Macroscopic + Behavior of the TCP Congestion Avoidance Algorithm", + Computer Communication Review, volume 27, number 3, July + 1997. + + [Bra94] Brakmo, L., O'Malley, S., "TCP Vegas, New Techniques for + Congestion Detection and Avoidance", SIGCOMM'94, London, + pp 24-35, October 1994. + + [Edd06] Eddy, W., "TCP SYN Flooding Attacks and Common + Mitigations", Work in Progress, May 2007. + + [POSIX] Portable Operating System Interface, IEEE Std 1003.1 + + [Pad98] Padhye, J., Firoiu, V., Towsley, D., Kurose, J., "Modeling + TCP Throughput: A Simple Model and its Empirical + Validation", SIGCOMM'98. + + [Web100] Mathis, M., J. Heffner, R. Reddy, "Web100: Extended TCP + Instrumentation for Research, Education and Diagnosis", + ACM Computer Communications Review, Vol 33, Num 3, July + 2003. + + [RFC2861] Handley, M., Padhye, J., and S. Floyd, "TCP Congestion + Window Validation", RFC 2861, June 2000. + + [RFC3260] Grossman, D., "New Terminology and Clarifications for + Diffserv", RFC 3260, April 2002. + + [RFC3410] Case, J., Mundy, R., Partain, D. and B. Stewart, + "Introduction and Applicability Statements for Internet- + Standard Management Framework", RFC 3410, December 2002. + + [RFC3522] Ludwig, R. and M. Meyer, "The Eifel Detection Algorithm + for TCP", RFC 3522, April 2003. + + [RFC3742] Floyd, S., "Limited Slow-Start for TCP with Large + Congestion Windows", RFC 3742, March 2004. + + [RFC4614] Duke M., Braden, R., Eddy, W., Blanton, E. "A Roadmap for + Transmission Control Protocol (TCP) Specification + Documents", RFC 4614, September 2006. + + + + + + + +Mathis, et al. Standards Track [Page 72] + +RFC 4898 TCP Extended Statistics MIB May 2007 + + +9. Contributors + + The following people contributed text that was incorporated into this + document: + + Jon Saperia <saperia@jdscons.com> converted Web100 internal + documentation into a true MIB. + + Some of the objects in this document were moved from an early version + of the TCP-MIB by Bill Fenner, et al. + + Some of the object descriptions are based on an earlier unpublished + document by Jeff Semke. + +10. Acknowledgments + + This document is a product of the Web100 project (www.web100.org), a + joint effort of Pittsburgh Supercomputing Center (www.psc.edu), + National Center for Atmospheric Research (www.ncar.ucar.edu), and + National Center for Supercomputer Applications (www.ncsa.edu). + + It would not have been possible without all of the hard work by the + entire Web100 team, especially Peter O'Neal, who read and reread the + entire document several times; Janet Brown and Marla Meehl, who + patiently managed the unmanageable. The Web100 project would not + have been successful without all of the early adopters who suffered + our bugs to provide many good suggestions and insights into their + needs for TCP instrumentation. + + Web100 was supported by the National Science Foundation under Grant + No. 0083285 and a research grant from Cisco Systems. + + We would also like to thank all of the people who built experimental + implementations of this MIB from early versions and provided us with + constructive feedback: Glenn Turner at AARnet, Kristine Adamson at + IBM, and Xinyan Zan at Microsoft. + + And last, but not least, we would like to thank Dan Romascanu, our + "MIB Doctor" and Bert Wijnen, the Operations Area Director, for + patiently steering us through the MIB review process. + + + + + + + + + + + +Mathis, et al. Standards Track [Page 73] + +RFC 4898 TCP Extended Statistics MIB May 2007 + + +Authors' Addresses + + Matt Mathis + Pittsburgh Supercomputing Center + 300 S. Craig St. + Pittsburgh, PA 15213 + Phone: 412-268-4960 + EMail: mathis@psc.edu + + John Heffner + Pittsburgh Supercomputing Center + 300 S. Craig St. + Pittsburgh, PA 15213 + Phone: 412-268-4960 + EMail: jheffner@psc.edu + + Rajiv Raghunarayan + Cisco Systems Inc. + San Jose, CA 95134 + Phone: 408 853 9612 + EMail: raraghun@cisco.com + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Mathis, et al. Standards Track [Page 74] + +RFC 4898 TCP Extended Statistics MIB May 2007 + + +Full Copyright Statement + + Copyright (C) The IETF Trust (2007). + + This document is subject to the rights, licenses and restrictions + contained in BCP 78, and except as set forth therein, the authors + retain all their rights. + + This document and the information contained herein are provided on an + "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS + OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND + THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS + OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF + THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED + WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + +Intellectual Property + + The IETF takes no position regarding the validity or scope of any + Intellectual Property Rights or other rights that might be claimed to + pertain to the implementation or use of the technology described in + this document or the extent to which any license under such rights + might or might not be available; nor does it represent that it has + made any independent effort to identify any such rights. Information + on the procedures with respect to rights in RFC documents can be + found in BCP 78 and BCP 79. + + Copies of IPR disclosures made to the IETF Secretariat and any + assurances of licenses to be made available, or the result of an + attempt made to obtain a general license or permission for the use of + such proprietary rights by implementers or users of this + specification can be obtained from the IETF on-line IPR repository at + http://www.ietf.org/ipr. + + The IETF invites any interested party to bring to its attention any + copyrights, patents or patent applications, or other proprietary + rights that may cover technology that may be required to implement + this standard. Please address the information to the IETF at + ietf-ipr@ietf.org. + +Acknowledgement + + Funding for the RFC Editor function is currently provided by the + Internet Society. + + + + + + + +Mathis, et al. Standards Track [Page 75] + |