跳到主要内容

2. 概述

支持命令生成器或通知接收器应用的 SNMP 实体 (传统上称为 "管理器") 与支持命令响应器或通知发起器应用的 SNMP 实体 (传统上称为 "代理") 通信. 本协议的目的在于传递管理信息和管理操作.

2.1. 管理信息

"变量 (variable)" 一词指按照 SMI [RFC2578] 中规定的约定或基于 SMI 的文本约定 [RFC2579] 定义的非聚合对象类型实例. "变量绑定 (variable binding)" 通常指变量名称与其关联值的配对. 但是, 如果在处理检索请求期间发生某些类型的异常条件, 变量绑定会将一个名称与该异常的指示配对.

变量绑定列表是变量绑定的简单列表.

变量名称是一个 OBJECT IDENTIFIER, 它由对应对象类型的 OBJECT IDENTIFIER 与用于标识实例的 OBJECT IDENTIFIER 片段连接而成. 对应对象类型的 OBJECT IDENTIFIER 称为该变量的 OBJECT IDENTIFIER 前缀.

2.2. 请求重传

对于本协议中的所有请求类型, 在正常情况下, 接收方都需要生成响应并将其发送给请求发起方. 如果在适当的时间间隔内没有收到对应响应, 是否重传该请求由发起该请求的应用自行决定. 这通常取决于请求的紧急程度. 但是, 此类应用需要以负责任的方式控制重传频率和持续时间. 有关相关拥塞控制原则的讨论, 参见 BCP 41 [RFC2914].

2.3. 消息大小

SNMP 消息的最大大小受以下二者中较小者限制:

(1) 目标 SNMP 实体能够接受的最大消息大小; 以及,

(2) 源 SNMP 实体能够生成的最大消息大小.

前者可以按接收方获知; 如果没有此类知识, 则由发送消息时使用的传输域指示. 后者由特定实现的本地约束施加.

SNMP 的每种传输映射都会指明 SNMP 实现必须能够生成或消费的最小消息大小. 虽然鼓励实现尽可能支持更大的值, 但符合规范的实现绝不能生成超过接收 SNMP 实体所允许大小的消息.

本文档规定的 GetBulkRequest-PDU 的目标之一, 是尽量减少检索大量管理信息所需的协议交换次数. 因此, 此 PDU 类型允许支持命令生成器应用的 SNMP 实体在消息大小约束范围内请求尽可能大的响应.

这些约束包括支持命令生成器应用的 SNMP 实体能够生成或接收的消息大小限制, 以及支持命令响应器应用的 SNMP 实体能够生成或接收的消息大小限制. 对请求的任何响应大小都受这两类约束中较小者限制.

2.4. 传输映射

SNMP 的一个目标是尽可能独立于特定传输服务的架构和机制. SNMP 架构 [RFC3411] 提供的抽象服务接口支持将协议映射到不同的传输服务. 这些映射见 [RFC3417].

2.5. SMIv2 数据类型映射

本文档所述各类 PDU 的语法使用 ASN.1 基本编码规则 (Basic Encoding Rules, BER) 指定. 但是, SNMP 协议广泛使用 SMIv2 [RFC2578], 而 SMIv2 本身使用 ASN.1 [ASN1] 定义. SMIv2 定义了一个 ASN.1 类型子集, 用于定义信息模块. 对于其中一些由 SMIv2 定义的类型, 标准 ASN.1 编码规则无法提供无歧义表示. 在这种情况下, SMIv2 本身会指定要使用的表示. 这尤其适用于以下类型:

  • Counter32
  • Counter64
  • Gauge32
  • TimeTicks
  • Opaque
  • IpAddress

有关 SMIv2 类型如何编码的详细信息, 参见 [RFC2578].