《電子技術(shù)應用》
您所在的位置:首頁 > 通信與網(wǎng)絡(luò) > 設(shè)計應用 > 簡單網(wǎng)絡(luò)管理協(xié)議的研究與應用
簡單網(wǎng)絡(luò)管理協(xié)議的研究與應用
國外電子元器件
龔尚福,,朱莉,,李娜
西安科技大學
摘要: 簡單網(wǎng)絡(luò)管理協(xié)議SNMP(Simple Network Management Protocol)是由Internet工程任務組織IETF (Internet Engineer-ing Task Force)研究小組為解決Intemet上的路由器管理問題而提出的。SNMP是一系列協(xié)議組和規(guī)范,,可提供一種從網(wǎng)絡(luò)設(shè)備中收集網(wǎng)絡(luò)管理信息的方法。 SNMP也為設(shè)備向網(wǎng)絡(luò)管理工作站報告問題和錯誤提供方法,。
Abstract:
Key words :

1 引言

簡單網(wǎng)絡(luò)" title="簡單網(wǎng)絡(luò)">簡單網(wǎng)絡(luò)管理協(xié)議SNMP" title="SNMP">SNMP(Simple Network Management Protocol)是由Internet" title="Internet">Internet工程任務組織IETF (Internet Engineer-ing Task Force)研究小組為解決Intemet上的路由器管理問題而提出的,。SNMP是一系列協(xié)議組和規(guī)范,可提供一種從網(wǎng)絡(luò)設(shè)備中收集網(wǎng)絡(luò)管理信息的方法,。 SNMP也為設(shè)備向網(wǎng)絡(luò)管理工作站報告問題和錯誤提供方法,。

2 SNMP體系結(jié)構(gòu)簡介

圖1為SNMP體系結(jié)構(gòu)與協(xié)議棧。
 


2.1 SNMP消息類型

SNMP消息類型提供請求與響應的交互形式,,其中:(1)Get Request:管理站用來檢索代理管理信息庫中的標量對象值,;(2)GetNext Request:管理站用來檢索代理管理信息庫中的當前標量對象的下一個對象值;(3)Set Request:管理站用來設(shè)置代理管理信息庫中的標量對象值,;(4)Response:代理用于發(fā)送管理站對代理的請求,;(5)Tmp:代理用于向管理站報告管理對象的狀態(tài)變化。圖2為SNMP消息類型,。
 


2.2 SNMP PDU協(xié)議數(shù)據(jù)單元結(jié)構(gòu)

圖3為SNMP報文格式,。SNMP PDU協(xié)議數(shù)據(jù)單元結(jié)構(gòu)描述如下:
 


2.3 ANS.1和BER

抽象語法表示(ANS.1)是一種形式語言,可提供統(tǒng)一的網(wǎng)絡(luò)數(shù)據(jù)表示,用于定義應用數(shù)據(jù)的抽象語法和應用層協(xié)議數(shù)據(jù)單元結(jié)構(gòu),。在OSI和SNMP的管理信息庫都是用其定義的,。基本編碼規(guī)則(BER)用ANS.1定義的應用數(shù)據(jù)在傳輸過程中要按照一定的規(guī)則轉(zhuǎn)換成比特串,。圖4給出了SNMP消息的BER編碼實例(對代理202.117-49.61的Get請求),。

   對SNMP消息的BER編碼描述:

  2.4 RFC1213管理信息庫MIB

  RFC1213定義MIB-2管理對象的核心集合,這些對象在任何SNMP系統(tǒng)必須實現(xiàn),。管理信息結(jié)構(gòu)說明了定義和構(gòu)造MIB的總體框架,,以及數(shù)據(jù)類型的表示和命名方法。SMI只允許存儲標量對象和矢量對象(表對象),,不支持復雜的數(shù)據(jù)結(jié)構(gòu),。其提供標準化技術(shù)表示管理信息如下:(1)SNMP所有的管理對象組織成分層結(jié)構(gòu);(2)提供結(jié)構(gòu)化的信息組織技術(shù),;(3)提供命名機制,。樹中的葉子結(jié)點都有一個分層的編號。葉子結(jié)點代表實際的管理對象,,從樹根到樹葉的編號串聯(lián)起來,,用圓點隔開,形成管理對象標識符,。

  2.5 UDP協(xié)議

  用戶數(shù)據(jù)報協(xié)議UDP(User Data Protocol)是一個面向無連接的協(xié)議,,其傳輸效率較高。協(xié)議格式如表1所示,。在SNMP代理中,,常用161作為SNMP消息接收;162為AgentSNMP消息響應,。

   3 SNMP編程與測試環(huán)境

  SNMP要求的編程環(huán)境有:Java,;C/C++;Borland C++Builder6,。該程序選用Borland C++ Builder6編程環(huán)境,。而SNMP的測試環(huán)境要求:(1)Windows SNMP服務:Windows NT/Win-dows 2000/Windows XP的網(wǎng)絡(luò)監(jiān)視服務提供SNMP代理,端口:161,;(2)AdventNet SNMP服務:AdventNet公司的SNMP代理,。端口可自己設(shè)定;(3)AdventNet SNMP MIB Browse:AdventNet公司的SNMP動作測試工具,;(4)Sniff軟件是一個很好的網(wǎng)上抓包程序,,用來分析發(fā)送和接收的SNMP消息。

  4 SNMP編程實現(xiàn)

  4.1 SNMP消息分析

  通過對SNMP協(xié)議的理解在C++Builder中將其定義為以下結(jié)構(gòu)體類型,;分別完成對消息的構(gòu)造和解析,。

  (1)消息結(jié)構(gòu)的結(jié)構(gòu)體

  4.2 SNMP消息構(gòu)造

  根據(jù)用戶設(shè)置的Agent的IP,、端口號、執(zhí)行的請求和對象的OID,;按BER編碼來構(gòu)造消息,,設(shè)置SNMPMessage消息并存入Result[]數(shù)組中,以備發(fā)送,。SNMP消息構(gòu)造程序代碼如下:

  4.3 SNMP消息發(fā)送與接收

  使用C++Builder提供的TNMUDP控件完成對SNMP消息的發(fā)送和接收,,并存入Data1[]數(shù)組中,以備解析,。以下為部分程序代碼:

  4.4 SNMP消息解析

  將UDP接收到的消息存入data1[]數(shù)組中,,與消息的解析相反;將其每一部分添人所定義的SNMPMessage結(jié)構(gòu)中,,以備解析顯示調(diào)用,。以下為部分程序代碼:

  5 結(jié)束語

  SNMP協(xié)議已廣泛應用于各種路由器和高端交換機,同時在各種網(wǎng)絡(luò)操作系統(tǒng)的遠程管理中也廣泛應用,。利用該協(xié)議可監(jiān)控網(wǎng)絡(luò)核心設(shè)備的運行情況(流量、吞吐率,、狀態(tài)等),,還可認證上網(wǎng)用戶,完成計費功能,。

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載。