Diameter链路的建立方法和Diameter网元转让专利

申请号 : CN200910163463.9

文献号 : CN101621476B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 宋大猛甘斌陈刚

申请人 : 中兴通讯股份有限公司

摘要 :

本发明提供了一种Diameter链路的建立方法和Diameter网元,根据本发明的Diameter链路的建立方法包括:在第一Diameter节点和第二Diameter节点之间建立第一底层承载链路和第二底层承载链路;第一Diameter节点通过第一底层承载链路或第二底层承载链路向第二Diameter节点发送能力交换请求消息;如果能力交换成功,第一Diameter节点接收来自第二Diameter节点的成功响应。这样,在当前承载Diameter链路的底层承载链路发生异常的情况下,两个Diameter网元之间可以通过第二条底层承载链路进行通信,从而提高了Diameter链路的可靠性。

权利要求 :

1.一种Diameter链路的建立方法,其特征在于,包括:

在第一Diameter节点和第二Diameter节点之间建立第一底层承载链路和第二底层承载链路,其中所述第一底层承载链路和所述第二底层承载链路对应一条Diameter链路;

所述第一Diameter节点通过所述第一底层承载链路或所述第二底层承载链路向所述第二Diameter节点发送能力交换请求消息;

如果能力交换成功,所述第一Diameter节点接收来自第二Diameter节点的成功响应。

2.根据权利要求1所述的方法,其特征在于,在所述第一Diameter节点接收来自第二Diameter节点的成功响应之后,所述方法还包括:所述第一Diameter节点与所述第二Diameter节点通过所述第一底层承载链路进行通信;

在所述第一底层承载链路出现故障时,所述第一Diameter节点与所述第二Diameter节点通过所述第二底层承载链路进行通信。

3.根据权利要求1所述的方法,其特征在于,在所述第一Diameter节点接收来自第二Diameter节点的成功响应之后,所述方法还包括:所述第一Diameter节点与所述第二Diameter节点通过所述第二底层承载链路进行通信;

在所述第二底层承载链路出现故障时,所述第一Diameter节点与所述第二Diameter节点通过所述第一底层承载链路进行通信。

4.根据权利要求1所述的方法,其特征在于,所述在第一Diameter节点和第二Diameter节点之间建立第一底层承载链路包括:分别在第一Diameter节点和第二Diameter节点上,为所述第一底层承载链路配置所述第一Diameter节点的IP地址和第一端口号以及所述第二Diameter节点的IP地址和第二端口号。

5.根据权利要求4所述的方法,其特征在于,所述在第一Diameter节点和第二Diameter节点之间建立第二底层承载链路包括:分别在第一Diameter节点和第二Diameter节点上,为所述第二底层承载链路配置所述第一Diameter节点的IP地址和第三端口号以及所述第二Diameter节点的IP地址和第四端口号,其中,所述第三端口号与所述第一端口号不同,所述第四端口号与所述第二端口号不同。

6.根据权利要求1所述的方法,其特征在于,所述能力交换请求消息中携带的信息包括:所述第一Diameter节点的本地主机名、域名和支持能力。

7.根据权利要求1所述的方法,其特征在于,如果能力交换失败,则所述方法还包括:所述第二Diameter节点向所述第一Diameter节点发送携带有能力交换失败信息的响应。

8.根据权利要求1至7中任一项所述的方法,其特征在于,所述第一底层承载链路为SCTP承载链路,所述第二底层承载链路为TCP承载链路。

9.一种Diameter网元,其特征在于,包括:

建立模块,用于在所述Diameter网元与另一个Diameter网元之间建立第一底层承载链路和第二底层承载链路,其中所述第一底层承载链路和所述第二底层承载链路对应一条Diameter链路;

发送模块,用于通过所述第一底层承载链路或第二底层承载链路向所述另一个Diameter网元发送能力交换请求消息;

接收模块,用于在能力交换成功之后接收来自所述另一个Diameter网元的成功响应。

10.根据权利要求9所述的网元,其特征在于,包括:

交互模块,用于在接收所述成功响应之后通过第一底层承载链路和第二底层承载链路中的一个与所述另一个Diameter网元进行通信,并且在所述第一底层承载链路和第二底层承载链路中的所述一个出现故障时通过第一底层承载链路和第二底层承载链路中的另一个与所述另一个Diameter网元进行通信。

说明书 :

Diameter链路的建立方法和Diameter网元

技术领域

[0001] 本发明涉及通信领域,具体而言,涉及一种Diameter链路(直径链路)的建立方法和Diameter网元。

背景技术

[0002] 对于商业化运营的通信网络来说,AAA(Authentication、Authorization、Accounting,认证、授权、计费),即认证、授权以及计费体制是其运营的基础。Diameter协议族是新一代的AAA技术,由于其强大的可扩展性和安全性,使其备受关注。越来越多的电信运营商选择Diameter作为其进行认证,授权,计费的基础协议。
[0003] Diameter不同于原先的Radius协议,其基于可靠传输协议SCTP(Stream Control Transmission Protocol,流控制传输协议)或者TCP(Transfer Control Protocol,传输控制协议)的基础上,即通信的两个Diameter对等端实体之间始终保持一条可靠的链路。RFC3588协议中的链路状态机表明,任何两个Diameter对等端之间只能保留一条Diameter链路。协议规定在底层承载建立之后,需要在该承载上发送CER(Capabilities Exchange Request,能力交换请求)消息,以完成后续的能力交换。如果两端之间存在两条链路,则在通过链路选举(Election)功能后,只保留一条有效链路,另一条链路将被关闭。
[0004] 首先了解一下Diameter节点之间Diameter链路的概念。Diameter链路是Diameter节点之间通信的通道。它不是SCTP或者TCP链路,是基于SCTP或TCP链路之上的高层协议链路。
[0005] 本文提到的底层承载链路是指SCTP或者TCP承载链路。Diameter链路是承载于底层承载链路之上通过Diameter能力交换成功之后确立的链路。
[0006] 根据协议,在基于Diameter协议的通信网络中,Diameter对等端之间的通信是基于可靠的SCTP或者TCP承载链路进行的。因此当一个Diameter节点需要与另一个Diameter节点进行通信时,首先必须建立起与另一个节点之间的承载SCTP链路或者TCP链路。一般的方法是通过在本节点上配置本端IP地址,端口号,对端IP地址,端口号以及使用的承载协议,其中,两个对等端的链路配置需要对应。
[0007] 通常,一条Diameter链路对应一条底层承载链路。其Diameter链路的建立过程主要包括如下的步骤S102至S108:
[0008] 步骤S102,作为客户端的Diameter节点通知SCTP层或者TCP层建立底层承载链路。底层承载SCTP或者TCP链路的建立符合标准的协议规定,在此不再详细描述。
[0009] 步骤S104,当底层承载链路建立成功后,Diameter节点发送CER(Capability Exchange Request,能力交换请求)消息,该CER消息中携带本地主机名,域名,以及相应的支持的能力。
[0010] 步骤S106,对等端接收到CER消息后,根据本地配置,进行能力匹配,如果匹配成功,就回复正确的CEA(Capability ExchangeAnswer,能力交换响应)消息。否则,回复错误应答,或者直接丢弃消息。
[0011] 步骤S108,能力交换成功后,标志着这条Diameter链路成功建立。以后的认证,授权,计费等消息就可以在该链路上收发。
[0012] 上述的方案中,Diameter节点间只存在一条Diameter链路进行通信,每条Diameter链路对应于一条底层承载链路。
[0013] 由于Diameter两节点间只有一条Diameter链路,两个对等端之间的通信只能在一条SCTP或者TCP承载链路上进行,这样,当业务量很大时,SCTP或者TCP承载链路可能会超负荷运行,从而在SCTP或者TCP承载链路发生故障时,两个Diameter节点间的通信将发生中断。
[0014] 在底层承载链路(如SCTP或者TCP承载链路)建立成功之后,Diameter协议层面进行能力协商,完成Diameter链路的建立。在这个过程中一旦能力交换完成,中间不会再因为能力交换问题导致链路中断或不稳定,所以大部分的故障来源于底层承载链路的不稳定。又由于Diameter协议栈规定的能力协商与链路选举功能的存在,又无法直接在两个Diameter节点之间建立两条相同的Diameter链路。
[0015] 为了提高链路的可靠性,传统的方法是:如图1所示,增加备用服务器,一旦Diameter节点1与对等端的Diameter节点2通信发生异常,就切换到Diameter备用节点2;或者是通过在两个对等端之间增加相应的Diameter链路作为备份。但是这两种方法都存在弊端。增加备用对等端提高了成本,并且在主用对等端发生失败的时候,需要额外的操作重新选择链路发往备用对等端。而对于另一种传统方法,即,增加两端之间的Diameter链路,其中,在能力交换时使用多个对等端标识,避免链路选举功能通过对等端标识关闭其中一条链路,这样,由于两端之间存在两条Diameter链路,必然会增加选择链路的算法,发生故障时切换到备用链路也需要上层应用进行额外的操作。
[0016] 针对相关技术中Diameter链路的建立方法会造成Diameter链路可靠性较低的问题,目前尚未提出有效的解决方案。

发明内容

[0017] 针对相关技术中Diameter链路的建立方法会造成Diameter链路可靠性较低的问题而提出本发明,为此,本发明的主要目的在于提供一种Diameter链路的建立方法和Diameter网元,以解决上述问题至少之一。
[0018] 为了实现上述目的,根据本发明的一个方面,提供了一种Diameter链路的建立方法。
[0019] 根据本发明的Diameter链路的建立方法包括:在第一Diameter节点和第二Diameter节点之间建立第一底层承载链路和第二底层承载链路;第一Diameter节点通过第一底层承载链路或第二底层承载链路向第二Diameter节点发送能力交换请求消息;如果能力交换成功,第一Diameter节点接收来自第二Diameter节点的成功响应。
[0020] 根据本发明的另一方面,提供了Diameter网元。
[0021] 根据本发明的Diameter网元包括:建立模块,用于在Diameter网元与另一个Diameter网元之间建立第一底层承载链路和第二底层承载链路;发送模块,用于通过第一底层承载链路或第二底层承载链路向另一个Diameter网元发送能力交换请求消息;接收模块,用于在能力交换成功之后接收来自另一个Diameter网元的成功响应。
[0022] 优选地,上述网元还包括交互模块,该交互模块用于在接收成功响应之后通过第一底层承载链路和第二底层承载链路中的一个与另一个Diameter网元进行通信,并且在第一底层承载链路和第二底层承载链路中的一个出现故障时通过第一底层承载链路和第二底层承载链路中的另一个与另一个Diameter网元进行通信。
[0023] 根据本发明,在建立一条Diameter链路时,分别建立两条底层承载链路,这样,在当前承载Diameter链路的底层承载链路发生异常的情况下,两个Diameter网元之间可以通过第二条底层承载链路进行通信,从而提高了Diameter链路的可靠性,简化处理过程,节省成本。

附图说明

[0024] 此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
[0025] 图1是根据现有技术的Diameter节点之间的通信链路的示意图;
[0026] 图2是根据本发明实施例的Diameter节点之间的通信链路的示意图;
[0027] 图3是根据本发明的Diameter链路的建立方法的流程图;
[0028] 图4是根据本发明实施例的Diameter链路的建立方法的流程图;
[0029] 图5是根据本发明实施例的Diameter网元的结构图。

具体实施方式

[0030] 下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
[0031] 功能概述
[0032] 考虑到相关技术中Diameter链路的建立方法会造成Diameter链路可靠性较低的问题,本发明提供一种Diameter链路的建立方法和Diameter网元。根据本发明的Diameter链路的建立方法,在建立一条Diameter链路时,分别建立两条底层承载链路,这样,在当前承载Diameter链路的底层承载链路发生异常的情况下,两个Diameter网元之间可以通过第二条底层承载链路进行通信,从而提高了Diameter链路的可靠性,简化处理过程,节省成本。
[0033] 方法实施例
[0034] 根据本发明的实施例,提供了一种Diameter链路的建立方法。
[0035] 图2是根据本发明实施例的Diameter节点之间的通信链路的示意图。如图2所示,Diameter网元实体可以包括Diameter节点1和Diameter节点2,其中,Diameter节点1可以为Diameter客户端(Diameter Client),而Diameter节点2可以为Diameter服务器(Diameter Server)。在图2中,黑色的粗体线表示两个Diameter节点之间的Diameter链路,两条虚线分别表示Diameter链路需要承载的两条底层承载链路,即,SCTP承载链路和TCP承载链路。
[0036] 图3是根据本发明的Diameter链路的建立方法的流程图。如图3所示,该Diameter链路的建立方法包括如下的步骤S302至步骤S306:
[0037] 步骤S302,在第一Diameter节点和第二Diameter节点之间建立第一底层承载链路和第二底层承载链路。
[0038] 例如,在Diameter节点1和Diameter节点2之间建立两条底层承载链路,即,SCTP承载链路和TCP承载链路。
[0039] 步骤S304,第一Diameter节点通过第一底层承载链路或第二底层承载链路向第二Diameter节点发送能力交换请求消息。
[0040] 例如,当两条底层承载链路都成功建立后,Diameter节点1可以通过SCTP承载链路发送CER消息,以便与Diameter节点2进行能力交换。
[0041] 步骤S306,如果能力交换成功,第一Diameter节点接收来自第二Diameter节点的成功响应。
[0042] 此外,该Diameter链路的建立方法还包括如下步骤:
[0043] 步骤S308,在第一Diameter节点接收到来自第二Diameter节点的成功响应之后,Diameter链路成功建立,两个Diameter节点之间可以通过这条Diameter链路进行消息通信。在通信时,可以选用SCTP承载链路作为Diameter链路的承载链路。
[0044] 步骤S310,在Diameter链路的承载链路SCTP发生断链的情况下,两个Diameter节点通过备选的TCP承载链路继续进行通信,这样,可以使得Diameter链路不中断,从而提高了Diameter链路的可靠性。此外,由于不用在Diameter客户端和Diameter服务器之间建立两条Diameter链路,从而简化了处理过程,节省成本。
[0045] 步骤S312,经过一段时间后,当SCTP承载链路恢复正常,则Diameter链路仍然可以选用SCTP承载链路作为通信链路进行消息通信。
[0046] 图4是根据本发明实施例的Diameter链路的建立方法的流程图。下面结合附图4对本发明实施例的具体实现加以描述:
[0047] 步骤S402,在Diameter节点1和Diameter节点2之间,配置一条Diameter链路,该Diameter链路基于两条底层承载链路,相应地配置两条承载链路所需的两端的IP地址和端口号以及相应的底层承载类型。
[0048] 具体地包括:步骤S4022,分别在Diameter节点1和Diameter节点2上,为SCTP承载链路配置Diameter节点1的IP地址和第一端口号以及Diameter节点2的IP地址和第二端口号;步骤S4024,分别在Diameter节点1和Diameter节点2上,为TCP承载链路配置Diameter节点1的IP地址和第三端口号以及Diameter节点2的IP地址和第四端口号,其中,所述第三端口号与所述第一端口号不同,所述第四端口号与所述第二端口号不同,即,SCTP承载链路和TCP承载链路所用的端口号不能冲突。
[0049] 此外,Diameter节点1上配置的对端的主机名和对端的域名指的是Diameter节点2的主机名和域名。
[0050] Diameter链路关联上述配置的两条底层承载链路,即,SCTP承载链路和TCP承载链路。也就是,在上述两条底层承载链路上承载该Diameter链路。
[0051] 步骤S404,根据配置,Diameter节点1和Diameter节点2分别建立SCTP承载链路和TCP承载链路。
[0052] 所述建立底层承载链路是指建立SCTP承载链路和建立TCP承载链路,两条底层承载链路根据配置的地址和端口号分别建起链路。
[0053] 步骤S406,Diameter节点1或者Diameter节点2在两条底层承载链路都建立成功后,优先选择SCTP承载链路进行Diameter链路的能力交换过程。
[0054] 上述的能力交换过程是指作为客户端的Diameter节点1,向对端(即,作为服务器端的Diameter节点2)发送CER(CapabilityExchange Request,能力交换请求)消息。该CER消息优先通过SCTP承载链路发送。
[0055] 作为服务器端的Diameter节点2在接收到CER消息之后,对作为客户端的Diameter节点1进行验证,例如,对Diameter节点1的主机名和支持能力进行匹配,如果匹配通过,则回复正确的CEA(Capability Exchange Answer,能力交换响应)消息。Diameter节点1在接收到CEA消息之后认为Diameter链路已经正常建立。
[0056] 步骤S408,Diameter链路在能力交换成功后成功建立,两个Diameter节点之间进行正常的消息通信。此时,Diameter链路优先使用的是SCTP承载链路。
[0057] 步骤S410,一旦SCTP承载链路发生故障,Diameter链路将快速切换到已经握手成功并建立好的TCP承载链路上。通过TCP承载链路,两个Diameter节点之间仍然可以正常通信。
[0058] 综上所述,在两个Diameter节点间只保留一条Diameter链路的情况下,本发明增加了一条不同协议的底层承载链路,这样,承载链路间可以互为备份。Diameter节点间发送消息只与Diameter链路相关,不关心底层承载链路的变化,也就是,其中一条底层承载链路发生故障后,上层应用发送或者接收消息,不受底层承载链路变化的影响,也不需要进行额外的重新选择链路操作,从而保证了Diameter链路的可靠性,并简化了处理过程,节省成本。
[0059] 装置实施例
[0060] 根据本发明的实施例,提供了一种Diameter网元。
[0061] 图5是根据本发明实施例的Diameter网元的结构图。如图5所示,该Diameter网元主要包括:建立模块502,用于在Diameter网元与另一个Diameter网元之间建立第一底层承载链路和第二底层承载链路;发送模块504,连接至建立模块502,用于通过第一底层承载链路或第二底层承载链路向另一个Diameter网元发送能力交换请求消息;接收模块506,连接至发送模块504,用于在能力交换成功之后接收来自另一个Diameter网元的成功响应。
[0062] 此外,该Diameter网元还包括:交互模块508,连接至接收模块506,用于在接收成功响应之后通过第一底层承载链路和第二底层承载链路中的一个与另一个Diameter网元进行通信,并且在第一底层承载链路和第二底层承载链路中的所述一个出现故障时通过第一底层承载链路和第二底层承载链路中的另一个与另一个Diameter网元进行通信。
[0063] 上述的能力交换过程是指作为客户端的Diameter节点1,向对端(即,作为服务器端的Diameter节点2)发送CER(CapabilityExchange Request,能力交换请求)消息。该CER消息优先通过SCTP承载链路发送。
[0064] 作为服务器端的Diameter节点2在接收到CER消息之后,对作为客户端的Diameter节点1进行验证,例如,对Diameter节点1的主机名和支持能力进行匹配,如果匹配通过,则回复正确的CEA(Capability Exchange Answer,能力交换响应)消息。Diameter节点1在接收到CEA消息之后认为Diameter链路已经正常建立。
[0065] 上述Diameter网元与另一个Diameter网元之间的Diameter链路对应了两条底层承载链路,即,SCTP承载链路和TCP承载链路。也就是,在上述两条底层承载链路上承载Diameter链路。
[0066] 在正常通信时,两个Diameter节点之间可以通过SCTP承载链路来承载Diameter链路,以便在两个Diameter节点之间进行通信。一旦SCTP承载链路发生故障,Diameter链路将快速切换到已经握手成功并建立好的TCP承载链路上。通过TCP承载链路,两个Diameter节点之间仍然可以正常通信,从而提高了Diameter链路的可靠性。
[0067] 综上所述,在两个Diameter节点间只保留一条Diameter链路的情况下,本发明增加了一条不同协议的底层承载链路,这样,承载链路间可以互为备份。Diameter节点间发送消息只与Diameter链路相关,不关心底层承载链路的变化,也就是,其中一条底层承载链路发生故障后,上层应用发送或者接收消息,不受底层承载链路变化的影响,也不需要进行额外的重新选择链路操作,从而保证了Diameter链路的可靠性,并简化了处理过程,节省成本。
[0068] 需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
[0069] 显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
[0070] 以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。