SNMP4J編程最重要的三個類之PDU

PDU(協議數據單元),用來表示管理站跟代理站進行通信的數據。包括PDU的類型、傳輸的數據集合、錯誤說明等。

除SNMPv1 Trap外,其他操作類型的PDU大致相同。

SNMP4J針對SNMP的各個版本,開發了三個有關PDU的類。PDU(針對SNMPv2c)、PDUv1(針對SNMPv1)、ScopedPDU(針對SNMPv3),但三個類除各自特別的一些參數外,都基本相同。所以SNMP4J在設計的時候,將PDU設計成另外兩個的超類(Super Class,java中定義被繼承的類爲SuperClass,也可譯爲父類),使他們能夠共享大部分功能。

(1)PDU

1)pdu類型(SNMPv1 支持5種:get、set、getnext、trap、getresponse,SNMPv2c增加了getbulk、inform

int getType()

void setType(int type)

2)錯誤(主要有6種錯誤)

void setErrorStatus(int status)

int getErrorStatus()

String getErrorStatusText()

void setErrorIndex(int index)

int getErrorIndex()

3)變量

void add(VariableBinding vb) //對於除了get、getnext、getbulk外
void addAll(VariableBinding[] vbs) // 對於除get、getnext、getbulk外的
void addOID(VariableBinding vb) // 對於get、getnext、getbulk 
void addAllOID(VariableBinding[] vbs) // 對於get、getnext、getbulk 
VariableBinding get(int i)
VariableBinding[] toArray() 
Vector   getVariableBindings() 
void set(int i, VariableBinding vb)
void remove(int i)
void clear()
void size()

(2)PDUv1

PDUv1繼承了PDU,除SNMPv1 Trap操作外,其他都跟PDU相同。因爲PDUv1的Trap設計PDU不同於其他操作的PDU,它包括:對象標識符(OID)、代理IP地址(agent-addr)、時間戳(time-stamp)、通用代理類型(generic-trap)、特定代理類型(specific-trap)。所以相應的增加了對這些字段的get/set操作。

(3)ScopedPDU

SNMPv3採用了不同安全策略,它的PDU也增加了有關安全方面的幾個字段:上下文名稱(contextName)、上下文引擎ID(contextEngineID)等,其他PDU字段屬於USM來管理。

所以ScopedPDU在PDU的基礎上增加了相應的get/set操作。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章