用于在DIAMETER节点处提供本地应用路由的方法、系统、以及计算机可读介质.pdf

上传人:奻奴 文档编号:4331319 上传时间:2018-09-13 格式:PDF 页数:53 大小:19.37MB
返回 下载 相关 举报
摘要
申请专利号:

CN201180018670.0

申请日:

2011.02.11

公开号:

CN102859944A

公开日:

2013.01.02

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):H04L 12/28申请日:20110211|||公开

IPC分类号:

H04L12/28; H04L29/02

主分类号:

H04L12/28

申请人:

泰克莱克股份有限公司

发明人:

D·E·华莱士; M·E·卡诺德; D·M·斯普拉格; J·A·克雷格; T·M·麦卡恩; K·K·卡玛卡; M·托马尔

地址:

美国北卡罗来纳州

优先权:

2010.02.12 US 61/304,310

专利代理机构:

永新专利商标代理有限公司 72002

代理人:

张立达;王英

PDF下载: PDF下载
内容摘要

本申请公开了用于在Diameter节点处提供本地应用路由的方法、系统、以及计算机可读介质。一种方法包括:在与Diameter信令路由器(DSR)相关联的输入Diameter消息处理器处接收来自对等Diameter单元的Diameter消息。在输入Diameter消息处理器处,访问应用路由数据,来判断是否需要由Diameter应用对Diameter消息进行处理。响应于确定需要进行Diameter应用处理,向用于负责所述应用路由数据所标识的Diameter应用的Diameter消息处理器转发所述Diameter消息以进行处理。响应于确定不需要进行Diameter应用处理,向与所述DSR相关联的输出Diameter消息处理器转发所述Diameter消息。

权利要求书

权利要求书一种用于在包括Diameter信令路由器(DSR)的多个Diameter消息处理器之间对Diameter消息进行路由的方法,所述方法包括:在与所述DSR相关联的输入Diameter消息处理器处接收来自对等Diameter单元的Diameter消息;在所述输入Diameter消息处理器处,使用应用路由数据来判断是否需要由Diameter应用对所述Diameter消息进行处理;响应于确定需要进行Diameter应用处理,向负责由所述应用路由数据所标识的Diameter应用的Diameter消息处理器转发所述Diameter消息以进行处理;以及响应于确定不需要进行Diameter应用处理,向与所述DSR相关联的输出Diameter消息处理器转发所述Diameter消息。如权利要求1所述的方法,包括:将转发给所述Diameter应用的所述Diameter消息在由所述Diameter应用处理之后返回给所述输入Diameter消息处理器。如权利要求1所述的方法,其中,所述Diameter应用是由所述DSR负责的本地应用。如权利要求3所述的方法,其中,所述Diameter应用针对与所述Diameter消息相关联的Diameter会话保持状态信息。如权利要求1所述的方法,其中,所述Diameter应用是由Diameter单元而不是所述DSR负责的远程应用。如权利要求1所述的方法,其中,向与所述DSR相关联的输出Diameter消息处理器转发所述Diameter消息的步骤包括:访问所述输入Diameter消息处理器上的Diameter对等路由模块,以便确定要向哪个输出Diameter消息处理器转发所述Diameter消息。如权利要求5所述的方法,其中,与所述输入Diameter消息处理器和输出Diameter消息处理器相关联的Diameter对等路由模块共享共同的Diameter对等路由信息。如权利要求1所述的方法,其中,向由所述应用路由数据所标识的Diameter应用转发所述Diameter消息以进行处理的步骤包括:基于多个Diameter应用的可用性状态来选择所述多个Diameter应用中的一个。如权利要求1所述的方法,其中,向由所述应用路由数据所标识的Diameter应用转发所述Diameter消息以进行处理的步骤包括:基于多个Diameter应用的拥塞状态来选择所述多个Diameter应用中的一个。如权利要求1所述的方法,其中,向由所述应用路由数据所标识的Diameter应用转发所述Diameter消息以进行处理的步骤包括:基于多个Diameter应用的消息处理容量来选择所述多个Diameter应用中的一个。一种Diameter信令路由器,包括:与DSR相关联的输出Diameter消息处理器;以及与所述DSR相关联的输入Diameter消息处理器,并且其配置为:接收来自对等Diameter单元的Diameter消息;判断是否需要由Diameter应用对所述Diameter消息进行处理,其中,判断是否需要由Diameter应用对所述Diameter消息进行处理包括:访问应用路由数据;响应于确定需要进行Diameter应用处理,向负责由所述应用路由数据所标识的Diameter应用的Diameter消息处理器转发所述Diameter消息以进行处理;以及响应于确定不需要进行Diameter应用处理,向所述输出Diameter消息处理器转发所述Diameter消息。如权利要求11所述的DSR,包括:将转发给所述Diameter应用的所述Diameter消息在由所述Diameter应用处理之后返回给所述输入Diameter消息处理器。如权利要求11所述的DSR,其中,所述DSR单元负责本地Diameter应用。如权利要求13所述的DSR,其中,所述Diameter应用针对与所述Diameter消息相关联的Diameter会话保持状态信息。如权利要求11所述的DSR,其中,所述Diameter应用是由Diameter单元而不是所述DSR单元负责的远程应用。如权利要求11所述的DSR,其中,所述输出Diameter消息处理器配置为:访问所述输入Diameter消息处理器上的Diameter对等路由模块,以便确定要向哪个输出Diameter消息处理器转发所述Diameter消息。如权利要求15所述的DSR,其中,所述输入Diameter消息处理器和输出Diameter消息处理器共享共同的Diameter对等路由信息。如权利要求11所述的DSR,其中,所述输入Diameter消息处理器配置为:基于多个Diameter应用的可用性状态来选择所述多个Diameter应用中的一个。如权利要求11所述的DSR,其中,所述输入Diameter消息处理器配置为:基于多个Diameter应用的拥塞状态来选择所述多个Diameter应用中的一个。如权利要求11所述的DSR,其中,所述输入Diameter消息处理器配置为:基于多个Diameter应用的消息处理容量来选择所述多个Diameter应用中的一个。一种非临时性计算机可读介质,包括计算机可读介质中所包含的计算机可执行指令,并且当计算机的处理器执行所述计算机可执行指令时执行包括以下各项的步骤:在与DSR相关联的输入Diameter消息处理器处接收来自对等Diameter单元的Diameter消息;在所述输入Diameter消息处理器处,使用应用路由数据来判断是否需要由Diameter应用对所述Diameter消息进行处理;响应于确定需要进行Diameter应用处理,向负责由所述应用路由数据所标识的Diameter应用的Diameter消息处理器转发所述Diameter消息以进行处理;以及响应于确定不需要进行Diameter应用处理,向与所述DSR相关联的输出Diameter消息处理器转发所述Diameter消息。

说明书

说明书用于在DIAMETER节点处提供本地应用路由的方法、系统、以及计算机可读介质
优先权声明
本申请要求于2010年2月12日提交的、美国临时专利申请序列号No.61/304,310的优先权;在此通过引用的方式将其全部内容合并入本文。通过引用方式的纳入内容的申明
下列于2011年2月11日提交的共同共有、共同待审的美国专利申请中的每一个的公开内容是通过引用的方式将它们的全部内容合并入本文的。
“Methods,Systems,And Computer Readable Media For Inter‑Diameter‑Message Processor Routing”,律师案卷号No.1322/399/2(还没有分配序列号);
“Methods,Systems,And Computer Readable Media For Source Peer Capacity‑Based Diameter Load Sharing”,律师案卷号No.1322/399/3(还没有分配序列号);
“Methods,Systems,And Computer Readable Media For Inter‑Message Processor Status Sharing”,律师案卷号No.1322/399/4(还没有分配序列号);
“Methods,Systems,And Computer Readable Media For Providing Priority Routing At A Diameter Node”,律师案卷号No.1322/399/5(还没有分配序列号);
“Methods,Systems,And Computer Readable Media For Providing Peer Routing At A Diameter Node”,律师案卷号No.1322/399/6/2(还没有分配序列号);
“Methods,Systems,And Computer Readable Media For Providing Origin Routing At A Diameter Node”,律师案卷号No.1322/399/7(还没有分配序列号);
“Methods,Systems,And Computer Readable Media For Answer‑Based Routing Of Diameter Request Messages”,律师案卷号No.1322/399/9(还没有分配序列号);
“Methods,Systems,And Computer Readable Media For Performing Diameter Answer Message‑Based Network Management At A Diameter Signaling Router(DSR)”,律师案卷号No.1322/399/10(还没有分配序列号);
“Methods,Systems,And Computer Readable Media For Multi‑Interface Monitoring And Correlation Of Diameter Signaling Information”,律师案卷号No.1322/399/11(还没有分配序列号);
“Methods,Systems,And Computer Readable Media For Diameter Protocol Harmonization”,律师案卷号No.1322/399/12(还没有分配序列号);
“Methods,Systems,And Computer Readable Media For Diameter Network Management”,律师案卷号No.1322/399/13(还没有分配序列号);以及
“Methods,Systems,And Computer Readable Media For Diameter Application Loop Prevention”,律师案卷号No.1322/399/14(还没有分配序列号)。
技术领域
本文描述的主题涉及在Diameter节点处进行路由。更具体地,所述主题涉及用于在Diameter节点处提供本地应用路由的方法、系统、以及计算机可读介质。
背景技术
Diameter是针对计算机网络的认证、授权和计费(AAA)协议,并且是RADIUS的后续。Diameter基础协议是定义在IETF RFC 3588中的,在此通过引用的方式将其公开内容全部合并入本文。Diameter节点是执行Diameter协议的主机处理,并且DSR消息处理器(MP)是负责DSR信令应用的计算机或者刀片(blade)。Diameter信令路由器(DSR)是共享共同的Diameter路由表的一组位于同一位置的DSR MP,并且被一对服务、操作、支配、以及管理(SOAM)服务器支持。DSR可以包括一个或多个Diameter节点。
DSR可以包括多个MP。然而,与这类配置有关联的一个问题是,其不是可扩展的或者用户友好的,因为每个MP通常必须由运营商单独配置。当在DSR处接收到Diameter消息时,可能需要用一个或多个Diameter应用对该消息进行处理。目前,不存在将Diameter消息自动路由到合适的Diameter应用并且最终到达其下一跳目的地的方法。正因如此,运营商承担手动配置MP间链路,这可能是麻烦、费时间、并且容易出错的。而且,每个MP承担与Diameter路由相关联的全部开销。
相应地,鉴于这些困难,需要用于在Diameter节点处提供本地应用路由的改进的方法、系统、以及计算机可读介质。
发明内容
本申请公开了用于在Diameter节点处提供本地应用路由的方法、系统、以及计算机可读介质。根据一种方法,Diameter消息是在包括Diameter信令路由器(DSR)的多个Diameter消息处理器之间路由的。所述方法包括:在与所述DSR相关联的输入Diameter消息处理器处接收来自对等Diameter单元的Diameter消息。访问输入Diameter消息处理器上的应用路由数据,来判断是否需要由Diameter应用对Diameter消息进行处理。响应于确定需要进行Diameter应用处理,向用于负责所述应用路由数据所标识的Diameter应用的Diameter消息处理器转发所述Diameter消息以进行处理。或者,响应于确定不需要进行Diameter应用处理,向与所述DSR相关联的输出Diameter消息处理器转发所述Diameter消息。
本申请还公开了用于在Diameter节点处提供本地应用路由的包括多个Diameter消息处理器的DSR。DSR包括与逻辑DSR单元相关联的输出Diameter消息处理器。与逻辑DSR单元相关联的输入Diameter消息处理器配置为:接收来自对等Diameter单元的Diameter消息,并且判断是否需要由Diameter应用对Diameter消息进行处理,其中,判断是否需要由Diameter应用对Diameter消息进行处理包括:访问应用路由数据。响应于确定需要进行Diameter应用处理,输入Diameter消息处理器向用于负责应用路由数据所标识的Diameter应用的Diameter消息处理器转发Diameter消息以进行处理。或者,响应于确定不需要进行Diameter应用处理,输入Diameter消息处理器向输出Diameter消息处理器转发Diameter消息。
本文所述的主题可以在与硬件和/或固件相结合的软件中执行。例如,本文所述的主题可以实现为处理器执行的功能。在一个示例性实施方案中,本文所述的用于在Diameter节点处提供本地应用路由的主题可以使用具有保存在其上的可执行指令的非临时性计算机可读介质来实现,当计算机的处理器执行所述可执行指令时,控制所述处理器执行步骤。适于执行本文所述的主题的示例性非临时性计算机可读介质包括:处理器可访问的芯片存储设备或磁盘存储设备,可编程逻辑设备、以及专用集成电路。此外,用于执行本文所述的主题的计算机可读介质可以位于单个计算平台上或者分布上多个计算平台上。
如本文所使用的,术语“节点”指的是包括一个或多个处理器和存储器的物理计算平台。
如本文所使用的,术语“功能”或“模块”指的是用于实现本文所述的特征的与硬件和/或固件相结合的软件。
附图说明
现在将围绕附图对本文所述的主题进行阐述,其中:
图1是根据本文所述的主题的一个实施例,描述用于在Diameter节点处提供本地应用路由的过程的流程图;
图2是根据本文所述的主题的一个实施例,描述包括用于在Diameter节点处提供本地应用路由的每个MP全栈(full stack per MP)的示例性架构的框图;
图3是根据本文所述的主题的一个实施例,描述用于在Diameter节点处提供本地应用路由的专用DCL MP的示例性架构的框图;
图4是根据本文所述的主题的一个实施例,描述包括用于在Diameter节点处提供本地应用路由的专用DCL/DRL和应用MP的示例性架构的框图;
图5是根据本文所述的主题的一个实施例,描述用于在Diameter节点处提供本地应用路由的示例性高层消息路由流程的框图;
图6是根据本文所述的主题的一个实施例,描述用于在Diameter节点处提供本地应用路由的、包括每个MP一个Diameter节点的示例性可扩展的、MP间路由DSR NE的框图;
图7是根据本文所述的主题的一个实施例,描述用于在Diameter节点处提供本地应用路由的、包括功能划分的示例性可扩展DSRNE的框图;
图8是根据本文所述的主题的一个实施例,描述用于在Diameter节点处提供本地应用路由的示例性主机路由情形的网络图;
图9是根据本文所述的主题的一个实施例,描述用于在Diameter节点处提供本地应用路由的示例性的基于客户端的本地DSR应用的框图;
图10是根据本文所述的主题的一个实施例,描述用于在Diameter节点处提供本地应用路由的示例性的基于服务器的本地DSR应用的框图;
图11是根据本文所述的主题的一个实施例,描述用于在Diameter节点处提供本地应用路由的示例性的基于重新定向代理的本地DSR应用的框图;
图12是根据本文所述的主题的一个实施例,描述用于在Diameter节点处提供本地应用路由的示例性的基于背对背(back‑to‑back)应用的本地DSR应用的框图;
图13是根据本文所述的主题的一个实施例,描述用于在Diameter节点处提供本地应用路由的示例性的基于委托代理的本地DSR应用的框图;
图14是根据本文所述的主题的一个实施例,描述其中服务中途退出在Diameter节点处提供本地应用路由的示例性本地DSR应用情形的框图;
图15是根据本文所述的主题的一个实施例,描述用于将消息路由到本地DSR应用以便在Diameter节点处提供本地应用路由的示例性路由情形的框图;
图16是根据本文所述的主题的一个实施例,描述了其中DRL检测内部消息环路的示例性本地DSR应用路由的消息序列图;
图17是根据本文所述的主题的一个实施例,描述了其中没有检测到DRL内部消息环路的示例性本地DSR应用路由的消息序列图;
图18是根据本文所述的主题的一个实施例,描述了其中本地委托应用修改输入消息并且退出信令路径的示例性本地DSR应用路由的消息序列图;
图19是根据本文所述的主题的一个实施例,描述了其中本地委托应用没有修改输入消息并且退出信令路径的示例性本地DSR应用路由的消息序列图;
图20是根据本文所述的主题的一个实施例,描述了其中本地应用向远程服务器发起事务的示例性本地DSR应用路由用例的消息序列图;
图21是根据本文所述的主题的一个实施例,描述了其中本地服务器应用接收并且处理来自远程客户端的请求的示例性本地DSR应用路由用例的消息序列图;
图22是根据本文所述的主题的一个实施例,描述了其中本地委托应用通过创建新会话而保持在信令路径中的示例性本地DSR应用路由用例的消息序列图;
图23是根据本文所述的主题的一个实施例,描述了其中本地委托应用在没有创建新会话的情况下保持在信令路径中的示例性本地DSR应用路由用例的消息序列图;
图24是根据本文所述的主题的一个实施例,描述了其中本地客户端应用向远程服务器发起事务、以及本地应用拦截并且退出信令路径的示例性本地DSR应用路由用例的消息序列图;
图25是根据本文所述的主题的一个实施例,描述了其中本地客户端应用向远程服务器发起事务、以及本地应用拦截并且保持在信令路径中的示例性本地DSR应用路由用例的消息序列图;
图26是根据本文所述的主题的一个实施例,描述了其中本地委托应用中止事务的示例性本地DSR应用路由用例的消息序列图;
图27是根据本文所述的主题的一个实施例,描述了其中DSR作为针对本地应用的重新定向代理的示例性本地DSR应用路由用例的消息序列图;以及
图28是根据本文所述的主题的一个实施例,描述了其中本地DSR应用执行修饰性NAI处理的示例性本地DSR应用路由用例的消息序列图。
具体实施方式
本文所述的主题包括用于在Diameter节点处提供本地应用路由的方法、系统、以及计算机可读介质。具体地,本文所述的主题可以在Diameter信令路由器(DSR)网络单元(NE)处实施,所述Diameter信令路由器(DSR)网络单元(NE)包括Diameter连接层(DCL)、Diameter路由层(DRL)、一个或多个应用、以及一个或多个路由表。示例性DRL能力可以包括:基于消息内容将请求消息路由到对等体或者本地应用;基于消息内容规则丢弃或者拒绝Diameter请求消息;对等体拥塞控制;允许运营商仅访问已购买的特征和容量、以及更简单的配置。此外,本文所述的用于在Diameter节点处进行本地应用路由的主题提供了更灵活的一组消息处理和路由能力。不假设所有的路由决定是基于在消息中接收到的固定的一组消息参数(目的地‑范围(Destination‑Realm)、目的地‑主机(Destination‑Host)、以及应用ID(Application ID)),相反地,消息路由可以基于用户定义的消息内容规则。根据一个方面,DSR可以支持中继代理Diameter消息路由以及各种增值服务/应用。为了同时支持应用处理和核心Diameter路由功能,DSR可以支持两种消息路由表:应用路由表(ART)和对等路由表(PRT),稍后将更详细地描述它们中的每一个。
图1是根据本文所述的主题的一个实施例,用于在Diameter节点处提供本地应用路由的流程图,其包括在一起构成DSR的多个Diameter消息处理器(MP)之间对Diameter消息进行路由。参照图1,在步骤100中,在与DSR相关联的输入Diameter消息处理器处接收到来自对等Diameter单元的Diameter消息。例如,位于Diameter客户端和Diameter服务器之间的DSR可以接收来自客户端的Diameter请求消息。
在步骤102中,在输入Diameter消息处理器处,访问应用路由表模块(ART),以便确定是否需要由Diameter应用对Diameter消息进行处理。
在步骤104中,响应于确定需要进行Diameter应用处理,向用于负责ART所标识的本地Diameter应用的Diameter消息处理器转发Diameter消息,以进行处理。
在步骤106中,响应于确定不需要进行Diameter应用处理,向与DSR相关联的输出Diameter消息处理器转发Diameter消息。
示例性架构
第一种架构选项可以包括:其中每个MP支持包括DCL、DRL、以及应用层的完整Diameter栈。第二种架构选项可以包括在专用MP上运行的DCL,路由和应用层可以要么在专用MP上结合,要么具有针对每个层的专用MP。第三种架构选项可以包括:在专用MP上运行的Diameter栈(DCL、DRL)、在单独的专用MP上运行的本地Diameter应用。现在将围绕图2、3和4更详细地描述这些示例性架构选项中的每一个。
图2是根据本文所述的主题的一个实施例,描述用于在Diameter节点处提供本地应用路由的每个MP完整栈的示例性架构的框图。参照图2,DSR网络单元(NE)200可以包括:用于接收来自对等体的Diameter消息的输入MP 202、以及用于向对等体发送Diameter消息的输出MP 204。输入MP 202和输出MP 204可以各自包括DCL、DRL、以及一个或多个应用。例如,输入MP 202可以包括DCL 206、DRL 208、以及应用210。同样,输出MP 204可以包括DCL 212、DRL 214、以及应用216。为了在输入MP202和输出MP 204之间进行通信,输入MP 202的DRL 208可以操作用于与输出MP 204的DRL 214进行通信。此外,DRL 208和214可以各自操作用于分别与DCL 206和212、以及应用210和216进行通信。
在示例性Diameter消息路由情形中,对等体N‑1218可以向DSR NE200发送Diameter消息。输入MP 202的DCL 206可以接收该Diameter消息。通过由DRL 208对Diameter消息的目的地对等体进行选择,可以在输入MP 202上对输入消息进行完全处理。继续上面的示例性情形,DCL 206可以将Diameter消息传递给DRL 208。
如果需要进行应用处理,则输入DRL 208可以向用于负责本地应用的Diameter消息处理器转发Diameter消息。例如,DRL 208可以向用于负责本地应用210的MP转发Diameter消息,所述MP对该消息进行处理,并且将该消息返回给DRL 208。应当认识到,可以不需要应用分布功能。
接下来,输入DRL 208可以向输出DRL 214转发该Diameter消息,以便转发给本地DCL队列212。然后,输出DCL 212可以向对等体N+1 220发送该Diameter消息。
图3是根据本文所述的主题的一个实施例,描述包括用于在Diameter节点处提供本地应用路由的专用DCL MP的示例性架构的框图。与图2中所示的每个MP完整栈的实施例相反,图3中所示的实施例包括专用DCLMP。参照图3,DSR NE 200可以包括:用于接收来自对等体的Diameter消息的DCL‑MP 300、以及用于向对等体发送Diameter消息的DCL‑MP 308。类似地,DSR NE 200可以包括DRL‑MP 302和DRL‑MP 306,其用于接收来自对等体的Diameter消息,以及用于向对等体发送Diameter消息。与每个MP完整栈的实施例(图2)相反,应用‑MP 304可以与DRL‑MP 302相关联,并且可能不具有与DRL‑MP 306相关联的必然性(corollary)。像图2一样,DRL‑MP 302和306可以各自操作,以进行互相通信。
因此,在类似于围绕图2所述的示例性Diameter消息路由情形中,DCL‑MP 300可以接收输入Diameter消息,所述DCL‑MP 300可以基于如下因素将Diameter消息(例如,请求消息)分发给DRL‑MP 302,这些因素包括但不限于:与其它DRL‑MP相比(图中没有将它们全部示出),DRL‑MP 302的可用性、每秒事务处理(TPS)容量、以及拥塞状态。
DRL‑MP 302可以判断是否需要进行应用处理。如果需要进行应用处理,则输入DRL‑MP 302可以将请求消息分发给应用‑MP 304(同样根据其可用性、TPS容量、以及拥塞状态)。
然后,输入DRL‑MP 302可以选择针对消息的目的地对等体,并且输入DRL‑MP 302可以将该消息向输出DRL‑MP 306转发。然后,输出DRL‑MP306可以将该消息向输出DCL‑MP 308(MP间通信上的最高等级)转发,以便传递给DRL‑MP 302所选择的对等体N+1220。
图4是根据本文所述的主题的一个实施例,描述包括用于在Diameter节点处提供本地应用路由的专用DCL/DRL和应用MP的示例性架构的图。可以认识到,图4表示图2的每个MP完整栈和图3的专用DCL/DRL/应用‑MP的混合方法。参照图4,在示例性Diameter消息路由情形中,对等体N‑1 218可以向DSR NE 200发送Diameter消息。输入MP 202的DCL 206可以接收该Diameter消息。通过由DRL208对该Diameter消息的目的地对等体进行选择,可以在输入MP 202上对输入消息进行完全处理。然后,DCL206可以向DRL 208传递该Diameter消息。
如果需要进行应用处理,则输入DRL 208可以向本地应用转发Diameter消息。例如,DRL 208可以向本地应用304转发Diameter消息,所述本地应用304可以处理该消息,并且将该消息返回给DRL 208。
接下来,输入DRL 208可以向输出DRL 214转发Diameter消息,以便转发给本地DCL队列212。然后,输出DCL 212可以向对等体N+1 220发送Diameter消息。
图5是根据本文所述的主题的一个实施例,描述用于在Diameter节点处提供本地应用路由的示例性高层消息路由流程的框图。参照图5,对等体N‑1 218可以向DSR 200发送Diameter请求消息。DSR 200可以查阅ART500,以便判断是否需要由Diameter应用对该消息进行处理。当接收到来自对等体的输入消息时,可以对ART 500进行搜索。如果消息内容与ART规则相匹配,则将该消息转发给应用以进行处理。这样反复继续,直到找不到其它规则匹配为止。例如,ART 500可以将该消息转发给应用‑1 210进行处理,并且在将该消息返回给ART 500之后,可以随后将该消息转发给应用‑2 216进行处理。
在完成本地应用处理之后,ART 500可以将该消息转发给PRT 502。在ART 500搜索结束之后,可以搜索对等路由表(PRT)502,使得如果消息内容(在应用处理更新之后)与PRT 502规则相匹配,可以将消息路由到与该规则相关联的路由清单表504中的路由清单所定义的Diameter对等体。这样,在查阅路由清单表504之后,可以向对等体N+1 220发送该消息。
图6是根据本文所述的主题的一个实施例,描述包括用于在Diameter节点处提供本地应用路由的每个MP一个Diameter节点的示例性可扩展的、MP间路由DSR NE的框图。从用户的角度来看,每个MP一个Diameter节点的设计可能有多个缺点。例如,单独的ART、PRT以及路由清单表必须配置在每个DSR MP上。此外,必须配置DSR MP之间的全网状(full‑mesh)主干网,并且如下所示,每次在两个DSR MP之间对消息进行路由时,必须采用两倍的DRL路由规则的开销。因此,期望减小或消除这些缺点。
根据一个实施例,对“N”个独立DSR节点的改进是为了在DSR MP之间共享DRL表,从而从路由的角度将DSR NE当作单个Diameter“节点”。在这样的实施例中,对于DSR NE中的所有DSR MP而言,ART、PRT、路由清单、路由组、路由、以及对等表可以是共用的。然后,可以创建新的“DSR NE”表,以便用作多个MP(其为DSR NE的一部分)之间的全网状SCTP连接的自动配置的源。此外,期望可以在相同的地点支持多个DSR NE。
在单个DSR NE配置的情况下,可以如下消除输入MP和输出MP两者上的冗余的DRL路由。最初接收来自对等体的消息的输入DSR MP将负责ART和PRT表搜索和路由选择。输入DSR MP从活动路由组中选择路由,并且将其从其对等体接收到的消息和所选择的路由(对等体)两者都转发给用于控制对等连接的DSR MP。当输出DSR MP接收到来自对等DSR MP的包含路由的请求消息时,其将绕开ART和PRT处理,并且试图将该消息传递给输入MP所选择的对等体。应当将输出DSR MP上进行的DRL处理保持在绝对最小值(bare minimum)。
参照图6,输入MP 200可以成为DSR MP(N)200,而输出MP 204可以成为DSR MP(N+1)204。对等体N‑1 218可以向DSR MP(N)200发送Diameter消息,在该DSR MP(N)200处,可以通过ART 500对该Diameter消息进行处理。ART 500可以判断是否需要进行本地应用处理,如果是,则可以向应用210转发Diameter消息。在返回给ART 500之后,可以将该Diameter消息转发给PRT 502,然后转发给路由清单表504。
使用路由清单表504实施的处理可以包括路由清单处理606。路由清单处理606可以包括:选择活动组608、从路由组中选择路由610、以及传递消息612。
当DSR MP(N+1)204接收到消息时,可以通过ART 600处理该消息。ART 600可以判断是否需要进行本地应用处理,如果是,则可以向应用216转发Diameter消息。在返回给ART 600之后,可以将该Diameter消息转发给PRT 602,然后转发给路由清单表604。
使用路由清单表604执行的处理可以包括路由清单处理614。路由清单处理614可以包括:选择活动组616、从路由组中选择路由618、以及传递消息620。
图7是根据本文所述的主题的一个实施例,描述包括用于在Diameter节点处提供本地应用路由的功能划分的示例性可扩展DSR NE的框图。参照图7,可以认识到,路由清单处理700的消息传递步骤620可以与逻辑输出MP 204相关联,同时剩余的功能可以与逻辑输入MP 202相关联。具体地,ART 500、本地应用210、PRT 502、以及对路由组进行选择的步骤520、以及根据路由清单处理700的路由组步骤610对路由进行选择,可以与逻辑输入MP 202相关联。
DSR请求‑消息处理&路由
DRL路由规则可以包括表格中的列的预先定义的集合,每一列与消息参数相关联,用户能够针对诸如“等于值“X”、参数的值或者是否存在是“无所谓的”等等来定义准则。如果消息与不止一个路由规则相匹配,则选择最高优先级的路由规则,并且将调用由运营商分配给该路由规则的“动作”。示例性“动作”可以包括:路由到本地DSR应用(ART)或者对等体(PRT),以及发送答复响应消息。
消息参数
每个路由表可以支持下列基本请求消息参数:目的地‑范围(Destination‑Realm)AVP、目的地‑主机(Destination‑Host)AVP、以及应用ID(Application ID)(在头部中)。除了上述请求消息参数,本文所述的主题还可以支持下列请求消息参数:初始‑范围(Origin‑Realm)AVP、初始‑主机(Origin‑Host)AVP、用户‑名称(User‑Name)AVP、以及命令‑代码(Command‑Code)(在头部中)。
路由规则‑参数值
对于消息路由规则中的每个消息参数,运营商应该能够规定数值(例如,精确的、前缀、后缀),不管参数是否存在也不管其是否重要(不关心)。以下应该被支持。应当认识到,很多消息参数是整数或者字符串类型,包括:十进制数值(精确匹配)、字符串(精确匹配)、字符串(前缀匹配),字符串(后缀匹配)、“没有AVP实例存在(no AVP instances present)”、“至少一个AVP实例存在(at least one AVP instance present)”(不管其数值)、以及“不关心(don′t care)”(忽视其存在和数值)。如果参数是位于Diameter消息头部中,则这表示实际字段值。如果参数是AVP,则这表示AVP的“数据”字段。
路由表‑搜索
当DRL接收到请求消息时,其可以提取搜索路由表所需要的一组参数值。如果路由表搜索获取了不止一个路由规则,则可以选择具有最高优先级(即,最小值)的规则。如果适当地配置路由表,则搜索应该不会返回具有相同优先级的两个规则。可能困难的是,在GUI配置期间检测重复条目。如果搜索返回具有最高优先级的多个规则中的两个,则将使用第一个规则。
可以认识到,每次遇到这个问题时就应当产生阈值警报,以便警告运营商他们可能有路由配置问题。
可以认识到,未来可能需要支持用于解决规则优先级冲突的优先规则。
如果搜索没有返回规则,则DRL行为是特定于路由表的(见关于每个路由表类型的后续内容)。
下面的表1描述了示例性PRT。
表1

在第一个示例性情形中,可以接收包括下列参数的消息:目的地‑范围=tklc.com,应用‑ID=88,以及目的地‑主机=www.tklc.com。参照表1,规则1、2、以及3匹配,但是将选择规则1,因为其具有最高优先级。
在第二个示例性情形中,可以接收包括下列参数的消息:目的地‑范围=tklc.com,应用‑ID=88。规则2和3匹配,但是将选择规则2,因为其具有最高优先级。
修饰性NAI
可以期望,在一些实施例中,使DSR支持修饰性NAI,以便使一些服务提供者控制它们的用途。具体地,服务提供者可能想要在系统范围的基础上或者以更细的粒度来控制修饰性NAI用途。更细粒度的控制可以包括:基于以下事项来控制NAI用途,比如:消息产生于何处、消息产生的范围(也叫做初始‑范围)、或者已接收到的消息所来自的对等体。
在一个实施例中,修饰性NAI处理可以是委托代理(Proxy Agent)功能。在这样的实施例中,修饰性NAI处理可以当作本地DSR应用。当DSR需要支持修饰性NAI处理时,可以将用户‑名称AVP(其包含修饰性NAI)加到ART。然后,运营商定义了一个或多个ART规则,以触发由本地DSR应用进行修饰性NAI处理。
主机路由
Diameter基础协议仅使用目的地‑主机参数,用于路由到节点的本地应用或者路由到直接相连的邻近节点(对等体)。应当认识到,Diameter基础协议中没有提及或者推荐到直接相连的主机的辅助路由。本文所述的DSR解决方案可以为主机路由提供更大的灵活性。具体地,DRL路由表可以支持使用目的地‑主机参数进行路由决定,不管该主机是对等体或者不是对等体。
使用路由清单的能力,能够创建多个路由以用于将消息路由到与DSRMP直接相连的主机。这在诸如存在阻止DSR MP采用到对等体的直接连接的网络或对等体问题时可能是有用的。当直接连接失败时,DRL可以通过另一个DSR中继代理来使用辅助路由,以便将对消息进行路由。
图8是根据本文所述的主题的一个实施例,描述用于在Diameter节点处提供本地应用路由的示例性主机路由情形的网络图。在一个实施例中,到直接相连的主机的多个路由的一个用途包括:具有与主机直接连接相关联的单个高优先级路由、以及通过邻近中继代理的一个或多个较低优先级路由的路由清单配置。可以使用活动的路由以用于将消息路由到主机。如果活动的路由失效,则可以使用备用(standby)路由。
路由到本地DSR应用
DSR可以支持Diameter网络中的各个节点,比如:客户端、服务器、以及代理(例如,中继、委托、重定向、以及转换)。
DSR可以同时支持这些本地节点中的一个或多个。DSR可以将一个或多个服务应用于(例如,通过本地DSR应用)同一消息。然而,可以认识到,可能不需要DSR,并且可以避免针对相同的端到端Diameter事务多次调用相同的本地应用(即,避免本地应用消息环路)。
DSR可以提供对消息的应用调用的顺序进行控制的能力。例如:当来自网络消息符合某些消息内容准则时,调用应用‑X。当应用‑X完成对符合的新消息内容准则的处理时,调用应用‑Y。当应用‑Y完成处理时,将消息路由到对等体。
DSR可以支持本地应用修改消息的能力,但是不为那个事务或会话的剩余部分保持在信令路径中。
DRL可以支持以下类型的本地DSR应用。首先,DRL可以支持产生或者结束Diameter会话的可寻址Diameter节点端点(例如,Diameter客户端、服务器、或者转换代理)。DRL还可以支持Diameter中继代理,所述Diameter中继代理可以是或者可以不是可寻址的Diameter节点,所述可寻址的Diameter节点拦截某些类型的消息并且向对等体发送包含新的目的地路由信息的答复响应。DRL可以支持背对背应用,背对背应用是可寻址的Diameter节点,其终止来自一个节点的Diameter会话,为了请求者发起新会话,并且在两个节点之间对会话进行相互作用(例如,AAAH服务器)。DRL可以支持如下应用:该应用不是可寻址的Diameter节点,但是想要将其自身插入端到端事务信令流中(请求/答复),并且可以增加或者修改消息中的AVP(例如,Diameter委托代理)。DRL可以支持如下应用:该应用不是可寻址的Diameter节点,想要拦截某些消息并且可选地修改消息,例如影响消息路由,但是不想保持在端到端信令流中(例如,Tekelec DSR增值服务)。
图9是根据本文所述的主题的一个实施例,描述用于在Diameter节点处提供本地应用路由的示例性基于客户端的本地DSR应用的框图。参照图9,客户端900可以向DRL 208发送Diameter请求消息,由ART 500接收该消息。ART 500用于判断是否需要由Diameter应用对Diameter消息进行处理。响应于确定需要进行Diameter应用处理,将Diameter消息转发给对等路由表502,然后转发给路由清单表504。基于在表500‑504中执行的查询的结果,识别出对等体220,并且转发Diameter消息。在对请求进行处理之后,对等体220返回答复消息给DRL答复处理902,DRL答复处理902转而向客户端900发送答复消息。
图10是根据本文所述的主题的一个实施例,描述用于在Diameter节点处提供本地应用路由的示例性基于服务器的本地DSR应用的框图。参照图10,对等体218可以向DRL 208发送Diameter请求,由ART 500接收该Diameter请求。ART 500用于判断是否需要由Diameter应用对Diameter消息进行处理。响应于确定需要进行Diameter应用处理,向服务器1000转发Diameter请求消息。在对该请求进行处理之后,服务器1000产生并且返回Diameter答复消息给DRL答复处理902,DRL答复处理902转而向对等体218发送该答复消息。
图11是根据本文所述的主题的一个实施例,描述用于在Diameter节点处提供本地应用路由的示例性基于重定向代理的本地DSR应用的框图。参照图11,对等体218可以向DRL 208发送Diameter请求,由ART 500接收该Diameter请求。ART 500用于判断是否需要由Diameter应用对Diameter消息进行处理。响应于确定需要进行Diameter应用处理,向重定向代理1100转发Diameter请求消息。在对请求进行处理之后,重定向代理1100产生并且返回Diameter答复消息给DRL答复处理902,DRL答复处理902转而向对等体218发送该答复消息。
图12是根据本文所述的主题的一个实施例,描述用于在Diameter节点处提供本地应用路由的示例性基于背对背应用的本地DSR应用的框图。参照图12,对等体218可以向DRL208发送针对会话=foo的Diameter请求消息,由ART 500接收该Diameter请求消息。ART 500用于判断是否需要由Diameter应用对Diameter消息进行处理。响应于确定需要进行Diameter应用处理,向背对背应用1200转发Diameter消息以进行处理。在处理针对会话=foo的请求之后,背对背应用1200将针对会话=bar的请求返回给ART500。然后,ART 500将针对会话=bar的请求转发给对等路由表502,然后转发给路由清单表504。基于在表500‑504中执行的查询的结果,识别出对等体220,并且转发Diameter消息。在处理针对会话=bar的请求之后,对等体220返回针对会话=bar的答复消息给DRL答复处理902,DRL答复处理902转而向背对背应用1200发送该答复消息。背对背应用1200处理该消息,并且将针对会话=foo的答复消息返回给DRL答复处理902,该DRL答复处理902转而向对等体218发送针对会话=foo的答复消息,与其对会话=foo的请求相对应。
图13是根据本文所述的主题的一个实施例,描述用于在Diameter节点处提供本地应用路由的示例性基于委托代理的本地DSR应用的框图。参照图13,对等体218可以向DRL 208发送针对会话=foo的Diameter请求消息,由ART 500接收该Diameter请求消息。ART 500用于判断是否需要由Diameter应用对Diameter消息进行处理。响应于确定需要进行Diameter应用处理,向委托代理1300转发Diameter消息以进行处理。在处理针对会话=foo的请求之后,委托代理1300将针对会话=foo的请求返回给ART 500。然后,ART 500将针对会话=foo的请求转发给对等路由表502,然后转发给路由清单表504。基于在表500‑504中执行的查询的结果,识别出对等体220,并且转发Diameter消息。在处理针对会话=foo的请求之后,对等体220把针对会话=foo的答复消息返回给DRL答复处理902,DRL答复处理902转而向委托代理1300发送该答复消息。委托代理1300处理该消息,并且把针对会话=foo的答复消息返回给DRL答复处理902,DRL答复处理902转而向对等体218发送针对会话=foo的答复消息,与其针对会话=foo的请求相对应。
图14是根据本文所述的主题的一个实施例,描述其中服务中途退出在Diameter节点处提供本地应用路由的示例性本地DSR应用情形的框图。参照图14,对等体218可以向DRL 208发送针对会话=foo的Diameter请求消息,由ART 500接收该Diameter请求消息。ART 500用于判断是否需要用Diameter应用对Diameter消息进行处理。响应于确定需要进行Diameter应用处理,向DSR服务1400转发Diameter消息以进行处理。在处理针对会话=foo的请求之后,DSR服务1400向DRL答复处理902发送针对会话=foo的Diameter答复消息,DRL答复处理902转而向ART 500发送针对会话=foo的另一个请求消息。然后,ART 500将针对会话=foo的请求转发给对等路由表502,然后转发给路由清单表504。基于在表500‑504中执行的查询的结果,识别出对等体220,并且转发Diameter消息。在处理针对会话=foo的请求之后,对等体220把针对会话=foo的答复消息返回给DRL答复处理902,DRL答复处理902转而向对等体218发送该答复消息,与其针对会话=foo的请求相对应。
图15是根据本文所述的主题的一个实施例,描述用于将消息路由到本地DSR应用以便在Diameter节点处提供本地应用路由的示例性路由情形的框图。为了支持用作不同类型Diameter节点(客户端、委托等)的各种本地应用,从消息路由的角度来看,DRL应该类似于对等体那样处理本地应用。
应当认识到,可以支持“未决事务”队列以用于答复响应的向后路由。例如,当本地客户端或服务器应用发送请求消息时,DRL可能需要将答复响应路由回那个应用。当DRL将请求消息路由到服务器应用的客户端时,DRL可能需要将答复响应从本地应用路由回已接收到的请求所来自的对等体。可以认识到,向本地应用发送的请求消息可以或可以不保存在“未决事务”队列中,并且在不脱离本文所述主题的范围的情况下,可以使用逐跳ID将DRL和本地应用之间交换的消息进行关联。
此外,在一种可能的实施例中,应当理解,可以与从对等体接收到的答复响应同样,对来自本地应用的答复响应进行处理。例如,当DRL接收到来自任何本地应用的正常(例如,成功的)答复响应时,内部DRL到本地应用事务(类似于Diameter对等到对等事务)完成,并且DRL将该答复响应传播给发送过调用应用处理的初始请求消息的对等体。
为了对同一消息支持一个或多个服务(通过本地DSR应用),在每次应用调用之后,DRL将重新搜索ART,以便基于消息内容(其可能已经被之前的应用调用改变)来判断是否需要调用任何其它应用。
为了支持对本地应用排序的控制,“初始应用ID”将用于搜素ART。每次搜索ART,就将“初始应用ID”设置为已接收到的消息所来自的本地应用ID。当从对等接收到初始消息时,DRL将“初始本地应用ID”设置为默认值,该默认值指示消息的源是对等体(例如,“网络”或者“DRL”)。例如,如果运营商想要按照那个优先级顺序来调用四个本地DSR应用21、10、33、以及5,每当从具有目的地‑范围=“at.com”和应用ID=55的对等体接收到消息时,就配置下列ART规则。
为了避免本地之间的应用消息处理环路,DRL将利用DSR专用的内部‑路由‑记录(Internal‑Route‑Record)AVP,类似于用于检测内部消息环路的路由‑记录(Route‑Record)AVP。每次DRL针对端到端Diameter事务调用本地应用,其将加上包含之前处理过消息的本地应用的标识的内部‑路由‑记录(Internal‑Route‑Record)AVP。每次DRL搜索ART并且找到匹配的一个或多个规则时,其必须确认最高规则的目的地‑应用‑ID(Destination‑Application‑ID)不匹配内部‑路由‑记录(Internal‑Route‑Record)AVP值中的任何一个(指示已经针对该端到端事务调用了应用)。如果检测到消息环路,DRL将放弃对该消息进行路由,并且向对等体发送Diameter_UNABLE_TO_DELIVER(Diameter无法传递)答复响应,并且发出本地OAM警报或事件,以便将潜在的ART配置问题通知运营商。然而,可以理解,当DRL完成应用路由时,DRL可以在搜索PRT之前从消息中删除所有的内部‑路由‑记录(Internal‑Route‑Record)AVP。
图16是根据本文所述的主题的一个实施例,描述了其中DRL检测内部消息环路的示例性本地DSR应用路由的消息序列图。在图16所示的用例中,应用‑2想要保持在信令路径中,但不创建新的会话。参照图16,DRL308可以位于本地应用‑1 1600和本地应用‑2 1602之间。
在步骤1604处,可以从本地应用‑1 1600向DRL 308发送请求消息,其指示会话‑ID=888、逐跳=100、以及端到端=999。
在步骤1606处,DRL 308可以接收新事务,并且使用初始‑应用‑名称(Origin‑Appl‑Name)=应用‑1来搜索其ART。搜索结果可以包括找到针对应用‑2的匹配。然后,DRL 308可以向应用‑2发起新事务,并且将(应用‑1,跳=100)映射到(应用‑2,跳=200)。DRL 308可以将应用‑1和应用‑2保存在“所调用的本地应用的清单”中。
在步骤1608处,可以从DRL 308向本地应用‑2 1602发送请求消息,其指示(会话‑ID=888,逐跳=200,端到端=999,“来自应用‑1的消息”,内部‑路由‑记录=应用‑1)。
在步骤1610处,本地应用‑2 1602可能想要保持在信令路径中。因此,本地应用‑2 1602可以对步骤1608中接收到的消息进行任何改变,并且向DRL 308发起新的对等到对等事务“300”。
在步骤1612处,本地应用‑2 1602可以向DRL 308发送请求消息,其指示(会话‑ID=888,逐跳=300,端到端=999,“来自应用‑2的消息”,内部‑路由‑记录=应用‑1)。
在步骤1614处,DRL 308可以接收新事务,并且使用初始‑应用‑名称=应用‑2来搜索其ART。搜索结果可以包括:找到针对已经处理过该事务的应用‑1 1600的匹配。
因为不允许本地应用环路,DRL 308可以发送具有设置为“Diameter_LOOP_DETECTED(检测到Diameter环路)”的结果‑代码(Result‑Code)的答复响应。例如,在步骤1616处,DRL 308可以向本地应用‑2 1602发送答复消息,其指示(会话‑ID=888,逐跳=300,端到端=999,结果‑代码=Diameter_LOOP_DETECTED)。
在步骤1618处,本地应用‑2 1602可以向DRL 308发送答复消息,其指示(会话‑ID=888,逐跳=200,端到端=999,结果‑代码=Diameter_LOOP_DETECTED)。
在步骤1620处,DRL 308可以将(应用‑2,跳=200)关联到(应用‑1,跳=100)。可以理解,该映射还可以在上面的步骤1606中执行。
在步骤1622处,DRL 308可以向本地应用‑1 1600发送答复消息,其指示(会话‑ID=888,逐跳=100,端到端=999,结果‑代码=Diameter_LOOP_DETECTED)。
图17是根据本文所述的主题的一个实施例,描述了其中没有检测到DRL内部消息环路的示例性本地DSR应用路由的消息序列图。在图17中所示的用例中,本地应用‑2 1602可以包括创建新会话的背对背代理。参照图17,除了本地应用‑1 1600、本地应用‑2 1602、以及DRL 308,还示出了服务器1700。
在步骤1702处,本地应用‑1 1600可以向DRL 308发送请求消息,其指示(会话‑ID=888,逐跳=100,端到端=999)。
在步骤1704处,DRL 308可以接收新事务,并且使用初始‑应用‑名称=应用‑1来搜索其ART。搜索结果可以包括找到针对应用‑2的匹配。然后,DRL 308可以以内部‑路由‑记录=应用‑1来向应用‑2 1602发起新事务并且将(应用‑1,跳=100)映射到(应用‑2,跳=200)。
在步骤1706处,DRL 308可以向本地应用‑2 1602发送请求消息,其指示(会话‑ID=888,逐跳=200,端到端=999,“来自应用‑1的消息”,内部‑路由‑记录=应用‑1)。
在步骤1708处,应用‑2 1602可以是在两个会话(例如,会话888和会话222)之间互相作用的背对背委托代理。当接收到来自应用‑1 1600的会话‑ID=888时,应用‑2 1602可以打开新的会话‑ID=222,并且向没有转发内部‑路由‑记录AVP的DRL 308发起新的端到端事务“300”。
在步骤1710处,当本地应用‑2 1602向DRL 308发送指示(会话‑ID=222,逐跳=300,端到端=1,“来自应用‑2的消息”)的请求消息时,会话222可以开始。
在步骤1712处,DRL 308可以接收新事务,并且使用初始‑应用‑名称=应用‑2来搜索其ART。搜索结果可以包括找到针对应用‑1的匹配。然而,由于不存在内部‑路由‑记录AVP,所以不存在消息环路问题,并且可以对事务进行路由。
在步骤1714处,DRL 308可以向本地应用‑1 1600发送请求消息,其指示(会话‑ID=222,逐跳=400,端到端=1,“来自应用‑2的消息”,内部‑路由‑记录=应用‑2)。
在步骤1716处,本地应用‑1 1600可以向DRL 308发送请求消息,其指示(会话‑ID=222,逐跳=500,端到端=1,“来自应用‑1的消息”,内部‑路由‑记录=应用‑2)。
在步骤1718处,DRL 308可以向服务器1 1700发送请求消息,其指示(会话‑ID=222,逐跳=600,端到端=1,“来自应用‑1的消息”)。
为了使DRL 308支持本地应用修改消息但是不为那个事务或会话中的剩余内容保持在信令路径中的能力,可以使用下列DSR专用的答复消息增强处理。首先,在答复响应中返回“已更新消息”的能力。第二,本地应用告知DRL其应该继续对初始请求消息进行路由而不将答复响应向对等体传播的能力。
当本地DSR应用想要告知DRL 308:其已经完成应用处理,并且请求消息路由应该继续,本地DSR应用必须将答复响应中的结果‑代码设置为DSR应用专用值“继续”。可以理解,这与向对等体传播答复的普通DRL处理形成对比。
如果本地应用已经修改了消息,则其可以返回DSR应用专用AVP中的叫做“已更新‑消息”的已更新消息。如果存在已更新‑消息AVP,则DRL308将采用新消息继续进行本地应用路由。如果不存在已更新‑消息AVP,则DRL 308将采用初始消息继续进行本地应用路由。还应当理解的是,如果DRL 308和本地应用不能访问同一共享存储空间,则可能仅需要已更新‑消息AVP。由于Diameter消息的大小,在适当位置修改消息可能是更有效的,而不是在DRL和本地应用之间复制这些消息。
图18是根据本文所述的主题的一个实施例,描述了其中本地委托应用修改了输入消息并且退出信令路径的示例性本地DSR应用路由的消息序列图。参照图18,在步骤1802处,客户端1 1800可以向DRL 308发送请求消息,其指示(逐跳=100,端到端=999,目的地‑范围=att.com,用户‑名称=IMSI)。
在步骤1804处,DRL 308可以使用初始‑应用‑名称=“网络”来搜索其ART。_找到匹配_LAPR动作=“路由到本地DSR应用‑1”。然后,DRL308可以创建针对应用‑1 1600的新的内部事务“200”,并且将(客户端1,跳=100)映射到(应用‑1,跳=200)。
在步骤1806处,DRL 308可以向本地应用‑1 1600发送请求消息,其指示(逐跳=200,端到端=999,“来自客户端1的消息”)。
在步骤1808处,本地应用‑1 1600可以向DRL 308发送答复消息,其指示(逐跳=200,端到端=999,结果‑代码=继续,已更新‑消息=“来自应用‑1的消息”)。
在步骤1810处,来自应用‑1 1600的答复响应可以包括应用专用的结果‑代码=继续(即,应用‑1正在请求:请求消息处理应该继续)。因此,DRL308可以移除(客户端1,跳=100)到(应用‑1,跳=200)的映射(在上面的步骤1804中执行),并且用初始‑应用‑名称=应用‑1来重新搜索其ART。没有找到其它匹配,DRL 308可以随后用从应用‑1 1600接收到的消息来搜索其PRT,并且找到具有解析成路由‑2(服务器1 1700)的路由清单‑5的规则。然后,DRL 308可以创建(客户端1,跳=100)到(服务器1,跳=300)的映射。
在步骤1812处,DRl 308可以向服务器1 1700发送请求消息,其指示(逐跳=300,端到端=999,“来自应用‑1的消息”)。
在步骤1814处,服务器1 1700可以向DRL 308发送答复消息,其指示(逐跳=300,端到端=999,结果‑代码=DIAMETER_成功)。
在步骤1816处,DRL 308可以将(服务器1,跳=300)关联到(客户端1,跳=100)。应当理解,该映射是在上面的步骤1810中执行的。
在步骤1818处,DRL 308可以向客户端1 1800发送答复消息,其指示(逐跳=100,端到端=999,结果‑代码=DIAMETER_成功)。
图19是根据本文所述的主题的一个实施例,描述了其中本地委托应用没有修改输入消息并且退出信令路径的示例性本地DSR应用路由的消息序列图。
在步骤1900处,客户端1 1800可以向DRL 308发送请求消息,其指示(逐跳=100,端到端=999,目的地‑范围=att.com,用户‑名称=IMSI)。
在步骤1902处,DRL 308可以用初始‑应用‑名称=“网络”来搜索其ART,并且找到LAPR动作=“路由到本地DSR应用‑1”。其可以创建针对应用‑1 1600的新的内部事务,并且将(客户端1,跳=100)映射到(应用‑1,跳=200)。
在步骤1904处,DRL 308可以向本地应用‑1 1600发送请求消息,其指示(逐跳=200,端到端=999,“来自客户端1的消息”)。
在步骤1906处,本地应用‑1 1600可以将答复消息返回给DRL 308,其指示(逐跳=200,端到端=999,结果‑代码=继续)。
在步骤1908处,应当理解的是,来自应用‑1的答复响应具有应用专用的结果‑代码=继续(即,应用‑1正在请求:请求消息处理应该继续)。因此,DRL 208可以移除上面的步骤1902中执行的(客户端1,跳=100)到(应用‑1,跳=200)的映射,并且用初始‑应用‑名称=应用‑1来重新搜索其ART。没有找到其它匹配,DRL 208可以随后用从客户端‑1 1800接收到的消息来搜索其PRT,并且找到具有解析为路由‑2(即,服务器11700)的路由清单‑5的规则。然后,DRL 208可以创建(客户端1,跳=100)到(服务器1,跳=300)的映射。
在步骤1910处,DRl 308可以向服务器1 1700发送请求消息,其指示(逐跳=300,端到端=999,“来自客户端‑1的消息”)。
在步骤1912处,服务器1 1700可以向DRL 308返回答复消息,其指示(逐跳=300,端到端=999,结果‑代码=DIAMETER_成功)。
在步骤1914处,DRL 308可以将(服务器1,跳=300)关联到(客户端1,跳=100)。应当理解,该映射在上面的步骤1908中执行。
在步骤1916处,DRL 308可以向客户端1 1800发送答复消息,其指示(逐跳=100,端到端=999,结果‑代码=DIAMETER_成功)。
应用路由表‑内容
下列条目可以存储在ART中。然而,应当理解的是,这些仅仅是出于描述的目的,而不是想要限制。
规则名称–运营商所提供的针对规则标识的名称。
规则优先级–如果表格查询找到多个匹配,则将选择具有最高(最小值)优先级的条目。
规则消息选择参数:用户能够定义为针对消息匹配的准则的消息参数
·(M)目的地‑范围–类似于Diameter范围路由表,核心数据类型:八位字节串(OctetString)
·(M)应用ID–类似于Diameter范围路由表,32‑比特值
·(M)目的地‑主机–类似于Diameter对等表中的“主机标识”,核心数据类型:八位字节串
·(D)初始‑范围–标识了产生消息的范围。这通常是客户端节点。这目前被归类为“所期望的”但不是强制用于支持基本路由能力,核心数据类型:八位字节串
·(D)初始‑主机–标识了产生消息的主机。
·(D)用户‑名称–标识了调用该服务所针对的用户,核心数据类型:八位字节串
·(D)命令‑代码–标识了请求消息类型。未来应该支持任何数值来支持增加应用专用的命令代码,24‑比特数值
初始‑应用‑ID:用于对本地应用执行进行排序的附加的ART搜索参数
规则动作–定义了当调用该规则时要执行的动作。
所支持的动作:
·路由到本地DSR应用–消息将被路由到规则的目的地‑应用‑ID字段(见下文)所标识的本地DSR应用。
·发送答复响应–将使用规则的结果‑代码字段(见下文)来发送答复响应,并且将不进行进一步的消息处理。
规则动作参数:
·目的地‑应用‑ID–当动作设置为“路由到本地DSR应用”时,消息将被路由到该本地DSR应用ID
·结果代码–当“动作”设置为“发送答复响应”时,要使用的结果‑代码AVP值。默认值是3002“Diameter_UNABLE_TO_DELIVER”
本地DSR应用路由用例
图20是根据本文所述的主题的一个实施例,描述了其中本地应用向远程服务器发起事务的示例性本地DSR应用路由用例的消息序列图。参照图20,在步骤2000处,本地应用‑1 1600可以向DRl 308发送请求消息,指示(逐跳=100,端到端=999,目的地‑范围=att.com,应用‑ID=455)。
在步骤2002中,DRL 308可以接收新事务,并且使用初始‑应用‑名称=应用‑1来搜索其ART。没有找到匹配(即,不需要其它本地应用处理),DRL 308可以随后搜索其PRT并且找到解析为路由‑2(服务器1)的路由清单‑5的规则。然后,DRL 308可以将(应用‑1,跳=100)映射到(服务器1,跳=200)。
在步骤2004处,DRL 308可以向服务器1 1700发送请求消息,指示(逐跳=200,端到端=999,应用ID=455,“目的地‑范围=att.com)。
在步骤2006处,服务器1 1700可以将答复消息返回给DRL 308,指示(逐跳=200,端到端=999,应用ID=455,结果‑代码=DIAMETER_成功)。
在步骤2008处,DRL 308可以将(服务器1,跳=200)关联到(应用‑1,跳=100)。可以理解,该映射是在上面的步骤2002中完成的。
在步骤2010处,DRl 308可以向本地应用‑1 1600发送答复消息,指示(逐跳=100,端到端=999,应用ID=455,结果‑代码=DIAMETER_成功)。
图21是根据本文所述的主题的一个实施例,描述了其中本地服务器应用接收并且处理来自远程客户端的请求的示例性本地DSR应用路由用例的消息序列图。参照图22,在步骤2100处,客户端1 1800可以向DRL 308发送请求消息,指示(逐跳=100,端到端=999,目的地‑范围=att.com,用户‑名称=IMSI)。
在步骤2102处,DRL 308可以使用初始‑应用‑ID=“网络”来搜索其ART,并且找到具有动作=“路由到本地DSR”和目的地‑应用‑ID=1的规则。然后,DRL 308可以创建针对应用‑1的新的内部事务“200”,并且将(客户端1,跳=100)映射到(应用‑1,跳=200)。
在步骤2104处,DRL 308可以向本地应用‑1 1600发送请求消息,指示(逐跳=200,端到端=999,“来自客户端1的消息”)。
在步骤2106处,本地应用‑1 1600可以返回答复消息,指示(逐跳=200,端到端=999,结果‑代码=DIAMETER_成功)。
在步骤2108处,DRL 308可以将(应用‑1,跳=200)关联到(客户端1,跳=100)。可以理解,该映射是在上面的步骤2102中完成的。
在步骤2110处,DRL 308可以向客户端1 1800发送答复消息,指示(逐跳=100,端到端=999,结果‑代码=DIAMETER_成功)。
图22是根据本文所述的主题的一个实施例,描述了其中本地委托应用通过创建新会话而保持在信令路径中的示例性本地DSR应用路由用例的消息序列图。在图22中所示的用例中,应用‑1 1600是创建新会话的背对背委托代理。最可能的情况是,目的地‑主机被编址到DSR应用。
在步骤2200处,客户端1 1800可以向DRL 308发送请求消息,指示(会话‑ID=222,端到端=999,逐跳=100,“来自客户端1的消息”)。
在步骤2202处,DRL 308可以使用初始‑应用‑ID=“网络”来搜索其ART,并且找到具有动作=“路由到本地DSR”和目的地‑应用‑ID=1的规则。然后,DRL 308可以创建针对应用‑1的新的内部事务“200”,并且将(客户端1,跳=100)映射到(应用‑1,跳=200)。
在步骤2204处,DRL 308可以向本地应用‑1 1600发送请求消息,指示(会话‑ID=222,逐跳=200,端到端=999,“来自客户端1的消息”)。
在步骤2206处,应用‑1 1600可以是在两个会话之间互相作用的背对背委托代理。当接收到会话‑ID=888时,应用‑1 1600可以打开新的会话‑ID=222,并且向DRL 308发起新的端到端事务“1”。
在步骤2208处,本地应用‑1 1600可以向DRL 308发送请求消息,指示(会话‑ID=888,逐跳=300,端到端=1,“来自应用‑1的消息”)。
在步骤2210中,DRL 308可以接收新事务,并且使用初始‑应用‑名称=应用‑1来搜索其ART,但是没有找到匹配。DRL 308可以随后搜索其PRT,并且找到解析为路由‑2(服务器1)的路由清单‑5的规则。DRL 308可以将(应用‑1,跳=300)映射到(服务器1,跳=400)。
在步骤2212处,DRL 308可以向服务器1 1700发送请求消息,指示(会话‑ID=888,逐跳=400,端到端=1,“来自应用‑1的消息”)。
在步骤2214处,服务器1 1700可以将答复消息返回给DRL 308,指示(会话‑ID=888,逐跳=400,端到端=1,结果‑代码=DIAMETER_成功)。
在步骤2216处,DRL 308可以将(服务器1,跳=400)关联到(应用1,跳=300)。应当理解,该映射是在上面的步骤2210中完成的。
在步骤2218处,DRL 308可以向本地应用1600发送答复消息,指示(会话‑ID=888,逐跳=300,端到端=1,结果‑代码=DIAMETER_成功)。
在步骤2220处,本地应用‑1 1600可以将答复消息返回给DRL 308,指示(会话‑ID=222,逐跳=200,端到端=999,结果‑代码=DIAMETER_成功)。
在步骤2222处,DRL 308可以将(应用‑1,跳=200)关联到(客户端1,跳=100)。可以理解,该映射是在上面的步骤2202中完成的。
在步骤2224处,DRL 308可以向客户端1 1800发送答复消息,指示(会话‑ID=888,逐跳=100,端到端=999,结果‑代码=DIAMETER_成功)。
图23是根据本文所述的主题的一个实施例,描述了其中本地委托应用在没有创建新会话的情况下保持在信令路径中的示例性本地DSR应用路由用例的消息序列图。在图23中所示的用例中,应用‑1 1600可以是不创建新会话的委托代理,因为其针对端到端事务仅仅对消息进行微调(tweak)。
在步骤2300处,客户端1 1800可以向DRL 308发送请求消息,指示(会话‑ID=999,逐跳=100,“来自客户端1的消息”)。
在步骤2302处,DRL 308可以用初始‑应用‑ID=“网络”来搜索其ART,并且找到具有动作=“路由到本地DSR”和目的地‑应用‑ID=1的规则。然后,DRL 308可以创建针对应用‑1的新的内部事务“200”,并且将(客户端1,跳=100)映射到(应用‑1,跳=200)。
在步骤2304处,DRL 308可以向本地应用‑1 1600发送请求消息,指示(会话‑ID=999,逐跳=200,端到端=999,“来自客户端1的消息”)。
在步骤2306处,应用‑1 1600可能想要保持在信令路径中,所以应用‑11600可以对该消息进行任意改变,并且在不创建新会话的情况下向DRL308发起新事务“300”。
在步骤2308处,本地应用‑1 1600可以向DRL 308发送请求消息,指示(会话‑ID=999,逐跳=300,端到端=999,“来自应用‑1的消息”)。
在步骤2310中,DRL 308可以接收新事务,使用初始‑应用‑名称=应用‑1来搜索其ART,且没有找到匹配。DRL 308可以随后搜索其PRT,并且找到解析为路由‑2(服务器1)的路由清单‑5的匹配。DRL 308可以将(应用‑1,跳=300)映射到(服务器1,跳=400)。
在步骤2312处,DRL 308可以向服务器1 1700发送请求消息,指示(会话‑ID=999,逐跳=400,端到端=999,“来自应用‑1的消息”)。
在步骤2314处,服务器1 1700可以将答复消息返回给DRL 308,指示(会话‑ID=999,逐跳=400,端到端,结果‑代码=DIAMETER_成功)。
在步骤2316处,DRL 308可以将(服务器1,跳=400)关联到(应用1,跳=300)。可以理解,该映射是在上面的步骤2310中完成的。
在步骤2318处,DRL 308可以向本地应用‑1 1600发送答复消息,指示(会话‑ID=999,逐跳=300,端到端=999,结果‑代码=DIAMETER_成功)。
在步骤2320处,本地应用‑1 1600可以将答复消息返回给DRL 308,指示(会话‑ID=999,逐跳=200,端到端=999,结果‑代码=DIAMETER_成功)。
在步骤2322处,DRL 308可以将(应用‑1,跳=200)关联到(客户端1,跳=100)。可以理解,该映射是在上面的步骤2302中完成的。
在步骤2324处,DRL 308可以向客户端1 1800发送答复消息,指示(会话‑ID=999,逐跳=100,端到端=999,结果‑代码=DIAMETER_成功)。
图24是根据本文所述的主题的一个实施例,描述了其中本地客户端应用向远程服务器发起事务,并且本地应用拦截并且退出信令路径的示例性本地DSR应用路由用例的消息序列图。参照图24,在步骤2400处,本地应用‑1 1600可以向DRL 308发送请求消息,指示(逐跳=100,端到端=999,目的地‑范围=att.com,应用‑ID=455)。
在步骤2402处,DRL 308可以接收新事务,并且使用初始‑应用‑名称=应用‑1来搜索其ART,以便找到具有动作=“路由到本地DSR”和目的地‑应用‑ID=2的规则。然后,DRL 308可以向应用‑2发起新事务,并且将(应用‑1,跳=100)映射到(应用‑2,跳=200)。
在步骤2404处,DRL 308可以向本地应用‑2 1602发送请求消息,指示(逐跳=200,端到端=999,“来自应用‑1的消息”)。
在步骤2406处,本地应用‑2 1602可以向DRL 308返回答复消息,指示(逐跳=200,端到端=999,结果‑代码=继续,[“来自应用‑2的消息”])。
在步骤2408处,来自应用‑1 1600的答复响应可以具有应用‑专用的结果‑代码=继续(即,应用‑1正在请求:请求消息处理应该继续)。因此,DRL308可以移除(应用‑1,跳=100)到(应用‑2,跳=200)的映射(在上面的步骤2402中完成),并且用初始‑应用‑名称=应用‑2来重新搜索其ART,没有找到其它匹配。DRL 308可以随后搜索其PRT,并且找到解析为路由‑2(服务器1)的路由清单‑5的RRR。然后,DRL 308可以创建(客户端1,跳=100)到(服务器1,跳=300)的映射。
在步骤2410处,DRL 308可以向服务器1 1700发送请求消息,指示(逐跳=300,端到端=999,“来自应用‑2的消息”)。
在步骤2412处,服务器1 1700可以将答复消息返回给DRL 308,指示(逐跳=300,端到端=999,结果‑代码=DIAMETER_成功)。
在步骤2414处,DRL 308可以将(服务器1,跳=300)关联到(应用‑1,跳=100)。可以理解,该映射是在上面的步骤2408中完成的。
在步骤2416处,DRL 308可以向本地应用‑1 1600发送答复消息,指示(逐跳=100,端到端=999,结果‑代码=DIAMETER_成功)。
图25是根据本文所述的主题的一个实施例,描述了其中本地客户端应用向远程服务器发起事务并且本地应用拦截且保持在信令路径中的示例性本地DSR应用路由用例的消息序列图。参照图25,在步骤2500处,本地应用‑1 1600可以向DRL 308发送请求消息,指示(逐跳=100,端到端=999,目的地‑范围=att.com,应用‑ID=455)。
在步骤2502处,DRL 308可以接收新事务,使用初始‑应用‑名称=应用‑1来搜索其ART,且找到具有动作=“路由到本地DSR”和目的地‑应用‑ID=2的规则。然后,DRL 308可以向应用‑2发起新事务,并且将(应用‑1,跳=100)映射到(应用‑2,跳=200)。
在步骤2504处,DRL 308可以向本地应用‑2 1602发送请求消息,指示(逐跳=200,端到端=999,“来自应用‑1的消息”)。
在步骤2506处,应用‑2 1602可能想要保持在信令路径中,因此应用‑21602可以对消息进行任何改变,并且向DRL 308发起新事务“200”(应用‑21602维持与Diameter会话相关联的状态信息)。
在步骤2508处,本地应用‑2 1602可以向DRL 308发送请求消息,指示(逐跳=300,端到端=999,“来自应用‑2的消息”)。
在步骤2510处,DRL 308可以接收新事务,使用初始‑应用‑名称=应用‑2来搜索其ART,且没有找到匹配。DRL 308可以随后搜索其PRT,并且找到解析为路由‑2(服务器1)的路由清单‑5的匹配。然后,DRL 308可以将(应用‑2,跳=300)映射到(服务器1,跳=400)。
在步骤2512处,DRL 308可以向服务器1 1700发送请求消息,指示(逐跳=400,端到端=999,“来自应用‑2的消息”)。
在步骤2514处,服务器1 1700可以向DRL 308返回答复消息,指示(逐跳=400,端到端=999,结果‑代码=DIAMETER_成功)。
在步骤2516处,DRL 308可以将(服务器1,跳=400)关联到(应用‑2,跳=300)。可以理解,该映射是在上面的步骤2510中完成的。
在步骤2518处,DRL 308可以向本地应用‑2 1602发送答复消息,指示(逐跳=300,端到端=999,结果‑代码=DIAMETER_成功)。
在步骤2520处,本地应用‑2 1602可以将答复消息返回给DRL 308,指示(逐跳=200,端到端=999,结果‑代码=DIAMETER_成功)。
在步骤2522中,DRL 308可以将(应用‑2,跳=200)关联到(应用‑1,跳=100)。可以理解,该映射是在上面的步骤2502中完成的。
在步骤2524处,DRL 308可以向本地应用‑1 1600发送答复消息,指示(逐跳=100,端到端=999,结果‑代码=DIAMETER_成功)。
图26是根据本文所述的主题的一个实施例,描述了其中本地委托应用中止事务的示例性本地DSR应用路由用例的消息序列图。参照图24,在步骤2600处,客户端1 1800可以向DRL 308发送请求消息,指示(逐跳=100,端到端=999,目的地‑范围=att.com,用户‑名称=IMSI)。
在步骤2602处,DRL 308可以使用初始‑应用‑ID=“网络”来搜索其ART,并且找到具有动作=“路由到本地DSR”和目的地‑应用‑ID=1的规则。然后,DRL 308可以创建针对应用‑1的新的内部事务,并且将(客户端1,跳=100)映射到(应用‑1,跳=200)。
在步骤2604处,DRL 308可以向本地应用‑1 1600发送请求消息,指示(逐跳=200,端到端=999,“来自客户端1的消息”)。
在步骤2606处,应用‑1 1600可能遭遇不可恢复的错误,并且中止事务。
在步骤2608处,本地应用‑1 1600可以将答复消息返回给DRL 308,指示(逐跳=200,端到端=999,结果‑代码=Diameter_UNABLE_TO_DELIVER)。
在步骤2610处,DRL 308可以将(应用‑1,跳=200)关联到(客户端1,跳=100)。可以理解,该映射是在上面的步骤2602中完成的。
在步骤2612处,DRL 308可以向客户端1 1800发送答复消息,指示(逐跳=100,端到端=999,结果‑代码=Diameter_UNABLE_TO_DELIVER)。
图27是根据本文所述的主题的一个实施例,描述了其中DSR用作针对本地应用的重定向代理的示例性本地DSR应用路由用例的消息序列图。参照图27,在步骤2700处,客户端1 1800可以向DRL 308发送请求消息,指示(逐跳=100,端到端=999,目的地‑范围=att.com,应用‑ID=398)。
在步骤2702处,DRL 308可以用初始‑应用‑ID=“网络”来搜索其ART,并且找到具有动作=“路由到本地DSR”和目的地‑应用‑ID=1的规则。然后,DRL 308可以创建针对应用‑1的新的内部事务“200”,并且将(客户端1,跳=100)映射到(应用‑1,跳=200)。
在步骤2704处,DRL 308可以向FQDN1 1700发送请求消息,指示(逐跳=200,端到端=999,目的地‑范围=at.com,应用ID=398,“来自客户端1的消息”)。
在步骤2706处,本地应用‑1 DSR重定向代理应用1600’可以查看请求消息中的信息,并且创建用于对消息进行路由的一个或多个目的地(重定向‑主机)的清单。
在步骤2708处,本地应用‑1 DSR重定向代理应用1600’可以向DRL308返回答复消息(逐跳=200,端到端=999,目的地‑范围=att.com,应用ID=398,E‑比特=1,重定向‑主机=FQDN1,重定向‑主机=FQDN2,[重定向‑主机‑用途],结果‑代码=Diameter_重定向_指示)。
在步骤2710处,DRL 308可以将(应用‑1,跳=200)关联到(客户端1,跳=100)。可以理解,该映射是在上面的步骤2702中完成的。
在步骤2712处,DRL 308可以向客户端1 1800发送答复消息,指示(逐跳=100,端到端=999,E‑比特=1,重定向‑主机=FQDN1,重定向‑主机=FQDN2,[重定向‑主机‑用途],结果‑代码=Diameter_重定向_指示)。
在步骤2714处,在接收到具有结果‑代码=Diameter_重定向_指示的答复响应时,Diameter客户端1 1800可以尝试将消息路由到第一重定向‑主机AVP中标识的主机。
在步骤2716处,客户端1 1800可以向FQDN1 1700发送请求消息,指示(逐跳=300,端到端=1001,目的地‑范围=att.com,应用ID=398,目的地‑主机=FQDN1)。
图28是根据本文所述的主题的一个实施例,描述了其中本地DSR应用执行修饰性NAI处理的示例性本地DSR应用路由用例的消息序列图。参照图28,在步骤2800处,客户端1 1800可以向DRL 308发送请求消息,指示(逐跳=100,目的地‑范围=范围‑Z,应用‑ID=398,用户‑名称=范围‑X!范围‑H!用户名称@范围‑Z)。
在步骤2802处,DRL 308可以用初始‑应用‑ID=“网络”来搜索其ART,并且找到具有动作=“路由到本地DSR”和目的地‑应用‑ID=1的规则。然后,DRL 308可以创建针对应用‑1的新内部事务“200”,并且将(客户端1,跳=100)映射到(应用‑1,跳=200)。
在步骤2804处,DRL 308可以向修饰性NAI 1600”的本地应用‑1发送请求消息,指示(逐跳=200,目的地‑范围=范围‑Z,应用‑ID=398,用户‑名称=范围‑X!范围‑H!用户名称@范围‑Z)。
在步骤2806处,本地DSR应用‑1 1600”可以执行修饰性NAI的处理,将消息返回给DRL以进行向外(outbound)路由,并且退出信令路径。
在步骤2808处,修饰性NAI的应用‑1 1600”可以向DRL 308返回答复消息,指示(逐跳=200,目的地‑范围=范围‑X,应用‑ID=398,用户‑名称=范围‑H!用户名称@范围‑X),结果‑代码=继续)。
在步骤2810处,来自应用‑1的答复响应具有应用‑专用的结果‑代码=继续(即,应用‑1正在请求:请求消息处理应该继续)。因此,DRL 308可以移除(客户端1,跳=100)到(应用‑1,跳=200)的映射(在上面的步骤2802中执行),并且用初始‑应用‑名称=应用‑1来重新搜索其ART。没有找到其它匹配,DRL 308可以随后搜索其PRT,并且找到解析为路由‑2(服务器1)的路由清单‑5的RRR。然后,DRL 308可以创建(客户端1,跳=100)到(服务器1,跳=300)的映射。
在步骤2812处,DRL 308可以向服务器1 1700发送请求消息,指示(逐跳=300,“来自应用‑1的消息”)。
在步骤2814处,服务器1 1700可以向DRL 308返回答复消息,指示(逐跳=300,结果‑代码=DIAMETER_成功)。
在步骤2816处,DRL 308可以将(服务器1,跳=300)关联到(客户端1,跳=100)。应当理解,该映射是在上面的步骤2810中完成的。
在步骤2818处,DRL 308可以向客户端1 1800发送答复消息,指示(逐跳=1000,结果‑代码=DIAMETER_成功)。
将会理解,在不脱离本文所述的主题的范围的情况下可以改变本文所述的主题的各个细节。此外,前面的描述仅仅是出于描述的目的,而不是出于限制的目的,因为本文所述的主题是由下面所述的权利要求限定的。

用于在DIAMETER节点处提供本地应用路由的方法、系统、以及计算机可读介质.pdf_第1页
第1页 / 共53页
用于在DIAMETER节点处提供本地应用路由的方法、系统、以及计算机可读介质.pdf_第2页
第2页 / 共53页
用于在DIAMETER节点处提供本地应用路由的方法、系统、以及计算机可读介质.pdf_第3页
第3页 / 共53页
点击查看更多>>
资源描述

《用于在DIAMETER节点处提供本地应用路由的方法、系统、以及计算机可读介质.pdf》由会员分享,可在线阅读,更多相关《用于在DIAMETER节点处提供本地应用路由的方法、系统、以及计算机可读介质.pdf(53页珍藏版)》请在专利查询网上搜索。

1、(10)申请公布号 CN 102859944 A (43)申请公布日 2013.01.02 C N 1 0 2 8 5 9 9 4 4 A *CN102859944A* (21)申请号 201180018670.0 (22)申请日 2011.02.11 61/304,310 2010.02.12 US H04L 12/28(2006.01) H04L 29/02(2006.01) (71)申请人泰克莱克股份有限公司 地址美国北卡罗来纳州 (72)发明人 DE华莱士 ME卡诺德 DM斯普拉格 JA克雷格 TM麦卡恩 KK卡玛卡 M托马尔 (74)专利代理机构永新专利商标代理有限公司 72002 。

2、代理人张立达 王英 (54) 发明名称 用于在DIAMETER节点处提供本地应用路由 的方法、系统、以及计算机可读介质 (57) 摘要 本申请公开了用于在Diameter节点处提供 本地应用路由的方法、系统、以及计算机可读介 质。一种方法包括:在与Diameter信令路由器 (DSR)相关联的输入Diameter消息处理器处接收 来自对等Diameter单元的Diameter消息。在输 入Diameter消息处理器处,访问应用路由数据, 来判断是否需要由Diameter应用对Diameter消 息进行处理。响应于确定需要进行Diameter应 用处理,向用于负责所述应用路由数据所标识的 Dia。

3、meter应用的Diameter消息处理器转发所述 Diameter消息以进行处理。响应于确定不需要进 行Diameter应用处理,向与所述DSR相关联的输 出Diameter消息处理器转发所述Diameter消息。 (30)优先权数据 (85)PCT申请进入 国家阶段日 2012.10.12 (86)PCT申请的申请数据 PCT/US2011/024622 2011.02.11 (87)PCT申请的公布数据 WO2011/100610 EN 2011.08.18 (51)Int.Cl. 权利要求书2页 说明书22页 附图28页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利。

4、要求书 2 页 说明书 22 页 附图 28 页 1/2页 2 1.一种用于在包括Diameter信令路由器(DSR)的多个Diameter消息处理器之间对 Diameter消息进行路由的方法,所述方法包括: 在与所述DSR相关联的输入Diameter消息处理器处接收来自对等Diameter单元的 Diameter消息; 在所述输入Diameter消息处理器处,使用应用路由数据来判断是否需要由Diameter 应用对所述Diameter消息进行处理; 响应于确定需要进行Diameter应用处理,向负责由所述应用路由数据所标识的 Diameter应用的Diameter消息处理器转发所述Diame。

5、ter消息以进行处理;以及 响应于确定不需要进行Diameter应用处理,向与所述DSR相关联的输出Diameter消 息处理器转发所述Diameter消息。 2.如权利要求1所述的方法,包括:将转发给所述Diameter应用的所述Diameter消 息在由所述Diameter应用处理之后返回给所述输入Diameter消息处理器。 3.如权利要求1所述的方法,其中,所述Diameter应用是由所述DSR负责的本地应用。 4.如权利要求3所述的方法,其中,所述Diameter应用针对与所述Diameter消息相关 联的Diameter会话保持状态信息。 5.如权利要求1所述的方法,其中,所述Di。

6、ameter应用是由Diameter单元而不是所述 DSR负责的远程应用。 6.如权利要求1所述的方法,其中,向与所述DSR相关联的输出Diameter消息处理器 转发所述Diameter消息的步骤包括:访问所述输入Diameter消息处理器上的Diameter对 等路由模块,以便确定要向哪个输出Diameter消息处理器转发所述Diameter消息。 7.如权利要求5所述的方法,其中,与所述输入Diameter消息处理器和输出Diameter 消息处理器相关联的Diameter对等路由模块共享共同的Diameter对等路由信息。 8.如权利要求1所述的方法,其中,向由所述应用路由数据所标识的。

7、Diameter应用转 发所述Diameter消息以进行处理的步骤包括:基于多个Diameter应用的可用性状态来选 择所述多个Diameter应用中的一个。 9.如权利要求1所述的方法,其中,向由所述应用路由数据所标识的Diameter应用转 发所述Diameter消息以进行处理的步骤包括:基于多个Diameter应用的拥塞状态来选择 所述多个Diameter应用中的一个。 10.如权利要求1所述的方法,其中,向由所述应用路由数据所标识的Diameter应用转 发所述Diameter消息以进行处理的步骤包括:基于多个Diameter应用的消息处理容量来 选择所述多个Diameter应用中的一。

8、个。 11.一种Diameter信令路由器,包括: 与DSR相关联的输出Diameter消息处理器;以及 与所述DSR相关联的输入Diameter消息处理器,并且其配置为: 接收来自对等Diameter单元的Diameter消息; 判断是否需要由Diameter应用对所述Diameter消息进行处理,其中,判断是否需要由 Diameter应用对所述Diameter消息进行处理包括:访问应用路由数据; 响应于确定需要进行Diameter应用处理,向负责由所述应用路由数据所标识的 Diameter应用的Diameter消息处理器转发所述Diameter消息以进行处理;以及 权 利 要 求 书CN 。

9、102859944 A 2/2页 3 响应于确定不需要进行Diameter应用处理,向所述输出Diameter消息处理器转发所 述Diameter消息。 12.如权利要求11所述的DSR,包括:将转发给所述Diameter应用的所述Diameter消 息在由所述Diameter应用处理之后返回给所述输入Diameter消息处理器。 13.如权利要求11所述的DSR,其中,所述DSR单元负责本地Diameter应用。 14.如权利要求13所述的DSR,其中,所述Diameter应用针对与所述Diameter消息相 关联的Diameter会话保持状态信息。 15.如权利要求11所述的DSR,其中,。

10、所述Diameter应用是由Diameter单元而不是所 述DSR单元负责的远程应用。 16.如权利要求11所述的DSR,其中,所述输出Diameter消息处理器配置为:访问所述 输入Diameter消息处理器上的Diameter对等路由模块,以便确定要向哪个输出Diameter 消息处理器转发所述Diameter消息。 17.如权利要求15所述的DSR,其中,所述输入Diameter消息处理器和输出Diameter 消息处理器共享共同的Diameter对等路由信息。 18.如权利要求11所述的DSR,其中,所述输入Diameter消息处理器配置为:基于多个 Diameter应用的可用性状态来。

11、选择所述多个Diameter应用中的一个。 19.如权利要求11所述的DSR,其中,所述输入Diameter消息处理器配置为:基于多个 Diameter应用的拥塞状态来选择所述多个Diameter应用中的一个。 20.如权利要求11所述的DSR,其中,所述输入Diameter消息处理器配置为:基于多个 Diameter应用的消息处理容量来选择所述多个Diameter应用中的一个。 21.一种非临时性计算机可读介质,包括计算机可读介质中所包含的计算机可执行指 令,并且当计算机的处理器执行所述计算机可执行指令时执行包括以下各项的步骤: 在与DSR相关联的输入Diameter消息处理器处接收来自对等。

12、Diameter单元的 Diameter消息; 在所述输入Diameter消息处理器处,使用应用路由数据来判断是否需要由Diameter 应用对所述Diameter消息进行处理; 响应于确定需要进行Diameter应用处理,向负责由所述应用路由数据所标识的 Diameter应用的Diameter消息处理器转发所述Diameter消息以进行处理;以及 响应于确定不需要进行Diameter应用处理,向与所述DSR相关联的输出Diameter消 息处理器转发所述Diameter消息。 权 利 要 求 书CN 102859944 A 1/22页 4 用于在 DIAMETER 节点处提供本地应用路由的方。

13、法、 系统、 以及计算机可读介质 0001 优先权声明 0002 本申请要求于2010年2月12日提交的、美国临时专利申请序列号No.61/304,310 的优先权;在此通过引用的方式将其全部内容合并入本文。通过引用方式的纳入内容的申 明 0003 下列于2011年2月11日提交的共同共有、共同待审的美国专利申请中的每一个 的公开内容是通过引用的方式将它们的全部内容合并入本文的。 0004 “Methods,Systems,And Computer Readable Media For Inter-Diameter-Message Processor Routing”,律师案卷号No.1322。

14、/399/2(还没有分配 序列号); 0005 “Methods,Systems,And Computer Readable Media For Source Peer Capacity-Based Diameter Load Sharing”,律师案卷号No.1322/399/3(还没有分配序列 号); 0006 “Methods,Systems,And Computer Readable Media For Inter-Message Processor Status Sharing”,律师案卷号No.1322/399/4(还没有分配序列号); 0007 “Methods,Systems,。

15、And Computer Readable Media For Providing Priority Routing At A Diameter Node”,律师案卷号No.1322/399/5(还没有分配序列号); 0008 “Methods,Systems,And Computer Readable Media For Providing Peer Routing At A Diameter Node”,律师案卷号No.1322/399/6/2(还没有分配序列号); 0009 “Methods,Systems,And Computer Readable Media For Providin。

16、g Origin Routing At A Diameter Node”,律师案卷号No.1322/399/7(还没有分配序列号); 0010 “Methods,Systems,And Computer Readable Media For Answer-Based Routing Of Diameter Request Messages”,律师案卷号No.1322/399/9(还没有分配序列号); 0011 “Methods,Systems,And Computer Readable Media For Performing Diameter Answer Message-Based Net。

17、work Management At A Diameter Signaling Router(DSR)”, 律师案卷号No.1322/399/10(还没有分配序列号); 0012 “Methods,Systems,And Computer Readable Media For Multi-Interface Monitoring And Correlation Of Diameter Signaling Information”,律师案卷号 No.1322/399/11(还没有分配序列号); 0013 “Methods,Systems,And Computer Readable Media F。

18、or Diameter Protocol Harmonization”,律师案卷号No.1322/399/12(还没有分配序列号); 0014 “Methods,Systems,And Computer Readable Media For Diameter Network Management”,律师案卷号No.1322/399/13(还没有分配序列号);以及 0015 “Methods,Systems,And Computer Readable Media For Diameter Application Loop Prevention”,律师案卷号No.1322/399/14(还没有分配。

19、序列号)。 说 明 书CN 102859944 A 2/22页 5 技术领域 0016 本文描述的主题涉及在Diameter节点处进行路由。更具体地,所述主题涉及用于 在Diameter节点处提供本地应用路由的方法、系统、以及计算机可读介质。 背景技术 0017 Diameter是针对计算机网络的认证、授权和计费(AAA)协议,并且是RADIUS的后 续。Diameter基础协议是定义在IETF RFC 3588中的,在此通过引用的方式将其公开内容 全部合并入本文。Diameter节点是执行Diameter协议的主机处理,并且DSR消息处理器 (MP)是负责DSR信令应用的计算机或者刀片(bl。

20、ade)。Diameter信令路由器(DSR)是共享 共同的Diameter路由表的一组位于同一位置的DSR MP,并且被一对服务、操作、支配、以及 管理(SOAM)服务器支持。DSR可以包括一个或多个Diameter节点。 0018 DSR可以包括多个MP。然而,与这类配置有关联的一个问题是,其不是可扩展的或 者用户友好的,因为每个MP通常必须由运营商单独配置。当在DSR处接收到Diameter消 息时,可能需要用一个或多个Diameter应用对该消息进行处理。目前,不存在将Diameter 消息自动路由到合适的Diameter应用并且最终到达其下一跳目的地的方法。正因如此,运 营商承担手动。

21、配置MP间链路,这可能是麻烦、费时间、并且容易出错的。而且,每个MP承担 与Diameter路由相关联的全部开销。 0019 相应地,鉴于这些困难,需要用于在Diameter节点处提供本地应用路由的改进的 方法、系统、以及计算机可读介质。 发明内容 0020 本申请公开了用于在Diameter节点处提供本地应用路由的方法、系统、以及计算 机可读介质。根据一种方法,Diameter消息是在包括Diameter信令路由器(DSR)的多个 Diameter消息处理器之间路由的。所述方法包括:在与所述DSR相关联的输入Diameter消 息处理器处接收来自对等Diameter单元的Diameter消息。

22、。访问输入Diameter消息处理器 上的应用路由数据,来判断是否需要由Diameter应用对Diameter消息进行处理。响应于 确定需要进行Diameter应用处理,向用于负责所述应用路由数据所标识的Diameter应用 的Diameter消息处理器转发所述Diameter消息以进行处理。或者,响应于确定不需要进行 Diameter应用处理,向与所述DSR相关联的输出Diameter消息处理器转发所述Diameter 消息。 0021 本申请还公开了用于在Diameter节点处提供本地应用路由的包括多个Diameter 消息处理器的DSR。DSR包括与逻辑DSR单元相关联的输出Diamet。

23、er消息处理器。与逻 辑DSR单元相关联的输入Diameter消息处理器配置为:接收来自对等Diameter单元的 Diameter消息,并且判断是否需要由Diameter应用对Diameter消息进行处理,其中,判断 是否需要由Diameter应用对Diameter消息进行处理包括:访问应用路由数据。响应于确 定需要进行Diameter应用处理,输入Diameter消息处理器向用于负责应用路由数据所标 识的Diameter应用的Diameter消息处理器转发Diameter消息以进行处理。或者,响应于 确定不需要进行Diameter应用处理,输入Diameter消息处理器向输出Diamete。

24、r消息处理 器转发Diameter消息。 说 明 书CN 102859944 A 3/22页 6 0022 本文所述的主题可以在与硬件和/或固件相结合的软件中执行。例如,本文所 述的主题可以实现为处理器执行的功能。在一个示例性实施方案中,本文所述的用于在 Diameter节点处提供本地应用路由的主题可以使用具有保存在其上的可执行指令的非临 时性计算机可读介质来实现,当计算机的处理器执行所述可执行指令时,控制所述处理器 执行步骤。适于执行本文所述的主题的示例性非临时性计算机可读介质包括:处理器可访 问的芯片存储设备或磁盘存储设备,可编程逻辑设备、以及专用集成电路。此外,用于执行 本文所述的主题的。

25、计算机可读介质可以位于单个计算平台上或者分布上多个计算平台上。 0023 如本文所使用的,术语“节点”指的是包括一个或多个处理器和存储器的物理计算 平台。 0024 如本文所使用的,术语“功能”或“模块”指的是用于实现本文所述的特征的与硬 件和/或固件相结合的软件。 附图说明 0025 现在将围绕附图对本文所述的主题进行阐述,其中: 0026 图1是根据本文所述的主题的一个实施例,描述用于在Diameter节点处提供本地 应用路由的过程的流程图; 0027 图2是根据本文所述的主题的一个实施例,描述包括用于在Diameter节点处提供 本地应用路由的每个MP全栈(full stack per 。

26、MP)的示例性架构的框图; 0028 图3是根据本文所述的主题的一个实施例,描述用于在Diameter节点处提供本地 应用路由的专用DCL MP的示例性架构的框图; 0029 图4是根据本文所述的主题的一个实施例,描述包括用于在Diameter节点处提供 本地应用路由的专用DCL/DRL和应用MP的示例性架构的框图; 0030 图5是根据本文所述的主题的一个实施例,描述用于在Diameter节点处提供本地 应用路由的示例性高层消息路由流程的框图; 0031 图6是根据本文所述的主题的一个实施例,描述用于在Diameter节点处提供本地 应用路由的、包括每个MP一个Diameter节点的示例性可。

27、扩展的、MP间路由DSR NE的框图; 0032 图7是根据本文所述的主题的一个实施例,描述用于在Diameter节点处提供本地 应用路由的、包括功能划分的示例性可扩展DSRNE的框图; 0033 图8是根据本文所述的主题的一个实施例,描述用于在Diameter节点处提供本地 应用路由的示例性主机路由情形的网络图; 0034 图9是根据本文所述的主题的一个实施例,描述用于在Diameter节点处提供本地 应用路由的示例性的基于客户端的本地DSR应用的框图; 0035 图10是根据本文所述的主题的一个实施例,描述用于在Diameter节点处提供本 地应用路由的示例性的基于服务器的本地DSR应用的。

28、框图; 0036 图11是根据本文所述的主题的一个实施例,描述用于在Diameter节点处提供本 地应用路由的示例性的基于重新定向代理的本地DSR应用的框图; 0037 图12是根据本文所述的主题的一个实施例,描述用于在Diameter节点处提供本 地应用路由的示例性的基于背对背(back-to-back)应用的本地DSR应用的框图; 0038 图13是根据本文所述的主题的一个实施例,描述用于在Diameter节点处提供本 说 明 书CN 102859944 A 4/22页 7 地应用路由的示例性的基于委托代理的本地DSR应用的框图; 0039 图14是根据本文所述的主题的一个实施例,描述其中。

29、服务中途退出在Diameter 节点处提供本地应用路由的示例性本地DSR应用情形的框图; 0040 图15是根据本文所述的主题的一个实施例,描述用于将消息路由到本地DSR应用 以便在Diameter节点处提供本地应用路由的示例性路由情形的框图; 0041 图16是根据本文所述的主题的一个实施例,描述了其中DRL检测内部消息环路的 示例性本地DSR应用路由的消息序列图; 0042 图17是根据本文所述的主题的一个实施例,描述了其中没有检测到DRL内部消息 环路的示例性本地DSR应用路由的消息序列图; 0043 图18是根据本文所述的主题的一个实施例,描述了其中本地委托应用修改输入 消息并且退出信。

30、令路径的示例性本地DSR应用路由的消息序列图; 0044 图19是根据本文所述的主题的一个实施例,描述了其中本地委托应用没有修改 输入消息并且退出信令路径的示例性本地DSR应用路由的消息序列图; 0045 图20是根据本文所述的主题的一个实施例,描述了其中本地应用向远程服务器 发起事务的示例性本地DSR应用路由用例的消息序列图; 0046 图21是根据本文所述的主题的一个实施例,描述了其中本地服务器应用接收并 且处理来自远程客户端的请求的示例性本地DSR应用路由用例的消息序列图; 0047 图22是根据本文所述的主题的一个实施例,描述了其中本地委托应用通过创建 新会话而保持在信令路径中的示例性。

31、本地DSR应用路由用例的消息序列图; 0048 图23是根据本文所述的主题的一个实施例,描述了其中本地委托应用在没有创 建新会话的情况下保持在信令路径中的示例性本地DSR应用路由用例的消息序列图; 0049 图24是根据本文所述的主题的一个实施例,描述了其中本地客户端应用向远程 服务器发起事务、以及本地应用拦截并且退出信令路径的示例性本地DSR应用路由用例的 消息序列图; 0050 图25是根据本文所述的主题的一个实施例,描述了其中本地客户端应用向远程 服务器发起事务、以及本地应用拦截并且保持在信令路径中的示例性本地DSR应用路由用 例的消息序列图; 0051 图26是根据本文所述的主题的一个。

32、实施例,描述了其中本地委托应用中止事务 的示例性本地DSR应用路由用例的消息序列图; 0052 图27是根据本文所述的主题的一个实施例,描述了其中DSR作为针对本地应用的 重新定向代理的示例性本地DSR应用路由用例的消息序列图;以及 0053 图28是根据本文所述的主题的一个实施例,描述了其中本地DSR应用执行修饰性 NAI处理的示例性本地DSR应用路由用例的消息序列图。 具体实施方式 0054 本文所述的主题包括用于在Diameter节点处提供本地应用路由的方法、系统、以 及计算机可读介质。具体地,本文所述的主题可以在Diameter信令路由器(DSR)网络单元 (NE)处实施,所述Diam。

33、eter信令路由器(DSR)网络单元(NE)包括Diameter连接层(DCL)、 Diameter路由层(DRL)、一个或多个应用、以及一个或多个路由表。示例性DRL能力可以包 说 明 书CN 102859944 A 5/22页 8 括:基于消息内容将请求消息路由到对等体或者本地应用;基于消息内容规则丢弃或者拒 绝Diameter请求消息;对等体拥塞控制;允许运营商仅访问已购买的特征和容量、以及更 简单的配置。此外,本文所述的用于在Diameter节点处进行本地应用路由的主题提供了更 灵活的一组消息处理和路由能力。不假设所有的路由决定是基于在消息中接收到的固定的 一组消息参数(目的地-范围(。

34、Destination-Realm)、目的地-主机(Destination-Host)、 以及应用ID(Application ID),相反地,消息路由可以基于用户定义的消息内容规则。根 据一个方面,DSR可以支持中继代理Diameter消息路由以及各种增值服务/应用。为了 同时支持应用处理和核心Diameter路由功能,DSR可以支持两种消息路由表:应用路由表 (ART)和对等路由表(PRT),稍后将更详细地描述它们中的每一个。 0055 图1是根据本文所述的主题的一个实施例,用于在Diameter节点处提供本地应用 路由的流程图,其包括在一起构成DSR的多个Diameter消息处理器(MP。

35、)之间对Diameter 消息进行路由。参照图1,在步骤100中,在与DSR相关联的输入Diameter消息处理器处接 收到来自对等Diameter单元的Diameter消息。例如,位于Diameter客户端和Diameter 服务器之间的DSR可以接收来自客户端的Diameter请求消息。 0056 在步骤102中,在输入Diameter消息处理器处,访问应用路由表模块(ART),以便 确定是否需要由Diameter应用对Diameter消息进行处理。 0057 在步骤104中,响应于确定需要进行Diameter应用处理,向用于负责ART所标识 的本地Diameter应用的Diameter消。

36、息处理器转发Diameter消息,以进行处理。 0058 在步骤106中,响应于确定不需要进行Diameter应用处理,向与DSR相关联的输 出Diameter消息处理器转发Diameter消息。 0059 示例性架构 0060 第一种架构选项可以包括:其中每个MP支持包括DCL、DRL、以及应用层的完整 Diameter栈。第二种架构选项可以包括在专用MP上运行的DCL,路由和应用层可以要么在 专用MP上结合,要么具有针对每个层的专用MP。第三种架构选项可以包括:在专用MP上 运行的Diameter栈(DCL、DRL)、在单独的专用MP上运行的本地Diameter应用。现在将围 绕图2、3和。

37、4更详细地描述这些示例性架构选项中的每一个。 0061 图2是根据本文所述的主题的一个实施例,描述用于在Diameter节点处提供本地 应用路由的每个MP完整栈的示例性架构的框图。参照图2,DSR网络单元(NE)200可以包 括:用于接收来自对等体的Diameter消息的输入MP 202、以及用于向对等体发送Diameter 消息的输出MP 204。输入MP 202和输出MP 204可以各自包括DCL、DRL、以及一个或多个 应用。例如,输入MP 202可以包括DCL 206、DRL 208、以及应用210。同样,输出MP 204可 以包括DCL 212、DRL 214、以及应用216。为了在。

38、输入MP202和输出MP 204之间进行通信, 输入MP 202的DRL 208可以操作用于与输出MP 204的DRL 214进行通信。此外,DRL 208 和214可以各自操作用于分别与DCL 206和212、以及应用210和216进行通信。 0062 在示例性Diameter消息路由情形中,对等体N-1218可以向DSR NE200发送 Diameter消息。输入MP 202的DCL 206可以接收该Diameter消息。通过由DRL 208对 Diameter消息的目的地对等体进行选择,可以在输入MP 202上对输入消息进行完全处理。 继续上面的示例性情形,DCL 206可以将Diame。

39、ter消息传递给DRL 208。 0063 如果需要进行应用处理,则输入DRL 208可以向用于负责本地应用的Diameter 说 明 书CN 102859944 A 6/22页 9 消息处理器转发Diameter消息。例如,DRL 208可以向用于负责本地应用210的MP转发 Diameter消息,所述MP对该消息进行处理,并且将该消息返回给DRL 208。应当认识到,可 以不需要应用分布功能。 0064 接下来,输入DRL 208可以向输出DRL 214转发该Diameter消息,以便转发给本 地DCL队列212。然后,输出DCL 212可以向对等体N+1 220发送该Diameter消息。

40、。 0065 图3是根据本文所述的主题的一个实施例,描述包括用于在Diameter节点处提供 本地应用路由的专用DCL MP的示例性架构的框图。与图2中所示的每个MP完整栈的实施 例相反,图3中所示的实施例包括专用DCLMP。参照图3,DSR NE 200可以包括:用于接收来 自对等体的Diameter消息的DCL-MP 300、以及用于向对等体发送Diameter消息的DCL-MP 308。类似地,DSR NE 200可以包括DRL-MP 302和DRL-MP 306,其用于接收来自对等体的 Diameter消息,以及用于向对等体发送Diameter消息。与每个MP完整栈的实施例(图2) 相。

41、反,应用-MP 304可以与DRL-MP 302相关联,并且可能不具有与DRL-MP 306相关联的必 然性(corollary)。像图2一样,DRL-MP 302和306可以各自操作,以进行互相通信。 0066 因此,在类似于围绕图2所述的示例性Diameter消息路由情形中,DCL-MP 300可 以接收输入Diameter消息,所述DCL-MP 300可以基于如下因素将Diameter消息(例如,请 求消息)分发给DRL-MP 302,这些因素包括但不限于:与其它DRL-MP相比(图中没有将它们 全部示出),DRL-MP 302的可用性、每秒事务处理(TPS)容量、以及拥塞状态。 006。

42、7 DRL-MP 302可以判断是否需要进行应用处理。如果需要进行应用处理,则输入 DRL-MP 302可以将请求消息分发给应用-MP 304(同样根据其可用性、TPS容量、以及拥塞 状态)。 0068 然后,输入DRL-MP 302可以选择针对消息的目的地对等体,并且输入DRL-MP 302 可以将该消息向输出DRL-MP 306转发。然后,输出DRL-MP306可以将该消息向输出DCL-MP 308(MP间通信上的最高等级)转发,以便传递给DRL-MP 302所选择的对等体N+1220。 0069 图4是根据本文所述的主题的一个实施例,描述包括用于在Diameter节点处提供 本地应用路由。

43、的专用DCL/DRL和应用MP的示例性架构的图。可以认识到,图4表示图2的 每个MP完整栈和图3的专用DCL/DRL/应用-MP的混合方法。参照图4,在示例性Diameter 消息路由情形中,对等体N-1 218可以向DSR NE 200发送Diameter消息。输入MP 202的 DCL 206可以接收该Diameter消息。通过由DRL208对该Diameter消息的目的地对等体进 行选择,可以在输入MP 202上对输入消息进行完全处理。然后,DCL206可以向DRL 208传 递该Diameter消息。 0070 如果需要进行应用处理,则输入DRL 208可以向本地应用转发Diamete。

44、r消息。例 如,DRL 208可以向本地应用304转发Diameter消息,所述本地应用304可以处理该消息, 并且将该消息返回给DRL 208。 0071 接下来,输入DRL 208可以向输出DRL 214转发Diameter消息,以便转发给本地 DCL队列212。然后,输出DCL 212可以向对等体N+1 220发送Diameter消息。 0072 图5是根据本文所述的主题的一个实施例,描述用于在Diameter节点处提供本地 应用路由的示例性高层消息路由流程的框图。参照图5,对等体N-1 218可以向DSR 200发 送Diameter请求消息。DSR 200可以查阅ART500,以便判。

45、断是否需要由Diameter应用对 该消息进行处理。当接收到来自对等体的输入消息时,可以对ART 500进行搜索。如果消 说 明 书CN 102859944 A 7/22页 10 息内容与ART规则相匹配,则将该消息转发给应用以进行处理。这样反复继续,直到找不到 其它规则匹配为止。例如,ART 500可以将该消息转发给应用-1 210进行处理,并且在将 该消息返回给ART 500之后,可以随后将该消息转发给应用-2 216进行处理。 0073 在完成本地应用处理之后,ART 500可以将该消息转发给PRT 502。在ART 500搜 索结束之后,可以搜索对等路由表(PRT)502,使得如果消息。

46、内容(在应用处理更新之后)与 PRT 502规则相匹配,可以将消息路由到与该规则相关联的路由清单表504中的路由清单 所定义的Diameter对等体。这样,在查阅路由清单表504之后,可以向对等体N+1 220发 送该消息。 0074 图6是根据本文所述的主题的一个实施例,描述包括用于在Diameter节点处提 供本地应用路由的每个MP一个Diameter节点的示例性可扩展的、MP间路由DSR NE的框 图。从用户的角度来看,每个MP一个Diameter节点的设计可能有多个缺点。例如,单独的 ART、PRT以及路由清单表必须配置在每个DSR MP上。此外,必须配置DSR MP之间的全网 状(f。

47、ull-mesh)主干网,并且如下所示,每次在两个DSR MP之间对消息进行路由时,必须采 用两倍的DRL路由规则的开销。因此,期望减小或消除这些缺点。 0075 根据一个实施例,对“N”个独立DSR节点的改进是为了在DSR MP之间共享DRL表, 从而从路由的角度将DSR NE当作单个Diameter“节点”。在这样的实施例中,对于DSR NE 中的所有DSR MP而言,ART、PRT、路由清单、路由组、路由、以及对等表可以是共用的。然后, 可以创建新的“DSR NE”表,以便用作多个MP(其为DSR NE的一部分)之间的全网状SCTP 连接的自动配置的源。此外,期望可以在相同的地点支持多个。

48、DSR NE。 0076 在单个DSR NE配置的情况下,可以如下消除输入MP和输出MP两者上的冗余的 DRL路由。最初接收来自对等体的消息的输入DSR MP将负责ART和PRT表搜索和路由选 择。输入DSR MP从活动路由组中选择路由,并且将其从其对等体接收到的消息和所选择 的路由(对等体)两者都转发给用于控制对等连接的DSR MP。当输出DSR MP接收到来自对 等DSR MP的包含路由的请求消息时,其将绕开ART和PRT处理,并且试图将该消息传递给 输入MP所选择的对等体。应当将输出DSR MP上进行的DRL处理保持在绝对最小值(bare minimum)。 0077 参照图6,输入MP。

49、 200可以成为DSR MP(N)200,而输出MP 204可以成为DSR MP (N+1)204。对等体N-1 218可以向DSR MP(N)200发送Diameter消息,在该DSR MP(N) 200处,可以通过ART 500对该Diameter消息进行处理。ART 500可以判断是否需要进行 本地应用处理,如果是,则可以向应用210转发Diameter消息。在返回给ART 500之后,可 以将该Diameter消息转发给PRT 502,然后转发给路由清单表504。 0078 使用路由清单表504实施的处理可以包括路由清单处理606。路由清单处理606 可以包括:选择活动组608、从路由组中选择路由610、以及传递消息612。 0079 当DSR MP(N+1)204接收到消息时,可以通过ART 600处理该消息。ART 600可 以判断是否需要进行本地应用处理,如果是,则可以向应用216转发Diameter消息。在返 回给ART 600。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 电学 > 电通信技术


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1