SNMP TRAP报文解析 您所在的位置:网站首页 snmp编码方式 SNMP TRAP报文解析

SNMP TRAP报文解析

2023-11-03 19:12| 来源: 网络整理| 查看: 265

转载地址: https://blog.csdn.net/eric_sunah/article/details/19557683

 

SNMP的报文格式

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

    在实际网络传输环境下,SNMP报文的长度取决于其所采用的编码方式。SNMP统一采用BER(Basic Encoding Rule)的编码规则,同时在正式SNMP规范中使用的是ASN.1语法,AbastractSyntax Notation v1,即抽象语法描述语言。这两个概念在后面实践环节再做进一步介绍,这里只要稍微了解一下即可,不妨碍我们对协议本身的分析。这里我们简单解释一下BER编码规则:

    BER作为ANS.1的基本编码规则,描述具体的ANS.1对象如何编码为比特流在网络上进行传输。BER编码规则由三部分组成:

    SNMP中定义了几种基本的数据类型,其中v1和v2版有些改动,具体参见相应的RFC文档。这里我们只介绍几种最常见的类型:

l  INTEGER:一个整数

l  OCTER STRING: 0或多个8bit字节,每个字节在0~255之间取值

l  DisplayString:0或多个8bit字节,每个字节必须是ASCII码。在MIB-II中,所有该类型变量不能超过255个字符(0个字符可以)

l  NULL:代表相关的变量没有值

l  IpAddress:4字节长的OCTER STRING,以网络字节序表示IP地址

l  PhyAddress:6字节长的OCTER STRING,代表物理地址

l  Counter:非负整数,可以从0递增到232-1()。达到最大值后归0

l  TimeTicks:时间计数器,以0.01秒为单位递增,不同的变量可以有不同的递增幅度。所以在定义这种类型的变量时需要制定递增幅度

l  SEQUENCE:与C语言中的结构体类似

l  SEQUENCE OF:一个向量,参见后面ANS.1语法详细介绍章节

SNMP报文在传输层是封装在UDP报文中的,而UDP又是基于IP网络的,因此,我们可以得到完整的报文描述结构,如下图所示:

    PDU类型其实包含两个字节,第一个字节表示真实的PDU的类型;第二个字节表示后面报文所占的字节总数。针对SNMPv1,这个字段取值如下:

表1 PDU类型

PDU类型

   名 称

0

get-request

1

get-next-request

2

get-response

3

set-request

4

trap

    也就是说,trap的类型是4。但是在数据报文中,该字段一般表示为ax,其中x取[0,4],即a0~a3表示相应的get、set等操作,a4表示trap报文。这里除了类型字段意外,其他字段均采用BER编码方式:



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有