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