基于.NET技術(shù)實(shí)現(xiàn)的SNMP通信
2 SNMP通信的關(guān)鍵
2.1 數(shù)據(jù)類型的規(guī)范定義
在基于SNMP通信的監(jiān)控系統(tǒng)中,每個(gè)被管理設(shè)備都維護(hù)一個(gè)包含統(tǒng)計(jì)信息及其他數(shù)據(jù)的數(shù)據(jù)庫(kù),被稱作管理信息庫(kù)(Management Infor-mation Base,MIB)。每個(gè)MIB的每項(xiàng)都包含一個(gè)信息:對(duì)象類型、語法、訪問及狀態(tài)等。MIB中的各項(xiàng)內(nèi)容由管理信息結(jié)構(gòu)(Structure of Management Information,SMI)來定義,SMI為MIB提供了一個(gè)通用框架,同時(shí)規(guī)定了在MIB中使用時(shí)的數(shù)據(jù)類型,即如何表示和命名MIB對(duì)象。一個(gè)對(duì)象類型的命名明確代表一個(gè)對(duì)象,成為對(duì)象標(biāo)識(shí)符。它是一個(gè)由圓點(diǎn)分隔的整數(shù)序列,這些對(duì)象標(biāo)識(shí)符按照類似DNS域名系統(tǒng)的樹狀結(jié)構(gòu)來排列的,一個(gè)對(duì)象標(biāo)識(shí)符(OID)唯一標(biāo)識(shí)一個(gè)MIB對(duì)象。另外,MIB還要嚴(yán)格遵守ASN.1(Abstract Syntax Notation One,抽象語法標(biāo)記)的語法格式,ASN.1提供了一套正規(guī)格式用來描述對(duì)象結(jié)構(gòu),而且不管對(duì)象數(shù)據(jù)的具體指代。
本文中最常用到的幾個(gè)數(shù)據(jù)的規(guī)范如表1所示。本文引用地址:http://butianyuan.cn/article/155318.htm
.NET使用以上幾個(gè)函數(shù)完成基本的SNMP通信,首先,用RequestAsync函數(shù)建立SNMP請(qǐng)求,然后用sendToBegin函數(shù)發(fā)送此SNMP請(qǐng)求,同時(shí)管理代理端有監(jiān)聽函數(shù),收到SNMP請(qǐng)求后會(huì)做出響應(yīng)并給管理站返回需要的信息,此時(shí),管理站用ReceiveBegin函數(shù)接受返回來的信息。在此通信過程中有可能發(fā)生數(shù)據(jù)丟失,RetryAsyncRequest和Request函數(shù)就是為此而設(shè)計(jì)的重傳請(qǐng)求函數(shù)和重傳協(xié)議函數(shù)。
3 .NET技術(shù)實(shí)現(xiàn)
把UDP的Socket通信封裝好之后,運(yùn)用.NET技術(shù)進(jìn)行具體的SNMP控制,下面以Get-Request操作和Set-Request操作為例子來演示.NET技術(shù)編程的快速、便捷。
評(píng)論