基于Epoll模型的公网信息高效传输方法

文档序号:9330288阅读:142来源:国知局
基于Epoll模型的公网信息高效传输方法
【技术领域】
[0001]本发明涉及一种电网信息传输方法,尤其涉及一种基于Epoll模型的公网信息高效传输方法,属于配电自动化技术领域。
【背景技术】
[0002]电力系统目前的业务数据传输主要依靠电力综合数据网。但随着配电网建设的不断发展,所覆盖的区域不断扩大,接入配电自动化系统的终端数量在大幅增长。另一方面,互联网传输的成本逐渐降低,基于公网的配电数据传输应运而生。2012年,福建厦门电业局试点在厦门市偏远地区及老市区等光纤专网难以建设的地区,采用无线公网(GPRS)传输配电数据。通过搭载无线公网,不需每建一座站房均敷设相应光纤,将加快终端的安装进程,并节约大量资源。
[0003]公网信息传输与信息交互总线相互结合使用,实现了前置与终端之间的跨区通信。但是,鉴于不断增加的终端接入数量,势必会导致传输效率降低等问题。数据在通过网络传输的过程中,由于网络环境等因素,会出现数据丢包的现象。所以,如何保证数据传输的高效及完整性成为公网信息传输的关键问题。
[0004]—方面,现有配电自动化技术在处理公网信息传输时采用轮询的方式,通过前置遍历所有接入的终端,来检测终端是否发送或接收数据。这种处理方式对接入的终端数量有要求,一般数量不超过1024个。当接入的终端数量变大时,传输效率将会明显下降,严重影响终端的正常使用。
[0005]另一方面,现有配电自动化技术在保证报文完整性方面,往往只是对单条报文进行完整性校验,因此无法保证公网信息传输的准确性,对配电网的安全可靠运行会产生不利影响。

【发明内容】

[0006]鉴于现有技术的不足,本发明所要解决的技术问题在于提供一种基于Epoll模型的公网信息高效传输方法。
[0007]为实现上述的发明目的,本发明采用下述的技术方案:
[0008]—种公网信息高效传输方法,用于实现前置与终端之间的跨区通信,其中所述前置部署在电力综合数据网中的安全区,所述终端部署在公网区;其中,
[0009]当所述终端需要向所述前置发送数据时,采用基于Epoll模型的触发机制通知所述前置,所述前置只针对存在数据发送需求的终端进行处理。
[0010]其中较优地,在基于Epoll模型的触发机制中,如果epoll事件表明有新的连接请求,则调用accept O函数,将相应终端的socket描述符添加到epoll_data联合体,同时设定该socket描述符为非阻塞,并在epoll_event结构中设置要处理的事件类型为读和写,工作方式为epoll_ET。
[0011]其中较优地,在基于Epoll模型的触发机制中,如果所述epoll事件表明socket描述符上有数据可读,则将该socket描述符加入可读队列,通知接收线程读入数据,并将接收到的数据放入到接收数据的链表中,经逻辑处理后,将反馈的数据包放入到发送数据链表中,等待由发送线程发送。
[0012]其中较优地,在前置与终端之间的跨区通信中,将待发送的数据与包号组合构成数据包,然后向信息交互总线发送所述数据包,同时将所述数据包缓存在本地内存中。
[0013]其中较优地,所述数据包在本地内存中按照Key-Value的形式进行存储,其中包号为Key,数据包为value。
[0014]其中较优地,如果出现丢包的情形,数据接收端向数据发送端发送指定数据包的包请求信息,所述数据发送端接收到所述包请求信息之后,根据所述包请求信息中解析出的包号从本地内存中找到指定数据包并向信息交互总线发送,从而向所述数据接收端补发指定数据包。
[0015]其中较优地,从前置向终端发送下行数据时,公网信息传输I接收来自前置的原始报文,根据原始报文调用校验算法得到校验码I,将校验码I追加至原始报文的最后字段,作为新报文并向信息交互总线发送。
[0016]所述新报文通过信息交互总线传输到公网信息传输II,所述公网信息传输II解析出原始报文及校验码I,调用校验算法得到校验码II ;如果校验码I与校验码II相同,则将原始报文透传至终端。
[0017]其中较优地,从终端向前置发送上行数据时,公网信息传输II接收来自终端的原始报文,根据原始报文调用校验算法得到校验码III,将校验码III追加至原始报文的最后字段,作为新报文并向信息交互总线发送。
[0018]所述新报文通过信息交互总线传输到公网信息传输I,所述公网信息传输I解析出原始报文及校验码III,调用校验算法得到校验码IV ;如果校验码III与校验码IV相同,则将原始报文透传至前置。
[0019]与现有技术相比较,本发明所提供的公网信息高效传输方法解决了接入终端数量大时传输效率下降的问题,确保在大量终端接入时,传输报文完整、效率高效、性能稳定。
【附图说明】
[0020]图1为本公网信息高效传输方法所采用的总体信息传输架构;
[0021]图2为公网信息传输I的处理流程图;
[0022]图3为公网信息传输II的处理流程图;
[0023]图4为针对下行数据传输的处理流程图一;
[0024]图5为针对下行数据传输的处理流程图二 ;
[0025]图6为针对上行数据传输的处理流程图一;
[0026]图7为针对上行数据传输的处理流程图二。
【具体实施方式】
[0027]下面结合附图和具体实施例对本发明的技术内容做进一步的详细说明。
[0028]在配电自动化系统接入大量终端时,为了确保配电数据通过公网的传输效率以及传输报文的完整性和正确性,解决接入大量终端时传输效率下降的问题,本发明采用了Epoll模型,结合信息交互总线的使用实现了前置与终端之间的跨区通信。
[0029]图1显示了本发明所采用的总体信息传输架构。其中,所谓终端是指采集开关、变压器等电力设备信息的装置,部署在公网区。所谓前置是指针对终端的数据采集装置,部署在电力综合数据网中的安全区。在本发明中,上行数据传输是指前置向终端发送报文,而下行数据传输是指终端向前置发送报文。信息交互总线用于实现电力系统中公网区与安全区之间的跨区通信,完成数据的跨区传输。对于前置,公网信息传输I相当于模拟终端;对于终端,公网信息传输II相当于模拟前置。通过公网信息传输1、信息交互总线、公网信息传输II的相互配合,实现了前置与终端之间的跨区通信。
[0030]本发明在实现公网信息高效传输时,首先采用了 Epoll模型,用触发机制取代了现在技术中常用的轮询机制。在高并发服务器中,轮询机制是最耗时间的操作之一。Epoll模型是指Linux架构下多路复用的1接口。它是基于I/O的事件通知机制,由系统通知哪些socket触发了那些相关I/O事件,事件中包含对应的文件描述符以及事件类型,这样应用程序可以针对事件以及事件的资源做相应的处理。相比原先的SELECT模型(前置主动依次检查各个终端),变成被动等待系统告知处于活跃状态的socket (对应于需要发送数据的终端),性能提升不少(前置不需要依次遍历所有的终端,而只是对存在数据发送需求的终端进行处理)。因此,采用Epoll模型能显著地减少应用程序在大量并发连接中少量连接活跃的情况下CPU的利用率,提高了应用程序的数据传输效率。
[0031]Epoll模型主要负责对大量终端的通信请求进行及时处理,完成前置与大量终端之间的数据交互。其具体的实现步骤如下:
[0032](a)使用epoll_create O函数创建文件描述,设定将可管理的最大socket描述符数目。
[0033](b)创建与印oil关联的接收线程,应用程序可以创建多个接收线程来处理epoll上的读通知事件,线程的数量依赖于终端数量的具体需要。
[0034](c)创建一个侦听socket描述符ListenSock ;将该描述符设定为非阻塞模式,调用ListenO函数在套接字上侦听有无新的连接请求,在epoll_event结构中设置要处理的事件类型EP0LLIN,工作方式为印oll_ET,以提高工作效率,同时使用印oll_ctl O注册事件,最后启动网络监视线程。
[0035](d)网络监视线程启动循环,epoll_wait O等待epoll事件发生。
[0036](e)如果epoll事件表明有新的连接请求,则调用accept O函数,将相应终端的socket描述符添加到epoll_data联合体,同时设定该socket描述符为非阻塞,并在epoll_event结构中设置要处理的事件类型为读和写,工作方式为epoll_ET.
[0037](f)如果epoll事件表明socket描述符上有数据可读,则将该socket描述符加入
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1