首页 专利交易 科技果 科技人才 科技服务 国际服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

基于IOCP机制结合池分片的网络数据通信系统和方法 

买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!

申请/专利权人:湖北鸿云科技股份有限公司

摘要:本发明涉及一种基于IOCP机制结合池分片的网络数据通信系统,其特征在于:它包括网络事件监听模块、网络连接响应模块、网络事件预处理模块、客户端对象片池调度模块、内存片池调度模块、网络事件请求调度模块、网络事件响应模块、业务请求回调模块和数据发送模块,本发明能避免因资源抢占而造成多线程并发变成单线程执行的情况,从根本上提高了系统性能、有效利用多核、多线程所带来的优势。

主权项:1.一种基于IOCP机制结合池分片的网络数据通信系统,其特征在于:它包括网络事件监听模块1、网络连接响应模块2、网络事件预处理模块3、客户端对象片池调度模块4、内存片池调度模块5、网络事件请求调度模块6、网络事件响应模块7、业务请求回调模块8和数据发送模块9,其中,网络事件监听模块1的客户端接入事件通信端连接网络连接响应模块2的客户端接入事件通信端,网络事件监听模块1的网络数据收发事件通信端连接网络事件预处理模块3的网络数据收发事件通信端,网络连接响应模块2的客户端对象资源通信端连接客户端对象片池调度模块4的客户端对象资源通信端,网络连接响应模块2的实例化客户端对象数据接收事件投递操作输出端连接网络事件监听模块1的网络事件监听输入端;所述网络事件响应模块7的内存资源通信端连接内存片池调度模块5的内存资源通信端,网络事件响应模块7的数据接收事件投递操作输出端连接网络事件监听模块1的网络事件监听输入端;网络连接响应模块2的内存资源通信端连接内存片池调度模块5的内存资源通信端,网络事件预处理模块3的内存资源通信端连接内存片池调度模块5的内存资源通信端,网络事件预处理模块3的网络数据接收事件调度请求输出端连接网络事件请求调度模块6的网络数据接收事件调度请求输入端,网络事件请求调度模块6的网络事件派发端连接网络事件响应模块7的网络事件输入端,网络事件响应模块7的网络数据请求信息输出端连接业务请求回调模块8的网络数据请求信息输入端,业务请求回调模块8具有网络请求输出端,所述数据发送模块9的数据输入端连接业务端的网络响应数据输出端,所述数据发送模块9的数据发送输出端连接网络事件监听模块1的事件监听输入端。

全文数据:基于IOCP机制结合池分片的网络数据通信系统和方法技术领域[0001]本发明涉及计算机技术领域,具体涉及一种基于IOCPIOCompletionPort机制结合池分片的网络数据通信系统和方法。背景技术[0002]在服务器编程中,为了尽可能的减小系统开销,提升性能,通常会将频繁使用的资源,建立成一个资源池,在模块初始化的时候,将所有资源从物理机内存中分配好,在使用的时候,从资源池中动态获取,使用完了再放入资源池中,从而避免了频繁分配释放物理机内存的相关操作,减少系统开销。[0003]然而,在实际运用过程中,针对相关资源池操作的线程,通常并不是一个,而是多个线程并发对该资源池进行操作,因此,就会发生资源抢占的情况,解决该问题的方法是,对该资源池进行加锁,限定同一时刻只允许一个线程对该资源池进行操作,以保证资源池数据的正确性及系统的稳定性。其弊端是,将会让其它线程处于资源竞争及阻塞状态,在加锁的这一瞬间,高性能的多线程并发就变成了低性能的单线程操作,从而限制了系统整体性能。发明内容[0004]本发明的目的在于提供一种基于I0CP机制结合池分片的网络数据通信系统和方法。该系统和方法能避免因资源抢占而造成多线程并发性能下降的情况,从根本上提高了系统性能、有效利用多核、多线程所带来的优势。[0005]为实现上述目的,本发明所设计的基于I0CP机制结合池分片的网络数据通信系统,其特征在于:它包括网络事件监听模块、网络连接响应模块、网络事件预处理模块、客户端对象片池调度模块、内存片池调度模块、网络事件请求调度模块、网络事件响应模块、业务请求回调模块和数据发送模块,其中,网络事件监听模块的客户端接入事件通信端连接网络连接响应模块的客户端接入事件通信端,网络事件监听模块的网络数据收发事件通信端连接网络事件预处理模块的网络数据收发事件通信端,网络连接响应模块的客户端对象资源通信端连接客户端对象片池调度模块的客户端对象资源通信端,网络连接响应模块的实例化客户端对象数据接收事件投递操作输出端连接网络事件监听模块的网络事件监听输入端;[0006]所述网络事件响应模块的内存资源通信端连接内存片池调度模块的内存资源通信端,网络事件响应模块的数据接收事件投递操作输出端连接网络事件监听模块的网络事件监听输入端;[0007]网络连接响应模块的内存资源通信端连接内存片池调度模块的内存资源通信端,网络事件预处理模块的内存资源通信端连接内存片池调度模块的内存资源通信端,网络事件预处理模块的网络数据接收事件调度请求输出端连接网络事件请求调度模块的网络数据接收事件调度请求输入端,网络事件请求调度模块的网络事件派发端连接网络事件响应模块的网络事件输入端,网络事件响应模块的网络数据请求信息输出端连接业务请求回调模块的网络数据请求信息输入端,业务请求回调模块具有网络请求输出端,所述数据发送模块的数据输入端连接业务端的网络响应数据输出端,所述数据发送模块的数据发送输出端连接网络事件监听模块的事件监听输入端。[0008]一种利用上述系统的基于IOCP机制结合池分片的网络数据通信方法,其特征在于,它包括如下步骤:[0009]步骤1:所述网络事件监听模块监听互联网中的客户端接入事件和网络数据收发事件,并将监听到的客户端接入事件发送给网络连接响应模块,将监听到的网络数据收发事件发送给网络事件预处理模块;[0010]步骤2:所述网络连接响应模块根据接收到的客户端接入事件从客户端对象片池调度模块中获取客户端对象实例,并与接入的客户端对象进行映射,形成该接入客户端的实例对象;网络连接响应模块根据新接入的客户端的实体对象从内存片池调度模块中取出对应的内存资源,并投递一次网络接收操作到网络事件监听模块,等待数据接收事件的到来;[0011]步骤3:所述网络事件预处理模块根据到达的数据发送事件,将该发送事件所对应的发送缓冲区释放至内存片池调度模块即完成数据发送事件,同时,所述网络事件预处理模块根据到达的数据接收事件,将该数据接收事件转发至网络事件请求调度模块处理;所述数据发送模块根据业务层对相关网络请求的响应,将响应的相关数据,进行发送并告知网络事件监听模块对此数据发送状态的监听;[0012]步骤4:网络事件请求调度模块将接收到的数据接收事件派发到网络事件响应模块,网络事件响应模块根据接收到的数据接收事件从内存片池调度模块中获取对应的内存资源,并将其投递至网络事件监听模块以进行一次数据接收投递操作,以便监听该客户端的后续数据接收事件的到来;网络事件响应模块还将数据接收事件对应的内存资源通过业务请求回调模块转给业务层做解析与处理。[0013]通常情况是,多个线程对应一个资源池,在多线程并发的时候,为保证数据原子性,会对该资源池做互锁操作,即在同一时刻只允许一个线程访问,那么,其余线程则会等待该线程访问完闭之后才能去访问此资源池,既然其余线程有可能进入等待状态,则会因等待状态而降低处理能力。[0014]本方案的策略是,多个线程对应一个片池调度模块,该片池调度模块内分成若干资源池,当多个线程同时访问资源池时,片池调度模块会进可能均匀的让多个线程分别访问不同的资源池,如此,就规避了多线程访问资源池导致的抢占竞争等待现象,从而提高系统处理能力。[0015]本发明将资源池,进行分片,即将一个资源池分成N个池片,N通常等于对该资源池进行操作的线程数量,进行池分片后,对于每个线程来说,其都相当于拥有了一个私有的资源池,绝大部分情况下,将会避免因资源抢占而造成多线程并发变成单线程执行的情况,从根本上提高了系统性能、有效利用多核、多线程所带来的优势。当多线程并发期间,通过上述池分片思想降低资源抢占、竞争、等待时间后,更能充分使用多线程技术,从而提高系统事件处理能力以及数据转发能力,进而提升业务系统的整体性能。附图说明[0016]图1为本发明中的结构框图。[0017]其中,1一网络事件监听模块、2—网络连接响应模块、3—网络事件预处理模块、4一客户端对象片池调度模块、5—内存片池调度模块、6—网络事件请求调度模块、7—网络事件响应模块、8—业务请求回调模块、9一数据发送模块。具体实施方式[0018]以下结合附图和具体实施例对本发明作进一步的详细说明:[0019]如图1所述的基于I0CP机制结合池分片的网络数据通信系统,其特征在于:它包括网络事件监听模块1、网络连接响应模块2、网络事件预处理模块3、客户端对象片池调度模块4、内存片池调度模块5、网络事件请求调度模块6、网络事件响应模块7、业务请求回调模块8和数据发送模块9,其中,网络事件监听模块1的客户端接入事件通信端连接网络连接响应模块2的客户端接入事件通信端,网络事件监听模块1的网络数据收发事件通信端连接网络事件预处理模块3的网络数据收发事件通信端,网络连接响应模块2的客户端对象资源通信端连接客户端对象片池调度模块4的客户端对象资源通信端,网络连接响应模块2的实例化客户端对象数据接收事件投递操作输出端连接网络事件监听模块1的网络事件监听输入端;[0020]所述网络事件响应模块7的内存资源通信端连接内存片池调度模块5的内存资源通信端,网络事件响应模块7的数据接收事件投递操作输出端连接网络事件监听模块1的网络事件监听输入端;[0021]网络连接响应模块2的内存资源通信端连接内存片池调度模块5的内存资源通信端,网络事件预处理模块3的内存资源通信端连接内存片池调度模块5的内存资源通信端,网络事件预处理模块3的网络数据接收事件调度请求输出端连接网络事件请求调度模块6的网络数据接收事件调度请求输入端,网络事件请求调度模块6的网络事件派发端连接网络事件响应模块7的网络事件输入端,网络事件响应模块7的网络数据请求信息输出端连接业务请求回调模块8的网络数据请求信息输入端,业务请求回调模块8具有网络请求输出端,所述数据发送模块9的数据输入端连接业务端的网络响应数据输出端,所述数据发送模块9的数据发送输出端连接网络事件监听模块1的事件监听输入端。[0022]上述技术方案中,所述网络事件监听模块1用于监听互联网中的客户端接入事件和网络数据收发事件,并将监听到的客户端接入事件发送给网络连接响应模块2,将监听到的网络数据收发事件发送给网络事件预处理模块3。上述事件一般分为三种:接入事件,一个新的用户连接上服务器;数据接收事件,用户向服务器发送数据;数据发送事件,服务器向用户发送数据。[0023]上述技术方案中,所述网络连接响应模块2用于根据接收到的客户端接入事件从客户端对象片池调度模块4中获取客户端对象实例,并与接入的客户端对象进行映射,形成该接入客户端的实例对象;网络连接响应模块2还用于根据新接入的客户端的实体对象从内存片池调度模块5中取出对应的内存资源,并投递一次网络接收操作到网络事件监听模块1,等待数据接收事件的到来。上述客户端实例是指对具体客户端用户的一种抽象描述,在编程的过程当中,针对该客户实例的相关操作即意味着针对某一客户端用户的操作。客户端用户与客户端实例对象是一一映射的关系。[0024]上述技术方案中,所述网络事件预处理模块3用于根据到达的数据发送事件,将该发送事件所对应的发送缓冲区(内存资源)释放至内存片池调度模块5即完成数据发送事件,同时,所述网络事件预处理模块3还用于根据到达的数据接收事件,将该数据接收事件转发至网络事件请求调度模块6处理。[0025]上述技术方案中,所述数据发送模块9用于根据业务层对相关网络请求的响应,将响应的相关数据,进行发送并告知网络事件监听模块1对此数据发送状态的监听。[0026]上述技术方案中,网络事件请求调度模块6用于将接收到的数据接收事件派发到网络事件响应模块7,网络事件响应模块7用于根据接收到的数据接收事件从内存片池调度模块5中获取对应的内存资源,并将其投递至网络事件监听模块1以进行一次数据接收投递操作,以便监听该客户端的后续数据接收事件的到来;网络事件响应模块7还用于将数据接收事件对应的内存资源通过业务请求回调模块8转给业务层做解析与处理。[0027]网络事件监听模块1的主要功能是监听所有的网络事件,包括客户端的连接、数据的收发、客户端断开等一系列网络事件。[0028]网络连接响应模块2的主要功能是处理新连接的客户端,从客户端对象片池中取出一个客户端对象资源,与新客户端相关联,并将其附加到完成端口上,以监听该客户端的后续网络事件。[0029]客户端对象片池调度模块4的主要功能是维护一个客户端对象内存池,以减少系统不断申请、释放内存的相关行为,从而提高系统性能,同时,结合池分片思想,对资源进行有效调度,进一步提高系统性能。[0030]内存片池调度模块5的主要功能是维护一个内存池,以减少系统不断申请、释放内存的相关行为,从而提高系统性能,同时,结合池分片思想,对资源进行有效调度,进一步提尚系统性能。[0031]网络事件预处理模块3的主要功能是处理数据发送、数据接收、客户端断开三种网络事件。客户端断开时,将相关资源释放至资源片池中。对于数据发送,则直接完成。对于数据接收事件,则将该事件传送到网络事件请求调度模块。[0032]网络事件请求调度模块6的功能是对接收到的相关数据,根据分片思想,降低对事件请求时的锁竞争时间,从而更好的调度事件处理模块,提升事件处理的性能。[0033]网络事件响应模块7的主要功能是获取到相应的网络数据后,对相关数据调用业务模块相关接口进行解析,完成解析后,转至业务请求回调模块。[0034]业务请求回调模块8的主要功能是完成网络的解析后,根据解析后的数据包,调用业务逻辑层所实现的相应数据包的响应接口,已完成网络请求。[0035]一种利用上述系统的基于I0CP机制结合池分片的网络数据通信方法,其特征在于,它包括如下步骤:[0036]步骤1:所述网络事件监听模块1监听互联网中的客户端接入事件和网络数据收发事件,并将监听到的客户端接入事件发送给网络连接响应模块2,将监听到的网络数据收发事件发送给网络事件预处理模块3;[0037]步骤2:所述网络连接响应模块2根据接收到的客户端接入事件从客户端对象片池调度模块4中获取客户端对象实例把一个网络用户(实体存在的对象抽象化成一个计算术语中的“类”这个“类”即代表一个网络用户或是某一台机器、某一个人),并与接入的客户端与客户端接入事件对应的对象进行映射,形成该接入客户端的实例对象;网络连接响应模块2根据新接入的客户端的实体对象从内存片池调度模块5中取出对应的内存资源,并投递一次网络接收操作到网络事件监听模块1,等待数据接收事件的到来;[0038]步骤3:所述网络事件预处理模块3根据到达的数据发送事件,将该发送事件所对应的发送缓冲区释放至内存片池调度模块5即完成数据发送事件,同时,所述网络事件预处理模块3根据到达的数据接收事件,将该数据接收事件转发至网络事件请求调度模块6处理;所述数据发送模块9根据业务层对相关网络请求的响应,将响应的相关数据,进行发送并告知网络事件监听模块1对此数据发送状态的监听;[0039]步骤4:网络事件请求调度模块6将接收到的数据接收事件派发到网络事件响应模块7,网络事件响应模块7根据接收到的数据接收事件从内存片池调度模块5中获取对应的内存资源,并将其投递至网络事件监听模块1以进行一次数据接收投递操作,以便监听该客户端的后续数据接收事件的到来;网络事件响应模块7还将数据接收事件对应的内存资源通过业务请求回调模块8转给业务层做解析与处理。[0040]本发明应用于windows环境下,基于该系统所提供的10:?机制,在处理网络数据时,结合池分片思想,予以实现之,从而提供高可靠、高并发、高吞吐量的网络数据传输方法。本方法适用于windows环境下诸多业务服务器,典型的有:信令服务器、数据转发服务器、媒体服务器等[0041]本说明书未作详细描述的内容属于本领域专业技术人员公知的现有技术。

权利要求:1一种基于iocp机制结合池分片的网络数据通彳目系统,其特征在于:匕包括网络事件监听模块(1、网络连接响应模块2、网络事件预处理模块3、客户端对象片池调度模块⑷、内存片池调度模块5、网络事件请求调度模块6、网络事件响应模块7、业^请求回调模块和数据发送模块9,其中,网络事件监听模块⑴的客户端接入事件通彳目端连接网络连接响应模块2的客户端接入事件通信端,网络事件监听模块1的网络数据收发事件通信端连接网络事件预处理模块3的网络数据收发事件通信端,网络连接响应模块2的客户端对象资源通信端连接客户端对象片池调度模块4的客户端对象资源通信端,网络连接响应模块2的实例化客户端对象数据接收事件投递操作输出纟而连接网络事件监听模块⑴的网络事件监听输入端;所述网络事件响应模块7的内存资源通信端连接内存片池调度模块5的内存资源通信端,网络事件响应模块⑺的数据接收事件投递操作输出端连接网络事件监听模块1的网络事件监听输入端;、、i网络连接响应模块2的内存资源通信端连接内存片池调度模块5的内存资源通伯端,网络事件预处理模块⑶的内存资源通信端连接内存片池调度模块5的内存资源通信端,网络事件预处理模块3的网络数据接收事件调度请求输出端连接网络事件请求调度模块^3的网络数据接收事件调度请求输入端,网络事件请求调度模块6的网络事件派发端连接网络事件响应模块⑺的网络事件输入端,网络事件响应模块⑺的网络数据请求信息输出端连接业务请求回调模块⑻的网络数据请求信息输入端,业务请求回调模块⑻具有网络请求输出端,所述数据发送模块9的数据输入端连接业务端的网络响应数据输出端,所述数据发送模块9的数据发送输出端连接网络事件监听模块(1的事件监听输入端。2.根据权利要求1所述的基于I〇CP机制结合池分片的网络数据通信系统,其特征在于:所述网络事件监听模块(1用于监听互联网中的客户端接入事件和网络数据收发事件,并将监听到的客户端接入事件发送给网络连接响应模块2,将监听到的网络数据收发事件发送给网络事件预处理模块3。3.根据权利要求1所述的基于I〇CP机制结合池分片的网络数据通信系统,其特征在于:所述网络连接响应模块⑵用于根据接收到的客户端接入事件从客户端对象片池调度模块⑷中获取客户端对象实例,并与接入的客户端对象进行映射,形成该接入客户端的实例对象;网络连接响应模块2还用于根据新接入的客户端的实体对象从内存片池调度模块5中取出对应的内存资源,并投递一次网络接收操作到网络事件监听模块1,等待数据接收事件的到来。4.根据权利要求1所述的基于I0CP机制结合池分片的网络数据通信系统,其特征在于:其特征在于:所述网络事件预处理模块3用于根据到达的数据发送事件,将该发送事件所对应的发送缓冲区释放至内存片池调度模块5即完成数据发送事件,同时,所述网络事件预处理模块3还用于根据到达的数据接收事件,将该数据接收事件转发至网络事件请求调度模块6处理。5.根据权利要求1所述的基于I0CP机制结合池分片的网络数据通信系统,其特征在于:所述数据发送模块9用于根据业务层对相关网络请求的响应,将响应的相关数据,进行发送并告知网络事件监听模块1对此数据发送状态的监听。6.根据权利要求1所述的基于IOCP机制结合池分片的网络数据通信系统,其特征在于:网络事件请求调度模块6用于将接收到的数据接收事件派发到网络事件响应模块7,网络事件响应模块7用于根据接收到的数据接收事件从内存片池调度模块5中获取对应的内存资源,并将其投递至网络事件监听模块1以进行一次数据接收投递操作,以便监听该客户端的后续数据接收事件的到来;网络事件响应模块7还用于将数据接收事件对应的内存资源通过业务请求回调模块8转给业务层做解析与处理。7.—种利用权利要求1所述系统的基于I0CP机制结合池分片的网络数据通信方法,其特征在于,它包括如下步骤:步骤1:所述网络事件监听模块1监听互联网中的客户端接入事件和网络数据收发事件,并将监听到的客户端接入事件发送给网络连接响应模块2,将监听到的网络数据收发事件发送给网络事件预处理模块3;步骤2:所述网络连接响应模块2根据接收到的客户端接入事件从客户端对象片池调度模块4中获取客户端对象实例,并与接入的客户端对象进行映射,形成该接入客户端的实例对象;网络连接响应模块2根据新接入的客户端的实体对象从内存片池调度模块5中取出对应的内存资源,并投递一次网络接收操作到网络事件监听模块1,等待数据接收事件的到来;步骤3:所述网络事件预处理模块3根据到达的数据发送事件,将该发送事件所对应的发送缓冲区释放至内存片池调度模块⑸即完成数据发送事件,同时,所述网络事件预处理模块⑶根据到达的数据接收事件,将该数据接收事件转发至网络事件请求调度模块6处理;所述数据发送模块9根据业务层对相关网络请求的响应,将响应的相关数据,进行发送并告知网络事件监听模块1对此数据发送状态的监听;步骤4:网络事件请求调度模块6将接收到的数据接收事件派发到网络事件响应模块7,网络事件响应模块7根据接收到的数据接收事件从内存片池调度模块5中获取对应的内存资源,并将其投递至网络事件监听模块1以进行一次数据接收投递操作,以便监听该客户端的后续数据接收事件的到来;网络事件响应模块7还将数据接收事件对应的内存资源通过业务请求回调模块8转给业务层做解析与处理。

百度查询: 湖北鸿云科技股份有限公司 基于IOCP机制结合池分片的网络数据通信系统和方法

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。