发明内容
本发明要解决的技术问题是提供一种控制PCRF负载均衡的方法、系统及重定向DRA,使重定向DRA能够获取PCRF的负载状态信息,并根据全网PCRF的负载状态信息将新建的diameter会话重定向到负载较低的PCRF。
为了解决上述问题,本发明提供了一种控制PCRF负载均衡的方法,其特征在于,包括:
重定向diameter路由代理(DRA)接收到没有DRA绑定的客户端(client)或拜访地策略和计费规则功能(V-PCRF)的diameter建立请求消息后,选择负载较低的PCRF作为重定向的目标PCRF并创建DRA绑定,并将所述目标PCRF的标识或地址通过diameter响应消息发送给所述client或所述V-PCRF,如果需要对所述目标PCRF的负载状态进行更新,则在所述diameter响应消息中携带PCRF状态查询指示;
所述client或所述V-PCRF根据所述目标PCRF的标识或地址向所述目标PCRF重新发送diameter建立请求消息,并携带所述PCRF状态查询指示;并在接收到所述目标PCRF回复的负载状态信息后,将其发送给所述重定向DRA。
进一步地,所述client或所述V-PCRF将接收到的所述目标PCRF的负载状态信息通过diameter修改请求消息发送给所述重定向DRA。
进一步地,所述方法还包括:
所述重定向DRA为每个PCRF设置状态查询定时器;
并在将所述目标PCRF的标识或地址通过diameter响应消息发送给所述client或所述V-PCRF之前,判断该目标PCRF的状态查询定时器是否超时,如果已超时,则判定需要对所述目标PCRF的负载状态进行更新。
进一步地,所述方法还包括:
所述重定向DRA在接收到所述目标PCRF的负载状态信息后,根据该负载状态信息对所述目标PCRF的负载状态进行更新,并重启所述目标PCRF的状态查询定时器。
进一步地,所述目标PCRF的负载状态信息为所述目标PCRF的空闲容量。
本发明还提供了一种控制PCRF负载均衡的系统,包括重定向DRA、client和PCRF,其中:
所述重定向DRA用于,接收到没有DRA绑定的client或拜访地V-PCRF的diameter建立请求消息后,选择负载较低的PCRF作为重定向的目标PCRF并创建DRA绑定,并将所述目标PCRF的标识或地址通过diameter响应消息发送给所述client或所述V-PCRF,如果需要对所述目标PCRF的负载状态进行更新,则在所述diameter响应消息中携带PCRF状态查询指示;
所述client或所述拜访地PCRF用于,向所述重定向DRA发送diameter建立请求消息后,根据所述重定向DRA返回的所述目标PCRF的标识或地址向所述目标PCRF重新发送diameter建立请求消息,并携带所述PCRF状态查询指示;以及,在接收到所述目标PCRF回复的负载状态信息后,将其发送给所述重定向DRA;
所述目标PCRF用于,接收到携带所述PCRF状态查询指示的diameter建立请求消息后,在回复的diameter响应消息中携带其当前的负载状态信息。
进一步地,所述重定向DRA还用于:
为每个PCRF设置状态查询定时器;
在将所述目标PCRF的标识或地址通过diameter响应消息发送给所述client或所述V-PCRF之前,判断该目标PCRF的状态查询定时器是否超时,如果已超时,则判定需要对所述目标PCRF的负载状态进行更新。
进一步地,所述重定向DRA还用于:
在接收到所述目标PCRF的负载状态信息后,根据该负载状态信息对所述目标PCRF的负载状态进行更新,并重启所述目标PCRF的状态查询定时器。
进一步地,所述client或所述V-PCRF用于,将所述目标PCRF的负载状态信息通过diameter修改请求消息发送给所述重定向DRA。
进一步地,所述目标PCRF在回复的所述diameter响应消息中携带的所述负载状态信息为所述目标PCRF的空闲容量。
本发明还提供了一种控制PCRF负载均衡的重定向DRA,包括消息收发模块、状态查询模块及重定向绑定模块,其中:
所述消息收发模块用于,接收到client或拜访地V-PCRF的diameter建立请求消息后,发送给所述重定向绑定模块;将所述状态查询及更新模块发送的diameter响应消息发送给所述client或所述V-PCRF;以及,接收到包含所述目标PCRF的负载状态信息后,将其发送给所述状态查询及更新模块;
所述重定向绑定模块用于,接收到没有DRA绑定的client或拜访地V-PCRF的diameter建立请求消息后,选择负载较低的PCRF作为重定向的目标PCRF并创建DRA绑定,并将包含所述目标PCRF的标识或地址的diameter响应消息发送给所述状态查询模块;
所述状态查询及更新模块用于,接收到所述diameter响应消息时,如果需要对所述目标PCRF的负载状态进行更新,则在所述diameter响应消息中携带PCRF状态查询指示,并发送给所述消息收发模块;以及,接收到所述目标PCRF的负载状态信息后,根据该负载状态信息对所述目标PCRF负载状态进行更新,并将更新结果通知所述重定向绑定模块。
进一步地,所述状态查询及更新模块进一步包括定时单元、状态查询单元和状态更新单元,所述定时单元分别与所述状态查询单元及所述状态更新单元相连;
所述定时单元用于,为每个PCRF设置状态查询定时器;
所述状态查询单元用于,在接收到所述diameter响应消息时,判断所述目标PCRF的状态查询定时器是否超时,如果已超时,则判定需要对所述目标PCRF的负载状态进行更新,并在所述diameter响应消息中携带PCRF状态查询指示;
所述状态更新单元用于,接收到所述目标PCRF的负载状态信息后,根据该负载状态信息对所述目标PCRF负载状态进行更新,并重启所述目标PCRF的状态查询定时器。
通过本发明提供的技术方案,在不改变现有架构的基础上,实现在漫游或非漫游场景下,client或V-PCRF在建立与PCRF之间的Diameter会话时,使DRA能够获取PCRF的负载信息,并根据全网PCRF的负载状态信息将新建的diameter会话重定向到负载较低的PCRF,从而可以由DRA控制实现多个PCRF之间的负载均衡。
具体实施方式
本发明提出一种控制PCRF负载均衡的实现方法,应用于使用重定向DRA的网络中,包括:
在DRA中,针对每个PLMN中的PCRF设置状态查询计时器,用于周期性的触发DRA查询某个PCRF的负载状态;
DRA在创建或获取DRA绑定后,如果绑定指向的PCRF的查询定时器超时,则DRA在发给client或V-PCRF(漫游场景)的重定向响应消息中携带PCRF状态查询指示;
Client或V-PCRF在收到带有PCRF状态查询指示的重定向响应消息后,将状态查询指示携带在发往目标PCRF的会话建立/终结请求消息中;
PCRF收到上述状态查询指示后,应在返回给client或V-PCRF的响应消息中携带其当前负载状态信息,并由client或V-PCRF再转发给DRA。
通过上述的方法,DRA在获得全网PCRF负载状态信息后,根据现有的动态负载均衡算法得到所有PCRF的空闲容量比例,这样,DRA在选择新建diameter会话的目标PCRF的功能时,即可将新建的diameter会话定向到负载较低的PCRF,以实现PCRF的负载均衡。
下面结合附图及具体实施例对本发明技术方案作进一步详细说明。
实施例一
本实施例以非漫游场景下重定向DRA控制到低负载PCRF建立diameter会话,并获取该PCRF状态信息为例加以说明。图4描述了client和重定向DRA以及PCRF均在归属地网络时,由外部事件触发diameter会话建立流程,其中由DRA获取PCRF负载信息并控制diameter会话建立到负载较低的PCRF。但本实施例同样适用于图4所示的所有网元都在拜访地网络的场景。
如图4所示,该流程的各步骤描述如下:
步骤401:重定向DRA的client收到外部触发(例如IP-CAN会话建立请求),需要与PCRF建立一条diameter会话;
步骤402:Client向重定向DRA发送带有用户信息(如UE-NAI)的diameter建立请求;
步骤403:DRA将用户信息保存下来,并检查当前是否存在对应该用户的DRA绑定,如果不存在,DRA会创建一条动态DRA绑定,即为每个UE或者每个IP-CAN指派一个PCRF,在指派时,DRA会根据动态负载均衡策略指派一个负载较低的PCRF,各PCRF的初始默认状态为零负载状态;如果存在该用户的DRA绑定,DRA会为client选择绑定指向的PCRF,即PCRF-1;
步骤404:重定向DRA向client返回diameter响应消息,通知client重定向的目标为PCRF-1。此时,如果DRA中的PCRF-1的查询计时器已经超时,则DRA还应在diameter响应消息中携带PCRF状态查询指示;
该步骤中,如果DRA中的PCRF-1的查询计时器没有超时或者超时阶段已经向PCRF-1发出查询但尚未收到响应,则DRA在diameter响应消息中不携带查询指示;
步骤405:Client重新发送diameter建立请求消息(同步骤402,但加入了PCRF状态查询指示)到PCRF-1;
步骤406:PCRF-1回复给client一条diameter响应消息,并带有PCRF-1的当前负载状态信息(如空闲容量);
步骤407:收到步骤406所述消息,client将其中的PCRF-1的状态信息通过diameter修改请求消息发送给重定向DRA;
步骤408:重定向DRA获取PCRF-1的状态信息并保存或更新,向client返回diameter响应消息。DRA重新启动PCRF-1的状态查询计时器。
至此,DRA更新了PCRF-1的负载信息,此后根据网络中所有PCRF的相对空闲比例,将新建的IP-CAN会话的diameter会话重定向到负载较低的PCRF。
实施例二
本实施例以漫游场景下归属地重定向DRA控制到低负载归属地PCRF建立diameter会话并获取该PCRF状态信息为例加以说明。图5描述了拜访地PCRF经归属地重定向DRA定位归属地PCRF,建立diameter会话的信令流程,其中DRA获取PCRF负载信息并控制diameter会话建立到负载较低的PCRF。
如图5所示,该信令流程的各步骤描述如下:
步骤501:拜访地的V-PCRF收到外部触发(例如IP-CAN会话建立请求),需要通过S9接口与归属地H-PCRF建立一条diameter会话;
步骤502:V-PCRF向重定向H-DRA发送带有用户信息(如UE-NAI)的Rx/S9diameter建立请求;
步骤503:H-DRA将用户信息保存下来,并检查当前是否存在对应该用户的DRA绑定,如果不存在,H-DRA会创建一条动态DRA绑定(即为一个UE指派一个PCRF,在指派时,DRA会根据动态负载均衡策略指派一个负载较低的PCRF,各PCRF的初始默认状态为零负载状态);如果存在该用户的DRA绑定,H-DRA会直接选择绑定指向的PCRF,即H-PCRF-1;
步骤504:重定向H-DRA向V-PCRF返回diameter响应消息,通知V-PCRF重定向的目标PCRF为H-PCRF-1。此时如果H-DRA中的H-PCRF-1的查询计时器已经超时,则H-DRA还应在diameter响应消息中携带PCRF状态查询指示;
步骤505:V-PCRF重新发送diameter建立请求消息(同步骤502,但加入了PCRF状态查询指示)到H-PCRF-1;
步骤506:H-PCRF-1回复给V-PCRF一条diameter响应消息,并带有H-PCRF-1的当前负载状态信息(如空闲容量);
步骤507:收到步骤506所述消息后,V-PCRF将其中的H-PCRF-1的状态信息通过diameter修改请求消息发送给H-DRA;
步骤508:H-DRA获取H-PCRF-1的状态信息并保存或更新,向V-PCRF返回diameter响应消息。H-DRA重新启动H-PCRF-1的状态查询计时器。
至此,H-DRA更新了H-PCRF-1的负载信息,此后根据网络中所有PCRF的相对空闲比例,将新建的IP-CAN会话的diameter会话重定向到负载较低的PCRF。
上述实施例描述了在与PCRF建立diameter会话过程中,由DRA控制获取PCRF负载状态信息的方式。
在本发明以下实施例中,在终结diameter会话时,client(非漫游场景下)或V-PCRF(漫游场景下)可能会同时向DRA和目标PCRF发送会话终结请求,此时DRA受到信令时序的局限,无法通知client或V-PCRF去目标PCRF获取负载状态信息,因此当client或V-PCRF先向DRA发送终结请求并等待DRA重定向响应时,应在请求消息中设置等待指示位,DRA据此等待指示位判断是否可以利用本次diameter会话终结来获取PCRF负载状态信息。
实施例三
本实施例以非漫游场景下重定向DRA在终结diameter会话流程中获取PCRF负载状态信息加以说明。图6描述了重定向DRA的client结束diameter会话的流程,其中DRA通过client获取到PCRF的负载信息。本实施例同样适用于拜访地client通过拜访DRA终结diameter会话的场景。
如图6所示,各步骤描述如下:
步骤601:Client收到外部触发(例如UE或PCRF发起IP-CAN会话终结)需终结与PCRF的diameter会话;
步骤602:Client(仅限BBERF或PCEF)向重定向DRA发送diameter会话终结请求,如果client没有同时向PCRF发送会话终结请求,还需在给DRA的消息中携带等待指示位;
步骤603:重定向DRA验证确实存在一条对应该IP-CAN会话的DRA绑定,并将请求的diameter会话标记为已终结。如果DRA绑定的粒度是每IP-CAN会话的,那么所有该IP-CAN会话的diameter会话都会被终结;如果DRA绑定的粒度是每用户的,那么该用户的所有diameter会话都将被终结,用户与PCRF-1的绑定也会被删除;
步骤604:重定向DRA向client发送diameter重定向响应消息,确认会话已经终结;如果步骤602中的消息设置了等待指示位,DRA中的PCRF-1状态查询定时器超时,则DRA还需在diameter重定向响应消息中添加PCRF状态查询指示;
步骤605:Client收到步骤604的响应后,向PCRF-1发送diameter终结请求(带有步骤604的PCRF状态查询指示);
步骤606:PCRF-1向client发回diameter响应通知client会话已终结,同时消息中带有PCRF-1的当前负载状态信息(如空闲容量);
步骤607:Client使用新的专用消息将步骤606中收到的PCRF-1的状态信息转发给重定向DRA,DRA重新启动PCRF-1的状态查询计时器。
至此,重定向DRA更新了PCRF-1的负载信息,此后根据网络中所有PCRF的负载状况计算出PCRF相对空闲比例,将新建的IP-CAN会话的diameter会话重定向到负载较低的PCRF。
实施例四
本实施例以漫游场景下归属地重定向DRA在终结diameter会话流程中获取归属地PCRF负载状态信息为例加以说明。图7描述了拜访地PCRF分别与归属地重定向DRA和归属地PCRF交互,终结diameter会话的信令流程。
如图7所示,各步骤描述如下:
步骤701:V-PCRF收到外部触发(例如BBERF或PCEF请求终结会话)需终结与H-PCRF的diameter会话;
步骤702:V-PCRF向归属地重定向H-DRA发送diameter会话终结请求,如果V-PCRF没有同时向归属地H-PCRF发送会话终结请求,还需要在给H-DRA的消息中携带等待指示位;
步骤703:重定向H-DRA验证确实存在一条对应该IP-CAN会话的DRA绑定,并将请求的diameter会话标记为已终结。如果该用户的所有diameter会话都被终结,用户与H-PCRF-1的绑定也会被删除;
步骤704:H-DRA向V-PCRF发送diameter重定向响应消息,确认会话已经终结。如果步骤702的消息设置了等待指示位,DRA中的H-PCRF-1状态查询定时器超时,则H-DRA还需在diameter重定向响应消息中添加PCRF状态查询指示;
步骤705:V-PCRF收到步骤704的响应后,向H-PCRF-1发送diameter终结请求(带有步骤704的PCRF状态查询指示);
步骤706:H-PCRF-1向V-PCRF发回diameter响应通知V-PCRF会话已终结,同时消息中带有H-PCRF-1的当前负载状态信息(如空闲容量);
步骤707:V-PCRF使用新的专用消息将步骤706中收到的H-PCRF-1的状态信息转发给H-DRA,H-DRA重新启动H-PCRF-1的状态查询计时器。
至此,重定向H-DRA更新了H-PCRF-1的负载信息,此后根据网络中所有PCRF的负载状况计算出PCRF相对空闲比例,将新建的IP-CAN会话的diameter会话重定向到负载较低的PCRF。
如图8所示,本发明实施例中提供了一种控制PCRF负载均衡的系统,包括重定向DRA、client/V-PCRF和目标PCRF,其中:
重定向DRA用于,接收到没有DRA绑定的client或V-PCRF的diameter建立请求消息后,选择负载较低的PCRF作为重定向的目标PCRF并创建DRA绑定,并将目标PCRF的标识或地址通过diameter响应消息发送给client或V-PCRF,如果需要对目标PCRF的负载状态进行更新,则在diameter响应消息中携带PCRF状态查询指示;
client或V-PCRF用于,向重定向DRA发送diameter建立请求消息后,根据重定向DRA发送的目标PCRF的标识或地址向目标PCRF重新发送diameter建立请求消息,并携带PCRF状态查询指示;以及,在接收到目标PCRF回复的负载状态信息后,将其发送给重定向DRA;
目标PCRF用于,接收到携带PCRF状态查询指示的diameter建立请求消息后,在回复的diameter响应消息中携带当前的负载状态信息。
进一步地,重定向DRA还用于:
为每个PCRF设置状态查询定时器;
在将目标PCRF的标识或地址通过diameter响应消息发送给client或V-PCRF之前,判断该目标PCRF的状态查询定时器是否超时,如果已超时,则判定需要对目标PCRF的负载状态进行更新;以及
在接收到目标PCRF的负载状态信息后,根据该负载状态信息对目标PCRF的负载状态进行更新,并重启目标PCRF的状态查询定时器。
进一步地,client或V-PCRF用于,将目标PCRF的负载状态信息通过diameter修改请求消息发送给重定向DRA。
进一步地,目标PCRF在回复的diameter响应消息中携带的负载状态信息为目标PCRF的空闲容量。
如图9所示,本发明实施例中还提供了一种控制PCRF负载均衡的重定向DRA,包括消息收发模块、状态查询模块及重定向绑定模块,其中:
消息收发模块用于,接收到client或拜访地V-PCRF的diameter建立请求消息后,发送给重定向绑定模块;将状态查询及更新模块发送的diameter响应消息发送给client或V-PCRF;以及,接收到包含目标PCRF的负载状态信息后,将其发送给状态查询及更新模块;
重定向绑定模块用于,接收到没有DRA绑定的client或拜访地V-PCRF的diameter建立请求消息后,选择负载较低的PCRF作为重定向的目标PCRF并创建DRA绑定,并将包含目标PCRF的标识或地址的diameter响应消息发送给状态查询模块;
状态查询及更新模块用于,接收到diameter响应消息时,如果需要对目标PCRF的负载状态进行更新,则在diameter响应消息中携带PCRF状态查询指示,并发送给消息收发模块;以及,接收到目标PCRF的负载状态信息后,根据该负载状态信息对目标PCRF负载状态进行更新,并将更新结果通知所述重定向绑定模块。
其中,状态查询及更新模块进一步还可以包括定时单元、状态查询单元和状态更新单元,定时单元分别与状态查询单元及状态更新单元相连,其中:
定时单元用于,为每个PCRF设置状态查询定时器;
状态查询单元用于,在接收到diameter响应消息时,判断目标PCRF的状态查询定时器是否超时,如果已超时,则判定需要对目标PCRF的负载状态进行更新,并在diameter响应消息中携带PCRF状态查询指示;
状态更新单元用于,接收到目标PCRF的负载状态信息后,根据该负载状态信息对目标PCRF负载状态进行更新,并重启目标PCRF的状态查询定时器。
当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。