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