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