SNMP request
SNMPv1的PDU有五種類(lèi)型,包括報(bào)文請(qǐng)求(Request)和響應(yīng)(Response):
GetRequest、GetNextRequest、SetRequest、GetResponse、Trap
SNMPv2又增加了兩種PDU:GetBulkRequest和InformRequest。
SNMP工具軟件
在很多snmp工具中都有很多功能,例如get subtree,walk,table view之類(lèi)的,可以肯定的是這些功能都是通過(guò)上面的標(biāo)準(zhǔn)request/response組合,通過(guò)工具軟件自己的邏輯+MIB庫(kù)實(shí)現(xiàn)的。
snmp工具最好load上對(duì)應(yīng)的MIB庫(kù),這樣可以對(duì)snmp mib有個(gè)更詳細(xì)的了解,例如每個(gè)OID代表的是什么含義,哪些Oid之間有關(guān)聯(lián)的,數(shù)據(jù)表中哪些是索引,哪些是數(shù)據(jù)等。
下面我們來(lái)搞清楚table view是如何做到的:

在通過(guò)snmp工具獲取這個(gè)table view時(shí),抓包:

首先,需要注意的是全部使用的是get-next-request
第二,由于snmp工具軟件load了對(duì)應(yīng)的mib庫(kù),通過(guò)mib中的描述,工具知道了,這個(gè)表里有5列,列的OID風(fēng)別為:
1.3.6.1.2.1.4.20.1.1
1.3.6.1.2.1.4.20.1.2
1.3.6.1.2.1.4.20.1.3
1.3.6.1.2.1.4.20.1.4
1.3.6.1.2.1.4.20.1.5
并且這個(gè)表的索引 index是1.3.6.1.2.1.4.20.1.1

了解到這些信息后,SNMP工具一次getnext這個(gè)5個(gè)OID

設(shè)備一次性返回了5對(duì)應(yīng)的5個(gè)response,實(shí)際上這正好是一行的數(shù)據(jù)
然后snmp 工具就繼續(xù)用已知oid get next,一直到SNMP工具發(fā)現(xiàn) 返回的OID 超出了表格定義的OID范圍

注意:
最后回應(yīng)的數(shù)據(jù)包中20.1.1的NEXT已經(jīng)是20.1.2的數(shù)據(jù)
20.1.5的NEXT已經(jīng)是21.1.1
由此SNMP工具判定這個(gè)table數(shù)據(jù)已經(jīng)獲取完畢了