一种并发控制方法及装置的制造方法

文档序号:9891343阅读:417来源:国知局
一种并发控制方法及装置的制造方法
【技术领域】
[0001 ]本发明属于数据通信领域,尤其涉及一种并发控制方法及装置。
【背景技术】
[0002]随着数据通信技术的发展,第二层隧道协议(Layer 2Tunneling Protocol,简称L2TP)被普遍使用和认识,尤其在第三代移动通信技术的到来,使L2TP协议得到了更广泛的应用。鉴于此,客户对L2TP接入L2TP访问集中器(L2TP Access Concentrator,简称LAC)及L2TP网络服务器(L2TP Network Serer,简称LNS)的使用特性更为关注,在实际应用中一般是多个LAC或拨号客户端对应一个LNS设备,所以对LNS设备处理并发连接性能要求就更高,因为这涉及到LNS设备在大并发连接情况下L2TP协议控制的收敛性。
[0003]目前现有的控制LNS设备并发连接性能的方法是在L2TP控制面限定L2TP隧道的发送队列窗口大小,虽然发送队列窗口大小对会话创建并发有一定控制作用,但该控制并发处理的方法在协议流程处理的后端,因此其并不能减轻L2TP控制面对超过其并发处理性能的连接请求造成资源浪费的问题,从而影响了 LNS设备并发处理的效率,导致整个LNS设备的并发处理性能下降。而隧道的并发在协议面没有控制机制,取决于下端LAC设备发起隧道创建的速度和L2TP自身处理能力,如果在L2TP转发面就能控制L2TP的大量并发,提高协议面的处理性能,则具有实际的重要意义。

【发明内容】

[0004]本发明为解决现有技术中L2TP控制并发处理的方法在协议流程处理的后端,对超过并发处理性能的请求处理造成资源浪费、影响LNS设备并发处理效率的问题,提供一种在L2TP转发面前端识别处理,减少超过L2TP控制面并发处理性能的报文冲击L2TP控制面的方法。
[0005]本发明的目的在于提供一种并发控制方法,该方法包括:
[0006]A、创建一个虚拟输入队列,设定所述虚拟输入队列的队列长度为LNS设备L2TP控制面所能处理的请求报文的最大并发个数;所述请求报文包括打开控制连接请求SCCRQ报文或会话请求ICRQ报文;
[0007]B、在LNS设备L2TP转发面收到的报文中,识别出SCCRQ报文或ICRQ报文;
[0008]C、判断此时虚拟输入队列中SCCRQ报文和ICRQ报文的数量是否达到虚拟输入队列的队列长度,如果此时虚拟输入队列中SCCRQ报文和ICRQ报文的数量未达到所述虚拟输入队列的队列长度,则将所述SCCRQ报文或ICRQ报文入队到虚拟输入队列;
[0009]D、入队到虚拟输入队列的所述SCCRQ报文或ICRQ报文被依次发送到L2TP控制面处理。
[0010]进一步地,所述虚拟输入队列的队列长度可修改。
[0011]进一步地,所述步骤C中,如果此时虚拟输入队列中SCCRQ报文和ICRQ报文的数量达到虚拟输入队列的队列长度,则丢弃所述SCCRQ报文或ICRQ报文。
[0012]进一步地,所述方法还包括:被丢弃的SCCRQ报文或ICRQ报文下次重传到LNS设备L2TP转发面时,此时虚拟输入队列中SCCRQ报文和ICRQ报文的数量未达到所述虚拟输入队列的队列长度,则会继续对重传的所述被丢弃的SCCRQ报文或ICRQ报文执行入队操作。
[0013]进一步地,所述方法还包括:当隧道或会话建立连接成功或处理过程中出现异常时,将所述隧道或会话对应的SCCRQ报文或ICRQ报文从所述虚拟输入队列中出队。
[0014]本发明的另一目的还在于提供一种并发控制装置,所述装置包括:
[0015]设置模块,用于创建一个虚拟输入队列,设定所述虚拟输入队列的队列长度为LNS设备L2TP控制面所能处理的请求报文的最大并发个数;所述请求报文包括打开控制连接请求SCCRQ报文或会话请求ICRQ报文;
[0016]报文识别模块,用于在LNS设备L2TP转发面收到的报文中,识别出SCCRQ报文或ICRQ报文;
[0017]入队处理模块,判断此时虚拟输入队列中SCCRQ报文和ICRQ报文的数量是否达到虚拟输入队列的队列长度,如果此时虚拟输入队列中SCCRQ报文和ICRQ报文的数量未达到所述虚拟输入队列的队列长度,则将所述SCCRQ报文或ICRQ报文入队到所述虚拟输入队列;
[0018]出队处理模块,用于将入队到虚拟输入队列的所述SCCRQ报文或ICRQ报文依次发送到L2TP控制面处理。
[0019]进一步地,所述设置模块,还用于对所述虚拟输入队列的队列长度进行修改。
[0020]进一步地,所述入队处理模块,还用于如果此时虚拟输入队列中SCCRQ报文和ICRQ报文的数量达到虚拟输入队列的队列长度,则丢弃所述SCCRQ报文或ICRQ报文。
[0021]进一步地,所述入队处理模块,还用于在被丢弃的SCCRQ报文或ICRQ报文下次重传到LNS设备L2TP转发面时,此时虚拟输入队列中SCCRQ报文和ICRQ报文的数量未达到所述虚拟输入队列的队列长度,则会继续对重传的所述被丢弃的SCCRQ报文或ICRQ报文执行入队操作。
[0022]进一步地,所述出队处理模块,还用于当隧道或会话建立连接成功或处理过程中出现异常时,将所述隧道或会话对应的SCCRQ报文或ICRQ报文从所述虚拟输入队列中出队。
[0023]本发明的有益效果为:在本发明中,采用虚拟输入队列机制,使L2TP隧道或会话对应的SCCRQ报文或ICRQ报文在LNS设备L2TP转发面入队到虚拟输入队列,避免超过L2TP控制面并发处理性能的报文冲击L2TP控制面,降低L2TP控制面的负荷,保障了 L2TP控制面的有效运行,提高了 LNS设备并发处理的效率。
【附图说明】
[0024]附图1是本发明实施例的方法流程图;
[0025]附图2是本发明实施例的装置框图。
【具体实施方式】
[0026]为使本发明的技术方案更加清楚明白,现结合附图对本发明做进一步详细说明:
[0027]本发明实施例提供一种并发控制方法,该方法采用虚拟输入队列来排队所有的隧道或会话请求报文实现对LNS设备上的并发控制。本发明实施例的应用场景包含多台LAC设备和一台LNS设备,如图1所示,该方法的具体实现步骤包括:
[0028]S101、创建一个虚拟输入队列,设定所述虚拟输入队列的队列长度为LNS设备L2TP控制面所能处理的请求报文的最大并发个数;且所述虚拟输入队列的队列长度可修改。所述请求报文包括打开控制连接请求SCCRQ(Start Control Connect1n Request)报文或会话请求ICRQ(Incoming Call Request)报文;其中,所述队列长度是根据系统和测试达到的一个最优化的数值,并且可以根据系统的负载情况,手动配置修改,可修改的虚拟输入队列的队列长度的范围为O到N,N为大于O的整数。当需要手动配置修改虚拟输入队列的队列长度时,需继承先前虚拟输入队列中已有的报文数量,再改变虚拟输入队列的队列长度。例如:在本发明实施例中,设定虚拟输入队列的队列长度为1000个,若此时根据负载情况需要手动配置虚拟输入队列的队列长度为2000个,而此时虚拟输入队列已存在300个待处理的SCCRQ报文或ICRQ报文,则新的虚拟输入队列还可以容纳1700个并发的SCCRQ报文或ICRQ报文。
[0029]S102、在LNS设备L2TP转发面收到的报文中,识别出SCCRQ报文或ICRQ报文。具体包括:当LNS设备L2TP转发面收到报文后,识别收到的报文为发送给本设备的报文后,进入L2TP处理流程,L2TP处理识别报文是否是L2TP报文,识别L2TP报文的依据是先识别出端口号为1701的UDP报文,如果是L2TP报文,则继续解析报文是否是控制报文,如果是控制报文,则解析该控制报文的消息类型,如果是SCCRQ报文或ICRQ报文,则需要把SCCRQ报文或ICRQ报文入队到虚拟输入队列,增加L2TP控制面的并发处理量。
[0030]S103、判断此时虚拟输入队列中SCCRQ报文和ICRQ报文的数量是否达到虚拟输入队列的队列长度,如果此时虚拟输入队列中SCCRQ报文和ICRQ报文的数量未达到所述虚拟输入队列的队列长度,则将所述SCCRQ报文或ICRQ报文入队到虚拟输入队列;如果此时虚拟输入队列中SCCRQ报文和ICRQ报文的数量达到虚拟输入队列的队列长度,则丢弃所述SCCRQ报文或ICRQ报文,以便减轻L2TP控制面的处理压力,被丢弃的SCCRQ报文或ICRQ报文下次重传到LNS设备L2TP转发面时,此时虚拟输入队列中SCCRQ报文和ICRQ报文的数量未达到所述虚拟输入队列的队列长度,则会继续对重传的所述被丢弃的SCCRQ报文或ICRQ报文执行入
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1