One document matched: draft-ietf-tsvwg-tcp-mib-extension-07.txt
Differences from draft-ietf-tsvwg-tcp-mib-extension-06.txt
Internet-Draft Matt Mathis
John Heffner
Raghu Reddy
Pittsburgh Supercomputing Center
Rajiv Raghunarayan
Cisco Systems
J. Saperia
JDS Consulting, Inc
TCP Extended Statistics MIB
draft-ietf-tsvwg-tcp-mib-extension-07.txt
Fri Jul 15 13:07:14 EDT 2005
Status of this Memo
By submitting this Internet-Draft, each author represents that any
applicable patent or other IPR claims of which he or she is aware
have been or will be disclosed, and any of which he or she becomes
aware will be disclosed, in accordance with Section 6 of BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that other
groups may also distribute working documents as Internet-Drafts.
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
The list of current Internet-Drafts can be accessed at http://
www.ietf.org/ietf/1id-abstracts.txt.
The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html.
This Internet-Draft will expire Jan 31, 2006
Abstract
This draft 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.
Mathis, et al [Page 1]
Internet-Draft Expires Jan 31, 2006 Jul 15, 2005
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . 2
2. The Internet-Standard Management Framework . . . . . . . . 4
3. Overview . . . . . . . . . . . . . . . . . . . . . . . . . 4
4. TCP Extended Statistics MIB . . . . . . . . . . . . . . . . 8
5. Normative References . . . . . . . . . . . . . . . . . . . 58
6. Informative References . . . . . . . . . . . . . . . . . . 59
7. Security Considerations . . . . . . . . . . . . . . . . . . 59
8. Contributors . . . . . . . . . . . . . . . . . . . . . . . 60
9. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . 60
10. Authors' Addresses . . . . . . . . . . . . . . . . . . . . 60
11. Intellectual Property . . . . . . . . . . . . . . . . . . 61
12. Disclaimer of Validity . . . . . . . . . . . . . . . . . . 61
13. Full Copyright Statement . . . . . . . . . . . . . . . . . 62
1. Introduction
This draft 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 SNMP objects defined in this draft extend TCP MIB, already under
revision by the IPv6 team [RFC2012bis].
This document is automatically generated from a database of potential
TCP instruments. Beware that the OIDs are still likely to change
with future versions. The most current version can be obtained from
http://www.web100.org/mib/ . Please use tsvwg@ietf.org to send
comments to the entire TSV WG.
X. Changes
This virtual section will be removed as the draft nears completion.
Changes since draft-ietf-tsvwg-tcp-mib-extension-06.txt (20-Feb-2005)
Added tcpEStatsPerfPipeSize and tcpEStatsPerfMaxPipeSize to detect
when TCP is unable to open the window as large as permitted.
Added tcpEStatsStackInRecovery to indicate if the connection is
currently in recovery (e.g. has outstanding retransmissions), or
about to enter recovery.
Mathis, et al [Page 2]
Internet-Draft Expires Jan 31, 2006 Jul 15, 2005
Move tcpEStatsPerfSumRTT, Tcpestatsperfhcsumrtt and
tcpEStatsPerfCountRTT to the path table, tcpEStatsPath.
Added tcpEStatsPathHCGroup.
Move tcpEstatsPathAckAfterFR and tcpEstatsPathSndDupAckEpisodes back
to the performance table, tcpEStatsPerf.
Move tcpEStatsPerfSampleRTT, tcpEStatsPerfSampleRTT and
tcpEStatsPerfSampleRTT to the stack table, tcpEStatsStack.
Clarified the descriptions of tcpEStatsPerfDupAckEpisodes,
tcpEStatsPerfDupAcksOut and tcpEStatsPerfCongSignals
Changes since draft-ietf-tsvwg-tcp-mib-extension-05.txt
(17-July-2004)
Many changes to object descriptions MIB comments and overview to
improve clarity.
Completely restructured the perconnection tables. Seven table were
reduced to five. The main perconnection table tcpEStatsPerfTable is
now mandatory. Three other new tables are focused on understanding
the details of the behavior of the path, internal TCP algorithms and
the application. In addition, there is a new tuning table with per-
connection writable controls to work around a number of common
problems. Note that due to the table restructuring, most of the
object names listed below have changed.
Restructured the Listen Table (tcpEStatsListenerTable) to better
instrument various SYN flood defenses.
Removed minimul receiver window objects, and replaced them by the
count of the number of transitions to zero window from non-zero
window.
Replaced tcpEStatsPathIpTos by tcpEStatsPathIpTosOut and added
tcpEStatsPathIpTosIn.
Updated the descriptions of tcpEStatsDataSndNxt, tcpEStatsDataSndMax,
tcpEStatsDataThruOctetsAcked, tcpEStatsDataHCThruBytesAcked,
tcpEStatsDataThruBytesReceived, tcpEStatsDataHCThruBytesReceived,
consistiently use RFC791 variables (SND.NXT, etc) or refer to other
TCP-ESTATS-MIB objects.
Changed tcpEStatsSynOptsMSSSent and tcpEStatsSynOptsMSSRcvd from
Gauge32 to Unsigned32
Mathis, et al [Page 3]
Internet-Draft Expires Jan 31, 2006 Jul 15, 2005
Updated descriptions of tcpEStatsConnectLocalAddress and
tcpEStatsConnectRemAddress to new conventions for InetAddress
[RFC3291bis]
Changes since draft-ietf-tsvwg-tcp-mib-extension-04.txt (27-Oct-2003)
Updated ID boiler plate to RFC3668, ID-Guidelines and fixed some
formatting glitches
Added a Table of Contents
Updated the description of tcpEStatsConnectionState to indicate that
the listen state included only for document parallelism and should
not be used.
Explained why it is useful for tcpEStatsConnectIdTable and others to
remain for 30 seconds after a connection closes (so you retrieve the
total statistics for the entire connection).
Added comment about not supporting writing DeleteTcb into the TCP
State.
Explained that SndNxt is not a counter because it is non-monotonic.
Clarified StartTime to be row creation
Clarified row creation to be at the first SYN unless techniques to
defend against SYN floods are in effect, then at connection
establishment.
Added tcpEStatsControlNotify to control the generation of
notifications.
Changed sequence numbers from ZeroBasedCounter32 to Counter32.
Changes since draft-ietf-tsvwg-tcp-mib-extension-03.txt (2-Mar-2003)
Replaced "queued" with "buffered by TCP"
Changed all counters in the TCP connection tables to be ZeroBased
Remove tcpEStatsHCInSegs, tcpEStatsHCOutSegs, which appear in as
tcpHCInSegs and tcpHCOutSegs in draft-ietf-ipv6-rfc2012-update-03.txt
and later drafts.
Added changes section.
Mathis, et al [Page 4]
Internet-Draft Expires Jan 31, 2006 Jul 15, 2005
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 6 tables,
two groups of scalars and two notifications:
- The first group of scalars in this MIB contain a statistic
of a TCP protocol engine not covered in [RFC2012bis]. The
scalar tcpEStatsListenerTableLastChange, provides management
stations with an an easier mechanism to validate their
listener caches.
- 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
table rows are retained after connection close, to permit
reading final connection completion statistics.
Changing any of these controls 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 tcpEStatsListenerTable provides 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.
Mathis, et al [Page 5]
Internet-Draft Expires Jan 31, 2006 Jul 15, 2005
- The ZeroBasedCounter32 and ZeroBasedCounter64 objects
in the tcpEStatsListenerTable and tcpEStatsListenerTable
are initialized to zero when the table row is created.
- The tcpEStatsConnectIdTable provides a mapping between the
connection indices i.e. source address type, source address,
source port, destination address type, destination address and
destination port, and the connection index. The connection
index is used to index into most the 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 line 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 losses or segment 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.
- The tcpEStatsListenerTable is specifically designed to
provides 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 are used to defend
against SYN-flooding but none are standardized, and most
have never been well described in the literature (ergo there
are no normative references). These different techniques
all have the same basic characteristics which are
instrumentable with a common set of objects even though the
techniques differ greatly in the details.
Mathis, et al [Page 6]
Internet-Draft Expires Jan 31, 2006 Jul 15, 2005
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 a
observe able 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 connections is allocated full resources, and a
"backlog" - a queue of embryonic connections that have been
allocated only partial resources.
In many implementation incoming TCP connections are allocated
resources as a side affect 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] and the per connection table rows described in
this MIB.
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 that
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).
Note that some SYN-Flood defenses dispense with explicit
SYN-RCVD state by cryptographically encoding the state in
the ISS of the SYN-ACK, 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
Mathis, et al [Page 7]
Internet-Draft Expires Jan 31, 2006 Jul 15, 2005
backlog. This does not cause all connections from
legitimate clients to fail, as long as the clients
persistently retransmit the SYN or first ACK as specified in
RFC793. Most of the diversity in SYN flood defenses arises
in variations in these algorithms to limit load, and
therefore they can not conveniently 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 mechanism that
use alternate TCP state transition diagrams and implicit
mechanisms to encode some states.
4. TCP Extended Statistics MIB
TCP-ESTATS-MIB DEFINITIONS ::= BEGIN
IMPORTS
MODULE-IDENTITY, Counter32, Integer32, Unsigned32,
Gauge32, OBJECT-TYPE, experimental,
NOTIFICATION-TYPE
FROM SNMPv2-SMI
MODULE-COMPLIANCE, OBJECT-GROUP, NOTIFICATION-GROUP
FROM SNMPv2-CONF
ZeroBasedCounter32
FROM RMON2-MIB -- [RFC2021]
ZeroBasedCounter64
FROM HCNUM-TC -- [RFC2856]
TEXTUAL-CONVENTION,
DateAndTime, TruthValue, TimeStamp
FROM SNMPv2-TC
InetAddressType, InetAddress,
InetPortNumber
FROM INET-ADDRESS-MIB
tcpListenerEntry
FROM TCP-MIB;
tcpEStatsMIB MODULE-IDENTITY
LAST-UPDATED "200507151307Z" -- Jul 15, 2005
ORGANIZATION "IETF TSV Working Group"
CONTACT-INFO
"Matt Mathis
John Heffner
Raghu Reddy
Mathis, et al [Page 8]
Internet-Draft Expires Jan 31, 2006 Jul 15, 2005
Web100 Project
Pittsburgh Supercomputing Center
4400 Fifth Ave
Pittsburgh, PA 15213
Email: mathis@psc.edu, jheffner@psc.edu, rreddy@psc.edu
Rajiv Raghunarayan
Cisco Systems Inc.
San Jose, CA 95134
Phone: 408 853 9612
Email: raraghun@cisco.com
Jon Saperia
JDS Consulting, Inc.
174 Chapman Street
Watertown, MA 02472
Phone: 617-744-1079
Email: saperia@jdscons.com "
DESCRIPTION
"Documentation of TCP Extended Performance Instrumentation
variables from the Web100 project. [Web100]
Copyright (C) The Internet Society (2005). This version
of this MIB module is a part of RFC xxxx; see the RFC
itself for full legal notices."
-- RFC Editor: replace xxxx with actual RFC number & remove note
REVISION "200507151307Z" -- Jul 15, 2005
DESCRIPTION
"Initial version, published as RFC xxxx."
-- RFC Editor assigns RFC xxxx
::= { experimental 9999 }
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
--
TcpEStatsOperation ::= TEXTUAL-CONVENTION
STATUS current
DESCRIPTION
"Indicates whether the table or notification controlled
by an object with this syntax is enabled or in a
Mathis, et al [Page 9]
Internet-Draft Expires Jan 31, 2006 Jul 15, 2005
disabled state."
SYNTAX INTEGER {
enabled(1),
disabled(2)
}
--
-- TCP Extended statistics scalars
--
tcpEStatsListenerTableLastChange OBJECT-TYPE
SYNTAX TimeStamp
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"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 TcpEStatsOperation
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"Controls the activation of the TCP Path
Statistics table."
DEFVAL { disabled }
::= { tcpEStatsControl 1 }
tcpEStatsControlStack OBJECT-TYPE
SYNTAX TcpEStatsOperation
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"Controls the activation of the TCP Stack
Mathis, et al [Page 10]
Internet-Draft Expires Jan 31, 2006 Jul 15, 2005
Statistics table."
DEFVAL { disabled }
::= { tcpEStatsControl 2 }
tcpEStatsControlApp OBJECT-TYPE
SYNTAX TcpEStatsOperation
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"Controls the activation of the TCP Application
Statistics table."
DEFVAL { disabled }
::= { tcpEStatsControl 3 }
tcpEStatsControlTune OBJECT-TYPE
SYNTAX TcpEStatsOperation
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"Controls the activation of the TCP Tuning
table."
DEFVAL { disabled }
::= { tcpEStatsControl 4 }
tcpEStatsControlNotify OBJECT-TYPE
SYNTAX TcpEStatsOperation
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"Controls the generation of all notifications defined in
this MIB."
DEFVAL { disabled }
::= { tcpEStatsControl 5 }
tcpEStatsConnTableLatency OBJECT-TYPE
SYNTAX Integer32 (0..30)
MAX-ACCESS read-only
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
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
Mathis, et al [Page 11]
Internet-Draft Expires Jan 31, 2006 Jul 15, 2005
tcpEStatsPerfTable
tcpEStatsPathTable
tcpEStatsStackTable
tcpEStatsAppTable
tcpEStatsTuneTable"
::= { 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 RFC2012bis."
::= { tcpEStats 10 }
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,
tcpEStatsListenerHCAccepted ZeroBasedCounter64,
tcpEStatsListenerHCExceedBacklog ZeroBasedCounter64,
tcpEStatsListenerCurrConns Gauge32,
tcpEStatsListenerMaxBacklog Integer32,
tcpEStatsListenerCurBacklog Gauge32,
tcpEStatsListenerCurEstabBacklog Gauge32
Mathis, et al [Page 12]
Internet-Draft Expires Jan 31, 2006 Jul 15, 2005
}
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. The 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
"The number of connections which have been established to
this endpoint. E.g. The number of first ACKs which have
been received for this listener."
::= { tcpEStatsListenerEntry 4 }
tcpEStatsListenerAccepted OBJECT-TYPE
Mathis, et al [Page 13]
Internet-Draft Expires Jan 31, 2006 Jul 15, 2005
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 which 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 }
tcpEStatsListenerHCEstablished OBJECT-TYPE
SYNTAX ZeroBasedCounter64
MAX-ACCESS read-only
STATUS current
DESCRIPTION
Mathis, et al [Page 14]
Internet-Draft Expires Jan 31, 2006 Jul 15, 2005
"The number of connections which 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
tcpEStatsListenerHCExceedBacklog."
::= { tcpEStatsListenerEntry 11 }
tcpEStatsListenerCurrConns 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
SYNTAX Integer32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The maximum number of connections allowed in
Mathis, et al [Page 15]
Internet-Draft Expires Jan 31, 2006 Jul 15, 2005
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 backlog.
This counter MUST include connections in ESTABLISHED state,
for which the Listener has not yet issued an accept,
and MAY include connections in SYN-RECEIVED state."
::= { tcpEStatsListenerEntry 14 }
tcpEStatsListenerCurEstabBacklog OBJECT-TYPE
SYNTAX Gauge32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The current number of connections in backlog that are
in the ESTABLISHED state, but for which the Listener has
not yet issued an accept."
::= { tcpEStatsListenerEntry 15 }
-- ================================================================
--
-- TCP Connection ID Table
--
-- There is overlap with the new RFC2012 TCP Connection table
-- because there is a semantic difference in the latency of row
-- removal in this table. Rows are expected to remain in this
-- table longer than in a standard TCP Connection table. Other
-- than this latency difference the semantics of the first six
-- objects in this table are the same as the new TCP Connection
-- table and the DESCRIPTIONS come from the new document.
tcpEStatsConnectIdTable OBJECT-TYPE
SYNTAX SEQUENCE OF TcpEStatsConnectIdEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"This table maps a connection ID used by other tables in
this MIB Module with the information that uniquely
identifies each active TCP connection. Entries are
retained in this table for the number of seconds
indicated by the tcpEStatsConnTableLatency object, after
Mathis, et al [Page 16]
Internet-Draft Expires Jan 31, 2006 Jul 15, 2005
the TCP connection first enters the closed state."
::= { tcpEStats 1 }
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."
INDEX { tcpEStatsConnectLocalAddressType,
tcpEStatsConnectLocalAddress,
tcpEStatsConnectLocalPort,
tcpEStatsConnectRemAddressType,
tcpEStatsConnectRemAddress,
tcpEStatsConnectRemPort }
::= { tcpEStatsConnectIdTable 1 }
TcpEStatsConnectIdEntry ::= SEQUENCE {
tcpEStatsConnectLocalAddressType InetAddressType,
tcpEStatsConnectLocalAddress InetAddress,
tcpEStatsConnectLocalPort InetPortNumber,
tcpEStatsConnectRemAddressType InetAddressType,
tcpEStatsConnectRemAddress InetAddress,
tcpEStatsConnectRemPort InetPortNumber,
tcpEStatsConnectIndex Unsigned32
}
tcpEStatsConnectLocalAddressType OBJECT-TYPE
SYNTAX InetAddressType
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The address type of tcpEStatsConnectLocalAddress."
::= { tcpEStatsConnectIdEntry 1 }
tcpEStatsConnectLocalAddress OBJECT-TYPE
SYNTAX InetAddress
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The local IP address for this TCP connection.The type
of this address is determined by the value of
tcpEStatsConnectLocalAddressType.
As this object is used in the index for the
tcpEStatsConnectIdTable, implementors of this table should
be careful not to create entries that would result in OIDs
Mathis, et al [Page 17]
Internet-Draft Expires Jan 31, 2006 Jul 15, 2005
with more than 128 sub-identifiers; else the information
cannot be accessed using SNMPv1, SNMPv2c or SNMPv3."
::= { tcpEStatsConnectIdEntry 2 }
tcpEStatsConnectLocalPort OBJECT-TYPE
SYNTAX InetPortNumber
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The local port number for this TCP connection."
::= {tcpEStatsConnectIdEntry 3 }
tcpEStatsConnectRemAddressType OBJECT-TYPE
SYNTAX InetAddressType
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The address type of tcpEStatsConnectRemAddress."
::= { tcpEStatsConnectIdEntry 4 }
tcpEStatsConnectRemAddress OBJECT-TYPE
SYNTAX InetAddress
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The remote IP address for this TCP connection. The type
of this address is determined by the value of
tcpEStatsConnectRemAddressType.
As this object is used in the index for the
tcpEStatsConnectIdTable, implementors of this table should
be careful not to create entries that would result in OIDs
with more than 128 sub-identifiers; else the information
cannot be accessed using SNMPv1, SNMPv2c or SNMPv3."
::= { tcpEStatsConnectIdEntry 5 }
tcpEStatsConnectRemPort OBJECT-TYPE
SYNTAX InetPortNumber
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The remote port number for this TCP connection."
::= { tcpEStatsConnectIdEntry 6 }
tcpEStatsConnectIndex OBJECT-TYPE
SYNTAX Unsigned32
MAX-ACCESS read-only
STATUS current
Mathis, et al [Page 18]
Internet-Draft Expires Jan 31, 2006 Jul 15, 2005
DESCRIPTION
"A unique integer value assigned to each TCP Connection
entry. Assignment will begin at 1 and increase to the
maximum value and then start again at 1 skipping in use
values."
::= { tcpEStatsConnectIdEntry 7 }
-- ================================================================
--
-- 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
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. Maximum)
of TCP state variables."
::= { tcpEStats 2 }
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 {
tcpEStatsPerfState INTEGER,
tcpEStatsPerfSACK TruthValue,
tcpEStatsPerfTimeStamps TruthValue,
tcpEStatsPerfECN TruthValue,
tcpEStatsPerfNagle TruthValue,
tcpEStatsPerfSndWindScale Integer32,
tcpEStatsPerfRcvWindScale Integer32,
tcpEStatsPerfActiveOpen TruthValue,
tcpEStatsPerfSegsOut ZeroBasedCounter32,
tcpEStatsPerfDataSegsOut ZeroBasedCounter32,
tcpEStatsPerfDataOctetsOut ZeroBasedCounter32,
Mathis, et al [Page 19]
Internet-Draft Expires Jan 31, 2006 Jul 15, 2005
tcpEStatsPerfHCDataOctetsOut ZeroBasedCounter64,
tcpEStatsPerfSegsIn ZeroBasedCounter32,
tcpEStatsPerfDataSegsIn ZeroBasedCounter32,
tcpEStatsPerfDataOctetsIn ZeroBasedCounter32,
tcpEStatsPerfHCDataOctetsIn ZeroBasedCounter64,
tcpEStatsPerfCurMSS Gauge32,
tcpEStatsPerfSndUna Counter32,
tcpEStatsPerfSndNxt Integer32,
tcpEStatsPerfSndMax Counter32,
tcpEStatsPerfThruOctetsAcked ZeroBasedCounter32,
tcpEStatsPerfHCThruOctetsAcked ZeroBasedCounter64,
tcpEStatsPerfRcvNxt Counter32,
tcpEStatsPerfThruOctetsReceived ZeroBasedCounter32,
tcpEStatsPerfHCThruOctetsReceived ZeroBasedCounter64,
tcpEStatsPerfElapsedSecs ZeroBasedCounter32,
tcpEStatsPerfElapsedMicroSecs ZeroBasedCounter32,
tcpEStatsPerfStartTimeStamp DateAndTime,
tcpEStatsPerfSndLimTransRwin ZeroBasedCounter32,
tcpEStatsPerfSndLimTransCwnd ZeroBasedCounter32,
tcpEStatsPerfSndLimTransSnd ZeroBasedCounter32,
tcpEStatsPerfSndLimTimeRwin ZeroBasedCounter32,
tcpEStatsPerfSndLimTimeCwnd ZeroBasedCounter32,
tcpEStatsPerfSndLimTimeSnd ZeroBasedCounter32,
tcpEStatsPerfCongSignals ZeroBasedCounter32,
tcpEStatsPerfCurCwnd Gauge32,
tcpEStatsPerfMaxSsCwnd Gauge32,
tcpEStatsPerfMaxCaCwnd Gauge32,
tcpEStatsPerfCurSsthresh Gauge32,
tcpEStatsPerfMaxSsthresh Gauge32,
tcpEStatsPerfMinSsthresh Gauge32,
tcpEStatsPerfPipeSize Gauge32,
tcpEStatsPerfMaxPipeSize Gauge32,
tcpEStatsPerfTimeouts ZeroBasedCounter32,
tcpEStatsPerfSegsRetrans ZeroBasedCounter32,
tcpEStatsPerfOctetsRetrans ZeroBasedCounter32,
tcpEStatsPerfDupAcksIn ZeroBasedCounter32,
tcpEStatsPerfRetranThresh Gauge32,
tcpEStatsPerfNonRecovDAEpisodes Integer32,
tcpEStatsPerfSumOctetsReordered Integer32,
tcpEStatsPerfNonRecovDA ZeroBasedCounter32,
tcpEStatsPerfAckAfterFR ZeroBasedCounter32,
tcpEStatsPerfSmoothedRTT Gauge32,
tcpEStatsPerfRTTVar Gauge32,
tcpEStatsPerfMaxRTT Gauge32,
tcpEStatsPerfMinRTT Gauge32,
tcpEStatsPerfCurRTO Gauge32,
tcpEStatsPerfCurRwinSent Gauge32,
tcpEStatsPerfMaxRwinSent Gauge32,
Mathis, et al [Page 20]
Internet-Draft Expires Jan 31, 2006 Jul 15, 2005
tcpEStatsPerfZeroRwinSent Gauge32,
tcpEStatsPerfDupAckEpisodes ZeroBasedCounter32,
tcpEStatsPerfDupAcksOut ZeroBasedCounter32,
tcpEStatsPerfCurRwinRcvd Gauge32,
tcpEStatsPerfMaxRwinRcvd Gauge32,
tcpEStatsPerfZeroRwinRcvd Gauge32
}
--
-- The following objects indicate if various TCP features
-- (options) or algorithms are enabled.
--
tcpEStatsPerfState OBJECT-TYPE
SYNTAX INTEGER {
wcStateClosed(1),
wcStateListen(2),
wcStateSynSent(3),
wcStateSynReceived(4),
wcStateEstablished(5),
wcStateFinWait1(6),
wcStateFinWait2(7),
wcStateCloseWait(8),
wcStateLastAck(9),
wcStateClosing(10),
wcStateTimeWait(11),
wcStateDeleteTcb(12)
}
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"An integer value representing the connection state from the
TCP State Transition Diagram. See [RFC793].
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,
although this table does not permit writing."
::= { tcpEStatsPerfEntry 1 }
tcpEStatsPerfSACK OBJECT-TYPE
SYNTAX TruthValue
MAX-ACCESS read-only
STATUS current
DESCRIPTION
Mathis, et al [Page 21]
Internet-Draft Expires Jan 31, 2006 Jul 15, 2005
"True(1) if SACK has been negotiated on, else false(2). See
[RFC2018]."
::= { tcpEStatsPerfEntry 2 }
tcpEStatsPerfTimeStamps OBJECT-TYPE
SYNTAX TruthValue
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"True(1) if timestamps have been negotiated on, else
false(2). See [RFC1323]."
::= { tcpEStatsPerfEntry 3 }
tcpEStatsPerfECN OBJECT-TYPE
SYNTAX TruthValue
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"True(1) if ECN has been negotiated on, else false(2). See
[RFC3168]."
::= { tcpEStatsPerfEntry 4 }
tcpEStatsPerfNagle OBJECT-TYPE
SYNTAX TruthValue
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"True(1) if the Nagle algorithm is being used, else
false(2). See [RFC896] and [RFC1122]."
::= { tcpEStatsPerfEntry 5 }
tcpEStatsPerfSndWindScale OBJECT-TYPE
SYNTAX Integer32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The value of Snd.Wind.Scale from [RFC1323]. Note that
tcpEStatsPerfSndWindScale is either zero or the same as
tcpEStatsStackWinScaleRcvd."
::= { tcpEStatsPerfEntry 6 }
tcpEStatsPerfRcvWindScale OBJECT-TYPE
SYNTAX Integer32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The value of Rcv.Wind.Scale from [RFC1323]. Note that
tcpEStatsPerfRcvWindScale is either zero or the same as
Mathis, et al [Page 22]
Internet-Draft Expires Jan 31, 2006 Jul 15, 2005
tcpEStatsStackWinScaleSent."
::= { tcpEStatsPerfEntry 7 }
tcpEStatsPerfActiveOpen 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). See [RFC793]."
::= { tcpEStatsPerfEntry 8 }
--
-- 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 9 }
tcpEStatsPerfDataSegsOut OBJECT-TYPE
SYNTAX ZeroBasedCounter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of segments sent containing a positive length
data segment."
::= { tcpEStatsPerfEntry 10 }
tcpEStatsPerfDataOctetsOut OBJECT-TYPE
SYNTAX ZeroBasedCounter32
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 11 }
tcpEStatsPerfHCDataOctetsOut OBJECT-TYPE
SYNTAX ZeroBasedCounter64
Mathis, et al [Page 23]
Internet-Draft Expires Jan 31, 2006 Jul 15, 2005
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 12 }
tcpEStatsPerfSegsIn OBJECT-TYPE
SYNTAX ZeroBasedCounter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The total number of segments received."
::= { tcpEStatsPerfEntry 13 }
tcpEStatsPerfDataSegsIn OBJECT-TYPE
SYNTAX ZeroBasedCounter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of segments received containing a positive
length data segment."
::= { tcpEStatsPerfEntry 14 }
tcpEStatsPerfDataOctetsIn OBJECT-TYPE
SYNTAX ZeroBasedCounter32
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 15 }
tcpEStatsPerfHCDataOctetsIn OBJECT-TYPE
SYNTAX ZeroBasedCounter64
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 16 }
tcpEStatsPerfCurMSS OBJECT-TYPE
Mathis, et al [Page 24]
Internet-Draft Expires Jan 31, 2006 Jul 15, 2005
SYNTAX Gauge32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The current maximum segment size (MSS), in octets."
::= { tcpEStatsPerfEntry 17 }
--
-- The following object provide throughput statistics for the
-- connection including sequence numbers and elapsed time.
-- These permit direct observation of the applications
-- progress, in terms of elapsed data delivery and elapsed
-- time. See [RFC793].
--
tcpEStatsPerfSndUna OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The value of SND.UNA, the oldest unacknowledged sequence
number."
::= { tcpEStatsPerfEntry 18 }
tcpEStatsPerfSndNxt OBJECT-TYPE
SYNTAX Integer32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The value of SND.NXT, the next sequence number to be sent.
Note that SndNxt is not a monotonic (and thus not a
counter) because TCP sometimes retransmits lost data by
pulling SndNxt back to the missing data."
::= { tcpEStatsPerfEntry 19 }
tcpEStatsPerfSndMax 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 tcpEStatsPerfSndNxt except
when tcpEStatsPerfSndNxt is pulled back during recovery."
::= { tcpEStatsPerfEntry 20 }
tcpEStatsPerfThruOctetsAcked OBJECT-TYPE
SYNTAX ZeroBasedCounter32
MAX-ACCESS read-only
Mathis, et al [Page 25]
Internet-Draft Expires Jan 31, 2006 Jul 15, 2005
STATUS current
DESCRIPTION
"The number of octets for which cumulative acknowledgments
have been received. Note that this will be the sum of
changes to tcpEStatsPerfSndUna."
::= { tcpEStatsPerfEntry 21 }
tcpEStatsPerfHCThruOctetsAcked OBJECT-TYPE
SYNTAX ZeroBasedCounter64
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 tcpEStatsPerfSndUna."
::= { tcpEStatsPerfEntry 22 }
tcpEStatsPerfRcvNxt OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The value of RCV.NXT from [RFC793]. The next sequence
number expected on an incoming segment, and the left or
lower edge of the receive window."
::= { tcpEStatsPerfEntry 23 }
tcpEStatsPerfThruOctetsReceived OBJECT-TYPE
SYNTAX ZeroBasedCounter32
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 tcpEStatsPerfRcvNxt."
::= { tcpEStatsPerfEntry 24 }
tcpEStatsPerfHCThruOctetsReceived OBJECT-TYPE
SYNTAX ZeroBasedCounter64
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 tcpEStatsPerfRcvNxt."
::= { tcpEStatsPerfEntry 25 }
Mathis, et al [Page 26]
Internet-Draft Expires Jan 31, 2006 Jul 15, 2005
tcpEStatsPerfElapsedSecs OBJECT-TYPE
SYNTAX ZeroBasedCounter32
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 26 }
tcpEStatsPerfElapsedMicroSecs OBJECT-TYPE
SYNTAX ZeroBasedCounter32
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
what ever time granularity is the system supports."
::= { tcpEStatsPerfEntry 27 }
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 28 }
--
-- The next group of instruments 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 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
Mathis, et al [Page 27]
Internet-Draft Expires Jan 31, 2006 Jul 15, 2005
-- 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."
::= { tcpEStatsPerfEntry 29 }
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."
::= { tcpEStatsPerfEntry 30 }
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 can not be
classified as Receiver Limited or Congestion Limited it
must be treated as Sender Limited."
::= { tcpEStatsPerfEntry 31 }
tcpEStatsPerfSndLimTimeRwin OBJECT-TYPE
SYNTAX ZeroBasedCounter32
MAX-ACCESS read-only
Mathis, et al [Page 28]
Internet-Draft Expires Jan 31, 2006 Jul 15, 2005
STATUS current
DESCRIPTION
"The cumulative time (in milliseconds) spent in the
'Receiver Limited' state. See tcpEStatsPerfSndLimTransRwin."
::= { tcpEStatsPerfEntry 32 }
tcpEStatsPerfSndLimTimeCwnd OBJECT-TYPE
SYNTAX ZeroBasedCounter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The cumulative time (in milliseconds) 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 33 }
tcpEStatsPerfSndLimTimeSnd OBJECT-TYPE
SYNTAX ZeroBasedCounter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The cumulative time (in milliseconds) spent in the 'Sender
Limited' state. See tcpEStatsPerfSndLimTransSnd."
::= { tcpEStatsPerfEntry 34 }
--
-- 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].
--
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, ECN and timeouts. This object
summarizes all events that invoke the MD portion of AIMD
congestion control, and as such is the best indicator of
how cwnd is being affected by congestion.
Mathis, et al [Page 29]
Internet-Draft Expires Jan 31, 2006 Jul 15, 2005
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."
::= { tcpEStatsPerfEntry 35 }
tcpEStatsPerfCurCwnd OBJECT-TYPE
SYNTAX Gauge32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The current congestion window, in octets. See [RFC2581]."
::= { tcpEStatsPerfEntry 36 }
tcpEStatsPerfMaxSsCwnd OBJECT-TYPE
SYNTAX Gauge32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The maximum congestion window used during Slow Start, in
octets."
::= { tcpEStatsPerfEntry 37 }
tcpEStatsPerfMaxCaCwnd OBJECT-TYPE
SYNTAX Gauge32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The maximum congestion window used during Congestion
Avoidance, in octets."
::= { tcpEStatsPerfEntry 38 }
tcpEStatsPerfCurSsthresh OBJECT-TYPE
SYNTAX Gauge32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The current slow start threshold in octets. See [RFC2581]."
::= { tcpEStatsPerfEntry 39 }
tcpEStatsPerfMaxSsthresh OBJECT-TYPE
SYNTAX Gauge32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The maximum slow start threshold, excluding the initial
Mathis, et al [Page 30]
Internet-Draft Expires Jan 31, 2006 Jul 15, 2005
value."
::= { tcpEStatsPerfEntry 40 }
tcpEStatsPerfMinSsthresh OBJECT-TYPE
SYNTAX Gauge32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The minimum slow start threshold."
::= { tcpEStatsPerfEntry 41 }
tcpEStatsPerfPipeSize OBJECT-TYPE
SYNTAX Gauge32
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, this is the same as ``Flight Size''
as defined in RFC2581.
While in recovery, this is the same as ``pipe'' as defined
in RFC3517.
If RFC3517 is not in effect, the data octets in flight can
be estimated as SND.NXT minus SND.UNA plus any
retransmitted data, minus some measure of the data that has
left the network. For example, with Reno or NewReno style
TCP, the number of duplicate acknowledgement is used to
count the number of segments that have left the network.
I.e.:
PipeSize=SND.NXT-SND.UNA+(retransmits-dupacks)*CurMSS"
::= { tcpEStatsPerfEntry 42 }
tcpEStatsPerfMaxPipeSize OBJECT-TYPE
SYNTAX Gauge32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The maximum value of PipeSize, for this connection."
::= { tcpEStatsPerfEntry 43 }
tcpEStatsPerfTimeouts OBJECT-TYPE
SYNTAX ZeroBasedCounter32
MAX-ACCESS read-only
STATUS current
Mathis, et al [Page 31]
Internet-Draft Expires Jan 31, 2006 Jul 15, 2005
DESCRIPTION
"The number of times the retransmit timeout has expired when
the RTO backoff multiplier is equal to one. See [RFC2988]."
::= { tcpEStatsPerfEntry 44 }
tcpEStatsPerfSegsRetrans OBJECT-TYPE
SYNTAX ZeroBasedCounter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of segments transmitted containing at least some
retransmitted data."
::= { tcpEStatsPerfEntry 45 }
tcpEStatsPerfOctetsRetrans OBJECT-TYPE
SYNTAX ZeroBasedCounter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of octets retransmitted."
::= { tcpEStatsPerfEntry 46 }
tcpEStatsPerfDupAcksIn OBJECT-TYPE
SYNTAX ZeroBasedCounter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of duplicate ACKs received."
::= { tcpEStatsPerfEntry 47 }
tcpEStatsPerfRetranThresh OBJECT-TYPE
SYNTAX Gauge32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of duplicate acknowledgments required to trigger
Fast Retransmit."
::= { tcpEStatsPerfEntry 48 }
tcpEStatsPerfNonRecovDAEpisodes OBJECT-TYPE
SYNTAX Integer32
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 acknowledgements reaching
RetranThresh. See [RFC2581].
Mathis, et al [Page 32]
Internet-Draft Expires Jan 31, 2006 Jul 15, 2005
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 tcpEStatsPathNonRecovDAEpisodes divided by
tcpEStatsPerfDataSegsOut is an estimate of the frequency of
data reordering on the forward path."
::= { tcpEStatsPerfEntry 49 }
tcpEStatsPerfSumOctetsReordered OBJECT-TYPE
SYNTAX Integer32
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 tcpEStatsPathSumOctetsReordered divided by
tcpEStatsPathNonRecovDAEpisodes is an estimates of the
average reordering distance, in octets."
::= { tcpEStatsPerfEntry 50 }
tcpEStatsPerfNonRecovDA 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 acknowledgements 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 tcpEStatsPathNonRecovDA divided by
tcpEStatsPathNonRecovDAEpisodes is an estimate of the
average reordering distance in segments."
::= { tcpEStatsPerfEntry 51 }
tcpEStatsPerfAckAfterFR OBJECT-TYPE
SYNTAX ZeroBasedCounter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of acknowledgments reporting out-of-order
segments after the segments have already be retransmitted
Mathis, et al [Page 33]
Internet-Draft Expires Jan 31, 2006 Jul 15, 2005
(For example as detected by the Eiffle algorithm,
[RFC3522])."
::= { tcpEStatsPerfEntry 52 }
--
-- The following objects instrument the round trip time
-- estimator and the retransmission timeout timer. See
-- [RFC2988].
--
tcpEStatsPerfSmoothedRTT OBJECT-TYPE
SYNTAX Gauge32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The smoothed round trip time, in milliseconds, used in
calculation of the RTO. See SRTT in [RFC2988]."
::= { tcpEStatsPerfEntry 53 }
tcpEStatsPerfRTTVar OBJECT-TYPE
SYNTAX Gauge32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The round trip time variation, in milliseconds, used in
calculation of the RTO. See RTTVAR in [RFC2988]."
::= { tcpEStatsPerfEntry 54 }
tcpEStatsPerfMaxRTT OBJECT-TYPE
SYNTAX Gauge32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The maximum sampled round trip time, in milliseconds."
::= { tcpEStatsPerfEntry 55 }
tcpEStatsPerfMinRTT OBJECT-TYPE
SYNTAX Gauge32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The minimum sampled round trip time, in milliseconds."
::= { tcpEStatsPerfEntry 56 }
tcpEStatsPerfCurRTO OBJECT-TYPE
SYNTAX Gauge32
MAX-ACCESS read-only
STATUS current
Mathis, et al [Page 34]
Internet-Draft Expires Jan 31, 2006 Jul 15, 2005
DESCRIPTION
"The current value of the retransmit timer RTO, in
milliseconds, not scaled by the RTO backoff multiplier. See
[RFC2988]."
::= { tcpEStatsPerfEntry 57 }
--
-- The following objects instrument the local receiver. Nearly
-- all other instruments report how well the local sender is
-- coping with the path and application. These objects
-- instrument how the receiver is processing incoming data.
--
tcpEStatsPerfCurRwinSent OBJECT-TYPE
SYNTAX Gauge32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The most recent window advertisement sent, in octets."
::= { tcpEStatsPerfEntry 58 }
tcpEStatsPerfMaxRwinSent OBJECT-TYPE
SYNTAX Gauge32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The maximum window advertisement sent, in octets."
::= { tcpEStatsPerfEntry 59 }
tcpEStatsPerfZeroRwinSent OBJECT-TYPE
SYNTAX Gauge32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of acknowledgements sent announcing a zero
receive window, when the previously announced window was
not zero."
::= { tcpEStatsPerfEntry 60 }
tcpEStatsPerfDupAckEpisodes 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.
Mathis, et al [Page 35]
Internet-Draft Expires Jan 31, 2006 Jul 15, 2005
This is an indication of the number of data segmets lost
(or reordered) on the path from the remote TCP endpoint to
the near TCP endpoint."
::= { tcpEStatsPerfEntry 61 }
tcpEStatsPerfDupAcksOut OBJECT-TYPE
SYNTAX ZeroBasedCounter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of duplicate ACKs sent. The ratio of
tcpEStatsPerfDupAcksOut to tcpEStatsPerfDupAckEpisodes is
an indication of reorder or recovery distance."
::= { tcpEStatsPerfEntry 62 }
--
-- 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
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The most recent window advertisement received, in octets."
::= { tcpEStatsPerfEntry 63 }
tcpEStatsPerfMaxRwinRcvd OBJECT-TYPE
SYNTAX Gauge32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The maximum window advertisement received, in octets."
::= { tcpEStatsPerfEntry 64 }
tcpEStatsPerfZeroRwinRcvd OBJECT-TYPE
SYNTAX Gauge32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of acknowledgements received announcing a zero
receive window, when the previously announced window was
not zero."
::= { tcpEStatsPerfEntry 65 }
Mathis, et al [Page 36]
Internet-Draft Expires Jan 31, 2006 Jul 15, 2005
-- ================================================================
--
-- Additional 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."
::= { tcpEStats 3 }
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 {
tcpEStatsPathIpTtl Integer32,
tcpEStatsPathIpTosIn Integer32,
tcpEStatsPathIpTosOut Integer32,
tcpEStatsPathPreCongSumCwnd ZeroBasedCounter32,
tcpEStatsPathPreCongSumRTT ZeroBasedCounter32,
tcpEStatsPathPostCongSumRTT ZeroBasedCounter32,
tcpEStatsPathPostCongCountRTT ZeroBasedCounter32,
tcpEStatsPathECNsignals ZeroBasedCounter32,
tcpEStatsPathECERcvd ZeroBasedCounter32,
tcpEStatsPathQuenchRcvd ZeroBasedCounter32,
tcpEStatsPathSumRTT ZeroBasedCounter32,
tcpEStatsPathHCSumRTT ZeroBasedCounter64,
tcpEStatsPathCountRTT ZeroBasedCounter32,
tcpEStatsPathCERcvd ZeroBasedCounter32,
tcpEStatsPathECNSent ZeroBasedCounter32,
tcpEStatsPathECNNonceRcvd ZeroBasedCounter32
}
--
-- The following objects provide information about how TCP is
Mathis, et al [Page 37]
Internet-Draft Expires Jan 31, 2006 Jul 15, 2005
-- using the IP layer.
--
tcpEStatsPathIpTtl OBJECT-TYPE
SYNTAX Integer32
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."
::= { tcpEStatsPathEntry 1 }
tcpEStatsPathIpTosIn OBJECT-TYPE
SYNTAX Integer32
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. See [RFC2474] and [RFC3260].
This is useful to diagnose interactions between TCP and any
IP layer packet scheduling and delivery policy, which might
be in effect to implement QoS."
::= { tcpEStatsPathEntry 2 }
tcpEStatsPathIpTosOut OBJECT-TYPE
SYNTAX Integer32
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. See [RFC2474] and [RFC3260].
This is useful to diagnose interactions between TCP and any
IP layer packet scheduling and delivery policy, which might
be in effect to implement QoS."
::= { tcpEStatsPathEntry 3 }
--
-- The following 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.
--
Mathis, et al [Page 38]
Internet-Draft Expires Jan 31, 2006 Jul 15, 2005
tcpEStatsPathPreCongSumCwnd OBJECT-TYPE
SYNTAX ZeroBasedCounter32
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 ratio is the average window at
congestion."
::= { tcpEStatsPathEntry 4 }
tcpEStatsPathPreCongSumRTT OBJECT-TYPE
SYNTAX ZeroBasedCounter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Sum of the last sample of the RTT (tcpEStatsPerfSampleRTT)
prior to received congestion signals. This MUST be updated
each time tcpEStatsPerfCongSignals is incremented, such
that the ratio is the average RTT just prior to congestion."
::= { tcpEStatsPathEntry 5 }
tcpEStatsPathPostCongSumRTT OBJECT-TYPE
SYNTAX ZeroBasedCounter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Sum of the first RTT sample following a received congestion
signal."
::= { tcpEStatsPathEntry 6 }
tcpEStatsPathPostCongCountRTT OBJECT-TYPE
SYNTAX ZeroBasedCounter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of RTT samples included in
tcpEStatsPathPostCongSumRTT and
tcpEStatsPathPostCongHCSumRTT, such that the ratio is
average RTT just after congestion."
::= { tcpEStatsPathEntry 7 }
--
-- The following objects can be used to detect other types of
-- non-loss congestion signals such as source quench or ECN.
--
Mathis, et al [Page 39]
Internet-Draft Expires Jan 31, 2006 Jul 15, 2005
tcpEStatsPathECNsignals OBJECT-TYPE
SYNTAX ZeroBasedCounter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of congestion signals delivered via all forms of
explicit congestion notification including the ECE bit and
failing the ECN nonce check, etc."
::= { tcpEStatsPathEntry 8 }
tcpEStatsPathECERcvd OBJECT-TYPE
SYNTAX ZeroBasedCounter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of congestion signals received via the [RFC3168]
ECE bit."
::= { tcpEStatsPathEntry 9 }
tcpEStatsPathQuenchRcvd OBJECT-TYPE
SYNTAX ZeroBasedCounter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of ICMP quench messages that are treated as
congestion signals."
::= { tcpEStatsPathEntry 10 }
tcpEStatsPathSumRTT OBJECT-TYPE
SYNTAX ZeroBasedCounter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The sum of all sampled round trip times, in milliseconds."
::= { tcpEStatsPathEntry 11 }
tcpEStatsPathHCSumRTT OBJECT-TYPE
SYNTAX ZeroBasedCounter64
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The sum of all sampled round trip times, in milliseconds,
on all systems that implement multiple concurrent RTT
measurements."
::= { tcpEStatsPathEntry 12 }
tcpEStatsPathCountRTT OBJECT-TYPE
SYNTAX ZeroBasedCounter32
Mathis, et al [Page 40]
Internet-Draft Expires Jan 31, 2006 Jul 15, 2005
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of round trip time samples included in
tcpEStatsPerfSumRTT."
::= { tcpEStatsPathEntry 13 }
tcpEStatsPathCERcvd OBJECT-TYPE
SYNTAX ZeroBasedCounter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Received segments with Congestion Experienced bits. See
[RFC3168]."
::= { tcpEStatsPathEntry 14 }
tcpEStatsPathECNSent OBJECT-TYPE
SYNTAX ZeroBasedCounter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Number of times CE bits have set ECN. See [RFC3168]."
::= { tcpEStatsPathEntry 15 }
tcpEStatsPathECNNonceRcvd OBJECT-TYPE
SYNTAX ZeroBasedCounter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Number of ECN Nonces received. Note that the low bit is the
same as the one bit nonce sum."
::= { tcpEStatsPathEntry 16 }
-- ================================================================
--
-- Additional 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
path."
::= { tcpEStats 4 }
Mathis, et al [Page 41]
Internet-Draft Expires Jan 31, 2006 Jul 15, 2005
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 {
tcpEStatsStackMSSSent Unsigned32,
tcpEStatsStackMSSRcvd Unsigned32,
tcpEStatsStackWinScaleSent Integer32,
tcpEStatsStackWinScaleRcvd Integer32,
tcpEStatsStackSACKokSent TruthValue,
tcpEStatsStackSACKokRcvd TruthValue,
tcpEStatsStackTimeStampSent TruthValue,
tcpEStatsStackTimeStampRcvd TruthValue,
tcpEStatsStackSoftErrors ZeroBasedCounter32,
tcpEStatsStackSoftErrorReason INTEGER,
tcpEStatsStackSndInitial Counter32,
tcpEStatsStackRecInitial Counter32,
tcpEStatsStackSlowStart ZeroBasedCounter32,
tcpEStatsStackCongAvoid ZeroBasedCounter32,
tcpEStatsStackOtherReductions ZeroBasedCounter32,
tcpEStatsStackCongOverCount ZeroBasedCounter32,
tcpEStatsStackInRecovery INTEGER,
tcpEStatsStackFastRetran ZeroBasedCounter32,
tcpEStatsStackSubsequentTimeouts ZeroBasedCounter32,
tcpEStatsStackCurTimeoutCount Gauge32,
tcpEStatsStackAbruptTimeouts ZeroBasedCounter32,
tcpEStatsStackSACKsRcvd ZeroBasedCounter32,
tcpEStatsStackSACKBlocksRcvd ZeroBasedCounter32,
tcpEStatsStackSendStall ZeroBasedCounter32,
tcpEStatsStackDSACKDups ZeroBasedCounter32,
tcpEStatsStackSampleRTT Gauge32,
tcpEStatsStackMaxRTO Gauge32,
tcpEStatsStackMinRTO Gauge32,
tcpEStatsStackMaxMSS Gauge32,
tcpEStatsStackMinMSS Gauge32,
tcpEStatsStackCurRetxQueue Gauge32,
tcpEStatsStackMaxRetxQueue Gauge32,
tcpEStatsStackCurReasmQueue Gauge32,
tcpEStatsStackMaxReasmQueue Gauge32
}
Mathis, et al [Page 42]
Internet-Draft Expires Jan 31, 2006 Jul 15, 2005
--
-- The following objects reflect the options requested on the
-- SYN and/or SYN-ACK. These are useful for debugging problems
-- with TCP option negotiation.
--
tcpEStatsStackMSSSent OBJECT-TYPE
SYNTAX Unsigned32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The value sent in an MSS option, or zero if none."
::= { tcpEStatsStackEntry 1 }
tcpEStatsStackMSSRcvd OBJECT-TYPE
SYNTAX Unsigned32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The value received in an MSS option, or zero if none."
::= { tcpEStatsStackEntry 2 }
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. See [RFC1323]."
::= { tcpEStatsStackEntry 3 }
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. See [RFC1323]."
::= { tcpEStatsStackEntry 4 }
tcpEStatsStackSACKokSent OBJECT-TYPE
SYNTAX TruthValue
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"True(1) if SACKok option was sent, else false(2). See
[RFC2018]."
::= { tcpEStatsStackEntry 5 }
Mathis, et al [Page 43]
Internet-Draft Expires Jan 31, 2006 Jul 15, 2005
tcpEStatsStackSACKokRcvd OBJECT-TYPE
SYNTAX TruthValue
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"True(1) if SACKok option was received, else false(2). See
[RFC2018]."
::= { tcpEStatsStackEntry 6 }
tcpEStatsStackTimeStampSent OBJECT-TYPE
SYNTAX TruthValue
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"True(1) if Timestamp option was sent, else false(2). See
[RFC1323]."
::= { tcpEStatsStackEntry 7 }
tcpEStatsStackTimeStampRcvd OBJECT-TYPE
SYNTAX TruthValue
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"True(1) if Timestamp option was received, else false(2).
See [RFC1323]."
::= { tcpEStatsStackEntry 8 }
--
-- The following 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
"The number segments that fail various consistency tests
during TCP input processing. Soft errors might cause the
segment to be discard but some do not. Some of these soft
errors cause the the generation of a TCP ancknowledgement,
others are silently discarded."
::= { tcpEStatsStackEntry 9 }
tcpEStatsStackSoftErrorReason OBJECT-TYPE
SYNTAX INTEGER {
belowDataWindow(1),
Mathis, et al [Page 44]
Internet-Draft Expires Jan 31, 2006 Jul 15, 2005
aboveDataWindow(2),
belowAckWindow(3),
aboveAckWindow(4),
belowTSWindow(5),
aboveTSWindow(6),
dataCheckSum(7),
otherSoftError(8)
}
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"This object identities 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 - All data in the segment is to below
SND.UNA. (Normal for keep alives and possibly zero window
probes).
aboveDataWindow - Some data in the segment is above
SND.WND. (Indicates an implementation bug or serious
fraud).
belowAckWindow - ACK below SND.UNA. (Indicates that the
return path is reordering ACKs)
aboveAckWindow - An ACK for data that we have not sent.
(Indicates an implementation bug or serious fraud).
belowTSWindow - TSecr on the segment is older than the
current TS.Recent [RFC1323] (Normal for PAWS detecting data
reordered by the network.)
aboveTSWindow - TSecr on the segment is newer than the
current TS.Recent [RFC1323]. (Indicates an implementation
bug or serious fraud).
dataCheckSum - Incorrect checksum. Note that this value is
intrinsicly fragile, because the header fields used to
identify the connection may have been corrupted.
otherSoftError - All other soft errors.
Implementors are permitted to assign additional codes
greater than 8 such that all SoftErrors in their
implementation have unique codes. Management stations are
to accumulate all unassigned codes as 'otherSoftErrors'"
Mathis, et al [Page 45]
Internet-Draft Expires Jan 31, 2006 Jul 15, 2005
::= { tcpEStatsStackEntry 10 }
tcpEStatsStackSndInitial OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Initial send sequence number. Note that by definition
tcpEStatsStackSndInitial never changes for a given
connection. See [RFC793]."
::= { tcpEStatsStackEntry 11 }
tcpEStatsStackRecInitial OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Initial receive sequence number. Note that by definition
tcpEStatsStackRecInitial never changes for a given
connection. See [RFC793]."
::= { tcpEStatsStackEntry 12 }
--
-- The following 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. See [RFC2581]."
::= { tcpEStatsStackEntry 13 }
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. See
[RFC2581]."
::= { tcpEStatsStackEntry 14 }
tcpEStatsStackOtherReductions OBJECT-TYPE
SYNTAX ZeroBasedCounter32
Mathis, et al [Page 46]
Internet-Draft Expires Jan 31, 2006 Jul 15, 2005
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
experimental algorithms such as Vegas [Bra94], and
Congestion Window Validation [RFC2861].
All window reductions MUST be counted as either
tcpEStatsPerfCongSignals or tcpEStatsPerfOtherReductions."
::= { tcpEStatsStackEntry 15 }
tcpEStatsStackCongOverCount OBJECT-TYPE
SYNTAX ZeroBasedCounter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of congestion events which 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 Eiffle algorithm [RFC3522] or other
algorithms which 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 the congestion events can
not easily be backed out of tcpEStatsPerfCongSignals and
tcpEStatsPathPreCongSumCwnd, etc."
::= { tcpEStatsStackEntry 16 }
tcpEStatsStackInRecovery OBJECT-TYPE
SYNTAX INTEGER {
wcDataContiguous(1),
wcDataUnordered(2),
wcDataRecovery(3)
}
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"An integer value representing the state of the loss
recovery for this connection.
wcDataContiguous(1) indicates that the remote receiver is
reporting contiguous data (no duplicate acknowledgments or
SACK options) and that there are no unacknowledged
retransmissions.
Mathis, et al [Page 47]
Internet-Draft Expires Jan 31, 2006 Jul 15, 2005
wcDataUnordered(2) indicates that the remote receiver is
reporting missing or out-of-order data (sending duplicate
acknowledgments or SACK options) and that there are no
unacknowledged retransmissions (because the missing data
has not yet been retransmitted).
wcDataRecovery(3) indicates that the sender has outstanding
retransmitted data which is still in flight (i.e. is still
unacknowledged).
tcpEStatsStackInRecovery is useful for qualifying
consistency checks on other instruments. E.g. does the
total data acknowledged agree with the total data sent.
This and other checks may not be valid during recovery."
::= { tcpEStatsStackEntry 17 }
tcpEStatsStackFastRetran OBJECT-TYPE
SYNTAX ZeroBasedCounter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of invocations of the Fast Retransmit algorithm.
See [RFC2581]."
::= { tcpEStatsStackEntry 18 }
tcpEStatsStackSubsequentTimeouts 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 greater than one. See
[RFC2988]."
::= { tcpEStatsStackEntry 19 }
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.
CurTimeoutCount is reset to zero when new data is
acknowledged. See [RFC2988]."
::= { tcpEStatsStackEntry 20 }
tcpEStatsStackAbruptTimeouts OBJECT-TYPE
SYNTAX ZeroBasedCounter32
Mathis, et al [Page 48]
Internet-Draft Expires Jan 31, 2006 Jul 15, 2005
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 acknowledgements.
Timeouts that are preceded by duplicate acknowledgements or
other congestion signals (e.g. ECN) are not counted as
abrupt, and might have been avoided by a more sophisticated
Fast Retransmit algorithm."
::= { tcpEStatsStackEntry 21 }
tcpEStatsStackSACKsRcvd OBJECT-TYPE
SYNTAX ZeroBasedCounter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of SACK options received. See [RFC2018]."
::= { tcpEStatsStackEntry 22 }
tcpEStatsStackSACKBlocksRcvd OBJECT-TYPE
SYNTAX ZeroBasedCounter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of SACK blocks received (within SACK options)."
::= { tcpEStatsStackEntry 23 }
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 24 }
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. See [RFC2883]."
::= { tcpEStatsStackEntry 25 }
Mathis, et al [Page 49]
Internet-Draft Expires Jan 31, 2006 Jul 15, 2005
tcpEStatsStackSampleRTT OBJECT-TYPE
SYNTAX Gauge32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The most recent raw round trip time measurement, in
milliseconds, used in calculation of the RTO."
::= { tcpEStatsStackEntry 26 }
tcpEStatsStackMaxRTO OBJECT-TYPE
SYNTAX Gauge32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The maximum value of the retransmit timer RTO, in
milliseconds, not scaled by the RTO backoff multiplier. See
[RFC2988]."
::= { tcpEStatsStackEntry 27 }
tcpEStatsStackMinRTO OBJECT-TYPE
SYNTAX Gauge32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The minimum value of the retransmit timer RTO, in
milliseconds, not scaled by the RTO backoff multiplier. See
[RFC2988]."
::= { tcpEStatsStackEntry 28 }
--
-- The following objects instrument path MTU discovery.
--
tcpEStatsStackMaxMSS OBJECT-TYPE
SYNTAX Gauge32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The maximum MSS, in octets. See [RFC1191]."
::= { tcpEStatsStackEntry 29 }
tcpEStatsStackMinMSS OBJECT-TYPE
SYNTAX Gauge32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The minimum MSS, in octets. See [RFC1191]."
::= { tcpEStatsStackEntry 30 }
Mathis, et al [Page 50]
Internet-Draft Expires Jan 31, 2006 Jul 15, 2005
--
-- The following 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
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The current number of octets of data occupying the
retransmit queue."
::= { tcpEStatsStackEntry 31 }
tcpEStatsStackMaxRetxQueue OBJECT-TYPE
SYNTAX Gauge32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The maximum number of octets of data occupying the
retransmit queue."
::= { tcpEStatsStackEntry 32 }
tcpEStatsStackCurReasmQueue OBJECT-TYPE
SYNTAX Gauge32
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 33 }
tcpEStatsStackMaxReasmQueue OBJECT-TYPE
SYNTAX Gauge32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The maximum value of tcpEStatsStackCurReasmQueue"
::= { tcpEStatsStackEntry 34 }
-- ================================================================
--
-- Additional statistics for diagnosing interactions between
-- applications and TCP.
Mathis, et al [Page 51]
Internet-Draft Expires Jan 31, 2006 Jul 15, 2005
--
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
limiting TCP performance"
::= { tcpEStats 5 }
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 {
tcpEStatsAppCurAppWQueue Gauge32,
tcpEStatsAppMaxAppWQueue Gauge32,
tcpEStatsAppCurAppRQueue Gauge32,
tcpEStatsAppMaxAppRQueue Gauge32
}
tcpEStatsAppCurAppWQueue OBJECT-TYPE
SYNTAX Gauge32
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
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 1 }
tcpEStatsAppMaxAppWQueue OBJECT-TYPE
SYNTAX Gauge32
Mathis, et al [Page 52]
Internet-Draft Expires Jan 31, 2006 Jul 15, 2005
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 2 }
tcpEStatsAppCurAppRQueue OBJECT-TYPE
SYNTAX Gauge32
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 3 }
tcpEStatsAppMaxAppRQueue OBJECT-TYPE
SYNTAX Gauge32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The maximum number of octets of application data that has
been acknowledged by TCP but not yet delivered to the
application."
::= { tcpEStatsAppEntry 4 }
-- ================================================================
--
-- 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 characterize as
limiting the growth of the congestion window so as to
prevent TCP from overwhelming some component in the path."
::= { tcpEStats 6 }
Mathis, et al [Page 53]
Internet-Draft Expires Jan 31, 2006 Jul 15, 2005
tcpEStatsTuneEntry OBJECT-TYPE
SYNTAX TcpEStatsTuneEntry
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 }
::= { tcpEStatsTuneTable 1 }
TcpEStatsTuneEntry ::= SEQUENCE {
tcpEStatsTuneLimCwnd Gauge32,
tcpEStatsTuneLimSsthresh Gauge32,
tcpEStatsTuneLimRwin Gauge32
}
tcpEStatsTuneLimCwnd OBJECT-TYPE
SYNTAX Gauge32
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"A control to set the maximum congestion window which may be
used, in octets."
::= { tcpEStatsTuneEntry 1 }
tcpEStatsTuneLimSsthresh OBJECT-TYPE
SYNTAX Gauge32
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
RFC3742 by setting the max_sstrhesh 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."
::= { tcpEStatsTuneEntry 2 }
tcpEStatsTuneLimRwin OBJECT-TYPE
SYNTAX Gauge32
MAX-ACCESS read-write
STATUS current
Mathis, et al [Page 54]
Internet-Draft Expires Jan 31, 2006 Jul 15, 2005
DESCRIPTION
"A control to set the maximum window advertisement which may
be sent, in octets."
::= { tcpEStatsTuneEntry 3 }
-- ================================================================
--
-- 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
STATUS current
DESCRIPTION
"Compliance statement for all systems that implement TCP
Mathis, et al [Page 55]
Internet-Draft Expires Jan 31, 2006 Jul 15, 2005
extended statistics."
MODULE -- this module
MANDATORY-GROUPS {
tcpEStatsListenerGroup,
tcpEStatsConnectIdGroup,
tcpEStatsPerfGroup
}
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 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 tcpEStatsPathGroup
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 tcpEStatsStackGroup
DESCRIPTION
"This group is optional for all systems."
GROUP tcpEStatsAppGroup
DESCRIPTION
"This group is optional for all systems."
GROUP tcpEStatsTuneGroup
DESCRIPTION
"This group is optional for all systems."
Mathis, et al [Page 56]
Internet-Draft Expires Jan 31, 2006 Jul 15, 2005
GROUP tcpEStatsNotificationsGroup
DESCRIPTION
"This group is optional for all systems."
GROUP tcpEStatsNotificationsCtlGroup
DESCRIPTION
"This group is mandatory for systems that include the
tcpEStatsNotificationGroup."
OBJECT tcpEStatsControlNotify
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."
::= { tcpEStatsCompliances 1 }
-- ================================================================
--
-- Units of Conformance
--
tcpEStatsListenerGroup OBJECT-GROUP
OBJECTS {
tcpEStatsListenerTableLastChange,
tcpEStatsListenerStartTime,
tcpEStatsListenerSynRcvd,
tcpEStatsListenerInitial,
tcpEStatsListenerEstablished,
tcpEStatsListenerAccepted,
tcpEStatsListenerExceedBacklog,
tcpEStatsListenerCurrConns,
tcpEStatsListenerMaxBacklog,
tcpEStatsListenerCurBacklog,
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
Mathis, et al [Page 57]
Internet-Draft Expires Jan 31, 2006 Jul 15, 2005
}
STATUS current
DESCRIPTION
"The tcpEStatsListenerHC group includes 64 bit
counter 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 {
tcpEStatsPerfState, tcpEStatsPerfSACK,
tcpEStatsPerfTimeStamps, tcpEStatsPerfECN,
tcpEStatsPerfNagle, tcpEStatsPerfSndWindScale,
tcpEStatsPerfRcvWindScale,
tcpEStatsPerfActiveOpen, tcpEStatsPerfSegsOut,
tcpEStatsPerfDataSegsOut,
tcpEStatsPerfDataOctetsOut, tcpEStatsPerfSegsIn,
tcpEStatsPerfDataSegsIn,
tcpEStatsPerfDataOctetsIn, tcpEStatsPerfCurMSS,
tcpEStatsPerfSndUna, tcpEStatsPerfSndNxt,
tcpEStatsPerfSndMax, tcpEStatsPerfThruOctetsAcked,
tcpEStatsPerfRcvNxt,
tcpEStatsPerfThruOctetsReceived,
tcpEStatsPerfElapsedSecs,
tcpEStatsPerfElapsedMicroSecs,
tcpEStatsPerfStartTimeStamp,
tcpEStatsPerfSndLimTransRwin,
tcpEStatsPerfSndLimTransCwnd,
tcpEStatsPerfSndLimTransSnd,
tcpEStatsPerfSndLimTimeRwin,
tcpEStatsPerfSndLimTimeCwnd,
tcpEStatsPerfSndLimTimeSnd,
tcpEStatsPerfCongSignals, tcpEStatsPerfCurCwnd,
tcpEStatsPerfMaxSsCwnd, tcpEStatsPerfMaxCaCwnd,
tcpEStatsPerfCurSsthresh,
tcpEStatsPerfMaxSsthresh,
tcpEStatsPerfMinSsthresh, tcpEStatsPerfPipeSize,
Mathis, et al [Page 58]
Internet-Draft Expires Jan 31, 2006 Jul 15, 2005
tcpEStatsPerfMaxPipeSize, tcpEStatsPerfTimeouts,
tcpEStatsPerfSegsRetrans,
tcpEStatsPerfOctetsRetrans,
tcpEStatsPerfDupAcksIn, tcpEStatsPerfRetranThresh,
tcpEStatsPerfNonRecovDAEpisodes,
tcpEStatsPerfSumOctetsReordered,
tcpEStatsPerfNonRecovDA, tcpEStatsPerfAckAfterFR,
tcpEStatsPerfSmoothedRTT, tcpEStatsPerfRTTVar,
tcpEStatsPerfMaxRTT, tcpEStatsPerfMinRTT,
tcpEStatsPerfCurRTO, tcpEStatsPerfCurRwinSent,
tcpEStatsPerfMaxRwinSent,
tcpEStatsPerfZeroRwinSent,
tcpEStatsPerfDupAckEpisodes,
tcpEStatsPerfDupAcksOut, tcpEStatsPerfCurRwinRcvd,
tcpEStatsPerfMaxRwinRcvd,
tcpEStatsPerfZeroRwinRcvd
}
STATUS current
DESCRIPTION
"The tcpEStatsPerf group includes those objects that
provide basic performance data for a TCP connection."
::= { tcpEStatsGroups 4 }
tcpEStatsPerfHCGroup OBJECT-GROUP
OBJECTS {
tcpEStatsPerfHCDataOctetsOut,
tcpEStatsPerfHCDataOctetsIn,
tcpEStatsPerfHCThruOctetsAcked,
tcpEStatsPerfHCThruOctetsReceived
}
STATUS current
DESCRIPTION
"The tcpEStatsPerfHC group includes 64 bit
counters in the tcpEStatsPerfTable."
::= { tcpEStatsGroups 5 }
tcpEStatsPathGroup OBJECT-GROUP
OBJECTS {
tcpEStatsControlPath,
tcpEStatsPathIpTtl, tcpEStatsPathIpTosIn,
tcpEStatsPathIpTosOut,
tcpEStatsPathPreCongSumCwnd,
tcpEStatsPathPreCongSumRTT,
tcpEStatsPathPostCongSumRTT,
tcpEStatsPathPostCongCountRTT,
tcpEStatsPathECNsignals, tcpEStatsPathECERcvd,
tcpEStatsPathQuenchRcvd, tcpEStatsPathSumRTT,
Mathis, et al [Page 59]
Internet-Draft Expires Jan 31, 2006 Jul 15, 2005
tcpEStatsPathCountRTT, tcpEStatsPathCERcvd,
tcpEStatsPathECNSent, tcpEStatsPathECNNonceRcvd
}
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 6 }
tcpEStatsPathHCGroup OBJECT-GROUP
OBJECTS {
tcpEStatsPathHCSumRTT
}
STATUS current
DESCRIPTION
"The tcpEStatsPathHC group includes 64 bit
counters in the tcpEStatsPathTable."
::= { tcpEStatsGroups 7 }
tcpEStatsStackGroup OBJECT-GROUP
OBJECTS {
tcpEStatsControlStack,
tcpEStatsStackMSSSent, tcpEStatsStackMSSRcvd,
tcpEStatsStackWinScaleSent,
tcpEStatsStackWinScaleRcvd,
tcpEStatsStackSACKokSent,
tcpEStatsStackSACKokRcvd,
tcpEStatsStackTimeStampSent,
tcpEStatsStackTimeStampRcvd,
tcpEStatsStackSoftErrors,
tcpEStatsStackSoftErrorReason,
tcpEStatsStackSndInitial,
tcpEStatsStackRecInitial, tcpEStatsStackSlowStart,
tcpEStatsStackCongAvoid,
tcpEStatsStackOtherReductions,
tcpEStatsStackCongOverCount,
tcpEStatsStackInRecovery,
tcpEStatsStackFastRetran,
tcpEStatsStackSubsequentTimeouts,
tcpEStatsStackCurTimeoutCount,
tcpEStatsStackAbruptTimeouts,
tcpEStatsStackSACKsRcvd,
tcpEStatsStackSACKBlocksRcvd,
tcpEStatsStackSendStall, tcpEStatsStackDSACKDups,
tcpEStatsStackSampleRTT, tcpEStatsStackMaxRTO,
tcpEStatsStackMinRTO, tcpEStatsStackMaxMSS,
Mathis, et al [Page 60]
Internet-Draft Expires Jan 31, 2006 Jul 15, 2005
tcpEStatsStackMinMSS, tcpEStatsStackCurRetxQueue,
tcpEStatsStackMaxRetxQueue,
tcpEStatsStackCurReasmQueue,
tcpEStatsStackMaxReasmQueue
}
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 8 }
tcpEStatsAppGroup OBJECT-GROUP
OBJECTS {
tcpEStatsControlApp,
tcpEStatsAppCurAppWQueue,
tcpEStatsAppMaxAppWQueue,
tcpEStatsAppCurAppRQueue,
tcpEStatsAppMaxAppRQueue
}
STATUS current
DESCRIPTION
"The tcpEStatsConnState group includes objects that
control the creation of the tcpEStatsAppTable,
and provide information about how applications
are interacting with each TCP connection."
::= { tcpEStatsGroups 9 }
tcpEStatsTuneGroup OBJECT-GROUP
OBJECTS {
tcpEStatsControlTune,
tcpEStatsTuneLimCwnd, tcpEStatsTuneLimSsthresh,
tcpEStatsTuneLimRwin
}
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 10 }
tcpEStatsNotificationsGroup NOTIFICATION-GROUP
NOTIFICATIONS {
tcpEStatsEstablishNotification,
tcpEStatsCloseNotification
}
Mathis, et al [Page 61]
Internet-Draft Expires Jan 31, 2006 Jul 15, 2005
STATUS current
DESCRIPTION
"Notifications sent by a TCP extended statistics agent."
::= { tcpEStatsGroups 11 }
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 12 }
END
5. Normative References
[RFC2012bis] Bill Fenner, et al, "Management Information Base for the
Transmission Control Protocol (TCP)" Internet-Draft draft-ietf-
ipngwg-rfc2012-update-00.txt, expires January 2002.
[RFC2574] U. Blumenthal, B. Wijnen, "User-based Security Model (USM) for
version 3 of the Simple Network Management Protocol (SNMPv3)",
RFC2574, April 1999.
[RFC2575] Wijnen, B., Presuhn, R., and K. McCloghrie, "View-based Access
Control Model (VACM) for the Simple Network Management Protocol
(SNMP)", RFC 2575, April 1999.
[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", STD
58, RFC 2579, April 1999.
[RFC2580] McCloghrie, K., Perkins, D., Schoenwaelder, J., Case, J.,
Rose, M., and S. Waldbusser, "Conformance Statements for SMIv2",
STD 58, RFC 2580, April 1999.
Mathis, et al [Page 62]
Internet-Draft Expires Jan 31, 2006 Jul 15, 2005
6. Informative References
[Mat97] M. Mathis, J. Semke, J. Mahdavi, T. Ott, "The Macroscopic Behav-
ior of the TCP Congestion Avoidance Algorithm", Computer Communica-
tion Review, volume 27, number3, July 1997.
[Bra94] Brakmo, L., O'Malley, S., "TCP Vegas, New Techniques for Conges-
tion Detection and Avoidance," SIGCOMM'94, London, pp 24-35, Octo-
ber 1994.
[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", SIG-
COMM'98
[Web100] Mathis, M., J. Heffner, R. Reddy, "Web100: Extended TCP Instru-
mentation for Research, Education and Diagnosis", ACM Computer Com-
munications Review, Vol 33, Num 3, July 2003.
[RFC793] J. Postel Ed., "Transmission Control Protocol", Sep 1981.
[RFC896] J. Nagle, "Congestion control in IP/TCP internetworks",
Jan-06-1984.
[RFC1122] R. Braden, Ed, "Requirements for Internet Hosts - Communica-
tion Layers", October 1989.
[RFC1191] J.C. Mogul, S.E. Deering, "Path MTU discovery", Nov-01-1990.
[RFC1323] V. Jacobson, R. Braden, D. Borman, "TCP Extensions for High
Performance", May 1992.
[RFC2012] McCloghrie, K., "SNMPv2 Management Information Base for the
Transmission Control Protocol using SMIv2", RFC 2012, November
1996.
Mathis, et al [Page 63]
Internet-Draft Expires Jan 31, 2006 Jul 15, 2005
[RFC2018] M. Mathis, J. Mahdavi, S. Floyd, A. Romanow, "TCP Selective
Acknowledgement Options", October 1996.
[RFC2021] S. Waldbusser, "Remote Network Monitoring Management Informa-
tion Base Version 2 using SMIv2", January 1997.
[RFC2474] K. Nichols, S. Blake, F. Baker, D. Black, "Definition of the
Differentiated Services Field (DS Field) in the IPv4 and IPv6 Head-
ers", December 1998.
[RFC2856] A. Bierman, K. McCloghrie, R. Presuhn, "Textual Conventions
for Additional High Capacity Data Types", June 2000.
[RFC2861] M. Handley, J. Padhye, S. Floyd, "TCP Congestion Window Vali-
dation", June 2000.
[RFC2883] S. Floyd, J. Mahdavi, M. Mathis, M. Podolsky, "An Extension to
the Selective Acknowledgement (SACK) Option for TCP", July 2000.
[RFC3168] K. Ramakrishnan, S. Floyd, D. Black, "The Addition of Explicit
Congestion Notification (ECN) to IP", September 2001.
[RFC3260] D. Grossman, "New Terminology and Clarifications for Diff-
serv", April 2002.
[RFC3291bis] M. Daniele, B. Haberman, S. Routhier, J. Schoenwaelder,
"Textual Conventions for Internet Network Addresses", Work in
progress update to RFC3291, draft-ietf-ops-rfc3291bis-06.txt,
August, 2004.
[RFC3410] Case, J., Mundy, R., Partain, D. and B. Stewart, "Introduction
and Applicability Statements for Internet-Standard Management
Framework", RFC 3410, December 2002.
[RFC3522] R. Ludwig, M. Meyer, "The Eifel Detection Algorithm for TCP",
April 2003.
Mathis, et al [Page 64]
Internet-Draft Expires Jan 31, 2006 Jul 15, 2005
[RFC2581] M. Allman, V. Paxson, W. Stevens, "TCP Congestion Control",
April 1999.
[RFC2988] V. Paxson, M. Allman, "Computing TCP's Retransmission Timer",
November 2000.
[RFC3291] M. Daniele, B. Haberman, S. Routhier, J. Schoenwaelder, "Tex-
tual Conventions for Internet Network Addresses", May 2002.
7. Security Considerations
There are a number of management objects defined in this MIB that
have 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.
There are a number of managed objects in this MIB that may contain
sensitive information. These are:
tcpEStatsConnectRemAddress tcpEStatsPerfSndUna tcpEStatsPerfSndNxt
tcpEStatsPerfSndMax tcpEStatsStackSndInitial tcpEStatsPerfRcvNxt
tcpEStatsStackRecInitial
It is thus important to control even GET access to these objects and
possibly to even encrypt the values of these objects when sending
them over the network via SNMP. Not all versions of SNMP provide
features for such a secure environment. SNMPv1 by itself is not a
secure environment. Even if the network itself is secure (for
example by using IPSec) 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.
It is recommended that implementers consider using the security
features as provided by the SNMPv3 framework. Specifically, the use
of the User-based Security Model RFC 2574 [RFC2574] and the View-
based Access Control Model RFC 2575 [RFC2575] is recommended.
It is then a customer/user responsibility to ensure that the SNMP
entity giving access to an instance of this MIB, is properly
configured to only give access to the objects to those principals
Mathis, et al [Page 65]
Internet-Draft Expires Jan 31, 2006 Jul 15, 2005
(users) that have legitimate rights to indeed GET or SET
(change/create/delete) them.
8. Contributors
The following people have contributed substantially to this document.
Some of the objects in this document were moved from an early draft
of RFC2012bis, by Bill Fenner et al.
Some of the object descriptions are based on an earlier unpublished
document by Jeff Semke.
9. Acknowledgments
This document is a product of Web100 (see: www.web100.org), a joint
project of the 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
was supported by the National Science Foundation under Grant No.
0083285 and a research grant from Cisco Systems.
10. Authors' Addresses
Matt Mathis
Raghu Reddy
John Heffner
Pittsburgh Supercomputing Center
4400 Fifth Ave
Pittsburgh, PA 15216
Phone: 412-268-4960
Email: mathis@web100.org, rreddy@psc.edu, jheffner@psc.edu
Rajiv Raghunarayan
Cisco Systems Inc.
San Jose, CA 95134
Phone: 408 853 9612
Email: raraghun@cisco.com
Jon Saperia
JDS Consulting, Inc.
174 Chapman Street
Watertown, MA 02472
Phone: 617-744-1079
Email: saperia@jdscons.com
Mathis, et al [Page 66]
Internet-Draft Expires Jan 31, 2006 Jul 15, 2005
11. 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.
12. Disclaimer of Validity
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 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.
13. Copyright Statement
Copyright (C) The Internet Society (2005).
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.
Mathis, et al [Page 67]
| PAFTECH AB 2003-2026 | 2026-04-23 11:47:10 |