CN107547537B - 请求报文处理方法、装置、设备及存储介质 - Google Patents
请求报文处理方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN107547537B CN107547537B CN201710756189.0A CN201710756189A CN107547537B CN 107547537 B CN107547537 B CN 107547537B CN 201710756189 A CN201710756189 A CN 201710756189A CN 107547537 B CN107547537 B CN 107547537B
- Authority
- CN
- China
- Prior art keywords
- message
- type
- request message
- offline
- request
- 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.)
- Active
Links
Images
Abstract
本发明实施例提供了一种请求报文处理方法、装置、设备及存储介质,其中,该方法包括:接收请求报文;确定请求报文的类型;按照请求报文的类型,将请求报文添加至请求报文的类型对应的消息队列;按照消息队列的调度权重,对消息队列中的请求报文进行处理。通过本发明实施例提供的请求报文处理方法、装置、设备及存储介质,能够将不同类型的请求报文分别进行处理,使得请求报文能够得到及时地处理,提高Portal(入口)认证的性能。
Description
技术领域
本发明涉及通信技术领域,特别是涉及一种请求报文处理方法、装置、设备及存储介质。
背景技术
Portal(入口)认证是一种常见的用户认证方式,也称为Web(网页)认证,通过Web页面接受用户名和密码,对用户身份进行认证,从而达到访问目标网络的目的。具体地,采用客户端-服务器模式,客户端和服务器之间需要通过接入设备交互报文。如图1所示,Portal认证系统包括:认证客户端101(客户端软件或浏览器)、接入设备102(客户端和服务器之间的桥梁)、Portal认证服务器103、Portal Web服务器104、AAA(Authentication、Authorization、Accounting,验证、授权和记账)服务器105、安全策略服务器106。
传统的Portal认证方法,如图2所示,接入设备中的Portal主线程201将待处理的报文写入消息队列202中,然后按照队列的先入先出原则读取该消息队列202中的报文,进而在定时器限制的时间内处理报文,响应上线、下线等请求。其中,报文包括上线请求报文、下线请求报文以及其他上线、下线等相关的各类报文。可以看出,不论是上线请求报文还是下线请求报文全部在同一个消息队列排队等候处理,然后按照队列的先入先出的原则处理消息队列中的报文,完成对用户上线、下线等的认证。
按照传统的Portal认证方法,当大量用户反复上下线时,同一消息队列中报文太多。使得消息队列中存储位置靠后的报文无法在定时器超时前得到及时处理,导致降低了Portal认证的性能。
发明内容
本发明实施例的目的在于提供一种请求报文处理方法、装置、设备及存储介质,以实现提高Portal认证的性能。具体技术方案如下:
第一方面,本发明实施例提供了一种请求报文处理方法,包括:
接收请求报文;
确定所述请求报文的类型;
按照所述请求报文的类型,将所述请求报文添加至所述请求报文的类型对应的消息队列;
按照所述消息队列的调度权重,对所述消息队列中的请求报文进行处理。
可选地,所述请求报文的类型包括上线类型和下线类型;所述消息队列包括:上线消息队列和下线消息队列;
所述确定所述请求报文的类型,包括:
获取所述请求报文中类型字段中的类型信息;
当所述类型信息表示上线类型时,确定所述请求报文的类型为上线类型;
当所述类型信息表示下线类型时,确定所述请求报文的类型为下线类型;
所述按照所述请求报文的类型,将所述请求报文添加至所述请求报文的类型对应的消息队列,包括:
当所述请求报文的类型为上线类型时,将所述请求报文添加至所述上线消息队列;
当所述请求报文的类型为下线类型时,将所述请求报文添加至所述下线消息队列。
可选地,所述调度权重包括:消息队列的优先级;
所述按照所述消息队列的调度权重,对所述消息队列中的请求报文进行处理,包括:
按照所述上线消息队列的第一优先级,处理所述上线消息队列中的请求报文;
按照所述下线消息队列的第二优先级,处理所述下线消息队列中的请求报文。
可选地,所述调度权重包括:对控制核的调度规则;
所述按照所述消息队列的调度权重,对所述消息队列中的请求报文进行处理,包括:
按照所述上线消息队列的第一调度规则,使用所述上线消息对列对应的第一控制核,处理所述上线消息对列中的请求报文;
按照所述下线消息队列的第二调度规则,使用所述下线消息对列对应的第二控制核,处理所述下线消息对列中的请求报文。
可选地,在确定所述请求报文的类型之前,还包括:
判断当前接收到且未处理的请求报文的数量是否超过预设数量阈值;
当超过所述预设数量阈值时,执行所述确定所述请求报文的类型的步骤。
可选地,在判断当前接收到且未处理的请求报文的数量是否超过预设数量阈值之后,还包括:
当接收到未处理的请求报文的数量超过预设数量阈值时,打开分队列使能开关;
所述当超过所述预设数量阈值时,执行所述确定所述请求报文的类型的步骤,包括:
当检测到所述分队列使能开关为开时,执行所述确定所述请求报文的类型的步骤。
第二方面,本发明实施例提供了一种请求报文处理装置,包括:
接收模块,用于接收请求报文;
确定模块,用于确定所述请求报文的类型;
添加模块,用于按照所述请求报文的类型,将所述请求报文添加至所述请求报文的类型对应的消息队列;
处理模块,用于按照所述消息队列的调度权重,对所述消息队列中的请求报文进行处理。
可选地,所述请求报文的类型包括上线类型和下线类型;所述消息队列包括:上线消息队列和下线消息队列;
所述确定模块,包括:
获取子模块,用于获取所述请求报文中类型字段中的类型信息;
第一确定子模块,用于当所述类型信息表示上线类型时,确定所述请求报文的类型为上线类型;
第二确定子模块,用于当所述类型信息表示下线类型时,确定所述请求报文的类型为下线类型;
所述添加模块,包括:
第一添加子模块,用于当所述请求报文的类型为上线类型时,将所述请求报文添加至所述上线消息队列;
第二添加子模块,用于当所述请求报文的类型为下线类型时,将所述请求报文添加至所述下线消息队列。
可选地,所述装置还用于在接收到的所述请求报文的类型为下线类型时,直接发送下线响应报文,以使用户下线,并将所述请求报文添加至保存下线请求报文的所述下线消息队列。
可选地,所述调度权重包括:消息队列的优先级;
所述处理模块,包括:
第一处理子模块,用于按照所述上线消息队列的第一优先级,处理所述上线消息队列中的请求报文;
第二处理子模块,用于按照所述下线消息队列的第二优先级,处理所述下线消息队列中的请求报文。
可选地,所述调度权重包括:对控制核的调度规则;
所述处理模块,包括:
第三处理子模块,用于按照所述上线消息队列的第一调度规则,使用所述上线消息对列对应的第一控制核,处理所述上线消息对列中的请求报文;
第四处理子模块,用于按照所述下线消息队列的第二调度规则,使用所述下线消息对列对应的第二控制核,处理所述下线消息对列中的请求报文。
可选地,所述装置还包括:
判断模块,用于判断当前接收到且未处理的请求报文的数量是否超过预设数量阈值;
执行模块,用于当超过所述预设数量阈值时,执行所述确定所述请求报文的类型的步骤。
可选地,所述装置还用于当接收到未处理的请求报文的数量超过预设数量阈值时,打开分队列使能开关;
所述执行模块具体用于当检测到所述分队列使能开关为开时,执行所述确定所述请求报文的类型的步骤。
第三方面,本发明实施例提供了一种接入设备,包括处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,所述处理器被所述机器可执行指令促使:实现第一方面所述的方法步骤。
第四方面,本发明实施例提供了一种机器可读存储介质,存储有机器可执行指令,在被处理器调用和执行时,所述机器可执行指令促使所述处理器:实现第一方面所述的方法步骤。
本发明实施例提供的请求报文处理方法、装置、设备及存储介质,可以根据请求报文类型的不同,将请求报文添加至不同的消息队列中,如此能够将不同类型的请求报文分别进行处理,使得请求报文能够得到及时地处理,提高Portal认证的性能。同时也避免了大量报文堆压在同一消息队列中使得主控板内存耗尽进而重启的问题。当然,实施本发明的任一产品或方法必不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为Portal认证系统的结构图;
图2为Portal认证方法中报文处理的流程示意图;
图3为Portal认证过程的流程图;
图4为本发明实施例提供的一种请求报文处理方法的流程图;
图5为本发明实施例提供的另一种请求报文处理方法的流程图;
图6为本发明实施例提供的将报文按照类型的不同添加至不同的消息队列的示意图;
图7为本发明实施例提供的请求报文处理装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了更清楚地说明本发明实施例提供的请求报文处理方法,首先对Portal认证过程进行说明。图3为本发明实施例提供的Portal认证过程的流程图,参照图3,进行如下说明。
步骤301、BAS(Broadband Access Server,宽带接入服务器)设备,也称为接入设备,接收到Portal客户端、向Portal服务器发送的http(HyperText TransferProtocol,超文本传输协议)请求时,仿冒目的地址和Portal客户端建立http连接。
步骤302、将该http连接重定向到Portal服务器,使得Portal客户端与Portal服务器建立连接,如此Portal客户端向Portal服务器发送包括用户名和密码的认证请求报文。
步骤303、Portal服务器向BAS设备发送信息询问报文。
步骤304、BAS设备接收到信息询问报文后,向Portal服务器发送信息询问响应报文。
步骤305、Portal服务器接收到信息询问响应报文后,向BAS设备发送请求报文REQ_CHALLENGE,并启动定时器等待BAS设备的响应;Portal服务器将用户名和密码组成的认证请求报文发往BAS设备,开启定时器等待请求回应报文。
步骤306、BAS设备接收请求报文REQ_CHALLENGE,并在接收到请求报文REQ_CHALLENGE后,检查报文的合法性,对合法的报文响应,并向Portal服务器发送请求回应报文ACK_CHALLENGE。
步骤307、Portal服务器收到请求回应报文ACK_CHALLENGE后,向BAS设备发送REQ_AUTH请求认证报文,并启动定时器等待BAS设备的响应。
步骤308、BAS设备收到请求认证报文REQ_AUTH后,对该请求认证报文进行合法性检查,对合法的报文进行认证处理,并构造认证报文发送给远程Radius(RemoteAuthentication Dial In User Service,远程用户拨号认证系统)服务器,BAS设备开启定时器等待认证响应,BAS设备根据认证的结果以及定时器的信息向Portal服务器发送请求认证响应报文ACK_AUTH。
步骤309、Portal服务器根据ACK_AUTH报文表示的认证结果(成功或失败)向Portal客户端反馈认证结果,以通知用户是否认证成功,且Portal服务器在收到ACK_AUTH报文后,向BAS设备发送确认报文,如此完成上线认证的过程。另外,Portal服务器在接收到ACK_AUTH报文后,检查该ACK_AUTH报文和REQ_AUTH报文的SerialNo(序列号)是否相同,如果相同,则认为是一个认证流程,反馈认证结果给用户;否则,做丢弃处理。
步骤310、用户成功上线后,BAS设备向Radius认证服务器发送计费请求报文,并等待计费请求响应报文,BAS设备接收到计费请求响应报文后开始计费,同时Portal客户端和Portal服务器之间以心跳周期进行心跳报文交互。
步骤311、Portal客户端主动请求下线时,Portal服务器向BAS设备发送下线请求报文REQ_LOGOUT,并启动定时器等待BAS设备对REQ_LOGOUT的响应。
步骤312、BAS设备接收到REQ_LOGOUT报文后,向Radius计费服务器发送计费停止请求报文,并启动定时器等待Radius计费服务器对计费停止报文的响应,同时从驱动获取流量;当BAS设备接收到Radius计费服务器的计费停止响应报文后,向Portal服务器发送下线请求响应报文ACK_LOGOUT,通知用户下线,删除驱动表项,如此完成下线认证的过程。
本发明实施例提供了一种请求报文处理方法,如图4所示,包括:
步骤401、接收请求报文。
步骤402、确定请求报文的类型。
步骤403、按照请求报文的类型,将请求报文添加至请求报文的类型对应的消息队列。
步骤404、按照消息队列的调度权重,对消息队列中的请求报文进行处理。
本发明实施例提供的请求报文处理方法,可以根据请求报文类型的不同,将请求报文添加至不同的消息队列中,进而根据不同消息队列的不同处理策略,例如,不同的调度权重,对不同类型的请求报文分别地进行处理,使得不同类型的请求报文都能够得到及时地处理,提高Portal认证的性能。同时也避免了大量报文堆压在同一消息队列中使得内存耗尽而使设备重启的问题。
本发明实施例还提供一种请求报文处理方法,如图5所示,包括:
步骤501、接收请求报文。
本发明实施例提供的请求报文处理方法可以应用于接入设备、Portal服务器、AAA服务器等。
本步骤中,接收的请求报文,可以为上线认证请求报文、下线认证请求报文、计费请求报文、计费停止请求报文等。本发明实施例一种可选的实施方式中,Portal认证过程中,可以接收Portal协议报文。Portal协议报文由固定长度头和可变长度的属性字段组成。
步骤502、获取当前接收到且未处理的请求报文的数量。
具体地,可以设置计数器,每接收到一个请求报文,计数器的值加1;每处理完一个请求报文,计数器的值减1,如此可以通过获取计数器的值获得当前接收到且未处理的请求报文的数量。
步骤503、判断当前接收到且未处理的请求报文的数量是否超过预设数量阈值。
本步骤中,预设数量阈值可以根据设备的处理能力、剩余内存等设置,如,500、1000、2000等。
如果判断当前接收到且未处理的请求报文的数量超过预设数量阈值,则执行步骤504。
如果判断当前接收到且未处理的请求报文的数量未超过预设数量阈值,则将该请求报文添加至单一消息队列中,请求报文在该单一消息队列中等待处理,其中,需要说明的是,不论什么类型的请求报文,都添加至该单一消息队列中。
步骤504、确定请求报文的类型。
在判断当前接收到且未处理的请求报文的数量超过预设数量阈值时,确定请求报文的类型,请求报文的类型包括上线类型和下线类型。具体地,可以确定该请求报文的类型为上线类型或者下线类型。
一般情况下,请求报文中包括表示请求报文的类型的类型字段,其中,类型字段可以是表征报文功能的字段、请求报文中的预留字段等。本发明实施例一种可选的实施例中,确定请求报文的类型的过程包括:
第一步,获取请求报文中类型字段中的类型信息。
获取请求报文中类型字段中的类型信息,具体地,可以获取类型字段的值,不同的值对应不同的类型信息。例如,Portal协议报文中几种常见类型的报文如下表1所示,其中,Type字段定义报文的类型,则可通过Type字段的值确定报文的类型。
表1
类型 | 值 | 方向 | 含义 | 处理条件 |
REQ_CHALLENGE | 0x01 | Portal服务器->BAS | CHALLENGE请求报文 | 必须 |
ACK_CHALLENGE | 0x02 | BAS->Portal服务器 | CHALLENGE回应报文 | 必须 |
REQ_AUTH | 0x03 | Portal服务器->BAS | 请求认证报文 | 必须 |
ACK_AUTH | 0x04 | BAS->Portal服务器 | 请求认证响应报文 | 必须 |
REQ_LOGOUT | 0x05 | Portal服务器->BAS | 下线请求报文 | 必须 |
ACK_LOGOUT | 0x06 | BAS->Portal服务器 | 下线请求响应报文 | 必须 |
AFF_ACK_AUTH | 0x07 | Portal服务器->BAS | 认证成功后的确认报文 | 建议 |
NTF_LOGOUT | 0x08 | BAS->Portal服务器 | 用户强制下线的通知报文 | 必须 |
REQ_INFO | 0x09 | Portal服务器>BAS | 信息询问报文 | 必须 |
ACK_INFO | 0x0a | BAS->Portal服务器 | 信息询问响应报文 | 必须 |
从表1中可以看出不同的Type字段的值表示不同的类型信息,例如,Type字段的值为0x03时,表示请求认证报文REQ_AUTH,Type字段的值为0x05时,表示下线请求报文REQ_LOGOUT。
第二步,当类型信息表示上线类型时,确定该请求报文的类型为上线类型;当类型信息表示下线类型时,确定该请求报文的类型为下线类型。
具体地,可以提前将所有类型的请求报文按照类型信息的不同进行划分,例如,CHALLENGE请求报文REQ_CHALLENGE、CHALLENGE回应报文ACK_CHALLENGE、请求认证报文REQ_AUTH、请求认证响应报文ACK_AUTH都是用户请求上线认证时,Portal服务器与BAS设备之间交互的报文;下线请求报文REQ_LOGOUT、下线请求响应报文ACK_LOGOUT是用户请求下线时,Portal服务器与BAS设备之间交互的报文,如此可以将CHALLENGE请求报文REQ_CHALLENGE、CHALLENGE回应报文ACK_CHALLENGE、请求认证报文REQ_AUTH、请求认证响应报文ACK_AUTH这几种报文划分为上线类型的请求报文,下线请求报文REQ_LOGOUT、下线请求响应报文ACK_LOGOUT划分为下线类型的请求报文。
当获取到请求报文中类型字段中的类型信息后,根据提前划分好的请求报文的类型,根据请求报文的类型信息确定请求报文的类型。例如,当接收到的请求报文的类型字段Type字段中该请求报文的类型信息为REQ_LOGOUT,查找提前划分好的请求报文的类型,则可以确定接收到的请求报文为下线类型;当接收到的请求报文的类型字段Type字段中该请求报文的类型信息为REQ_AUTH,查找提前划分好的请求报文的类型,则可以确定接收到的请求报文为上线类型。
另外,为了操作更加简便,本发明实施例一种可选的实施方式中,可以设置分队列使能开关。具体地,在判断接收到的请求报文的数量超过预设数量阈值时,打开该分队列使能开关;当检测到该分队列使能开关为开时,则执行步骤504。
步骤505、按照请求报文的类型,将请求报文添加至请求报文的类型对应的消息队列。
根据请求报文类型的不同,对应地分配不同的消息队列,如此,当接收到请求报文时,按照该请求报文类型的不同,将该请求报文添加至对应的不同消息队列。具体地,当接收到的请求报文的类型是上线类型时,将该请求报文添加至上线消息队列,当接收到的请求报文的类型是下线类型时,将该请求报文添加至下线消息队列。如图6所示,接入设备中的Portal主线程601将待处理的请求报文按照请求报文类型的不同,分别写入消息队列602和603中,可以将上线类型的请求报文写入上线消息队列602中,将下线请求消息写入下线消息队列603中,然后按照队列的先入先出原则读取该消息队列中的请求报文,进而在定时器限制的时间内处理报文,响应上线、下线等请求。
步骤506、按照消息队列的调度权重,对消息队列中的请求报文进行处理。
首先需要重点说明的是,在接收到的请求报文的类型为下线类型时,直接发送下线响应报文,以使用户下线,并将请求报文添加至保存下线请求报文的下线消息队列。简单地可以理解为,在接收到下线请求报文时,可以先进行简单地响应机制,即不进行计费等的计算,直接发送下线响应报文,以使用户下线,并将该下线请求报文添加至下线消息队列,等待后续的处理,例如,进行计费等计算。也可以理解为,在将下线请求报文添加至下线消息队列,以使按照下线消息队列的调度权重对下线请求报文进行处理之前,先对下线请求报文进行简单地响应,以使用户下线。
如此,能够使得在按照消息队列的调度权重,对消息队列中的请求报文进行处理的过程中,上线消息队列的调度权重远大于下线消息队列的调度权重时,使得下线消息队列一直得不到处理,影响用户下线。可以实现在及时地响应上线请求报文时,能够不影响用户的下线请求,保证用户能够及时下线。
将接收到的请求报文添加至消息队列后,按照消息队列的调度权重,对消息队列中地请求报文进行处理。
调度权重可以包括消息队列的优先级。按照消息队列的调度权重,对消息队列中的请求报文进行处理,包括:
按照上线消息队列的第一优先级,处理上线消息队列中的请求报文;
按照下线消息队列的第二优先级,处理下线消息队列中的请求报文。
具体地,可以确定第一优先级高于第二优先级。例如,为了确保新上线的用户能够及时上线成功,则确定上线消息队列的优先级高于下线消息队列的优先级。当检测到上线消息队列中有请求报文,优先处理上线消息队列中的请求报文;只有上线消息队列中没有请求报文时,才处理下线消息队列中的请求报文。
或者,调度权重也可以包括利用轮询的方式处理不同消息队列中的请求报文时,为不同消息队列设置的轮询权重。具体地,上线消息队列对应的上线轮询权重,下线消息队列对应的下线轮询权重。当然,轮询权重可以按照实际的需求进行设置。例如,为了确保新上线的用户能够及时上线成功,同时避免下线消息队列中的请求报文一直得不到处理,出现计费误差的情况,可以为上线消息队列和下线消息队列设置一定比例的轮询权重,如,设置比例为10:4的轮询权重,按照轮询方式,处理10个上线消息队列中的请求报文,处理4个下线消息队列中的请求报文。
另外,在Portal认证过程中,接入设备可能有一个控制核或者多个控制核,可以通过一个控制核或者多个控制核对消息队列中的请求报文进行处理。
调度权重可以包括:对控制核的调度规则。按照消息队列的调度权重,对消息队列中的请求报文进行处理,包括:
按照上线消息队列的第一调度规则,使用上线消息对列对应的第一控制核,处理上线消息对列中的请求报文;
按照下线消息队列的第二调度规则,使用下线消息对列对应的第二控制核,处理下线消息对列中的请求报文。
其中,第一控制核和第二控制核可以为同一个控制核,或者也可以为不同的控制核。
如果接入设备有多个控制核时,不同的消息队列可以分配不同的控制核,通过调度不同的控制核,并行处理不同消息队列中的请求报文。
或者,也可以按照不同消息队列的不同调度规则,调度不同的控制核,处理不同消息队列中的请求报文。具体地,可以按照不同的优先级或者不同的轮询权重,调度不同的控制核,处理不同消息队列中的请求报文。
可以看出,将不同消息队列的请求报文分发至不同的控制核,通过调度控制核,并行处理不同消息队列中的请求报文,能够实现负载分担,既确保了因为在单一消息队列中用于上线请求的报文迟迟得不到处理、从而上线失败的现象不再发生,同时也不会因为用于下线请求的报文得不到处理、从而出现下线延时、计费错误、用户无辜付费等现象发生。
在接入设备只有一个控制核的情况下,如果按照并行处理的方式处理不同消息队列中的请求报文,会消耗大量资源,也会使控制核的负载过大。所以为了减轻控制核的负载,也为了降低资源消耗,在接入设备只有一个控制核时,针对该控制核,按照上线消息队列的第一调度规则,以及下线消息队列的第二调度规则,分别处理上线消息队列和下线消息队列中的请求报文。
具体地,可以按照上线消息队列的优先级,调度该控制核,处理上线消息队列中的请求报文;按照下线消息队列的优先级,调度该控制核,处理下线消息队列中的请求报文。或者,还可以利用轮询的方式,调度控制核。例如,按照上线消息队列的轮询权重,调度该控制核,处理上线消息队列中的请求报文;按照下线消息队列的轮询权重,调度该控制核,处理下线消息队列中的请求报文。
为了提高用户下线的效率,可以提高处理下线消息队列中的请求报文的速率。例如,在处理Portal用户下线时,接入设备向Radius计费服务器发送计费停止请求报文后,不再等待Radius计费服务器返回的计费停止响应报文,而是接入设备在接收到Portal服务器发送的下线请求报文后,向Portal服务器发送下线响应报文,完成用户的下线请求。如此可以提高处理下线消息队列中的请求报文的速率,进而提高用户下线的速率。同时,处理下线消息队列中的请求报文的速率提高,单位时间内处理的下线消息队列中的请求报文则更多,如此使得在一定时间内处理的上线消息队列中的请求报文也更多,进而能够确保更多的用户上线成功。
另外,为了提高处理下线消息队列中的请求报文的速率,本发明实施例一种可选的实施方式中,在处理用于下线请求的请求报文的过程中,不再从驱动获取流量用于计费,而是将当前用户态保存的统计流量用于计费,其中,用户态中保存的统计流量可以是定期获取的、以计数器的形式存在的。需要说明的是,不从驱动获取实时的统计流量的方式,有可能会导致一些流量偏差,但是在定期获取流量的周期比较小的情况下,用于计费的流量偏差时可控的。
本发明实施例还提供了一种请求报文处理装置,如图7所示,该装置包括:
接收模块701,用于接收请求报文;
确定模块702,用于确定请求报文的类型;
添加模块703,用于按照请求报文的类型,将请求报文添加至请求报文的类型对应的消息队列;
处理模块704,用于按照消息队列的调度权重,对消息队列中的请求报文进行处理。
本发明实施例提供的请求报文处理装置,可以根据请求报文类型的不同,将请求报文添加至不同的消息队列中,进而根据不同消息队列的不同处理策略,例如,调度权重,对不同类型的请求报文独立地进行处理,使得不同类型的请求报文都能够得到及时地处理,提高Portal认证的性能。同时也避免了大量报文堆压在同一消息队列中使得内存耗尽而使设备重启的问题。
可选地,请求报文的类型包括上线类型和下线类型;消息队列包括:上线消息队列和下线消息队列;
该确定模块702,包括:
获取子模块,用于获取请求报文中类型字段中的类型信息;
第一确定子模块,用于当类型信息表示上线类型时,确定请求报文的类型为上线类型;
第二确定子模块,用于当类型信息表示下线类型时,确定请求报文的类型为下线类型;
该添加模块703,包括:
第一添加子模块,用于当请求报文的类型为上线类型时,将请求报文添加至上线消息队列;
第二添加子模块,用于当请求报文的类型为下线类型时,将请求报文添加至下线消息队列。
可选地,装置还用于在接收到的请求报文的类型为下线类型时,直接发送下线响应报文,以使用户下线,并将请求报文添加至保存下线请求报文的下线消息队列。
可选地,调度权重包括消息队列的优先级;
该处理模块704,包括:
第一处理子模块,用于按照上线消息队列的第一优先级,处理上线消息队列中的请求报文;
第二处理子模块,用于按照下线消息队列的第二优先级,处理下线消息队列中的请求报文。
可选地,调度权重包括:对控制核的调度规则;
该处理模块704,包括:
第三处理子模块,用于按照上线消息队列的第一调度规则,使用上线消息对列对应的第一控制核,处理上线消息对列中的请求报文;
第四处理子模块,用于按照下线消息队列的第二调度规则,使用下线消息对列对应的第二控制核,处理下线消息对列中的请求报文。
可选地,装置还包括:
判断模块,用于判断当前接收到且未处理的请求报文的数量是否超过预设数量阈值;
执行模块,用于当超过预设数量阈值时,执行确定请求报文的类型的步骤。
可选地,装置还用于当接收到未处理的请求报文的数量超过预设数量阈值时,打开分队列使能开关;
执行模块具体用于当检测到分队列使能开关为开时,执行确定请求报文的类型的步骤。
需要说明的是,本发明实施例提供的请求报文处理装置是应用上述请求报文处理方法的装置,则上述请求报文处理方法的所有实施例均适用于该装置,且均能达到相同或相似的有益效果。
本发明实施例还提供了一种接入设备,该接入设备包括处理器和机器可读存储介质,机器可读存储介质存储有能够被处理器执行的机器可执行指令,处理器被机器可执行指令促使:实现上述请求报文处理方法的方法步骤。
本发明实施例提供的接入设备,可以根据请求报文类型的不同,将请求报文添加至不同的消息队列中,进而根据不同消息队列的不同处理策略,例如,调度权重,对不同类型的请求报文独立地进行处理,使得不同类型的请求报文都能够得到及时地处理,提高Portal认证的性能。同时也避免了大量报文堆压在同一消息队列中使得内存耗尽而使设备重启的问题。
本发明实施例还提供了一种机器可读存储介质,该机器可读存储介质存储有机器可执行指令,在被处理器调用和执行时,机器可执行指令促使处理器:实现上述请求报文处理方法的方法步骤。
本发明实施例提供的机器可读存储介质,可以根据请求报文类型的不同,将请求报文添加至不同的消息队列中,进而根据不同消息队列的不同处理策略,例如,调度权重,对不同类型的请求报文独立地进行处理,使得不同类型的请求报文都能够得到及时地处理,提高Portal认证的性能。同时也避免了大量报文堆压在同一消息队列中使得内存耗尽而使设备重启的问题。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (12)
1.一种请求报文处理方法,其特征在于,应用于接入设备、入口Portal服务器或验证授权记账AAA服务器,包括:
接收请求报文;
确定所述请求报文的类型;
按照所述请求报文的类型,将所述请求报文添加至所述请求报文的类型对应的消息队列;
按照所述消息队列的调度权重,对所述消息队列中的请求报文进行处理;
所述请求报文的类型包括上线类型和下线类型;所述消息队列包括:上线消息队列和下线消息队列;
所述确定所述请求报文的类型,包括:
获取所述请求报文中类型字段中的类型信息;
当所述类型信息表示上线类型时,确定所述请求报文的类型为上线类型;
当所述类型信息表示下线类型时,确定所述请求报文的类型为下线类型;
所述按照所述请求报文的类型,将所述请求报文添加至所述请求报文的类型对应的消息队列,包括:
当所述请求报文的类型为上线类型时,将所述请求报文添加至所述上线消息队列;
当所述请求报文的类型为下线类型时,将所述请求报文添加至所述下线消息队列;
所述方法还包括:
在接收到的所述请求报文的类型为下线类型时,直接发送下线响应报文,以使用户下线,并将所述请求报文添加至保存下线请求报文的所述下线消息队列。
2.根据权利要求1所述的方法,其特征在于,所述调度权重包括:消息队列的优先级;
所述按照所述消息队列的调度权重,对所述消息队列中的请求报文进行处理,包括:
按照所述上线消息队列的第一优先级,处理所述上线消息队列中的请求报文;
按照所述下线消息队列的第二优先级,处理所述下线消息队列中的请求报文。
3.根据权利要求1所述的方法,其特征在于,所述调度权重包括:对控制核的调度规则;
所述按照所述消息队列的调度权重,对所述消息队列中的请求报文进行处理,包括:
按照所述上线消息队列的第一调度规则,使用所述上线消息对列对应的第一控制核,处理所述上线消息对列中的请求报文;
按照所述下线消息队列的第二调度规则,使用所述下线消息对列对应的第二控制核,处理所述下线消息对列中的请求报文。
4.根据权利要求1所述的方法,其特征在于,在确定所述请求报文的类型之前,还包括:
判断当前接收到且未处理的请求报文的数量是否超过预设数量阈值;
当超过所述预设数量阈值时,执行所述确定所述请求报文的类型的步骤。
5.根据权利要求4所述的方法,其特征在于,在判断当前接收到且未处理的请求报文的数量是否超过预设数量阈值之后,还包括:
当接收到未处理的请求报文的数量超过预设数量阈值时,打开分队列使能开关;
所述当超过所述预设数量阈值时,执行所述确定所述请求报文的类型的步骤,包括:
当检测到所述分队列使能开关为开时,执行所述确定所述请求报文的类型的步骤。
6.一种请求报文处理装置,其特征在于,应用于接入设备、入口Portal服务器或验证授权记账AAA服务器,包括:
接收模块,用于接收请求报文;
确定模块,用于确定所述请求报文的类型;
添加模块,用于按照所述请求报文的类型,将所述请求报文添加至所述请求报文的类型对应的消息队列;
处理模块,用于按照所述消息队列的调度权重,对所述消息队列中的请求报文进行处理;
所述请求报文的类型包括上线类型和下线类型;所述消息队列包括:上线消息队列和下线消息队列;
所述确定模块,包括:
获取子模块,用于获取所述请求报文中类型字段中的类型信息;
第一确定子模块,用于当所述类型信息表示上线类型时,确定所述请求报文的类型为上线类型;
第二确定子模块,用于当所述类型信息表示下线类型时,确定所述请求报文的类型为下线类型;
所述添加模块,包括:
第一添加子模块,用于当所述请求报文的类型为上线类型时,将所述请求报文添加至所述上线消息队列;
第二添加子模块,用于当所述请求报文的类型为下线类型时,将所述请求报文添加至所述下线消息队列;
所述装置还用于在接收到的所述请求报文的类型为下线类型时,直接发送下线响应报文,以使用户下线,并将所述请求报文添加至保存下线请求报文的所述下线消息队列。
7.根据权利要求6所述的装置,其特征在于,所述调度权重包括:消息队列的优先级;
所述处理模块,包括:
第一处理子模块,用于按照所述上线消息队列的第一优先级,处理所述上线消息队列中的请求报文;
第二处理子模块,用于按照所述下线消息队列的第二优先级,处理所述下线消息队列中的请求报文。
8.根据权利要求6所述的装置,其特征在于,所述调度权重包括:对控制核的调度规则;
所述处理模块,包括:
第三处理子模块,用于按照所述上线消息队列的第一调度规则,使用所述上线消息对列对应的第一控制核,处理所述上线消息对列中的请求报文;
第四处理子模块,用于按照所述下线消息队列的第二调度规则,使用所述下线消息对列对应的第二控制核,处理所述下线消息对列中的请求报文。
9.根据权利要求6所述的装置,其特征在于,所述装置还包括:
判断模块,用于判断当前接收到且未处理的请求报文的数量是否超过预设数量阈值;
执行模块,用于当超过所述预设数量阈值时,执行所述确定所述请求报文的类型的步骤。
10.根据权利要求9所述的装置,其特征在于,所述装置还用于当接收到未处理的请求报文的数量超过预设数量阈值时,打开分队列使能开关;
所述执行模块具体用于当检测到所述分队列使能开关为开时,执行所述确定所述请求报文的类型的步骤。
11.一种接入设备,其特征在于,包括处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,所述处理器被所述机器可执行指令促使:实现权利要求1-5任一所述的方法步骤。
12.一种机器可读存储介质,其特征在于,存储有机器可执行指令,在被处理器调用和执行时,所述机器可执行指令促使所述处理器:实现权利要求1-5任一所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710756189.0A CN107547537B (zh) | 2017-08-29 | 2017-08-29 | 请求报文处理方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710756189.0A CN107547537B (zh) | 2017-08-29 | 2017-08-29 | 请求报文处理方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107547537A CN107547537A (zh) | 2018-01-05 |
CN107547537B true CN107547537B (zh) | 2020-12-18 |
Family
ID=60959205
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710756189.0A Active CN107547537B (zh) | 2017-08-29 | 2017-08-29 | 请求报文处理方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107547537B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108809668B (zh) * | 2018-05-29 | 2021-09-21 | 新华三技术有限公司 | 一种认证方法、装置及接入设备 |
CN111726822A (zh) * | 2019-03-21 | 2020-09-29 | 大唐移动通信设备有限公司 | 一种Trap报文处理方法及数据同步管理装置 |
CN113311728B (zh) * | 2021-05-25 | 2022-08-30 | 南京国电南自维美德自动化有限公司 | 一种仿真模型与控制器通信的方法和系统 |
CN114938391B (zh) * | 2022-06-09 | 2024-01-12 | 中国联合网络通信集团有限公司 | 数据处理方法、装置、设备及介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102065009A (zh) * | 2010-12-16 | 2011-05-18 | 中兴通讯股份有限公司 | 分布式队列分配方法及分布式系统 |
CN103650440A (zh) * | 2011-06-22 | 2014-03-19 | 赛格纳斯广播公司 | 用于在通信网络中优先化并调度数据包的检测系统和方法 |
CN105490961A (zh) * | 2014-09-19 | 2016-04-13 | 杭州迪普科技有限公司 | 报文处理方法、装置以及网络设备 |
CN106559354A (zh) * | 2015-09-28 | 2017-04-05 | 中兴通讯股份有限公司 | 一种防止cpu报文拥塞的方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9503510B2 (en) * | 2012-03-10 | 2016-11-22 | Headwater Partners Ii Llc | Content distribution based on a value metric |
-
2017
- 2017-08-29 CN CN201710756189.0A patent/CN107547537B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102065009A (zh) * | 2010-12-16 | 2011-05-18 | 中兴通讯股份有限公司 | 分布式队列分配方法及分布式系统 |
CN103650440A (zh) * | 2011-06-22 | 2014-03-19 | 赛格纳斯广播公司 | 用于在通信网络中优先化并调度数据包的检测系统和方法 |
CN105490961A (zh) * | 2014-09-19 | 2016-04-13 | 杭州迪普科技有限公司 | 报文处理方法、装置以及网络设备 |
CN106559354A (zh) * | 2015-09-28 | 2017-04-05 | 中兴通讯股份有限公司 | 一种防止cpu报文拥塞的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN107547537A (zh) | 2018-01-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107547537B (zh) | 请求报文处理方法、装置、设备及存储介质 | |
US10447594B2 (en) | Ensuring predictable and quantifiable networking performance | |
JP4916809B2 (ja) | 負荷分散制御装置および方法 | |
US8959237B2 (en) | Web services requests throttling | |
WO2017143981A1 (zh) | 服务处理 | |
CN104145459A (zh) | 减小网络流量中的到达间隔延迟 | |
CN106685847B (zh) | 一种报文处理方法、装置及设备 | |
CN103501297B (zh) | 一种门户认证方法和设备 | |
CN102143177B (zh) | 一种Portal认证方法、装置、设备及系统 | |
CN106294472A (zh) | 一种Hadoop数据库HBase的查询方法及装置 | |
US10587524B2 (en) | Multi-tagged multi-tenant rate limiting | |
EP3306866B1 (en) | Message processing method, device and system | |
WO2015180364A1 (zh) | 一种网络接入点托管的方法及系统 | |
EP3119132B1 (en) | Access port queuing & resource management | |
CN106572114A (zh) | 基于多服务器的Portal认证方法及其系统、Portal服务器 | |
CN108810927A (zh) | 一种调度请求的处理方法及系统 | |
CN104159289B (zh) | 家庭终端的认证注册方法和装置 | |
CN107819754B (zh) | 一种防劫持方法、监控服务器、终端及系统 | |
Khabbaz et al. | Modelling and analysis of a novel deadline-aware scheduling scheme for cloud computing data centers | |
CN106506660B (zh) | 一种联机请求处理方法、服务器及系统 | |
CN103873585A (zh) | 一种Radius认证装置和方法 | |
CN107995125B (zh) | 一种流量调度方法及装置 | |
JP4350098B2 (ja) | 実行制御装置および方法 | |
CN108809668A (zh) | 一种认证方法、装置及接入设备 | |
WO2014208617A1 (ja) | プッシュ型情報送信装置、プッシュ型情報送信方法及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |