报文转发系统及方法
【技术领域】
[0001]本发明涉及一种报文转发系统及方法。
【背景技术】
[0002]随着网络通信业务的迅猛发展,多媒体业务的种类和应用越来越多,各业务之间通信的数据流量也越来越大,当多个客户端的多个业务同时与服务器端进行对话时,服务器端在转发消息时会因为业务数据流量较大而产生堵塞,尤其对时间延迟较敏感的语音类报文而言,其堵塞现象会更明显。当消息在服务端堵塞时,会使得接收端接收的消息产生延迟,从而影响用户的业务体验,转发效率也不高。
【发明内容】
[0003]本发明要解决的技术问题是克服现有技术中服务器端在转发报文时会因报文的数据流量较大而容易堵塞影响转发效率的缺陷,提供一种报文转发系统及方法。
[0004]本发明是通过下述技术方案来解决上述技术问题的:
[0005]本发明提供了一种报文转发系统,其特点在于,包括一会话管理模块、一报文处理模块、一第一判断模块、一第二判断模块、一接收队列及一发送队列,所述发送队列包括一优先队列及一普通队列;
[0006]所述会话管理模块用于与多个客户端建立会话,为每个客户端分配IP地址及端口号,并将每个客户端发送的报文放入所述接收队列中;
[0007]所述报文处理模块用于取出所述接收队列中的报文,并从取出的报文中解析出客户端的IP地址和端口号以及报文的协议类型和报文的长度;
[0008]所述第一判断模块用于判断解析出的IP地址是否为一第一 IP地址以及端口号是否为一第一端口号,在判断均为是时,调用所述第二判断模块,否则,调用所述报文处理模块将取出的报文放入所述普通队列中;
[0009]所述第二判断模块用于判断解析出的协议类型是否为一第一协议类型以及长度是否为一第一长度,在判断均为是时,调用所述报文处理模块将取出的报文放入所述优先队列中,否则,调用所述报文处理模块将取出的报文放入所述普通队列中;
[0010]所述报文处理模块还用于优先转发所述优先队列中的报文,然后再转发所述普通队列中的报文。
[0011]在本方案中,会话管理模块在与多个客户端进行会话时,第一判断模块与第二判断模块会对多个客户端发出的报文进行筛选,并调用报文处理模块将满足判断条件的报文放入优先队列进行优先转发,然后再转发普通队列内的报文,这样能够及时将一些需要立刻转发的报文进行优先转发,避免了大数据流量的报文在转发端产生堵塞的情况。
[0012]其中,在判断时可以先针对报文的地址来源即IP (互联网协议)地址和端口号进行优先转发。该第一 IP地址及该第一端口号可以是某几个客户端的IP地址和端口号,即只要是某个客户端的某个端口发出的报文,就可以作为进一步衡量是否需要优先转发的判断基础;进一步地,由于客户端发出的报文类型不一,报文自身的详细信息也不同,根据用户需要对一些特定类型或特定长度的报文进行优先转发,如对时延敏感的报文的协议类型,报文长度较大或较小的,进行进一步筛选,这样能够精确地定位某一种或某几种报文,并对该些报文进行实际优先转发,而不会形成误转发的情况。
[0013]较佳地,所述第一协议类型为UDP (用户数据协议)协议。此处的第一协议类型可以是用户设定的音频类协议,视频类协议或其它的私有协议等。
[0014]较佳地,所述第一长度的范围为O?250字节。
[0015]本发明的目的在于还提供了一种报文转发方法,其特点在于,其利用上述报文转发系统实现,包括以下步骤:
[0016]S1、所述会话管理模块与多个客户端建立会话,为每个客户端分配IP地址及端口号,并将每个客户端发送的报文放入所述接收队列;
[0017]S2、所述报文处理模块取出所述接收队列中的报文并从取出的报文中解析出客户端的IP地址和端口号以及报文的协议类型和报文的长度;
[0018]S3、所述第一判断模块判断解析出的IP地址是否为所述第一 IP地址,端口号是否为所述第一端口号,若判断均为是,则执行步骤S4,否则,调用所述报文处理模块将所述报文放入所述普通队列,然后执行步骤S5 ;
[0019]S4、所述第二判断模块判断解析出的协议类型是否为所述第一协议类型,报文的长度是否为所述第一长度,若判断均为是,则调用所述报文处理模块将所述报文放入所述优先队列,否则,调用所述报文处理模块将所述报文放入所述普通队列;
[0020]S5、所述报文处理模块优先转发所述优先队列内的报文,然后再转发所述普通队列内的报文。
[0021 ] 较佳地,所述第一协议类型为UDP协议。
[0022]较佳地,所述第一长度的范围为O?250字节。
[0023]本发明的积极进步效果在于:通过将客户端发送的报文经过两次筛选,使得本方案的报文转发系统及方法能够及时将一些需要立刻转发的报文进行优先转发,避免了大数据流量的报文在转发端产生堵塞的情况,还能提高报文转发的精确性和转发效率。
【附图说明】
[0024]图1为本发明实施例1的报文转发系统的结构示意图。
[0025]图2为本发明实施例1的报文转发方法的流程图。
【具体实施方式】
[0026]下面通过实施例的方式进一步说明本发明,但并不因此将本发明限制在所述的实施例范围之中。
[0027]实施例1
[0028]本实施例提供一种报文转发系统,如图1所不,包括一会话管理模块1、一报文处理模块2、一第一判断模块3、一第二判断模块4、一接收队列5及一发送队列6,所述发送队列包括一优先队列60及一普通队列61 ;
[0029]会话管理模块I用于与多个客户端建立会话,为每个客户端分配IP地址及端口号,并将每个客户端发送的报文放入接收队列5中;
[0030]报文处理模块2用于取出接收队列5中的报文,并从取出的报文中解析出客户端的IP地址和端口号以及报文的协议类型和报文的长度;
[0031]第一判断模块3用于判断解析出的IP地址是否为一第一 IP地址以及端口号是否为一第一端口号,在判断均为是时,调用第二判断模块4,否则,调用报文处理模块2将取出的报文放入普通队列61中;
[0032]第二判断模块4用于判断解析出的协议类型是否为一第一协议类型以及长度是否为一第一长度,其中,该第一协议类型为m)P协议,该第一长度的范围为O?250字节,在判断均为是时,调用报文处理模2块将取出的报文放入优先队列60中,否则,调用报文处理模块2将取出的报文放入普通队列61中;
[0033]报文处理模块2还用于优先转发优先队列60中的报文,然后再转发普通队列61中的报文。