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