SNMP输出或八位字节(网络流量)

时间:2015-10-09 12:02:21

标签: network-programming snmp

我正在用C#编写软件,通过SNMP编写或利用out或八位字节(字节)。我需要在1000秒内完成多少个字节传递?

根据我的研究,它的值有时会超时或重置,因为某些结果会产生负值。

对于 .139

中的输入流,

.1.3.6.1.2.1.2.2.1.10

在1024秒内,它会得到-2 MB的结果。

如何准确测量流量(进出)?

编辑:我用这个代码进行计算。它取每秒的价值并得到结果。

private void timer1_Tick(object sender, EventArgs e)
        {
            Cursor.Current = Cursors.WaitCursor;

            SnmpObject objSnmpObject, objSnmpIfSpeed;

            objSnmpObject = (SnmpObject)objSnmpManager.Get(".1.3.6.1.2.1.2.2.1.16.139");
            objSnmpIfSpeed = (SnmpObject)objSnmpManager.Get(".1.3.6.1.2.1.2.2.1.5.139");

            if (GetResult() == 0)
            {
                float value = Int64.Parse(objSnmpObject.Value);
                float ifSpeed = Int64.Parse(objSnmpIfSpeed.Value);

                float Bytes = (value * 8 * 100 / ifSpeed);
               // float megaBytes = Bytes / 1024;
                sum += Bytes;
                tb_calc.Text = (sum.ToString() + " Bytes");
            }
            _gv_timeSec++;
            lb_timer.Text = _gv_timeSec.ToString();

            Cursor.Current = Cursors.Default;

        }

2 个答案:

答案 0 :(得分:0)

1.3.6.1.2.1.2.2.1.10IF-MIB::ifInOctets的OID,MIB为described Counter32 ,其上限为2 ^ 32-1(小数为4294967295) )。

  

“接口上收到的八位字节总数,   包括框架字符。

     

此计数器的值不连续可能发生在   重新初始化管理系统,在其他时候   由ifCounterDiscontinuityTime的值表示。“

引用this SO answer

  

一个Counter32没有定义的初始值,所以单个读数   Counter32没有信息内容。这就是为什么你必须拿两个   (或更多)读数以理解它。这方面的一个例子是   以太网接口收到的报文数。如果你拿一个   阅读并获取400万个数据包,你还没有学到任何东西:   过去可能已将电线拉出接口   一年,或者它可能每秒传递数百万个数据包。你有   采取多个读数来了解任何事情。

答案 1 :(得分:0)

我建议tutorial .1.3.6.1.2.1.31.1.1.1.6ifHCInOctets .1.3.6.1.2.1.31.1.1.1.10这些是@ k1eran提到的64位OID版本

当处理更高的速度时,这些计数器不会旋转得那么快。