亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        SNMP協(xié)議分析軟件設(shè)計(jì)

        2017-04-13 01:34:40孟開元楊海超曹慶年
        軟件導(dǎo)刊 2017年3期
        關(guān)鍵詞:網(wǎng)絡(luò)管理字段數(shù)據(jù)包

        孟開元,楊海超,曹慶年

        (西安石油大學(xué) 計(jì)算機(jī)學(xué)院,陜西 西安 710065)

        SNMP協(xié)議分析軟件設(shè)計(jì)

        孟開元,楊海超,曹慶年

        (西安石油大學(xué) 計(jì)算機(jī)學(xué)院,陜西 西安 710065)

        在探討SNMP協(xié)議的體系結(jié)構(gòu)、協(xié)議規(guī)范、協(xié)議ASN.1描述和BER編碼的基礎(chǔ)上,基于VC++平臺設(shè)計(jì)并開發(fā)了SNMP協(xié)議分析軟件。軟件劃分為3個(gè)功能模塊:數(shù)據(jù)包捕獲與過濾模塊、SNMP數(shù)據(jù)包解析模塊、SNMP PDU結(jié)構(gòu)分解與顯示模塊。首先論述了利用Socket技術(shù)捕獲數(shù)據(jù)包的方法,給出了數(shù)據(jù)包捕獲與UDP數(shù)據(jù)包過濾的實(shí)現(xiàn);然后在分析SNMP協(xié)議ASN.1描述和BER編碼的基礎(chǔ)上,實(shí)現(xiàn)了SNMP PDU字段類型的解析;最后,以合理的方式對協(xié)議字段組織結(jié)構(gòu)進(jìn)行了顯示。經(jīng)過測試,系統(tǒng)功能正確,運(yùn)行良好。

        SNMP;BER;協(xié)議分析

        0 引言

        簡單網(wǎng)絡(luò)管理協(xié)議是基于TCP/IP協(xié)議族的網(wǎng)絡(luò)管理標(biāo)準(zhǔn),用來對通信線路進(jìn)行管理,它由一組網(wǎng)絡(luò)管理的標(biāo)準(zhǔn)組成,包含一個(gè)應(yīng)用層協(xié)議(application layer protocol)、數(shù)據(jù)庫模型(database schema)和一組資源對象[1],有3個(gè)版本,分別是SNMPv1、SNMPv2、SNMPv3。它的基本功能包括監(jiān)視網(wǎng)絡(luò)性能、檢測分析網(wǎng)絡(luò)差錯和配置網(wǎng)絡(luò)設(shè)備等[2]。

        SNMP協(xié)議主要包括3個(gè)部分:SNMP、SMI及MIB。SNMP系統(tǒng)采用客戶/服務(wù)器工作模式。圖1為SNMP系統(tǒng)基本結(jié)構(gòu)。

        圖1 SNMP系統(tǒng)基本結(jié)構(gòu)

        SNMP系統(tǒng)包括兩個(gè)組成部分:SNMP管理器與SNMP代理。其中,SNMP管理器(SNMP Manager)是運(yùn)行在網(wǎng)管工作站中的管理進(jìn)程,它是大多數(shù)SNMP請求(不包括告警)的發(fā)起者;SNMP代理(SNMP Agent)是運(yùn)行在網(wǎng)絡(luò)設(shè)備中的管理進(jìn)程,它是大多數(shù)SNMP請求(不包括告警)的響應(yīng)者。每種SNMP請求對應(yīng)一種具體的網(wǎng)絡(luò)操作,實(shí)際上是對網(wǎng)絡(luò)管理信息的讀或者寫操作,而管理信息都保存在代理的MIB中。

        在網(wǎng)絡(luò)正常工作時(shí),SNMP可實(shí)現(xiàn)統(tǒng)計(jì)、配置和測試等功能。當(dāng)網(wǎng)絡(luò)出故障時(shí),可實(shí)現(xiàn)各種差錯檢測和功能恢復(fù)。雖然SNMP是在TCP/IP基礎(chǔ)上的網(wǎng)絡(luò)管理協(xié)議,但也可應(yīng)用于數(shù)字油田、電力系統(tǒng)等網(wǎng)絡(luò)環(huán)境下。利用SNMP協(xié)議,一個(gè)管理工作站可以遠(yuǎn)程管理所有支持此協(xié)議的網(wǎng)絡(luò)設(shè)備,包括監(jiān)視網(wǎng)絡(luò)狀態(tài)、修改網(wǎng)絡(luò)設(shè)備配置、接受網(wǎng)絡(luò)事件警告等;利用SNMP可以實(shí)時(shí)網(wǎng)絡(luò)監(jiān)控,以便在不利條件下(如過載、故障)使網(wǎng)絡(luò)的性能仍能達(dá)到最佳。雖然SNMP最初是面向基于IP的網(wǎng)絡(luò)管理,但作為一個(gè)工業(yè)標(biāo)準(zhǔn)也被成功用于電話網(wǎng)絡(luò)管理和各種控制系統(tǒng)[3]。

        目前,大部分協(xié)議分析軟件只對IP數(shù)據(jù)包和UDP數(shù)據(jù)的頭部進(jìn)行分析和解析,很少有軟件能對SNMP的整個(gè)數(shù)據(jù)包分析和解析,這就使得大多數(shù)人對該協(xié)議的工作機(jī)制、協(xié)議數(shù)據(jù)單元的字段結(jié)構(gòu)與組成并不是很了解。本文為學(xué)習(xí)SNMP PDU格式提供一種直觀便利的方法,而且提供了解析SNMP協(xié)議的內(nèi)容、編碼格式以及消息的類型方法。

        1 系統(tǒng)總體設(shè)計(jì)

        1.1 設(shè)計(jì)目標(biāo)

        本系統(tǒng)能對發(fā)往指定IP地址的SNMP消息進(jìn)行捕獲、解析和顯示,主要完成3個(gè)功能,分別是:SNMP數(shù)據(jù)包的捕獲、SNMP數(shù)據(jù)包解析、對解析后的SNMP數(shù)據(jù)進(jìn)行合理的顯示和配置測試環(huán)境并進(jìn)行驗(yàn)證。系統(tǒng)功能模塊圖如圖2所示。

        1.2 系統(tǒng)開發(fā)與工作流程

        按照各模塊實(shí)現(xiàn)的先后順序,本系統(tǒng)共劃分三大模塊:SNMP協(xié)議消息的捕獲和過濾、SNMP協(xié)議消息的解析、SNMP協(xié)議消息的顯示。開發(fā)流程如圖3所示。

        圖2 SNMP協(xié)議分析軟件功能模塊

        圖3 開發(fā)流程

        2 SNMP數(shù)據(jù)包捕獲

        目前,比較常見的捕獲數(shù)據(jù)包的方法有Winpcap和Socket技術(shù)[4],本系統(tǒng)采用Socket技術(shù)進(jìn)行數(shù)據(jù)包捕獲。SNMP數(shù)據(jù)包在網(wǎng)絡(luò)層是以IP數(shù)據(jù)包的形式呈現(xiàn)的,IP數(shù)據(jù)包的格式如圖4所示。根據(jù)IP數(shù)據(jù)包的頭部信息定義一個(gè)用于存儲IP數(shù)據(jù)包的結(jié)構(gòu)體,這樣可以方便獲取源IP地址、目的IP地址、上層所使用的協(xié)議等字段。

        Socket捕獲數(shù)據(jù)包的使用流程為:①利用WSAStartup函數(shù)啟動WSA(Windows Sockets Asynchronous,Windows異步套接字);②用socket函數(shù)創(chuàng)建一個(gè)套接字;③用bind()函數(shù)將IP地址與套接字綁定;④send()/recv()函數(shù),用于發(fā)送和接收數(shù)據(jù)。

        圖4 IP數(shù)據(jù)包格式

        由于SNMP數(shù)據(jù)包是UDP數(shù)據(jù)包,因此需要對捕獲到的數(shù)據(jù)包進(jìn)行過濾,通過判斷UDP數(shù)據(jù)包報(bào)頭的目的端口和源端口是否是161或162可以得到SNMP數(shù)據(jù)包。如果目的端口和源端口是161或162,則說明是SNMP消息,然后交給下面兩個(gè)模塊進(jìn)行解析和顯示,如果不是則丟掉。為了實(shí)現(xiàn)這個(gè)功能,只需寫一個(gè)判斷函數(shù)即可,其實(shí)現(xiàn)方法為:if(destport==161 || destport ==162 || sourport ==161 || sourport ==162)。

        3 SNMP數(shù)據(jù)包解析模塊設(shè)計(jì)

        SNMP管理消息可分為兩種:SNMP請求與SNMP響應(yīng)[5]。其中,SNMP請求是SNMP管理器向代理發(fā)送的操作請求;SNMP響應(yīng)是SNMP代理根據(jù)具體操作情況向SNMP管理器返回的消息。圖5給出了SNMP請求與響應(yīng)的關(guān)系。

        圖5 SNMP請求與響應(yīng)關(guān)系

        SNMPv消息可以分為兩個(gè)部分:SNMP頭部與SNMP PDU[6]。圖6給出了SNMPv1消息的基本結(jié)構(gòu)。對于普通SNMP消息與Trap消息,它們的SNMP頭部相同,但是SNMP PDU的結(jié)構(gòu)不同。SNMP頭部包括3個(gè)字段:版本號、團(tuán)體名和PDU類型。其中,版本(Version)表示SNMP消息使用的版本協(xié)議,SNMPv1、SNMPv2和SNMPv3對應(yīng)的值分別為0、1和2;團(tuán)體名(Community)用于設(shè)置對代理的訪問權(quán)限,同一團(tuán)體名的管理進(jìn)程可以訪問代理,它是一個(gè)用明文傳輸?shù)淖址?public)。PDU類型表示具體的SNMP操作類型。

        圖6 SNMP消息的結(jié)構(gòu)

        SNMP消息使用ASN.1中的BER進(jìn)行編碼后在網(wǎng)絡(luò)中傳輸,BER編碼采用tpye-length-value(TLV:類型-長度-值)結(jié)構(gòu)的方法,類型表示消息類型,長度表示數(shù)值的長度,數(shù)值表示消息的具體值,其結(jié)構(gòu)如圖7所示。每一個(gè)ASN.1值按TLV編碼組成一個(gè)字節(jié)流。發(fā)送方將類型和值編碼組成字節(jié)流,接收方將收到的字節(jié)流解析成相應(yīng)的類型與值。

        對SNMP消息(即UDP的數(shù)據(jù)部分)進(jìn)行解析的具體步驟如下:

        圖7 TLV結(jié)構(gòu)

        (1)定義一個(gè)指針bppDisplayData使其指向SNMP消息的首地址:

        struct UDPPacketHead *pUDPHead;

        HdrLen = pIpHeader→header_len&0xf;

        HdrLen *= 4;

        BYTE *bPData;

        bPData=((BYTE*)pUDPHead)+8;

        BYTE *bppDisplayData;//用于存儲數(shù)據(jù)地址

        bppDisplayData = bPData

        (2)跳過該消息的標(biāo)簽字段和長度字段

        ++bppDisplayData;

        if((*bppDisplayData)>=128){

        bppDisplayData+=((*bppDisplayData)&0x7f)+1;}

        else { ++bppDisplayData;}

        (3)跳過版本號的標(biāo)簽字段和長度字段,即 bppDisplayData+=2,根據(jù)版本號的內(nèi)容域判斷SNMP的版本。如果*bppDisplayData =0,則表示是SNMPv1,如果* bppDisplayData=1,則表示是SNMPv2,否則為SNMPv3。

        (4)根據(jù)共同體名的長度字段解析共同體名。

        (5)判斷PDU類型和內(nèi)容。

        4 SNMP數(shù)據(jù)信息顯示

        本系統(tǒng)共使用了MFC中的3類控件:按鈕(Button),編輯框(Edit Box)和列表控制(List Control)。開啟了一個(gè)消息捕獲線程,當(dāng)點(diǎn)擊開始捕獲按鈕,該系統(tǒng)開始捕獲SNMP數(shù)據(jù)包;點(diǎn)擊停止捕獲按鈕,該系統(tǒng)關(guān)閉消息捕獲線程,停止捕獲SNMP數(shù)據(jù)包,在列表控制(List Control)中單擊一行數(shù)據(jù)可以在右邊的編輯框(Edit Box)中顯示SNMP消息的版本號、團(tuán)體名、PDU類型、請求標(biāo)示符、錯誤狀態(tài)、錯誤索引等信息。

        5 配置測試環(huán)境

        為了捕獲SNMP消息,必須開啟兩臺主機(jī)的SNMP服務(wù),在其中一臺主機(jī)上安裝SNMPB瀏覽器發(fā)送SNMP消息。SNMP數(shù)據(jù)包的捕獲、解析和顯示的效果如圖8、圖9所示。

        從運(yùn)行結(jié)果可以看出:SNMP的版本號是SNMPv1,團(tuán)體名是public,PDU類型是GetnextRequest,請求標(biāo)識符是17,錯誤狀態(tài)和錯誤索引都為0,變量綁定的類型為48。

        圖8 解析數(shù)據(jù)包的界面

        圖9 解析數(shù)據(jù)信息界面

        6 結(jié)語

        本文系統(tǒng)利用Socket技術(shù)完成了數(shù)據(jù)包的捕獲,對UDP數(shù)據(jù)包進(jìn)行了過濾,實(shí)現(xiàn)了SNMP PDU字段類型的解析,以較為合理的方式對協(xié)議字段組織結(jié)構(gòu)進(jìn)行了顯示。經(jīng)過測試,系統(tǒng)功能正確,運(yùn)行良好,對SNMP協(xié)議的研究和學(xué)習(xí)具有借鑒意義。

        [1] 彭一鳴. 基于SNMP的配置管理模塊的設(shè)計(jì)與實(shí)現(xiàn)[D]. 武漢:華中科技大學(xué),2011.

        [2] 余鑫. SNMP協(xié)議在AGENT軟件平臺中的研究與實(shí)現(xiàn)[D]. 成都:電子科技大學(xué),2008.

        [3] 張航. SNMP協(xié)議的分析與探究[J]. 網(wǎng)絡(luò)安全技術(shù)與應(yīng)用, 2016(2):74-74.

        [4] 郭凱. 基于WinPcap的數(shù)據(jù)包捕獲系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D]. 西安:西安電子科技大學(xué),2013.

        [5] 李泰國, 王志龍, 李文新,等. 基于SNMP的嵌入式終端狀態(tài)管理系統(tǒng)的設(shè)計(jì)[J]. 計(jì)算機(jī)技術(shù)與發(fā)展, 2016, 26(8):19-24.

        [6] 尚建貞, 逯暉. 簡單網(wǎng)絡(luò)管理協(xié)議SNMP淺析[J]. 計(jì)算機(jī)時(shí)代, 2011(7):1-3.

        [7] 侯煜, 孫梯全, 施琴,等. 基于ASN.1的MAP碼流的BER編解碼的設(shè)計(jì)與實(shí)現(xiàn)[J]. 微計(jì)算機(jī)信息,2010,26(18):183-184.

        (責(zé)任編輯:陳福時(shí))

        陜西省教育廳科研計(jì)劃項(xiàng)目(15JK1580)

        孟開元(1968-),男,江蘇南通人,西安石油大學(xué)計(jì)算機(jī)學(xué)院副教授,研究方向?yàn)橛?jì)算機(jī)網(wǎng)絡(luò)與通信;楊海超(1990-),男,陜西漢中人,西安石油大學(xué)計(jì)算機(jī)學(xué)院碩士研究生,研究方向?yàn)橛?jì)算機(jī)接口及控制技術(shù);曹慶年(1963-),男,山東濟(jì)南人,西安石油大學(xué)計(jì)算機(jī)學(xué)院教授,研究方向?yàn)橛?jì)算機(jī)網(wǎng)絡(luò)與通信。

        10.11907/rjdk.162806

        TP319

        A

        1672-7800(2017)003-0059-03

        猜你喜歡
        網(wǎng)絡(luò)管理字段數(shù)據(jù)包
        圖書館中文圖書編目外包數(shù)據(jù)質(zhì)量控制分析
        SmartSniff
        電動汽車充電服務(wù)網(wǎng)絡(luò)管理初探
        基于EOC通道的SHDSL網(wǎng)絡(luò)管理技術(shù)
        CNMARC304字段和314字段責(zé)任附注方式解析
        無正題名文獻(xiàn)著錄方法評述
        基于Libpcap的網(wǎng)絡(luò)數(shù)據(jù)包捕獲器的設(shè)計(jì)與實(shí)現(xiàn)
        校園網(wǎng)絡(luò)管理及安全防護(hù)
        河南科技(2014年11期)2014-02-27 14:16:52
        衛(wèi)星導(dǎo)航網(wǎng)絡(luò)管理設(shè)計(jì)
        關(guān)于CNMARC的3--字段改革的必要性與可行性研究
        国产精品后入内射日本在线观看| 真实夫妻露脸爱视频九色网| 免费国产黄网站在线观看视频| 日韩人妻无码免费视频一区二区三区| 中文毛片无遮挡高潮| 九九日本黄色精品视频| 日本a爱视频二区三区| 亚洲精品无码av人在线观看| 97久久精品人人做人人爽| 国产成人亚洲欧美三区综合| 久久av一区二区三区黑人| 欧美老妇交乱视频在线观看| 免费xxx在线观看| 亚洲中文字幕av天堂| 亚洲桃色蜜桃av影院| 久久人妻少妇嫩草av| 伊人蕉久中文字幕无码专区| 国产成人精品日本亚洲直播| 蜜臀av一区二区三区| 粗大的内捧猛烈进出小视频| 精品无码中文字幕在线| 亚洲亚洲网站三级片在线| 少妇久久高潮不断免费视频| 中文字幕人成人乱码亚洲av| 乌克兰少妇xxxx做受野外| 四虎精品国产一区二区三区| 五月综合丁香婷婷久久| 午夜不卡无码中文字幕影院| 国产女精品视频网站免费| 日韩女优中文字幕在线| 国产一区二区三区激情视频| 亚洲欧美一区二区三区在线| 国产亚洲女在线线精品| 精品国产av一区二区三区| 国内少妇毛片视频| 国产欧美日韩视频一区二区三区 | 日本久久精品在线播放| 国内自拍愉拍免费观看| 少妇性l交大片| 韩国主播av福利一区二区| 久亚洲精品不子伦一区|