聂 晶,潘志宏,徐 洪,谢海明,刘伟平
(1.暨南大学 电子工程系,广州510632;2.光电信息与传感技术广东普通高校重点实验室,广州 510632)
以太无源光网络(EPON)是一种新型的宽带多业务综合接入技术,它综合了PON技术和以太网技术两者的优点,具有带宽高、成本低、易使用、易升级等优良特性,成为下一代宽带光接入网的最佳选择。作为信息传送通道的“最后一公里”,EPON网络直接面对终端用户,因此其性能的优越性成为了衡量整个网络服务质量的重要指标。如何对EPON系统性能进行有效监测和管理,俨然已成为了当今网络管理(简称网管)的一个重要课题[1-2]。
近年来,国内外许多通信开发商相继开发出功能强大的网管系统,如HP公司的OpenView系列及中兴的NetNume系列,但其功能复杂、费用昂贵,而且针对性不强,专门针对EPON网络的管理系统还不多。此外,这些网管系统大多都是基于C/S结构,不利于系统的安装、维护以及升级。
针对以上问题,本文设计并实现了一个基于B/S的EPON网管的性能管理系统。本系统利用Java编程语言与JSP网页设计技术进行实现,使系统的开发、维护工作都集中在服务器端,极大地简化了客户端。同时,通过采集、监测和分析网络性能数据,为网络进一步规划与调整提供依据,从而更好地保证了网络的业务质量。
EPON性能管理的主要目标是通过对EPON网络上的光路终端设备(OLT)和光网络单元(ONU)设备的性能进行监视、检测,采集到相关性能统计数据,进行分析、诊断,从而为网络进一步规划与调整提供依据,以保证网络的性能和业务质量。通过对设备性能进行实时监控,能够及时对异常性能采取控制。同时,通过对历史数据的统计分析确定利用率趋势,预先发现网络运行瓶颈,改进EPON的总体性能水平,从而实现为用户提供优质服务的目的。
一般而言,性能管理应包括性能参数查询、实时性能管理和历史性能管理3个功能。性能参数查询为系统管理者提供OLT与ONU各种性能参数的查询;实时性能管理是连续地收集OLT、ONU上与性能相关的数据,根据性能图确定网元的实时性能,从而能实现对网络异常的及时处理;历史性能管理支持管理员对采集周期进行设置,对收集到的性能数据做进一步的统计分析,从而掌握设备单元因不太频繁或间断的差错导致业务质量变差的性能情况。
EPON性能管理系统的管理对象是多个EPON系统,其中每一个EPON系统包括了光路终端设备(OLT)和多个光网络单元(ONU)。其中,OLT是通过光纤与ONU连接的。系统采用的是带内网络方式,因此管理站服务器到OLT和ONU之间不需要增加专门的网管通道[3]。系统方案如图1所示,其主要由Web服务器、数据库服务器组成。客户端通过Internet访问Web服务器,同时Web服务器通过Internet与EPON系统交互信息。
图1 系统方案图Fig.1 The system diagram
该系统采用的协议模型是SNMP网络管理模型,它主要包括管理站、管理代理、MIB库和SNMP网络管理协议4个关键部件,其中SNMP协议因其简单易操作性,成为现今应用最广泛的网络管理协议。SNMP协议主要有以下3个功能:取值(Get)使网管站能够从代理处获取相关对象的值;设置值(Set)使网管站能够在代理商设置相关对象的值;告警信息(Trap)由代理站监测到自身故障异常后,主动发送告警信息到管理站[4]。本设计主要是利用SNMP的Get、Set方法,实现对采集周期的设置以及获取性能参数的目的。
结合SNMP管理模型以及对网络管理的研究,设计和构建了基于B/S性能管理系统模型。其主要由四大模块组成:后台控制程序模块、数据库处理模块、性能管理模块和界面显示模块,如图2所示。
图2 系统架构图Fig.2 The system organization
四大模块采用MVC三层体系结构,分别为持久层、业务逻辑层和表示层。其中持久化层采用Hibernate技术,业务逻辑层采用Java技术,表示层主要是采用EXTJS技术,数据库采用Oracle数据库。业务逻辑层是整个网管系统的核心,其关键是通过SNMP协议的Get方法获取OLT代理的性能信息,并将信息实时传输到持久层,通过持久层存储到数据库中。同时,业务逻辑层还负责将处理过的信息提交给表示层,并以图形方式显示出来。
管理站服务器向代理获取EPON性能参数的过程是:客户端向服务器发出请求,服务器对请求进行判断,若为实时性能查询,则与EPON设备代理建立连接,启动数据采集线程,线程通过SNMP协议对设备指定的参数数据信息进行采集,采集到的数据以图形的方式显示到用户端;若为历史性能管理或性能预测,则服务器从数据库中获取定时采集到的历史数据,所得数据通过统计分析对数据进行处理,将处理结果以图形的方式展示到用户端。其流程图如图3所示。
图3 系统实现流程图Fig.3 The system flowchart
表1 性能参数数据表Table 1 The datasheet of performance parameters
本设计采用Oracle10g作为系统的后台数据库,数据库主要记录系统与OLT、ONU各类信息,其中最主要的是要记录性能参数的信息。性能参数的信息保存在数据库的数据表中,性能参数数据表主要包括如下字段:OLT IP地址、采集时间、平均输入速率、平均输出速率、输入利用率、输出利用率、输入丢包率、输出丢包率、输入吞吐量和输出吞吐量,具体描述如表1所示。
性能管理系统在功能实现上分为数据采集模块、数据处理模块和性能显示模块。
数据采集是采用SNMP协议读取网络设备MIB库的方式,其功能是完成性能数据的采集,以供统计分析和显示模块等使用。本系统中性能数据采集方式有循环定时模式和实时模式两种,循环定时模式预先配置好定时时间间隔,由服务器端定时对设备进行数据采集,该模式通常作为统计分析历史性能的数据来源;实时模式由用户触发该采集动作,用于采集EPON设备的当前性能数据,采集的数据需要马上送回用户界面,并作为实时参数性能呈现给用户,本类数据主要用于检测当前性能。
数据采集模块是采用开源的SNMP4J开发包实现。SNMP4J开发包中提供了类CommunityTarget、类DefaultUdpTransportMapping和类PDU,使用上述几个类可以实现对OLT代理信息的采集。该采集模块的实现原理是:首先根据被管设备的IP创建CommunityTarget共同体对象,通过DefaultUdpTransportMapping创建对象,并调用listen()方法启动该监听线程,该线程主要是监听端口161。然后根据采集对象的OID创建PDU get报文,并使用java.util.Timer构建采集定时器,以10 min的采集间隔为周期定时发送get报文。当监听到代理响应的get-response报文时,进一步解析报文,获取采集参数的信息。
数据处理模块主要负责根据采集得到的原始数据,计算和统计丢包率、差错率等性能参数,并保存到数据库或直接实时进行显示,同时也接受用户对于历史性能数据的查询、删除等操作。
通常性能管理所涉及到的参数有接口利用率、丢包率、吞吐量等,其计算公式如下[5]:
(1)数据流量准确计算出某段时间内的数据流量,反映出端口的流量:
平均输入速率=Δiflnoctets/T
平均输出速率=Δifoutoctets/T
(2)利用率反映了信道利用程度,成为衡量信道资源是否满足当前网络传输需求的重要指标:
输入利用率=(Δiflnoctets×8)/(ifspeed×T)×100%
输出利用率=(Δifoutoctets×8)/(ifspeed×T)×100%
(3)丢包率反映了被路由器丢弃报文占的百分比,有利于快速判断网络是否出现了拥塞:
输入丢包率=ΔiflnDiseards/(ΔiflnUeastPks+
ΔiflnNueastPks)×100%
输出丢包率=ΔifoutDiseards/(ΔifoutUeastPks+
ΔifoutNueastPks)×100%
(4)吞吐是指单位时间内成功地传送数据的数量,反映出了网络传输的实际能力:
输入吞吐量=(Δiflnoetets-ΔiflnDiseards-ΔiflnErrors)/T
输出吞吐量=(Δifoutoctets-ΔifoutDiseards-ΔifoutErrors)/T
显示模块主要是采用JFreeChart开发包形成设备参数性能统计图。JFreeChart开发包是JFreeChart公司用Java语言开发的通用图形组件,其功能强大,源代码免费开发,基本能够解决目前的图形方面的需求,生成各种各样的统计图,是目前比较好的Java图形解决方案。显示模块将根据客户的查询需要分别以柱状图和折线图的方式显示性能统计信息。
CategoryDataset dataset = getDataSet3(); //获取数据源
JFreeChart chart= ChartFactory.createLineChart (“数据包分析”, “ ”, “数据包分析/分钟”,
dataset, PlotOrientation.VERTICAL, true, false, false); // 生成柱状图标轴
try { //将图形生成PNG格式,并输出到网页上
ChartRenderingInfo info = new ChartRenderingInfo(
new StandardEntityCollection());
filename=ServletUtilities.saveChartAsPNG(chart,w,h,info,
session);
ChartUtilities.writeImageMap(pw, filename, info, true);
pw.flush();
} catch (IOException e) {
e.printStackTrace();
}
将本系统部署到tomcat6.0服务器中,启动数据服务器和tomcat服务器,在任意一台与Internet相连接的电脑上打开浏览器并登陆Web服务器,选中所要管理的OLT设备IP,进入性能主界面,如图4所示。用户可以根据需要选择相应的设备和参数以获取相应的性能统计信息,分别以折线图和柱形图两种方式展示设备参数的统计图。另外,也可以设置统计图刷新方式,如手动刷新、自动刷新(具体的刷新时间可以是系统默认,也可以是用户设定)。
图4 性能显示图Fig.4 The performance display
EPON是目前最有前景的解决“最后一公里”网络瓶颈问题的接入网方案,其功能强大的网络结构,只有通过良好的网络管理才能使其性能得到最好的发挥。本文通过分析EPON网络管理中性能管理的需求以及SNMP协议,提出了一种B/S结构的EPON性能管理系统的软件实现方法,并采用Java语言、JSP技术和Oracle数据库技术进行实现,具有跨平台、可扩展、易维护的特点。同时,选用 JFreeChart开发包,将网络性能参数以柱状图/折线图的方式呈现给用户,方便用户更直观地掌握整个网络的性能。本系统不仅实现了对EPON网络设备性能的实时监控,而且可以根据历史性能数据的分析预先发现网络瓶颈,从而达到优化网络管理的目的,为EPON系统稳定和高效的运行提供了支持。
参考文献:
[1] 田春雨,陈雪,顾雪沁. EPON网管性能子系统的设计和实现[J].光通信技术,2009(2):16-19.
TIAN Chun-yu,CHEN Xue,GU Xue-qin.Design and implementation of performance management subsystem for EPON[J].Fiber Communication Technology,2009(2):16-19.(in Chinese)
[2] 万姗姗,吴峰.EPON网管功能现状及展望[J].电信技术,2008(9):39-40.
WAN Shan-shan,WU Feng.The current situation and outlook of EPON network function [J].Telecommunictions Techonology,2008(9):39-40.(in Chinese)
[3] 程传庆,程传慧,王莉.EPON系统一种基于SNMP的新型管理方法研究[J].武汉理工大学学报,2008,32(1):172-175.
CHENG Chuan-qing,CHENG Chuan-hui,WANG Li.Research of a New Management Method for EPON System Based on SNMP[J].Journal of Wuhan University of Technology,2008,32(1):172-175. (in Chinese)
[4] William Stallings.SNMP网络管理[M].胡成松,汪凯,译.北京:中国电力出版社,2001.
William Stallings.SNMP network management[M].Translated by HU Cheng-song,WANG Kai.Beijing:China Electric Power Press,2001.
[5] Glen Kramer.基于以太网的无源光网络[M].陈雪,孙曙和,刘冬,等,译.北京:北京邮电大学出版社,2007.
Glen Kramer. Ethernet passive optical networks[M]. Translated by CHEN Xue, SUN Shu-he,LIU Dong,et al.Beijing: Beijing University of Posts and Telecommunications Press,2007.(in Chinese)