专利名称:提高Diameter节点间通信可靠性的方法
技术领域:
本发明涉及网络通信技术领域,尤其涉及一种提高Diameter节点间通信可靠性的方法。
背景技术:
自网络诞生以来,AAA(Authentication、Authorization、Accounting,鉴别、授权、计费),即认证、授权以及计费体制就成为其运营的基础。网络中各类资源的使用,需要由认证、授权和计费进行管理。对于一个商业系统来说,鉴别是至关重要的,只有确认了用户的身份,才能知道所提供的服务应该向谁收费,同时,也能防止非法用户(黑客)对网络进行破坏。在确认用户身份后,根据用户开户时所申请的服务类别,系统可以授予客户相应的权限,即授权。最后,在用户使用系统资源时,需要有相应的设备来统计用户所对资源的占用情况,据此向客户收取相应的费用。
Diameter系列协议是新一代的AAA技术,由于其强大的可扩展性和安全保证,正在得到越来越多的关注。在ITU(国际电信联盟),3GPP和3GPP2等国际标准组织中,已经正式将其作为NGN(下一代网络),WCDMA(宽带码分多址)和cdma2000等未来通信网络的首选AAA协议。
Diameter协议下层使用SCTP(流控制传送协议)和TCP(传送控制协议)协议通信。当两个Diameter协议的实体要互相通信时,首先需要建立SCTP和TCP协议的相关连接。当两个Diameter协议实体不再通信时,可以断开建立的SCTP和TCP协议的相关连接。
在基于Diameter协议的通信网络中,Diameter节点之间需要进行通信以实现相应的功能。所述的Diameter节点是指实现Diameter协议的物理实体。
当Diameter节点一需要与Diameter节点二进行通信时,首先,需要在Diameter节点一上配置Diameter节点二的端口号、IP地址,以及使用的连接协议SCTP或者TCP,以及Diameter节点二的节点名信息。其次,还需要在Diameter节点二上配置作为服务器端,使用的IP地址、端口号,以及所采用的连接协议等信息,而且,需要与Diameter节点一上配置的信息一致。
下面将对在一个Diameter节点与对端的另一个Diameter节点之间建立连接的过程进行说明,如图1所示,具体包括步骤11Diameter节点根据配置的对端节点的服务器端口号和IP地址,发起建立相应的客户端连接的过程(Connect Establish),所述的对端节点接受客户端发起的连接建立请求,建立相应的连接;在执行该步骤之前,为保证能够可靠地建立连接,还需要对端节点打开一个服务器端口号,并在上面监听客户端的连接。
步骤12Diameter节点发送CER(Capablity Exchange Request,能力交换请求)命令,在该命令中携带本端Diameter节点的节点名。
步骤13对端节点收到CER后,通过查询本端配置的对端信息表,判断CER中的节点名是否合法,如果能够查询得到,并且该对端没有连接,就回送正确CEA(Capablity Exchange Answer,能力交换响应)消息;如果查询不到,或者该对端已经建立有连接,那么就回送错误的CEA消息,或者直接释放该连接,同样,CEA中携带本端Diameter节点的节点名。
步骤14当Diameter节点收到CEA后,如果是错误的CEA,Diameter节点直接释放连接;如果是正确的CEA,则通过查询本端配置的对端信息表,判断CEA中的节点名是否合法,如果不合法就释放连接,如果合法Diameter节点间的连接就成功建立起来了。
需要说明的是在实际Diameter节点通信过程中,如图2所示,Diameter节点之间只使用一条连接进行通信。
由于Diameter节点间只有一条连接,因此,当相应的连接发生故障时,则相应的两Diameter节点间就无法进行通信了,导致系统的可靠性低。
而且,在上述应用过程中,任何一个伪造的Diameter节点只要冒充了一个合法Diameter节点的名字,就可以假冒合法Diameter节点与其它Diameter节点建立连接。从而使得Diameter节点间的通信安全性无法得到保证。
发明内容
鉴于上述现有技术所存在的问题,本发明的目的是提供一种提高Diameter节点间通信可靠性的方法,保证当Diameter节点间的连接发生故障时,可以通过其他的备用连接保证Diameter节点间通信的正常进行。
本发明的目的是通过以下技术方案实现的本发明提供了一种提高Diameter节点间通信可靠性的方法,包括确定Diameter节点间的多条连接,当确定Diameter节点间用于通信的连接无法进行正常通信时,则在所述的Diameter节点间选择另外一条连接进行Diameter节点间的通信。
所述的提高Diameter节点间通信可靠性的方法具体包括A、在Diameter节点间建立多条连接;B、当Diameter节点间正在用于通信的连接发生故障时,则在所述建立的多条连接中重新选择新的连接,并用于进行Diameter节点间的通信;或者,在Diameter节点间采用多条连接分担Diameter节点间的负荷,且当Diameter节点间正在用于通信的连接发生故障时,则将相应连接上的业务切换到其他连接上传输,实现Diameter节点间的通信。
所述的提高Diameter节点间通信可靠性的方法具体包括C、当Diameter节点间正在用于通信的连接发生故障时,则重新在所述的Diameter节点间的建立一条连接;D、在所述Diameter节点间利用重新建立的一条连接实现Diameter节点间的通信。
所述的提高Diameter节点间通信可靠性的方法还包括E、在Diameter节点上配置Diameter节点间的连接的属性信息,在Diameter节点间根据所述的连接的属性信息建立Diameter节点间的连接。
所述的步骤E包括在需要进行通信的两个Diameter节点上分别配置所述连接的属性信息。
所述的连接的属性信息包括对端Diameter节点使用的IP地址和端口号,以及本端Diameter节点使用的IP地址和端口号、本端是客户端还是服务器端、连接协议信息和/或对端Diameter节点名称。
所述的步骤E包括E1、作为客户端的Diameter节点向作为服务器端的Diameter节点发送连接建立请求命令;E2、所述作为服务器端的Diameter节点收到所述命令后,根据配置的连接的属性信息检查请求建立的连接是否合法,如果合法,则继续建立连接过程,否则,拒绝该连接建立请求。
所述的步骤E2还包括E21、当底层连接建立成功后,作为客户端的Diameter节点向作为服务器端的Diameter节点发送能力交换请求;E22、作为服务器端的Diameter节点根据配置的连接的属性信息及所述请求中携带的节点名称信息对对端的合法性进行验证,如果验证通过,则回送正确的能力交换应答,否则,作为服务器端的Diameter节点释放所述的底层的连接,或者,向回送错误的能力交换应答后再释放所述底层的连接。
所述的步骤E22还包括在所述的正确的能力交换应答中携带本端的节点名称信息,当客户端Diameter节点收到所述的应答后,且根据所述的节点名称信息判断服务器端Diameter节点为非法时,则释放所述连接;而且,客户端Diameter节点收到对端回送的错误的能力交换应答时,则释放所述的连接。
由上述本发明提供的技术方案可以看出,由于本发明在Diameter节点间可以建立多条连接,且连接间可以互为备份,从而保证当Diameter节点间的一条连接发生故障时,可以使用其他备用的连接进行Diameter节点间的通信,以提高系统中Diameter节点间通信的可靠性。
同时,还由于Diameter节点间的连接为基于配置信息建立,因此,对于没有配置的连接则无法接入,即对于非法的Diameter节点则无法建立与对端Diameter节点间的连接,从而保证了Diameter节点间连接的安全性。
图1为现有技术中Diameter节点间建立连接的过程示意图;图2为Diameter节点间建立的连接的示意图;图3为本发明所述的方法的处理过程示意图;图4为本发明中Diameter节点间建立的连接的示意图;图5为本发明中在Diameter节点间建立连接的处理过程示意图。
具体实施例方式
本发明的核心是在Diameter节点间建立多条连接,并令多条连接间互为备份,从而保证当一条连接出现故障时,可以使用其他连接进行Diameter节点间的通信。
下面将结合附图对本发明所述的方法的具体实现进行说明。
本发明所述的方法在具体实现过程中,如图3所示,Diameter节点一与Diameter节点二间的通信为例,具体包括以下处理步骤步骤31确定Diameter节点一和Diameter节点二之间需要且可以建立的多条连接。
步骤32在Diameter节点上配置所述各连接的属性;具体为在Diameter节点一上配置与Diameter节点二间每条连接的属性,同时,在Diameter节点二上也需要配置该连接的属性;所述的连接的属性包括本端使用的IP地址和端口号,远端的IP地址和端口号,本端是客户端还是服务器端,以及连接协议SCTP还是TCP,该连接所属的对端节点名等;而且,所述连接在Diameter节点一和Diameter节点二上的配置属性需要匹配,具体是指(1)Diameter节点一上配置的该连接的本端地址和端口号,是Diameter节点二上配置的该连接的远端地址和端口号;Diameter节点一上配置的该连接的远端地址和端口号,是Diameter节点二上配置的该连接的本端地址和端口号;(2)Diameter节点一上配置的该连接为客户端,那么Diameter节点二上配置的该连接必须为服务器端,Diameter节点一上配置的该连接为服务器端,那么Diameter节点二上配置的该连接必须为客户端;(3)Diameter节点一上配置的该连接的连接协议,需要和Diameter节点二上配置的该连接的连接协议一致;(4)Diameter节点一上配置的对端节点名就是Diameter节点二名,Diameter节点二上配置的对端节点名就是Diameter节点一名。
步骤33根据配置Diameter节点一和Diameter节点二间的多条连接的属性信息建立并使用相应的连接;对于所述的多条连接可以同时建立,也可以当一条连接故障,才建立另一条连接,如图4所示,在两个Diameter节点之间至少存在两条可用的连接,以提高两Diameter节点间通信的可靠性;当Diameter节点一与Diameter节点二间进行通信时,可以根据设定的选择策略选择使用多条连接中的任意连接,具体选择使用连接的策略包括(1)主备方式即优先级高的连接首先被选择,只有当优先级高的连接故障时,才选择优先级低的连接;(2)负荷分担方式即多个连接同时被使用,同时可以定义不同的负荷分担策略,例如平均负荷分担(多个连接的所用频率相等),权重负荷分担(权重高的连接使用的频率高,权重低的连接使用频率低);在负荷分担方式下,当某一个连接发生故障时,则将其传输的业务切换到其他正常的连接上进行传输,从而保证Diameter节点间通信的可靠进行。
为对本发明有更进一步的理解,下面将结合图5对Diameter节点一和Diameter节点二间连接的建立过程进行详细说明,具体如下步骤51连接的服务器端,根据连接配置信息,即配置的连接的属性信息,打开相应的服务器端口,监听客户端发送过来的连接;步骤52连接的客户端,根据连接配置信息,发起到服务器端的连接建立请求;步骤53当服务器端收到了该连接建立请求后根据配置的信息判断该连接信息是否为合法的连接建立请求信息;具体为根据连接建立请求消息中的客户端的IP地址和端口号,服务器端的IP地址和端口号,以及连接协议属性,查找连接配置表,如果该连接已经配置于服务器端,则确定该连接合法,执行步骤55,否则该连接不合法,执行步骤54;步骤54拒绝接受该连接。
步骤55在客户端与服务器端之间建立底层连接;步骤56当底层连接建立成功后,连接的客户端向服务器端发送CER(Capablity Exchange Request,能力交换请求)消息,同时,在所述的CER消息中携带自己的节点名称;步骤57连接的服务器端收到CER请求后,对客户端进行验证,并判断验证是否通过,具体为判断CER中携带的节点名称,是否与连接配置表中配置的对端节点名相等,如果相等,则验证通过,执行步骤58,否则,执行步骤59;步骤58向客户端回送正确的CEA(Capablity Exchange Answer,能力交换应答)消息,执行步骤510;步骤59向客户端发送错误的CEA消息,执行步骤510;具体可以为服务端直接释放底层连接,之后向客户端发送错误的CEA消息;或者,首先向客户端发送错误的CEA,然后再释放底层连接;所述的CEA消息中,错误码为未知的对端,在回送的CEA消息中同样携带连接服务器端的节点名;步骤510连接的客户端收到CEA响应后,判断是正确的响应还是错误的响应,如果是错误的响应,则执行步骤511,否则,执行步骤512;步骤511客户端就释放连接。
步骤512如果为正确的响应,则客户端需要进一步判断CEA中携带的节点名,是否与连接配置的节点名相等,如果不相等,则执行步骤511,否则,执行步骤513;步骤513客户端Diameter节点与服务器端Diameter节点之间的连接建立成功。
综上所述,本发明是在Diameter节点间建立多条连接,连接间互为备份,从而提高了系统的可靠性。同时,由于Diameter节点间的连接基于配置信息,对于没有配置的连接则无法接入,从而保证了Diameter节点间连接的安全性。
以上所述,仅为本发明较佳的具体实施方式
,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
权利要求
1.一种提高Diameter节点间通信可靠性的方法,其特征在于,包括确定Diameter节点间的多条连接,当确定Diameter节点间用于通信的连接无法进行正常通信时,则在所述的Diameter节点间选择另外一条连接进行Diameter节点间的通信。
2.根据权利要求1所述的提高Diameter节点间通信可靠性的方法,其特征在于,该方法具体包括A、在Diameter节点间建立多条连接;B、当Diameter节点间正在用于通信的连接发生故障时,则在所述建立的多条连接中重新选择新的连接,并用于进行Diameter节点间的通信;或者,在Diameter节点间采用多条连接分担Diameter节点间的负荷,且当Diameter节点间正在用于通信的连接发生故障时,则将相应连接上的业务切换到其他连接上传输,实现Diameter节点间的通信。
3.根据权利要求1所述的提高Diameter节点间通信可靠性的方法,其特征在于,该方法具体包括C、当Diameter节点间正在用于通信的连接发生故障时,则重新在所述的Diameter节点间的建立一条连接;D、在所述Diameter节点间利用重新建立的一条连接实现Diameter节点间的通信。
4.根据权利要求1、2或3所述的提高Diameter节点间通信可靠性的方法,其特征在于,该方法还包括E、在Diameter节点上配置Diameter节点间的连接的属性信息,在Diameter节点间根据所述的连接的属性信息建立Diameter节点间的连接。
5.根据权利要求4所述的提高Diameter节点间通信可靠性的方法,其特征在于,所述的步骤E包括在需要进行通信的两个Diameter节点上分别配置所述连接的属性信息。
6.根据权利要求4所述的提高Diameter节点间通信可靠性的方法,其特征在于,所述的连接的属性信息包括对端Diameter节点使用的IP地址和端口号,以及本端Diameter节点使用的IP地址和端口号、本端是客户端还是服务器端、连接协议信息和/或对端Diameter节点名称。
7.根据权利要求6所述的提高Diameter节点间通信可靠性的方法,其特征在于,所述的步骤E包括E1、作为客户端的Diameter节点向作为服务器端的Diameter节点发送连接建立请求命令;E2、所述作为服务器端的Diameter节点收到所述命令后,根据配置的连接的属性信息检查请求建立的连接是否合法,如果合法,则继续建立连接过程,否则,拒绝该连接建立请求。
8.根据权利要求7所述的提高Diameter节点间通信可靠性的方法,其特征在于,所述的步骤E2还包括E21、当底层连接建立成功后,作为客户端的Diameter节点向作为服务器端的Diameter节点发送能力交换请求;E22、作为服务器端的Diameter节点根据配置的连接的属性信息及所述请求中携带的节点名称信息对对端的合法性进行验证,如果验证通过,则回送正确的能力交换应答,否则,作为服务器端的Diameter节点释放所述的底层的连接,或者,向回送错误的能力交换应答后再释放所述底层的连接。
9.根据权利要求8所述的提高Diameter节点间通信可靠性的方法,其特征在于,所述的步骤E22还包括在所述的正确的能力交换应答中携带本端的节点名称信息,当客户端Diameter节点收到所述的应答后,且根据所述的节点名称信息判断服务器端Diameter节点为非法时,则释放所述连接;而且,客户端Diameter节点收到对端回送的错误的能力交换应答时,则释放所述的连接。
全文摘要
本发明涉及一种提高Diameter节点间通信可靠性的方法。本发明主要包括在Diameter节点间确定可以建立的多条连接,当确定Diameter节点间用于通信的连接无法进行正常通信时,则在所述的Diameter节点间选择另外一条连接进行Diameter节点间的通信。由于在Diameter节点间建立多条连接间可以互为备份,从而可以保证当Diameter节点间的一条连接发生故障时,可以使用其他备用的连接进行Diameter节点间的通信,以提高系统中Diameter节点间通信的可靠性。同时,还由于Diameter节点间的连接为基于配置信息建立,因此,对于没有配置的连接则无法接入,保证了Diameter节点间连接的安全性。
文档编号H04L29/06GK1889457SQ20051008016
公开日2007年1月3日 申请日期2005年6月30日 优先权日2005年6月30日
发明者张涛 申请人:华为技术有限公司