999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

SNMP協議分析軟件設計

2017-04-13 01:34:40孟開元楊海超曹慶年
軟件導刊 2017年3期
關鍵詞:系統

孟開元,楊海超,曹慶年

(西安石油大學 計算機學院,陜西 西安 710065)

SNMP協議分析軟件設計

孟開元,楊海超,曹慶年

(西安石油大學 計算機學院,陜西 西安 710065)

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

SNMP;BER;協議分析

0 引言

簡單網絡管理協議是基于TCP/IP協議族的網絡管理標準,用來對通信線路進行管理,它由一組網絡管理的標準組成,包含一個應用層協議(application layer protocol)、數據庫模型(database schema)和一組資源對象[1],有3個版本,分別是SNMPv1、SNMPv2、SNMPv3。它的基本功能包括監視網絡性能、檢測分析網絡差錯和配置網絡設備等[2]。

SNMP協議主要包括3個部分:SNMP、SMI及MIB。SNMP系統采用客戶/服務器工作模式。圖1為SNMP系統基本結構。

圖1 SNMP系統基本結構

SNMP系統包括兩個組成部分:SNMP管理器與SNMP代理。其中,SNMP管理器(SNMP Manager)是運行在網管工作站中的管理進程,它是大多數SNMP請求(不包括告警)的發起者;SNMP代理(SNMP Agent)是運行在網絡設備中的管理進程,它是大多數SNMP請求(不包括告警)的響應者。每種SNMP請求對應一種具體的網絡操作,實際上是對網絡管理信息的讀或者寫操作,而管理信息都保存在代理的MIB中。

在網絡正常工作時,SNMP可實現統計、配置和測試等功能。當網絡出故障時,可實現各種差錯檢測和功能恢復。雖然SNMP是在TCP/IP基礎上的網絡管理協議,但也可應用于數字油田、電力系統等網絡環境下。利用SNMP協議,一個管理工作站可以遠程管理所有支持此協議的網絡設備,包括監視網絡狀態、修改網絡設備配置、接受網絡事件警告等;利用SNMP可以實時網絡監控,以便在不利條件下(如過載、故障)使網絡的性能仍能達到最佳。雖然SNMP最初是面向基于IP的網絡管理,但作為一個工業標準也被成功用于電話網絡管理和各種控制系統[3]。

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

1 系統總體設計

1.1 設計目標

本系統能對發往指定IP地址的SNMP消息進行捕獲、解析和顯示,主要完成3個功能,分別是:SNMP數據包的捕獲、SNMP數據包解析、對解析后的SNMP數據進行合理的顯示和配置測試環境并進行驗證。系統功能模塊圖如圖2所示。

1.2 系統開發與工作流程

按照各模塊實現的先后順序,本系統共劃分三大模塊:SNMP協議消息的捕獲和過濾、SNMP協議消息的解析、SNMP協議消息的顯示。開發流程如圖3所示。

圖2 SNMP協議分析軟件功能模塊

圖3 開發流程

2 SNMP數據包捕獲

目前,比較常見的捕獲數據包的方法有Winpcap和Socket技術[4],本系統采用Socket技術進行數據包捕獲。SNMP數據包在網絡層是以IP數據包的形式呈現的,IP數據包的格式如圖4所示。根據IP數據包的頭部信息定義一個用于存儲IP數據包的結構體,這樣可以方便獲取源IP地址、目的IP地址、上層所使用的協議等字段。

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

圖4 IP數據包格式

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

3 SNMP數據包解析模塊設計

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

圖5 SNMP請求與響應關系

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

圖6 SNMP消息的結構

SNMP消息使用ASN.1中的BER進行編碼后在網絡中傳輸,BER編碼采用tpye-length-value(TLV:類型-長度-值)結構的方法,類型表示消息類型,長度表示數值的長度,數值表示消息的具體值,其結構如圖7所示。每一個ASN.1值按TLV編碼組成一個字節流。發送方將類型和值編碼組成字節流,接收方將收到的字節流解析成相應的類型與值。

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

圖7 TLV結構

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

struct UDPPacketHead *pUDPHead;

HdrLen = pIpHeader→header_len&0xf;

HdrLen *= 4;

BYTE *bPData;

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

BYTE *bppDisplayData;//用于存儲數據地址

bppDisplayData = bPData

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

++bppDisplayData;

if((*bppDisplayData)>=128){

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

else { ++bppDisplayData;}

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

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

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

4 SNMP數據信息顯示

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

5 配置測試環境

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

從運行結果可以看出:SNMP的版本號是SNMPv1,團體名是public,PDU類型是GetnextRequest,請求標識符是17,錯誤狀態和錯誤索引都為0,變量綁定的類型為48。

圖8 解析數據包的界面

圖9 解析數據信息界面

6 結語

本文系統利用Socket技術完成了數據包的捕獲,對UDP數據包進行了過濾,實現了SNMP PDU字段類型的解析,以較為合理的方式對協議字段組織結構進行了顯示。經過測試,系統功能正確,運行良好,對SNMP協議的研究和學習具有借鑒意義。

[1] 彭一鳴. 基于SNMP的配置管理模塊的設計與實現[D]. 武漢:華中科技大學,2011.

[2] 余鑫. SNMP協議在AGENT軟件平臺中的研究與實現[D]. 成都:電子科技大學,2008.

[3] 張航. SNMP協議的分析與探究[J]. 網絡安全技術與應用, 2016(2):74-74.

[4] 郭凱. 基于WinPcap的數據包捕獲系統的設計與實現[D]. 西安:西安電子科技大學,2013.

[5] 李泰國, 王志龍, 李文新,等. 基于SNMP的嵌入式終端狀態管理系統的設計[J]. 計算機技術與發展, 2016, 26(8):19-24.

[6] 尚建貞, 逯暉. 簡單網絡管理協議SNMP淺析[J]. 計算機時代, 2011(7):1-3.

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

(責任編輯:陳福時)

陜西省教育廳科研計劃項目(15JK1580)

孟開元(1968-),男,江蘇南通人,西安石油大學計算機學院副教授,研究方向為計算機網絡與通信;楊海超(1990-),男,陜西漢中人,西安石油大學計算機學院碩士研究生,研究方向為計算機接口及控制技術;曹慶年(1963-),男,山東濟南人,西安石油大學計算機學院教授,研究方向為計算機網絡與通信。

10.11907/rjdk.162806

TP319

A

1672-7800(2017)003-0059-03

猜你喜歡
系統
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
基于PowerPC+FPGA顯示系統
基于UG的發射箱自動化虛擬裝配系統開發
半沸制皂系統(下)
FAO系統特有功能分析及互聯互通探討
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
一德系統 德行天下
PLC在多段調速系統中的應用
主站蜘蛛池模板: 国产精品毛片一区视频播| 国产精品成人不卡在线观看| 国产午夜无码片在线观看网站| 成人免费网站在线观看| 日本国产一区在线观看| 日韩无码视频播放| 亚洲精品中文字幕无乱码| 国产91熟女高潮一区二区| 女人18毛片水真多国产| 极品性荡少妇一区二区色欲| 精品视频一区二区观看| 国产簧片免费在线播放| 亚洲精品777| 欧美在线中文字幕| 免费国产不卡午夜福在线观看| AV无码无在线观看免费| 国产大片喷水在线在线视频| 欧美va亚洲va香蕉在线| 99视频在线精品免费观看6| 久久久久国产精品嫩草影院| 国产欧美精品专区一区二区| 亚洲av无码牛牛影视在线二区| 亚洲国产精品久久久久秋霞影院| 99热这里只有精品在线播放| 欧美精品1区| 波多野结衣亚洲一区| 国产精品成| 99re热精品视频中文字幕不卡| a天堂视频| 中国丰满人妻无码束缚啪啪| 青青青草国产| jizz在线免费播放| 一本二本三本不卡无码| 国产色网站| 日韩美一区二区| 国产丝袜无码精品| 欧美午夜网站| 亚洲天堂首页| 国产亚洲美日韩AV中文字幕无码成人| 67194在线午夜亚洲| 国产情精品嫩草影院88av| 午夜久久影院| 91精品久久久久久无码人妻| 国产亚洲精品在天天在线麻豆 | 免费毛片全部不收费的| 97视频在线精品国自产拍| 日本道中文字幕久久一区| 最新日本中文字幕| 人妻精品久久久无码区色视| 国产成本人片免费a∨短片| 日韩精品无码一级毛片免费| 欧美一级黄色影院| 国产成人高清在线精品| 好久久免费视频高清| 直接黄91麻豆网站| 国产菊爆视频在线观看| 丰满人妻久久中文字幕| 欧美日韩亚洲国产| 午夜视频免费试看| 看你懂的巨臀中文字幕一区二区| 中文字幕首页系列人妻| 欧美午夜小视频| 亚洲精品久综合蜜| 热re99久久精品国99热| 欧美成人午夜在线全部免费| 成人毛片免费观看| 日韩视频免费| 国产精品一老牛影视频| 九九九精品成人免费视频7| 97se亚洲综合在线韩国专区福利| 99久久精品久久久久久婷婷| 亚洲国产精品无码久久一线| 日韩久久精品无码aV| 午夜毛片福利| 亚洲色图综合在线| 久久久久夜色精品波多野结衣| 久久亚洲美女精品国产精品| 国产免费好大好硬视频| 国产一区二区三区在线观看免费| 毛片网站在线看| 国产午夜不卡| 91丨九色丨首页在线播放|