idnits 2.17.1
draft-ietf-tsvwg-tcp-mib-extension-13.txt:
Checking boilerplate required by RFC 5378 and the IETF Trust (see
https://trustee.ietf.org/license-info):
----------------------------------------------------------------------------
** It looks like you're using RFC 3978 boilerplate. You should update this
to the boilerplate described in the IETF Trust License Policy document
(see https://trustee.ietf.org/license-info), which is required now.
-- Found old boilerplate from RFC 3978, Section 5.1 on line 17.
-- Found old boilerplate from RFC 3978, Section 5.5 on line 3787.
-- Found old boilerplate from RFC 3979, Section 5, paragraph 1 on line 3763.
-- Found old boilerplate from RFC 3979, Section 5, paragraph 2 on line 3770.
-- Found old boilerplate from RFC 3979, Section 5, paragraph 3 on line 3776.
** This document has an original RFC 3978 Section 5.4 Copyright Line,
instead of the newer IETF Trust Copyright according to RFC 4748.
** This document has an original RFC 3978 Section 5.5 Disclaimer, instead
of the newer disclaimer which includes the IETF Trust according to RFC
4748.
Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt:
----------------------------------------------------------------------------
== No 'Intended status' indicated for this document; assuming Proposed
Standard
Checking nits according to https://www.ietf.org/id-info/checklist :
----------------------------------------------------------------------------
No issues found here.
Miscellaneous warnings:
----------------------------------------------------------------------------
== The copyright year in the RFC 3978 Section 5.4 Copyright Line does not
match the current year
== The document seems to use 'NOT RECOMMENDED' as an RFC 2119 keyword, but
does not include the phrase in its RFC 2119 key words list.
-- The document seems to lack a disclaimer for pre-RFC5378 work, but may
have content which was first submitted before 10 November 2008. If you
have contacted all the original authors and they are all willing to grant
the BCP78 rights to the IETF Trust, then this is fine, and you can ignore
this comment. If not, you may need to add the pre-RFC5378 disclaimer.
(See the Legal Provisions document at
https://trustee.ietf.org/license-info for more information.)
-- The document date () is 739382 days in the past. Is this intentional?
Checking references for intended status: Proposed Standard
----------------------------------------------------------------------------
(See RFCs 3967 and 4897 for information about using normative references
to lower-maturity documents in RFCs)
== Unused Reference: 'RFC791' is defined on line 3591, but no explicit
reference was found in the text
== Unused Reference: 'RFC1122' is defined on line 3597, but no explicit
reference was found in the text
== Unused Reference: 'RFC1191' is defined on line 3600, but no explicit
reference was found in the text
== Unused Reference: 'RFC1323' is defined on line 3603, but no explicit
reference was found in the text
== Unused Reference: 'RFC2018' is defined on line 3606, but no explicit
reference was found in the text
== Unused Reference: 'RFC2883' is defined on line 3636, but no explicit
reference was found in the text
== Unused Reference: 'RFC3168' is defined on line 3643, but no explicit
reference was found in the text
== Unused Reference: 'RFC3260' is defined on line 3646, but no explicit
reference was found in the text
== Unused Reference: 'RFC3517' is defined on line 3649, but no explicit
reference was found in the text
== Unused Reference: 'RFC3540' is defined on line 3656, but no explicit
reference was found in the text
== Unused Reference: 'RFC3742' is defined on line 3659, but no explicit
reference was found in the text
** Obsolete normative reference: RFC 793 (Obsoleted by RFC 9293)
** Obsolete normative reference: RFC 1323 (Obsoleted by RFC 7323)
** Obsolete normative reference: RFC 2021 (Obsoleted by RFC 4502)
** Obsolete normative reference: RFC 2581 (Obsoleted by RFC 5681)
** Obsolete normative reference: RFC 2861 (Obsoleted by RFC 7661)
** Obsolete normative reference: RFC 2988 (Obsoleted by RFC 6298)
** Downref: Normative reference to an Informational RFC: RFC 3260
** Obsolete normative reference: RFC 3517 (Obsoleted by RFC 6675)
** Downref: Normative reference to an Experimental RFC: RFC 3522
** Downref: Normative reference to an Historic RFC: RFC 3540
** Downref: Normative reference to an Experimental RFC: RFC 3742
== Outdated reference: A later version (-05) exists of
draft-ietf-tcpm-syn-flood-00
Summary: 14 errors (**), 0 flaws (~~), 15 warnings (==), 7 comments (--).
Run idnits with the --verbose option for more detailed information about
the items above.
--------------------------------------------------------------------------------
2 Internet-Draft Matt Mathis
3 John Heffner
4 Pittsburgh Supercomputing Center
5 Rajiv Raghunarayan
6 Cisco Systems
8 TCP Extended Statistics MIB
9 draft-ietf-tsvwg-tcp-mib-extension-13.txt
10 Thu Dec 7 21:47:50 EST 2006
12 Status of this Memo
14 By submitting this Internet-Draft, each author represents that any
15 applicable patent or other IPR claims of which he or she is aware
16 have been or will be disclosed, and any of which he or she becomes
17 aware will be disclosed, in accordance with Section 6 of BCP 79.
19 Internet-Drafts are working documents of the Internet Engineering
20 Task Force (IETF), its areas, and its working groups. Note that other
21 groups may also distribute working documents as Internet-Drafts.
23 Internet-Drafts are draft documents valid for a maximum of six months
24 and may be updated, replaced, or obsoleted by other documents at any
25 time. It is inappropriate to use Internet-Drafts as reference
26 material or to cite them other than as "work in progress."
28 The list of current Internet-Drafts can be accessed at http://
29 www.ietf.org/ietf/1id-abstracts.txt.
31 The list of Internet-Draft Shadow Directories can be accessed at
32 http://www.ietf.org/shadow.html.
34 This Internet-Draft will expire June, 2007
36 Abstract
38 This draft describes extended performance statistics for TCP. They
39 are designed to use TCP's ideal vantage point to diagnose performance
40 problems in both the network and the application. If a network based
41 application is performing poorly, TCP can determine if the bottleneck
42 is in the sender, the receiver or the network itself. If the
43 bottleneck is in the network, TCP can provide specific information
44 about its nature.
46 Table of Contents
48 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . 2
49 2. The Internet-Standard Management Framework . . . . . . . . 7
50 3. Overview . . . . . . . . . . . . . . . . . . . . . . . . . 8
51 4. TCP Extended Statistics MIB . . . . . . . . . . . . . . . . 13
52 5. Normative References . . . . . . . . . . . . . . . . . . . 74
53 6. Informative References . . . . . . . . . . . . . . . . . . 76
54 7. Security Considerations . . . . . . . . . . . . . . . . . . 77
55 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . 78
56 10. Acknowledgments . . . . . . . . . . . . . . . . . . . . . 79
57 11. Authors' Addresses . . . . . . . . . . . . . . . . . . . . 79
58 12. Intellectual Property . . . . . . . . . . . . . . . . . . 79
59 13. Disclaimer of Validity . . . . . . . . . . . . . . . . . . 80
60 14. Copyright Statement . . . . . . . . . . . . . . . . . . . 80
62 1. Introduction
64 This draft describes extended performance statistics for TCP. They
65 are designed to use TCP's ideal vantage point to diagnose performance
66 problems in both the network and the application. If a network based
67 application is performing poorly, TCP can determine if the bottleneck
68 is in the sender, the receiver or the network itself. If the
69 bottleneck is in the network, TCP can provide specific information
70 about its nature.
72 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
73 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
74 document are to be interpreted as described in RFC 2119.
76 The SNMP objects defined in this draft extend TCP MIB, as specified
77 in RFC 4022 [RFC4022]. In addition to several new scalars and other
78 objects, it augments two tables and makes one clarification to RFC
79 4022. Existing management stations for the TCP MIB are expected to
80 be fully compatible with these clarifications.
82 X. Changes
84 RFC editor, please remove this virtual section. It contains document
85 history and some information about document version control.
87 This document is automatically generated from a database of potential
88 TCP instruments. Beware that the OIDs are still likely to change
89 with future versions. The current version can be obtained from
90 . Please send all suggestions and
91 comments to tsvwg@ietf.org so they go to the entire TSV WG.
93 Changes since draft-ietf-tsvwg-tcp-mib-extension-12.txt (9-Oct-2006):
95 These changes reflect comments from the Gen-ART, Last Call Review.
97 Clarified "this implementation" language in section 3.2.
99 Corrected cut and paste errors in the descriptions of the table
100 controls.
102 Several minor wording nits.
104 Changes since draft-ietf-tsvwg-tcp-mib-extension-11.txt (3-Aug-2006):
106 Changed Matt's email address to mathis@psc.edu.
108 Changes per comments from the transport AD, Lars Eggert: Re-organized
109 the overview to improve clarity. Moved the security section ahead of
110 the references. Various nits.
112 Changes since draft-ietf-tsvwg-tcp-mib-extension-10.txt
113 (24-May-2006):
115 These changes reflect comments received during the WGLC.
117 tcpEStatsConnTableLatency is no longer restricted to be less than 30
118 seconds.
120 Added references to the descriptions of Receiver Limited and
121 Congestion limited objects (tcpEStatsPerfSndLim*).
123 Reviewed and clarified all ECN related instruments.
125 Changes since draft-ietf-tsvwg-tcp-mib-extension-09.txt (4-Mar-2006):
127 Corrected the SYNTAX for PathNonRecovDAEpisodes,
128 PathSumOctetsReordered and AppSndNxt.
130 Clarified the relationship between tcpEStatsConnTableLatency and
131 RFC4022 (TCP-MIB).
133 Changes since draft-ietf-tsvwg-tcp-mib-extension-08.txt
134 (23-Oct-2005):
136 Changed tcpEStatsConnectIdTable to augment TCP-
137 MIB::tcpConnectionTable, rather than be a stand alone table. This
138 requires this draft to clarify vague row latency language in RFC4022
139 and deleting some text about the removed objects from the overview
140 and security sections.
142 Added row latency language to all connection tables.
144 Added DEFVAL to tcpEStatsConnTableLatency.
146 Reassigned sane OIDs under tcpEStats.
148 Careful review and several clarifications of the overview section.
150 Reviewed and cleaned up all references.
152 Restructured the tcpEStatsStackTable, by moving all of the objects
153 that describe the SYN exchange to the front of the table. These
154 objects are not permitted to change once the connection is
155 established. This permits polling the latter portion of the table in
156 a single PDU.
158 Added the TcpEStatsNegotiated TC and revised the objects that
159 describe the SYN exchange to better represent the state of the
160 negotiation without separate objects for both option values and
161 negotiated states.
163 Added tcpEStatsPathRcvRTT, which is the receiver's estimate of the
164 path RTT. Later corrected it to be gauge32.
166 Changed tcpEStatsListenerCurrConns to tcpEStatsListenerCurConns to
167 agree with other "current" object names.
169 Acknowledged the efforts of the MIB Doctor and Operations area
170 director.
172 The following changes are per the MIB doctor review:
174 Minor corrections (form feeds, copyright date, etc) to pass IDnits
175 and smilint. (Note that the unassigned root OID generates to only
176 remaining warning.)
178 Moved this mib from a subtree under experimental to a subtree under
179 mib-2 and added an IANA considerations section for the root OID.
181 Added "UNITS" and "REFERENCE" clauses as appropriate.
183 Clarified the description of tcpEStatsStackInRecovery.
185 Updated the description of tcpEStatsStackSoftErrors to mention the
186 numerical values of the errors.
188 Updated the Security considerations section with new boiler plate and
189 better descriptions.
191 Moved the document revision information to (this) virtual section.
193 Replaced the TcpEStatsOperation TC with TruthValue TC.
195 Clarified the description of tcpEStatsListenerCurBacklog. Note that
196 the text still allows for TCP variants.
198 Removed references to obsolete SNMP versions from
199 tcpEStatsConnectIdTable, but did not remove doubled or further
200 restrict address types.
202 Added a new subsection to clarify that the relationship to TCP
203 standards and indicate that the underlying TCP specifications
204 deliberately encourage diversity.
206 Updated the description of the tcpEStatsPipeSize to clarify the
207 permitted diversity in implementation.
209 Added a normative reference for RFC3517.
211 Clarified the introduction to the instruments of the window updates
212 sent by the local receiver.
214 Added 2 paragraphs to the overview about TCP non-persistence across
215 reboots, and the non-persistence of all objects in this MIB.
217 Clarified the description of tcpEStatsPathECNsignals.
219 Added explicit language about counter deltas, for objects intended to
220 be used to compute ratios.
222 Removed text permitting implementers to allocate additional
223 proprietary codes for tcpEStatsStackSoftErrorReason.
225 Added language clarifying that SND.NXT, SND.UNA, etc have Counter32
226 semantics.
228 Changes since draft-ietf-tsvwg-tcp-mib-extension-07.txt (20-Feb-2005)
230 Added tcpEStatsStackSpuriousRtoDetected. Renamed AckAfterFR to
231 tcpEStatsStackSpuriousFrDetected and clarified the description.
233 Restructure the tables yet again. The perf, path, and stack tables
234 now each start out with some required objects, followed by optional
235 objects. This permits a much more logical grouping of instruments,
236 lowers the cost for a minimal implementation and encourages
237 incremental deployment.
239 Changes since draft-ietf-tsvwg-tcp-mib-extension-06.txt (20-Feb-2005)
240 Added tcpEStatsPerfPipeSize and tcpEStatsPerfMaxPipeSize to detect
241 when TCP is unable to open the window as large as permitted.
243 Added tcpEStatsStackInRecovery to indicate if the connection is
244 currently in recovery (e.g. has outstanding retransmissions), or
245 about to enter recovery.
247 Move tcpEStatsPerfSumRTT, Tcpestatsperfhcsumrtt and
248 tcpEStatsPerfCountRTT to the path table, tcpEStatsPath.
250 Added tcpEStatsPathHCGroup.
252 Move tcpEstatsPathAckAfterFR and tcpEstatsPathSndDupAckEpisodes back
253 to the performance table, tcpEStatsPerf.
255 Move tcpEStatsPerfSampleRTT, tcpEStatsPerfSampleRTT and
256 tcpEStatsPerfSampleRTT to the stack table, tcpEStatsStack.
258 Clarified the descriptions of tcpEStatsPerfDupAckEpisodes,
259 tcpEStatsPerfDupAcksOut and tcpEStatsPerfCongSignals
261 Changes since draft-ietf-tsvwg-tcp-mib-extension-05.txt
262 (17-July-2004)
264 Many changes to object descriptions MIB comments and overview to
265 improve clarity.
267 Completely restructured the per connection tables. Seven table were
268 reduced to five. The main per connection table tcpEStatsPerfTable
269 is now mandatory. Three other new tables are focused on
270 understanding the details of the behavior of the path, internal TCP
271 algorithms and the application. In addition, there is a new tuning
272 table with per-connection writable controls to work around a number
273 of common problems. Note that due to the table restructuring, most
274 of the object names listed below have changed.
276 Restructured the Listen Table (tcpEStatsListenerTable) to better
277 instrument various SYN flood defenses.
279 Removed minimal receiver window objects, and replaced them by the
280 count of the number of transitions to zero window from non-zero
281 window.
283 Replaced tcpEStatsPathIpTos by tcpEStatsPathIpTosOut and added
284 tcpEStatsPathIpTosIn.
286 Updated the descriptions of tcpEStatsDataSndNxt, tcpEStatsDataSndMax,
287 tcpEStatsDataThruOctetsAcked, tcpEStatsDataHCThruBytesAcked,
288 tcpEStatsDataThruBytesReceived, tcpEStatsDataHCThruBytesReceived,
289 consistently use RFC793 variables (SND.NXT, etc) or refer to other
290 TCP-ESTATS-MIB objects.
292 Changed tcpEStatsSynOptsMSSSent and tcpEStatsSynOptsMSSRcvd from
293 Gauge32 to Unsigned32
295 Updated descriptions of tcpEStatsConnectLocalAddress and
296 tcpEStatsConnectRemAddress to new conventions for InetAddress
298 Changes since draft-ietf-tsvwg-tcp-mib-extension-04.txt (27-Oct-2003)
299 Updated ID boiler plate to RFC3668, ID-Guidelines and fixed some
300 formatting glitches
302 Added a Table of Contents
304 Updated the description of tcpEStatsConnectionState to indicate that
305 the listen state included only for document parallelism and should
306 not be used.
308 Explained why it is useful for tcpEStatsConnectIdTable and others to
309 remain for 30 seconds after a connection closes (so you retrieve the
310 total statistics for the entire connection).
312 Added comment about not supporting writing DeleteTcb into the TCP
313 State.
315 Explained that SndNxt is not a counter because it is non-monotonic.
317 Clarified StartTime to be row creation
319 Clarified row creation to be at the first SYN unless techniques to
320 defend against SYN floods are in effect, then at connection
321 establishment.
323 Added tcpEStatsControlNotify to control the generation of
324 notifications.
326 Changed sequence numbers from ZeroBasedCounter32 to Counter32.
328 Changes since draft-ietf-tsvwg-tcp-mib-extension-03.txt (2-Mar-2003)
330 Replaced "queued" with "buffered by TCP"
332 Changed all counters in the TCP connection tables to be ZeroBased
334 Remove tcpEStatsHCInSegs, tcpEStatsHCOutSegs, which appear in as
335 tcpHCInSegs and tcpHCOutSegs in draft-ietf-ipv6-rfc2012-update-03.txt
336 and later drafts.
338 Added changes section.
340 2. The Internet-Standard Management Framework
342 For a detailed overview of the documents that describe the current
343 Internet-Standard Management Framework, please refer to section 7 of
344 RFC 3410 [RFC3410].
346 Managed objects are accessed via a virtual information store, termed
347 the Management Information Base or MIB. MIB objects are generally
348 accessed through the Simple Network Management Protocol (SNMP).
349 Objects in the MIB are defined using the mechanisms defined in the
350 Structure of Management Information (SMI). This memo specifies a MIB
351 module that is compliant to the SMIv2, which is described in STD 58,
352 RFC 2578 [RFC2578], STD 58, RFC 2579 [RFC2579] and STD 58, RFC 2580
353 [RFC2580].
355 3. Overview
357 The TCP-ESTATS-MIB defined in this memo consists of two groups of
358 scalars, seven tables and two notifications:
360 * The first group of scalars contain statistics of the TCP protocol
361 engine not covered in RFC 4022. This group consists of the single
362 scalar tcpEStatsListenerTableLastChange which provides management
363 stations with an easier mechanism to validate their listener
364 caches.
366 * The second group of scalars consist of knobs to enable and disable
367 information collection by the tables containing connection-related
368 statistics/information. For example, the tcpEStatsControlPath
369 object controls the activation of the tcpEStatsPathTable. The
370 tcpEStatsConnTableLatency object determines how long connection
371 table rows are retained after a TCP connection transitions into the
372 closed state.
374 * The tcpEStatsListenerTable augments tcpListenerTable in TCP-MIB
375 [RFC4022] to provided additional information on the active TCP
376 listeners on a device. It supports objects to monitor and diagnose
377 SYN-flood denial-of-service attacks as described below.
379 * The tcpEStatsConnectIdTable augments the tcpConnectionTable in TCP-
380 MIB [RFC4022] to provide a mapping between connection 4-tuples
381 (which index tcpConnectionTable) and an integer connection index,
382 tcpEStatsConnectIndex. The connection index is used to index into
383 the five remaining tables in this MIB module, and is designed to
384 facilitate rapid polling of multiple objects associated with one
385 TCP connection.
387 * The tcpEStatsPerfTable contains objects that are useful for
388 measuring TCP performance and first check problem diagnosis.
390 * The tcpEStatsPathTable contains objects that can be used to infer
391 detailed behavior of the Internet path, such as the extent that
392 there are segment losses or reordering, etc.
394 * The tcpEStatsStackTable contains objects that are most useful for
395 determining how well the TCP control algorithms are coping with
396 this particular path.
398 * The tcpEStatsAppTable provides objects that are useful for
399 determining if the application using TCP is limiting TCP
400 performance.
402 * The tcpEStatsTuneTable provides per connection controls that can be
403 used to work around a number of common problems that plague TCP
404 over some paths.
406 * The two notifications defined in this MIB module are
407 tcpEStatsEstablishNotification, indicating that a new connection
408 has been accepted (or established, see below), and
409 tcpEStatsCloseNotification, indicating that an existing connection
410 has recently closed.
412 3.1. MIB Initialization and Persistence
414 The TCP protocol itself is specifically designed not to preserve any
415 state whatsoever across system reboots, and enforces this by
416 requiring randomized Initial Sequence numbers and ephemeral ports
417 under any conditions where segments from old connections might
418 corrupt new connections following a reboot.
420 All of the objects in the MIB MUST have the same persistence
421 properties as the underlying TCP implementation. On a reboot, all
422 zero based counters MUST be cleared, all per connection table rows
423 MUST be deleted and all read-write objects MUST be restored to their
424 default values. It is assumed that all TCP implementation have some
425 initialization code (if nothing else to set IP addresses) that has
426 the opportunity to adjust tcpEStatsConnTableLatency and other read-
427 write scalars controlling the creation of the various tables, before
428 establishing the first TCP connection. Implementations MAY also
429 choose to make these control scalars persist across reboots.
431 The ZeroBasedCounter32 and ZeroBasedCounter64 objects in the the
432 listener and connection tables are initialized to zero when the table
433 row is created.
435 The tcpEStatsConnTableLatency object determines how long connection
436 table rows are retained after a TCP connection transitions into the
437 closed state, to permit reading final connection completion
438 statistics. In RFC4022 (TCP-MIB), the discussion of
439 tcpConnectionTable row latency (page 9) the words "soon after" are
440 understood to mean after tcpEStatsConnTableLatency, such that all
441 rows of all tables associated with one connection are retained at
442 least tcpEStatsConnTableLatency after connection close. This
443 clarification to RFC4022 only applies when TCP-ESTATS-MIB is
444 implemented. If TCP-ESTATS-MIB is not implemented, RFC4022 permits
445 an unspecified delay between connection close and row deletion.
447 3.2. Relationship to TCP standards
449 There are more than 70 RFCs and other documents that specify various
450 aspects of the Transmission Control Protocol (TCP) [roadmap]. While
451 most protocols are completely specified in one or two documents, this
452 has not proven to be feasible for TCP. TCP implements a reliable
453 end-to-end data transport service over a very weakly constrained IP
454 datagram service. The essential problem that TCP has to solve is
455 balancing the applications need for fast and reliable data transport
456 against the need to make fair, efficient and equitable use of network
457 resources, with only sparse information about the state of the
458 network or its capabilities.
460 TCP maintains this balance through the use of many estimators and
461 heuristics that regulate various aspects of the protocol. For
462 example RFC2988 describes how to calculate the retransmission timer,
463 RTO, from the the average and variance of the network round-trip-time
464 as estimated from the RTT sampled on some data segments. Although
465 these algorithms are standardized, they are a compromise which is
466 optimal for only common Internet environments. Other estimators
467 might yield better results (higher performance or more efficient use
468 of the network) in some environments, particularly under uncommon
469 conditions.
471 It is the consensus of the community that nearly all of the
472 estimators and heuristics used in TCP might be improved through
473 further research and development. For this reason nearly all of TCP
474 documents leave some latitude for future improvements, for example by
475 the use of "SHOULD" instead of "MUST" [RFC2119]. Even standard
476 algorithms that are required because they critically effect fairness
477 or the dynamic stability of Internet congestion control, include some
478 latitude for evolution. As a consequence there is considerable
479 diversity in the details of the TCP implementations actually in use
480 today.
482 The fact that the underlying algorithms are not uniform makes it
483 difficult to tightly specify a MIB. We could have chosen the point
484 of view that the MIB should publish precisely defined metrics of the
485 network path, even if they are different than the estimators in use
486 by TCP. This would make the MIB more useful as a measurement tool,
487 but less useful for understanding how any specific TCP implementation
488 is interacting with the network path and upper protocol layers. We
489 chose instead to have the MIB expose the estimators and important
490 states variables of the algorithms in use, without constraining the
491 TCP implementation.
493 As a consequence the MIB objects are defined in terms of fairly
494 abstract descriptions (e.g. Round-Trip-Time) but are intended to
495 expose the actual estimators or other state variables as they are
496 used in TCP implementations, possibly transformed (e.g. scaled or
497 otherwise adjusted) to match the spirit of the object descriptions in
498 this document.
500 This may mean that MIB objects may not be exactly comparable between
501 two different TCP implementations. A general management station can
502 only assume the the abstract descriptions, which are useful for
503 general assessment of how TCP is functioning. To a TCP implementer
504 with detailed knowledge about the TCP implementation on a specific
505 host, this MIB might be useful for debugging or evaluating the
506 algorithms in their implementation.
508 Under no conditions is this MIB intended to constrain TCP to use (or
509 exclude) any particular estimator, heuristic, algorithm or
510 implementation.
512 3.3. Diagnosing SYN-flood Denial-of-Service attacks
514 The tcpEStatsListenerTable is specifically designed to provide
515 information that is useful for diagnosing SYN-flood Denial-of-Service
516 attacks, where a server is overwhelmed by forged or otherwise
517 malicious connection attempts. There are several different
518 techniques that can be used to defend against SYN-flooding but none
519 are standardized [Edd06]. These different techniques all have the
520 same basic characteristics which are instrumentable with a common set
521 of objects even though the techniques differ greatly in the details.
523 All SYN-flood defenses avoid allocating significant resources (memory
524 or CPU) to incoming (passive open) connections until the connections
525 meet some liveness criteria (to defend against forged IP source
526 addresses) and the server has sufficient resources to process the
527 incoming request. Note that allocating resources is an
528 implementation specific event that may not correspond to a observable
529 protocol event (e.g. segments on the wire). There are two general
530 concepts that can be applied to all known SYN-flood defenses. There
531 is generally a well defined event when a connection is allocated full
532 resources, and a "backlog" - a queue of embryonic connections that
533 have been allocated only partial resources.
535 In many implementations incoming TCP connections are allocated
536 resources as a side effect of the POSIX [POSIX] accept() call. For
537 this reason we use the terminology "accepting a connection" to refer
538 to this event: committing sufficient network resources to process the
539 incoming request. Accepting a connection typically entails
540 allocating memory for the protocol control block [RFC793], the per
541 connection table rows described in this MIB and CPU resources, such
542 as process table entries or threads.
544 Note that it is not useful to accept connections before they are
545 ESTABLISHED, because this would create an easy opportunity for
546 Denial-of-Service attacks, using forged source IP addresses.
548 The backlog consists of connections that are in SYN-RCVD or
549 ESTABLISHED states, that have not been accepted. For purposes of
550 this MIB we assume that these connections have been allocated some
551 resources (e.g. an embryonic protocol control block) but not full
552 resources (e.g. do not yet have MIB table rows).
554 Note that some SYN-Flood defenses dispense with explicit SYN-RCVD
555 state by cryptographically encoding the state in the ISS of the SYN-
556 ACK (sometimes called a syn-cookie), and then using the sequence
557 number of the first ACK to reconstruct the SYN-RCVD state before
558 transitioning to the ESTABLISHED state. For these implementations
559 there is no explicit representation of the SYN-RCVD state and the
560 backlog only consists of connections that are ESTABLISHED and are
561 waiting to be ACCEPTED.
563 Furthermore, most SYN-flood defenses have some mechanism to throttle
564 connections that might otherwise overwhelm this endpoint. They
565 generally use some combination of discarding incoming SYNs and
566 discarding connections already in the backlog. This does not cause
567 all connections from legitimate clients to fail, as long as the
568 clients retransmit the SYN or first ACK as specified in RFC793. Most
569 diversity in SYN flood defenses arise from variations in these
570 algorithms to limit load, and therefore can not be instrumented with
571 a common standard MIB.
573 The Listen Table instruments all passively opened TCP connections in
574 terms of observable protocol events (e.g. sent and received segments)
575 and resource allocation events (entering the backlog and being
576 accepted). This approach eases generalization to SYN-flood
577 mechanisms that use alternate TCP state transition diagrams and
578 implicit mechanisms to encode some states.
580 4. TCP Extended Statistics MIB
582 TCP-ESTATS-MIB DEFINITIONS ::= BEGIN
583 IMPORTS
584 MODULE-IDENTITY, Counter32, Integer32, Unsigned32,
585 Gauge32, OBJECT-TYPE, mib-2,
586 NOTIFICATION-TYPE
587 FROM SNMPv2-SMI
588 MODULE-COMPLIANCE, OBJECT-GROUP, NOTIFICATION-GROUP
589 FROM SNMPv2-CONF
590 ZeroBasedCounter32
591 FROM RMON2-MIB -- [RFC2021]
592 ZeroBasedCounter64
593 FROM HCNUM-TC -- [RFC2856]
594 TEXTUAL-CONVENTION,
595 DateAndTime, TruthValue, TimeStamp
596 FROM SNMPv2-TC -- [RFC2579]
597 tcpListenerEntry, tcpConnectionEntry
598 FROM TCP-MIB; -- [RFC4022]
600 tcpEStatsMIB MODULE-IDENTITY
601 LAST-UPDATED "200612072147Z" -- Dec 7, 2006
602 ORGANIZATION "IETF TSV Working Group"
603 CONTACT-INFO
604 "Matt Mathis
605 John Heffner
606 Web100 Project
607 Pittsburgh Supercomputing Center
608 4400 Fifth Ave
609 Pittsburgh, PA 15213
610 Email: mathis@psc.edu, jheffner@psc.edu
612 Rajiv Raghunarayan
613 Cisco Systems Inc.
614 San Jose, CA 95134
615 Phone: 408 853 9612
616 Email: raraghun@cisco.com
618 Jon Saperia
619 84 Kettell Plain Road
620 Stow, MA 01775
621 Phone: 617-201-2655
622 Email: saperia@jdscons.com "
623 DESCRIPTION
624 "Documentation of TCP Extended Performance Instrumentation
625 variables from the Web100 project. [Web100]
627 Copyright (C) The Internet Society (2006). This version
628 of this MIB module is a part of RFC xxx1; see the RFC
629 itself for full legal notices."
630 -- RFC Editor: replace xxx1 with actual RFC number & remove note
632 REVISION "200612072147Z" -- Dec 7, 2006
633 DESCRIPTION
634 "Initial version, published as RFC xxx1."
635 -- RFC Editor assigns RFC xxx1
636 ::= { mib-2 xxx2 }
637 -- RFC Editor: IANA assigns base OID xxx2
639 tcpEStatsNotifications OBJECT IDENTIFIER ::= { tcpEStatsMIB 0 }
640 tcpEStatsMIBObjects OBJECT IDENTIFIER ::= { tcpEStatsMIB 1 }
641 tcpEStatsConformance OBJECT IDENTIFIER ::= { tcpEStatsMIB 2 }
642 tcpEStats OBJECT IDENTIFIER ::= { tcpEStatsMIBObjects 1 }
643 tcpEStatsControl OBJECT IDENTIFIER ::= { tcpEStatsMIBObjects 2 }
644 tcpEStatsScalar OBJECT IDENTIFIER ::= { tcpEStatsMIBObjects 3 }
646 --
647 -- Textual Conventions
648 --
650 TcpEStatsNegotiated ::= TEXTUAL-CONVENTION
651 STATUS current
652 DESCRIPTION
653 "Indicates if some optional TCP feature was negotiated.
655 Enabled(1) indicates that the feature was successfully
656 negotiated on, which generally requires both host to agree
657 to use the feature.
659 selfDisabled(2) indicates that the local host refused the
660 feature because it is not implemented, configured off or
661 refused for some other reason, such as the lack of
662 resources.
664 peerDisabled(3) indicates that the local host was willing
665 to negotiate the feature, but the remote host did not
666 do so."
667 SYNTAX INTEGER {
668 enabled(1),
669 selfDisabled(2),
670 peerDisabled(3)
671 }
673 --
674 -- TCP Extended statistics scalars
675 --
677 tcpEStatsListenerTableLastChange OBJECT-TYPE
678 SYNTAX TimeStamp
679 MAX-ACCESS read-only
680 STATUS current
681 DESCRIPTION
682 "The value of sysUpTime at the time of the last
683 creation or deletion of an entry in the tcpListenerTable.
684 If the number of entries has been unchanged since the
685 last re-initialization of the local network management
686 subsystem, then this object contains a zero value."
687 ::= { tcpEStatsScalar 3 }
689 -- ================================================================
690 --
691 -- The tcpEStatsControl Group
692 --
694 -- The scalar objects in this group are used to control the
695 -- activation and deactivation of the TCP Extended Statistics
696 -- tables and notifications in this module.
697 --
699 tcpEStatsControlPath OBJECT-TYPE
700 SYNTAX TruthValue
701 MAX-ACCESS read-write
702 STATUS current
703 DESCRIPTION
704 "Controls the activation of the TCP Path Statistics
705 table.
707 A value 'true' indicates that the TCP Path Statistics
708 table is active, while 'false' indicates that the
709 table is inactive."
710 DEFVAL { false }
711 ::= { tcpEStatsControl 1 }
713 tcpEStatsControlStack OBJECT-TYPE
714 SYNTAX TruthValue
715 MAX-ACCESS read-write
716 STATUS current
717 DESCRIPTION
718 "Controls the activation of the TCP Stack Statistics
719 table.
721 A value 'true' indicates that the TCP Stack Statistics
722 table is active, while 'false' indicates that the
723 table is inactive."
724 DEFVAL { false }
725 ::= { tcpEStatsControl 2 }
727 tcpEStatsControlApp OBJECT-TYPE
728 SYNTAX TruthValue
729 MAX-ACCESS read-write
730 STATUS current
731 DESCRIPTION
732 "Controls the activation of the TCP Application
733 Statistics table.
735 A value 'true' indicates that the TCP Application
736 Statistics table is active, while 'false' indicates
737 that the table is inactive."
738 DEFVAL { false }
739 ::= { tcpEStatsControl 3 }
741 tcpEStatsControlTune OBJECT-TYPE
742 SYNTAX TruthValue
743 MAX-ACCESS read-write
744 STATUS current
745 DESCRIPTION
746 "Controls the activation of the TCP Tuning table.
748 A value 'true' indicates that the TCP Tuning
749 table is active, while 'false' indicates that the
750 table is inactive."
751 DEFVAL { false }
752 ::= { tcpEStatsControl 4 }
754 tcpEStatsControlNotify OBJECT-TYPE
755 SYNTAX TruthValue
756 MAX-ACCESS read-write
757 STATUS current
758 DESCRIPTION
759 "Controls the generation of all notifications defined in
760 this MIB.
762 A value 'true' indicates that the notifications
763 are active, while 'false' indicates that the
764 notifications are inactive."
765 DEFVAL { false }
766 ::= { tcpEStatsControl 5 }
768 tcpEStatsConnTableLatency OBJECT-TYPE
769 SYNTAX Integer32
770 UNITS "seconds"
771 MAX-ACCESS read-only
772 STATUS current
773 DESCRIPTION
774 "Specifies the number of seconds that the entity will
775 retain entries in the TCP connection tables, after the
776 connection first enters the closed state. The entity
777 SHOULD provide a configuration option to enable
778 customization of this value. A value of 0
779 results in entries being removed from the tables as soon as
780 the connection enters the closed state. The value of
781 this object pertains to the following tables:
782 tcpEStatsConnectIdTable
783 tcpEStatsPerfTable
784 tcpEStatsPathTable
785 tcpEStatsStackTable
786 tcpEStatsAppTable
787 tcpEStatsTuneTable"
788 DEFVAL { 0 }
789 ::= { tcpEStatsControl 6 }
791 -- ================================================================
792 --
793 -- Listener Table
794 --
796 tcpEStatsListenerTable OBJECT-TYPE
797 SYNTAX SEQUENCE OF TcpEStatsListenerEntry
798 MAX-ACCESS not-accessible
799 STATUS current
800 DESCRIPTION
801 "This table contains information about TCP Listeners,
802 in addition to the information maintained by the
803 tcpListenerTable RFC4022."
804 ::= { tcpEStats 1 }
806 tcpEStatsListenerEntry OBJECT-TYPE
807 SYNTAX TcpEStatsListenerEntry
808 MAX-ACCESS not-accessible
809 STATUS current
810 DESCRIPTION
811 "Each entry in the table contains information about
812 a specific TCP Listener."
813 AUGMENTS { tcpListenerEntry }
814 ::= { tcpEStatsListenerTable 1 }
816 TcpEStatsListenerEntry ::= SEQUENCE {
817 tcpEStatsListenerStartTime TimeStamp,
818 tcpEStatsListenerSynRcvd ZeroBasedCounter32,
819 tcpEStatsListenerInitial ZeroBasedCounter32,
820 tcpEStatsListenerEstablished ZeroBasedCounter32,
821 tcpEStatsListenerAccepted ZeroBasedCounter32,
822 tcpEStatsListenerExceedBacklog ZeroBasedCounter32,
823 tcpEStatsListenerHCSynRcvd ZeroBasedCounter64,
824 tcpEStatsListenerHCInitial ZeroBasedCounter64,
825 tcpEStatsListenerHCEstablished ZeroBasedCounter64,
826 tcpEStatsListenerHCAccepted ZeroBasedCounter64,
827 tcpEStatsListenerHCExceedBacklog ZeroBasedCounter64,
828 tcpEStatsListenerCurConns Gauge32,
829 tcpEStatsListenerMaxBacklog Integer32,
830 tcpEStatsListenerCurBacklog Gauge32,
831 tcpEStatsListenerCurEstabBacklog Gauge32
832 }
834 tcpEStatsListenerStartTime OBJECT-TYPE
835 SYNTAX TimeStamp
836 MAX-ACCESS read-only
837 STATUS current
838 DESCRIPTION
839 "The value of sysUpTime at the time this listener was
840 established. If the current state was entered prior to
841 the last re-initialization of the local network management
842 subsystem, then this object contains a zero value."
843 ::= { tcpEStatsListenerEntry 1 }
845 tcpEStatsListenerSynRcvd OBJECT-TYPE
846 SYNTAX ZeroBasedCounter32
847 MAX-ACCESS read-only
848 STATUS current
849 DESCRIPTION
850 "The number of SYNs which have been received for this
851 listener. The total number of failed connections for
852 all reasons can be estimated to be tcpEStatsListenerSynRcvd
853 minus tcpEStatsListenerAccepted and
854 tcpEStatsListenerCurBacklog."
855 ::= { tcpEStatsListenerEntry 2 }
857 tcpEStatsListenerInitial OBJECT-TYPE
858 SYNTAX ZeroBasedCounter32
859 MAX-ACCESS read-only
860 STATUS current
861 DESCRIPTION
862 "The total number of connections for which the Listener
863 has allocated initial state and placed the
864 connection in the backlog. The may happen in the
865 SYN-RCVD or ESTABLISHED states, depending on the
866 implementation."
867 ::= { tcpEStatsListenerEntry 3 }
869 tcpEStatsListenerEstablished OBJECT-TYPE
870 SYNTAX ZeroBasedCounter32
871 MAX-ACCESS read-only
872 STATUS current
873 DESCRIPTION
874 "The number of connections which have been established to
875 this endpoint. E.g. The number of first ACKs which have
876 been received for this listener."
877 ::= { tcpEStatsListenerEntry 4 }
879 tcpEStatsListenerAccepted OBJECT-TYPE
880 SYNTAX ZeroBasedCounter32
881 MAX-ACCESS read-only
882 STATUS current
883 DESCRIPTION
884 "The total number of connections for which the Listener
885 has successfully issued an accept, removing the connection
886 from the backlog."
887 ::= { tcpEStatsListenerEntry 5 }
889 tcpEStatsListenerExceedBacklog OBJECT-TYPE
890 SYNTAX ZeroBasedCounter32
891 MAX-ACCESS read-only
892 STATUS current
893 DESCRIPTION
894 "The total number of connections dropped from the
895 backlog by this listener due to all reasons. This
896 includes all connections that are allocated initial
897 resources but are not accepted for some reason."
898 ::= { tcpEStatsListenerEntry 6 }
900 tcpEStatsListenerHCSynRcvd OBJECT-TYPE
901 SYNTAX ZeroBasedCounter64
902 MAX-ACCESS read-only
903 STATUS current
904 DESCRIPTION
905 "The number of SYNs which have been received for this
906 listener on systems that can process (or reject) more
907 than 1 million connections per second. See
908 tcpEStatsListenerSynRcvd."
909 ::= { tcpEStatsListenerEntry 7 }
911 tcpEStatsListenerHCInitial OBJECT-TYPE
912 SYNTAX ZeroBasedCounter64
913 MAX-ACCESS read-only
914 STATUS current
915 DESCRIPTION
916 "The total number of connections for which the Listener
917 has allocated initial state and placed the connection
918 in the backlog on systems that can process (or reject)
919 more than 1 million connections per second. See
920 tcpEStatsListenerInitial."
921 ::= { tcpEStatsListenerEntry 8 }
923 tcpEStatsListenerHCEstablished OBJECT-TYPE
924 SYNTAX ZeroBasedCounter64
925 MAX-ACCESS read-only
926 STATUS current
927 DESCRIPTION
928 "The number of connections which have been established to
929 this endpoint on systems that can process (or reject) more
930 than 1 million connections per second. See
931 tcpEStatsListenerEstablished."
932 ::= { tcpEStatsListenerEntry 9 }
934 tcpEStatsListenerHCAccepted OBJECT-TYPE
935 SYNTAX ZeroBasedCounter64
936 MAX-ACCESS read-only
937 STATUS current
938 DESCRIPTION
939 "The total number of connections for which the Listener
940 has successfully issued an accept, removing the connection
941 from the backlog on systems that can process (or reject)
942 more than 1 million connections per second. See
943 tcpEStatsListenerAccepted."
944 ::= { tcpEStatsListenerEntry 10 }
946 tcpEStatsListenerHCExceedBacklog OBJECT-TYPE
947 SYNTAX ZeroBasedCounter64
948 MAX-ACCESS read-only
949 STATUS current
950 DESCRIPTION
951 "The total number of connections dropped from the
952 backlog by this listener due to all reasons on
953 systems that can process (or reject) more than
954 1 million connections per second. See
955 tcpEStatsListenerHCExceedBacklog."
956 ::= { tcpEStatsListenerEntry 11 }
958 tcpEStatsListenerCurConns OBJECT-TYPE
959 SYNTAX Gauge32
960 MAX-ACCESS read-only
961 STATUS current
962 DESCRIPTION
963 "The current number of connections in the ESTABLISHED
964 state, which have also been accepted. It excludes
965 connections that have been established but not accepted
966 because they are still subject to being discarded to
967 shed load without explicit action by either endpoint."
968 ::= { tcpEStatsListenerEntry 12 }
970 tcpEStatsListenerMaxBacklog OBJECT-TYPE
971 SYNTAX Integer32
972 MAX-ACCESS read-only
973 STATUS current
974 DESCRIPTION
975 "The maximum number of connections allowed in
976 backlog at one time."
977 ::= { tcpEStatsListenerEntry 13 }
979 tcpEStatsListenerCurBacklog OBJECT-TYPE
980 SYNTAX Gauge32
981 MAX-ACCESS read-only
982 STATUS current
983 DESCRIPTION
984 "The current number of connections that are in backlog.
985 This gauge includes connections in ESTABLISHED or
986 SYN-RECEIVED states for which the Listener has not yet
987 issued an accept.
989 If this listener is using some technique to implicitly
990 represent the SYN-RECEIVED states, e.g. by
991 cryptographically encoding the state information in the
992 initial sequence number (ISS), it MAY elect to exclude
993 connections in the SYN-RECEIVED state from the backlog."
994 ::= { tcpEStatsListenerEntry 14 }
996 tcpEStatsListenerCurEstabBacklog OBJECT-TYPE
997 SYNTAX Gauge32
998 MAX-ACCESS read-only
999 STATUS current
1000 DESCRIPTION
1001 "The current number of connections in backlog that are
1002 in the ESTABLISHED state, but for which the Listener has
1003 not yet issued an accept."
1004 ::= { tcpEStatsListenerEntry 15 }
1006 -- ================================================================
1007 --
1008 -- TCP Connection ID Table
1009 --
1011 tcpEStatsConnectIdTable OBJECT-TYPE
1012 SYNTAX SEQUENCE OF TcpEStatsConnectIdEntry
1013 MAX-ACCESS not-accessible
1014 STATUS current
1015 DESCRIPTION
1016 "This table maps information that uniquely identifies
1017 each active TCP connection to the connection ID used by
1018 other tables in this MIB Module. It is an extention of
1019 tcpConnectionTable in RFC4022.
1021 Entries are retained in this table for the number of
1022 seconds indicated by the tcpEStatsConnTableLatency
1023 object, after the TCP connection first enters the closed
1024 state."
1025 ::= { tcpEStats 2 }
1027 tcpEStatsConnectIdEntry OBJECT-TYPE
1028 SYNTAX TcpEStatsConnectIdEntry
1029 MAX-ACCESS not-accessible
1030 STATUS current
1031 DESCRIPTION
1032 "Each entry in this table maps a TCP connection
1033 4-tuple to a connection index."
1034 AUGMENTS { tcpConnectionEntry }
1035 ::= { tcpEStatsConnectIdTable 1 }
1037 TcpEStatsConnectIdEntry ::= SEQUENCE {
1038 tcpEStatsConnectIndex Unsigned32
1039 }
1041 tcpEStatsConnectIndex OBJECT-TYPE
1042 SYNTAX Unsigned32
1043 MAX-ACCESS read-only
1044 STATUS current
1045 DESCRIPTION
1046 "A unique integer value assigned to each TCP Connection
1047 entry. Assignment will begin at 1 and increase to the
1048 maximum value and then start again at 1 skipping in use
1049 values."
1050 ::= { tcpEStatsConnectIdEntry 1 }
1052 -- ================================================================
1053 --
1054 -- Basic TCP Performance Statistics
1055 --
1057 tcpEStatsPerfTable OBJECT-TYPE
1058 SYNTAX SEQUENCE OF TcpEStatsPerfEntry
1059 MAX-ACCESS not-accessible
1060 STATUS current
1061 DESCRIPTION
1063 "This table contains objects that are useful for
1064 measuring TCP performance and first line problem
1065 diagnosis. Most objects in this table directly expose
1066 some TCP state variable or are easily implemented as
1067 simple functions (e.g. Maximum) of TCP state variables.
1069 Entries are retained in this table for the number of
1070 seconds indicated by the tcpEStatsConnTableLatency
1071 object, after the TCP connection first enters the closed
1072 state."
1073 ::= { tcpEStats 3 }
1075 tcpEStatsPerfEntry OBJECT-TYPE
1076 SYNTAX TcpEStatsPerfEntry
1077 MAX-ACCESS not-accessible
1078 STATUS current
1079 DESCRIPTION
1080 "Each entry in this table has information about the
1081 characteristics of each active and recently closed tcp
1082 connection."
1083 INDEX { tcpEStatsConnectIndex }
1084 ::= { tcpEStatsPerfTable 1 }
1086 TcpEStatsPerfEntry ::= SEQUENCE {
1088 tcpEStatsPerfSegsOut ZeroBasedCounter32,
1089 tcpEStatsPerfDataSegsOut ZeroBasedCounter32,
1090 tcpEStatsPerfDataOctetsOut ZeroBasedCounter32,
1091 tcpEStatsPerfHCDataOctetsOut ZeroBasedCounter64,
1092 tcpEStatsPerfSegsRetrans ZeroBasedCounter32,
1093 tcpEStatsPerfOctetsRetrans ZeroBasedCounter32,
1094 tcpEStatsPerfSegsIn ZeroBasedCounter32,
1095 tcpEStatsPerfDataSegsIn ZeroBasedCounter32,
1096 tcpEStatsPerfDataOctetsIn ZeroBasedCounter32,
1097 tcpEStatsPerfHCDataOctetsIn ZeroBasedCounter64,
1098 tcpEStatsPerfElapsedSecs ZeroBasedCounter32,
1099 tcpEStatsPerfElapsedMicroSecs ZeroBasedCounter32,
1100 tcpEStatsPerfStartTimeStamp DateAndTime,
1101 tcpEStatsPerfCurMSS Gauge32,
1102 tcpEStatsPerfPipeSize Gauge32,
1103 tcpEStatsPerfMaxPipeSize Gauge32,
1104 tcpEStatsPerfSmoothedRTT Gauge32,
1105 tcpEStatsPerfCurRTO Gauge32,
1106 tcpEStatsPerfCongSignals ZeroBasedCounter32,
1107 tcpEStatsPerfCurCwnd Gauge32,
1108 tcpEStatsPerfCurSsthresh Gauge32,
1109 tcpEStatsPerfTimeouts ZeroBasedCounter32,
1110 tcpEStatsPerfCurRwinSent Gauge32,
1111 tcpEStatsPerfMaxRwinSent Gauge32,
1112 tcpEStatsPerfZeroRwinSent Gauge32,
1113 tcpEStatsPerfCurRwinRcvd Gauge32,
1114 tcpEStatsPerfMaxRwinRcvd Gauge32,
1115 tcpEStatsPerfZeroRwinRcvd Gauge32,
1116 tcpEStatsPerfSndLimTransRwin ZeroBasedCounter32,
1117 tcpEStatsPerfSndLimTransCwnd ZeroBasedCounter32,
1118 tcpEStatsPerfSndLimTransSnd ZeroBasedCounter32,
1119 tcpEStatsPerfSndLimTimeRwin ZeroBasedCounter32,
1120 tcpEStatsPerfSndLimTimeCwnd ZeroBasedCounter32,
1121 tcpEStatsPerfSndLimTimeSnd ZeroBasedCounter32
1122 }
1124 --
1125 -- The following objects provide statistics on aggregate
1126 -- segments and data sent on a connection. These provide a
1127 -- direct measure of the Internet capacity consumed by a
1128 -- connection.
1129 --
1131 tcpEStatsPerfSegsOut OBJECT-TYPE
1132 SYNTAX ZeroBasedCounter32
1133 MAX-ACCESS read-only
1134 STATUS current
1135 DESCRIPTION
1136 "The total number of segments sent."
1137 ::= { tcpEStatsPerfEntry 1 }
1139 tcpEStatsPerfDataSegsOut OBJECT-TYPE
1140 SYNTAX ZeroBasedCounter32
1141 MAX-ACCESS read-only
1142 STATUS current
1143 DESCRIPTION
1144 "The number of segments sent containing a positive length
1145 data segment."
1146 ::= { tcpEStatsPerfEntry 2 }
1148 tcpEStatsPerfDataOctetsOut OBJECT-TYPE
1149 SYNTAX ZeroBasedCounter32
1150 UNITS "octets"
1151 MAX-ACCESS read-only
1152 STATUS current
1153 DESCRIPTION
1154 "The number of octets of data contained in transmitted
1155 segments, including retransmitted data. Note that this does
1156 not include TCP headers."
1157 ::= { tcpEStatsPerfEntry 3 }
1159 tcpEStatsPerfHCDataOctetsOut OBJECT-TYPE
1160 SYNTAX ZeroBasedCounter64
1161 UNITS "octets"
1162 MAX-ACCESS read-only
1163 STATUS current
1164 DESCRIPTION
1165 "The number of octets of data contained in transmitted
1166 segments, including retransmitted data, on systems that can
1167 transmit more than 10 million bits per second. Note that
1168 this does not include TCP headers."
1169 ::= { tcpEStatsPerfEntry 4 }
1171 tcpEStatsPerfSegsRetrans OBJECT-TYPE
1172 SYNTAX ZeroBasedCounter32
1173 MAX-ACCESS read-only
1174 STATUS current
1175 DESCRIPTION
1176 "The number of segments transmitted containing at least some
1177 retransmitted data."
1178 REFERENCE
1179 "RFC793, Transmission Control Protocol"
1180 ::= { tcpEStatsPerfEntry 5 }
1182 tcpEStatsPerfOctetsRetrans OBJECT-TYPE
1183 SYNTAX ZeroBasedCounter32
1184 UNITS "octets"
1185 MAX-ACCESS read-only
1186 STATUS current
1187 DESCRIPTION
1188 "The number of octets retransmitted."
1189 REFERENCE
1190 "RFC793, Transmission Control Protocol"
1191 ::= { tcpEStatsPerfEntry 6 }
1193 tcpEStatsPerfSegsIn OBJECT-TYPE
1194 SYNTAX ZeroBasedCounter32
1195 MAX-ACCESS read-only
1196 STATUS current
1197 DESCRIPTION
1198 "The total number of segments received."
1199 ::= { tcpEStatsPerfEntry 7 }
1201 tcpEStatsPerfDataSegsIn OBJECT-TYPE
1202 SYNTAX ZeroBasedCounter32
1203 MAX-ACCESS read-only
1204 STATUS current
1205 DESCRIPTION
1206 "The number of segments received containing a positive
1207 length data segment."
1208 ::= { tcpEStatsPerfEntry 8 }
1210 tcpEStatsPerfDataOctetsIn OBJECT-TYPE
1211 SYNTAX ZeroBasedCounter32
1212 UNITS "octets"
1213 MAX-ACCESS read-only
1214 STATUS current
1215 DESCRIPTION
1216 "The number of octets contained in received data segments,
1217 including retransmitted data. Note that this does not
1218 include TCP headers."
1219 ::= { tcpEStatsPerfEntry 9 }
1221 tcpEStatsPerfHCDataOctetsIn OBJECT-TYPE
1222 SYNTAX ZeroBasedCounter64
1223 UNITS "octets"
1224 MAX-ACCESS read-only
1225 STATUS current
1226 DESCRIPTION
1227 "The number of octets contained in received data segments,
1228 including retransmitted data, on systems that can receive
1229 more than 10 million bits per second. Note that this does
1230 not include TCP headers."
1231 ::= { tcpEStatsPerfEntry 10 }
1233 tcpEStatsPerfElapsedSecs OBJECT-TYPE
1234 SYNTAX ZeroBasedCounter32
1235 UNITS "seconds"
1236 MAX-ACCESS read-only
1237 STATUS current
1238 DESCRIPTION
1239 "The seconds part of the time elapsed between
1240 tcpEStatsPerfStartTimeStamp and the most recent protocol
1241 event (segment sent or received)."
1242 ::= { tcpEStatsPerfEntry 11 }
1244 tcpEStatsPerfElapsedMicroSecs OBJECT-TYPE
1245 SYNTAX ZeroBasedCounter32
1246 UNITS "microseconds"
1247 MAX-ACCESS read-only
1248 STATUS current
1249 DESCRIPTION
1250 "The micro-second part of time elapsed between
1251 tcpEStatsPerfStartTimeStamp to the most recent protocol
1252 event (segment sent or received). This may be updated in
1253 whatever time granularity is the system supports."
1254 ::= { tcpEStatsPerfEntry 12 }
1256 tcpEStatsPerfStartTimeStamp OBJECT-TYPE
1257 SYNTAX DateAndTime
1258 MAX-ACCESS read-only
1259 STATUS current
1260 DESCRIPTION
1261 "Time at which this row was created and all
1262 ZeroBasedCounters in the row were initialized to zero."
1263 ::= { tcpEStatsPerfEntry 13 }
1265 --
1266 -- The following objects can be used to fit minimal
1267 -- performance models to the TCP data rate.
1268 --
1270 tcpEStatsPerfCurMSS OBJECT-TYPE
1271 SYNTAX Gauge32
1272 UNITS "octets"
1273 MAX-ACCESS read-only
1274 STATUS current
1275 DESCRIPTION
1276 "The current maximum segment size (MSS), in octets."
1277 REFERENCE
1278 "RFC1122, Requirements for Internet Hosts - Communication
1279 Layers"
1280 ::= { tcpEStatsPerfEntry 14 }
1282 tcpEStatsPerfPipeSize OBJECT-TYPE
1283 SYNTAX Gauge32
1284 UNITS "octets"
1285 MAX-ACCESS read-only
1286 STATUS current
1287 DESCRIPTION
1288 "The TCP senders current estimate of the number of
1289 unacknowledged data octets in the network.
1291 While not in recovery (e.g. while the receiver is not
1292 reporting missing data to the sender) this is precisely the
1293 same as ``Flight size'' as defined in RFC2581, which can be
1294 computed as SND.NXT minus SND.UNA. [RFC793]
1296 During recovery the TCP sender has incomplete information
1297 about the state of the network (e.g. which segments are
1298 lost vs reordered, especially if the return path is also
1299 dropping TCP acknowledgments). Current TCP standards do not
1300 mandate any specific algorithm for estimating the number of
1301 unacknowledged data octets in the network.
1303 RFC3517 describes a conservative algorithm to use SACK
1304 information to estimate the number of unacknowledged data
1305 octets in the network. tcpEStatsPerfPipeSize object SHOULD
1306 be the the same as ``pipe'' as defined in in RFC3517 if it
1307 is implemented. (Note that while not in recovery the pipe
1308 algorithm yields the same values as flight size).
1310 If RFC3517 is not implemented, the data octets in flight
1311 SHOULD be estimated as SND.NXT minus SND.UNA adjusted by
1312 some measure of the data that has left the network and
1313 retransmitted data. For example, with Reno or NewReno style
1314 TCP, the number of duplicate acknowledgment is used to
1315 count the number of segments that have left the network.
1316 I.e.: PipeSize=SND.NXT-SND.UNA+(retransmits-dupacks)*CurMSS"
1317 REFERENCE
1318 "RFC793, RFC2581, RFC3517"
1319 ::= { tcpEStatsPerfEntry 15 }
1321 tcpEStatsPerfMaxPipeSize OBJECT-TYPE
1322 SYNTAX Gauge32
1323 UNITS "octets"
1324 MAX-ACCESS read-only
1325 STATUS current
1326 DESCRIPTION
1327 "The maximum value of tcpEStatsPerfPipeSize, for this
1328 connection."
1329 REFERENCE
1330 "RFC793, RFC2581, RFC3517"
1332 ::= { tcpEStatsPerfEntry 16 }
1334 tcpEStatsPerfSmoothedRTT OBJECT-TYPE
1335 SYNTAX Gauge32
1336 UNITS "milliseconds"
1337 MAX-ACCESS read-only
1338 STATUS current
1339 DESCRIPTION
1340 "The smoothed round trip time used in calculation of the
1341 RTO. See SRTT in [RFC2988]."
1342 REFERENCE
1343 "RFC2988, Computing TCP's Retransmission Timer"
1344 ::= { tcpEStatsPerfEntry 17 }
1346 tcpEStatsPerfCurRTO OBJECT-TYPE
1347 SYNTAX Gauge32
1348 UNITS "milliseconds"
1349 MAX-ACCESS read-only
1350 STATUS current
1351 DESCRIPTION
1352 "The current value of the retransmit timer RTO."
1353 REFERENCE
1354 "RFC2988, Computing TCP's Retransmission Timer"
1355 ::= { tcpEStatsPerfEntry 18 }
1357 tcpEStatsPerfCongSignals OBJECT-TYPE
1358 SYNTAX ZeroBasedCounter32
1359 MAX-ACCESS read-only
1360 STATUS current
1361 DESCRIPTION
1362 "The number of multiplicative downward congestion window
1363 adjustments due to all forms of congestion signals,
1364 including Fast Retransmit, ECN and timeouts. This object
1365 summarizes all events that invoke the MD portion of AIMD
1366 congestion control, and as such is the best indicator of
1367 how cwnd is being affected by congestion.
1369 Note that retransmission timeouts multiplicatively reduce
1370 the window implicitly by setting ssthresh, and SHOULD be
1371 included in tcpEStatsPerfCongSignals. In order to minimize
1372 spurious congestion indications due to out-of-order
1373 segments, tcpEStatsPerfCongSignals SHOULD be incremented in
1374 association with the Fast Retransmit algorithm."
1375 REFERENCE
1376 "RFC2581, TCP Congestion Control"
1377 ::= { tcpEStatsPerfEntry 19 }
1379 tcpEStatsPerfCurCwnd OBJECT-TYPE
1380 SYNTAX Gauge32
1381 UNITS "octets"
1382 MAX-ACCESS read-only
1383 STATUS current
1384 DESCRIPTION
1385 "The current congestion window, in octets."
1386 REFERENCE
1387 "RFC2581, TCP Congestion Control"
1388 ::= { tcpEStatsPerfEntry 20 }
1390 tcpEStatsPerfCurSsthresh OBJECT-TYPE
1391 SYNTAX Gauge32
1392 UNITS "octets"
1393 MAX-ACCESS read-only
1394 STATUS current
1395 DESCRIPTION
1396 "The current slow start threshold in octets."
1397 REFERENCE
1398 "RFC2581, TCP Congestion Control"
1399 ::= { tcpEStatsPerfEntry 21 }
1401 tcpEStatsPerfTimeouts OBJECT-TYPE
1402 SYNTAX ZeroBasedCounter32
1403 MAX-ACCESS read-only
1404 STATUS current
1405 DESCRIPTION
1406 "The number of times the retransmit timeout has expired when
1407 the RTO backoff multiplier is equal to one."
1408 REFERENCE
1409 "RFC2988, Computing TCP's Retransmission Timer"
1410 ::= { tcpEStatsPerfEntry 22 }
1412 --
1413 -- The following objects instrument receiver window updates
1414 -- sent by the local receiver to the remote sender. These can
1415 -- be used to determine if the local receiver is exerting flow
1416 -- control back pressure on the remote sender.
1417 --
1419 tcpEStatsPerfCurRwinSent OBJECT-TYPE
1420 SYNTAX Gauge32
1421 UNITS "octets"
1422 MAX-ACCESS read-only
1423 STATUS current
1424 DESCRIPTION
1425 "The most recent window advertisement sent, in octets."
1426 REFERENCE
1427 "RFC793, Transmission Control Protocol"
1429 ::= { tcpEStatsPerfEntry 23 }
1431 tcpEStatsPerfMaxRwinSent OBJECT-TYPE
1432 SYNTAX Gauge32
1433 UNITS "octets"
1434 MAX-ACCESS read-only
1435 STATUS current
1436 DESCRIPTION
1437 "The maximum window advertisement sent, in octets."
1438 REFERENCE
1439 "RFC793, Transmission Control Protocol"
1440 ::= { tcpEStatsPerfEntry 24 }
1442 tcpEStatsPerfZeroRwinSent OBJECT-TYPE
1443 SYNTAX Gauge32
1444 MAX-ACCESS read-only
1445 STATUS current
1446 DESCRIPTION
1447 "The number of acknowledgments sent announcing a zero
1448 receive window, when the previously announced window was
1449 not zero."
1450 REFERENCE
1451 "RFC793, Transmission Control Protocol"
1452 ::= { tcpEStatsPerfEntry 25 }
1454 --
1455 -- The following objects instrument receiver window updates
1456 -- from the far end-system to determine if the remote receiver
1457 -- has sufficient buffer space or is exerting flow-control
1458 -- back pressure on the local sender.
1459 --
1461 tcpEStatsPerfCurRwinRcvd OBJECT-TYPE
1462 SYNTAX Gauge32
1463 UNITS "octets"
1464 MAX-ACCESS read-only
1465 STATUS current
1466 DESCRIPTION
1467 "The most recent window advertisement received, in octets."
1468 REFERENCE
1469 "RFC793, Transmission Control Protocol"
1470 ::= { tcpEStatsPerfEntry 26 }
1472 tcpEStatsPerfMaxRwinRcvd OBJECT-TYPE
1473 SYNTAX Gauge32
1474 UNITS "octets"
1475 MAX-ACCESS read-only
1476 STATUS current
1477 DESCRIPTION
1478 "The maximum window advertisement received, in octets."
1479 REFERENCE
1480 "RFC793, Transmission Control Protocol"
1481 ::= { tcpEStatsPerfEntry 27 }
1483 tcpEStatsPerfZeroRwinRcvd OBJECT-TYPE
1484 SYNTAX Gauge32
1485 MAX-ACCESS read-only
1486 STATUS current
1487 DESCRIPTION
1488 "The number of acknowledgments received announcing a zero
1489 receive window, when the previously announced window was
1490 not zero."
1491 REFERENCE
1492 "RFC793, Transmission Control Protocol"
1493 ::= { tcpEStatsPerfEntry 28 }
1495 --
1496 -- The following optional objects can be used to quickly
1497 -- identify which subsystems are limiting TCP performance.
1498 -- There are three parallel pairs of instruments that measure
1499 -- the extent to which TCP performance is limited by the
1500 -- announced receiver window (indicating a receiver
1501 -- bottleneck), the current congestion window or
1502 -- retransmission timeout (indicating a path bottleneck) and
1503 -- all others events (indicating a sender bottleneck).
1504 --
1505 -- These instruments SHOULD be updated every time the TCP
1506 -- output routine stops sending data. The elapsed time since
1507 -- the previous stop is accumulated into the appropriate
1508 -- object as determined by the previous stop reason (e.g. stop
1509 -- state). The current stop reason determines which timer will
1510 -- be updated the next time TCP output stops.
1511 --
1512 -- Since there is no explicit stop at the beginning of a
1513 -- timeout, it is necessary to retroactively reclassify the
1514 -- previous stop as 'Congestion Limited'.
1515 --
1517 tcpEStatsPerfSndLimTransRwin OBJECT-TYPE
1518 SYNTAX ZeroBasedCounter32
1519 MAX-ACCESS read-only
1520 STATUS current
1521 DESCRIPTION
1522 "The number of transitions into the 'Receiver Limited' state
1523 from either the 'Congestion Limited' or 'Sender Limited'
1524 states. This state is entered whenever TCP transmission
1525 stops because the sender has filled the announced receiver
1526 window. I.e. when SND.NXT has advanced to SND.UNA + SND.WND
1527 - 1 as described in RFC 793."
1528 REFERENCE
1529 "RFC793, Transmission Control Protocol"
1530 ::= { tcpEStatsPerfEntry 31 }
1532 tcpEStatsPerfSndLimTransCwnd OBJECT-TYPE
1533 SYNTAX ZeroBasedCounter32
1534 MAX-ACCESS read-only
1535 STATUS current
1536 DESCRIPTION
1537 "The number of transitions into the 'Congestion Limited'
1538 state from either the 'Receiver Limited' or 'Sender
1539 Limited' states. This state is entered whenever TCP
1540 transmission stops because the sender has reached some
1541 limit defined by congestion control (e.g. cwnd) or other
1542 algorithms (retransmission timeouts) designed to control
1543 network traffic. See the definition of 'CONGESTION WINDOW'
1544 in RFC 2581."
1545 REFERENCE
1546 "RFC2581, TCP Congestion Control"
1547 ::= { tcpEStatsPerfEntry 32 }
1549 tcpEStatsPerfSndLimTransSnd OBJECT-TYPE
1550 SYNTAX ZeroBasedCounter32
1551 MAX-ACCESS read-only
1552 STATUS current
1553 DESCRIPTION
1554 "The number of transitions into the 'Sender Limited' state
1555 from either the 'Receiver Limited' or 'Congestion Limited'
1556 states. This state is entered whenever TCP transmission
1557 stops due to some sender limit such as running out of
1558 application data or other resources and the Karn algorithm.
1559 When TCP stops sending data for any reason which can not be
1560 classified as Receiver Limited or Congestion Limited it
1561 MUST be treated as Sender Limited."
1562 ::= { tcpEStatsPerfEntry 33 }
1564 tcpEStatsPerfSndLimTimeRwin OBJECT-TYPE
1565 SYNTAX ZeroBasedCounter32
1566 UNITS "milliseconds"
1567 MAX-ACCESS read-only
1568 STATUS current
1569 DESCRIPTION
1570 "The cumulative time spent in the 'Receiver Limited' state.
1571 See tcpEStatsPerfSndLimTransRwin."
1572 ::= { tcpEStatsPerfEntry 34 }
1574 tcpEStatsPerfSndLimTimeCwnd OBJECT-TYPE
1575 SYNTAX ZeroBasedCounter32
1576 UNITS "milliseconds"
1577 MAX-ACCESS read-only
1578 STATUS current
1579 DESCRIPTION
1580 "The cumulative time spent in the 'Congestion Limited'
1581 state. See tcpEStatsPerfSndLimTransCwnd. When there is a
1582 retransmission timeout, it SHOULD be counted in
1583 tcpEStatsPerfSndLimTimeCwnd (and not the cumulative time
1584 for some other state.)"
1585 ::= { tcpEStatsPerfEntry 35 }
1587 tcpEStatsPerfSndLimTimeSnd OBJECT-TYPE
1588 SYNTAX ZeroBasedCounter32
1589 UNITS "milliseconds"
1590 MAX-ACCESS read-only
1591 STATUS current
1592 DESCRIPTION
1593 "The cumulative time spent in the 'Sender Limited' state.
1594 See tcpEStatsPerfSndLimTransSnd."
1595 ::= { tcpEStatsPerfEntry 36 }
1597 -- ================================================================
1598 --
1599 -- Statistics for diagnosing path problems
1600 --
1602 tcpEStatsPathTable OBJECT-TYPE
1603 SYNTAX SEQUENCE OF TcpEStatsPathEntry
1604 MAX-ACCESS not-accessible
1605 STATUS current
1606 DESCRIPTION
1607 "This table contains objects that can be used to infer
1608 detailed behavior of the Internet path, such as the
1609 extent that there is reordering, ECN bits and if
1610 RTT fluctuations are correlated to losses.
1612 Entries are retained in this table for the number of
1613 seconds indicated by the tcpEStatsConnTableLatency
1614 object, after the TCP connection first enters the closed
1615 state."
1616 ::= { tcpEStats 4 }
1618 tcpEStatsPathEntry OBJECT-TYPE
1619 SYNTAX TcpEStatsPathEntry
1620 MAX-ACCESS not-accessible
1621 STATUS current
1622 DESCRIPTION
1623 "Each entry in this table has information about the
1624 characteristics of each active and recently closed tcp
1625 connection."
1626 INDEX { tcpEStatsConnectIndex }
1627 ::= { tcpEStatsPathTable 1 }
1629 TcpEStatsPathEntry ::= SEQUENCE {
1631 tcpEStatsPathRetranThresh Gauge32,
1632 tcpEStatsPathNonRecovDAEpisodes Counter32,
1633 tcpEStatsPathSumOctetsReordered Counter32,
1634 tcpEStatsPathNonRecovDA ZeroBasedCounter32,
1635 tcpEStatsPathSampleRTT Gauge32,
1636 tcpEStatsPathRTTVar Gauge32,
1637 tcpEStatsPathMaxRTT Gauge32,
1638 tcpEStatsPathMinRTT Gauge32,
1639 tcpEStatsPathSumRTT ZeroBasedCounter32,
1640 tcpEStatsPathHCSumRTT ZeroBasedCounter64,
1641 tcpEStatsPathCountRTT ZeroBasedCounter32,
1642 tcpEStatsPathMaxRTO Gauge32,
1643 tcpEStatsPathMinRTO Gauge32,
1644 tcpEStatsPathIpTtl Integer32,
1645 tcpEStatsPathIpTosIn Integer32,
1646 tcpEStatsPathIpTosOut Integer32,
1647 tcpEStatsPathPreCongSumCwnd ZeroBasedCounter32,
1648 tcpEStatsPathPreCongSumRTT ZeroBasedCounter32,
1649 tcpEStatsPathPostCongSumRTT ZeroBasedCounter32,
1650 tcpEStatsPathPostCongCountRTT ZeroBasedCounter32,
1651 tcpEStatsPathECNsignals ZeroBasedCounter32,
1652 tcpEStatsPathQuenchRcvd ZeroBasedCounter32,
1653 tcpEStatsPathDupAckEpisodes ZeroBasedCounter32,
1654 tcpEStatsPathRcvRTT Gauge32,
1655 tcpEStatsPathDupAcksOut ZeroBasedCounter32,
1656 tcpEStatsPathCERcvd ZeroBasedCounter32,
1657 tcpEStatsPathECESent ZeroBasedCounter32,
1658 tcpEStatsPathECNNonceRcvd ZeroBasedCounter32
1659 }
1661 --
1662 -- The following optional objects can be used to infer segment
1663 -- reordering on the path from the local sender to the remote
1664 -- receiver.
1665 --
1667 tcpEStatsPathRetranThresh OBJECT-TYPE
1668 SYNTAX Gauge32
1669 MAX-ACCESS read-only
1670 STATUS current
1671 DESCRIPTION
1672 "The number of duplicate acknowledgments required to trigger
1673 Fast Retransmit. Note that although this is constant in
1674 traditional Reno TCP implementations, it is adaptive in
1675 many newer TCPs."
1676 REFERENCE
1677 "RFC2581, TCP Congestion Control"
1678 ::= { tcpEStatsPathEntry 1 }
1680 tcpEStatsPathNonRecovDAEpisodes OBJECT-TYPE
1681 SYNTAX Counter32
1682 MAX-ACCESS read-only
1683 STATUS current
1684 DESCRIPTION
1685 "The number of duplicate acknowledgment episodes that did
1686 not trigger a Fast Retransmit because ACK advanced prior to
1687 the number of duplicate acknowledgments reaching
1688 RetranThresh.
1690 In many implementations this is the number of times the
1691 'dupacks' counter is set to zero when it is non-zero but
1692 less than RetranThresh.
1694 Note that the change in tcpEStatsPathNonRecovDAEpisodes
1695 divided by the change in tcpEStatsPerfDataSegsOut is an
1696 estimate of the frequency of data reordering on the forward
1697 path over some interval."
1698 REFERENCE
1699 "RFC2581, TCP Congestion Control"
1700 ::= { tcpEStatsPathEntry 2 }
1702 tcpEStatsPathSumOctetsReordered OBJECT-TYPE
1703 SYNTAX Counter32
1704 UNITS "octets"
1705 MAX-ACCESS read-only
1706 STATUS current
1707 DESCRIPTION
1708 "The sum of the amounts SND.UNA advances on the
1709 acknowledgment which ends a dup-ack episode without a
1710 retransmission.
1712 Note the change in tcpEStatsPathSumOctetsReordered divided
1713 by the change in tcpEStatsPathNonRecovDAEpisodes is an
1714 estimates of the average reordering distance, over some
1715 interval."
1716 ::= { tcpEStatsPathEntry 3 }
1718 tcpEStatsPathNonRecovDA OBJECT-TYPE
1719 SYNTAX ZeroBasedCounter32
1720 MAX-ACCESS read-only
1721 STATUS current
1722 DESCRIPTION
1723 "Duplicate acks (or SACKS) that did not trigger a Fast
1724 Retransmit because ACK advanced prior to the number of
1725 duplicate acknowledgments reaching RetranThresh.
1727 In many implementations, this is the sum of the 'dupacks'
1728 counter, just before it is set to zero because ACK advanced
1729 without a Fast Retransmit.
1731 Note that the change in tcpEStatsPathNonRecovDA divided by
1732 the change in tcpEStatsPathNonRecovDAEpisodes is an
1733 estimate of the average reordering distance in segments
1734 over some interval."
1735 REFERENCE
1736 "RFC2581, TCP Congestion Control"
1737 ::= { tcpEStatsPathEntry 4 }
1739 --
1740 -- The following optional objects instrument the round trip
1741 -- time estimator and the retransmission timeout timer.
1742 --
1744 tcpEStatsPathSampleRTT OBJECT-TYPE
1745 SYNTAX Gauge32
1746 UNITS "milliseconds"
1747 MAX-ACCESS read-only
1748 STATUS current
1749 DESCRIPTION
1750 "The most recent raw round trip time measurement used in
1751 calculation of the RTO."
1752 REFERENCE
1753 "RFC2988, Computing TCP's Retransmission Timer"
1754 ::= { tcpEStatsPathEntry 11 }
1756 tcpEStatsPathRTTVar OBJECT-TYPE
1757 SYNTAX Gauge32
1758 UNITS "milliseconds"
1759 MAX-ACCESS read-only
1760 STATUS current
1761 DESCRIPTION
1762 "The round trip time variation used in calculation of the
1763 RTO. See RTTVAR in [RFC2988]."
1764 REFERENCE
1765 "RFC2988, Computing TCP's Retransmission Timer"
1767 ::= { tcpEStatsPathEntry 12 }
1769 tcpEStatsPathMaxRTT OBJECT-TYPE
1770 SYNTAX Gauge32
1771 UNITS "milliseconds"
1772 MAX-ACCESS read-only
1773 STATUS current
1774 DESCRIPTION
1775 "The maximum sampled round trip time."
1776 REFERENCE
1777 "RFC2988, Computing TCP's Retransmission Timer"
1778 ::= { tcpEStatsPathEntry 13 }
1780 tcpEStatsPathMinRTT OBJECT-TYPE
1781 SYNTAX Gauge32
1782 UNITS "milliseconds"
1783 MAX-ACCESS read-only
1784 STATUS current
1785 DESCRIPTION
1786 "The minimum sampled round trip time."
1787 REFERENCE
1788 "RFC2988, Computing TCP's Retransmission Timer"
1789 ::= { tcpEStatsPathEntry 14 }
1791 tcpEStatsPathSumRTT OBJECT-TYPE
1792 SYNTAX ZeroBasedCounter32
1793 UNITS "milliseconds"
1794 MAX-ACCESS read-only
1795 STATUS current
1796 DESCRIPTION
1797 "The sum of all sampled round trip times.
1799 Note that the change in tcpEStatsPathSumRTT divided by the
1800 change in tcpEStatsPathCountRTT is the mean RTT, uniformly
1801 averaged over an enter interval."
1802 REFERENCE
1803 "RFC2988, Computing TCP's Retransmission Timer"
1804 ::= { tcpEStatsPathEntry 15 }
1806 tcpEStatsPathHCSumRTT OBJECT-TYPE
1807 SYNTAX ZeroBasedCounter64
1808 UNITS "milliseconds"
1809 MAX-ACCESS read-only
1810 STATUS current
1811 DESCRIPTION
1812 "The sum of all sampled round trip times, on all systems
1813 that implement multiple concurrent RTT measurements.
1815 Note that the change in tcpEStatsPathHCSumRTT divided by
1816 the change in tcpEStatsPathCountRTT is the mean RTT,
1817 uniformly averaged over an enter interval."
1818 REFERENCE
1819 "RFC2988, Computing TCP's Retransmission Timer"
1820 ::= { tcpEStatsPathEntry 16 }
1822 tcpEStatsPathCountRTT OBJECT-TYPE
1823 SYNTAX ZeroBasedCounter32
1824 MAX-ACCESS read-only
1825 STATUS current
1826 DESCRIPTION
1827 "The number of round trip time samples included in
1828 tcpEStatsPathSumRTT and tcpEStatsPathHCSumRTT."
1829 REFERENCE
1830 "RFC2988, Computing TCP's Retransmission Timer"
1831 ::= { tcpEStatsPathEntry 17 }
1833 tcpEStatsPathMaxRTO OBJECT-TYPE
1834 SYNTAX Gauge32
1835 UNITS "milliseconds"
1836 MAX-ACCESS read-only
1837 STATUS current
1838 DESCRIPTION
1839 "The maximum value of the retransmit timer RTO."
1840 REFERENCE
1841 "RFC2988, Computing TCP's Retransmission Timer"
1842 ::= { tcpEStatsPathEntry 18 }
1844 tcpEStatsPathMinRTO OBJECT-TYPE
1845 SYNTAX Gauge32
1846 UNITS "milliseconds"
1847 MAX-ACCESS read-only
1848 STATUS current
1849 DESCRIPTION
1850 "The minimum value of the retransmit timer RTO."
1851 REFERENCE
1852 "RFC2988, Computing TCP's Retransmission Timer"
1853 ::= { tcpEStatsPathEntry 19 }
1855 --
1856 -- The following optional objects provide information about
1857 -- how TCP is using the IP layer.
1858 --
1860 tcpEStatsPathIpTtl OBJECT-TYPE
1861 SYNTAX Integer32
1862 MAX-ACCESS read-only
1863 STATUS current
1864 DESCRIPTION
1865 "The value of the TTL field carried in the most recently
1866 received IP header. This is sometimes useful to detect
1867 changing or unstable routes."
1868 REFERENCE
1869 "RFC791, Internet Protocol"
1870 ::= { tcpEStatsPathEntry 20 }
1872 tcpEStatsPathIpTosIn OBJECT-TYPE
1873 SYNTAX Integer32
1874 MAX-ACCESS read-only
1875 STATUS current
1876 DESCRIPTION
1877 "The value of the IPv4 Type Of Service octet, or the IPv6
1878 traffic class octet, carried in the most recently received
1879 IP header.
1881 This is useful to diagnose interactions between TCP and any
1882 IP layer packet scheduling and delivery policy, which might
1883 be in effect to implement Diffserv."
1884 REFERENCE
1885 "RFC3260, New Terminology and Clarifications for Diffserv"
1886 ::= { tcpEStatsPathEntry 21 }
1888 tcpEStatsPathIpTosOut OBJECT-TYPE
1889 SYNTAX Integer32
1890 MAX-ACCESS read-only
1891 STATUS current
1892 DESCRIPTION
1893 "The value of the IPv4 Type Of Service octet, or the IPv6
1894 traffic class octet, carried in the most recently
1895 transmitted IP header.
1897 This is useful to diagnose interactions between TCP and any
1898 IP layer packet scheduling and delivery policy, which might
1899 be in effect to implement Diffserv."
1900 REFERENCE
1901 "RFC3260, New Terminology and Clarifications for Diffserv"
1902 ::= { tcpEStatsPathEntry 22 }
1904 --
1905 -- The following optional objects characterize the congestion
1906 -- feedback signals by collecting statistics on how the
1907 -- congestion events are correlated to losses, changes in RTT
1908 -- and other protocol events.
1909 --
1910 tcpEStatsPathPreCongSumCwnd OBJECT-TYPE
1911 SYNTAX ZeroBasedCounter32
1912 UNITS "octets"
1913 MAX-ACCESS read-only
1914 STATUS current
1915 DESCRIPTION
1916 "The sum of the values of the congestion window, in octets,
1917 captured each time a congestion signal is received. This
1918 MUST be updated each time tcpEStatsPerfCongSignals is
1919 incremented, such that the change in
1920 tcpEStatsPathPreCongSumCwnd divided by the change in
1921 tcpEStatsPerfCongSignals is the average window (over some
1922 interval) just prior to a congestion signal."
1923 ::= { tcpEStatsPathEntry 23 }
1925 tcpEStatsPathPreCongSumRTT OBJECT-TYPE
1926 SYNTAX ZeroBasedCounter32
1927 UNITS "milliseconds"
1928 MAX-ACCESS read-only
1929 STATUS current
1930 DESCRIPTION
1931 "Sum of the last sample of the RTT (tcpEStatsPathSampleRTT)
1932 prior to received congestion signals. This MUST be updated
1933 each time tcpEStatsPerfCongSignals is incremented, such
1934 that the change in tcpEStatsPathPreCongSumRTT divided by
1935 the change in tcpEStatsPerfCongSignals is the average RTT
1936 (over some interval) just prior to a congestion signal."
1937 ::= { tcpEStatsPathEntry 24 }
1939 tcpEStatsPathPostCongSumRTT OBJECT-TYPE
1940 SYNTAX ZeroBasedCounter32
1941 UNITS "octets"
1942 MAX-ACCESS read-only
1943 STATUS current
1944 DESCRIPTION
1945 "Sum of the first sample of the RTT (tcpEStatsPathSampleRTT)
1946 following each congestion signal. Such that the change in
1947 tcpEStatsPathPostCongSumRTT divided by the change in
1948 tcpEStatsPathPostCongCountRTT is the average RTT (over some
1949 interval) just after a congestion signal."
1950 ::= { tcpEStatsPathEntry 25 }
1952 tcpEStatsPathPostCongCountRTT OBJECT-TYPE
1953 SYNTAX ZeroBasedCounter32
1954 UNITS "milliseconds"
1955 MAX-ACCESS read-only
1956 STATUS current
1957 DESCRIPTION
1958 "The number of RTT samples included in
1959 tcpEStatsPathPostCongSumRTT such that the change in
1960 tcpEStatsPathPostCongSumRTT divided by the change in
1961 tcpEStatsPathPostCongCountRTT is the average RTT (over some
1962 interval) just after a congestion signal."
1963 ::= { tcpEStatsPathEntry 26 }
1965 --
1966 -- The following optional objects can be used to detect other
1967 -- types of non-loss congestion signals such as source quench
1968 -- or ECN.
1969 --
1971 tcpEStatsPathECNsignals OBJECT-TYPE
1972 SYNTAX ZeroBasedCounter32
1973 MAX-ACCESS read-only
1974 STATUS current
1975 DESCRIPTION
1976 "The number of congestion signals delivered to the TCP
1977 sender via explicit congestion notification (ECN). This is
1978 typically the number of segments bearing ECE bits but
1979 should also include segments failing the ECN nonce check or
1980 other explicit congestion signals."
1981 REFERENCE
1982 "RFC3168, The Addition of Explicit Congestion Notification
1983 (ECN) to IP"
1984 ::= { tcpEStatsPathEntry 27 }
1986 tcpEStatsPathQuenchRcvd OBJECT-TYPE
1987 SYNTAX ZeroBasedCounter32
1988 MAX-ACCESS read-only
1989 STATUS current
1990 DESCRIPTION
1991 "The number of ICMP quench messages that are treated as
1992 congestion signals."
1993 ::= { tcpEStatsPathEntry 28 }
1995 --
1996 -- The following optional objects are receiver side
1997 -- instruments of the path from the sender to the receiver. In
1998 -- general the receiver has less information about the state
1999 -- of the path, because the receiver does not have a robust
2000 -- mechanism to infer the sender's actions.
2001 --
2003 tcpEStatsPathDupAckEpisodes OBJECT-TYPE
2004 SYNTAX ZeroBasedCounter32
2005 MAX-ACCESS read-only
2006 STATUS current
2007 DESCRIPTION
2008 "The number of Duplicate Acks Sent when prior Ack was not
2009 duplicate. This is the number of times that a contiguous
2010 series of duplicate acknowledgments have been sent.
2012 This is an indication of the number of data segments lost
2013 or reordered on the path from the remote TCP endpoint to
2014 the near TCP endpoint."
2015 REFERENCE
2016 "RFC2581, TCP Congestion Control"
2017 ::= { tcpEStatsPathEntry 29 }
2019 tcpEStatsPathRcvRTT OBJECT-TYPE
2020 SYNTAX Gauge32
2021 MAX-ACCESS read-only
2022 STATUS current
2023 DESCRIPTION
2024 "The receiver's estimate of the Path RTT.
2026 Adaptive receiver window algorithms depend on the receiver
2027 to having a good estimate of the path RTT."
2028 ::= { tcpEStatsPathEntry 30 }
2030 tcpEStatsPathDupAcksOut OBJECT-TYPE
2031 SYNTAX ZeroBasedCounter32
2032 MAX-ACCESS read-only
2033 STATUS current
2034 DESCRIPTION
2035 "The number of duplicate ACKs sent. The ratio of the change
2036 in tcpEStatsPathDupAcksOut to the change in
2037 tcpEStatsPathDupAckEpisodes is an indication of reorder or
2038 recovery distance over some interval."
2039 REFERENCE
2040 "RFC2581, TCP Congestion Control"
2041 ::= { tcpEStatsPathEntry 31 }
2043 tcpEStatsPathCERcvd OBJECT-TYPE
2044 SYNTAX ZeroBasedCounter32
2045 MAX-ACCESS read-only
2046 STATUS current
2047 DESCRIPTION
2048 "The number of segments received with IP headers bearing
2049 Congestion Experienced (CE) markings."
2050 REFERENCE
2051 "RFC3168, The Addition of Explicit Congestion Notification
2052 (ECN) to IP"
2053 ::= { tcpEStatsPathEntry 32 }
2055 tcpEStatsPathECESent OBJECT-TYPE
2056 SYNTAX ZeroBasedCounter32
2057 MAX-ACCESS read-only
2058 STATUS current
2059 DESCRIPTION
2060 "Number of times the Echo Congestion Experienced (ECE) bit
2061 in the TCP header has been set (transitioned from 0 to 1),
2062 due to a Congestion Experienced (CE) marking on an IP
2063 header. Note that ECE can be set and reset only once per
2064 RTT, while CE can be set on many segments per RTT."
2065 REFERENCE
2066 "RFC3168, The Addition of Explicit Congestion Notification
2067 (ECN) to IP"
2068 ::= { tcpEStatsPathEntry 33 }
2070 tcpEStatsPathECNNonceRcvd OBJECT-TYPE
2071 SYNTAX ZeroBasedCounter32
2072 MAX-ACCESS read-only
2073 STATUS current
2074 DESCRIPTION
2075 "Number of ECN Nonces (NS bits) received."
2076 REFERENCE
2077 "RFC3540, Robust Explicit Congestion Notification (ECN)
2078 Signaling with Nonces"
2079 ::= { tcpEStatsPathEntry 34 }
2081 -- ================================================================
2082 --
2083 -- Statistics for diagnosing stack algorithms
2084 --
2086 tcpEStatsStackTable OBJECT-TYPE
2087 SYNTAX SEQUENCE OF TcpEStatsStackEntry
2088 MAX-ACCESS not-accessible
2089 STATUS current
2090 DESCRIPTION
2091 "This table contains objects that are most useful for
2092 determining how well some of the TCP control
2093 algorithms are coping with this particular
2094 path.
2096 Entries are retained in this table for the number of
2097 seconds indicated by the tcpEStatsConnTableLatency
2098 object, after the TCP connection first enters the closed
2099 state."
2100 ::= { tcpEStats 5 }
2102 tcpEStatsStackEntry OBJECT-TYPE
2103 SYNTAX TcpEStatsStackEntry
2104 MAX-ACCESS not-accessible
2105 STATUS current
2106 DESCRIPTION
2107 "Each entry in this table has information about the
2108 characteristics of each active and recently closed tcp
2109 connection."
2110 INDEX { tcpEStatsConnectIndex }
2111 ::= { tcpEStatsStackTable 1 }
2113 TcpEStatsStackEntry ::= SEQUENCE {
2115 tcpEStatsStackActiveOpen TruthValue,
2116 tcpEStatsStackMSSSent Unsigned32,
2117 tcpEStatsStackMSSRcvd Unsigned32,
2118 tcpEStatsStackWinScaleSent Integer32,
2119 tcpEStatsStackWinScaleRcvd Integer32,
2120 tcpEStatsStackTimeStamps TcpEStatsNegotiated,
2121 tcpEStatsStackECN TcpEStatsNegotiated,
2122 tcpEStatsStackWillSendSACK TcpEStatsNegotiated,
2123 tcpEStatsStackWillUseSACK TcpEStatsNegotiated,
2124 tcpEStatsStackState INTEGER,
2125 tcpEStatsStackNagle TruthValue,
2126 tcpEStatsStackMaxSsCwnd Gauge32,
2127 tcpEStatsStackMaxCaCwnd Gauge32,
2128 tcpEStatsStackMaxSsthresh Gauge32,
2129 tcpEStatsStackMinSsthresh Gauge32,
2130 tcpEStatsStackInRecovery INTEGER,
2131 tcpEStatsStackDupAcksIn ZeroBasedCounter32,
2132 tcpEStatsStackSpuriousFrDetected ZeroBasedCounter32,
2133 tcpEStatsStackSpuriousRtoDetected ZeroBasedCounter32,
2134 tcpEStatsStackSoftErrors ZeroBasedCounter32,
2135 tcpEStatsStackSoftErrorReason INTEGER,
2136 tcpEStatsStackSlowStart ZeroBasedCounter32,
2137 tcpEStatsStackCongAvoid ZeroBasedCounter32,
2138 tcpEStatsStackOtherReductions ZeroBasedCounter32,
2139 tcpEStatsStackCongOverCount ZeroBasedCounter32,
2140 tcpEStatsStackFastRetran ZeroBasedCounter32,
2141 tcpEStatsStackSubsequentTimeouts ZeroBasedCounter32,
2142 tcpEStatsStackCurTimeoutCount Gauge32,
2143 tcpEStatsStackAbruptTimeouts ZeroBasedCounter32,
2144 tcpEStatsStackSACKsRcvd ZeroBasedCounter32,
2145 tcpEStatsStackSACKBlocksRcvd ZeroBasedCounter32,
2146 tcpEStatsStackSendStall ZeroBasedCounter32,
2147 tcpEStatsStackDSACKDups ZeroBasedCounter32,
2148 tcpEStatsStackMaxMSS Gauge32,
2149 tcpEStatsStackMinMSS Gauge32,
2150 tcpEStatsStackSndInitial Counter32,
2151 tcpEStatsStackRecInitial Counter32,
2152 tcpEStatsStackCurRetxQueue Gauge32,
2153 tcpEStatsStackMaxRetxQueue Gauge32,
2154 tcpEStatsStackCurReasmQueue Gauge32,
2155 tcpEStatsStackMaxReasmQueue Gauge32
2156 }
2158 --
2159 -- The following objects reflect TCP options carried on the
2160 -- SYN or SYN-ACK. These options are used to provide
2161 -- additional protocol parameters or to enable various
2162 -- optional TCP features or algorithms.
2163 --
2164 -- Except as noted, the TCP protocol does not permit these
2165 -- options to change after the SYN exchange.
2166 --
2168 tcpEStatsStackActiveOpen OBJECT-TYPE
2169 SYNTAX TruthValue
2170 MAX-ACCESS read-only
2171 STATUS current
2172 DESCRIPTION
2173 "True(1) if the local connection traversed the SYN-SENT
2174 state, else false(2)."
2175 REFERENCE
2176 "RFC793, Transmission Control Protocol"
2177 ::= { tcpEStatsStackEntry 1 }
2179 tcpEStatsStackMSSSent OBJECT-TYPE
2180 SYNTAX Unsigned32
2181 MAX-ACCESS read-only
2182 STATUS current
2183 DESCRIPTION
2184 "The value sent in an MSS option, or zero if none."
2185 REFERENCE
2186 "RFC1122, Requirements for Internet Hosts - Communication
2187 Layers"
2188 ::= { tcpEStatsStackEntry 2 }
2190 tcpEStatsStackMSSRcvd OBJECT-TYPE
2191 SYNTAX Unsigned32
2192 MAX-ACCESS read-only
2193 STATUS current
2194 DESCRIPTION
2195 "The value received in an MSS option, or zero if none."
2196 REFERENCE
2197 "RFC1122, Requirements for Internet Hosts - Communication
2198 Layers"
2200 ::= { tcpEStatsStackEntry 3 }
2202 tcpEStatsStackWinScaleSent OBJECT-TYPE
2203 SYNTAX Integer32 (-1..14)
2204 MAX-ACCESS read-only
2205 STATUS current
2206 DESCRIPTION
2207 "The value of the transmitted window scale option if one was
2208 sent; otherwise, a value of -1.
2210 Note that if both tcpEStatsStackWinScaleSent and
2211 tcpEStatsStackWinScaleRcvd are not -1, then Rcv.Wind.Scale
2212 will be the same as this value and used to scale receiver
2213 window announcements from the local host to the remote
2214 host."
2215 REFERENCE
2216 "RFC1323, TCP Extensions for High Performance"
2217 ::= { tcpEStatsStackEntry 4 }
2219 tcpEStatsStackWinScaleRcvd OBJECT-TYPE
2220 SYNTAX Integer32 (-1..14)
2221 MAX-ACCESS read-only
2222 STATUS current
2223 DESCRIPTION
2224 "The value of the received window scale option if one was
2225 received; otherwise, a value of -1.
2227 Note that if both tcpEStatsStackWinScaleSent and
2228 tcpEStatsStackWinScaleRcvd are not -1, then Snd.Wind.Scale
2229 will be the same as this value and used to scale receiver
2230 window announcements from the remote host to the local
2231 host."
2232 REFERENCE
2233 "RFC1323, TCP Extensions for High Performance"
2234 ::= { tcpEStatsStackEntry 5 }
2236 tcpEStatsStackTimeStamps OBJECT-TYPE
2237 SYNTAX TcpEStatsNegotiated
2238 MAX-ACCESS read-only
2239 STATUS current
2240 DESCRIPTION
2241 "Enabled(1) if TCP timestamps have been negotiated on,
2242 selfDisabled(2) if they are disabled or not implemented on
2243 the local host, or peerDisabled(3) if not negotiated by the
2244 remote hosts."
2245 REFERENCE
2246 "RFC1323, TCP Extensions for High Performance"
2247 ::= { tcpEStatsStackEntry 6 }
2249 tcpEStatsStackECN OBJECT-TYPE
2250 SYNTAX TcpEStatsNegotiated
2251 MAX-ACCESS read-only
2252 STATUS current
2253 DESCRIPTION
2254 "Enabled(1) if Explicit Congestion Notification (ECN) has
2255 been negotiated on, selfDisabled(2) if it is disabled or
2256 not implemented on the local host, or peerDisabled(3) if
2257 not negotiated by the remote hosts."
2258 REFERENCE
2259 "RFC3168, The Addition of Explicit Congestion Notification
2260 (ECN) to IP"
2261 ::= { tcpEStatsStackEntry 7 }
2263 tcpEStatsStackWillSendSACK OBJECT-TYPE
2264 SYNTAX TcpEStatsNegotiated
2265 MAX-ACCESS read-only
2266 STATUS current
2267 DESCRIPTION
2268 "Enabled(1) if the local host will send SACK options
2269 selfDisabled(2) if SACK is disabled or not implemented on
2270 the local host, or peerDisabled(3) if the remote host did
2271 not send the SACK-permitted option.
2273 Note that SACK negotiation is not symmetrical. SACK can
2274 enabled on one side of the connection and not the other."
2275 REFERENCE
2276 "RFC2018, TCP Selective Acknowledgement Options"
2277 ::= { tcpEStatsStackEntry 8 }
2279 tcpEStatsStackWillUseSACK OBJECT-TYPE
2280 SYNTAX TcpEStatsNegotiated
2281 MAX-ACCESS read-only
2282 STATUS current
2283 DESCRIPTION
2284 "Enabled(1) if the local host will process SACK options
2285 selfDisabled(2) if SACK is disabled or not implemented on
2286 the local host, or peerDisabled(3) if the remote host sends
2287 duplicate ACKs without SACK options, or the local host
2288 otherwise decides not to process received SACK options.
2290 Unlike other TCP options, the remote data receiver can not
2291 explicitly indicate if it is able to generate SACK options.
2292 When sending data, the local host has to deduce if the
2293 remote receiver is sending SACK options. This object can
2294 transition from Enabled(1) to peerDisabled(3) after the SYN
2295 exchange.
2297 Note that SACK negotiation is not symmetrical. SACK can
2298 enabled on one side of the connection and not the other."
2299 REFERENCE
2300 "RFC2018, TCP Selective Acknowledgement Options"
2301 ::= { tcpEStatsStackEntry 9 }
2303 --
2304 -- The following two objects reflect the current state of the
2305 -- connection.
2306 --
2308 tcpEStatsStackState OBJECT-TYPE
2309 SYNTAX INTEGER {
2310 tcpESStateClosed(1),
2311 tcpESStateListen(2),
2312 tcpESStateSynSent(3),
2313 tcpESStateSynReceived(4),
2314 tcpESStateEstablished(5),
2315 tcpESStateFinWait1(6),
2316 tcpESStateFinWait2(7),
2317 tcpESStateCloseWait(8),
2318 tcpESStateLastAck(9),
2319 tcpESStateClosing(10),
2320 tcpESStateTimeWait(11),
2321 tcpESStateDeleteTcb(12)
2322 }
2323 MAX-ACCESS read-only
2324 STATUS current
2325 DESCRIPTION
2326 "An integer value representing the connection state from the
2327 TCP State Transition Diagram.
2329 The value listen(2) is included only for parallelism to the
2330 old tcpConnTable, and SHOULD NOT be used because the listen
2331 state in managed by the tcpListenerTable.
2333 The value DeleteTcb(12) is included only for parallelism to
2334 the tcpConnTable mechanism for terminating connections,
2335 although this table does not permit writing."
2336 REFERENCE
2337 "RFC793, Transmission Control Protocol"
2338 ::= { tcpEStatsStackEntry 10 }
2340 tcpEStatsStackNagle OBJECT-TYPE
2341 SYNTAX TruthValue
2342 MAX-ACCESS read-only
2343 STATUS current
2344 DESCRIPTION
2345 "True(1) if the Nagle algorithm is being used, else
2346 false(2)."
2347 REFERENCE
2348 "RFC1122, Requirements for Internet Hosts - Communication
2349 Layers"
2350 ::= { tcpEStatsStackEntry 11 }
2352 --
2353 -- The following objects instrument the overall operation of
2354 -- TCP congestion control and data retransmissions. These
2355 -- instruments are sufficient to fit the actual performance to
2356 -- an updated macroscopic performance model [RFC2581] [Mat97]
2357 -- [Pad98].
2358 --
2360 tcpEStatsStackMaxSsCwnd OBJECT-TYPE
2361 SYNTAX Gauge32
2362 UNITS "octets"
2363 MAX-ACCESS read-only
2364 STATUS current
2365 DESCRIPTION
2366 "The maximum congestion window used during Slow Start, in
2367 octets."
2368 REFERENCE
2369 "RFC2581, TCP Congestion Control"
2370 ::= { tcpEStatsStackEntry 12 }
2372 tcpEStatsStackMaxCaCwnd OBJECT-TYPE
2373 SYNTAX Gauge32
2374 UNITS "octets"
2375 MAX-ACCESS read-only
2376 STATUS current
2377 DESCRIPTION
2378 "The maximum congestion window used during Congestion
2379 Avoidance, in octets."
2380 REFERENCE
2381 "RFC2581, TCP Congestion Control"
2382 ::= { tcpEStatsStackEntry 13 }
2384 tcpEStatsStackMaxSsthresh OBJECT-TYPE
2385 SYNTAX Gauge32
2386 UNITS "octets"
2387 MAX-ACCESS read-only
2388 STATUS current
2389 DESCRIPTION
2390 "The maximum slow start threshold, excluding the initial
2391 value."
2392 REFERENCE
2393 "RFC2581, TCP Congestion Control"
2394 ::= { tcpEStatsStackEntry 14 }
2396 tcpEStatsStackMinSsthresh OBJECT-TYPE
2397 SYNTAX Gauge32
2398 UNITS "octets"
2399 MAX-ACCESS read-only
2400 STATUS current
2401 DESCRIPTION
2402 "The minimum slow start threshold."
2403 REFERENCE
2404 "RFC2581, TCP Congestion Control"
2405 ::= { tcpEStatsStackEntry 15 }
2407 tcpEStatsStackInRecovery OBJECT-TYPE
2408 SYNTAX INTEGER {
2409 tcpESDataContiguous(1),
2410 tcpESDataUnordered(2),
2411 tcpESDataRecovery(3)
2412 }
2413 MAX-ACCESS read-only
2414 STATUS current
2415 DESCRIPTION
2416 "An integer value representing the state of the loss
2417 recovery for this connection.
2419 tcpESDataContiguous(1) indicates that the remote receiver
2420 is reporting contiguous data (no duplicate acknowledgments
2421 or SACK options) and that there are no unacknowledged
2422 retransmissions.
2424 tcpESDataUnordered(2) indicates that the remote receiver is
2425 reporting missing or out-of-order data (e.g. sending
2426 duplicate acknowledgments or SACK options) and that there
2427 are no unacknowledged retransmissions (because the missing
2428 data has not yet been retransmitted).
2430 tcpESDataRecovery(3) indicates that the sender has
2431 outstanding retransmitted data which is still
2432 unacknowledged."
2433 REFERENCE
2434 "RFC2581, TCP Congestion Control"
2435 ::= { tcpEStatsStackEntry 16 }
2437 tcpEStatsStackDupAcksIn OBJECT-TYPE
2438 SYNTAX ZeroBasedCounter32
2439 MAX-ACCESS read-only
2440 STATUS current
2441 DESCRIPTION
2442 "The number of duplicate ACKs received."
2443 REFERENCE
2444 "RFC2581, TCP Congestion Control"
2445 ::= { tcpEStatsStackEntry 17 }
2447 tcpEStatsStackSpuriousFrDetected OBJECT-TYPE
2448 SYNTAX ZeroBasedCounter32
2449 MAX-ACCESS read-only
2450 STATUS current
2451 DESCRIPTION
2452 "The number of acknowledgments reporting out-of-order
2453 segments after the Fast Retransmit algorithm has already
2454 retransmitted the segments. (For example as detected by the
2455 Eifel algorithm).'"
2456 REFERENCE
2457 "RFC3522, The Eifel Detection Algorithm for TCP"
2458 ::= { tcpEStatsStackEntry 18 }
2460 tcpEStatsStackSpuriousRtoDetected OBJECT-TYPE
2461 SYNTAX ZeroBasedCounter32
2462 MAX-ACCESS read-only
2463 STATUS current
2464 DESCRIPTION
2465 "The number of acknowledgments reporting segments that have
2466 already be retransmitted due to a Retransmission Timeout."
2467 ::= { tcpEStatsStackEntry 19 }
2469 --
2470 -- The following optional objects instrument unusual protocol
2471 -- events that probably indicate implementation problems in
2472 -- the protocol or path.
2473 --
2475 tcpEStatsStackSoftErrors OBJECT-TYPE
2476 SYNTAX ZeroBasedCounter32
2477 MAX-ACCESS read-only
2478 STATUS current
2479 DESCRIPTION
2480 "The number of segments that fail various consistency tests
2481 during TCP input processing. Soft errors might cause the
2482 segment to be discard but some do not. Some of these soft
2483 errors cause the generation of a TCP acknowledgment, others
2484 are silently discarded."
2485 REFERENCE
2486 "RFC793, Transmission Control Protocol"
2487 ::= { tcpEStatsStackEntry 21 }
2489 tcpEStatsStackSoftErrorReason OBJECT-TYPE
2490 SYNTAX INTEGER {
2491 belowDataWindow(1),
2492 aboveDataWindow(2),
2493 belowAckWindow(3),
2494 aboveAckWindow(4),
2495 belowTSWindow(5),
2496 aboveTSWindow(6),
2497 dataCheckSum(7),
2498 otherSoftError(8)
2499 }
2500 MAX-ACCESS read-only
2501 STATUS current
2502 DESCRIPTION
2503 "This object identifies which consistency test most recently
2504 failed during tcp input processing. This object SHOULD be
2505 set every time tcpEStatsStackSoftErrors is incremented. The
2506 codes are as follows:
2508 belowDataWindow(1) - All data in the segment is below
2509 SND.UNA. (Normal for keep-alives and zero window probes).
2511 aboveDataWindow(2) - Some data in the segment is above
2512 SND.WND. (Indicates an implementation bug or possible
2513 attack).
2515 belowAckWindow(3) - ACK below SND.UNA. (Indicates that the
2516 return path is reordering ACKs)
2518 aboveAckWindow(4) - An ACK for data that we have not sent.
2519 (Indicates an implementation bug or possible attack).
2521 belowTSWindow(5) - TSecr on the segment is older than the
2522 current TS.Recent (Normal for the rare case where PAWS
2523 detects data reordered by the network.)
2525 aboveTSWindow(6) - TSecr on the segment is newer than the
2526 current TS.Recent. (Indicates an implementation bug or
2527 possible attack).
2529 dataCheckSum(7) - Incorrect checksum. Note that this value
2530 is intrinsically fragile, because the header fields used to
2531 identify the connection may have been corrupted.
2533 otherSoftError(8) - All other soft errors not listed
2534 above.'"
2535 REFERENCE
2536 "RFC793, Transmission Control Protocol"
2538 ::= { tcpEStatsStackEntry 22 }
2540 --
2541 -- The following optional objects expose the detailed
2542 -- operation of the congestion control algorithms.
2543 --
2545 tcpEStatsStackSlowStart OBJECT-TYPE
2546 SYNTAX ZeroBasedCounter32
2547 MAX-ACCESS read-only
2548 STATUS current
2549 DESCRIPTION
2550 "The number of times the congestion window has been
2551 increased by the Slow Start algorithm."
2552 REFERENCE
2553 "RFC2581, TCP Congestion Control"
2554 ::= { tcpEStatsStackEntry 23 }
2556 tcpEStatsStackCongAvoid OBJECT-TYPE
2557 SYNTAX ZeroBasedCounter32
2558 MAX-ACCESS read-only
2559 STATUS current
2560 DESCRIPTION
2561 "The number of times the congestion window has been
2562 increased by the Congestion Avoidance algorithm."
2563 REFERENCE
2564 "RFC2581, TCP Congestion Control"
2565 ::= { tcpEStatsStackEntry 24 }
2567 tcpEStatsStackOtherReductions OBJECT-TYPE
2568 SYNTAX ZeroBasedCounter32
2569 MAX-ACCESS read-only
2570 STATUS current
2571 DESCRIPTION
2572 "The number of congestion window reductions made as a result
2573 of anything other than AIMD congestion control algorithms.
2574 Examples of non-multiplicative window reductions include
2575 Congestion Window Validation [RFC2861] and experimental
2576 algorithms such as Vegas [Bra94].
2578 All window reductions MUST be counted as either
2579 tcpEStatsPerfCongSignals or tcpEStatsStackOtherReductions."
2580 REFERENCE
2581 "RFC2861, TCP Congestion Window Validation"
2582 ::= { tcpEStatsStackEntry 25 }
2584 tcpEStatsStackCongOverCount OBJECT-TYPE
2585 SYNTAX ZeroBasedCounter32
2586 MAX-ACCESS read-only
2587 STATUS current
2588 DESCRIPTION
2589 "The number of congestion events which were 'backed out' of
2590 the congestion control state machine such that the
2591 congestion window was restored to a prior value. This can
2592 happen due to the Eifel algorithm [RFC3522] or other
2593 algorithms which can be used to detect and cancel spurious
2594 invocations of the Fast Retransmit Algorithm.
2596 Although it may be feasible to undo the effects of spurious
2597 invocation of the Fast Retransmit congestion events can not
2598 easily be backed out of tcpEStatsPerfCongSignals and
2599 tcpEStatsPathPreCongSumCwnd, etc."
2600 REFERENCE
2601 "RFC3522, The Eifel Detection Algorithm for TCP"
2602 ::= { tcpEStatsStackEntry 26 }
2604 tcpEStatsStackFastRetran OBJECT-TYPE
2605 SYNTAX ZeroBasedCounter32
2606 MAX-ACCESS read-only
2607 STATUS current
2608 DESCRIPTION
2609 "The number of invocations of the Fast Retransmit algorithm."
2610 REFERENCE
2611 "RFC2581, TCP Congestion Control"
2612 ::= { tcpEStatsStackEntry 27 }
2614 tcpEStatsStackSubsequentTimeouts OBJECT-TYPE
2615 SYNTAX ZeroBasedCounter32
2616 MAX-ACCESS read-only
2617 STATUS current
2618 DESCRIPTION
2619 "The number of times the retransmit timeout has expired
2620 after the RTO has been doubled. See section 5.5 in RFC2988."
2621 REFERENCE
2622 "RFC2988, Computing TCP's Retransmission Timer"
2623 ::= { tcpEStatsStackEntry 28 }
2625 tcpEStatsStackCurTimeoutCount OBJECT-TYPE
2626 SYNTAX Gauge32
2627 MAX-ACCESS read-only
2628 STATUS current
2629 DESCRIPTION
2630 "The current number of times the retransmit timeout has
2631 expired without receiving an acknowledgment for new data.
2632 tcpEStatsStackCurTimeoutCount is reset to zero when new
2633 data is acknowledged and incremented for each invocation of
2634 section 5.5 in RFC2988."
2635 REFERENCE
2636 "RFC2988, Computing TCP's Retransmission Timer"
2637 ::= { tcpEStatsStackEntry 29 }
2639 tcpEStatsStackAbruptTimeouts OBJECT-TYPE
2640 SYNTAX ZeroBasedCounter32
2641 MAX-ACCESS read-only
2642 STATUS current
2643 DESCRIPTION
2644 "The number of timeouts that occurred without any
2645 immediately preceding duplicate acknowledgments or other
2646 indications of congestion. Abrupt Timeouts indicate that
2647 the path lost an entire window of data or acknowledgments.
2649 Timeouts that are preceded by duplicate acknowledgments or
2650 other congestion signals (e.g. ECN) are not counted as
2651 abrupt, and might have been avoided by a more sophisticated
2652 Fast Retransmit algorithm."
2653 REFERENCE
2654 "RFC2581, TCP Congestion Control"
2655 ::= { tcpEStatsStackEntry 30 }
2657 tcpEStatsStackSACKsRcvd OBJECT-TYPE
2658 SYNTAX ZeroBasedCounter32
2659 MAX-ACCESS read-only
2660 STATUS current
2661 DESCRIPTION
2662 "The number of SACK options received."
2663 REFERENCE
2664 "RFC2018, TCP Selective Acknowledgement Options"
2665 ::= { tcpEStatsStackEntry 31 }
2667 tcpEStatsStackSACKBlocksRcvd OBJECT-TYPE
2668 SYNTAX ZeroBasedCounter32
2669 MAX-ACCESS read-only
2670 STATUS current
2671 DESCRIPTION
2672 "The number of SACK blocks received (within SACK options)."
2673 REFERENCE
2674 "RFC2018, TCP Selective Acknowledgement Options"
2675 ::= { tcpEStatsStackEntry 32 }
2677 tcpEStatsStackSendStall OBJECT-TYPE
2678 SYNTAX ZeroBasedCounter32
2679 MAX-ACCESS read-only
2680 STATUS current
2681 DESCRIPTION
2682 "The number of interface stalls or other sender local
2683 resource limitations that are treated as congestion
2684 signals."
2685 ::= { tcpEStatsStackEntry 33 }
2687 tcpEStatsStackDSACKDups OBJECT-TYPE
2688 SYNTAX ZeroBasedCounter32
2689 MAX-ACCESS read-only
2690 STATUS current
2691 DESCRIPTION
2692 "The number of duplicate segments reported to the local host
2693 by D-SACK blocks."
2694 REFERENCE
2695 "RFC2883, An Extension to the Selective Acknowledgement
2696 (SACK) Option for TCP"
2697 ::= { tcpEStatsStackEntry 34 }
2699 --
2700 -- The following optional objects instrument path MTU
2701 -- discovery.
2702 --
2704 tcpEStatsStackMaxMSS OBJECT-TYPE
2705 SYNTAX Gauge32
2706 UNITS "octets"
2707 MAX-ACCESS read-only
2708 STATUS current
2709 DESCRIPTION
2710 "The maximum MSS, in octets."
2711 REFERENCE
2712 "RFC1191, Path MTU discovery"
2713 ::= { tcpEStatsStackEntry 35 }
2715 tcpEStatsStackMinMSS OBJECT-TYPE
2716 SYNTAX Gauge32
2717 UNITS "octets"
2718 MAX-ACCESS read-only
2719 STATUS current
2720 DESCRIPTION
2721 "The minimum MSS, in octets."
2722 REFERENCE
2723 "RFC1191, Path MTU discovery"
2724 ::= { tcpEStatsStackEntry 36 }
2726 --
2727 -- The following optional initial value objects are useful for
2728 -- conformance testing instruments on application progress and
2729 -- consumed network resources.
2731 --
2733 tcpEStatsStackSndInitial OBJECT-TYPE
2734 SYNTAX Counter32
2735 MAX-ACCESS read-only
2736 STATUS current
2737 DESCRIPTION
2738 "Initial send sequence number. Note that by definition
2739 tcpEStatsStackSndInitial never changes for a given
2740 connection."
2741 REFERENCE
2742 "RFC793, Transmission Control Protocol"
2743 ::= { tcpEStatsStackEntry 37 }
2745 tcpEStatsStackRecInitial OBJECT-TYPE
2746 SYNTAX Counter32
2747 MAX-ACCESS read-only
2748 STATUS current
2749 DESCRIPTION
2750 "Initial receive sequence number. Note that by definition
2751 tcpEStatsStackRecInitial never changes for a given
2752 connection."
2753 REFERENCE
2754 "RFC793, Transmission Control Protocol"
2755 ::= { tcpEStatsStackEntry 38 }
2757 --
2758 -- The following optional objects instrument the senders
2759 -- buffer usage, including any buffering in the application
2760 -- interface to TCP and the retransmit queue. All 'buffer
2761 -- memory' instruments are assumed to include OS data
2762 -- structure overhead.
2763 --
2765 tcpEStatsStackCurRetxQueue OBJECT-TYPE
2766 SYNTAX Gauge32
2767 UNITS "octets"
2768 MAX-ACCESS read-only
2769 STATUS current
2770 DESCRIPTION
2771 "The current number of octets of data occupying the
2772 retransmit queue."
2773 ::= { tcpEStatsStackEntry 39 }
2775 tcpEStatsStackMaxRetxQueue OBJECT-TYPE
2776 SYNTAX Gauge32
2777 UNITS "octets"
2778 MAX-ACCESS read-only
2779 STATUS current
2780 DESCRIPTION
2781 "The maximum number of octets of data occupying the
2782 retransmit queue."
2783 ::= { tcpEStatsStackEntry 40 }
2785 tcpEStatsStackCurReasmQueue OBJECT-TYPE
2786 SYNTAX Gauge32
2787 UNITS "octets"
2788 MAX-ACCESS read-only
2789 STATUS current
2790 DESCRIPTION
2791 "The current number of octets of sequence space spanned by
2792 the reassembly queue. This is generally the difference
2793 between rcv.nxt and the sequence number of the right most
2794 edge of the reassembly queue."
2795 ::= { tcpEStatsStackEntry 41 }
2797 tcpEStatsStackMaxReasmQueue OBJECT-TYPE
2798 SYNTAX Gauge32
2799 MAX-ACCESS read-only
2800 STATUS current
2801 DESCRIPTION
2802 "The maximum value of tcpEStatsStackCurReasmQueue"
2803 ::= { tcpEStatsStackEntry 42 }
2805 -- ================================================================
2806 --
2807 -- Statistics for diagnosing interactions between
2808 -- applications and TCP.
2809 --
2811 tcpEStatsAppTable OBJECT-TYPE
2812 SYNTAX SEQUENCE OF TcpEStatsAppEntry
2813 MAX-ACCESS not-accessible
2814 STATUS current
2815 DESCRIPTION
2816 "This table contains objects that are useful for
2817 determining if the application using TCP is
2818 limiting TCP performance.
2820 Entries are retained in this table for the number of
2821 seconds indicated by the tcpEStatsConnTableLatency
2822 object, after the TCP connection first enters the closed
2823 state."
2824 ::= { tcpEStats 6 }
2826 tcpEStatsAppEntry OBJECT-TYPE
2827 SYNTAX TcpEStatsAppEntry
2828 MAX-ACCESS not-accessible
2829 STATUS current
2830 DESCRIPTION
2831 "Each entry in this table has information about the
2832 characteristics of each active and recently closed tcp
2833 connection."
2834 INDEX { tcpEStatsConnectIndex }
2835 ::= { tcpEStatsAppTable 1 }
2837 TcpEStatsAppEntry ::= SEQUENCE {
2839 tcpEStatsAppSndUna Counter32,
2840 tcpEStatsAppSndNxt Unsigned32,
2841 tcpEStatsAppSndMax Counter32,
2842 tcpEStatsAppThruOctetsAcked ZeroBasedCounter32,
2843 tcpEStatsAppHCThruOctetsAcked ZeroBasedCounter64,
2844 tcpEStatsAppRcvNxt Counter32,
2845 tcpEStatsAppThruOctetsReceived ZeroBasedCounter32,
2846 tcpEStatsAppHCThruOctetsReceived ZeroBasedCounter64,
2847 tcpEStatsAppCurAppWQueue Gauge32,
2848 tcpEStatsAppMaxAppWQueue Gauge32,
2849 tcpEStatsAppCurAppRQueue Gauge32,
2850 tcpEStatsAppMaxAppRQueue Gauge32
2851 }
2853 --
2854 -- The following objects provide throughput statistics for the
2855 -- connection including sequence numbers and elapsed
2856 -- application data. These permit direct observation of the
2857 -- applications progress, in terms of elapsed data delivery
2858 -- and elapsed time.
2859 --
2861 tcpEStatsAppSndUna OBJECT-TYPE
2862 SYNTAX Counter32
2863 MAX-ACCESS read-only
2864 STATUS current
2865 DESCRIPTION
2866 "The value of SND.UNA, the oldest unacknowledged sequence
2867 number.
2869 Note that SND.UNA is a TCP state variable that is congruent
2870 to Counter32 semantics."
2871 REFERENCE
2872 "RFC793, Transmission Control Protocol"
2873 ::= { tcpEStatsAppEntry 1 }
2875 tcpEStatsAppSndNxt OBJECT-TYPE
2876 SYNTAX Unsigned32
2877 MAX-ACCESS read-only
2878 STATUS current
2879 DESCRIPTION
2880 "The value of SND.NXT, the next sequence number to be sent.
2881 Note that tcpEStatsAppSndNxt is not monotonic (and thus not
2882 a counter) because TCP sometimes retransmits lost data by
2883 pulling tcpEStatsAppSndNxt back to the missing data."
2884 REFERENCE
2885 "RFC793, Transmission Control Protocol"
2886 ::= { tcpEStatsAppEntry 2 }
2888 tcpEStatsAppSndMax OBJECT-TYPE
2889 SYNTAX Counter32
2890 MAX-ACCESS read-only
2891 STATUS current
2892 DESCRIPTION
2893 "The farthest forward (right most or largest) SND.NXT value.
2894 Note that this will be equal to tcpEStatsAppSndNxt except
2895 when tcpEStatsAppSndNxt is pulled back during recovery."
2896 REFERENCE
2897 "RFC793, Transmission Control Protocol"
2898 ::= { tcpEStatsAppEntry 3 }
2900 tcpEStatsAppThruOctetsAcked OBJECT-TYPE
2901 SYNTAX ZeroBasedCounter32
2902 UNITS "octets"
2903 MAX-ACCESS read-only
2904 STATUS current
2905 DESCRIPTION
2906 "The number of octets for which cumulative acknowledgments
2907 have been received. Note that this will be the sum of
2908 changes to tcpEStatsAppSndUna."
2909 ::= { tcpEStatsAppEntry 4 }
2911 tcpEStatsAppHCThruOctetsAcked OBJECT-TYPE
2912 SYNTAX ZeroBasedCounter64
2913 UNITS "octets"
2914 MAX-ACCESS read-only
2915 STATUS current
2916 DESCRIPTION
2917 "The number of octets for which cumulative acknowledgments
2918 have been received, on systems that can receive more than
2919 10 million bits per second. Note that this will be the sum
2920 of changes in tcpEStatsAppSndUna."
2921 ::= { tcpEStatsAppEntry 5 }
2923 tcpEStatsAppRcvNxt OBJECT-TYPE
2924 SYNTAX Counter32
2925 MAX-ACCESS read-only
2926 STATUS current
2927 DESCRIPTION
2928 "The value of RCV.NXT. The next sequence number expected on
2929 an incoming segment, and the left or lower edge of the
2930 receive window.
2932 Note that RCV.NXT is a TCP state variable that is congruent
2933 to Counter32 semantics."
2934 REFERENCE
2935 "RFC793, Transmission Control Protocol"
2936 ::= { tcpEStatsAppEntry 6 }
2938 tcpEStatsAppThruOctetsReceived OBJECT-TYPE
2939 SYNTAX ZeroBasedCounter32
2940 UNITS "octets"
2941 MAX-ACCESS read-only
2942 STATUS current
2943 DESCRIPTION
2944 "The number of octets for which cumulative acknowledgments
2945 have been sent. Note that this will be the sum of changes
2946 to tcpEStatsAppRcvNxt."
2947 ::= { tcpEStatsAppEntry 7 }
2949 tcpEStatsAppHCThruOctetsReceived OBJECT-TYPE
2950 SYNTAX ZeroBasedCounter64
2951 UNITS "octets"
2952 MAX-ACCESS read-only
2953 STATUS current
2954 DESCRIPTION
2955 "The number of octets for which cumulative acknowledgments
2956 have been sent, on systems that can transmit more than 10
2957 million bits per second. Note that this will be the sum of
2958 changes in tcpEStatsAppRcvNxt."
2959 ::= { tcpEStatsAppEntry 8 }
2961 tcpEStatsAppCurAppWQueue OBJECT-TYPE
2962 SYNTAX Gauge32
2963 UNITS "octets"
2964 MAX-ACCESS read-only
2965 STATUS current
2966 DESCRIPTION
2967 "The current number of octets of application data buffered
2968 by TCP, pending first transmission, i.e. to the left of
2969 SND.NXT or SndMax. This data will generally be transmitted
2970 (and SND.NXT advanced to the left) as soon as there is
2971 available congestion window (cwnd) or receiver window
2972 (rwin). This is the amount of data readily available for
2973 transmission, without scheduling the application. TCP
2974 performance may suffer if there is insufficient queued
2975 write data."
2976 ::= { tcpEStatsAppEntry 11 }
2978 tcpEStatsAppMaxAppWQueue OBJECT-TYPE
2979 SYNTAX Gauge32
2980 UNITS "octets"
2981 MAX-ACCESS read-only
2982 STATUS current
2983 DESCRIPTION
2984 "The maximum number of octets of application data buffered
2985 by TCP, pending first transmission. This is the maximum
2986 value of tcpEStatsAppCurAppWQueue. This pair of objects can
2987 be used to determine if insufficient queued data is steady
2988 state (suggesting insufficient queue space) or transient
2989 (suggesting insufficient application performance or
2990 excessive CPU load or scheduler latency)."
2991 ::= { tcpEStatsAppEntry 12 }
2993 tcpEStatsAppCurAppRQueue OBJECT-TYPE
2994 SYNTAX Gauge32
2995 UNITS "octets"
2996 MAX-ACCESS read-only
2997 STATUS current
2998 DESCRIPTION
2999 "The current number of octets of application data that has
3000 been acknowledged by TCP but not yet delivered to the
3001 application."
3002 ::= { tcpEStatsAppEntry 13 }
3004 tcpEStatsAppMaxAppRQueue OBJECT-TYPE
3005 SYNTAX Gauge32
3006 UNITS "octets"
3007 MAX-ACCESS read-only
3008 STATUS current
3009 DESCRIPTION
3010 "The maximum number of octets of application data that has
3011 been acknowledged by TCP but not yet delivered to the
3012 application."
3013 ::= { tcpEStatsAppEntry 14 }
3015 -- ================================================================
3016 --
3017 -- Controls for Tuning TCP
3018 --
3019 tcpEStatsTuneTable OBJECT-TYPE
3020 SYNTAX SEQUENCE OF TcpEStatsTuneEntry
3021 MAX-ACCESS not-accessible
3022 STATUS current
3023 DESCRIPTION
3024 "This table contains per connection controls that can
3025 be used to work around a number of common problems that
3026 plague TCP over some paths. All can be characterized as
3027 limiting the growth of the congestion window so as to
3028 prevent TCP from overwhelming some component in the
3029 path.
3031 Entries are retained in this table for the number of
3032 seconds indicated by the tcpEStatsConnTableLatency
3033 object, after the TCP connection first enters the closed
3034 state."
3035 ::= { tcpEStats 7 }
3037 tcpEStatsTuneEntry OBJECT-TYPE
3038 SYNTAX TcpEStatsTuneEntry
3039 MAX-ACCESS not-accessible
3040 STATUS current
3041 DESCRIPTION
3042 "Each entry in this table is a control that can be used to
3043 place limits on each active tcp connection."
3044 INDEX { tcpEStatsConnectIndex }
3045 ::= { tcpEStatsTuneTable 1 }
3047 TcpEStatsTuneEntry ::= SEQUENCE {
3049 tcpEStatsTuneLimCwnd Gauge32,
3050 tcpEStatsTuneLimSsthresh Gauge32,
3051 tcpEStatsTuneLimRwin Gauge32
3052 }
3054 tcpEStatsTuneLimCwnd OBJECT-TYPE
3055 SYNTAX Gauge32
3056 UNITS "octets"
3057 MAX-ACCESS read-write
3058 STATUS current
3059 DESCRIPTION
3060 "A control to set the maximum congestion window which may be
3061 used, in octets."
3062 REFERENCE
3063 "RFC2581, TCP Congestion Control"
3064 ::= { tcpEStatsTuneEntry 1 }
3066 tcpEStatsTuneLimSsthresh OBJECT-TYPE
3067 SYNTAX Gauge32
3068 UNITS "octets"
3069 MAX-ACCESS read-write
3070 STATUS current
3071 DESCRIPTION
3072 "A control to limit the maximum queue space (in octets) that
3073 this TCP connection is likely to occupy during slowstart.
3075 It can be implemented with the algorithm described in
3076 RFC3742 by setting the max_ssthresh parameter to twice
3077 tcpEStatsTuneLimSsthresh.
3079 This algorithm can be used to overcome some TCP performance
3080 problems over network paths that do not have sufficient
3081 buffering to withstand the bursts normally present during
3082 slowstart."
3083 REFERENCE
3084 "RFC3742, Limited Slow-Start for TCP with Large Congestion
3085 Windows"
3086 ::= { tcpEStatsTuneEntry 2 }
3088 tcpEStatsTuneLimRwin OBJECT-TYPE
3089 SYNTAX Gauge32
3090 UNITS "octets"
3091 MAX-ACCESS read-write
3092 STATUS current
3093 DESCRIPTION
3094 "A control to set the maximum window advertisement which may
3095 be sent, in octets."
3096 REFERENCE
3097 "RFC793, Transmission Control Protocol"
3098 ::= { tcpEStatsTuneEntry 3 }
3100 -- ================================================================
3101 --
3102 -- TCP Extended Statistics Notifications Group
3103 --
3105 tcpEStatsEstablishNotification NOTIFICATION-TYPE
3106 OBJECTS {
3107 tcpEStatsConnectIndex
3108 }
3109 STATUS current
3110 DESCRIPTION
3111 "The indicated connection has been accepted
3112 (or alternatively entered the established state)."
3113 ::= { tcpEStatsNotifications 1 }
3115 tcpEStatsCloseNotification NOTIFICATION-TYPE
3116 OBJECTS {
3117 tcpEStatsConnectIndex
3118 }
3119 STATUS current
3120 DESCRIPTION
3121 "The indicated connection has left the
3122 established state"
3123 ::= { tcpEStatsNotifications 2 }
3125 -- ================================================================
3126 --
3127 -- Conformance Definitions
3128 --
3130 tcpEStatsCompliances OBJECT IDENTIFIER
3131 ::= { tcpEStatsConformance 1 }
3132 tcpEStatsGroups OBJECT IDENTIFIER
3133 ::= { tcpEStatsConformance 2 }
3135 --
3136 -- Compliance Statements
3137 --
3139 tcpEStatsCompliance MODULE-COMPLIANCE
3140 STATUS current
3141 DESCRIPTION
3142 "Compliance statement for all systems that implement TCP
3143 extended statistics."
3144 MODULE -- this module
3145 MANDATORY-GROUPS {
3146 tcpEStatsListenerGroup,
3147 tcpEStatsConnectIdGroup,
3148 tcpEStatsPerfGroup,
3149 tcpEStatsPathGroup,
3150 tcpEStatsStackGroup,
3151 tcpEStatsAppGroup
3152 }
3153 GROUP tcpEStatsListenerHCGroup
3154 DESCRIPTION
3155 "This group is mandatory for all systems that can
3156 wrap the values of the 32-bit counters in
3157 tcpEStatsListenerGroup in less than one hour."
3159 GROUP tcpEStatsPerfOptionalGroup
3160 DESCRIPTION
3161 "This group is optional for all systems."
3163 GROUP tcpEStatsPerfHCGroup
3164 DESCRIPTION
3165 "This group is mandatory for systems that can
3166 wrap the values of the 32-bit counters in
3167 tcpEStatsPerfGroup in less than one hour.
3169 Note that any system that can attain 10 Mb/s
3170 can potentially wrap 32-Bit Octet counters in
3171 under one hour."
3173 GROUP tcpEStatsPathOptionalGroup
3174 DESCRIPTION
3175 "This group is optional for all systems."
3177 GROUP tcpEStatsPathHCGroup
3178 DESCRIPTION
3179 "This group is mandatory for systems that can
3180 wrap the values of the 32-bit counters in
3181 tcpEStatsPathGroup in less than one hour.
3183 Note that any system that can attain 10 Mb/s
3184 can potentially wrap 32-Bit Octet counters in
3185 under one hour."
3187 GROUP tcpEStatsStackOptionalGroup
3188 DESCRIPTION
3189 "This group is optional for all systems."
3191 GROUP tcpEStatsAppHCGroup
3192 DESCRIPTION
3193 "This group is mandatory for systems that can
3194 wrap the values of the 32-bit counters in
3195 tcpEStatsStackGroup in less than one hour.
3197 Note that any system that can attain 10 Mb/s
3198 can potentially wrap 32-Bit Octet counters in
3199 under one hour."
3201 GROUP tcpEStatsAppOptionalGroup
3202 DESCRIPTION
3203 "This group is optional for all systems."
3205 GROUP tcpEStatsTuneOptionalGroup
3206 DESCRIPTION
3207 "This group is optional for all systems."
3209 GROUP tcpEStatsNotificationsGroup
3210 DESCRIPTION
3211 "This group is optional for all systems."
3213 GROUP tcpEStatsNotificationsCtlGroup
3214 DESCRIPTION
3215 "This group is mandatory for systems that include the
3216 tcpEStatsNotificationGroup."
3218 OBJECT tcpEStatsControlNotify
3219 MIN-ACCESS read-only
3220 DESCRIPTION
3221 "Write access is not required."
3223 ::= { tcpEStatsCompliances 1 }
3225 -- ================================================================
3226 --
3227 -- Units of Conformance
3228 --
3229 tcpEStatsListenerGroup OBJECT-GROUP
3230 OBJECTS {
3231 tcpEStatsListenerTableLastChange,
3232 tcpEStatsListenerStartTime,
3233 tcpEStatsListenerSynRcvd,
3234 tcpEStatsListenerInitial,
3235 tcpEStatsListenerEstablished,
3236 tcpEStatsListenerAccepted,
3237 tcpEStatsListenerExceedBacklog,
3238 tcpEStatsListenerCurConns,
3239 tcpEStatsListenerMaxBacklog,
3240 tcpEStatsListenerCurBacklog,
3241 tcpEStatsListenerCurEstabBacklog
3242 }
3243 STATUS current
3244 DESCRIPTION
3245 "The tcpEStatsListener group includes objects that
3246 provide valuable statistics and debugging
3247 information for TCP Listeners."
3248 ::= { tcpEStatsGroups 1 }
3250 tcpEStatsListenerHCGroup OBJECT-GROUP
3251 OBJECTS {
3252 tcpEStatsListenerHCSynRcvd,
3253 tcpEStatsListenerHCInitial,
3254 tcpEStatsListenerHCEstablished,
3255 tcpEStatsListenerHCAccepted,
3256 tcpEStatsListenerHCExceedBacklog
3257 }
3258 STATUS current
3259 DESCRIPTION
3260 "The tcpEStatsListenerHC group includes 64 bit
3261 counters in tcpEStatsListenerTable."
3262 ::= { tcpEStatsGroups 2 }
3264 tcpEStatsConnectIdGroup OBJECT-GROUP
3265 OBJECTS {
3266 tcpEStatsConnTableLatency,
3267 tcpEStatsConnectIndex
3268 }
3269 STATUS current
3270 DESCRIPTION
3271 "The tcpEStatsConnectId group includes objects that
3272 identify TCP connections and control how long TCP
3273 connection entries are retained in the tables."
3274 ::= { tcpEStatsGroups 3 }
3276 tcpEStatsPerfGroup OBJECT-GROUP
3277 OBJECTS {
3278 tcpEStatsPerfSegsOut, tcpEStatsPerfDataSegsOut,
3279 tcpEStatsPerfDataOctetsOut,
3280 tcpEStatsPerfSegsRetrans,
3281 tcpEStatsPerfOctetsRetrans, tcpEStatsPerfSegsIn,
3282 tcpEStatsPerfDataSegsIn,
3283 tcpEStatsPerfDataOctetsIn,
3284 tcpEStatsPerfElapsedSecs,
3285 tcpEStatsPerfElapsedMicroSecs,
3286 tcpEStatsPerfStartTimeStamp, tcpEStatsPerfCurMSS,
3287 tcpEStatsPerfPipeSize, tcpEStatsPerfMaxPipeSize,
3288 tcpEStatsPerfSmoothedRTT, tcpEStatsPerfCurRTO,
3289 tcpEStatsPerfCongSignals, tcpEStatsPerfCurCwnd,
3290 tcpEStatsPerfCurSsthresh, tcpEStatsPerfTimeouts,
3291 tcpEStatsPerfCurRwinSent,
3292 tcpEStatsPerfMaxRwinSent,
3293 tcpEStatsPerfZeroRwinSent,
3294 tcpEStatsPerfCurRwinRcvd,
3295 tcpEStatsPerfMaxRwinRcvd,
3296 tcpEStatsPerfZeroRwinRcvd
3297 }
3298 STATUS current
3299 DESCRIPTION
3300 "The tcpEStatsPerf group includes those objects that
3301 provide basic performance data for a TCP connection."
3302 ::= { tcpEStatsGroups 4 }
3304 tcpEStatsPerfOptionalGroup OBJECT-GROUP
3305 OBJECTS {
3306 tcpEStatsPerfSndLimTransRwin,
3307 tcpEStatsPerfSndLimTransCwnd,
3308 tcpEStatsPerfSndLimTransSnd,
3309 tcpEStatsPerfSndLimTimeRwin,
3310 tcpEStatsPerfSndLimTimeCwnd,
3311 tcpEStatsPerfSndLimTimeSnd
3312 }
3313 STATUS current
3314 DESCRIPTION
3315 "The tcpEStatsPerf group includes those objects that
3316 provide basic performance data for a TCP connection."
3317 ::= { tcpEStatsGroups 5 }
3319 tcpEStatsPerfHCGroup OBJECT-GROUP
3320 OBJECTS {
3321 tcpEStatsPerfHCDataOctetsOut,
3322 tcpEStatsPerfHCDataOctetsIn
3323 }
3324 STATUS current
3325 DESCRIPTION
3326 "The tcpEStatsPerfHC group includes 64 bit
3327 counters in the tcpEStatsPerfTable."
3328 ::= { tcpEStatsGroups 6 }
3330 tcpEStatsPathGroup OBJECT-GROUP
3331 OBJECTS {
3332 tcpEStatsControlPath,
3333 tcpEStatsPathRetranThresh,
3334 tcpEStatsPathNonRecovDAEpisodes,
3335 tcpEStatsPathSumOctetsReordered,
3336 tcpEStatsPathNonRecovDA
3337 }
3338 STATUS current
3339 DESCRIPTION
3340 "The tcpEStatsPath group includes objects that
3341 control the creation of the tcpEStatsPathTable,
3342 and provide information about the path
3343 for each TCP connection."
3344 ::= { tcpEStatsGroups 7 }
3346 tcpEStatsPathOptionalGroup OBJECT-GROUP
3347 OBJECTS {
3348 tcpEStatsPathSampleRTT, tcpEStatsPathRTTVar,
3349 tcpEStatsPathMaxRTT, tcpEStatsPathMinRTT,
3350 tcpEStatsPathSumRTT, tcpEStatsPathCountRTT,
3351 tcpEStatsPathMaxRTO, tcpEStatsPathMinRTO,
3352 tcpEStatsPathIpTtl, tcpEStatsPathIpTosIn,
3353 tcpEStatsPathIpTosOut,
3354 tcpEStatsPathPreCongSumCwnd,
3355 tcpEStatsPathPreCongSumRTT,
3356 tcpEStatsPathPostCongSumRTT,
3357 tcpEStatsPathPostCongCountRTT,
3358 tcpEStatsPathECNsignals, tcpEStatsPathQuenchRcvd,
3359 tcpEStatsPathDupAckEpisodes, tcpEStatsPathRcvRTT,
3360 tcpEStatsPathDupAcksOut, tcpEStatsPathCERcvd,
3361 tcpEStatsPathECESent, tcpEStatsPathECNNonceRcvd
3362 }
3363 STATUS current
3364 DESCRIPTION
3365 "The tcpEStatsPath group includes objects that
3366 provide additional information about the path
3367 for each TCP connection."
3368 ::= { tcpEStatsGroups 8 }
3370 tcpEStatsPathHCGroup OBJECT-GROUP
3371 OBJECTS {
3372 tcpEStatsPathHCSumRTT
3373 }
3374 STATUS current
3375 DESCRIPTION
3376 "The tcpEStatsPathHC group includes 64 bit
3377 counters in the tcpEStatsPathTable."
3378 ::= { tcpEStatsGroups 9 }
3380 tcpEStatsStackGroup OBJECT-GROUP
3381 OBJECTS {
3382 tcpEStatsControlStack,
3383 tcpEStatsStackActiveOpen, tcpEStatsStackMSSSent,
3384 tcpEStatsStackMSSRcvd, tcpEStatsStackWinScaleSent,
3385 tcpEStatsStackWinScaleRcvd,
3386 tcpEStatsStackTimeStamps, tcpEStatsStackECN,
3387 tcpEStatsStackWillSendSACK,
3388 tcpEStatsStackWillUseSACK, tcpEStatsStackState,
3389 tcpEStatsStackNagle, tcpEStatsStackMaxSsCwnd,
3390 tcpEStatsStackMaxCaCwnd,
3391 tcpEStatsStackMaxSsthresh,
3392 tcpEStatsStackMinSsthresh,
3393 tcpEStatsStackInRecovery, tcpEStatsStackDupAcksIn,
3394 tcpEStatsStackSpuriousFrDetected,
3395 tcpEStatsStackSpuriousRtoDetected
3396 }
3397 STATUS current
3398 DESCRIPTION
3399 "The tcpEStatsConnState group includes objects that
3400 control the creation of the tcpEStatsStackTable,
3401 and provide information about the operation of
3402 algorithms used within TCP."
3403 ::= { tcpEStatsGroups 10 }
3405 tcpEStatsStackOptionalGroup OBJECT-GROUP
3406 OBJECTS {
3407 tcpEStatsStackSoftErrors,
3408 tcpEStatsStackSoftErrorReason,
3409 tcpEStatsStackSlowStart, tcpEStatsStackCongAvoid,
3410 tcpEStatsStackOtherReductions,
3411 tcpEStatsStackCongOverCount,
3412 tcpEStatsStackFastRetran,
3413 tcpEStatsStackSubsequentTimeouts,
3414 tcpEStatsStackCurTimeoutCount,
3415 tcpEStatsStackAbruptTimeouts,
3416 tcpEStatsStackSACKsRcvd,
3417 tcpEStatsStackSACKBlocksRcvd,
3418 tcpEStatsStackSendStall, tcpEStatsStackDSACKDups,
3419 tcpEStatsStackMaxMSS, tcpEStatsStackMinMSS,
3420 tcpEStatsStackSndInitial,
3421 tcpEStatsStackRecInitial,
3422 tcpEStatsStackCurRetxQueue,
3423 tcpEStatsStackMaxRetxQueue,
3424 tcpEStatsStackCurReasmQueue,
3425 tcpEStatsStackMaxReasmQueue
3426 }
3427 STATUS current
3428 DESCRIPTION
3429 "The tcpEStatsConnState group includes objects that
3430 provide additional information about the operation of
3431 algorithms used within TCP."
3432 ::= { tcpEStatsGroups 11 }
3434 tcpEStatsAppGroup OBJECT-GROUP
3435 OBJECTS {
3436 tcpEStatsControlApp,
3437 tcpEStatsAppSndUna, tcpEStatsAppSndNxt,
3438 tcpEStatsAppSndMax, tcpEStatsAppThruOctetsAcked,
3439 tcpEStatsAppRcvNxt,
3440 tcpEStatsAppThruOctetsReceived
3441 }
3442 STATUS current
3443 DESCRIPTION
3444 "The tcpEStatsConnState group includes objects that
3445 control the creation of the tcpEStatsAppTable,
3446 and provide information about the operation of
3447 algorithms used within TCP."
3448 ::= { tcpEStatsGroups 12 }
3450 tcpEStatsAppHCGroup OBJECT-GROUP
3451 OBJECTS {
3452 tcpEStatsAppHCThruOctetsAcked,
3453 tcpEStatsAppHCThruOctetsReceived
3454 }
3455 STATUS current
3456 DESCRIPTION
3457 "The tcpEStatsStackHC group includes 64 bit
3458 counters in the tcpEStatsStackTable."
3459 ::= { tcpEStatsGroups 13 }
3461 tcpEStatsAppOptionalGroup OBJECT-GROUP
3462 OBJECTS {
3463 tcpEStatsAppCurAppWQueue,
3464 tcpEStatsAppMaxAppWQueue,
3465 tcpEStatsAppCurAppRQueue,
3466 tcpEStatsAppMaxAppRQueue
3467 }
3468 STATUS current
3469 DESCRIPTION
3470 "The tcpEStatsConnState group includes objects that
3471 provide additional information about how applications
3472 are interacting with each TCP connection."
3473 ::= { tcpEStatsGroups 14 }
3475 tcpEStatsTuneOptionalGroup OBJECT-GROUP
3476 OBJECTS {
3477 tcpEStatsControlTune,
3478 tcpEStatsTuneLimCwnd, tcpEStatsTuneLimSsthresh,
3479 tcpEStatsTuneLimRwin
3480 }
3481 STATUS current
3482 DESCRIPTION
3483 "The tcpEStatsConnState group includes objects that
3484 control the creation of the tcpEStatsConnectionTable,
3485 which can be used to set tuning parameters
3486 for each TCP connection."
3487 ::= { tcpEStatsGroups 15 }
3489 tcpEStatsNotificationsGroup NOTIFICATION-GROUP
3490 NOTIFICATIONS {
3491 tcpEStatsEstablishNotification,
3492 tcpEStatsCloseNotification
3493 }
3494 STATUS current
3495 DESCRIPTION
3496 "Notifications sent by a TCP extended statistics agent."
3497 ::= { tcpEStatsGroups 16 }
3499 tcpEStatsNotificationsCtlGroup OBJECT-GROUP
3500 OBJECTS {
3501 tcpEStatsControlNotify
3502 }
3503 STATUS current
3504 DESCRIPTION
3505 "The tcpEStatsNotificationsCtl group includes the
3506 object that controls the creation of the events
3507 in the tcpEStatsNotificationsGroup."
3508 ::= { tcpEStatsGroups 17 }
3510 END
3512 5. Security Considerations
3514 There are a number of management objects defined in this MIB module
3515 with a MAX-ACCESS clause of read-write and/or read-create. Such
3516 objects may be considered sensitive or vulnerable in some network
3517 environments. The support for SET operations in a non-secure
3518 environment without proper protection can have a negative effect on
3519 network operations. These are the tables and objects and their
3520 sensitivity/vulnerability:
3522 * Changing tcpEStatsConnTableLatency or any of the control objects in
3523 the tcpEStatsControl group (tcpEStatsControlPath,
3524 tcpEStatsControlStack, tcpEStatsControlApp, tcpEStatsControlTune)
3525 may affect the correctness of other management applications
3526 accessing this MIB. Generally local policy should only permit
3527 limited write access to these controls (e.g. only by one management
3528 station or only during system configuration).
3530 * The objects in the tcpEStatsControlTune group
3531 (tcpEStatsTuneLimCwnd, tcpEStatsTuneLimSsthresh,
3532 tcpEStatsTuneLimRwin) can be used to limit resources consumed by
3533 TCP connections or to limit TCP throughput. An attacker might
3534 manipulate these objects to reduce performance to levels below the
3535 minimum acceptable for a particular application.
3537 Some of the readable objects in this MIB module (i.e., objects with a
3538 MAX-ACCESS other than not-accessible) may be considered sensitive or
3539 vulnerable in some network environments. It is thus important to
3540 control even GET and/or NOTIFY access to these objects and possibly
3541 to even encrypt the values of these objects when sending them over
3542 the network via SNMP. These are the tables and objects and their
3543 sensitivity/vulnerability:
3545 * All objects which expose TCP sequence numbers (tcpEStatsAppSndUna,
3546 tcpEStatsAppSndNxt, tcpEStatsAppSndMax, tcpEStatsStackSndInitial,
3547 tcpEStatsAppRcvNxt, and tcpEStatsStackRecInitial) might make it
3548 easier for an attacker to forge in sequence TCP segments to disrupt
3549 TCP connections.
3551 * Nearly all object in this (or any other) MIB may be used to
3552 estimate traffic volumes, which may reveal unanticipated
3553 information about an organization to the outside world.
3555 SNMP versions prior to SNMPv3 did not include adequate security.
3556 Even if the network itself is secure (for example by using IPsec),
3557 even then, there is no control as to who on the secure network is
3558 allowed to access and GET/SET (read/change/create/delete) the objects
3559 in this MIB module.
3561 It is RECOMMENDED that implementers consider the security features as
3562 provided by the SNMPv3 framework (see [RFC3410], section 8),
3563 including full support for the SNMPv3 cryptographic mechanisms (for
3564 authentication and privacy).
3566 Further, deployment of SNMP versions prior to SNMPv3 is NOT
3567 RECOMMENDED. Instead, it is RECOMMENDED to deploy SNMPv3 and to
3568 enable cryptographic security. It is then a customer/operator
3569 responsibility to ensure that the SNMP entity giving access to an
3570 instance of this MIB module is properly configured to give access to
3571 the objects only to those principals (users) that have legitimate
3572 rights to indeed GET or SET (change/create/delete) them.
3574 6. IANA Considerations
3576 The MIB module in this document uses the following IANA-assigned
3577 OBJECT IDENTIFIER values recorded in the SMI Numbers registry:
3579 Descriptor OBJECT IDENTIFIER value
3580 ------------ -----------------------
3581 tcpEStatsMIB { mib-2 xxx2 }
3583 RFC Editor: The IANA is requested to assign a value for "xxx2" under
3584 the 'mib-2' subtree and to record the assignment in the SMI Numbers
3585 registry. When the assignment has been made, the RFC Editor is asked
3586 to replace "xxx2" (here and in the MIB module) with the assigned
3587 value and to remove this note.
3589 7. Normative References
3591 [RFC791] J. Postel, "Internet Protocol", RFC 791, STD 0005, September
3592 1981.
3594 [RFC793] J. Postel, "Transmission Control Protocol", RFC 793, STD 0007,
3595 September 1981.
3597 [RFC1122] R. Braden, Ed, "Requirements for Internet Hosts -
3598 Communication Layers", RFC 1122, STD 0003, October 1989.
3600 [RFC1191] J.C. Mogul, S.E. Deering, "Path MTU discovery", RFC 1191,
3601 November 1990.
3603 [RFC1323] V. Jacobson, R. Braden, D. Borman, "TCP Extensions for High
3604 Performance", RFC 1323, May 1992.
3606 [RFC2018] M. Mathis, J. Mahdavi, S. Floyd, A. Romanow, "TCP Selective
3607 Acknowledgment Options", RFC 2018, October 1996.
3609 [RFC2021] S. Waldbusser, "Remote Network Monitoring Management
3610 Information Base Version 2 using SMIv2", RFC 2021, January 1997.
3612 [RFC2119] S. Bradner, "Key words for use in RFCs to Indicate Requirement
3613 Levels", RFC 2119, BCP 0014, March 1997
3615 [RFC2578] McCloghrie, K., Perkins, D., Schoenwaelder, J., Case, J.,
3616 Rose, M., and S. Waldbusser, "Structure of Management Information
3617 Version 2 (SMIv2)", STD 58, RFC 2578, April 1999.
3619 [RFC2579] McCloghrie, K., Perkins, D., Schoenwaelder, J., Case, J.,
3620 Rose, M., and S. Waldbusser, "Textual Conventions for SMIv2", RFC
3621 2579, STD 58, April 1999.
3623 [RFC2580] McCloghrie, K., Perkins, D., Schoenwaelder, J., Case, J.,
3624 Rose, M., and S. Waldbusser, "Conformance Statements for SMIv2",
3625 RFC 2580, STD 58, April 1999.
3627 [RFC2581] M. Allman, V. Paxson, W. Stevens, "TCP Congestion Control",
3628 RFC 2581, April 1999.
3630 [RFC2856] A. Bierman, K. McCloghrie, R. Presuhn, "Textual Conventions
3631 for Additional High Capacity Data Types", RFC 2856, June 2000.
3633 [RFC2861] M. Handley, J. Padhye, S. Floyd, "TCP Congestion Window
3634 Validation", RFC 2861, June 2000.
3636 [RFC2883] S. Floyd, J. Mahdavi, M. Mathis, M. Podolsky, "An Extension to
3637 the Selective Acknowledgment (SACK) Option for TCP", RFC 2883, July
3638 2000.
3640 [RFC2988] V. Paxson, M. Allman, "Computing TCP's Retransmission Timer",
3641 RFC 2988, November 2000.
3643 [RFC3168] K. Ramakrishnan, S. Floyd, D. Black, "The Addition of Explicit
3644 Congestion Notification (ECN) to IP", RFC 3168, September 2001.
3646 [RFC3260] D. Grossman, "New Terminology and Clarifications for
3647 Diffserv", RFC 3260, April 2002.
3649 [RFC3517] Blanton, E., Allman, M., Fall, K., Wang. L., A Conservative
3650 Selective Acknowledgment (SACK)-based Loss Recovery Algorithm for
3651 TCP, RFC 3517, April 2003.
3653 [RFC3522] R. Ludwig, M. Meyer, "The Eifel Detection Algorithm for TCP",
3654 RFC 3522, April 2003.
3656 [RFC3540] N. Spring, D. Wetherall, D. Ely, "Robust Explicit Congestion
3657 Notification (ECN) Signaling with Nonces", RFC 3540, June 2003.
3659 [RFC3742] S. Floyd, "Limited Slow-Start for TCP with Large Congestion
3660 Windows", RFC 3742, March 2004.
3662 [RFC4022] Raghunarayan, R., "Management Information Base for the
3663 Transmission Control Protocol (TCP)", RFC 4022, March 2005.
3665 8. Informative References
3667 [Mat97] M. Mathis, J. Semke, J. Mahdavi, T. Ott, "The Macroscopic
3668 Behavior of the TCP Congestion Avoidance Algorithm", Computer
3669 Communication Review, volume 27, number3, July 1997.
3671 [Bra94] Brakmo, L., O'Malley, S., "TCP Vegas, New Techniques for
3672 Congestion Detection and Avoidance," SIGCOMM'94, London, pp 24-35,
3673 October 1994.
3675 [Edd06] Eddy, W., "TCP SYN Flooding Attacks and Common Mitigations,"
3676 Internet Draft draft-ietf-tcpm-syn-flood-00, Work in progress, July
3677 2006
3679 [POSIX] Portable Operating System Interface, IEEE Std 1003.1
3681 [Pad98] Padhye, J., Firoiu, V., Towsley, D., Kurose, J., "Modeling TCP
3682 Throughput: A Simple Model and its Empirical Validation",
3683 SIGCOMM'98
3685 [roadmap] M. Duke, R. Braden, W. Eddy, E. Blanton, "A Roadmap for TCP
3686 Specification Documents", Internet Draft draft-ietf-tcpm-tcp-
3687 roadmap-06, Work in progress, February 2005
3689 [Web100] Mathis, M., J. Heffner, R. Reddy, "Web100: Extended TCP
3690 Instrumentation for Research, Education and Diagnosis", ACM
3691 Computer Communications Review, Vol 33, Num 3, July 2003.
3693 [RFC3410] Case, J., Mundy, R., Partain, D. and B. Stewart, "Introduction
3694 and Applicability Statements for Internet-Standard Management
3695 Framework", RFC 3410, December 2002.
3697 9. Contributors
3699 The following people contributed text that was incorporated into this
3700 document:
3702 Jon Saperia converted Web100 internal
3703 documentation into a true MIB. Jon can be reached at JDS Consulting,
3704 Inc, 617-744-1079.
3706 Some of the objects in this document were moved from an early draft
3707 of the TCP-MIB, by Bill Fenner et al.
3709 Some of the object descriptions are based on an earlier unpublished
3710 document by Jeff Semke.
3712 10. Acknowledgments
3714 This document is a product of the Web100 project (www.web100.org), a
3715 joint effort of Pittsburgh Supercomputing Center (www.psc.edu),
3716 National Center for Atmospheric Research (www.ncar.ucar.edu) and
3717 National Center for Supercomputer Applications (www.ncsa.edu).
3719 It would not have been possible without all of the hard work by the
3720 the entire Web100 team, especially Peter O'Neal who read and reread
3721 the entire document several times; Janet Brown and Marla Meehl, who
3722 patiently managed the unmanageable. The Web100 project would not
3723 have been successful without all of the early adopters who suffered
3724 our bugs to provide many good suggestions and insights into their
3725 needs for TCP instrumentation.
3727 Web100 was supported by the National Science Foundation under Grant
3728 No. 0083285 and a research grant from Cisco Systems.
3730 We would also like to thank all of the people who built experimental
3731 implementations of this MIB from early versions of the Internet Draft
3732 and provided us with constructive feedback: Glenn Turner at AARnet,
3733 Kristine Adamson at IBM and Xinyan Zan at Microsoft.
3735 And last, but not least, we would like to thank Dan Romascanu, our
3736 "MIB Doctor" and Bert Wijnen the Operations Area Director, for
3737 patiently steering us through the MIB review process.
3739 11. Authors' Addresses
3740 Matt Mathis
3741 John Heffner
3742 Pittsburgh Supercomputing Center
3743 4400 Fifth Ave
3744 Pittsburgh, PA 15216
3745 Phone: 412-268-4960
3746 Email: mathis@psc.edu, jheffner@psc.edu
3748 Rajiv Raghunarayan
3749 Cisco Systems Inc.
3750 San Jose, CA 95134
3751 Phone: 408 853 9612
3752 Email: raraghun@cisco.com
3754 12. Intellectual Property
3756 The IETF takes no position regarding the validity or scope of any
3757 Intellectual Property Rights or other rights that might be claimed
3758 to pertain to the implementation or use of the technology
3759 described in this document or the extent to which any license
3760 under such rights might or might not be available; nor does it
3761 represent that it has made any independent effort to identify any
3762 such rights. Information on the procedures with respect to rights
3763 in RFC documents can be found in BCP 78 and BCP 79.
3765 Copies of IPR disclosures made to the IETF Secretariat and any
3766 assurances of licenses to be made available, or the result of an
3767 attempt made to obtain a general license or permission for the use
3768 of such proprietary rights by implementers or users of this
3769 specification can be obtained from the IETF on-line IPR repository
3770 at http://www.ietf.org/ipr.
3772 The IETF invites any interested party to bring to its attention
3773 any copyrights, patents or patent applications, or other
3774 proprietary rights that may cover technology that may be required
3775 to implement this standard. Please address the information to the
3776 IETF at ietf-ipr@ietf.org.
3778 13. Disclaimer of Validity
3780 This document and the information contained herein are provided
3781 on an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE
3782 REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND
3783 THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES,
3784 EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT
3785 THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR
3786 ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A
3787 PARTICULAR PURPOSE.
3789 14. Copyright Statement
3791 Copyright (C) The Internet Society (2006).
3793 This document is subject to the rights, licenses and restrictions
3794 contained in BCP 78, and except as set forth therein, the authors
3795 retain all their rights.