劉錦行 (武漢理工大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,湖北 武漢430070)
在當(dāng)今社會(huì)信息化的發(fā)展過程中,計(jì)算機(jī)網(wǎng)絡(luò)正以空前的速度和廣度向前發(fā)展。計(jì)算機(jī)網(wǎng)絡(luò)的應(yīng)用已經(jīng)滲透到了政治、經(jīng)濟(jì)、科技、軍事等各個(gè)領(lǐng)域。目前無論是個(gè)人還是個(gè)企事業(yè)單位的Internet應(yīng)用越來越走向深入,為人們的日常工作和生活提供了便捷的互聯(lián)服務(wù)。由此便引出了日常網(wǎng)絡(luò)的使用費(fèi)用問題。同時(shí),計(jì)費(fèi)管理作為網(wǎng)絡(luò)管理的5大功能之一,是保證網(wǎng)絡(luò)正常運(yùn)行不可缺少的重要部分。計(jì)費(fèi)系統(tǒng)的準(zhǔn)確性、可靠性、安全性及實(shí)用性、越來越為人們所關(guān)注,它直接關(guān)系到Internet服務(wù)提供商以及用戶的經(jīng)濟(jì)利益,它已成為一個(gè)網(wǎng)絡(luò)正常運(yùn)營與發(fā)展的關(guān)鍵[1]。
根據(jù)用戶使用網(wǎng)絡(luò)服務(wù)的種類和計(jì)費(fèi)信息的采集方法,大致可將目前的計(jì)費(fèi)方法分為3類:
(1)基于網(wǎng)絡(luò)流量的計(jì)費(fèi)[2-3]。根據(jù)用戶在使用網(wǎng)絡(luò)時(shí)所產(chǎn)生的數(shù)據(jù)流量的大小來收取用戶費(fèi)用的計(jì)費(fèi)方式。目前流量數(shù)據(jù)的采集方法主要有:基于路由器的流量采集、基于代理的流量采集和基于網(wǎng)絡(luò)偵聽的流量采集等。
(2)基于使用時(shí)間的計(jì)費(fèi)[1]。這種計(jì)費(fèi)方式是根據(jù)用戶使用網(wǎng)絡(luò)時(shí)間的長短來收取費(fèi)用。目前,一些校園網(wǎng)所提供的撥號(hào)服務(wù)大都是通過RADIUS服務(wù)器的計(jì)費(fèi)功能來實(shí)現(xiàn)計(jì)費(fèi)的。
(3)基于網(wǎng)絡(luò)服務(wù)的計(jì)費(fèi)[1]。這種方法根據(jù)用戶使用網(wǎng)絡(luò)服務(wù)的次數(shù)或時(shí)間來收取費(fèi)用。目前這類服務(wù)包括電子郵件、信息檢索和視頻點(diǎn)播等。目前主要通過分析服務(wù)器的訪問日志或使用監(jiān)控程序來得到用戶的使用情況。
基于網(wǎng)絡(luò)流量的計(jì)費(fèi)系統(tǒng)的2個(gè)主要組成部分就是流量數(shù)據(jù)的采集和流量數(shù)據(jù)的處理。首先通過流量采集部分獲取用戶流量信息,再通過數(shù)據(jù)處理部分匯總統(tǒng)計(jì)用戶流量以及費(fèi)用信息,借助于數(shù)據(jù)庫得到最終的計(jì)費(fèi)結(jié)果。計(jì)費(fèi)系統(tǒng)的組成結(jié)構(gòu)簡單如圖1所示。
流量數(shù)據(jù)的采集就是對(duì)網(wǎng)絡(luò)用戶的通信量進(jìn)行采集。按字節(jié)數(shù)對(duì)用戶的發(fā)送和接收的數(shù)據(jù)量統(tǒng)計(jì)。一般情況下流量信息應(yīng)該包含用戶的IP地址,MAC地址,數(shù)據(jù)量 (發(fā)送接收的報(bào)文字節(jié)數(shù))等內(nèi)容。數(shù)據(jù)采集部分是計(jì)費(fèi)系統(tǒng)最為核心的部分,目前使用的計(jì)費(fèi)軟件使用的流量采集的方法一般可以基于SNMP的流量采集、基于代理服務(wù)器的流量采集和基于偵聽的流量采集3種方式[4-5]。流量的數(shù)據(jù)處理部分主要借助于數(shù)據(jù)庫,在數(shù)據(jù)庫中建立用戶表,根據(jù)用戶ID對(duì)流量數(shù)據(jù)進(jìn)行統(tǒng)計(jì),在根據(jù)制定的費(fèi)率結(jié)算出用戶的費(fèi)用。也可以通過數(shù)據(jù)庫滿足用戶的查詢等操作。
圖1 計(jì)費(fèi)系統(tǒng)組成結(jié)構(gòu)
該計(jì)費(fèi)系統(tǒng)采用偵聽的方式,減少對(duì)網(wǎng)絡(luò)的影響。即通過偵聽方式得到以太幀數(shù)據(jù),然后以太幀數(shù)據(jù)經(jīng)過數(shù)據(jù)處理模塊得到流量信息。把這些流量數(shù)據(jù)存儲(chǔ)進(jìn)數(shù)據(jù)庫進(jìn)行流量統(tǒng)計(jì)和匯總,按照給定的費(fèi)率,計(jì)算出用戶所需交納的網(wǎng)絡(luò)使用費(fèi),即系統(tǒng)的模塊化流程如圖2所示。根據(jù)上述流程分析,計(jì)費(fèi)系統(tǒng)主要包括如下功能模塊:
1)包攔截模塊 獲得原始數(shù)據(jù)幀,是計(jì)費(fèi)的最原始信息。
2)報(bào)文分析模塊 分析包的地址、類型、端口號(hào),區(qū)分是系統(tǒng)管理報(bào)文還是用戶報(bào)文,區(qū)分是否需要收費(fèi)。
3)用戶流量統(tǒng)計(jì)模塊 得到用戶的數(shù)據(jù)流量,作為計(jì)費(fèi)的依據(jù)。
4)費(fèi)用計(jì)算模塊 結(jié)算用戶的網(wǎng)絡(luò)使用費(fèi)。
5)IP地址管理模塊 將IP地址和MAC地址綁定,防止盜用。
6)黑名單管理模塊 針對(duì)不良站點(diǎn)或訪問不良站點(diǎn)的用戶進(jìn)行記錄管理。
圖2 系統(tǒng)模塊化流程
7)用戶信息設(shè)置模塊 提供用戶對(duì)自己信息的錄入和修改。
8)費(fèi)率的修改模塊 針對(duì)不同的用戶、不同的上網(wǎng)類型、不同時(shí)段、不同地域的收費(fèi)費(fèi)率應(yīng)該不一樣。對(duì)于室內(nèi)、校內(nèi)、國內(nèi)、國外、訪問的是免費(fèi)站點(diǎn)還是非免費(fèi)站點(diǎn),也應(yīng)有不同的費(fèi)率。
9)基于WEB的用戶查詢模塊 提供一個(gè)用戶對(duì)自己費(fèi)用及網(wǎng)絡(luò)使用情況的查詢界面。
10)報(bào)表模塊 將統(tǒng)計(jì)的流量及費(fèi)用等信息輸出為報(bào)表,并進(jìn)行打印。
圖3 報(bào)文攔截程序流程
1)報(bào)文攔截的實(shí)現(xiàn) 報(bào)文攔截即包捕獲,就是利用以太網(wǎng)的介質(zhì)共享的特性,通過將網(wǎng)絡(luò)適配器設(shè)置為混雜模式的方法,接收到所有網(wǎng)絡(luò)上的以太網(wǎng)幀[5-6]。系統(tǒng)基于 WinPcap (Windows Packet Capture)[7]網(wǎng)絡(luò)驅(qū)動(dòng)開發(fā)包,設(shè)計(jì)實(shí)現(xiàn)報(bào)文攔截的流程如圖3所示。
2)報(bào)文分析的實(shí)現(xiàn) 報(bào)文攔截模塊捕獲的是數(shù)據(jù)鏈路層的協(xié)議數(shù)據(jù)單元 (LLPDU)[8],報(bào)文分析模塊則針對(duì)相關(guān)的數(shù)據(jù)鏈路層協(xié)議進(jìn)行分析,從中分解出IP、ARP、ICMP、UDP、TCP等協(xié)議的內(nèi)容。目前局域網(wǎng)主要采用以太網(wǎng),所以重點(diǎn)解釋以太網(wǎng)幀拆分和IP數(shù)據(jù)報(bào)拆分流程如圖4所示。
3)數(shù)據(jù)存儲(chǔ)和界面設(shè)計(jì) 根據(jù)用戶的具體需求,基于Microsoft SQL Server 2000數(shù)據(jù)庫技術(shù),設(shè)計(jì)的計(jì)費(fèi)數(shù)據(jù)庫的表設(shè)計(jì)如下:①流量數(shù)據(jù)表。包含的字段有源MAC地址、目的MAC地址、源IP地址、目的IP地址、協(xié)議、端口號(hào)、報(bào)文長度。流量數(shù)據(jù)表是系統(tǒng)按網(wǎng)絡(luò)流量進(jìn)行計(jì)費(fèi)的依據(jù),由底層報(bào)文攔截模塊采集后寫入表中。②用戶信息表。包含的字段有用戶ID、用戶名、IP地址、MAC地址、交費(fèi)情況。由用戶信息表以提供用戶的交費(fèi)情況查詢,若未交費(fèi),定為非法用戶。③費(fèi)用情況表。包含的字段有用戶名、總計(jì)流量、應(yīng)交納費(fèi)額。費(fèi)用情況表是交費(fèi)的唯一依據(jù)。④免費(fèi)地址表。包含字段有IP地址范圍,免費(fèi)的原因。⑤黑名單地址表。包含字段有IP地址、列為黑名單的原因。黑名單地址表主要記錄不良站點(diǎn)的訪問記錄,為系統(tǒng)安全管理和維護(hù)提供依據(jù)。
軟件的運(yùn)行情況如圖5所示。
圖4 太網(wǎng)幀和IP數(shù)據(jù)報(bào)拆分流程
圖5 軟件的運(yùn)行界面
基于流量的網(wǎng)絡(luò)計(jì)費(fèi)是未來網(wǎng)絡(luò)計(jì)費(fèi)的發(fā)展趨勢(shì)。以簡單和實(shí)用為主導(dǎo)思想,提出了一種具體的基于流量的網(wǎng)絡(luò)計(jì)費(fèi)的解決方案,并基于WinPcap網(wǎng)絡(luò)編程技術(shù)和VC++編程技術(shù),設(shè)計(jì)實(shí)現(xiàn)了對(duì)報(bào)文捕獲、報(bào)文分析、計(jì)費(fèi)查詢等模塊的功能。該系統(tǒng)交互性好,實(shí)用性強(qiáng),實(shí)現(xiàn)了動(dòng)態(tài)費(fèi)率、分類費(fèi)率等功能,能有效提高網(wǎng)絡(luò)計(jì)費(fèi)管理準(zhǔn)確性、可靠性。