精华区 [关闭][返回]

当前位置:网易精华区>>讨论区精华>>编程开发>>● 系统分析>>自开版到2000-04-10待整理精华>>网络计费系统的设计与实现(李信满 刘积

主题:网络计费系统的设计与实现(李信满 刘积
发信人: foreversun()
整理人: (2000-03-08 14:01:11), 站内信件
网络计费系统的设计与实现

李信满 刘积仁

摘 要 本文对网络计费系统进行了分析和设计,讨论了一个具体的模型及其实现
策略;分析了计费系统中的一些关键问题和难点,并提出了解决的方法;同时讨
论了利用JAVA语言实现计费系统的优点和途径. 

关键词 计费,SNMP

引言

计费管理做为网络管理的五大功能之一,对一个大型网络及至中、小型网络来说
都是不可缺少的重要组成部分. 计费系统不仅可以用来计算网络用户所应承担的
费用,还可利用它来监控网络的数据流量,分析网络的使用情况及性能,尽早发
现网络的瓶颈及故障点,及某些异常和可疑迹象. 从而合理调整网络的路由,合
理分配网络流量,并防患于未然,杜绝一些不该发生的事情,保证网络高效、稳
定、可靠地运行. 95年末,中国教育和科研计算机网(CERNET)示范工程通过验收
,标志着CERNET骨干网的建成,同时也有遍及20多个省份的100多所学校加入了这
个网络,对于这么大型的计算机网络来说,其每一级网络中心,从地区网络中心
到学校的校园网网络中心都迫切需要一个有效的网络计费系统,而目前,各网络
中心也只是利用系统本身已提供的功能或者一些实用工具来代替这部分的功能,
比较松散也不完整,没有形成一个有效的整体. 因此,设计和开发一个网络计费
系统就显得非常必要. 

计费系统的设计

 
网络计费系统可以分成两大部分,数据采集和对采集的数据进行的分析处理. 其
中,较关键和困难的部分是计费数据的采集. 对于目前的网络来说,由于网络上
的设备主要有主机系统和路由器,因此计费数据可从主机系统和路由器上获得,
实际上,该两种设备已经包含了计费所需的信息. 计费系统的结构如图1所示. 


由于用户使用网络的方式不同,其数据的采集方法也不相同;而用户本身又可分
为两类,既个人用户和集团用户如学校等,对它们的计费方式都有所区别. 个人
用户一般通过电话拨号访问网络,而集团用户则通过专线如X.25、DDN、以太网等
有IP连接的方式访问. 电话拨号又可分成两种:即仿真终端方式和PPP/SLIP方式
. 为了简化系统的设计和实现,对计费系统提出以下原则:

1)个人用户(拨号方式)按使用时间计费

2)集团用户(专线方式)按使用的数据流量计费

对于个人用户的计费将基于主机系统,由于网络上的主机大多采用Unix操作系统
,而Unix系统本身对个人用户帐号已提供了部分计费功能,可以根据这些数据实
行对用户计费. 

对集团用户将采用基于IP地址的流量统计来计费. 根据上述分析,在主机系统为
Unix,路由器为Cisco路由器的网络系统里可采用以下的实现技术路线:

1)对仿真终端用户直接利用主机系统的计费信息

2)对PPP/SLIP用户采用TACACS软件以记录其使用时间

3)对IP地址的数据流量统计基于SNMP协议,并从路由器取数据

以上三点解决了计费系统中的数据采集问题,其中2)、3) 在实现时要困难一些.
 

由于网络管理系统产品,比如Sun公司的SunNet Manager 、IBM 公司的NetView等
都需要较好的一台工作站来支持,而且网管产品本身又比较昂贵,对CERNET上某
些规模较小的学校可能增加负担,因此本系统并不基于任何网管系统平台. 数据
采集的大部分和数据处理、分析均采用了可跨平台的JAVA语言,因此既可运行在
UNIX工作站上,也可运行在基于NT/Win95的PC机上,对系统的要求较低. 同时JA
VA语言的平台独立性也避免了计费系统在不同平台上的重复开发和移植. 

数据采集和数据处理做为计费系统的两个子系统,具有一定的独立性,数据采集
部分为计费系统提供计费所需的基本信息,这部分数据的可靠性决定了计费系统
的性能;而数据处理解决如何将这些数据以适合用户要求的形式提供给用户,完
成用户的查询、打印等要求. 数据处理部分直接与用户交互,而数据采集部分只
是做为一个服务进程,在后台运行,并不断地从路由器、主机系统获取计费数据
. 数据采集服务器采用JAVA实现,因此可以运行在较多的系统平台上. JAVA语言
里包含一个支持网络编程的程序包(package) java.net,可利用它对TCP/IP协议
的支持以实现对网络设备的数据采集,包括SNMP的Get、Set等操作. 

计费系统的数据采集

基于IP地址的数据流量获取

对网络上的主机设备,即IP地址的数据流量的监控是数据采集的主要部分. 本系
统利用SNMP协议直接从路由器获取这些数据. 

SNMP协议规定了网络管理工作站与被管理设备之间进行通信时的语法和规则,具
体协议可参见RFC1152. 支持SNMP的设备将可被管理的信息以管理信息库MIB (Ma
nagement Information Base) 的形式组织起来,MIB的标准可参见RFC1065和RFC
1213. MIB是一个虚拟的信息库,实际并不存在,只是以一种树形的结构来组织信
息的形式. 不同的设备具有不同的MIB,比如Cisco路由器有Cisco公司自己的Cis
co MIB,SUN工作站也有其自己的MIB等. 

对一个网络设备,比如路由器的信息的获取或控制可通过SNMP协议对设备的MIB进
行操作来实现. SNMP的操作主要有以下几种:Get,Get-next,Set等. Get操作用
来读取MIB中的某个值,而Set操作则用来设置MIB中的某个值. 

Cisco路由器的MIB里包含了与计费相关的MIB值,因此可通过SNMP操作来获得这些
计费数据. 在Cisco路由器里,与计费相关的MIB值是: 1.3.6.1.4.1.9.2.4.7.1.
3和1.3.6.1.4.1.9.2.4.9.1.3,该两个MIB值保留了对IP地址数据流量的一张表,
其格式举例如下:

源 地 址 目标地址 字节数

202.112.29.88 202.118.0.131 2048

202.112.29.87 202.118.0.82 5670

 

上例中,第一行数据表示从IP地址为202.112.29.88的主机到地址为202.118.0.1
31的主机的数据流量为2048字节. 

为了让路由器记录上述计费数据,必须在想要计费的那个路由器的端口的配置里
加入下面一行:

IP ACCOUNTING

目前,Cisco路由器只能记录一个方向的数据流量,即从某个端口出去的数据流量
,为了记录相反方向的数据流量,就必须对相对流入的端口也进行IP计费. 另外
,由于路由器处在网络交通的枢纽位置,因此其计费信息将非常庞大,实践证明
,10分钟的计费信息就可达到600K字节,很快就会将路由器的内存消耗掉,并影
响路由器的性能,因此必须不断定时地将这些计费数据转移到主机系统上来,并
将路由器上的数据清空、重新开始计费,这些功能都可利用SNMP操作来实现. 

对PPP/SLIP用户的计费

对于PPP/SLIP用户,由于其在拨通之后可以不登录到网络中心的任何机器,而直
接访问Internet上的远地服务器,因此无法利用现成的终端服务器和主机系统对
其进行计费. RFC1492给出了一个用于终端服务器访问控制的协议TACACS,即Ter
minal Access Controller Access Control System,采用Username/Password配
对的验证机制来确认通过电话线的访问,Cisco公司对该协议进行了扩充并予以了
具体实现,其扩充版本有两种:TACACS+和XTACACS,这些软件可以从Internet上
免费获得. TACACS软件分成服务器和客户两部分,服务器装在主机上,目前既有
工作站版的也有PC机版的. 由于Cisco路由器支持TACACS协议,本身可做为客户.
 所有TACACS软件均可用来对PPP/SLIP用户的登录时间进行记录,当PPP用户拨通
电话后,终端服务器就会向TACACS服务器TACACSD发出登录请求,如果验证正确,
TACACSD就会记录下该用户的登录时间,当用户退出时,路由器也会自动通知TAC
ACSD,让TACACSD记录下该用户的退出时间,从而就可知道用户的使用时间. 下面
给出TACASD的使用例子,在主机系统比如202.112.29.87上安装TACACS软件后,路
由器上按如下设置:

tacacs-server host 202.112.29.87

tacacs-server last-resort succeed

tacacs-server extended

tacacs-server notify connections

tacacs-server notify enable

tacacs-server notify logout

tacacs-server notify slip 

利用TACACS软件除可记录下PPP/SLIP用户的帐号外,同时将对PPP用户的验证机制
和密码文件都转移到了主机上去实现,扩充了用户帐号的容量(Cisco路由器最多
只允许在其路由器上设置99个密码),并可对某些用户进行安全或权限方面的限制


基于主机系统的个人计费

对于登录到Unix主机系统的仿真终端用户和其他用户,可直接利用系统本身提供
的计费功能来完成. Unix系统提供了每一帐号的登录、退出时间和每天的总使用
时间,同时还提供了对磁盘空间的利用情况、及各种命令的使用情况等,因此可
比较容易地获得计费数据. 

计费系统的数据处理

数据的存贮

有了计费数据后,就要对它进行加工,并以最易于二次处理的形式存贮起来. 如
果以数据库的形式存贮的话,对以后的处理就会带来很大的方便,但是缺点是必
须增加一个数据库软件,同时可能增加硬件设备的负担,增加系统的复杂度和成
本,并不利于适应各不相同的系统环境. 由于对计费数据的处理比较简单,因此
本系统目前的版本仍采用文件系统的方式来存贮,其后果是增加了数据处理时的
编程负担,但本系统的编程语言采用了功能较强、又相对比较简单的JAVA语言,
因此对不同系统的适应性较好. 

本系统采用文件系统的方式来存贮计费数据,文件系统的结构以树形来组织,如
下所示:/年/月/日. 每一天的数据以一个文件的形式的存在叶子结点上,比如1
996年6月20日的计费数据放在1996/06/20的文件里,而1995年5月10日的数据放在
1995/05/10的文件里. 数据采集服务器将自动将采集到的数据按上述规则放在该
系统里. 

查询系统的实现

查询是计费系统的基本功能. 本系统的查询界面利用JAVA编制. 

JAVA语言可编制两种应用,一为可独立执行的应用程序,另一种是只能结合WWW一
起使用,称为Applet的程序,本系统的查询界面采用了Applet的应用方式,用户
可以利用支持JAVA的WWW浏览器来实现查询,比如Netscape2.0或以上版本、Hotj
ava等. 利用这种方式,可以支持远程的查询,方便了用户的访问. 查询子系统充
分发挥了JAVA语言对交互性和图形方面的良好支持. 图2是本系统测试版对学校等
集团用户基于IP地址流量计费部分的一个实际查询界面. 

 

在本系统的测试版里,支持对任一IP地址、IP地址范围及它们的组合,在某一天
或某时间段里的输入、输出字节数的查询,也可简单地从学校这一下拉式菜单里
选择一所学校,系统就会自动给出该学校的IP地址范围和查询结果,并生成一个
简单的报表. 

为了实现以上基于WWW的查询,就必须将计费数据也放在与WWW服务器HTTPD所在的
那台机器上,从而JAVA程序可直接读取这些计费信息,并进行一些必要的数据运
算和格式转换,返回给用户. 

报表生成和打印功能的实现

本系统的报表生成和打印功能也是借助WWW浏览器来实现的. 用户可将查询结果生
成报表,或让计费系统将本月或基于其他过滤条件的信息生成报表,报表的中间
结果采用HTML语言,由于HTML可以描述非常美丽的页面,可以随意嵌入图表、选
择各种字体和字型等,使得本系统的报表要比传统的系统所生成的报表简单、美
观和生动. 生成的HTML中间文件被WWW浏览器解释后呈现给用户,这时用户可将它
打印出来,或以HTML文件的形式存贮在本地的硬盘上. 报表生成部分也是采用JA
VA来实现的,其中包括一个实现用户界面的Applet和基于JAVA的CGI程序. 

结束语

本文将计费系统分成数据采集和数据处理两个较独立的部分,并分别探讨了它们
的实现方法. 对计费系统中的难点,比如对PPP/SLIP用户的计费、基于IP地址的
数据流量采集等进行了分析,给出了具体的解决办法. 由于整个系统的编程语言
采用了JAVA,因此具有较好的平台独立性,既可运行在工作站上,又可运行在PC
机上,降低了对系统硬件的要求;由于JAVA语言的其他优点,比如安全性及对网
络和图形界面的良好支持、交互性等,使得本系统的用户界面比较友好,同时由
于用户查询前端采用了WWW的浏览器,因此极大地方便了用户的访问. 该计费系统
的设计以简单和实用为主导思想,因此可减少开发成本,缩短开发周期. CERNET
东北地区网络中心已开发成功基于上述设计思想的试验系统,并已投入运行,经
过约两个多月的测试,比较稳定和可靠,利用该系统,东北地区已联网的任何学
校都可随时查询某台主机的数据使用量及本学校的总数据量,对网络的使用情况
有了一个更直观和透彻的了解,同时也为计帐提供了基本的根据,受到了东北地
区学校的好评. 

参考文献

Jerry R. Jackson and Alan l. Mcllellan. Java by Example. 1996

Allan Leinwand. Network Management. 1993

李信满. Java的应用开发. 微型计算机. 1996

 

Design and Implementation of Network 

Accounting System

Li Xinman Liu Jiren

 

Abstract Network accounting system is a critical part of modern networ
k management.. The paper introduces the design and implementation of a
 network accounting system. When discussing the main points and diffic
ulties of an accounting system, also gives the solution to these probl
ems. The implementation of this system in JAVA is also presented.

 

Key words Accounting, SNMP.

 

作者简介:李信满,95年硕士毕业,主要从事网络管理及多媒体通信方面的研究


 :本文原载“中国教育和科研计算机网的研究与发展”. 

--
   在年轻的时候,如果你爱上了一个人,请你,请你一定要温柔地对待他.不管你们相爱的时间有多长或多短,裟忝悄苁贾瘴氯岬叵啻敲矗械氖笨潭冀且恢治掼Φ拿览觥?nbsp;
   若不得不分离,也要好好地说声再见,也要在心里存着感谢,感谢他给了你一份记忆。长大了以后,你才会知
?.... [email protected]

※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 210.72.12.252]

[关闭][返回]