SNMP PDU报文格式解析

原创 2011年01月14日 10:31:00

 

SNMP五种协议数据单元

SNMP规定了5种协议数据单元PDU(也就是SNMP报文),用来在管理进程和代理之间的交换。

Ø       get-request操作:从代理进程处提取一个或多个参数值(网管系统发送)

Ø       get-next-request操作:从代理进程处提取紧跟当前参数值的下一个参数值(网管系统发送)

Ø       set-request操作:设置代理进程的一个或多个参数值(网管系统发送)

Ø       get-response操作:返回的一个或多个参数值。这个操作是由代理进程发出的,它是前面三种操作的响应操作(代理发送)

Ø       trap操作:代理进程主动发出的报文,通知管理进程有某些事情发生(代理发送)

前面的3种操作是由管理进程向代理进程发出的,后面的2个操作是代理进程发给管理进程的,为了简化起见,前面3个操作叫做getget-nextset操作。下图描述了SNMP的这5种报文操作。请注意,在代理进程端是用熟知端口161俩接收getset报文,而在管理进程端是用熟知端口162来接收trap报文。

SNMP协议数据单元格式解析

一个SNMP报文共有三个部分组成,即公共SNMP首部、get/set首部或trap首部、变量绑定。下图是封装成UDP数据报文的5种操作的SNMP报文格式。

公共SNMP首部

版本

写入版本字段的是版本号减1,对于SNMP(即SNMPV1)则应写入0

公共体

共同体就是一个字符串,作为管理进程和代理进程之间的明文口令,常用的是6个字符“public”。

PDU类型

根据PDU的类型,填入04中的一个数字,其对应关系下表所示意图。

 

PDU类型

PDU类型

名称

0

get-request

1

get-next-request

2

get-response

3

set-request

4

trap

get/set首部

请求标识符(request ID)

这是由管理进程设置的一个整数值。代理进程在发送get-response报文时也要返回此请求标识符。管理进程可同时向许多代理发出get报文,这些报文都使用UDP传送,先发送的有可能后到达。设置了请求标识符可使管理进程能够识别返回的响应报文对于哪一个请求报文。

差错状态(error status)

由代理进程回答时填入05中的一个数字,见下表的描述。

 

差错状态描述

差错状态

名字

说明

0

noError

一切正常

1

tooBig

代理无法将回答装入到一个SNMP报文之中

2

noSuchName

操作指明了一个不存在的变量

3

badValue

一个set操作指明了一个无效值或无效语法

4

readOnly

管理进程试图修改一个只读变量

5

genErr

某些其他的差错

差错索引(error index)

当出现noSuchNamebadValuereadOnly的差错时,由代理进程在回答时设置的一个整数,它指明有差错的变量在变量列表中的偏移。

trap首部

企业(enterprise)

填入trap报文的网络设备的对象标识符。此对象标识符肯定是在图3的对象命名树上的enterprise结点{1.3.6.1.4.1}下面的一棵子树上。

trap类型

此字段正式的名称是generic-trap,共分为表4中的7种。

 

trap类型描述

trap类型

名字

说明

0

coldStart

代理进行了初始化

1

warmStart

代理进行了重新初始化

2

linkDown

一个接口从工作状态变为故障状态

3

linkUp

一个接口从故障状态变为工作状态

4

authenticationFailure

SNMP管理进程接收到具有一个无效共同体的报文

5

egpNeighborLoss

一个EGP相邻路由器变为故障状态

6

enterpriseSpecific

代理自定义的事件,需要用后面的“特定代码”来指明

当使用上述类型235时,在报文后面变量部分的第一个变量应标识响应的接口。

特定代码(specific-code)

指明代理自定义的时间(若trap类型为6),否则为0

时间戳(timestamp)

指明自代理进程初始化到trap报告的事件发生所经历的时间,单位为10ms。例如时间戳为1908表明在代理初始化后1908ms发生了该时间。

变量绑定(variable-bindings)

指明一个或多个变量的名和对应的值。在getget-next报文中,变量的值应忽略。

 

文档下载地址:http://d.download.csdn.net/down/2982397/ddxkjddx

 

SNMP PDU报文格式解析

  • 2011年01月14日 10:26
  • 92KB
  • 下载

SNMP PDU报文格式分析

SNMP PDU报文格式分析 SNMP报文格式分析 简单网络管理协议(SNMP)是目前在计算机网络中用得最广泛的网络管理协议,它使用ASN.1(Abstract Syntax No...

SNMP协议 PDU报文格式分析(BER编码)

简单网络管理协议(SNMP)是目前在计算机网络中用得最广泛的网络管理协议,它使用ASN.1(Abstract Syntax Notation One)来定义SNMP报文格式和MIB(Managem...

SNMP PDU报文格式分析

SNMP报文格式分析 简单网络管理协议(SNMP)是目前在计算机网络中用得最广泛的网络管理协议,它使用ASN.1(Abstract Syntax Notation One)来定义...

SNMP的报文格式以及解析

SNMP的报文格式 SNMP代理和管理站通过SNMP协议中的标准消息进行通信,每个消息都是一个单独的数据报。SNMP使用UDP(用户数据报协议)作为第四层协议(传输协议),进行无连接操作。SNMP消...

SNMP报文格式分析及实现

  • 2011年08月28日 16:34
  • 163KB
  • 下载

浅谈SNMP简单网络管理协议报文格式详解--理论篇

随着网络技术的飞速发展,网络的数量也越来越多。而网络中的设备来自各个不同的厂家,如何管理这些设备就显得十分的重要,snmp就是为了有效的管理这些设备而诞生的协议。...

SNMP 报文格式

SNMP采用的是UDP协议,也是采用C/S模型,不过在SNMP会话中,通常不称为客户端,服务器,而是叫管理进程,代理进程,可以认为管理进程是客户端,代理进程是服务器。    SNMP 规定了 5 种协...

c#实现 CAT021报文格式解析

  • 2016年09月01日 16:37
  • 39KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:SNMP PDU报文格式解析
举报原因:
原因补充:

(最多只允许输入30个字)