![]() |
上海壹僑國(guó)際貿(mào)易有限公司
主營(yíng)產(chǎn)品: FILA,DEBOLD,ESTA,baumer,bernstein,bucher,PILZ,camozzi,schmalz |
會(huì)員.png)
聯(lián)系電話
![]() |
上海壹僑國(guó)際貿(mào)易有限公司
主營(yíng)產(chǎn)品: FILA,DEBOLD,ESTA,baumer,bernstein,bucher,PILZ,camozzi,schmalz |
聯(lián)系電話
參考價(jià) | 面議 |
更新時(shí)間:2025-03-24 09:21:26瀏覽次數(shù):254
聯(lián)系我們時(shí)請(qǐng)說明是化工儀器網(wǎng)上看到的信息,謝謝!
產(chǎn)地類別 | 進(jìn)口 | 應(yīng)用領(lǐng)域 | 生物產(chǎn)業(yè) |
---|
時(shí)間繼電器系列:
FSM10
3TP
P6SB
P6SE
P6SR
PDA20
PDI20
PDM10
PDM11
PDM20
PDS20
SRE2
SRW2
D6DA
D6DE
D6DI
D6DQ
D6DR
ODM1
ODQ1
OM1
OZM1
ODI3
ODM3
ODS3
OM3
TSC98
TSC44
TSC28
TSC18
控制繼電器系列:
TDT4X
TIF30
TIH4X
TIW4X
TLC4X
TLH4X
TPF
CIH10AAC3X
OIH3
OLH3
ONF3
OPH3
OPL3
D12DT10
D12ST20
D24SC
BU
BW
IH
STEP-18
HAR-1
OSK1
OK3
KM2X
RT
RM
RP
RA
RT
RK
EK
ZK
電源系列:
SRNG
DRNG
RNG
常用型號(hào):
A2X20
G2ASMA20
G4PM500VSYL20
G4PM690VSYL20
G2PM400VSY20
G2PM230VSY20
G2PM115VSY20
G2PM230VSY10
G2PM115VSY10
G2PM400VSY10
G2PW400V10
G2PF400VS02
G2PF230VS02
G2PF115VS02
G2YM400VL20
G2UM300VL20
G2UM300VL20
G2UM300VL10
G2UW300V10
G2UU300V10
G2IM10AL20
G2IM5AL20
G2IM10AL20
G2IM5AL20
G2IM10AL10
G2IM5AL10
G2JM5AL20
G2IW10A10
G2IW5A10
G2IO10A10
G2IO5A10
G2IU10A10
G2IU5A10
G2TFKN02
G2TF02
G2TF01
G2LM20
G2TMPT100L20
E1YU400V01
E1PF400VSY01
E1YF400V01 0,85
E1YF400VT01 0,85
TPW115VSN4X
TPW230VSN4X
TPW400VSN4X
TPW115VN4X
TPW230VN4X
TPW400VN4X
TPF115VS4X
TPF230VS4X
TPF400VS4X
TUW4X
TUH4X
TIW4X
TIH4X
TIF30-300mAAC4X
TDT4X
TT2X 24VAC
TT2X 110VAC
TT2X 230VAC
TLH4X 24VAC
TLH4X 230VAC
TLC4X 24VAC
TLC4X 110VAC
TLC4X 230VAC
OPL3 (0,7xUN)
OPL3 (0,85xUN)
OPLT3
OPLE3
OPLR3
OPH3W
OPH3
OPF3
OUH3W
OUH3W
OUH3W
OUH1
OIH3W
OIH3W
OIH3W
OIH3
OT3
OT3 110VAC
OT3 230VAC
ONF3 230VAC
OLH3 110VAC
OLH3 230VAC
G2BM400V12AL10
G2BM400V12AFL10
G2BU400V12AL10
G2CM400V10AL20
G2CM400V2AL20
G2CU400V10AL10
D24SC 24VAC
D24SC 110VAC
D24SC 230VAC
D24SCT 24VAC
D24SCT 110VAC
D24SCT 230VAC
BW400VDA5X
BW500VDA5X
BW400V5X
BUT400VA5X
BUT500VA5X
BU400V5X
G2ZMF11
G2ZM20
G2ZIF20
G2ZI20
G2ZS20
E1ZM10
E1ZMQ10
E1Z1E10
E3ZM20
E1ZI10
E3ZI20
E3ZS20
E1ZTPNC
E1ZTP
D6M
D6DM
D6SM-IT
D6DS
D6DI
D6DQ
D6SQ-IT
D6DE
D6DET 4MIN
D6DET 40MIN
D6DR
D6DA 3MIN
D6DA 10MIN
D6DI
D6DS
D12DA
P6SB 10SEC
P6SE 1SEC
P6SE 10SEC
P6SE 10SEC
P6SE 10SEC
P6SE 1MIN
P6SE 10MIN
P6SE 10MIN
P6SE 30MIN
P6SE 60MIN
P6SET 50MS
P6SET 50MS
P6SR 1MIN
P6SR 10MIN
P6SR 30MIN
P6SR 60MIN
P6SR 60MIN
P6SW 10SEC
PM20
PM20P
PDM20
PDM20F
PDM11
PDM10
PDA20
PDI20
PDI20F
PDS20
OM3
OM1
OZM1
ODM3
ODM1
ODQ3
ODQ1
ODI3
ODS3
CDN3X20
FSM10
3TP
SRE2-PNP 1SEC
SRE2-PNP 3SEC
SRE2-PNP 10SEC
SRE2-PNP 1MIN
SRE2-PNP 10MIN
SRE2-PNP 60MIN
SRW2-PNP 1SEC
SRW2-PNP 10SEC
SRW2-PNP 1MIN
SRW2-PNP 10MIN
SRW2-PNP 60MIN
ECO-8II
ECO-8IIT
STEP-T8 110VAC
STEP-T8 230VAC
HAR-1
OVP1
OVL1
OCP1
OCL1
OK3
OSK1
OSNT1
KM2X04P-M
KM2X04M-M
TD1
TD2
M1MTB1
M1MTN1
M1MPT100
繼電器:
RA012L
RA024L
RA524L
RA615L
RA730L
RM012L
RM012.02LD
RM024
RM024L
RM024LD
RM024.02LD
RM048L
RM048.02LD
RM060L
RT1.2.012L
RT1.2.024L
RT1.2.110L
RT1.2.230L
RT2.2.012L
RT2.2.024L
RT1.3.024L
RT1.3.048L
RT1.3.110L
RT1.3.230
RT1.3.230L
RT1.3.230.02L
RT2.3.012L
RT2.3.024
RT2.3.024L
RT2.3.024LD
RT2.3.024.02LD
RT2.3.048L
RT2.3.060L
RT2.3.110
RT2.3.230
RP012-2
RP024-2
RP024-hv
RP524-2
RP615-2
RP730-2
SKR024
SKR524
SKR730
ZK31X45
安全繼電器:
S2NT030
S2NGS021
S2NG021
S2NGR120
S2NT030
S2NGS021
S2NG021
S2NGR120
S2LST030
S2Z021
S2NT031
S2K043
S2LST030
S2Z021
S2NT031
S2K043
S2KR403 3S 24VDC
EUROSTART 1,5
EUROSTART 2,2
EUROSTART 3
EUROSTART 4
EUROSTART 5,5
EUROSTART 7,5
EUROSTART 11
EUROSTART 15
EUROSTART 18,5
EUROSTART 22
EUROSTART 30
EUROSTART 37
EUROSTART 45
EUROSTART 55
EUROSTART 75
TSG2,2 230VAC
TSG2,2 400VAC
MSG3-3s 400VAC
MSG3-30s 400VAC
MSG5,5 400VAC
MSG11 400VAC
ESG2,2-400
ESGI 2,2-400
ESG3-400
ESGI 3-400
ESG4-400
ESGI 4-400
ESG5,5-400
ESGI 5,5-400
ESG7,5-400
ESGI 7,5-400
ESG11-400
ESGI 11-400
ESG15-400
ESG-I 15-400
ESG18,5-400
ESG-I 18,5-400
ESG22-400
ESG-I 22-400
ESG30-400
ESG-I 30-400
ESG37-400
ESG-I 37-400
ESG45-400
ESG-I 45-400
ESG55-400
ESG-I 55-400
ESG75-400
ESG-I 75-400
ESG-I 90-400
ESG-I 110-400
ESG-I 140-400
ESG-I 160-400
ESG-I 200-400
ESG-I 250-400
ESG-I 315-400
ESG-I 355-400
ESG-I 400-400
ESG-I 560-400
MBG10 230VAC
MBG20 400V
MBG35 400V
BG20
BG35
BG60
BG100
BG150
BG220
BG300
BG400
BG500
BG750
BG1000
BG1500
BG2000
TST1
TST1 05
TST1-SP 05
TST1 15
TST1-SP 15
TST1 25
TST1-SP 25
TST1 35
TST1-SP 35
TST1 50
TST1-SP 50
TST3
TST3 05 3x400/230V
TST3 15 3x400/230V
TST3 25 3x400/230V
TST3 35 3x400/230V
TST3 50 3x400/230V
ESGT08
ESGT-SP 08
ESGT-SP-N 08
ESGT15
ESGT-SP 15
ESGT-SP-N 15
ESGT25
ESGT-SP 25
ESGT-SP-N 25
ESGT35
ESGT-SP 35
ESGT-SP-N 35
ESGT50
ESGT-SP 50
ESGT-SP-N 50
ESGT60
ESGT-SP 60
ESGT-SP-N 60
ESGT75
ESGT-SP 75
ESGT-SP-N 75
ESGT90
ESGT-SP 90
ESGT-SP-N 90
ESGT120
ESGT-SP 120
ESGT-SP-N 120
ESGT160
ESGT-SP 160
ESGT-SP-N 160
ESGT220
ESGT-SP 220
ESGT-SP-N 220
ESGT280
ESGT-SP 280
ESGT-SP-N 280
ESGT350
ESGT-SP 350
ESGT-SP-N 350
ESGT420
ESGT-SP 420
ESGT-SP-N 420
ESGT560
ESGT-SP 560
ESGT-SP-N 560
ESGT720
ESGT-SP 720
ESGT-SP-N 720
ESGT1000
ESGT-SP 1000
ESGT-SP-N 1000
ESGT-1PH 08
ESGT-1PH-SP 08
ESGT-1PH 15
ESGT-1PH-SP 15
ESGT-1PH 25
ESGT-1PH-SP 25
ESGT-1PH 35
ESGT-1PH-SP 35
ESGT-1PH 50
ESGT-1PH-SP 50
ESGT-1PH 60
ESGT-1PH-SP 60
ESGT-1PH 75
ESGT-1PH-SP 75
ESGT-1PH 90
ESGT-1PH-SP 90
ESGT-1PH 125
ESGT-1PH-SP 125
ESGT-1PH 220
ESGT-1PH-SP 220
ESGT-1PH 300
ESGT-1PH-SP 300
ESGT-1PH 350
ESGT-1PH-SP 350
WSW60 1A/5A 2,5VA
WSW60 2,5A/5A 2,5VA
WSW60 5A/5A 2,5VA
WSW60 10A/5A 2,5VA
WSW60 15A/5A 2,5VA
WSW60 20A/5A 2,5VA
WSW60 25A/5A 2,5VA
WSW60 30A/5A 2,5VA
WSW60 40A/5A 2,5VA
DSW60 50A/5A 1,25VA
DSW60 60A/5A 1,25VA
DSW60 75A/5A 2,5VA
DSW60 80A/5A 2,5VA
DSW60 100A/5A 2,5VA
DSW60 125A/5A 2,5VA
DSW60 150A/5A 3,75VA
DSW60 200A/5A 5VA
DSW60 250A/5A 5VA
DSW60 300A/5A 5VA
DSW80 400A/5A
DSW80 500A/5A
DSW80 600A/5A
DSW80 750A/5A
DSW80 800A/5A
DSW80 1000A/5A
DSW80 1250A/5A
電源:
DRNG240-400
RNG36/12-230
RNG36-230
RNG36-400
RNG72-230
RNG72-400
RNG120-230
RNG120-400
RNG240-230
RNG240-400
RNG-I 1210
RNG-I 1220
RNG-I 2405
RNG-I 2410
SRNG2512
SRNG2524
SRNG4012
SRNG4024
SRNG6012
SRNG6024
SRNG10012
SRNG10024
SRNG15012
SRNG15024
SRNG24012
SRNG24024
SRNG30012
SRNG30024
SRNG50012
SRNG50024
SRNG-I 1220
SRNG-I 1230
SRNG-I 2410
SRNG-I 2425
TSC98.20 230VAC
MAGNEMAG TK70-XTT/S
HYFRA PS3-XF5 HNB 21/26
MISUMI STWN21
BOURDON HAENNI MEX5-D31-E29 0-6MPa G1/2
VIDEOJET 4300 204667
NORD SK12-80 S/4 BRE10 2/9208372149 00
TURCK DO FLDP-0M8-0001
MAGNEMAG D243448(MD0519)
BEFELD Potentiometer unit 1K/R1=4K7/R3=6K2
TR CE65M 110-00636
WEISHAUPT 800mm21720411082
KOBOLD PSR-11083R08U1
B+K VIBRO VS-069
KUBLER 8.5878.5432.3113
IHSE DDXI/LC
SICK BEF-AH-DME5
BLOCK ST250/4/23
MTS GHM1080HD601VOA0
TLV COSR-16 DN50
NORELEM NLM03182-112
M+C ECM-2G
SCHUNK PGN+380 :370989
NOHKEN FR10-4P 5G047550001
BARKSDALE SW2000/400bar/1SP/4-20mA
FERRAZ SHAWMUT PC123UC20C500TF 2000VAC URC 500A 20URC123TTF 0500*220659
ROLLON CSW28-80-2Z-T
SCHNEIDER LC1 D09 C B7 24V
PREDICTECH TM0180-A05-B05-C03-D10
B+R X20TB12
DANAPAR HS35R0500D31H04
ELTRA EL40A500Z5/28P6S3PSA4.578
TUENKERS FOR V 63.1 T12
BARKSDALE UAS3V3
INTERNORMEN 01E.600.10VG.HR.E.P
MTS RHS0300MP201S1B1100 RHS0300MP201S1B1100
ROTRONIC HF332-DB3XX
EMHART M163 153
SCHIMPF TYP01-10/430
DR.BREIT 405040 011
OPTIBELT SPZ 2120
ILME 6() CCFA 1.5
HOPPECKE 12V POWER. SB 60 12V 60AH
HYDAC ENS3116-3-0520-000-K
GEBR.STEIMEL SF4/63 RD NR:073835
EMG LIH 2/40
BEFELD TVU2.0W;60mV/10mA
TURCK TS-400-LI2UPN8X-H1141
VSE VS4GP012V-32N11/6
LEITZ M00-694-064-005
REXROTH LFA-40-DBW2-70/315
SCHNEIDER C65 C65C65H 2P C6A
BURKERT 00136348
BERU ZE14-12-410 A1 8EA
MTS RH-M-0250M-R10-1-A01
GANTER GN300-45-M6-32-SW
基本設(shè)計(jì)思想
從本質(zhì)上講,網(wǎng)絡(luò)探測(cè)器是一個(gè)支持RMON規(guī)范的SNMP Agent,其主要任務(wù)包括:
(1)采集、分析和統(tǒng)計(jì)局域網(wǎng)的各種有用信息,按照RMON規(guī)范對(duì)這些信息進(jìn)行組織;
(2)實(shí)現(xiàn)SNMP Agent,提供標(biāo)準(zhǔn)的SNMP接口,供管理站從它獲得網(wǎng)絡(luò)管理信息。
網(wǎng)絡(luò)探測(cè)器底層的平臺(tái)是嵌入式Linux系統(tǒng),該系統(tǒng)具有網(wǎng)絡(luò)模塊,可以接入以太局域網(wǎng)。具體的平臺(tái)要求是:
硬件系統(tǒng)平臺(tái):性能較高,處理速度相對(duì)較快,內(nèi)存容量較大,帶有網(wǎng)絡(luò)模塊;
操作系統(tǒng)平臺(tái):支持網(wǎng)絡(luò)功能,能夠接入以太網(wǎng),提供C++編譯開發(fā)工具。
在本網(wǎng)絡(luò)探測(cè)器的實(shí)現(xiàn)時(shí),考慮到運(yùn)行效率、硬件成本、使用方便性等各方面的因素,做了以下限定:
(1)針對(duì)目前較常見的以太網(wǎng)環(huán)境;
(2)有一個(gè)接口使其僅能連接到一個(gè)子網(wǎng),這樣可使得系統(tǒng)簡(jiǎn)單有效、易于安裝配置;
(3)全部MIB對(duì)象存放在內(nèi)存中,提高運(yùn)行效率;
(4)有選擇地實(shí)現(xiàn)一些重要的MIB組;RMON是一個(gè)功能非常強(qiáng)大的MIB庫,能夠?yàn)楣芾碚咎峁┰敿?xì)的網(wǎng)絡(luò)管理信息,然而,在一般應(yīng)用中都不大可能對(duì)所有的SNMP MIB組加以實(shí)現(xiàn)。
3.2 系統(tǒng)基本體系結(jié)構(gòu)
圖2給出了本網(wǎng)絡(luò)探測(cè)器的基本體系結(jié)構(gòu)。網(wǎng)絡(luò)探測(cè)器包括以下一些基本組成模塊:網(wǎng)絡(luò)偵聽、數(shù)據(jù)包分析、分類統(tǒng)計(jì)計(jì)數(shù)、RMON MIB庫、SNMP處理以及Trap發(fā)送等。
探測(cè)器系統(tǒng)中,各個(gè)功能模塊的主要功能如下:
網(wǎng)絡(luò)偵聽模塊負(fù)責(zé)從網(wǎng)絡(luò)上截獲所有的數(shù)據(jù)包;網(wǎng)絡(luò)探測(cè)器連接在特定局域網(wǎng)上,它能夠?qū)υ摼钟蚓W(wǎng)上傳輸?shù)乃袛?shù)據(jù)包進(jìn)行截獲,然后提交給上層模塊進(jìn)行分析處理。
數(shù)據(jù)包分析模塊對(duì)截獲的數(shù)據(jù)包根據(jù)數(shù)據(jù)包的類型、源地址、目的地址、包大小等基本信息逐個(gè)進(jìn)行分析。
數(shù)據(jù)包分析模塊在對(duì)數(shù)據(jù)包進(jìn)行分析后,根據(jù)數(shù)據(jù)包的特性,調(diào)用特定的分類統(tǒng)計(jì)計(jì)數(shù)模塊對(duì)該包進(jìn)行統(tǒng)計(jì)計(jì)數(shù),分類統(tǒng)計(jì)計(jì)數(shù)模塊按照MIB庫的規(guī)范要求,將統(tǒng)計(jì)結(jié)果更新到有關(guān)的一些MIB對(duì)象中。
RMON MIB庫用來保存各種RMON MIB對(duì)象(實(shí)際上還包括MIB-II的System組和Interface組),這些對(duì)象按照RMON MIB規(guī)范進(jìn)行組織,這里的MIB庫是一個(gè)概念上的數(shù)據(jù)庫,實(shí)際上各種信息都組織在內(nèi)存中,以提高訪問效率。
SNMP處理模塊負(fù)責(zé)實(shí)現(xiàn)SNMP訪問接口,接收SNMP請(qǐng)求(包括Get、GetRequest、Set等操作),對(duì)它進(jìn)行分析處理,并按照要求訪問RMON MIB庫,從中取得需要的MIB對(duì)象值并返回給請(qǐng)求者(對(duì)Get、GetRequest而言),或者設(shè)置有關(guān)的MIB對(duì)象值(對(duì)Set操作而言)。
Trap發(fā)送模塊負(fù)責(zé)在發(fā)生特定事件時(shí),主動(dòng)發(fā)送Trap信息給預(yù)定的管理站;在分類統(tǒng)計(jì)計(jì)數(shù)模塊對(duì)MIB對(duì)象的值進(jìn)行計(jì)數(shù)時(shí),如果發(fā)現(xiàn)特定值超過了預(yù)定的范圍,則啟動(dòng)Trap發(fā)送模塊,按照預(yù)定策略發(fā)送Trap信息給管理站。
4.1 SNMP Agent的實(shí)現(xiàn)
目前,已經(jīng)有一些可用的SNMP Agent開發(fā)工具包,它們提供一些基本的框架平臺(tái),實(shí)現(xiàn)了Agent的通用功能,在其基礎(chǔ)上,開發(fā)者可以集中精力進(jìn)行具體邏輯功能的實(shí)現(xiàn),如MIB對(duì)象的數(shù)據(jù)采集等。這樣有利于簡(jiǎn)化開發(fā)工作,加快開發(fā)進(jìn)程。常見的SNMP Agent開發(fā)工具包有:Agent++、net-snmp、WinSnmp API(適用于Windows平臺(tái))等。
為了方便探測(cè)器Agent的實(shí)現(xiàn),我們選擇了Agent++平臺(tái),它是免費(fèi)的且源代碼公開。
Agent++是一套用于開發(fā)SNMP Agent的C++庫,它建立在SNMP++的基礎(chǔ)之上。Agent++提供了完整的協(xié)議處理框架,提供了標(biāo)量對(duì)象和表對(duì)象等MIB對(duì)象的基類,通過繼承用戶可以方便地定義MIB對(duì)象。Agent++具有以下一些特點(diǎn):
(1)功能強(qiáng)大,能夠?qū)崿F(xiàn)各種復(fù)雜的MIB對(duì)象;
(2)簡(jiǎn)單易用,開發(fā)人員無需深入了解底層的SNMP處理,僅使用一些簡(jiǎn)單的類和接口,即可快速實(shí)現(xiàn)帶有各種MIB對(duì)象的Agent;
(3)擴(kuò)展性強(qiáng),方便定義和實(shí)現(xiàn)新的功能;
(4)可移植性好,代碼可以方便地移植到Windows、UNIX、Linux等平臺(tái)上;
(5)支持SNMPv1和SNMPv2c;
(6)支持多線程處理,在線程中處理SNMP請(qǐng)求,可以進(jìn)行并發(fā)的處理;
(7)支持MIB對(duì)象的持久保存,可將MIB對(duì)象保存到硬盤上,并可以從硬盤裝載;
(8)具有詳細(xì)的日志功能。
4.2 網(wǎng)絡(luò)數(shù)據(jù)包偵聽的實(shí)現(xiàn)
網(wǎng)絡(luò)數(shù)據(jù)包的偵聽也可以使用一些現(xiàn)成的開發(fā)包來實(shí)現(xiàn),winpcap和libpcap是比較較有名的開發(fā)包,提供了較強(qiáng)的網(wǎng)絡(luò)數(shù)據(jù)包截獲功能,其中,winpcap運(yùn)行在Windows平臺(tái)上,libpcap運(yùn)行在UNIX和Linux平臺(tái)上。
本項(xiàng)目使用libpcap作為數(shù)據(jù)包偵聽部分的開發(fā)包。
libpcap(Packet Capture Library),即數(shù)據(jù)包捕獲函數(shù)庫。在網(wǎng)絡(luò)包抓取中l(wèi)ibpcap是非常常用的一個(gè)庫,較有名的tcpdump就是用它來實(shí)現(xiàn)的。libpcap是一個(gè)與實(shí)現(xiàn)無關(guān)的訪問操作系統(tǒng)所提供的分組捕獲函數(shù)庫,用于訪問數(shù)據(jù)鏈路層。這個(gè)庫為不同的平臺(tái)提供了*的C函數(shù)編程接口,在安裝了 libpcap 的平臺(tái)上,以 libpcap 為接口寫的程序、應(yīng)用,能夠自由地跨平臺(tái)使用。它支持多種操作系統(tǒng)。
libpcap 結(jié)構(gòu)簡(jiǎn)單,使用方便;它提供了20多個(gè)API封裝函數(shù),我們利用這些API函數(shù)即可完成本網(wǎng)絡(luò)探測(cè)器所需的網(wǎng)絡(luò)數(shù)據(jù)包監(jiān)聽功能。 基本設(shè)計(jì)思想
從本質(zhì)上講,網(wǎng)絡(luò)探測(cè)器是一個(gè)支持RMON規(guī)范的SNMP Agent,其主要任務(wù)包括:
(1)采集、分析和統(tǒng)計(jì)局域網(wǎng)的各種有用信息,按照RMON規(guī)范對(duì)這些信息進(jìn)行組織;
(2)實(shí)現(xiàn)SNMP Agent,提供標(biāo)準(zhǔn)的SNMP接口,供管理站從它獲得網(wǎng)絡(luò)管理信息。
網(wǎng)絡(luò)探測(cè)器底層的平臺(tái)是嵌入式Linux系統(tǒng),該系統(tǒng)具有網(wǎng)絡(luò)模塊,可以接入以太局域網(wǎng)。具體的平臺(tái)要求是:
硬件系統(tǒng)平臺(tái):性能較高,處理速度相對(duì)較快,內(nèi)存容量較大,帶有網(wǎng)絡(luò)模塊;
操作系統(tǒng)平臺(tái):支持網(wǎng)絡(luò)功能,能夠接入以太網(wǎng),提供C++編譯開發(fā)工具。
在本網(wǎng)絡(luò)探測(cè)器的實(shí)現(xiàn)時(shí),考慮到運(yùn)行效率、硬件成本、使用方便性等各方面的因素,做了以下限定:
(1)針對(duì)目前較常見的以太網(wǎng)環(huán)境;
(2)有一個(gè)接口使其僅能連接到一個(gè)子網(wǎng),這樣可使得系統(tǒng)簡(jiǎn)單有效、易于安裝配置;
(3)全部MIB對(duì)象存放在內(nèi)存中,提高運(yùn)行效率;
(4)有選擇地實(shí)現(xiàn)一些重要的MIB組;RMON是一個(gè)功能非常強(qiáng)大的MIB庫,能夠?yàn)楣芾碚咎峁┰敿?xì)的網(wǎng)絡(luò)管理信息,然而,在一般應(yīng)用中都不大可能對(duì)所有的SNMP MIB組加以實(shí)現(xiàn)。
3.2 系統(tǒng)基本體系結(jié)構(gòu)
圖2給出了本網(wǎng)絡(luò)探測(cè)器的基本體系結(jié)構(gòu)。網(wǎng)絡(luò)探測(cè)器包括以下一些基本組成模塊:網(wǎng)絡(luò)偵聽、數(shù)據(jù)包分析、分類統(tǒng)計(jì)計(jì)數(shù)、RMON MIB庫、SNMP處理以及Trap發(fā)送等。
探測(cè)器系統(tǒng)中,各個(gè)功能模塊的主要功能如下:
網(wǎng)絡(luò)偵聽模塊負(fù)責(zé)從網(wǎng)絡(luò)上截獲所有的數(shù)據(jù)包;網(wǎng)絡(luò)探測(cè)器連接在特定局域網(wǎng)上,它能夠?qū)υ摼钟蚓W(wǎng)上傳輸?shù)乃袛?shù)據(jù)包進(jìn)行截獲,然后提交給上層模塊進(jìn)行分析處理。
數(shù)據(jù)包分析模塊對(duì)截獲的數(shù)據(jù)包根據(jù)數(shù)據(jù)包的類型、源地址、目的地址、包大小等基本信息逐個(gè)進(jìn)行分析。
數(shù)據(jù)包分析模塊在對(duì)數(shù)據(jù)包進(jìn)行分析后,根據(jù)數(shù)據(jù)包的特性,調(diào)用特定的分類統(tǒng)計(jì)計(jì)數(shù)模塊對(duì)該包進(jìn)行統(tǒng)計(jì)計(jì)數(shù),分類統(tǒng)計(jì)計(jì)數(shù)模塊按照MIB庫的規(guī)范要求,將統(tǒng)計(jì)結(jié)果更新到有關(guān)的一些MIB對(duì)象中。
RMON MIB庫用來保存各種RMON MIB對(duì)象(實(shí)際上還包括MIB-II的System組和Interface組),這些對(duì)象按照RMON MIB規(guī)范進(jìn)行組織,這里的MIB庫是一個(gè)概念上的數(shù)據(jù)庫,實(shí)際上各種信息都組織在內(nèi)存中,以提高訪問效率。
SNMP處理模塊負(fù)責(zé)實(shí)現(xiàn)SNMP訪問接口,接收SNMP請(qǐng)求(包括Get、GetRequest、Set等操作),對(duì)它進(jìn)行分析處理,并按照要求訪問RMON MIB庫,從中取得需要的MIB對(duì)象值并返回給請(qǐng)求者(對(duì)Get、GetRequest而言),或者設(shè)置有關(guān)的MIB對(duì)象值(對(duì)Set操作而言)。
Trap發(fā)送模塊負(fù)責(zé)在發(fā)生特定事件時(shí),主動(dòng)發(fā)送Trap信息給預(yù)定的管理站;在分類統(tǒng)計(jì)計(jì)數(shù)模塊對(duì)MIB對(duì)象的值進(jìn)行計(jì)數(shù)時(shí),如果發(fā)現(xiàn)特定值超過了預(yù)定的范圍,則啟動(dòng)Trap發(fā)送模塊,按照預(yù)定策略發(fā)送Trap信息給管理站。
4.1 SNMP Agent的實(shí)現(xiàn)
目前,已經(jīng)有一些可用的SNMP Agent開發(fā)工具包,它們提供一些基本的框架平臺(tái),實(shí)現(xiàn)了Agent的通用功能,在其基礎(chǔ)上,開發(fā)者可以集中精力進(jìn)行具體邏輯功能的實(shí)現(xiàn),如MIB對(duì)象的數(shù)據(jù)采集等。這樣有利于簡(jiǎn)化開發(fā)工作,加快開發(fā)進(jìn)程。常見的SNMP Agent開發(fā)工具包有:Agent++、net-snmp、WinSnmp API(適用于Windows平臺(tái))等。
為了方便探測(cè)器Agent的實(shí)現(xiàn),我們選擇了Agent++平臺(tái),它是免費(fèi)的且源代碼公開。
Agent++是一套用于開發(fā)SNMP Agent的C++庫,它建立在SNMP++的基礎(chǔ)之上。Agent++提供了完整的協(xié)議處理框架,提供了標(biāo)量對(duì)象和表對(duì)象等MIB對(duì)象的基類,通過繼承用戶可以方便地定義MIB對(duì)象。Agent++具有以下一些特點(diǎn):
(1)功能強(qiáng)大,能夠?qū)崿F(xiàn)各種復(fù)雜的MIB對(duì)象;
(2)簡(jiǎn)單易用,開發(fā)人員無需深入了解底層的SNMP處理,僅使用一些簡(jiǎn)單的類和接口,即可快速實(shí)現(xiàn)帶有各種MIB對(duì)象的Agent;
(3)擴(kuò)展性強(qiáng),方便定義和實(shí)現(xiàn)新的功能;
(4)可移植性好,代碼可以方便地移植到Windows、UNIX、Linux等平臺(tái)上;
(5)支持SNMPv1和SNMPv2c;
(6)支持多線程處理,在線程中處理SNMP請(qǐng)求,可以進(jìn)行并發(fā)的處理;
(7)支持MIB對(duì)象的持久保存,可將MIB對(duì)象保存到硬盤上,并可以從硬盤裝載;
(8)具有詳細(xì)的日志功能。
4.2 網(wǎng)絡(luò)數(shù)據(jù)包偵聽的實(shí)現(xiàn)
網(wǎng)絡(luò)數(shù)據(jù)包的偵聽也可以使用一些現(xiàn)成的開發(fā)包來實(shí)現(xiàn),winpcap和libpcap是比較較有名的開發(fā)包,提供了較強(qiáng)的網(wǎng)絡(luò)數(shù)據(jù)包截獲功能,其中,winpcap運(yùn)行在Windows平臺(tái)上,libpcap運(yùn)行在UNIX和Linux平臺(tái)上。
本項(xiàng)目使用libpcap作為數(shù)據(jù)包偵聽部分的開發(fā)包。
libpcap(Packet Capture Library),即數(shù)據(jù)包捕獲函數(shù)庫。在網(wǎng)絡(luò)包抓取中l(wèi)ibpcap是非常常用的一個(gè)庫,較有名的tcpdump就是用它來實(shí)現(xiàn)的。libpcap是一個(gè)與實(shí)現(xiàn)無關(guān)的訪問操作系統(tǒng)所提供的分組捕獲函數(shù)庫,用于訪問數(shù)據(jù)鏈路層。這個(gè)庫為不同的平臺(tái)提供了*的C函數(shù)編程接口,在安裝了 libpcap 的平臺(tái)上,以 libpcap 為接口寫的程序、應(yīng)用,能夠自由地跨平臺(tái)使用。它支持多種操作系統(tǒng)。
libpcap 結(jié)構(gòu)簡(jiǎn)單,使用方便;它提供了20多個(gè)API封裝函數(shù),我們利用這些API函數(shù)即可完成本網(wǎng)絡(luò)探測(cè)器所需的網(wǎng)絡(luò)數(shù)據(jù)包監(jiān)聽功能。 基本設(shè)計(jì)思想
從本質(zhì)上講,網(wǎng)絡(luò)探測(cè)器是一個(gè)支持RMON規(guī)范的SNMP Agent,其主要任務(wù)包括:
(1)采集、分析和統(tǒng)計(jì)局域網(wǎng)的各種有用信息,按照RMON規(guī)范對(duì)這些信息進(jìn)行組織;
(2)實(shí)現(xiàn)SNMP Agent,提供標(biāo)準(zhǔn)的SNMP接口,供管理站從它獲得網(wǎng)絡(luò)管理信息。
網(wǎng)絡(luò)探測(cè)器底層的平臺(tái)是嵌入式Linux系統(tǒng),該系統(tǒng)具有網(wǎng)絡(luò)模塊,可以接入以太局域網(wǎng)。具體的平臺(tái)要求是:
硬件系統(tǒng)平臺(tái):性能較高,處理速度相對(duì)較快,內(nèi)存容量較大,帶有網(wǎng)絡(luò)模塊;
操作系統(tǒng)平臺(tái):支持網(wǎng)絡(luò)功能,能夠接入以太網(wǎng),提供C++編譯開發(fā)工具。
在本網(wǎng)絡(luò)探測(cè)器的實(shí)現(xiàn)時(shí),考慮到運(yùn)行效率、硬件成本、使用方便性等各方面的因素,做了以下限定:
(1)針對(duì)目前較常見的以太網(wǎng)環(huán)境;
(2)有一個(gè)接口使其僅能連接到一個(gè)子網(wǎng),這樣可使得系統(tǒng)簡(jiǎn)單有效、易于安裝配置;
(3)全部MIB對(duì)象存放在內(nèi)存中,提高運(yùn)行效率;
(4)有選擇地實(shí)現(xiàn)一些重要的MIB組;RMON是一個(gè)功能非常強(qiáng)大的MIB庫,能夠?yàn)楣芾碚咎峁┰敿?xì)的網(wǎng)絡(luò)管理信息,然而,在一般應(yīng)用中都不大可能對(duì)所有的SNMP MIB組加以實(shí)現(xiàn)。
3.2 系統(tǒng)基本體系結(jié)構(gòu)
圖2給出了本網(wǎng)絡(luò)探測(cè)器的基本體系結(jié)構(gòu)。網(wǎng)絡(luò)探測(cè)器包括以下一些基本組成模塊:網(wǎng)絡(luò)偵聽、數(shù)據(jù)包分析、分類統(tǒng)計(jì)計(jì)數(shù)、RMON MIB庫、SNMP處理以及Trap發(fā)送等。
探測(cè)器系統(tǒng)中,各個(gè)功能模塊的主要功能如下:
網(wǎng)絡(luò)偵聽模塊負(fù)責(zé)從網(wǎng)絡(luò)上截獲所有的數(shù)據(jù)包;網(wǎng)絡(luò)探測(cè)器連接在特定局域網(wǎng)上,它能夠?qū)υ摼钟蚓W(wǎng)上傳輸?shù)乃袛?shù)據(jù)包進(jìn)行截獲,然后提交給上層模塊進(jìn)行分析處理。
數(shù)據(jù)包分析模塊對(duì)截獲的數(shù)據(jù)包根據(jù)數(shù)據(jù)包的類型、源地址、目的地址、包大小等基本信息逐個(gè)進(jìn)行分析。
數(shù)據(jù)包分析模塊在對(duì)數(shù)據(jù)包進(jìn)行分析后,根據(jù)數(shù)據(jù)包的特性,調(diào)用特定的分類統(tǒng)計(jì)計(jì)數(shù)模塊對(duì)該包進(jìn)行統(tǒng)計(jì)計(jì)數(shù),分類統(tǒng)計(jì)計(jì)數(shù)模塊按照MIB庫的規(guī)范要求,將統(tǒng)計(jì)結(jié)果更新到有關(guān)的一些MIB對(duì)象中。
RMON MIB庫用來保存各種RMON MIB對(duì)象(實(shí)際上還包括MIB-II的System組和Interface組),這些對(duì)象按照RMON MIB規(guī)范進(jìn)行組織,這里的MIB庫是一個(gè)概念上的數(shù)據(jù)庫,實(shí)際上各種信息都組織在內(nèi)存中,以提高訪問效率。
SNMP處理模塊負(fù)責(zé)實(shí)現(xiàn)SNMP訪問接口,接收SNMP請(qǐng)求(包括Get、GetRequest、Set等操作),對(duì)它進(jìn)行分析處理,并按照要求訪問RMON MIB庫,從中取得需要的MIB對(duì)象值并返回給請(qǐng)求者(對(duì)Get、GetRequest而言),或者設(shè)置有關(guān)的MIB對(duì)象值(對(duì)Set操作而言)。
Trap發(fā)送模塊負(fù)責(zé)在發(fā)生特定事件時(shí),主動(dòng)發(fā)送Trap信息給預(yù)定的管理站;在分類統(tǒng)計(jì)計(jì)數(shù)模塊對(duì)MIB對(duì)象的值進(jìn)行計(jì)數(shù)時(shí),如果發(fā)現(xiàn)特定值超過了預(yù)定的范圍,則啟動(dòng)Trap發(fā)送模塊,按照預(yù)定策略發(fā)送Trap信息給管理站。
4.1 SNMP Agent的實(shí)現(xiàn)
目前,已經(jīng)有一些可用的SNMP Agent開發(fā)工具包,它們提供一些基本的框架平臺(tái),實(shí)現(xiàn)了Agent的通用功能,在其基礎(chǔ)上,開發(fā)者可以集中精力進(jìn)行具體邏輯功能的實(shí)現(xiàn),如MIB對(duì)象的數(shù)據(jù)采集等。這樣有利于簡(jiǎn)化開發(fā)工作,加快開發(fā)進(jìn)程。常見的SNMP Agent開發(fā)工具包有:Agent++、net-snmp、WinSnmp API(適用于Windows平臺(tái))等。
為了方便探測(cè)器Agent的實(shí)現(xiàn),我們選擇了Agent++平臺(tái),它是免費(fèi)的且源代碼公開。
Agent++是一套用于開發(fā)SNMP Agent的C++庫,它建立在SNMP++的基礎(chǔ)之上。Agent++提供了完整的協(xié)議處理框架,提供了標(biāo)量對(duì)象和表對(duì)象等MIB對(duì)象的基類,通過繼承用戶可以方便地定義MIB對(duì)象。Agent++具有以下一些特點(diǎn):
(1)功能強(qiáng)大,能夠?qū)崿F(xiàn)各種復(fù)雜的MIB對(duì)象;
(2)簡(jiǎn)單易用,開發(fā)人員無需深入了解底層的SNMP處理,僅使用一些簡(jiǎn)單的類和接口,即可快速實(shí)現(xiàn)帶有各種MIB對(duì)象的Agent;
(3)擴(kuò)展性強(qiáng),方便定義和實(shí)現(xiàn)新的功能;
(4)可移植性好,代碼可以方便地移植到Windows、UNIX、Linux等平臺(tái)上;
(5)支持SNMPv1和SNMPv2c;
(6)支持多線程處理,在線程中處理SNMP請(qǐng)求,可以進(jìn)行并發(fā)的處理;
(7)支持MIB對(duì)象的持久保存,可將MIB對(duì)象保存到硬盤上,并可以從硬盤裝載;
(8)具有詳細(xì)的日志功能。
4.2 網(wǎng)絡(luò)數(shù)據(jù)包偵聽的實(shí)現(xiàn)
網(wǎng)絡(luò)數(shù)據(jù)包的偵聽也可以使用一些現(xiàn)成的開發(fā)包來實(shí)現(xiàn),winpcap和libpcap是比較較有名的開發(fā)包,提供了較強(qiáng)的網(wǎng)絡(luò)數(shù)據(jù)包截獲功能,其中,winpcap運(yùn)行在Windows平臺(tái)上,libpcap運(yùn)行在UNIX和Linux平臺(tái)上。
本項(xiàng)目使用libpcap作為數(shù)據(jù)包偵聽部分的開發(fā)包。
libpcap(Packet Capture Library),即數(shù)據(jù)包捕獲函數(shù)庫。在網(wǎng)絡(luò)包抓取中l(wèi)ibpcap是非常常用的一個(gè)庫,較有名的tcpdump就是用它來實(shí)現(xiàn)的。libpcap是一個(gè)與實(shí)現(xiàn)無關(guān)的訪問操作系統(tǒng)所提供的分組捕獲函數(shù)庫,用于訪問數(shù)據(jù)鏈路層。這個(gè)庫為不同的平臺(tái)提供了*的C函數(shù)編程接口,在安裝了 libpcap 的平臺(tái)上,以 libpcap 為接口寫的程序、應(yīng)用,能夠自由地跨平臺(tái)使用。它支持多種操作系統(tǒng)。
libpcap 結(jié)構(gòu)簡(jiǎn)單,使用方便;它提供了20多個(gè)API封裝函數(shù),我們利用這些API函數(shù)即可完成本網(wǎng)絡(luò)探測(cè)器所需的網(wǎng)絡(luò)數(shù)據(jù)包監(jiān)聽功能。 基本設(shè)計(jì)思想
從本質(zhì)上講,網(wǎng)絡(luò)探測(cè)器是一個(gè)支持RMON規(guī)范的SNMP Agent,其主要任務(wù)包括:
(1)采集、分析和統(tǒng)計(jì)局域網(wǎng)的各種有用信息,按照RMON規(guī)范對(duì)這些信息進(jìn)行組織;
(2)實(shí)現(xiàn)SNMP Agent,提供標(biāo)準(zhǔn)的SNMP接口,供管理站從它獲得網(wǎng)絡(luò)管理信息。
網(wǎng)絡(luò)探測(cè)器底層的平臺(tái)是嵌入式Linux系統(tǒng),該系統(tǒng)具有網(wǎng)絡(luò)模塊,可以接入以太局域網(wǎng)。具體的平臺(tái)要求是:
硬件系統(tǒng)平臺(tái):性能較高,處理速度相對(duì)較快,內(nèi)存容量較大,帶有網(wǎng)絡(luò)模塊;
操作系統(tǒng)平臺(tái):支持網(wǎng)絡(luò)功能,能夠接入以太網(wǎng),提供C++編譯開發(fā)工具。
在本網(wǎng)絡(luò)探測(cè)器的實(shí)現(xiàn)時(shí),考慮到運(yùn)行效率、硬件成本、使用方便性等各方面的因素,做了以下限定:
(1)針對(duì)目前較常見的以太網(wǎng)環(huán)境;
(2)有一個(gè)接口使其僅能連接到一個(gè)子網(wǎng),這樣可使得系統(tǒng)簡(jiǎn)單有效、易于安裝配置;
(3)全部MIB對(duì)象存放在內(nèi)存中,提高運(yùn)行效率;
(4)有選擇地實(shí)現(xiàn)一些重要的MIB組;RMON是一個(gè)功能非常強(qiáng)大的MIB庫,能夠?yàn)楣芾碚咎峁┰敿?xì)的網(wǎng)絡(luò)管理信息,然而,在一般應(yīng)用中都不大可能對(duì)所有的SNMP MIB組加以實(shí)現(xiàn)。
3.2 系統(tǒng)基本體系結(jié)構(gòu)
圖2給出了本網(wǎng)絡(luò)探測(cè)器的基本體系結(jié)構(gòu)。網(wǎng)絡(luò)探測(cè)器包括以下一些基本組成模塊:網(wǎng)絡(luò)偵聽、數(shù)據(jù)包分析、分類統(tǒng)計(jì)計(jì)數(shù)、RMON MIB庫、SNMP處理以及Trap發(fā)送等。
探測(cè)器系統(tǒng)中,各個(gè)功能模塊的主要功能如下:
網(wǎng)絡(luò)偵聽模塊負(fù)責(zé)從網(wǎng)絡(luò)上截獲所有的數(shù)據(jù)包;網(wǎng)絡(luò)探測(cè)器連接在特定局域網(wǎng)上,它能夠?qū)υ摼钟蚓W(wǎng)上傳輸?shù)乃袛?shù)據(jù)包進(jìn)行截獲,然后提交給上層模塊進(jìn)行分析處理。
數(shù)據(jù)包分析模塊對(duì)截獲的數(shù)據(jù)包根據(jù)數(shù)據(jù)包的類型、源地址、目的地址、包大小等基本信息逐個(gè)進(jìn)行分析。
數(shù)據(jù)包分析模塊在對(duì)數(shù)據(jù)包進(jìn)行分析后,根據(jù)數(shù)據(jù)包的特性,調(diào)用特定的分類統(tǒng)計(jì)計(jì)數(shù)模塊對(duì)該包進(jìn)行統(tǒng)計(jì)計(jì)數(shù),分類統(tǒng)計(jì)計(jì)數(shù)模塊按照MIB庫的規(guī)范要求,將統(tǒng)計(jì)結(jié)果更新到有關(guān)的一些MIB對(duì)象中。
RMON MIB庫用來保存各種RMON MIB對(duì)象(實(shí)際上還包括MIB-II的System組和Interface組),這些對(duì)象按照RMON MIB規(guī)范進(jìn)行組織,這里的MIB庫是一個(gè)概念上的數(shù)據(jù)庫,實(shí)際上各種信息都組織在內(nèi)存中,以提高訪問效率。
SNMP處理模塊負(fù)責(zé)實(shí)現(xiàn)SNMP訪問接口,接收SNMP請(qǐng)求(包括Get、GetRequest、Set等操作),對(duì)它進(jìn)行分析處理,并按照要求訪問RMON MIB庫,從中取得需要的MIB對(duì)象值并返回給請(qǐng)求者(對(duì)Get、GetRequest而言),或者設(shè)置有關(guān)的MIB對(duì)象值(對(duì)Set操作而言)。
Trap發(fā)送模塊負(fù)責(zé)在發(fā)生特定事件時(shí),主動(dòng)發(fā)送Trap信息給預(yù)定的管理站;在分類統(tǒng)計(jì)計(jì)數(shù)模塊對(duì)MIB對(duì)象的值進(jìn)行計(jì)數(shù)時(shí),如果發(fā)現(xiàn)特定值超過了預(yù)定的范圍,則啟動(dòng)Trap發(fā)送模塊,按照預(yù)定策略發(fā)送Trap信息給管理站。
4.1 SNMP Agent的實(shí)現(xiàn)
目前,已經(jīng)有一些可用的SNMP Agent開發(fā)工具包,它們提供一些基本的框架平臺(tái),實(shí)現(xiàn)了Agent的通用功能,在其基礎(chǔ)上,開發(fā)者可以集中精力進(jìn)行具體邏輯功能的實(shí)現(xiàn),如MIB對(duì)象的數(shù)據(jù)采集等。這樣有利于簡(jiǎn)化開發(fā)工作,加快開發(fā)進(jìn)程。常見的SNMP Agent開發(fā)工具包有:Agent++、net-snmp、WinSnmp API(適用于Windows平臺(tái))等。
為了方便探測(cè)器Agent的實(shí)現(xiàn),我們選擇了Agent++平臺(tái),它是免費(fèi)的且源代碼公開。
Agent++是一套用于開發(fā)SNMP Agent的C++庫,它建立在SNMP++的基礎(chǔ)之上。Agent++提供了完整的協(xié)議處理框架,提供了標(biāo)量對(duì)象和表對(duì)象等MIB對(duì)象的基類,通過繼承用戶可以方便地定義MIB對(duì)象。Agent++具有以下一些特點(diǎn):
(1)功能強(qiáng)大,能夠?qū)崿F(xiàn)各種復(fù)雜的MIB對(duì)象;
(2)簡(jiǎn)單易用,開發(fā)人員無需深入了解底層的SNMP處理,僅使用一些簡(jiǎn)單的類和接口,即可快速實(shí)現(xiàn)帶有各種MIB對(duì)象的Agent;
(3)擴(kuò)展性強(qiáng),方便定義和實(shí)現(xiàn)新的功能;
(4)可移植性好,代碼可以方便地移植到Windows、UNIX、Linux等平臺(tái)上;
(5)支持SNMPv1和SNMPv2c;
(6)支持多線程處理,在線程中處理SNMP請(qǐng)求,可以進(jìn)行并發(fā)的處理;
(7)支持MIB對(duì)象的持久保存,可將MIB對(duì)象保存到硬盤上,并可以從硬盤裝載;
(8)具有詳細(xì)的日志功能。
4.2 網(wǎng)絡(luò)數(shù)據(jù)包偵聽的實(shí)現(xiàn)
網(wǎng)絡(luò)數(shù)據(jù)包的偵聽也可以使用一些現(xiàn)成的開發(fā)包來實(shí)現(xiàn),winpcap和libpcap是比較較有名的開發(fā)包,提供了較強(qiáng)的網(wǎng)絡(luò)數(shù)據(jù)包截獲功能,其中,winpcap運(yùn)行在Windows平臺(tái)上,libpcap運(yùn)行在UNIX和Linux平臺(tái)上。
本項(xiàng)目使用libpcap作為數(shù)據(jù)包偵聽部分的開發(fā)包。
libpcap(Packet Capture Library),即數(shù)據(jù)包捕獲函數(shù)庫。在網(wǎng)絡(luò)包抓取中l(wèi)ibpcap是非常常用的一個(gè)庫,較有名的tcpdump就是用它來實(shí)現(xiàn)的。libpcap是一個(gè)與實(shí)現(xiàn)無關(guān)的訪問操作系統(tǒng)所提供的分組捕獲函數(shù)庫,用于訪問數(shù)據(jù)鏈路層。這個(gè)庫為不同的平臺(tái)提供了*的C函數(shù)編程接口,在安裝了 libpcap 的平臺(tái)上,以 libpcap 為接口寫的程序、應(yīng)用,能夠自由地跨平臺(tái)使用。它支持多種操作系統(tǒng)。
libpcap 結(jié)構(gòu)簡(jiǎn)單,使用方便;它提供了20多個(gè)API封裝函數(shù),我們利用這些API函數(shù)即可完成本網(wǎng)絡(luò)探測(cè)器所需的網(wǎng)絡(luò)數(shù)據(jù)包監(jiān)聽功能。 基本設(shè)計(jì)思想
從本質(zhì)上講,網(wǎng)絡(luò)探測(cè)器是一個(gè)支持RMON規(guī)范的SNMP Agent,其主要任務(wù)包括:
(1)采集、分析和統(tǒng)計(jì)局域網(wǎng)的各種有用信息,按照RMON規(guī)范對(duì)這些信息進(jìn)行組織;
(2)實(shí)現(xiàn)SNMP Agent,提供標(biāo)準(zhǔn)的SNMP接口,供管理站從它獲得網(wǎng)絡(luò)管理信息。
網(wǎng)絡(luò)探測(cè)器底層的平臺(tái)是嵌入式Linux系統(tǒng),該系統(tǒng)具有網(wǎng)絡(luò)模塊,可以接入以太局域網(wǎng)。具體的平臺(tái)要求是:
硬件系統(tǒng)平臺(tái):性能較高,處理速度相對(duì)較快,內(nèi)存容量較大,帶有網(wǎng)絡(luò)模塊;
操作系統(tǒng)平臺(tái):支持網(wǎng)絡(luò)功能,能夠接入以太網(wǎng),提供C++編譯開發(fā)工具。
在本網(wǎng)絡(luò)探測(cè)器的實(shí)現(xiàn)時(shí),考慮到運(yùn)行效率、硬件成本、使用方便性等各方面的因素,做了以下限定:
(1)針對(duì)目前較常見的以太網(wǎng)環(huán)境;
(2)有一個(gè)接口使其僅能連接到一個(gè)子網(wǎng),這樣可使得系統(tǒng)簡(jiǎn)單有效、易于安裝配置;
(3)全部MIB對(duì)象存放在內(nèi)存中,提高運(yùn)行效率;
(4)有選擇地實(shí)現(xiàn)一些重要的MIB組;RMON是一個(gè)功能非常強(qiáng)大的MIB庫,能夠?yàn)楣芾碚咎峁┰敿?xì)的網(wǎng)絡(luò)管理信息,然而,在一般應(yīng)用中都不大可能對(duì)所有的SNMP MIB組加以實(shí)現(xiàn)。
3.2 系統(tǒng)基本體系結(jié)構(gòu)
圖2給出了本網(wǎng)絡(luò)探測(cè)器的基本體系結(jié)構(gòu)。網(wǎng)絡(luò)探測(cè)器包括以下一些基本組成模塊:網(wǎng)絡(luò)偵聽、數(shù)據(jù)包分析、分類統(tǒng)計(jì)計(jì)數(shù)、RMON MIB庫、SNMP處理以及Trap發(fā)送等。
探測(cè)器系統(tǒng)中,各個(gè)功能模塊的主要功能如下:
網(wǎng)絡(luò)偵聽模塊負(fù)責(zé)從網(wǎng)絡(luò)上截獲所有的數(shù)據(jù)包;網(wǎng)絡(luò)探測(cè)器連接在特定局域網(wǎng)上,它能夠?qū)υ摼钟蚓W(wǎng)上傳輸?shù)乃袛?shù)據(jù)包進(jìn)行截獲,然后提交給上層模塊進(jìn)行分析處理。
數(shù)據(jù)包分析模塊對(duì)截獲的數(shù)據(jù)包根據(jù)數(shù)據(jù)包的類型、源地址、目的地址、包大小等基本信息逐個(gè)進(jìn)行分析。
數(shù)據(jù)包分析模塊在對(duì)數(shù)據(jù)包進(jìn)行分析后,根據(jù)數(shù)據(jù)包的特性,調(diào)用特定的分類統(tǒng)計(jì)計(jì)數(shù)模塊對(duì)該包進(jìn)行統(tǒng)計(jì)計(jì)數(shù),分類統(tǒng)計(jì)計(jì)數(shù)模塊按照MIB庫的規(guī)范要求,將統(tǒng)計(jì)結(jié)果更新到有關(guān)的一些MIB對(duì)象中。
RMON MIB庫用來保存各種RMON MIB對(duì)象(實(shí)際上還包括MIB-II的System組和Interface組),這些對(duì)象按照RMON MIB規(guī)范進(jìn)行組織,這里的MIB庫是一個(gè)概念上的數(shù)據(jù)庫,實(shí)際上各種信息都組織在內(nèi)存中,以提高訪問效率。
SNMP處理模塊負(fù)責(zé)實(shí)現(xiàn)SNMP訪問接口,接收SNMP請(qǐng)求(包括Get、GetRequest、Set等操作),對(duì)它進(jìn)行分析處理,并按照要求訪問RMON MIB庫,從中取得需要的MIB對(duì)象值并返回給請(qǐng)求者(對(duì)Get、GetRequest而言),或者設(shè)置有關(guān)的MIB對(duì)象值(對(duì)Set操作而言)。
Trap發(fā)送模塊負(fù)責(zé)在發(fā)生特定事件時(shí),主動(dòng)發(fā)送Trap信息給預(yù)定的管理站;在分類統(tǒng)計(jì)計(jì)數(shù)模塊對(duì)MIB對(duì)象的值進(jìn)行計(jì)數(shù)時(shí),如果發(fā)現(xiàn)特定值超過了預(yù)定的范圍,則啟動(dòng)Trap發(fā)送模塊,按照預(yù)定策略發(fā)送Trap信息給管理站。
4.1 SNMP Agent的實(shí)現(xiàn)
目前,已經(jīng)有一些可用的SNMP Agent開發(fā)工具包,它們提供一些基本的框架平臺(tái),實(shí)現(xiàn)了Agent的通用功能,在其基礎(chǔ)上,開發(fā)者可以集中精力進(jìn)行具體邏輯功能的實(shí)現(xiàn),如MIB對(duì)象的數(shù)據(jù)采集等。這樣有利于簡(jiǎn)化開發(fā)工作,加快開發(fā)進(jìn)程。常見的SNMP Agent開發(fā)工具包有:Agent++、net-snmp、WinSnmp API(適用于Windows平臺(tái))等。
為了方便探測(cè)器Agent的實(shí)現(xiàn),我們選擇了Agent++平臺(tái),它是免費(fèi)的且源代碼公開。
Agent++是一套用于開發(fā)SNMP Agent的C++庫,它建立在SNMP++的基礎(chǔ)之上。Agent++提供了完整的協(xié)議處理框架,提供了標(biāo)量對(duì)象和表對(duì)象等MIB對(duì)象的基類,通過繼承用戶可以方便地定義MIB對(duì)象。Agent++具有以下一些特點(diǎn):
(1)功能強(qiáng)大,能夠?qū)崿F(xiàn)各種復(fù)雜的MIB對(duì)象;
(2)簡(jiǎn)單易用,開發(fā)人員無需深入了解底層的SNMP處理,僅使用一些簡(jiǎn)單的類和接口,即可快速實(shí)現(xiàn)帶有各種MIB對(duì)象的Agent;
(3)擴(kuò)展性強(qiáng),方便定義和實(shí)現(xiàn)新的功能;
(4)可移植性好,代碼可以方便地移植到Windows、UNIX、Linux等平臺(tái)上;
(5)支持SNMPv1和SNMPv2c;
(6)支持多線程處理,在線程中處理SNMP請(qǐng)求,可以進(jìn)行并發(fā)的處理;
(7)支持MIB對(duì)象的持久保存,可將MIB對(duì)象保存到硬盤上,并可以從硬盤裝載;
(8)具有詳細(xì)的日志功能。
4.2 網(wǎng)絡(luò)數(shù)據(jù)包偵聽的實(shí)現(xiàn)
網(wǎng)絡(luò)數(shù)據(jù)包的偵聽也可以使用一些現(xiàn)成的開發(fā)包來實(shí)現(xiàn),winpcap和libpcap是比較較有名的開發(fā)包,提供了較強(qiáng)的網(wǎng)絡(luò)數(shù)據(jù)包截獲功能,其中,winpcap運(yùn)行在Windows平臺(tái)上,libpcap運(yùn)行在UNIX和Linux平臺(tái)上。
本項(xiàng)目使用libpcap作為數(shù)據(jù)包偵聽部分的開發(fā)包。
libpcap(Packet Capture Library),即數(shù)據(jù)包捕獲函數(shù)庫。在網(wǎng)絡(luò)包抓取中l(wèi)ibpcap是非常常用的一個(gè)庫,較有名的tcpdump就是用它來實(shí)現(xiàn)的。libpcap是一個(gè)與實(shí)現(xiàn)無關(guān)的訪問操作系統(tǒng)所提供的分組捕獲函數(shù)庫,用于訪問數(shù)據(jù)鏈路層。這個(gè)庫為不同的平臺(tái)提供了*的C函數(shù)編程接口,在安裝了 libpcap 的平臺(tái)上,以 libpcap 為接口寫的程序、應(yīng)用,能夠自由地跨平臺(tái)使用。它支持多種操作系統(tǒng)。
libpcap 結(jié)構(gòu)簡(jiǎn)單,使用方便;它提供了20多個(gè)API封裝函數(shù),我們利用這些API函數(shù)即可完成本網(wǎng)絡(luò)探測(cè)器所需的網(wǎng)絡(luò)數(shù)據(jù)包監(jiān)聽功能。 基本設(shè)計(jì)思想
從本質(zhì)上講,網(wǎng)絡(luò)探測(cè)器是一個(gè)支持RMON規(guī)范的SNMP Agent,其主要任務(wù)包括:
(1)采集、分析和統(tǒng)計(jì)局域網(wǎng)的各種有用信息,按照RMON規(guī)范對(duì)這些信息進(jìn)行組織;
(2)實(shí)現(xiàn)SNMP Agent,提供標(biāo)準(zhǔn)的SNMP接口,供管理站從它獲得網(wǎng)絡(luò)管理信息。
網(wǎng)絡(luò)探測(cè)器底層的平臺(tái)是嵌入式Linux系統(tǒng),該系統(tǒng)具有網(wǎng)絡(luò)模塊,可以接入以太局域網(wǎng)。具體的平臺(tái)要求是:
硬件系統(tǒng)平臺(tái):性能較高,處理速度相對(duì)較快,內(nèi)存容量較大,帶有網(wǎng)絡(luò)模塊;
操作系統(tǒng)平臺(tái):支持網(wǎng)絡(luò)功能,能夠接入以太網(wǎng),提供C++編譯開發(fā)工具。
在本網(wǎng)絡(luò)探測(cè)器的實(shí)現(xiàn)時(shí),考慮到運(yùn)行效率、硬件成本、使用方便性等各方面的因素,做了以下限定:
(1)針對(duì)目前較常見的以太網(wǎng)環(huán)境;
(2)有一個(gè)接口使其僅能連接到一個(gè)子網(wǎng),這樣可使得系統(tǒng)簡(jiǎn)單有效、易于安裝配置;
(3)全部MIB對(duì)象存放在內(nèi)存中,提高運(yùn)行效率;
(4)有選擇地實(shí)現(xiàn)一些重要的MIB組;RMON是一個(gè)功能非常強(qiáng)大的MIB庫,能夠?yàn)楣芾碚咎峁┰敿?xì)的網(wǎng)絡(luò)管理信息,然而,在一般應(yīng)用中都不大可能對(duì)所有的SNMP MIB組加以實(shí)現(xiàn)。
3.2 系統(tǒng)基本體系結(jié)構(gòu)
圖2給出了本網(wǎng)絡(luò)探測(cè)器的基本體系結(jié)構(gòu)。網(wǎng)絡(luò)探測(cè)器包括以下一些基本組成模塊:網(wǎng)絡(luò)偵聽、數(shù)據(jù)包分析、分類統(tǒng)計(jì)計(jì)數(shù)、RMON MIB庫、SNMP處理以及Trap發(fā)送等。
探測(cè)器系統(tǒng)中,各個(gè)功能模塊的主要功能如下:
網(wǎng)絡(luò)偵聽模塊負(fù)責(zé)從網(wǎng)絡(luò)上截獲所有的數(shù)據(jù)包;網(wǎng)絡(luò)探測(cè)器連接在特定局域網(wǎng)上,它能夠?qū)υ摼钟蚓W(wǎng)上傳輸?shù)乃袛?shù)據(jù)包進(jìn)行截獲,然后提交給上層模塊進(jìn)行分析處理。
數(shù)據(jù)包分析模塊對(duì)截獲的數(shù)據(jù)包根據(jù)數(shù)據(jù)包的類型、源地址、目的地址、包大小等基本信息逐個(gè)進(jìn)行分析。
數(shù)據(jù)包分析模塊在對(duì)數(shù)據(jù)包進(jìn)行分析后,根據(jù)數(shù)據(jù)包的特性,調(diào)用特定的分類統(tǒng)計(jì)計(jì)數(shù)模塊對(duì)該包進(jìn)行統(tǒng)計(jì)計(jì)數(shù),分類統(tǒng)計(jì)計(jì)數(shù)模塊按照MIB庫的規(guī)范要求,將統(tǒng)計(jì)結(jié)果更新到有關(guān)的一些MIB對(duì)象中。
RMON MIB庫用來保存各種RMON MIB對(duì)象(實(shí)際上還包括MIB-II的System組和Interface組),這些對(duì)象按照RMON MIB規(guī)范進(jìn)行組織,這里的MIB庫是一個(gè)概念上的數(shù)據(jù)庫,實(shí)際上各種信息都組織在內(nèi)存中,以提高訪問效率。
SNMP處理模塊負(fù)責(zé)實(shí)現(xiàn)SNMP訪問接口,接收SNMP請(qǐng)求(包括Get、GetRequest、Set等操作),對(duì)它進(jìn)行分析處理,并按照要求訪問RMON MIB庫,從中取得需要的MIB對(duì)象值并返回給請(qǐng)求者(對(duì)Get、GetRequest而言),或者設(shè)置有關(guān)的MIB對(duì)象值(對(duì)Set操作而言)。
Trap發(fā)送模塊負(fù)責(zé)在發(fā)生特定事件時(shí),主動(dòng)發(fā)送Trap信息給預(yù)定的管理站;在分類統(tǒng)計(jì)計(jì)數(shù)模塊對(duì)MIB對(duì)象的值進(jìn)行計(jì)數(shù)時(shí),如果發(fā)現(xiàn)特定值超過了預(yù)定的范圍,則啟動(dòng)Trap發(fā)送模塊,按照預(yù)定策略發(fā)送Trap信息給管理站。
4.1 SNMP Agent的實(shí)現(xiàn)
目前,已經(jīng)有一些可用的SNMP Agent開發(fā)工具包,它們提供一些基本的框架平臺(tái),實(shí)現(xiàn)了Agent的通用功能,在其基礎(chǔ)上,開發(fā)者可以集中精力進(jìn)行具體邏輯功能的實(shí)現(xiàn),如MIB對(duì)象的數(shù)據(jù)采集等。這樣有利于簡(jiǎn)化開發(fā)工作,加快開發(fā)進(jìn)程。常見的SNMP Agent開發(fā)工具包有:Agent++、net-snmp、WinSnmp API(適用于Windows平臺(tái))等。
為了方便探測(cè)器Agent的實(shí)現(xiàn),我們選擇了Agent++平臺(tái),它是免費(fèi)的且源代碼公開。
Agent++是一套用于開發(fā)SNMP Agent的C++庫,它建立在SNMP++的基礎(chǔ)之上。Agent++提供了完整的協(xié)議處理框架,提供了標(biāo)量對(duì)象和表對(duì)象等MIB對(duì)象的基類,通過繼承用戶可以方便地定義MIB對(duì)象。Agent++具有以下一些特點(diǎn):
(1)功能強(qiáng)大,能夠?qū)崿F(xiàn)各種復(fù)雜的MIB對(duì)象;
(2)簡(jiǎn)單易用,開發(fā)人員無需深入了解底層的SNMP處理,僅使用一些簡(jiǎn)單的類和接口,即可快速實(shí)現(xiàn)帶有各種MIB對(duì)象的Agent;
(3)擴(kuò)展性強(qiáng),方便定義和實(shí)現(xiàn)新的功能;
(4)可移植性好,代碼可以方便地移植到Windows、UNIX、Linux等平臺(tái)上;
(5)支持SNMPv1和SNMPv2c;
(6)支持多線程處理,在線程中處理SNMP請(qǐng)求,可以進(jìn)行并發(fā)的處理;
(7)支持MIB對(duì)象的持久保存,可將MIB對(duì)象保存到硬盤上,并可以從硬盤裝載;
(8)具有詳細(xì)的日志功能。
4.2 網(wǎng)絡(luò)數(shù)據(jù)包偵聽的實(shí)現(xiàn)
網(wǎng)絡(luò)數(shù)據(jù)包的偵聽也可以使用一些現(xiàn)成的開發(fā)包來實(shí)現(xiàn),winpcap和libpcap是比較較有名的開發(fā)包,提供了較強(qiáng)的網(wǎng)絡(luò)數(shù)據(jù)包截獲功能,其中,winpcap運(yùn)行在Windows平臺(tái)上,libpcap運(yùn)行在UNIX和Linux平臺(tái)上。
本項(xiàng)目使用libpcap作為數(shù)據(jù)包偵聽部分的開發(fā)包。
libpcap(Packet Capture Library),即數(shù)據(jù)包捕獲函數(shù)庫。在網(wǎng)絡(luò)包抓取中l(wèi)ibpcap是非常常用的一個(gè)庫,較有名的tcpdump就是用它來實(shí)現(xiàn)的。libpcap是一個(gè)與實(shí)現(xiàn)無關(guān)的訪問操作系統(tǒng)所提供的分組捕獲函數(shù)庫,用于訪問數(shù)據(jù)鏈路層。這個(gè)庫為不同的平臺(tái)提供了*的C函數(shù)編程接口,在安裝了 libpcap 的平臺(tái)上,以 libpcap 為接口寫的程序、應(yīng)用,能夠自由地跨平臺(tái)使用。它支持多種操作系統(tǒng)。
libpcap 結(jié)構(gòu)簡(jiǎn)單,使用方便;它提供了20多個(gè)API封裝函數(shù),我們利用這些API函數(shù)即可完成本網(wǎng)絡(luò)探測(cè)器所需的網(wǎng)絡(luò)數(shù)據(jù)包監(jiān)聽功能。 基本設(shè)計(jì)思想
從本質(zhì)上講,網(wǎng)絡(luò)探測(cè)器是一個(gè)支持RMON規(guī)范的SNMP Agent,其主要任務(wù)包括:
(1)采集、分析和統(tǒng)計(jì)局域網(wǎng)的各種有用信息,按照RMON規(guī)范對(duì)這些信息進(jìn)行組織;
(2)實(shí)現(xiàn)SNMP Agent,提供標(biāo)準(zhǔn)的SNMP接口,供管理站從它獲得網(wǎng)絡(luò)管理信息。
網(wǎng)絡(luò)探測(cè)器底層的平臺(tái)是嵌入式Linux系統(tǒng),該系統(tǒng)具有網(wǎng)絡(luò)模塊,可以接入以太局域網(wǎng)。具體的平臺(tái)要求是:
硬件系統(tǒng)平臺(tái):性能較高,處理速度相對(duì)較快,內(nèi)存容量較大,帶有網(wǎng)絡(luò)模塊;
操作系統(tǒng)平臺(tái):支持網(wǎng)絡(luò)功能,能夠接入以太網(wǎng),提供C++編譯開發(fā)工具。
在本網(wǎng)絡(luò)探測(cè)器的實(shí)現(xiàn)時(shí),考慮到運(yùn)行效率、硬件成本、使用方便性等各方面的因素,做了以下限定:
(1)針對(duì)目前較常見的以太網(wǎng)環(huán)境;
(2)有一個(gè)接口使其僅能連接到一個(gè)子網(wǎng),這樣可使得系統(tǒng)簡(jiǎn)單有效、易于安裝配置;
(3)全部MIB對(duì)象存放在內(nèi)存中,提高運(yùn)行效率;
(4)有選擇地實(shí)現(xiàn)一些重要的MIB組;RMON是一個(gè)功能非常強(qiáng)大的MIB庫,能夠?yàn)楣芾碚咎峁┰敿?xì)的網(wǎng)絡(luò)管理信息,然而,在一般應(yīng)用中都不大可能對(duì)所有的SNMP MIB組加以實(shí)現(xiàn)。
3.2 系統(tǒng)基本體系結(jié)構(gòu)
圖2給出了本網(wǎng)絡(luò)探測(cè)器的基本體系結(jié)構(gòu)。網(wǎng)絡(luò)探測(cè)器包括以下一些基本組成模塊:網(wǎng)絡(luò)偵聽、數(shù)據(jù)包分析、分類統(tǒng)計(jì)計(jì)數(shù)、RMON MIB庫、SNMP處理以及Trap發(fā)送等。
探測(cè)器系統(tǒng)中,各個(gè)功能模塊的主要功能如下:
網(wǎng)絡(luò)偵聽模塊負(fù)責(zé)從網(wǎng)絡(luò)上截獲所有的數(shù)據(jù)包;網(wǎng)絡(luò)探測(cè)器連接在特定局域網(wǎng)上,它能夠?qū)υ摼钟蚓W(wǎng)上傳輸?shù)乃袛?shù)據(jù)包進(jìn)行截獲,然后提交給上層模塊進(jìn)行分析處理。
數(shù)據(jù)包分析模塊對(duì)截獲的數(shù)據(jù)包根據(jù)數(shù)據(jù)包的類型、源地址、目的地址、包大小等基本信息逐個(gè)進(jìn)行分析。
數(shù)據(jù)包分析模塊在對(duì)數(shù)據(jù)包進(jìn)行分析后,根據(jù)數(shù)據(jù)包的特性,調(diào)用特定的分類統(tǒng)計(jì)計(jì)數(shù)模塊對(duì)該包進(jìn)行統(tǒng)計(jì)計(jì)數(shù),分類統(tǒng)計(jì)計(jì)數(shù)模塊按照MIB庫的規(guī)范要求,將統(tǒng)計(jì)結(jié)果更新到有關(guān)的一些MIB對(duì)象中。
RMON MIB庫用來保存各種RMON MIB對(duì)象(實(shí)際上還包括MIB-II的System組和Interface組),這些對(duì)象按照RMON MIB規(guī)范進(jìn)行組織,這里的MIB庫是一個(gè)概念上的數(shù)據(jù)庫,實(shí)際上各種信息都組織在內(nèi)存中,以提高訪問效率。
SNMP處理模塊負(fù)責(zé)實(shí)現(xiàn)SNMP訪問接口,接收SNMP請(qǐng)求(包括Get、GetRequest、Set等操作),對(duì)它進(jìn)行分析處理,并按照要求訪問RMON MIB庫,從中取得需要的MIB對(duì)象值并返回給請(qǐng)求者(對(duì)Get、GetRequest而言),或者設(shè)置有關(guān)的MIB對(duì)象值(對(duì)Set操作而言)。
Trap發(fā)送模塊負(fù)責(zé)在發(fā)生特定事件時(shí),主動(dòng)發(fā)送Trap信息給預(yù)定的管理站;在分類統(tǒng)計(jì)計(jì)數(shù)模塊對(duì)MIB對(duì)象的值進(jìn)行計(jì)數(shù)時(shí),如果發(fā)現(xiàn)特定值超過了預(yù)定的范圍,則啟動(dòng)Trap發(fā)送模塊,按照預(yù)定策略發(fā)送Trap信息給管理站。
4.1 SNMP Agent的實(shí)現(xiàn)
目前,已經(jīng)有一些可用的SNMP Agent開發(fā)工具包,它們提供一些基本的框架平臺(tái),實(shí)現(xiàn)了Agent的通用功能,在其基礎(chǔ)上,開發(fā)者可以集中精力進(jìn)行具體邏輯功能的實(shí)現(xiàn),如MIB對(duì)象的數(shù)據(jù)采集等。這樣有利于簡(jiǎn)化開發(fā)工作,加快開發(fā)進(jìn)程。常見的SNMP Agent開發(fā)工具包有:Agent++、net-snmp、WinSnmp API(適用于Windows平臺(tái))等。
為了方便探測(cè)器Agent的實(shí)現(xiàn),我們選擇了Agent++平臺(tái),它是免費(fèi)的且源代碼公開。
Agent++是一套用于開發(fā)SNMP Agent的C++庫,它建立在SNMP++的基礎(chǔ)之上。Agent++提供了完整的協(xié)議處理框架,提供了標(biāo)量對(duì)象和表對(duì)象等MIB對(duì)象的基類,通過繼承用戶可以方便地定義MIB對(duì)象。Agent++具有以下一些特點(diǎn):
(1)功能強(qiáng)大,能夠?qū)崿F(xiàn)各種復(fù)雜的MIB對(duì)象;
(2)簡(jiǎn)單易用,開發(fā)人員無需深入了解底層的SNMP處理,僅使用一些簡(jiǎn)單的類和接口,即可快速實(shí)現(xiàn)帶有各種MIB對(duì)象的Agent;
(3)擴(kuò)展性強(qiáng),方便定義和實(shí)現(xiàn)新的功能;
(4)可移植性好,代碼可以方便地移植到Windows、UNIX、Linux等平臺(tái)上;
(5)支持SNMPv1和SNMPv2c;
(6)支持多線程處理,在線程中處理SNMP請(qǐng)求,可以進(jìn)行并發(fā)的處理;
(7)支持MIB對(duì)象的持久保存,可將MIB對(duì)象保存到硬盤上,并可以從硬盤裝載;
(8)具有詳細(xì)的日志功能。
4.2 網(wǎng)絡(luò)數(shù)據(jù)包偵聽的實(shí)現(xiàn)
網(wǎng)絡(luò)數(shù)據(jù)包的偵聽也可以使用一些現(xiàn)成的開發(fā)包來實(shí)現(xiàn),winpcap和libpcap是比較較有名的開發(fā)包,提供了較強(qiáng)的網(wǎng)絡(luò)數(shù)據(jù)包截獲功能,其中,winpcap運(yùn)行在Windows平臺(tái)上,libpcap運(yùn)行在UNIX和Linux平臺(tái)上。
本項(xiàng)目使用libpcap作為數(shù)據(jù)包偵聽部分的開發(fā)包。
libpcap(Packet Capture Library),即數(shù)據(jù)包捕獲函數(shù)庫。在網(wǎng)絡(luò)包抓取中l(wèi)ibpcap是非常常用的一個(gè)庫,較有名的tcpdump就是用它來實(shí)現(xiàn)的。libpcap是一個(gè)與實(shí)現(xiàn)無關(guān)的訪問操作系統(tǒng)所提供的分組捕獲函數(shù)庫,用于訪問數(shù)據(jù)鏈路層。這個(gè)庫為不同的平臺(tái)提供了*的C函數(shù)編程接口,在安裝了 libpcap 的平臺(tái)上,以 libpcap 為接口寫的程序、應(yīng)用,能夠自由地跨平臺(tái)使用。它支持多種操作系統(tǒng)。
libpcap 結(jié)構(gòu)簡(jiǎn)單,使用方便;它提供了20多個(gè)API封裝函數(shù),我們利用這些API函數(shù)即可完成本網(wǎng)絡(luò)探測(cè)器所需的網(wǎng)絡(luò)數(shù)據(jù)包監(jiān)聽功能。