有关snmp的一个很菜,但是困扰了小弟我很久的有关问题,有关工作原理的,望大家赐教

有关snmp的一个很菜,但是困扰了我很久的问题,有关工作原理的,望大家赐教
我想实现一个基于snmp的网络管理软件,刚接触,对于一些基本原理方面有点模糊。

我要实现的工作是这样的,代理是运行在linux上的,管理软件运行在windows上,对linux系统设备做监控。

我的问题是,我看了很多资料,知道了管理软件都是通过snmp协议与代理交互,提取被管理设备的mib库的数据并返回到管理软件(不知道这么理解正确否)。问题是:那么mib库的信息,比如,像网络流量,这种具体的参数值到底是怎么获取的?我知道要访问mib库啊,mib库的某个结点存储了这个具体值。但是mib库里相对应于网络流量这一具体值的数据,又是从什么地方,怎么得到并更新的?我想应该要和linux内核交互的吧?那这种交互工作是谁来完成的?linux内核本身,还是网管开发者?

望高手赐教啊!谢谢

------解决方案--------------------
google netsnmp

即是一个snmp library,也是一个SNMP agent

大多数linux发布都带netsnmp,视不同的OS,netsnmp已实现了与内核的交互
------解决方案--------------------
MIB是自己定义的. SNMP只是规定了MIB的格式以及如何存取和传输MIB中的信息.
再上面的MIB和具体的硬件的交互是要自己编写的,属于应用层.