一种结束计费方法及装置与流程

文档序号:15845144发布日期:2018-11-07 08:55阅读:124来源:国知局
一种结束计费方法及装置与流程

本申请涉及计算机通信领域,尤其涉及一种结束计费方法及装置。

背景技术

radius(remoteauthenticationdialinuserservice,远程认证拨入用户服务)采用典型的c/s(client/server,客户端/服务器)架构,该c/s架构中包括至少一个radius客户端和radius服务器。

radius客户端是指运行radius客户端软件的设备,用户终端可以与radius客户端建立连接,通过radius客户端接入radius服务器。radius服务器用于对用户终端进行认证、授权、计费等。

通常,各radius客户端上记录有连接本客户端的用户终端的用户信息,同时,radius服务器上也记录有所有接入的用户终端的用户信息。在现有的结束用户终端计费方法中,radius客户端会周期性地向radius服务器上报连接本客户端的用户终端的信息,以使服务器确定该上报的用户终端在线。但是,当服务器在预设时长内没有接收到radius客户端上报的用户终端的信息,就会确定未上报的用户终端下线,并结束对该用户终端的计费。

当radius客户端异常时,radius客户端就不会周期性地上报接入本客户端的用户终端信息,致使radius服务器会因在预设时长内未收到该radius客户端上报的用户终端信息而确定连接该异常radius客户端的用户终端下线,进而结束对这些用户终端的计费。但是,由于上报周期通常为几十分钟,采用这种周期上报的方式会导致从radius客户端发生异常到radius服务器确定用户终端下线的时长非常长,进而会造成radius服务器对用户终端的计费不准确。



技术实现要素:

有鉴于此,本申请提供一种结束计费的方法及装置,用以解决因radius客户端异常而造成的对连接该异常radius客户端的用户终端计费不准确问题。

具体地,本申请是通过如下技术方案实现的:

根据本申请的第一方面,提供一种结束计费方法,所述方法应用于radius服务器,包括:

接收异常通知消息,所述异常通知消息包括异常radius客户端标识;

在上线用户名单中,查找与所述异常radius客户端标识绑定的用户标识;所述上线用户名单用于记录上线用户终端的用户标识与上线用户终端所连接的radius客户端的客户端标识之间的绑定关系;

断开与所述用户标识所指示的用户终端的通信连接,并结束对所述用户标识所指示的用户终端的计费。

可选的,所述接收异常通知消息之前,所述方法还包括:

接收radius客户端发出的上线请求消息,所述上线请求消息包括上线用户终端的用户标识和所述radius客户端的客户端标识;

建立所述用户标识和所述客户端标识之间的绑定关系,并将该绑定关系添加至所述上线用户名单。

可选的,所述接收异常通知消息,包括:

接收第一radius客户端或者代理服务器发送的异常通知消息;

其中,当所述用户终端通过非分布式物理接入设备接入所述radius服务器时,所述第一radius客户端为所述非分布式物理接入设备;

当所述用户终端通过堆叠设备接入所述radius服务器时,所述第一radius客户端为所述堆叠设备中的成员设备;

当所述用户终端通过分布式物理接入设备接入所述radius服务器时,所述第一radius客户端为所述分布式物理接入设备中连接用户终端的单板。

可选的,所述异常通知消息为所述第一radius客户端在检测到该第一radius客户端重启后发出;所述异常radius客户端标识为所述第一radius客户端标识;

和/或;

所述异常通知消息为所述第一radius客户端在检测到第二radius客户端故障时发出;所述第二radius客户端为与所述第一radius客户端保持通信连接的另一客户端,所述异常radius客户端标识为所述第二radius客户端标识;

和/或;

所述异常通知消息为所述第一radius客户端或者所述代理服务器在接收到携带有用户输入的第三radius客户端标识的指令时发出;所述异常radius客户端标识为所述第三radius客户端标识;

和/或;

所述异常通知消息为所述代理服务器在检测到第四radius客户端故障时发出;所述第四radius客户端为与所述代理服务器保持通信连接的客户端;所述异常radius客户端标识为所述第四radius客户端标识。

可选的,所述在上线用户名单中,查找与所述异常radius客户端标识对应的用户标识之后,所述方法还包括:

从所述上线用户名单中,删除包含该异常radius客户端标识的绑定关系。

根据本申请的第二方面,提供一种结束计费装置,所述装置应用于radius服务器,包括:

接收单元,用于接收异常通知消息,所述异常通知消息包括异常radius客户端标识;

查找单元,用于在上线用户名单中,查找与所述异常radius客户端标识绑定的用户标识;所述上线用户名单用于记录上线用户终端的用户标识与上线用户终端所连接的radius客户端的客户端标识之间的绑定关系;

结束单元,用于断开与所述用户标识所指示的用户终端的通信连接,并结束对所述用户标识所指示的用户终端的计费。

可选的,所述接收单元,还用于接收radius客户端发出的上线请求消息,所述上线请求消息包括上线用户终端的用户标识和所述radius客户端的客户端标识;

所述装置还包括:

建立单元,用于建立所述用户标识和所述客户端标识之间的绑定关系,并将该绑定关系添加至所述上线用户名单。

可选的,所述接收单元,用于接收第一radius客户端或者代理服务器发送的异常通知消息;

其中,当所述用户终端通过非分布式物理接入设备接入所述radius服务器时,所述第一radius客户端为所述非分布式物理接入设备;

当所述用户终端通过堆叠设备接入所述radius服务器时,所述第一radius客户端为所述堆叠设备中的成员设备;

当所述用户终端通过分布式物理接入设备接入所述radius服务器时,所述第一radius客户端为所述分布式物理接入设备中连接用户终端的单板。

可选的,所述异常通知消息为所述第一radius客户端在检测到该第一radius客户端重启后发出;

所述异常radius客户端标识为所述第一radius客户端标识;和/或;

所述异常通知消息为所述第一radius客户端在检测到第二radius客户端故障时发出;所述第二radius客户端为与所述第一radius客户端保持通信连接的另一客户端,所述异常radius客户端标识为所述第二radius客户端标识;和/或;

所述异常通知消息为所述第一radius客户端或者所述代理服务器在接收到携带有用户输入的第三radius客户端标识的指令时发出;所述异常radius客户端标识为所述第三radius客户端标识;和/或;

所述异常通知消息为所述代理服务器在检测到第四radius客户端故障时发出;所述第四radius客户端为与所述代理服务器保持通信连接的客户端;所述异常radius客户端标识为所述第四radius客户端标识。

可选的,所述装置还包括:

删除单元,用于在上线用户名单中,查找与所述异常radius客户端标识对应的用户标识之后,从所述上线用户名单中,删除包含该异常radius客户端标识的绑定关系。

一方面,由于radius客户端在发生异常后,radius服务器会接收到携带了该异常radius客户端的异常通知消息;另一方面,由于radius服务器上不单单只记录了用户终端信息,还记录的了用户终端的用户标识和与该用户终端所连接的radius客户端的客户端标识的绑定关系,这就使得当radius服务器接收到异常通知消息后,可以基于该绑定关系,确定出该异常的radius客户端所绑定的用户终端,并结束对该用户终端的计费。相比于现有技术中的结束用户计费方法,由于本申请radius服务器不需要等待预设时长,所以本申请提供的结束计费方法更准确。

附图说明

图1是本申请一示例性实施例示出的一种非proxy环境下的radius组网示意图;

图2是本申请一示例性实施例示出的一种proxy环境下的radius组网示意图;

图3是本申请一示例性实施例示出的一种结束计费方法的流程图;

图4是本申请一示例性实施例示出的另一种非proxy环境下的radius组网示意图;

图5是本申请一示例性实施例示出的一种radius服务器的硬件结构图;

图6是本申请一示例性实施例示出的一种结束计费装置的框图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。

在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

在现有实现方式中,当radius客户端发生异常时,连接该radius客户端的用户终端会被迫下线。

在radius客户端发生异常到radius服务器确定连接该异常radius客户端的用户终端下线的这段时间中,一方面,radius服务器不会结束对该被迫下线的用户终端的计费,造成计费不准确的问题;另一方面,由于radius服务器认为这些被迫下线的用户终端仍在线,所以radius服务器上保存的上线用户名单中仍记录有该被迫下线的用户终端。当这些被迫下线的用户终端重新通过其他正常的radius客户端接入radius服务器时,由于上线用户名单中存在这些被迫下线的用户,所以radius服务器会拒绝这些被迫下线的用户终端的接入。

有鉴于此,本申请实施例提出一种结束计费方法,一方面,由于radius客户端在发生异常后,radius服务器会接收到携带了该异常radius客户端的异常通知消息;另一方面,由于radius服务器上不单单只记录了用户终端信息,还记录了用户终端的用户标识与该用户终端所连接的radius客户端的客户端标识的绑定关系,这就使得当radius服务器接收到异常通知消息后,可以基于该绑定关系,确定出该异常的radius客户端所绑定的用户终端,并结束对该用户终端的计费。相比于现有技术中的结束用户计费方法,由于本申请radius服务器不需要等待预设时长,所以本申请提供的结束计费方法更准确。

此外,在本申请中,当radius服务器查找到与异常radius客户端所绑定的用户终端时,radius服务器可从上线白名单中将查找到的用户终端删除,因此可以保证这些用户终端通过其他正常radius客户端接入radius服务器。

参见图1,图1是本申请一示例性实施例示出的一种非proxy环境下的radius组网示意图。

在该radius组网中,至少包括radius服务器,至少一个接入设备以及至少一个用户终端。

如图1所示,一个接入设备可以与至少一个用户终端相连,一个radius服务器可以与至少一个接入设备直接相连。这种接入设备直接与radius服务器相连的组网被称为非proxy(代理)环境下的radius组网。

其中,上述接入设备,是指用于接入用户终端的设备。接入设备可以是非分布式物理接入设备,也可以是堆叠设备,也可以是分布式物理接入设备,这里只是对接入设备进行示例性地说明,不对该接入设备进行具体地限定。

1)堆叠设备,是指将多个物理设备通过堆叠链路连接在一起,进行必要的配置后,虚拟化成一台堆叠设备(也被称为虚拟堆叠系统)。该多个物理设备就是堆叠设备的成员设备。

当用户终端通过堆叠设备接入radius服务器时,radius客户端就是堆叠设备的成员设备。此时,该radius客户端的客户端标识就是成员设备标识,比如成员设备id,成员设备mac地址等等,这里不对成员设备标识进行具体地限定。

2)分布式物理接入设备,又被称为框式设备。该分布式物理接入设备包括主控板,以及多个用于接入用户终端的单板,比如接口板。主控板用于管理控制该分布式物理接入设备上的所有单板(即接口板等等)。接口板上配置有多个用户端口,用户终端可通过该用户端口接入接口板。

当用户终端通过分布式物理接入设备接入radius服务器时,radius客户端可以是该分布式物理接入设备上的、用于连接用户终端的单板。此时,该radius客户端的客户端标识就是用于接入用户终端的单板标识,该单板标识可以是单板id等等,这里不对单板标识进行具体地限定。

3)非分布式物理接入设备,可以是盒式设备等设备。

当用户终端通过非分布式物理接入设备接入radius服务器,radius客户端就是该非分布式物理接入设备。此时,该radius客户端标识就是该非分布式物理接入设备标识,该非分布式的物理接入设备标识可以该非分布式物理接入设备的ip地址、mac地址等等,这里不进行具体地限定。

当然,在实际应用中,radius组网中的接入设备通常为多个,为了方便radius服务器管理多个接入设备,接入设备通常会通过代理服务器与radius服务器相连。

如图2所示,多个接入设备与代理服务器相连,代理服务器与radius服务器相连。这种,接入设备通过代理服务器与radius服务器交互的radius组网被称为proxy环境下的radius组网。proxy环境下的radius组网中的接入设备也可以具有上述多种类型,这里不再赘述。

需要说明的是,本申请提出的结束计费的方法,可以应用在proxy环境下的radius组网,也可应用在非proxy环境下的radius组网,本申请不对radius组网的类型进行具体地限定。此外,本申请也不对proxy环境下的radius组网或者非proxy环境下的radius组网中的接入设备的类型进行具体地限定,该接入设备可以是非分布式物理接入设备、可以是堆叠设备,也可以是分布式物理接入设备。

参见图3,图3是本申请一示例性实施例示出的一种结束计费方法的流程图。该方法可应用在radius服务器上,可包括如下所示步骤。

步骤301:接收发出的异常通知消息;所述异常通知消息携带有异常radius客户端标识。

radius客户端异常通常包括:radius客户端重启,radius客户端故障等情况,这里只是对radius客户端的异常情况进行示例性地说明,不进行具体地限定。

在现有的基于radius协议的报文(比如,接入请求报文,计费请求报文,开始计费报文等等)通常包括nas-ip(networkaccessserver-internetprotocoladdress,网络接入服务器-互联网协议地址)字段和nas-id(networkaccessserver-identifier)字段。

其中,nas-ip字段用于记录接入设备的ip地址或者代理服务器的ip地址。比如,在proxy环境下的raidus组网下,nas-ip字段记录有代理服务器的ip地址。

在非proxy环境下的radius组网中,nas-ip字段记录有接入设备的ip地址。当该接入设备是非分布式物理接入设备,该nas-ip字段记录非分布式物理接入设备的ip地址。当该接入设备是堆叠设备,该nas-ip字段记录堆叠设备的ip地址。当接入设备是分布式物理接入设备,该nas-ip字段记录分布式物理接入设备的ip地址。

上述,nas-id字段用于用户终端标识。

本申请对现有的基于radius协议的报文进行了扩展,使得该基于radius协议的报文扩展出了一个特定字段,该特定字段可以记录radius客户端标识。比如该特定字段可以是user-feature字段等等。

其中,上述异常通知消息可以是进行了上述特定字段扩展的、基于radius协议的accounting-on(开始计费)报文,该扩展的accounting-on报文中的特定字段携带了异常radius客户端标识。当然,上述异常通知消息也可以是其他基于radius协议的其他报文。

在本申请实施例中,radius服务器可以接收第一radius客户端发送的异常通知消息,或者radius服务器可以接收代理服务器发送的异常通知消息。

第一radius客户端或代理服务器通过如下几种方式发出异常通知消息。

方式一:

当第一radius客户端检测到第一radius客户端重启时,第一radius客户端可向radius服务器发送异常通知消息,该异常通知消息里携带有第一radius客户端的客户端标识。

方式二:

当第一radius客户端检测到第二radius客户端故障时,第一radius客户端可以向radius服务器发送异常通知消息,该异常通知消息里携带有第二radius客户端的客户端标识。其中,第二radius客户端为与该第一radius客户端保持通信连接的另一客户端。

第一radius客户端可以通过与第二radius客户端交互心跳报文的机制来检测第二radius客户端是否故障。

比如,当第一radius客户端是堆叠设备中的成员设备时,第一radius客户端可以通过堆叠链路与第二客户端周期性地交互心跳报文,当第一radius客户端在预设时长内未接收到第二radius客户端发送的心跳报文,则确定第二radius客户端故障。

再比如,在proxy环境下的radius组网中,当第一radius客户端是非分布式物理接入设备时,第一radius客户端可以通过代理服务器与第二radius客户端周期性地交互心跳报文,当第一radius客户端在预设时长内未接收到第二radius客户端发送的心跳报文,则确定第二radius客户端故障。

再比如,当第一radius客户端是分布式物理接入设备中的、用以连接用户终端的单板时,第一radius客户端可以通过该分布式接入设备中的主控板与第二radius客户端周期性地交互心跳报文,当第一radius客户端在预设时长内未接收到第二radius客户端发送的心跳报文,则确定第二radius客户端故障。

方式三:

当第三radius客户端故障后,管理人员可以获知哪个radius客户端故障。管理人员可以在第一radius客户端或者代理服务器上输入异常控制命令。该异常控制命令里携带了第三radius客户端。第一radius客户端或者代理服务器在接收到该异常控制命令后,可以向radius服务器发送异常通知消息,该异常通知消息里携带了第三radius客户端标识。

方式四:

当该radius组网为proxy环境下的radius组网时,若代理服务器检测到与该代理服务器保持通信连接的第四radius客户端故障时,代理服务器可向radius服务器发送异常通知消息。该异常通知消息里携带了第四客户端的客户端标识。

其中,代理服务器可通过与第四radius客户端交互心跳报文来检测第四radius客户端是否故障。

具体为,代理服务器可以周期性地与第四radius客户端交互心跳报文,当代理服务器在预设时长内未接收到第四radius客户端的心跳报文时,确定该第四radius客户端故障。

步骤302:在上线用户名单中,查找与所述异常radius客户端标识绑定的用户标识;所述上线用户名单用于记录上线用户终端的用户标识与上线用户终端所连接的radius客户端的客户端标识之间的绑定关系;

步骤303:断开与所述用户标识所指示的用户终端的通信连接,并结束对所述用户标识所指示的用户终端的计费。

其中,上述上线用户名单里记录了用户标识和客户端标识的绑定关系。该绑定关系中的用户标识是指上线的用户终端的用户标识,该绑定关系中的客户端标识,是指该上线的用户终端所连接的radius客户端的客户端标识。

该用户标识和客户端标识的绑定关系可通过如下方式记录:

当radius服务器接收到radius客户端发送的上线请求消息,可以获取该上线请求消息中携带的用户标识和客户端标识,然后建立该用户标识和客户端标识的绑定关系,并将该绑定关系添加在该上线用户名单中。

其中,该上线请求消息,可以是radius客户端发送的接入请求消息,即access-request(接入-请求)报文。该接入请求报文里携带了新扩展出的特定字段,该特定字段用于记录该radius客户端的客户端标识,该接入请求报文里的nas-id字段用于记录关联该radius客户端的用户终端的用户标识。当然,该接入请求报文里还可携带其他内容,比如用于记录接入设备的nas-ip字段等,这里不对该接入请求报文携带的内容进行特别的限定。

当然,该上线请求消息也可以是radius客户端发送的计费请求消息,即accounting-request(计费-请求)报文。该计费请求报文里携带了新扩展出的特定字段,该特定字段用于记录该radius客户端的客户端标识,该接入请求报文里的nas-id字段用于记录关联该radius客户端的用户终端的用户标识。当然,该计费请求报文里还可携带其他内容,比如用于记录接入设备的nas-ip字段等,这里不对该接入请求报文携带的内容进行特别的限定。

这里只是对上线请求消息进行示例性地说明,不对该上线请求消息进行具体地限定。

在本申请实施例中,当radius服务器接收到radius客户端发送的异常通知消息后,可以获取该异常通知消息中携带的异常客户端标识。

然后,radius服务器可以在该上线用户名单中,查找与该异常客户端标识对应的用户标识。

radius服务器可以断开与该查找到的用户标识所指示的用户终端的通信连接,并结束该对查找到的用户标识所指示的用户终端计费。

此外,radius服务器还可从该上线用户白名单中,删除包含该异常客户端标识的绑定关系。

这样做的好处在于,如果不将这些用户终端的用户标识从上线用户名单中删除,当连接该异常radius客户端的用户终端通过其他正常radius客户端上线时,由于上线用户名单中仍存在这些用户终端的用户标识,radius服务器会认为这些用户终端仍在线,从而会拒绝这些用户终端的接入。所以将这些用户终端的用户标识从上线用户白名单中删除,可以保证这些用户终端可以通过其他正常radius客户端接入radius服务器。

由上述描述可知,一方面,由于radius客户端在发生异常后,radius服务器会接收到携带有该异常radius客户端的异常通知消息;另一方面,由于radius服务器上不单单只记录了用户终端信息,还记录的了用户终端的用户标识与该用户终端所连接的radius客户端的客户端标识的绑定关系,这就使得当radius服务器接收到异常通知消息后,可以基于该绑定关系,确定出该异常的radius客户端所绑定的用户终端,并结束对该用户终端的计费。相比于现有技术中的结束用户计费方法,由于本申请radius服务器不需要等待预设时长,所以本申请提供的结束计费方法更准确。

实施例1:

下面以proxy环境的radius组网,并且该组网中的接入设备是非分布式物理接入设备为例,结合图2,对本申请提出的结束计费方法进行说明。

需要说明的是,由于接入设备是非分布式物理接入设备,所以该proxy环境的radius组网中的接入设备201就是radius客户端201,接入设备202就是radius客户端202,接入设备203就是radius客户端203。这三个接入设备与代理服务器相连,代理服务器与radius服务器相连。

下面以用户终端201上线,以及以上文所述的上线请求消息为计费请求报文为例,进行说明。

当用户终端201需要上线时,用户终端201可向radius客户端201发送用户在用户终端201上录入的用户信息(比如,用户名和密码等信息)。

当接收到用户终端201发送的用户信息后,radius客户端201可向代理服务器发送接入请求消息。该接入请求消息携带有用户终端201、用户终端201所连接的radius客户端201、以及代理服务器的ip地址。

代理服务器将该接入请求消息发送给radius服务器,radius服务器对该接入请求消息中的用户信息进行认证。若认证通过,radius服务器可通过代理服务器向radius客户端201发送认证接受消息。若认证不通过,radius服务器可通过代理服务器向radius客户端201发送认证拒绝消息。

当radius客户端201接收到radius服务器返回的认证拒绝消息后,拒绝该用户终端201接入。

当radius客户端201接收到radius服务器返回的认证接受消息后,radius客户端201可向radius服务器发送计费请求消息。该计费请求消息里携带了用户终端201、用户终端201所连接的radius客户端201(即接入设备201)以代理服务器的ip地址。

当radius服务器接收到该计费请求消息后,可建立该计费请求消息里携带的用户终端201和radius客户端201绑定关系,并将该绑定关系添加在上线用户列表中。同时radius服务器开始对用户终端201的计费,并向raidus客户端201返回计费请求消息的响应消息。

同样的,当用户终端202、用户终端203、用户终端204和用户终端205上线时,也会采用上述方式,将用户终端202与radius客户端201(即接入设备201)的绑定关系、用户终端203和radius客户端202(即接入设备202)的绑定关系,以及用户终端204和用户终端205分别与radius客户端203(即接入设备203)的绑定关系记录在上线用户列表中。形成的上线用户列表如表1所示。当然,该上线用户列表中还可记录其他内容,比如代理服务器的ip地址,这里不对上线用户列表进行具体地限定。

表1

假设,radius客户端201检测到radius客户端201需要重启,radius客户端201可以通过代理服务器向radius服务器发送异常通知消息(比如accounting-on报文等),该异常通知消息携带有radius客户端201.

当radius服务器接收到该异常通知消息后,可以在表1中查找与该异常通知消息携带的radius客户端201对应的用户终端(即用户终端201,用户终端202)。然后,radius客户端可以断开与用户终端201和用户终端202的通信连接,并结束对用户终端201和用户终端202的计费,同时,在表1中删除radius客户端201与用户终端201的对应关系,以及删除radius客户端201与用户终端202的对应关系。

实施例2:

下面以非proxy环境的radius组网,并且该组网中的接入设备是分布式物理接入设备为例,结合图4,对本申请提出的结束计费方法进行说明。

在图4中,接入设备401与radius服务器相连。假设接入设备是分布式物理接入设备,该分布式物理接入设备中包括两块用于连接用户终端的接口板,分别为接口板401和接口板402。接口板401和接口板402分别是radius客户端401和radius客户端402。用户终端401和用户终端402与接口板401相连,用户终端403与接口板402相连。

下面以用户终端401上线,以及以上文所述的上线请求消息为接入请求报文为例,进行说明。

当用户终端401需要上线时,用户终端401可向radius客户端401发送用户在用户终端401上录入的用户信息。

当radius客户端401(即接口板401)接收到用户终端401发送的用户信息(比如,用户名和密码等)后,向radius服务器发送接入请求消息。该接入请求消息携带有用户终端401、用户终端401所连接的radius客户端401、以及接入设备401。

radius服务器可获取该接入请求消息中携带的radius客户端401和用户终端401,然后建立radius客户端401和用户终端401的绑定关系,并将该绑定关系添加在上线用户列表中。

同样的,当用户终端402、用户终端403上线时,也会采用上述方式,将用户终端402与radius客户端401(即接口板401)的绑定关系、用户终端403和radius客户端402(即接口板402)的绑定关系记录在上线用户列表中。形成的上线用户列表如表2所示。当然,该上线用户列表中还可记录其他内容,比如接入设备的ip地址,这里不对上线用户列表进行具体地限定。

表2

radius客户端402和radius401之间可以通过接入设备401中的主控板(图4中未示出)交互心跳报文来检测彼此是否故障。

假设,radius客户端402在预设时长内未接收到radius客户端401的心跳报文,radius客户端402确定radius客户端401故障。radius客户端402可以向radius服务器发送异常通知消息(比如accounting-on报文等),该异常通知消息携带有radius客户端401。

当radius服务器接收到该异常通知消息后,可以在表2中查找与该异常通知消息携带的radius客户端401对应的用户终端(即用户终端401,用户终端402)。然后,radius客户端可以断开与用户终端401和用户终端402的通信连接,并结束对用户终端401和用户终端402的计费,同时,在表2中删除radius客户端401与用户终端401的绑定关系,以及删除radius客户端401与用户终端402的绑定关系。

参见图5,图5是本申请一示例性实施例示出的一种radius服务器的硬件结构图。

该radius服务器包括:通信接口501、处理器502、机器可读存储介质503和总线504;其中,通信接口501、处理器502和机器可读存储介质503通过总线504完成相互间的通信。处理器502通过读取并执行机器可读存储介质503中与结束计费控制逻辑对应的机器可执行指令,可执行上文描述的结束计费方法。

本文中提到的机器可读存储介质403可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:易失存储器、非易失性存储器或者类似的存储介质。具体地,机器可读存储介质403可以是ram(radomaccessmemory,随机存取存储器)、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。

参见图6,图6是本申请一示例性实施例示出的一种结束计费装置的框图。该装置可应用在radius服务器上,可包括如下单元。

接收单元601,用于接收异常通知消息,所述异常通知消息包括异常radius客户端标识;

查找单元602,用于在上线用户名单中,查找与所述异常radius客户端标识绑定的用户标识;所述上线用户名单用于记录上线用户终端的用户标识与上线用户终端所连接的radius客户端的客户端标识之间的绑定关系;

结束单元603,用于断开与所述用户标识所指示的用户终端的通信连接,并结束对所述用户标识所指示的用户终端的计费。

可选的,所述接收单元601,还用于接收radius客户端发出的上线请求消息,所述上线请求消息包括上线用户终端的用户标识和所述radius客户端的客户端标识;

所述装置还包括:

建立单元604,用于建立所述用户标识和所述客户端标识之间的绑定关系,并将该绑定关系添加至所述上线用户名单。

可选的,所述接收单元601,用于接收第一radius客户端或者代理服务器发送的异常通知消息;

其中,当所述用户终端通过非分布式物理接入设备接入所述radius服务器时,所述第一radius客户端为所述非分布式物理接入设备;

当所述用户终端通过堆叠设备接入所述radius服务器时,所述第一radius客户端为所述堆叠设备中的成员设备;

当所述用户终端通过分布式物理接入设备接入所述radius服务器时,所述第一radius客户端为所述分布式物理接入设备中连接用户终端的单板。

可选的,所述异常通知消息为所述第一radius客户端在检测到该第一radius客户端重启后发出;

所述异常radius客户端标识为所述第一radius客户端标识;和/或;

所述异常通知消息为所述第一radius客户端在检测到第二radius客户端故障时发出;所述第二radius客户端为与所述第一radius客户端保持通信连接的另一客户端,所述异常radius客户端标识为所述第二radius客户端标识;和/或;

所述异常通知消息为所述第一radius客户端或者所述代理服务器在接收到携带有用户输入的第三radius客户端标识的指令时发出;所述异常radius客户端标识为所述第三radius客户端标识;和/或;

所述异常通知消息为所述代理服务器在检测到第四radius客户端故障时发出;所述第四radius客户端为与所述代理服务器保持通信连接的客户端;所述异常radius客户端标识为所述第四radius客户端标识。

可选的,所述装置还包括:

删除单元605,用于在上线用户名单中,查找与所述异常radius客户端标识对应的用户标识之后,从所述上线用户名单中,删除包含该异常radius客户端标识的绑定关系。

这样做的好处在于,如果不将这些用户终端的用户标识从上线用户名单中删除,当连接该异常radius客户端的用户终端通过其他正常radius客户端上线时,由于上线用户名单中仍存在这些用户终端的用户标识,radius服务器会认为这些用户终端仍在线,从而会拒绝这些用户终端的接入。所以将这些用户终端的用户标识从上线用户白名单中删除,可以保证这些用户终端可以通过其他正常radius客户端接入radius服务器。

上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。

对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1