SMI in SNMP
SNMP中,數據類型并不多。這里我們就討論這些數據類型,而不關心這些數據類型在實際中是如何編碼的。
?INTEGER
一個變量雖然定義為整型,但也有多種形式。有些整型變量沒有范圍限制,有些整型變量定義為特定的數值(例如,IP的轉發標志就只有允許轉發時的或者不允許轉發時的這兩種),有些整型變量定義一個特定的范圍(例如,UDP和TCP的端口號就從0到65535)。
?OCTERSTRING
0或多個8bit字節,每個字節值在0~255之間。對于這種數據類型和下一種數據類型的BER編碼,字符串的字節個數要超過字符串本身的長度。這些字符串不是以NULL結尾的字符串。
?DisplayString
0或多個8bit字節,但是每個字節必須是ASCII碼。在MIB-II中,所有該類型的變量不能超過255個字符(0個字符是可以的)。
?OBJECTIDENTIFIER
?NULL
代表相關的變量沒有值。例如,在get或get-next操作中,變量的值就是NULL,因為這些值還有待到代理進程處去取。
?IpAddress
4字節長度的OCTERSTRING,以網絡序表示的IP地址。每個字節代表IP地址的一個字段。
?PhysAddress
OCTERSTRING類型,代表物理地址(例如以太網物理地址為6個字節長度)。
?Counter
非負的整數,可從0遞增到232—1(4294976295)。達到最大值后歸0。
?Gauge
非負的整數,取值范圍為從0到4294976295(或增或減)。達到最大值后鎖定直到復位。例如,MIB中的tcpCurrEstab就是這種類型的變量的一個例子,它代表目前在ESTABLISHED或CLOSE_WAIT狀態的TCP連接數。
?TimeTicks
時間計數器,以0.01秒為單位遞增,但是不同的變量可以有不同的遞增幅度。所以在定義這種類型的變量的時候,必須指定遞增幅度。例如,MIB中的sysUpTime變量就是這種類型的變量,代表代理進程從啟動開始的時間長度,以多少個百分之一秒的數目來表示。
?SEQUENCE
這一數據類型與C程序設計語言中的“structure”類似。一個SEQUENCE包括0個或多個元素,每一個元素又是另一個ASN.1數據類型。例如,MIB中的UdpEntry就是這種類型的變量。它代表在代理進程側目前“激活”的UDP數量(“激活”表示目前被應用程序所用)。在這個變量中包含兩個元素:
?IpAddress類型中的udpLocalAddress,表示IP地址。
?INTEGER類型中的udpLocalPort,從0到65535,表示端口號。
?SEQUENDEOF
這是一個向量的定義,其所有元素具有相同的類型。如果每一個元素都具有簡單的數據類型,例如是整數類型,那么我們就得到一個簡單的向量(一個一維向量)。但是我們將看到,SNMP在使用這個數據類型時,其向量中的每一個元素是一個SEQUENCE(結構)。因而可以將它看成為一個二維數組或表。
總結
以上是生活随笔為你收集整理的SMI in SNMP的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MIB in SNMP
- 下一篇: WCDMA系统中的扰码规划