
在SNMP处理过程中,SNMP的编码和解码非常关键,以解码为例来说明,解码出SNMP报文使用SNMP的版本号,报文所使用的共同体号,版本号,表明了报文使用SNMP的版本,如果管理器与代理器使用协议的版本不同,将不能正常通信,共同体相当于密钥,只有有了密钥的管理器才能够访问代理器,否则,代理器不予响应,PDU解码出管器所要访问的对象,SNMP解码的流程图见图5。

流程图中的snmpDec()函数解码SNMP函数报文,将有用的信息提取出来,MibRequest()函数的作用是将驻留在嵌入式SNMP代理器中的MIB中查找解码出来的OID(对象标识符),查找到OID后,同时获得了这个对象的信息,编码同时开始进行,MibCmpObjId()函数的作用是采用比较的方式查找表项。SnmpEnc()函数将得到的响应报文按SNMP的编码规则编码成SNMP报文。make_udp()函数将SNMP报文封装在UDP报文中。再经过IP协议封装,以太网协议封装后,就可以通过以太网传输。
4 结束语
我们将该系统用于光无线通信的网络管理与监控系统。经过使用后发现:该系统能够实时监控光无线通信系统的运行,由于采用Internet传送数据,所以传输距离不受限制,SNMP是应用最广泛的网络管理协议及实现嵌入式SNMP代理器,可以使光无线通信系统的管理很方便地加入到现有的网络管理系统,由于采用廉价的单片机来实现嵌入式SNMP代理器,主要的协议处理由软件实现,成本很低。