CN101179552A - 一种处理用户数据协议消息的方法及其系统 - Google Patents
一种处理用户数据协议消息的方法及其系统 Download PDFInfo
- Publication number
- CN101179552A CN101179552A CNA2007101248589A CN200710124858A CN101179552A CN 101179552 A CN101179552 A CN 101179552A CN A2007101248589 A CNA2007101248589 A CN A2007101248589A CN 200710124858 A CN200710124858 A CN 200710124858A CN 101179552 A CN101179552 A CN 101179552A
- Authority
- CN
- China
- Prior art keywords
- user data
- data protocol
- protocol information
- thread
- message
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种处理用户数据协议消息的方法及其系统,应用于通信技术领域,该系统包括步骤:UDP消息接收线程,用于接收并输出UDP消息,及数据处理线程;其中,该系统还包括:UDP消息数据链表,用于接收并保存UDP消息接收线程输出的UDP消息;及转发数据线程,用于读取保存在UDP消息数据链表中的UDP消息,并且将该UDP消息输出至数据处理线程;所述数据处理线程,用于处理所述用户数据协议消息,并输出用户数据协议消息回应包。采用本发明技术方案,可以极大地减少UDP消息接收线程的所处理的事务,解决了此处的性能瓶颈问题,同时通过设立专门的数据处理线程,增强了UDP数据处理的能力。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种处理用户数据协议消息的方法及其系统。
背景技术
在电信运营商运行的大型业务软件系统,往往采用“负荷分担负载均衡,,的思想来组织架构。基于这一思想,系统中软件大多采用多进程多线程模式,运行软件的服务器采用多核处理器架构,这样可以获得较高的性价比和可靠性。所以研究多核处理器架构下的消息处理方法,尽可能地充分利用多核处理器的处理能力,从而提升业务处理性能,这具有很好的现实意义。
作为服务器端的设备在接收处理用户数据协议(UDP)消息时,传统的处理模式是一个线程P从它绑定的UDP端口接收到UDP消息,之后有两种处理方式:
1、线程P处理完毕后直接发出UDP回应包;
2、线程P调用系统消息发送函数将UDP消息发送给一个或多个处理线程,处理结束后线程P或者处理线程发出UDP回应包。
其中,第1种方式中,线程P的消息传递能力受制于单个线程的性能;第2种方式中,线程P与其他线程之间瓶颈制约着消息的传递,因此,以上两种方式均没有最大的发挥线程P的UDP消息接收能力,线程P的性能瓶颈都出现在UDP接收之后的处理过程中。
因此,现有技术有待于完善和发展。
发明内容
本发明的目的在于提供一种处理用户数据协议消息的系统,该系统可以发挥线程接收UDP消息能力,解决UDP消息处理过程中出现的消息传递性能瓶颈;为此,本发明还提供一种处理用户数据协议消息的方法。
为了解决上述目的,本发明系统采用如下技术方案,其包括:
用户数据协议消息接收线程,绑定在用户数据协议端口上,用于初始化所述用户数据协议端口及接收用户数据协议消息,并且输出该用户数据协议消息,及数据处理线程;
其特征在于,该系统还包括:
用户数据协议消息数据链表,用于接收并保存所述用户数据协议消息接收线程输出的用户数据协议消息;及
转发数据线程,用于读取保存在所述用户数据协议消息数据链表中的用户数据协议消息,并且将该用户数据协议消息输出至所述数据处理线程;
所述数据处理线程,用于处理所述用户数据协议消息,并输出用户数据协议消息回应包。
所述系统,其中,所述用户数据协议消息数据链表数目为一个或多个,并且所述转发数据线程及所述数据处理线程的数目与所述用户数据协议消息数据链表的数目相适配。
所述系统,其中,所述用户数据协议消息是采用轮循式保存到所述用户数据协议消息数据链表中。
所述系统,其中,所述转发数据线程采用循环周期式读取保存在所述用户数据协议消息数据链表中的用户数据协议消息。
所述系统,其中,所述转发数据线程循环读取所述用户数据协议消息的初始循环周期为100毫秒。
本发明还提供一种处理用户数据协议消息的方法,包括如下步骤:
A、将用户数据协议消息接收线程绑定在用户数据协议端口上;
B、所述用户数据协议消息接收线程从所述用户数据协议端口接收用户数据协议消息,并且保存该用户数据协议消息;
C、转发数据线程读取并判断出所述用户数据协议消息合法后,将该用户数据协议消息转发至数据处理线程;
D、所述数据处理线程接收并处理该用户数据协议消息,并且判断出需要发送用户数据协议消息回应包后,该数据处理线程发送所述用户数据协议消息回应包。
所述方法,其中,所述步骤B中,所述用户数据协议消息保存至用户数据协议消息数据链表。
所述方法,其中,所述用户数据协议消息是采用轮循式保存到所述用户数据协议消息数据链表中。
所述方法,其中,所述步骤C中,所述转发数据线程采用循环周期式读取所保存的用户数据协议消息。
所述方法,其中,所述循环周期的设定包括如下步骤:
C1、设定初始化循环周期;
C2、测定此时处理所述用户数据协议消息的最高性能;
C3、减少所述循环周期,并测定当前处理所述用户数据协议消息的最高性能;
C4、判断当前测定的最高性能比上一次测定的最高性能是否有所提高;
C5、如果否,则记录上一次设定的循环周期为最终的循环周期。
本发明采用多线程UDP消息数据处理模式,消息接收线程不再是直接发送消息数据给数据处理线程,而是将数据写入消息数据链表中后,再由转发数据线程从UDP数据链表中定时循环读出UDP数据,送往数据处理线程;同时,UDP消息接收线程单元也不再直接发送UDP回应包,而是通过数据处理线程发出UDP回应包。通过这些机制,可以极大地减少UDP消息接收线程的所处理的事务,解决了此处的性能瓶颈问题,同时通过设立专门的数据处理线程,增强了UDP数据处理的能力。
附图说明
图1是本发明的多核处理器架构下,UDP消息处理模式结构示意图;
图2是本发明的UDP消息数据处理方法流程图;
图3是本发明的转发数据线程循环周期设定方法流程图。
具体实施方式
下面结合附图,对本发明的较佳实施例作进一步详细说明。
如图1所示,本发明提供了一种处理用户数据协议消息的系统,其采用多核处理器架构,该系统包括用户数据协议(UDP)消息接收线程110、UDP数据链表、转发数据线程及数据处理线程;其中,在本实施例中,UDP消息数据链表的数目为10个,这10个链表数目组成一个UDP消息数据链表组120,与所述UDP消息接收线程110交互适配连接,同时,所述转发数据线程及数据处理线程的数目分别为10个,且分别组成转发数据线程组130及数据处理线程组140,而所述转发数据线程及数据处理线程之间相互交互适配连接,且所述转发数据线程与所述UDP消息数据链表之间交互适配连接。
其中,所述UDP消息接收线程110负责初始化并绑定UDP端口,接收发往该UDP端口的UDP消息,并将该UDP消息轮循式写入UDP消息数据链表中。
其中,所述UDP消息数据链表组120用于接收并保存所述UDP消息,且将第1个UDP消息存放到UDP消息数据链表1中,第2个UDP消息存到UDP消息数据链表2中,其它依次类推;当第10UDP消息存放到UDP消息数据链表1中后,紧接着轮征到的第11个UDP消息又存放到UDP消息数据链表1中,第12个UDP消息又存放到UDP消息数据链表2中,采用如此轮循式保存UDP消息。
其中,所述转发数据线程组130负责从UDP消息数据链表组120中读取UDP消息,然后将该UDP消息转发至数据处理线程组140中,且转发数据线程1负责从UDP消息数据链表1中读取UDP消息,然后将该UDP消息转发至数据处理线程1,同时从UDP消息数据链表1中将读出的UDP消息数据删除掉,并且定期循环式地读取UDP消息;同理,转发数据线程2负责从UDP消息数据链表2中读取UDP消息,然后将该UDP消息转发至数据处理线程2,同时从UDP消息数据链表2中将读出的UDP消息数据删除掉,,并且定期循环式地读取UDP消息;其它依次类推。
其中,所述数据处理线程组140负责处理所述转发数据线程组130发出的UDP消息的业务流程,并且根据需要发出UDP消息回应包。在所述数据处理线程组140处理UDP消息时,数据处理线程1负责处理转发数据线程1发出的UDP消息的业务流程,并相应地发出UDP回应包,并且定期循环式地UDP消息回应包;同理,数据处理线程2负责处理转发数据线程2发出的UDP消息的业务流程,并相应地发出UDP回应包,并且定期循环式地UDP消息回应包;其它依次类推。
本发明提供了一种处理用户数据协议消息的方法,请参阅附图2所示,其实现流程包括如下步骤:
201、将UDP消息接收线程绑定到UDP端口;
202、UDP消息接收线程接收UDP端口的UDP消息;
203、UDP消息接收线程将UDP消息轮循式地保存到UDP消息数据链表中;
204、转发数据线程循环周期式地从对应的UDP消息数据链表中读出保存的UDP消息,并从UDP消息数据链表中删除所读出的UDP消息;
205、转发数据线程判断读取的UDP消息是否合法,如果合法,则转入步骤206,否则丢弃此UDP消息,转入步骤210;
206、转发数据线程发送UDP消息至对应的数据处理线程;
207、数据处理线程接收并处理所述UDP消息;
208、数据处理线程处理完所述UDP消息后,判断是否需要发送UDP消息回应包,如果是,则转入步骤209,否则转入步骤210;
209、数据处理线程发出UDP消息回应包;
210、流程结束。
其中,步骤204中,当转发数据线程循环周期式读取UDP消息时,请参阅附图3所示,该循环周期的设定方法包括如下步骤:
301、设定初始化循环周期为100毫秒;
302、测定此时处理UDP消息的最高性能;
303、循环周期减小1毫秒;
304、测定当前处理UDP消息的最高性能;
305、判断当前测定的最高性能比上一次测定的最高性能是否有所提高,如果是,则转入步骤303,否则转入步骤306;
306、记录上一次设定的循环周期,即为最终得到的循环周期时间;
307、流程结束。
综上所述,本发明采用多线程UDP消息数据处理模式,消息接收线程不再是直接发送消息数据给数据处理线程,而是将数据写入消息数据链表中后,再由转发数据线程从UDP数据链表中定时循环读出UDP数据,送往数据处理线程;同时,UDP消息接收线程单元也不再直接发送UDP回应包,而是通过数据处理线程发出UDP回应包。通过这些机制,可以极大地减少UDP消息接收线程的所处理的事务,解决了此处的性能瓶颈问题,同时通过设立专门的数据处理线程,增强了UDP数据处理的能力。
应当理解的是,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,而所有这些改进和变换都应属于本发明所附权利要求的保护范围。
Claims (10)
1.一种处理用户数据协议消息的系统,其包括:
用户数据协议消息接收线程,绑定在用户数据协议端口上,用于初始化所述用户数据协议端口及接收用户数据协议消息,并且输出该用户数据协议消息,及数据处理线程;
其特征在于,该系统还包括:
用户数据协议消息数据链表,用于接收并保存所述用户数据协议消息接收线程输出的用户数据协议消息;及
转发数据线程,用于读取保存在所述用户数据协议消息数据链表中的用户数据协议消息,并且将该用户数据协议消息输出至所述数据处理线程;
所述数据处理线程,用于处理所述用户数据协议消息,并输出用户数据协议消息回应包。
2.根据权利要求1所述的系统,其特征在于,所述用户数据协议消息数据链表数目为一个或多个,并且所述转发数据线程及所述数据处理线程的数目与所述用户数据协议消息数据链表的数目相适配。
3.根据权利要求1或2所述的系统,其特征在于,所述用户数据协议消息是采用轮循式保存到所述用户数据协议消息数据链表中。
4.根据权利要求1所述的系统,其特征在于,所述转发数据线程采用循环周期式读取保存在所述用户数据协议消息数据链表中的用户数据协议消息。
5.根据权利要求4所述的系统,其特征在于,所述转发数据线程循环读取所述用户数据协议消息的初始循环周期为100毫秒。
6.一种处理用户数据协议消息的方法,包括如下步骤:
A、将用户数据协议消息接收线程绑定在用户数据协议端口上;
B、所述用户数据协议消息接收线程从所述用户数据协议端口接收用户数据协议消息,并且保存该用户数据协议消息;
C、转发数据线程读取并判断出所述用户数据协议消息合法后,将该用户数据协议消息转发至数据处理线程;
D、所述数据处理线程接收并处理该用户数据协议消息,并且判断出需要发送用户数据协议消息回应包后,该数据处理线程发送所述用户数据协议消息回应包。
7.根据权利要求6所述的方法,其特征在于,所述步骤B中,所述用户数据协议消息保存至用户数据协议消息数据链表。
8.根据权利要求7所述的方法,其特征在于,所述用户数据协议消息是采用轮循式保存到所述用户数据协议消息数据链表中。
9.根据权利要求6所述的方法,其特征在于,所述步骤C中,所述转发数据线程采用循环周期式读取所保存的用户数据协议消息。
10.根据权利要求9所述的方法,其特征在于,所述循环周期的设定包括如下步骤:
C1、设定初始化循环周期;
C2、测定此时处理所述用户数据协议消息的最高性能;
C3、减少所述循环周期,并测定当前处理所述用户数据协议消息的最高性能;
C4、判断当前测定的最高性能比上一次测定的最高性能是否有所提高;
C5、如果否,则记录上一次设定的循环周期为最终的循环周期。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2007101248589A CN101179552A (zh) | 2007-12-04 | 2007-12-04 | 一种处理用户数据协议消息的方法及其系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2007101248589A CN101179552A (zh) | 2007-12-04 | 2007-12-04 | 一种处理用户数据协议消息的方法及其系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101179552A true CN101179552A (zh) | 2008-05-14 |
Family
ID=39405639
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2007101248589A Pending CN101179552A (zh) | 2007-12-04 | 2007-12-04 | 一种处理用户数据协议消息的方法及其系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101179552A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101321089B (zh) * | 2008-07-07 | 2011-04-20 | 中兴通讯股份有限公司 | 一种电信网管系统中性能数据的入库方法 |
CN103077057A (zh) * | 2012-12-31 | 2013-05-01 | 浙江创佳数字技术有限公司 | 一种基于Android智能机顶盒的Loader方法 |
CN108462682A (zh) * | 2017-02-22 | 2018-08-28 | 成都鼎桥通信技术有限公司 | 初始对话协议sip消息的分发方法和装置 |
-
2007
- 2007-12-04 CN CNA2007101248589A patent/CN101179552A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101321089B (zh) * | 2008-07-07 | 2011-04-20 | 中兴通讯股份有限公司 | 一种电信网管系统中性能数据的入库方法 |
CN103077057A (zh) * | 2012-12-31 | 2013-05-01 | 浙江创佳数字技术有限公司 | 一种基于Android智能机顶盒的Loader方法 |
CN103077057B (zh) * | 2012-12-31 | 2016-08-03 | 浙江创佳数字技术有限公司 | 一种基于Android智能机顶盒的Loader方法 |
CN108462682A (zh) * | 2017-02-22 | 2018-08-28 | 成都鼎桥通信技术有限公司 | 初始对话协议sip消息的分发方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103856440B (zh) | 一种基于分布式总线的消息处理方法、服务器和系统 | |
CN101521683B (zh) | 一种网络游戏系统及其接入方法、客户端通讯方法 | |
CN104484295B (zh) | 并行计算机系统中基于接收方滑动窗口的数据传输方法 | |
CN108881008A (zh) | 一种数据传输的方法、装置和系统 | |
CN102892089A (zh) | 消息推送处理方法、装置和系统 | |
CN107659515A (zh) | 报文处理方法、装置、报文处理芯片及服务器 | |
CN103441937A (zh) | 组播数据的发送方法和接收方法 | |
CN109547162B (zh) | 基于两套单向边界的数据通信方法 | |
CN109327386A (zh) | 一种链路聚合方法、装置、设备及可读存储介质 | |
CN107302499A (zh) | 无需拷贝报文缓存的nfv协议报文收发方法 | |
CN106953797A (zh) | 一种基于动态连接的rdma数据传输的方法与装置 | |
CN110505244A (zh) | 远程隧道访问技术网关以及服务器 | |
CN102916902B (zh) | 数据存储方法及装置 | |
CN101494579A (zh) | 总线调度装置及方法 | |
CN107666474A (zh) | 一种网络报文处理方法、装置及网络服务器 | |
CN104270344A (zh) | 万兆网闸 | |
CN106487864A (zh) | 数据连接的建立方法、服务端及移动终端 | |
CN101179552A (zh) | 一种处理用户数据协议消息的方法及其系统 | |
CN104168273A (zh) | 一种瘦ap模式下实现tcp代理的方法及系统 | |
CN105357148A (zh) | 避免网络交换芯片输出报文乱序的方法及系统 | |
CN101582884B (zh) | 基于fpga的3g数据包重组系统及方法 | |
CN101742701A (zh) | 处理at命令的装置、方法及系统 | |
CN100576787C (zh) | 一种在维护终端与后台设备之间进行大数据量安全传送的方法 | |
CN107911239A (zh) | 一种网卡绑定模式管理方法及装置 | |
CN104636210B (zh) | 一种实现进程间数据交换的方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Open date: 20080514 |