基于远程用户拨号认证协议客户端的计费方法

文档序号:7693429阅读:184来源:国知局
专利名称:基于远程用户拨号认证协议客户端的计费方法
技术领域
本发明涉及通信系统中基于远程用户拨号认证协议(RADIUS)的计费方法。
为达到上述目的,本发明提供的基于远程用户拨号认证协议客户端的计费方法,包括a.为每个计费服务器组建立用于存储客户端发出的计费结束请求数据包的计费事件结束队列;b.将客户端停止上网时发出的计费结束请求数据包存入计费事件结束队列;c.从队列中依次读出计费结束请求数据包向计费服务器发送,直至队列中的全部请求发送完毕结束;d.当所有的计费服务器都不可使用时,将发送失败的计费结束请求数据包存入队列;e.继续将新的计费结束请求数据包存入队列,同时等待有可以进行检测的计费服务器;
f.检查是否有可以进行正常计费的服务器,在检查过程中,继续将新的计费结束请求数据包存入队列,如果检查结果为有可以进行正常计费的服务器,转步骤b,否则转步骤e。
步骤d还包括判断是否所有计费服务器都不可使用。
步骤f所述检查是否有可以进行正常计费的服务器,是从计费事件结束队列中读出一个计费结束请求数据包,并发送该计费结束请求数据包检测可用的计费服务器是否能够正常计费。
上述发送计费结束请求数据包检测可用的计费服务器是否能够正常计费,通过能否在规定的时间内收到正确的计费应答实现。
由于本发明利用为RADIUS计费服务器组建立的计费结束事件队列保存需要向RADIUS计费服务器发送计费结束请求数据包的事件,在发送计费结束请求数据包时,首先将该数据包存入队列,再从队列中读取计费结束请求数据包发送,当发现所有计费服务器均不可用时会再次将此计费结束请求数据包存入队列;由于在未确认完成计费结束前始终保存计费结束信息,可以保证基于RADIUS协议的客户端计费的可靠性。
本发明实质在于保护计费信息中最重要的计费结束请求数据包的发送,在计费完全失败时,保存计费信息,当RADIUS计费服务器一旦恢复,马上发出这些保存的计费信息,从而实现基于RADIUS协议客户端的可靠计费。
下面结合附图对本发明作进一步详细的描述。


图1是本发明方法的实施例流程图。按照图1,首先要为每个计费服务器组设置一个状态机进行计费状态的控制,同时,为每个计费服务器组建立用于存储客户端发出的计费结束请求数据包的计费事件结束队列。上述计费结束请求数据包为客户端发出的计费结束相关信息的集合。
所述计费结束事件队列采用利用双向链表实现,参考图2,即每一节点的数据结构中分别有两个成员指向他的前一节点和后一节点,这样只要记录队列头、队列尾即可方便的进行操作。该队列采用先进先出的方式,在队列中读取计费结束请求数据包时从队列头开始,将计费结束请求数据包存入队列时从队列尾部存入,图中的事件内容部分即可用于存储计费结束请求数据包。
状态机用于计费过程中计费服务状态的转换,即记录计费状态是否正常,并控制计费状态的跃迁。对于计费服务器组的单个计费服务器来说,有DOWN和UP两种状态。DOWN状态是此服务器不可用,可能是向其发送RADIUS包失败或收不到计费应答。采用RADIUS协议,在DOWN的状态持续一端时间以后会认为此服务器有可能已经恢复,这时再将其状态恢复为可用,用UP表示。但这时的UP是未经过确认的,因此是不可靠的,只能说有可能UP了,为避免失误。这时可以发送一个计费包试探是否真的已经恢复。当确认已经恢复后再按照正常情况发出计费结束包。
因此图1所述实施例涉及三个计费状态1、正常状态即可以正常发送计费包;2、异常状态这时可能是所有的计费服务器都是DOWN状态,或根本没有配置RADIUS计费服务器。
3、检测状态此时即正在发送一个计费包试探计费是否恢复,但尚未收到应答包时。如果有多个可用的计费服务器,当检测一个服务器失败时,需要依次向其他计费服务器发送计费包试探,直到发送成功或证明所有服务器均不可用为止。整个过程中状态均为检测状态。状态的跃迁参考图3。
1、出现一个计费包发送失败,即向所有可用RADIUS服务器发送计费包均不成功,或发送成功却得不到应答,将计费状态变为异常状态。
2、如果计费服务器组中有计费服务器状态为UP,使用此计费服务器发送一个计费包成功,这时启动定时器等待收到计费应答包或超时,将计费状态变为检测状态。
3、收到了检测时发送的计费包的应答包,将计费状态变为正常状态。
4、检测失败,将计费状态变成异常状态。
这样,在正常计费状态,在步骤11将客户端停止上网时发出的计费结束请求数据包存入计费事件结束队列,同时,在步骤12从队列中依次读出计费结束请求数据包向计费服务器发送,直至队列中的全部计费结束请求数据包发送完毕结束。在计费结束请求数据包发送过程中,如果计费服务器组中所有计费服务器都不可使用,即向所有可用计费服务器发送计费结束请求包不成功,或发送成功却得不到应答时,在步骤13将发送失败的计费结束请求数据包存入队列,并进入计费异常状态,在计费异常状态,经步骤14继续将新的计费结束请求数据包存入队列,同时等待有可以进行检测的计费服务器;在步骤15定时从计费异常状态进入到计费检测状态,在进入计费检测状态时,在步骤15检查是否有可以进行正常计费的服务器,同时继续将新的计费结束请求数据包存入队列;如果在步骤16判断有可以进行正常计费的服务器,则进入计费正常状态,转步骤11继续操作,否则回到计费异常状态,继续步骤14的操作。
步骤15所述检查是否有可以进行正常计费的服务器,是从计费事件结束队列中读出一个计费结束请求数据包,并发送该计费结束请求数据包检测可用的计费服务器是否能够正常计费,如果在规定的时间内收到正确的计费应答响应,说明可用的计费服务器能够进行正常计费,否则说明该计费服务器还不能够进行正常计费。
图1所述实施例可以通过两个进程实现,一个进程用于用户退出网络时将计费结束请求数据包首先写入计费结束事件队列;另一个进程用于数据包的可靠发送,包括由队列头开始依次读出计费结束请求数据包发送、接收计费应答包、得不到应答包的超时处理。在发送时针对3种计费状态做不同的处理。正常状态时,依次从队列中读出计费结束请求数据包发送,直到所有计费结束包发完,或出现发送失败,在失败时,将发送失败的计费结束请求数据包重新存入队列。异常状态时,检查是否有可用的计费服务器,如果有从队列头开始读出一个事件,发送一个计费结束包进行检测,同时将新的客户端发送失败的计费结束请求数据包存入队列,参考图4。
在图1所述实施例具体实现时,大量的存储计费信息势必占用很多系统资源,如果不加控制,将会占满存储空间,而使系统崩溃。因此需要限制储存的数量。有两种解决方案1、当发现无法计费后,拒绝其他需要使用此计费服务器组计费的用户登录网络,而已经在线用户仍然可以使用。这样所要贮存的用户计费信息最多仅仅是现有在线用户。
由于这种方式过于严格,为了灵活应用,本实施例配合使用另外的计费选项。当长时间无法恢复计费时,又希望提供网络服务时,通过此选项删除队列中所有保存的计费信息,允许后面用户登录。可以根据不同的使用要求选用下述方案2。
2、采用有限长度的计费结束事件队列,当向此队列加入事件时如果发现队列已满,则丢弃计费结束信息。丢弃的策略可以为a、丢弃最早要求计费的用户;b、丢弃当前用户;c、丢弃使用网络资源最少的用户,比如使用时间最短、流量最少等等;d、随机丢弃。
权利要求
1.一种基于远程用户拨号认证协议客户端的计费方法,包括a.为每个计费服务器组建立用于存储客户端发出的计费结束请求数据包的计费事件结束队列;b.将客户端停止上网时发出的计费结束请求数据包存入计费事件结束队列;c.从队列中依次读出计费结束请求数据包向计费服务器发送,直至队列中的全部请求发送完毕结束;d.当所有的计费服务器都不可使用时,将发送失败的计费结束请求数据包存入队列;e.继续将新的计费结束请求数据包存入队列,同时等待有可以进行检测的计费服务器;f.检查是否有可以进行正常计费的服务器,在检查过程中,继续将新的计费结束请求数据包存入队列,如果检查结果为有可以进行正常计费的服务器,转步骤b,否则转步骤e。
2.根据权利要求1所述的计费方法,其特征在于步骤d还包括判断是否所有计费服务器都不可使用。
3.根据权利要求2所述的计费方法,其特征在于步骤e所述可以检测的计费的服务器,是指新配置的计费服务器,或发现不可用后间隔了一定时间的计费服务器。
4.根据权利要求3所述的计费方法,其特征在于步骤f所述检查是否有可以进行正常计费的服务器,是从计费事件结束队列中读出一个计费结束请求数据包,并发送该计费结束请求数据包检测可用的计费服务器是否能够正常计费。
5.根据权利要求4所述的计费方法,其特征在于所述发送计费结束请求数据包检测可用的计费服务器是否能够正常计费,通过能否在规定的时间内收到正确的计费应答实现。
6.根据权利要求5所述的计费方法,其特征在于所述步骤e以及步骤f还包括当超过规定的时间不能进入正常计费状态,拒绝非在线用户登录网络。
7.根据权利要求5所述的计费方法,其特征在于所述步骤e以及步骤f还包括当超过规定的时间不能进入正常计费状态,删除计费事件结束队列的计费结束请求数据包。
8.根据权利要求5所述的计费方法,其特征在于所述步骤e以及步骤f还包括当超过规定的时间不能进入正常计费状态且计费事件结束队列已满时,丢弃计费结束请求数据包。
9.根据权利要求6、7、或8所述的计费方法,其特征在于所述方法的计费状态由状态机控制。
10.根据权利要求9所述的计费方法,其特征在于该方法所述建立计费事件结束队列是建立由双向链表构成的队列。
全文摘要
本发明公开了一种基于远程用户拨号认证协议客户端的计费方法,该方法为每个计费服务器组建立用于存储客户端发出的计费结束请求数据包的计费事件结束队列;在正常计费状态,将客户端停止上网时发出的计费结束请求数据包存入计费事件结束队列,同时从队列中依次读出计费结束请求数据包向计费服务器发送,直至队列中的全部请求发送完毕结束,当所有的计费服务器都不可使用时,将发送失败的计费结束请求数据包和继续将新的客户端发送失败的计费结束请求数据包存入队列,同时检查是否有可以进行正常计费的服务器,如果有,进入计费正常状态;采用上述方案能够在计费结束前保存计费结束信息,因此可以保证基于RADIUS协议的客户端计费的可靠性。
文档编号H04M17/00GK1464681SQ02123510
公开日2003年12月31日 申请日期2002年6月28日 优先权日2002年6月28日
发明者樊迟 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1