跳到主要内容

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].