⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rfc3416.txt

📁 开发snmp的开发包有两个开放的SNMP开发库
💻 TXT
📖 第 1 页 / 共 5 页
字号:
            binding's name in the request.   If the processing of any variable binding fails for a reason other   than listed above, then the Response-PDU is re-formatted with the   same values in its request-id and variable-bindings fields as the   received GetNextRequest-PDU, with the value of its error-status field   set to "genErr", and the value of its error-index field is set to the   index of the failed variable binding.   Otherwise, the value of the Response-PDU's error-status field is set   to "noError", and the value of its error-index field is zero.   The generated Response-PDU is then encapsulated into a message.  If   the size of the resultant message is less than or equal to both a   local constraint and the maximum message size of the originator, it   is transmitted to the originator of the GetNextRequest-PDU.   Otherwise, an alternate Response-PDU is generated.  This alternate   Response-PDU is formatted with the same values in its request-id   field as the received GetNextRequest-PDU, with the value of its   error-status field set to "tooBig", the value of its error-index   field set to zero, and an empty variable-bindings field.  This   alternate Response-PDU is then encapsulated into a message.  If the   size of the resultant message is less than or equal to both a local   constraint and the maximum message size of the originator, it is   transmitted to the originator of the GetNextRequest-PDU.  Otherwise,   the snmpSilentDrops [RFC3418] counter is incremented and the   resultant message is discarded.4.2.2.1.  Example of Table Traversal   An important use of the GetNextRequest-PDU is the traversal of   conceptual tables of information within a MIB.  The semantics of this   type of request, together with the method of identifying individual   instances of objects in the MIB, provides access to related objects   in the MIB as if they enjoyed a tabular organization.Presuhn, et al.             Standards Track                    [Page 12]RFC 3416              Protocol Operations for SNMP         December 2002   In the protocol exchange sketched below, an application retrieves the   media-dependent physical address and the address-mapping type for   each entry in the IP net-to-media Address Translation Table [RFC1213]   of a particular network element.  It also retrieves the value of   sysUpTime [RFC3418], at which the mappings existed.  Suppose that the   command responder's IP net-to-media table has three entries:   Interface-Number  Network-Address  Physical-Address  Type      1            10.0.0.51     00:00:10:01:23:45  static      1             9.2.3.4      00:00:10:54:32:10  dynamic      2            10.0.0.15     00:00:10:98:76:54  dynamic   The SNMP entity supporting a command generator application begins by   sending a GetNextRequest-PDU containing the indicated OBJECT   IDENTIFIER values as the requested variable names:    GetNextRequest ( sysUpTime,                   ipNetToMediaPhysAddress,                   ipNetToMediaType )   The SNMP entity supporting a command responder application responds   with a Response-PDU:    Response (( sysUpTime.0 =  "123456" ),               ( ipNetToMediaPhysAddress.1.9.2.3.4 = "000010543210" ),            ( ipNetToMediaType.1.9.2.3.4 =  "dynamic" ))   The SNMP entity supporting the command generator application   continues with:    GetNextRequest ( sysUpTime,                   ipNetToMediaPhysAddress.1.9.2.3.4,                   ipNetToMediaType.1.9.2.3.4 )   The SNMP entity supporting the command responder application responds   with:    Response (( sysUpTime.0 =  "123461" ),               ( ipNetToMediaPhysAddress.1.10.0.0.51 = "000010012345" ),            ( ipNetToMediaType.1.10.0.0.51 =  "static" ))   The SNMP entity supporting the command generator application   continues with:    GetNextRequest ( sysUpTime,                   ipNetToMediaPhysAddress.1.10.0.0.51,                   ipNetToMediaType.1.10.0.0.51 )Presuhn, et al.             Standards Track                    [Page 13]RFC 3416              Protocol Operations for SNMP         December 2002   The SNMP entity supporting the command responder application responds   with:    Response (( sysUpTime.0 =  "123466" ),               ( ipNetToMediaPhysAddress.2.10.0.0.15 = "000010987654" ),            ( ipNetToMediaType.2.10.0.0.15 =  "dynamic" ))   The SNMP entity supporting the command generator application   continues with:    GetNextRequest ( sysUpTime,                   ipNetToMediaPhysAddress.2.10.0.0.15,                   ipNetToMediaType.2.10.0.0.15 )   As there are no further entries in the table, the SNMP entity   supporting the command responder application responds with the   variables that are next in the lexicographical ordering of the   accessible object names, for example:    Response (( sysUpTime.0 =  "123471" ),               ( ipNetToMediaNetAddress.1.9.2.3.4 = "9.2.3.4" ),            ( ipRoutingDiscards.0 =  "2" ))   Note how, having reached the end of the column for   ipNetToMediaPhysAddress, the second variable binding from the command   responder application has now "wrapped" to the first row in the next   column.  Furthermore, note how, having reached the end of the   ipNetToMediaTable for the third variable binding, the command   responder application has responded with the next available object,   which is outside that table.  This response signals the end of the   table to the command generator application.4.2.3.  The GetBulkRequest-PDU   A GetBulkRequest-PDU is generated and transmitted at the request of   an application.  The purpose of the GetBulkRequest-PDU is to request   the transfer of a potentially large amount of data, including, but   not limited to, the efficient and rapid retrieval of large tables.   Upon receipt of a GetBulkRequest-PDU, the receiving SNMP entity   processes each variable binding in the variable-binding list to   produce a Response-PDU with its request-id field having the same   value as in the request.   For the GetBulkRequest-PDU type, the successful processing of each   variable binding in the request generates zero or more variable   bindings in the Response-PDU.  That is, the one-to-one mapping   between the variable bindings of the GetRequest-PDU, GetNextRequest-Presuhn, et al.             Standards Track                    [Page 14]RFC 3416              Protocol Operations for SNMP         December 2002   PDU, and SetRequest-PDU types and the resultant Response-PDUs does   not apply for the mapping between the variable bindings of a   GetBulkRequest-PDU and the resultant Response-PDU.   The values of the non-repeaters and max-repetitions fields in the   request specify the processing requested.  One variable binding in   the Response-PDU is requested for the first N variable bindings in   the request and M variable bindings are requested for each of the R   remaining variable bindings in the request.  Consequently, the total   number of requested variable bindings communicated by the request is   given by N + (M * R), where N is the minimum of:  a) the value of the   non-repeaters field in the request, and b) the number of variable   bindings in the request; M is the value of the max-repetitions field   in the request; and R is the maximum of:  a) number of variable   bindings in the request - N, and b)  zero.   The receiving SNMP entity produces a Response-PDU with up to the   total number of requested variable bindings communicated by the   request.  The request-id shall have the same value as the received   GetBulkRequest-PDU.   If N is greater than zero, the first through the (N)-th variable   bindings of the Response-PDU are each produced as follows:   (1)   The variable is located which is in the lexicographically         ordered list of the names of all variables which are accessible         by this request and whose name is the first lexicographic         successor of the variable binding's name in the incoming         GetBulkRequest-PDU.  The corresponding variable binding's name         and value fields in the Response-PDU are set to the name and         value of the located variable.   (2)   If the requested variable binding's name does not         lexicographically precede the name of any variable accessible         by this request, i.e., there is no lexicographic successor,         then the corresponding variable binding produced in the         Response-PDU has its value field set to "endOfMibView", and its         name field set to the variable binding's name in the request.   If M and R are non-zero, the (N + 1)-th and subsequent variable   bindings of the Response-PDU are each produced in a similar manner.   For each iteration i, such that i is greater than zero and less than   or equal to M, and for each repeated variable, r, such that r is   greater than zero and less than or equal to R, the (N + ( (i-1) * R )   + r)-th variable binding of the Response-PDU is produced as follows:Presuhn, et al.             Standards Track                    [Page 15]RFC 3416              Protocol Operations for SNMP         December 2002   (1)   The variable which is in the lexicographically ordered list of         the names of all variables which are accessible by this request         and whose name is the (i)-th lexicographic successor of the (N         + r)-th variable binding's name in the incoming         GetBulkRequest-PDU is located and the variable binding's name         and value fields are set to the name and value of the located         variable.   (2)   If there is no (i)-th lexicographic successor, then the         corresponding variable binding produced in the Response-PDU has         its value field set to "endOfMibView", and its name field set         to either the last lexicographic successor, or if there are no         lexicographic successors, to the (N + r)-th variable binding's         name in the request.   While the maximum number of variable bindings in the Response-PDU is   bounded by N + (M * R), the response may be generated with a lesser   number of variable bindings (possibly zero) for either of three   reasons.   (1)   If the size of the message encapsulating the Response-PDU         containing the requested number of variable bindings would be         greater than either a local constraint or the maximum message         size of the originator, then the response is generated with a         lesser number of variable bindings.  This lesser number is the         ordered set of variable bindings with some of the variable         bindings at the end of the set removed, such that the size of         the message encapsulating the Response-PDU is approximately         equal to but no greater than either a local constraint or the         maximum message size of the originator.  Note that the number         of variable bindings removed has no relationship to the values         of N, M, or R.   (2)   The response may also be generated with a lesser number of         variable bindings if for some value of iteration i, such that i         is greater than zero and less than or equal to M, that all of         the generated variable bindings have the value field set to         "endOfMibView".  In this case, the variable bindings may be         truncated after the (N + (i * R))-th variable binding.   (3)   In the event that the processing of a request with many         repetitions requires a significantly greater amount of         processing time than a normal request, then a command responder         application may terminate the request with less than the full         number of repetitions, providing at least one repetition is         completed.Presuhn, et al.             Standards Track                    [Page 16]RFC 3416              Protocol Operations for SNMP         December 2002   If the processing of any variable binding fails for a reason other   than listed above, then the Response-PDU is re-formatted with the   same values in its request-id and variable-bindings fields as the   received GetBulkRequest-PDU, with the value of its error-status field   set to "genErr", and the value of its error-index field is set to the   index of the variable binding in the original request which   corresponds to the failed variable binding.   Otherwise, the value of the Response-PDU's error-status field is set   to "noError", and the value of its error-index field to zero.   The generated Response-PDU (possibly with an empty variable-bindings   field) is then encapsulated into a message.  If the size of the   resultant message is less than or equal to both a local constraint   and the maximum message size of the originator, it is transmitted to   the originator of the GetBulkRequest-PDU.  Otherwise, the   snmpSilentDrops [RFC3418] counter is incremented and the resultant   message is discarded.4.2.3.1.  Another Example of Table Traversal   This example demonstrates how the GetBulkRequest-PDU can be used as   an alternative to the GetNextRequest-PDU.  The same traversal of the   IP net-to-media table as shown in Section 4.2.2.1 is achieved with   fewer exchanges.   The SNMP entity supporting the command generator application begins   by sending a GetBulkRequest-PDU with the modest max-repetitions value   of 2, and containing the indicated OBJECT IDENTIFIER values as the   requested variable names:    GetBulkRequest [ non-repeaters = 1, max-repetitions = 2 ]                  ( sysUpTime,                    ipNetToMediaPhysAddress,                    ipNetToMediaType )   The SNMP entity supporting the command responder application responds   with a Response-PDU:    Response (( sysUpTime.0 =  "123456" ),               ( ipNetToMediaPhysAddress.1.9.2.3.4 = "000010543210" ),            ( ipNetToMediaType.1.9.2.3.4 =  "dynamic" ),               ( ipNetToMediaPhysAddress.1.10.0.0.51 = "000010012345" ),            ( ipNetToMediaType.1.10.0.0.51 =  "static" ))

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -