
本文档主要针对国民手艺MCU N32G45x系列产品在搭载FreeRTOS + LwIP的场景下的以太网实例:SNMP的应用
Get-response 操作:SNMP agent 返回一个或多个参数值,,,,,,,是 SNMP agent 对 SNMP 治理的操作下令的响应;;;;;
Trap 操作:SNMP agent 自动发出的报文,,,,,,,目的是通知 SNMP 治理装备自身所爆发的一些事务,,,,,,,执行该操作后,,,,,,,装备不会收到来自 SNMP 治理的回复报文;;;;;
Inform-request 操作:与 Tarp 操作类似,,,,,,,差别的是,,,,,,,SNMP agent 自动发出该报文后,,,,,,,若是毗连流通,,,,,,,将会收到来自 SNMP 治理的回复报文。。。
在 SNMP 三个版本中,,,,,,,v1 版本只包括 Get-request 操作、Get-nest-request 操作、Set-request 操作、Getresponse 操作和 Trap 操作。。。V2 和 v3 版本都包括以上所有操作,,,,,,,并且 v3 在 v2 的基础上增添了清静性方面的功效。。。
版本:体现 SNMP 的版本,,,,,,,版本字段的值是报文版本号减 1,,,,,,,若是是 SNMPv1 报文则对应字段值为 0。。。
整体名:用于在 agent 与 NMS 之间完成认证,,,,,,,字符串形式,,,,,,,常用的是 “public”和“private”。。。整体名包括“可读”和“可写”两种,,,,,,,执行 Get、Get-next 操作时,,,,,,,接纳“可读整体名”举行认证;;;;;执行 Set 操作时,,,,,,,则接纳“可写整体名”认证。。。
SNMPv1 PDU:包括 PDU 类型、请求标识符、变量绑定列表等信息。。。
其中,,,,,,,PDU 的名堂如下:
PDU Type:协议数据单位的类型。。。支持 Get-request PDU、Get-next-request PDU、Set-request PDU、response PDU 或 Trap PDU 五种类型。。。
Request ID:请求标示字段,,,,,,,唯一的标示一个请求报文。。。
Error Status:过失状态标示字段。。。SNMPv1 中过失码包括:1、noSuchName:指定了一个署理不知道的工具;;;;;2、tooBig:署理不可一次把请求的效果放入到一个 PDU 中;;;;;3、badValue:举行 set 操作时间把变量修改为一个无效的值;;;;;4、genErr:除以上过失外的其他过失。。。
Error Index:过失索引字段。。。
Variable Bindings:变量绑定字段。。。
版本:体现 SNMP 的版本,,,,,,,版本字段的值是报文版本号减 1,,,,,,,若是是 SNMPv2 报文则对应字段值为 1。。。
整体名:用于在 agent 与 NMS 之间完成认证,,,,,,,字符串形式,,,,,,,常用的是 “public”和“private”。。。整体名包括“可读”和“可写”两种,,,,,,,执行 Get、Get-next 操作时,,,,,,,接纳“可读整体名”举行认证;;;;;执行 Set 操作时,,,,,,,则接纳“可写整体名”认证。。。
SNMPv2c PDU:包括 PDU 类型、请求标识符、变量绑定列表等信息。。。
其中,,,,,,,PDU 名堂如下:
PDU Type:协议数据单位的类型。。。支持 Get-request PDU、Get-next-request PDU、Set-request PDU、
response PDU、Trap PDU、Get-bulk PDU 或 Inform PDU 七种类型。。。
Request ID:请求标示字段,,,,,,,唯一的标示一个请求报文。。。
Error Status:过失状态标示字段。。。SNMPv2c 中过失码包括:1、wrongValue:举行 set 操作时间把变量修改为一个无效的值;;;;;2、wrongEncoding:举行编码字段的值,,,,,,,与其他的字段纷歧致;;;;;3、wrongType:举行 set操作时间把变量修改为一个无效的类型;;;;;4、wrongLength:举行 set 操作时间把一个变量值设置成与它长度纷歧致的值;;;;;5、inconsistentValue:把一个变量设置为其他的情形下有用的值,,,,,,,目今情形下无效;;;;;6、noAccess:试图设置一个不可会见的值;;;;;7、notWritable:试图修改一个保存,,,,,,,但不可修改的值;;;;;8、noCreation:试图修改一个保存,,,,,,,但不可建设的值;;;;;9、inconsistentName:试图设置一个目今不保存且目今不可建设的变量;;;;;10、resourceUnavailable:设置历程中申请某些资源失败;;;;;11、commitFailed:set 操作失败;;;;;12、undoFailed:举行set 操作失败,,,,,,,有些赋值无法回复;;;;;13、genErr:除以上过失外的其他过失。。。
Error Index:过失索引字段。。。
Variable Bindings:变量绑定字段。。。
1.3.3 SNMPv3报文名堂
SNMPv3 报文结构从功效上来说,,,,,,,与 SNMPv1、SNMPv2c 的区别主要增添了报头数据和清静参数,,,,,,,如下图:
版本:体现 SNMP 的版本,,,,,,,该字段为 3.
报头数据:主要包括新闻发送者所能支持的最大新闻尺寸、新闻是否举行加密/认证、接纳的清静模式等形貌内容。。。名堂如下:
Msg ID:可以使请求和应答相互关联,,,,,,,响应报文中的 Msg ID 和发送报文中的值相同。。。
Msg Max size:新闻发送者支持的最大的新闻尺寸。。。
Msg Sec Model:指明晰发送方接纳的清静模式。。。
Msg Flag:请求报文指定是否要求回应 report 新闻,,,,,,,新闻是否举行了加密和认证。。。
清静参数:包括用户名、密钥、加密参数等清静信息。。。名堂如下:
Auth Engin ID:唯一的标识一个认证。。。
Auth Engin Boots:从设置认证引擎到现在,,,,,,,认证引擎重新启动的次数。。。
Auth Engin Time:从设置认证引擎到现在的时间。。。
User Name:用户名。。。
Auth Para:认证参数值。。。
Priv Para:加密后的参数值。。。
SNMPv3 PDU:包括 PDU 类型、请求标识符、变量绑定列表等信息,,,,,,,包括 Get-request PDU、Get-nextrequest PDU、Set-request PDU、response PDU、Trap PDU、Get-bulk PDU 或 Inform PDU 七种类型。。。名堂如下:
Context Egine ID:SNMP 唯一标识符,,,,,,,和 PDU 类型一起决议应该发往谁人应用程序。。。
Context Name:指明上下文之间的关系,,,,,,,由应用程序决议。。。
Data:报文的数据内容。。。
关注微信号,,,,,,,惊喜等你来
x