Network Working Group J. Schoenwaelder Internet-Draft TU Braunschweig Expires: October 4, 2000 April 5, 2000 SNMP over TCP Transport Mapping draft-irtf-nmrg-snmp-tcp-03.txt Status of this Memo This document is an Internet-Draft and is in full conformance with all provisions of Section 10 of RFC2026. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet-Drafts. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." To view the entire list of Internet-Draft Shadow Directories, see http://www.ietf.org/shadow.html. The list of current Internet-Drafts can be accessed at http://www.ietf.org/ietf/iid-abstracts.txt This Internet-Draft will expire on October 4, 2000. Copyright Notice Copyright (C) The Internet Society (2000). All Rights Reserved. Abstract This memo defines a transport mapping for using the Simple Network Management Protocol (SNMP) over TCP. The transport mapping can be used with any version of SNMP. This document extends the transport mappings defined in RFC 1906. Schoenwaelder Expires October 4, 2000 [Page 1] Internet-Draft TCs for Internet Network Addresses April 2000 Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 2. Definitions . . . . . . . . . . . . . . . . . . . . . . . . . 3 3. SNMP over TCP . . . . . . . . . . . . . . . . . . . . . . . . 4 3.1 Serialization . . . . . . . . . . . . . . . . . . . . . . . . 4 3.2 Well-Known Values . . . . . . . . . . . . . . . . . . . . . . 4 3.3 Connection Management . . . . . . . . . . . . . . . . . . . . 5 3.4 Reliable Transport versus Confirmed Operations . . . . . . . . 5 4. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 6 References . . . . . . . . . . . . . . . . . . . . . . . . . . 6 Author's Address . . . . . . . . . . . . . . . . . . . . . . . 7 Full Copyright Statement . . . . . . . . . . . . . . . . . . . 8 Schoenwaelder Expires October 4, 2000 [Page 2] Internet-Draft TCs for Internet Network Addresses April 2000 1. Introduction This memo defines a transport mapping for using the Simple Network Management Protocol (SNMP) over TCP. The transport mapping can be used with any version of SNMP [2]. This document extends the transport mappings defined in RFC 1906 [4]. The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119 [3]. 2. Definitions IRTF-NMRG-SNMP-TM DEFINITIONS ::= BEGIN IMPORTS MODULE-IDENTITY, OBJECT-IDENTITY, experimental FROM SNMPv2-SMI TEXTUAL-CONVENTION FROM SNMPv2-TC; nmrgSnmpDomains MODULE-IDENTITY LAST-UPDATED "200004031800Z" ORGANIZATION "IRTF Network Management Research Group" CONTACT-INFO "Juergen Schoenwaelder TU Braunschweig Bueltenweg 74/75 38106 Braunschweig Germany Phone: +49 531 391-3283 Email: schoenw@ibr.cs.tu-bs.de" DESCRIPTION "This MIB module defines the SNMP over TCP transport mapping." REVISION "200004031800Z" DESCRIPTION "Initial version, published as RFC XXXX." ::= { experimental nmrg(91) 1 } -- SNMP over TCP over IPv4 snmpTCPDomain OBJECT-IDENTITY STATUS current DESCRIPTION "The SNMP over TCP over IPv4 transport domain. The corresponding transport address is of type SnmpTCPAddress." ::= { nmrgSnmpDomains 1 } SnmpTCPAddress ::= TEXTUAL-CONVENTION DISPLAY-HINT "1d.1d.1d.1d/2d" STATUS current Schoenwaelder Expires October 4, 2000 [Page 3] Internet-Draft TCs for Internet Network Addresses April 2000 DESCRIPTION "Represents a TCP/IPv4 address: octets contents encoding 1-4 IP-address network-byte order 5-6 TCP-port network-byte order " SYNTAX OCTET STRING (SIZE (6)) END 3. SNMP over TCP SNMP over TCP is an optional transport mapping. Implementors are encouraged to support SNMP over TCP whenever possible because this enables applications to make more efficient bulk transfers of MIB data [7]. The originator of a request/response transaction chooses the transport protocol for the entire transaction. The transport protocol MUST NOT change during a transaction. In general, originators of request/response transactions are free to use the transport they assume is the best in a given situation. However, as TCP has a larger footprint on resource usage than UDP, applications using SNMP over TCP may choose to switch back to UDP by refusing new TCP connections whenever necessary (e.g. too many open TCP connections). 3.1 Serialization Each instance of a message is serialized into a single BER-encoded message, using the algorithm specified in Section 8 of RFC 1906 [4]. The BER-encoded message is then sent over a TCP connection. It is possible to exchange multiple SNMP request/response pairs over a single (persistent) TCP connection. The length field in the BER-encoded SNMP message is used to separate multiple requests sent over a single TCP connection. 3.2 Well-Known Values It is RECOMMENDED that administrators configure their SNMP entities containing command responders to listen on TCP port 161 for incoming connections. It is also RECOMMENDED that SNMP entities containing notification receivers be configured to listen on TCP port 162 for connection requests. When an SNMP entity uses the TCP transport mapping, it MUST be Schoenwaelder Expires October 4, 2000 [Page 4] Internet-Draft TCs for Internet Network Addresses April 2000 capable of accepting messages that are at least 8192 octets in size. Implementation of larger values is encouraged whenever possible. 3.3 Connection Management The use of TCP connections introduces costs [5]. Connection establishment and teardown cause additional network traffic. Furthermore, maintaining open connections binds resources in the network layer of the underlying operating system. SNMP over TCP is intended to be used when the size of the transferred data is large since TCP offers flow control and efficient segmentation. The transport of SNMP messages over UDP requires to transfer large amounts of data with small-sized SNMP over UDP messages, which causes latency to increase excessively. Another advantage of using TCP connections is that it is not necessary to implement retransmissions at the application level. This may result in simpler management applications. All SNMP entities (whether in an agent role or manager role) can close TCP connections at any point in time. This ensures that SNMP entities can control their resource usage and shut down TCP connections that are not used. However, SNMP engines MUST NOT discard SNMP requests if only the incoming half of the TCP connection is closed. The processing of any outstanding SNMP requests when both halfs of the TCP connection have been closed is implementation dependent. The sending SNMP entity SHOULD therefore not assume anything about the processing of outstanding SNMP requests once a TCP connection is closed. A `noResponse' error condition SHOULD be signalled for outstanding requests for command generator applications if the TCP connection is closed before a response has been received. 3.4 Reliable Transport versus Confirmed Operations The transport of SNMP messages over TCP results in a reliable exchange of SNMP messages between SNMP engines. TCP guarantees that the delivered data is not damaged, lost, duplicated, or delivered out of order [6]. The SNMP protocol has been designed to support confirmed as well as unconfirmed operations [1]. The InformRequest-PDU protocol operation is an example for a confirmed operation while the Trapv2-PDU operation is an example for an unconfirmed operation. Schoenwaelder Expires October 4, 2000 [Page 5] Internet-Draft TCs for Internet Network Addresses April 2000 There is an important difference between an unconfirmed protocol operation send over a reliable transport and a confirmed protocol operation. A reliable transport such as TCP only ensures to deliver data to the receiving application process. It does not guarantee that the data was actually processed by the application process. A confirmed operation indicates that the data was actually delivered and processed by the receiving application process. For example, the response to an InformRequest-PDU protocol operation indicates to the notification originator that the data passed the transport and the authentication mechanism on the notification receiver side. Similarily, the response to a SetRequest-PDU indicates that the data passed the transport, the authentication mechanism and that the write request was processed by the command responder. A reliable transport is thus only a poor approximation for confirmed operations. Applications that need confirmed delivery of notifications are thus encouraged to use the confirmed InformRequest-PDU rather than just sending unconfirmed traps over a reliable transport. 4. Acknowledgments This document is the result of discussions within the Network Management Research Group (NMRG) of the Internet Research Task Force[8] (IRTF). Special thanks go to Luca Deri, Jean-Philippe Martin-Flatin, Aiko Pras, Ron Sprenkels, and Bert Wijnen for their comments and suggestions. Additional thanks go to Wes Hardaker and Erik Schoenfelder for implementing the proposed SNMP over TCP transport mapping in the UCD SNMP package[9] and the Linux CMU SNMP package[10]. References [1] Harrington, D., Presuhn, R. and B. Wijnen, "An Architecture for Describing SNMP Management Frameworks", RFC 2571, April 1999. [2] Case, J., Mundy, R., Partain, D. and B. Stewart, "Introduction to Version 3 of the Internet-standard Network Management Framework", RFC 2570, April 1999. [3] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. [4] Case, J., McCloghrie, K., Rose, M. and S. Waldbusser, "Transport Mappings for Version 2 of the Simple Network Management Protocol (SNMPv2)", RFC 1906, January 1996. Schoenwaelder Expires October 4, 2000 [Page 6] Internet-Draft TCs for Internet Network Addresses April 2000 [5] Kastenholz, F., "SNMP Communications Services", RFC 1270, October 1991. [6] Postel, J., "Transmission Control Protocol", STD 7, RFC 793, September 1981. [7] Sprenkels, R. and J.P. Martin-Flatin, "Bulk Transfers of MIB Data", Simple Times 7(1), March 1999. [8] http://www.irtf.org/ [9] http://ucd-snmp.ucdavis.edu/ [10] http://www.gaertner.de/snmp/ Author's Address Juergen Schoenwaelder TU Braunschweig Bueltenweg 74/75 38106 Braunschweig Germany Phone: +49 531 391-3289 EMail: schoenw@ibr.cs.tu-bs.de Schoenwaelder Expires October 4, 2000 [Page 7] Internet-Draft TCs for Internet Network Addresses April 2000 Full Copyright Statement Copyright (C) The Internet Society (2000). All Rights Reserved. This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implmentation may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this paragraph are included on all such copies and derivative works. However, this document itself may not be modified in any way, such as by removing the copyright notice or references to the Internet Society or other Internet organizations, except as needed for the purpose of developing Internet standards in which case the procedures for copyrights defined in the Internet Standards process must be followed, or as required to translate it into languages other than English. The limited permissions granted above are perpetual and will not be revoked by the Internet Society or its successors or assigns. This document and the information contained herein is provided on an "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Acknowledgement Funding for the RFC editor function is currently provided by the Internet Society. Schoenwaelder Expires October 4, 2000 [Page 8]