跳到主要内容

2. 概述

下图展示 Message Processing 与 SNMP 应用, Security Subsystem 和 Transport Mappings 之间的关系.

+-------------------------------------------------------------------+
| SNMP Entity |
| |
| +---------------------------------------------------------------+ |
| | Applications | |
| | +-----------+ +--------------+ | |
| | | Command | | Notification | | |
| | | Generator | | Originator | +-----------+ +--------------+| |
| | +-----------+ +--------------+ | Proxy | | Other || |
| | +-----------+ +--------------+ | Forwarder | |Application(s)|| |
| | | Command | | Notification | +-----------+ +--------------+| |
| | | Responder | | Receiver | | |
| | +-----------+ +--------------+ | |
| +---------------------------------------------------------------+ |
| ^ ^ ^ ^ |
| | | | | |
| v v v v |
| +--------+-------+---------------+-----------+ |
| ^ |
| | +---------------------+ +-----------------+ |
| | | Message Processing | | Security | |
| Dispatcher v | Subsystem | | Subsystem | |
| +------------------+ | +------------+ | | | |
| | PDU Dispatcher | | +->| v1MP * |<--->| +-------------+ | |
| | | | | +------------+ | | | Other | | |
| | | | | +------------+ | | | Security | | |
| | | | +->| v2cMP * |<--->| | Model | | |
| | Message | | | +------------+ | | +-------------+ | |
| | Dispatcher | | | +------------+ | | +-------------+ | |
| | | | +->| v3MP * |<--->| | User-based | | |
| | | | +------------+ | | | Security | | |
| | | | +------------+ | | | Model | | |
| | | | +->| otherMP * |<--->| +-------------+ | |
| | | | +------------+ | | | |
| +------------------+ +---------------------+ +-----------------+ |
| ^ ^ |
| | | |
| v v |
| +---------------------------------------------------------------+|
| | Transport Mappings (e.g., RFC 3417) ||
| +---------------------------------------------------------------+|
| |
+-------------------------------------------------------------------+

2.1. Dispatcher

Dispatcher 负责:

  • 将 PDU 分派给应用. 为此, 它使用 Unique PDU Type, 并结合 contextEngineID 和 pduType, 选择适当的应用.

  • 发送和接收 SNMP 消息. 为此, 它必须确定每个收到的 SNMP 消息版本, 并将其传递给适当的 Message Processing Model 处理. 发送时, 它必须确定发送 SNMP 消息时使用的传输和地址.

  • SNMP 消息处理. Dispatcher 将此工作委派给 Message Processing Subsystem 中的 Message Processing Model.

  • 注册应用, 以处理收到的 SNMP PDU.

Dispatcher 提供服务接口, 用于向应用递送 PDU, 以及供应用发送 PDU.

2.2. Message Processing Subsystem

Message Processing Subsystem 负责:

  • 准备要发送的消息, 这涉及与 Security Model 协作以应用安全处理.

  • 从收到的消息中提取数据, 这涉及与 Security Model 协作以验证安全处理.

Message Processing Model 包含 Message Processing Subsystem 中的一种 Message Processing 模型. 可以存在多个 Message Processing Models, 每个模型处理不同版本的 SNMP 消息.

Message Processing Model 负责处理特定消息格式 (版本). 每个 Message Processing Model 可以规定它用于与 Security Subsystem 交换数据的格式. 至少, 它必须能够交换 SNMP 架构 [RFC3411] 中规定的抽象数据元素和服务原语.