劉錦行 (武漢理工大學計算機科學與技術學院,湖北 武漢430070)
在當今社會信息化的發展過程中,計算機網絡正以空前的速度和廣度向前發展。計算機網絡的應用已經滲透到了政治、經濟、科技、軍事等各個領域。目前無論是個人還是個企事業單位的Internet應用越來越走向深入,為人們的日常工作和生活提供了便捷的互聯服務。由此便引出了日常網絡的使用費用問題。同時,計費管理作為網絡管理的5大功能之一,是保證網絡正常運行不可缺少的重要部分。計費系統的準確性、可靠性、安全性及實用性、越來越為人們所關注,它直接關系到Internet服務提供商以及用戶的經濟利益,它已成為一個網絡正常運營與發展的關鍵[1]。
根據用戶使用網絡服務的種類和計費信息的采集方法,大致可將目前的計費方法分為3類:
(1)基于網絡流量的計費[2-3]。根據用戶在使用網絡時所產生的數據流量的大小來收取用戶費用的計費方式。目前流量數據的采集方法主要有:基于路由器的流量采集、基于代理的流量采集和基于網絡偵聽的流量采集等。
(2)基于使用時間的計費[1]。這種計費方式是根據用戶使用網絡時間的長短來收取費用。目前,一些校園網所提供的撥號服務大都是通過RADIUS服務器的計費功能來實現計費的。
(3)基于網絡服務的計費[1]。這種方法根據用戶使用網絡服務的次數或時間來收取費用。目前這類服務包括電子郵件、信息檢索和視頻點播等。目前主要通過分析服務器的訪問日志或使用監控程序來得到用戶的使用情況。
基于網絡流量的計費系統的2個主要組成部分就是流量數據的采集和流量數據的處理。首先通過流量采集部分獲取用戶流量信息,再通過數據處理部分匯總統計用戶流量以及費用信息,借助于數據庫得到最終的計費結果。計費系統的組成結構簡單如圖1所示。
流量數據的采集就是對網絡用戶的通信量進行采集。按字節數對用戶的發送和接收的數據量統計。一般情況下流量信息應該包含用戶的IP地址,MAC地址,數據量 (發送接收的報文字節數)等內容。數據采集部分是計費系統最為核心的部分,目前使用的計費軟件使用的流量采集的方法一般可以基于SNMP的流量采集、基于代理服務器的流量采集和基于偵聽的流量采集3種方式[4-5]。流量的數據處理部分主要借助于數據庫,在數據庫中建立用戶表,根據用戶ID對流量數據進行統計,在根據制定的費率結算出用戶的費用。也可以通過數據庫滿足用戶的查詢等操作。

圖1 計費系統組成結構
該計費系統采用偵聽的方式,減少對網絡的影響。即通過偵聽方式得到以太幀數據,然后以太幀數據經過數據處理模塊得到流量信息。把這些流量數據存儲進數據庫進行流量統計和匯總,按照給定的費率,計算出用戶所需交納的網絡使用費,即系統的模塊化流程如圖2所示。根據上述流程分析,計費系統主要包括如下功能模塊:
1)包攔截模塊 獲得原始數據幀,是計費的最原始信息。
2)報文分析模塊 分析包的地址、類型、端口號,區分是系統管理報文還是用戶報文,區分是否需要收費。
3)用戶流量統計模塊 得到用戶的數據流量,作為計費的依據。
4)費用計算模塊 結算用戶的網絡使用費。
5)IP地址管理模塊 將IP地址和MAC地址綁定,防止盜用。
6)黑名單管理模塊 針對不良站點或訪問不良站點的用戶進行記錄管理。

圖2 系統模塊化流程
7)用戶信息設置模塊 提供用戶對自己信息的錄入和修改。
8)費率的修改模塊 針對不同的用戶、不同的上網類型、不同時段、不同地域的收費費率應該不一樣。對于室內、校內、國內、國外、訪問的是免費站點還是非免費站點,也應有不同的費率。
9)基于WEB的用戶查詢模塊 提供一個用戶對自己費用及網絡使用情況的查詢界面。
10)報表模塊 將統計的流量及費用等信息輸出為報表,并進行打印。

圖3 報文攔截程序流程
1)報文攔截的實現 報文攔截即包捕獲,就是利用以太網的介質共享的特性,通過將網絡適配器設置為混雜模式的方法,接收到所有網絡上的以太網幀[5-6]。系統基于 WinPcap (Windows Packet Capture)[7]網絡驅動開發包,設計實現報文攔截的流程如圖3所示。
2)報文分析的實現 報文攔截模塊捕獲的是數據鏈路層的協議數據單元 (LLPDU)[8],報文分析模塊則針對相關的數據鏈路層協議進行分析,從中分解出IP、ARP、ICMP、UDP、TCP等協議的內容。目前局域網主要采用以太網,所以重點解釋以太網幀拆分和IP數據報拆分流程如圖4所示。
3)數據存儲和界面設計 根據用戶的具體需求,基于Microsoft SQL Server 2000數據庫技術,設計的計費數據庫的表設計如下:①流量數據表。包含的字段有源MAC地址、目的MAC地址、源IP地址、目的IP地址、協議、端口號、報文長度。流量數據表是系統按網絡流量進行計費的依據,由底層報文攔截模塊采集后寫入表中。②用戶信息表。包含的字段有用戶ID、用戶名、IP地址、MAC地址、交費情況。由用戶信息表以提供用戶的交費情況查詢,若未交費,定為非法用戶。③費用情況表。包含的字段有用戶名、總計流量、應交納費額。費用情況表是交費的唯一依據。④免費地址表。包含字段有IP地址范圍,免費的原因。⑤黑名單地址表。包含字段有IP地址、列為黑名單的原因。黑名單地址表主要記錄不良站點的訪問記錄,為系統安全管理和維護提供依據。
軟件的運行情況如圖5所示。

圖4 太網幀和IP數據報拆分流程

圖5 軟件的運行界面
基于流量的網絡計費是未來網絡計費的發展趨勢。以簡單和實用為主導思想,提出了一種具體的基于流量的網絡計費的解決方案,并基于WinPcap網絡編程技術和VC++編程技術,設計實現了對報文捕獲、報文分析、計費查詢等模塊的功能。該系統交互性好,實用性強,實現了動態費率、分類費率等功能,能有效提高網絡計費管理準確性、可靠性。