TRIP--IP电话路由的技术和应用

发表于:2007-06-23来源:作者:点击数: 标签:
摘要: 文章介绍了IP电话路由的一种新技术---TRIP,通过对TRIP体系框架、术语、元素、功能和协议提供的服务,以及协议实现中相关的路由数据、消息格式等的语法、语义的介绍,和对现在通讯产品中TRIP应用实例的分析,来阐述TRIP的优点和如何正确的使用它来解

   


 
摘要:

文章介绍了IP电话路由的一种新技术---TRIP,通过对TRIP体系框架、术语、元素、功能和协议提供的服务,以及协议实现中相关的路由数据、消息格式等的语法、语义的介绍,和对现在通讯产品中TRIP应用实例的分析,来阐述TRIP的优点和如何正确的使用它来解决当前IP电话路由一次定位的问题。
关键字:

TRIP,网关,IP电话,路由技术,软交换
1 TRIP产生的背景
  建立在Internet上的各种通讯已经成为当今社会信息化发展的主要通讯方式,特别是IP电话渐渐将成为语音通讯的主流产品,IP电话用户的不断增加和IP网络的膨胀式的扩大,带动着越来越多的不同厂商、不同功能IP电话通讯网关(Gateway)的共存和使用,随着其数量和使用率的提增,它们的工作机制和人们对其的管理也越来越复杂,其中最困难的问题就是IP电话的网关定位问题,也就是一个呼叫设备对另一个IP终端电话进行呼叫时的网关选择、网关发现和网关路由问题等等。
  在对网关的选择过程中,往往要受到可选网关数量、不同运应商之间的运营策略、终端用户的需求、网关容量和网关之间协议属性的兼容性等等方面因素的制约,因此为了全球的互通,IP电话网络不可能建立在一个全球性"网关目录"(Directory of Gateways)之上,即使建立了这个"网关目录",其信息的动态、实时更新和维护也不是一件容易的事情。
  为此,一种分布式的建立在不同国家、不同地域、不同运应商、不同网络上的路由信息和这些信息可以相互广播、自动同步、友好共享(基于策略)的IP电话路由信息操作机制的建立就很有必要,于是TRIP协议便应运而生,TRIP协议就是这种机制的协调和管理规则的集合,它允许每个网关资源的管理者根据不同的策略建立自己的本地可用网关数据库,然后按照不同的策略进行数据库之间不同网关信息的聚合、广播、交换和共享,---首先使这些信息在本地对自己可用,然后再把这些信息按照一定策略传播给、同步给其它供应商,这些数据库中的网关信息供信令服务器、软交换设备和其它用户直接查询使用。
  在下一代网络技术(NGN)已经到来的今天,TRIP协议已经被国内外通讯厂商普遍认同的一种必不可少的路由协议。
2 协议描述
  准确地说Trip(Telephony Routing over IP)并不是一个协议,而是本文要描述的被收集、被聚合、被广播和被管理的内容------IP电话路由,为了直观地理解其被操作的过程和这些过程中所遵循的规则,人们也就把它称为TRIP协议。
2.1 TRIP的功能和要解决的问题
  在介绍TRIP的功能前,先介绍TRIP中用到的几个专业术语,这些术语所对应实体的功能分别在后面有详细描述。
  网 关(Gateway): 连接电路交换网络和IP网络的一种设备,其能发起和结束IP电话信令协议和电话网络信令协议。
  区域服务器(Location Server --LS)): 一个具有IP连接性的逻辑设备,它可以知道那些网关可用于结束对GSTN的呼叫,它是参与TRIP功能的主要功能实体,也是端用户完成与电话网络呼叫的联系点,它也负责向其它LS传播网关信息。
  Internet电话管理域(Internet Telephony Administrative Domain --ITAD)): 单个管理机构控制下的资源集合(包括网关、区域服务器)。
  提供者(Provider): Internet电话管理域(ITAD)的管理员。
  区域服务器策略(Location Server Policy): 区域服务器处理通过TRIP发送和接收信息的一系列规则集合,包括聚集、传播、产生和接收所有网关信息的规则。
  电话路由信息库(Telephony Routing Information Base--TRIB): LS建立的网关数据库,用于保存TRIP的参与结果。
2.1.1 TRIP的功能
  TRIP协议是不同管理域之间进行IP电话网关路由信息交换的一个专用协议,它是独立于任何信令协议的一种协议,其主要的功能如下:
● 建立和维护路由信息提供者之间的对等关系。

● 交换和同步提供者之间的电话网关路由信息。

● 防止稳定路由的循环。

● 以及时的和可扩展的方式广播已知的网关路由信息。

● 定义和描述电路网关路由数据的语法、语义和路由信息传送的规则。
2.1.2 TRIP要解决的问题
  TRIP协议,其解决的主要问题就是IP电话的网关路由问题,从一个较高的角度来看,就是解决映射问题---给定一个电话号码映射出一个电话网关的IP地址,也可以简单的称为"电话号码到IP地址转换问题"。通常,我们遇到电话号码与IP地址转换的情况很多,只有"给定一个电路交换网络的用户电话号码,判断能够完成对其进行呼叫的网关的IP地址"是TRIP协议要解决的问题,只有它才真正的涉及到一个呼叫设备和另一个应答设备之间的信令信息在IP网络上传输时必须进行IP网关路由的层层选择,因此TRIP协议解决的是电话号码与IP地址转换的问题,但是并不是所有IP与地址转换的问题它都解决。
2.2 TRIP与目前IP电话路由协议的区别
  TRIP可归类为一种域间路由协议,目前用到的域间路由协议很多,如BGP-4、OSPF、SCSP等,由于TRIP出现较晚,因此其吸取了这些"先辈"的很多优点,如它具有与BGP-4类似的格式与属性,使用了BGP的域间传输机制、对等通信、有限状态机制等特性,同时,TRIP又象OSPF、、SCSP协议一样具有一些增强的连接状态特性,如域内溢出机制(Intra-domain flooding mechanism)等等。
  但是它与这些已经存在的域间路由协议有很大的区别,由于BGP-4协议目前使用较广,因此在此只对TRIP协议和BGP-4两种域间管理协议进行比较:
● TRIP运行在应用层,而不象BGP-4运行在网络层。

● TRIP运行和存在于许多中间网络和IP服务提供者的服务器(即LS)之间,而BGP-4则在邻近的路由器之间。

● TRIP的对等体之间交换的信息描述了到应用层网关设备的路由信息,而BGP-4描述的却是IP路由信息。

● TRIP假定存在底层的IP传输网络,这意味着交换TRIP路由信息的服务器不需要转发信息路由的信令消息。而在BGP-4中却非如此,对等体(路由器)必须作为IP包的转发点(或为一个相邻前转点)。

● TRIP的目的不是建立跨ITAD的全球性连接,它对很多通过TRIP互通的相对独立区域(如平行关系的省、市、县级电讯网络)尤其合适,每个区域在管理关系上都是相对封闭的一个集合,而且每个区域都可以与全球的GSTN有完全的互通。这同BGP-4形成了鲜明对比,BGP的目标是通过Internet对全球进行互连互通,如果由于BGP-4断连,一个AS就会从其他中分离出来,则它们之间就没有任何IP网络连接了。

● 由于TRIP位于应用层,而不是网络层,因此TRIP描述的网关路由信息要比BGP-4所描述的IP路由信息要复杂得多,而且这些信息的描述参数也多的多。

● BGP-4交换的是代表IP命名空间部分的前缀,而TRIP交换的是电话号码区间,这个区间表示的是GSTN号码空间的一部分,因此两种命名空间的组织和层次均不相同。
以上的区别说明TRIP与BGP-4之间真是"青出于蓝而胜于蓝",在功能上二者虽有相近之处,但二者在功能定位和存在的先进性方面已是不可同日而语了。
2.3 TRIP的体系结构
  图1给出了TRIP的体系结构。
TRIP--IP电话路由的技术和应用(图一)
  网络上有许多ITAD,每个ITAD至少有一个LS,这些LS,通过称为域内协议的带外方式了解自己域内网关的信息。图中ITAD1的域内协议用GW和LS元素之间的连线(黑色线)表示。
  图中的红线是TRIP协议控制下的各个域中网关路由信息在LS之间被聚合、被交换、被广播、被同步的路径。各个ITAD管理者首先签订适用于交互网关信息的TRIP协议,然后通过管理手段建立起这些信息共享的联合体,一个域中的LS同其它域中的LS都成为联合体的一员,于是这些LS通过这种方式就可以交换网关信息了。在图中,ITAD1的LS1与ITAD2的LS1相连,ITAD2的LS2又依次与ITAD3的LS1相连通,通过TRIP协议,ITAD2的LS2就可以了解ITAD1上的两个网关,这两个网关的网关路由信息就可以由ITAD2的终端用户通过其前端(front-end)进行访问。在ITAD3中,既有终端用户,又有网关,ITAD3的LS1通过ITAD2上LS2已经聚合后的广播消息来了解ITAD1上的网关。

图1: TRIP体系结构图

2.4 TRIP的构成要素

  图1中TRIP的体系结构中包括下列元素:ITAD、端用户、网关、LS和策略,这些因素也是TRIP协议的主要构成,下面分别予以描述。
2.4.1 ITAD

  一个ITAD由LS(至少一个)、网关(零个或多个)和终端用户(零个或多个)组成。网关和LS是在单一授权组织的专门管理之下的。这意味只有一个组织负责制订策略和配置网关和LS。
  一个ITAD不同于一个自治系统(AS),AS描述物理上连接的网络,而ITAD可以由完全不同的网络上的元素组成,甚至在不同的AS管理之下。
  一个IT管理域中的EU是本ITAD中一个有效客户,它们希望完成通向电话网的呼叫,并且需要访问网关。在一次呼叫中,EU可以是一个ITAD的客户,在下一次呼叫中又是另一个ITAD的客户。
  一个ITAD可以没有网关,在这种情况下,它的LS就通过TRIP协议来获取别的域中的网关信息,而且让这些网关信息对自己域中EU可用,在这种情况下,这个IT 管理域就成了一个虚拟的IP电话网关提供者了,因为它提供了网关服务,但是它自己实际又没有网关和管理任何网关。一个IT管理域也可以没有端用户,这时它可以提供"批发"网关的服务,为其他ITAD里的顾客提供网关服务;一个IT管理域可以既没有网关也没有端用户,只有LS,在这种情况下,ITAD充当一个批发商(Reseller),获取其它域的网关信息,而且收集和传播这些信息对其它有用户的ITAD。
2.4.2 局域服务器(LS)
  LS是TRIP的主要功能实体,它是一个可供访问网关服务器的逻辑设备,这个服务器叫做电话路由信息库(TRIB),这个信息库由本地可用的网关集合和建立在策略之上的远程网关合起来构成,LS也输出所在ITAD域的网关集合给其他ITAD中的对等LS,输出的网关集合就是TRIB,当然这种输出也是策略控制下的行为,这样,策略在LS操作中扮演了一个中心控制角色,这个信息流程表示如图2:
TRIP--IP电话路由的技术和应用(图二)
  构建在LS上的TRIB协议允许它决定IP电话呼叫路由,当一个发往电话网地址的信令消息到达信令服务器时,LS的数据库提供的信息可帮助它判断将信令消息转发给哪一个网关或附加信令服务器,基于这个原因,LS可与信号服务器合二为一,如果不在一起,则他们之间需要另外的一些通信方法,尽管TRIP可以为这些通讯寻址,这并不是由TRIP进行的。
  要想完成TRIP的功能,则ITAD中至少得有一个LS,当然如果为了负载平衡、管理方便或者其他的一些需要,ITAD可以有多个LS,这时,为了实现TRIB信息同步和共享其他外部对等LS的信息,在这些LS之间也要进行一些通信,通常这种通信作为域间协议的内部功能之一,TRIP就包含这样的功能。
  图2显示了一个LS通过内部域协议的途径获取了所在ITAD内网关,其实内部域协议并不必一定要存在,因为一个LS在不知道本地网关信息或通过静态配置知道本地网关信息的情况下都可以工作。
2.4.3 网关
  一个网关是一种具备IP连通性,且可与其它很多网络(通常为公用、私用的电话网络)连通的逻辑设备,网关的功能是将一个网络的媒体和信令协议转换为另一种网络传输媒体和信令协议、为本系统中的用户完成一个透明连接服务。
  一个网关有很多描述的属性,这些属性中最基本的就是电话号码段,这个号码段又被拆分为子范围段,而且这些子范围段之间相互联系,另外网关还有如:信令协议支持、电话特性支持、语音解码和加密技术等等,但这些属性并不是TRIP都能用到。
2.4.4 端用户
  端用户通常是一个希望通过网关完成从IP网到电话网终端呼叫的实体(通常是人)。终端用户可以是登录到有Internet电话软件的PC机的用户,也可以是通过入口电话网关连接到IP网上的语音电话用户。
  当终端用户完成一次到电话网呼叫时,他们或许知道,也可能不知道有电话路由服务正在运行,在终端用户知道的情况下,他们可以选择呼叫进行的一些的方式,如:必须支持的特征、质量度量、所有者或者管理者和费用等,但TRIP协议并不指示这些选择如何与提供者结合起来去进行最终的网关选择,TRIP也不支持把这些选择传送给本地的LS,这种传送可以用前端来完成,或者通过一些无协议的方式完成,图3所示了EU通过前端来访问TRIB的过程:
TRIP--IP电话路由的技术和应用(图三)
图3 EU访问TRIB的过程图
2.4.5 TRIP要素之间的关系
● 网关和LS之间

  网关必须以某种方式向同一个ITAD内的LS传递(包括人工配置方式)它的特征信息。LS可以进一步通过TRIP将这些信息传播到ITAD外,则该LS称为该网关的源LS。当LS不存在时,网关信息的对外传播就不属于TRIP的功能范畴,而是由其它的为域内协议(Intra-Domain Protocol)来完成的,如SLP、LADP协议或者通过SIP或H.323的注册过程来实现。
● LS和LS之间

  LS之间的交互是TRIP的核心功能,同一个ITAD中的LS通过TRIP协议来同步它们之间的信息,不同的ITAD之间根据策略用TRIP来交换它们之间网关信息,前者的LS作为内部对等体,后者的为外部对等体。
  LS之间通过它们的可靠连接来相互通讯,一个LS可能和一个或多个LS相连接,这些LS不需要在物理位置上彼此邻近,也不需要都是位于同一个自治系统中,一对LS之间的通讯通常是在被管理下建立起来的。但TRIP本身并不为对等的LS提供彼此自动搜索的功能,一般情况下LS间的关系都是先配置后使用的,虽然在一个LS出现故障(Crash)时,这样的自动搜索功能对其寻找后备的LS很有用,当然是否使用这种自动搜索的功能应由管理员决定。
  LS之间交换的信息是一组路由对象的集合,每一个路由对象最小化地包含一个可到达的电话号码段或一个IP地址,或是应用层上可访问该网关上号码段的用户名称;为了提高伸缩性和信息交互传输的利用率,这些路由对象在被传播之前都可以合并为较大、或更大的集合,这个过程称为聚合,聚合在TRIP中起着很重要的作用,但是TRIP路由对象和对象中信息越多,完成聚合过程就越困难,因此在制订策时应该权衡聚合和信息冗长之间的得与失。
  控制网关信息产生、传播、接受的规则称为LS策略,它也是TRIP的构成要素,但是TRIP并没有对它做严格的规定,协议本身也没有提出要求什么特定策略。
2.5 TRIP的安全和对策

  安全是TRIP重要的一部分,TRIP模式假设对等的LS之间交换信息是相互信任的一种机制,这些被传播的信息决定着呼叫的路由,如果这些信息不正确,可能导致呼叫被指定错误的路由,也可能使得本该被拒绝的业务对系统造成攻击,同时一旦这些错误信息被传送给其它的ITAD,就可能导致这些问题被无限蔓延,因此对等LS相互之间必须支持一定策略的安全认证。
  TRIP消息也包含着敏感的信息,这些消息可能表示着一个ITAD的路由容量等,如果被竞争对手截获,他们可以轻易地分析出ITAD的网络拓扑结构、网络容量,甚至整个域的信息流规律等,因此TRIP中也支持对信息的加密。
  对TRIP的安全问题的解决方法,协议本身没有具体规定如何解决,根据经验,我个人建议方法是:
支持IPsec,在交互的对等实体间的进行身份认证。

RS注册审核措施,对所有授权访问本地TRIP的LS在本地进行预注册登记,凡是通过OPEN请求与本LS建立连接的LS,首先判断是否注册登记。

注册RS的权限认证措施,对在本地已经注册的RS,在其向本地LS发送UPDATE请求时,判断其操作的权限。

借鉴SNMPv2的特性,对TRIB按照不同的LS请求者进行分MIB-View操作。
2.6 TRIP的存在的模式
  TRIP是用于广播、交换、同步IP电话路由的协议,但其并没有规定提供者之间的以什么样的关系结构存在,因此针对IP电话用例的TRIP应用也就有很多种不同的模式,下面介绍其中常见的三种:
TRIP--IP电话路由的技术和应用(图四)
2.6.1 中心交换模式
  一个中心交换点(Clearinghouse)是很多不同的提供者之间充当交换信息角色的提供者,它也是交换点的一部分。每一个成员(提供者)在中心交换点上都有注册。作为协议的一部分,每个成员都使自己的网关信息对本中心交换点中的其它成员可用。在交换中,成员都有权限去访问本中心交换点中属于其它成员的网关信息。当属于一个成员的网关发起一个呼叫时,这个中心交换点在确定由哪个成员结束这个呼叫时发挥着一个很关键的作用,其结构如图4。
  图中有六个成员的群,成员从M1到M6。每个成员运用TRIP向中心交换点发送和从接收网关路由信息,TRIP在这儿被用做成员与中心交换点间交换路由信息的工具。
2.6.2 联合体模式
  我们将视这样一组供应商为一个联合体---他们彼此之间遵循以全交叉方式共享网关的协议,而不用通过中央clearinghouse。这样的配置见图5所示,每对LS之间都运行着TRIP。
2.6.3 网关转发商模式
  在这个应用模式中,有很多大容量的电话网关提供者,这每个提供者都要把自己的网关服务信息转发(Resells)给其它中等容量的提供者,依次这样再转发(Resells)给本地的提供者,这些本地提供者直接把电话网关的信息提供(Sell)给最终设备(用户),图6表示了这种有效的金字塔结构关系。
  在这个例子中,M1的网关信息转发给M2、M3,M2、M3有依次转发给M4、M5、M6,M5提供者转发从M2和M3上来的网关信息。
    3 TRIP的实现
    
     3.1 TRIB的构成
    
       TRIP协议交换的路由信息由外部路由(External routes)、内部路由(Internal routes)和本地路由(Local routes)三种类型组成,为了直观的描述TRIB的构成关系,TRIP协议从路由选择的角度把LS中的TRIB分成以下四个构成部分,这四个部分实际上是由以上三种类型的路由内容构成:
    
     Adj-TRIBs-In:称为临近可选TRIB,其内容是从UPDATE消息中获取的域内、域外LS上的路由信息,这些路由信息是当前路由选择中的可以使用的输入路由信息,
     Ext-TRIB:称为外部TRIB,其内容是LS根据一定的路由选择运算法则,从外部路由(存储在外部LS的Adj-TRIBs-In中)和本地路由(存储在本地LS的Adj-TRIBs-In中),为一个给定目的地址选择的最佳的路由,每个LS只有一个Ext-TRIB。
     Loc-TRIB:称为本地TRIB,其内容是LS运用其内部策略从内部LS的Adj-TRIBs-In和Ext-TRIB中选择出来的TRIP路由信息。
     Adj-TRIBs-Out:称为临近输出TRIB,其内容是LS准备广播给外部LS的路由信息,它的内容将携带在UPDATE消息中对外广播。
     这几部分的关系如下图7:
    
     TRIP--IP电话路由的技术和应用(图五)
    
       虽然TRIB由以上的四个部分构成,但这并不意味也并不要求一个路由选择过程的完成必须要保留这四个每一个的单独备份,其选择并不拘泥于协议的划分,有些路由选择过程可能要用到一个TRIB,有时可能要用到多个,甚至在TRIP-MIB库设计中大家并不一定能意识其的单独存在,这根据具体需要而定。
    
       关于TRIB标准定义的RFC至今还没有出台,只有讨论性的草案,因此TRIB内容的具体表示只能暂时参考这些草案(draft-ietf-iptel-trip-mib-01.txt)。
    
     3.2 路由消息的格式
    
       TRIP的消息必须建立在可靠传输协议的连接上,即只能是TCP/IP连接,且使用的TCP连接端口为6069,一个消息必须而且只能在全部接收结束后才能开始进行处理,TRIP消息的最大长度是4K(4096)个字节,最短长度是只包含消息头部分的3个字节,大于4K个字节和小于3个字节长度的消息都属于无效的TRIP消息。
    
     3.2.1 消息头格式
       TRIP消息有固定的头格式(共3个字节长),它决定了TRIP消息的类型,如图8:
    
     TRIP--IP电话路由的技术和应用(图六)
    
       前两个字节标明了这个TRIP消息的总长度,这个长度也包括消息头的长度,最大值为4096,最小值为3;消息类别标明了本次TRIP消息的类型,取值范围是1~4,表示的意义如下:
     1 - 当前消息是OPEN消息,用于建立LS之间的对等连接关系。
     2 - 当前消息是UPDATE消息,用于传输LS之间的网关路由信息。
     3 - 当前消息是 NOTIFICATION消息,用于通知运行中出现的错误、故障状态。
     4 - 当前消息是KEEPALIVE消息,用于维护对等LS之间的连接关系处于活动状态。
    
       下面分别介绍OPEN、UPDATE、NOTIFICATION、KEEPALIVE四种TRIP消息和其所完成的TRIP、操作功能。
    
     3.2.2 OPEN(打开)消息
    
       对等的LS之间的TCP连接建立起来后,双方发送的第一个消息就是OPEN消息,双方在收到对方的OPEN消息后就返回一个KEEPALIVE消息,以确认OPEN消息发送和对等的LS之间TRIP会话建立成功,然后UPDATE、NOTIFICATION消息才可以进行发送。
    
       OPEN消息的最短长度为17个字节(包括消息头的三个字节),除去固定的消息头外,OPEN消息格式和域内容如图9:
    
     TRIP--IP电话路由的技术和应用(图七)
    
     其中:
     Version:表示当前消息所支持的TRIP版本,现在的版本是V1。
    
     Reserved:保留字。
    
     Hold Time:表示所建立会话的最长寿命,单位为秒,其值要么为0,表示永远存在,要么就取最小值为3秒。
    
     My ITAD:当前发送者所在的ITAD的编号,这是由IANA组织分配的一个唯一值,1~255是协议的私有值,一般取值为从256 到 (2**32)-1中的一个,如SNMP中企业代码一样,不能随便乱取。
    
     TRIP Identifier:发送者在所在ITAD域中的唯一TRIP标识(序号),可以理解为在ITAD中每个LS的编号,其一旦确定就不能再修改,除非整个系统重新启动。
    
     Optional Parameters Len:表示了Optional Parameters (variable)List域的长度,单位为字节,如果为0,则表示本消息无操作参数。
    
     Optional Parameters (variable) List:是OPEN消息要发送数据或变量值的详细列表,包括参数类型、参数长度、参数的值。
    
     在当前的TRIP协议中,OPEN消息主要用来告诉对方LS自己所具备的TRIP操作能力,这种能力包括两个方面:
    
     所支持的路由类型(Parameter Type=1),双方LS只能处理都支持的路由类型,如果收到了不能支持的路由类型,则立即丢弃不做进一步处理。
     发送接收的能力(Parameter Type=2),这都是针对UPDATE消息而言的,包括只发送模式(Send Only mode)、只接收(Receive Only mode)和发送接收模式( Send Receive mode),一个LS任何时候对所有的对等LS只能处于一种模式,默认的是发送接收模式。在只发送模式下,一个LS只向其对等的LS发送UPDATE消息,对等的LS不必返回UPDATE消息,即使收到了返回的UPDATE消息,它也必须无条件丢弃;在只接收模式下,LS只能作为消极的UPDATE消息监听和接收者,不能向发送者返回和发送任何UPDATE消息;在发送接收模式中,一个LS具备接收和发送UPDATE消息的全双工功能。
     3.2.3 UPDATE(更新)消息
    
       UPDATE消息包中的数据勾勒出了多个ITAD之间的关系连接图,它不仅用来广播新增路由信息,也用来删除、修改已经广播出去的一些路由信息,而且这两种操作可以同时进行。
    
       除了TRIP消息固定的消息头外,UPDATE消息体实际上是一个路由属性列表,在属性和属性之间无其它的中间数据,其最短长度为三个字节,它的列表中属性的数量可以为0,其消息的格式如图10:
    
     TRIP--IP电话路由的技术和应用(图八)
    
     Attribute Flags
    
     路由属性标志是在不断被扩展的,其目前的取值与TRIP协议的路由选择、路由分发、路由聚合和路由的封装等操作有着密切的关系,这个域共一个字节(8位),目前只用到了前5位,每位有不同的功能:
     Bit 0, Well-Known Flag,是路由属性是否可知标志。
     Bit 1, Transitive Flag,是路由属性不可知时是否传送标志。
     Bit 2, Dependent Flag,是路由属性不可知时传送依赖标志。
     Bit 3, Partial Flag,是Transitive Flag标志信息是否代表局部标志。
     Bit 4, Link-state Encapsulated Flag,连接状态是否封装标志。
    
     Attribute Type Code
    
     发送的路由属性类型码也是由IANA控制的,属性类型码的值决定了当前消息中所发送的路由信息的操作类型,属性码、属性表示和其意义如下:
     1:WithdrawnRoutes,给出要从当前服务中取消的路由。
     2:ReachableRoutes,给出向当前服务中增加新的可用路由。
     3:NextHopServer,给出消息发送所要经过的实体标识。
     4:AdvertisementPath,给出了路由消息在不同的ITAD域间广播的先后顺序。
     5:RoutedPath,给出了路由消息在不同的ITAD域间广播的路径。
     6:AtomicAggregate,给出了实际存在但没包括在RoutedPath中的广播路由。
     7:LocalPreference,向其它的LS告诉本地LS对给定路由的首选项。
     8:MultiExitDisc,相邻的域间的LS有多个对等LS的情况下,LS用这个属性来表示其在域间的首选连接。
     9:Communities,在把目的地址分组成团体名来简化路由信息控制中用到的团体名称。
     10:ITAD Topology,向域内的其它LS给出本域的Topology结构。
     12:ConvertedRoute,指出中间的LS通过改变路由应用协议的方式所改变的路由信息。
     以上每一种的路由属性在UPDATE消息中都有单独的消息格式和数据结构特点,在此不再一一称述。
    
     Attribute Length和Attribute Value (variable)
    
     为以上标志和属性下路由数据的值长度和值。
     UPDATE消息的处理、控制是一个很复杂的综合过程,是TRIP的四种消息中的核心,也是路由信息广播、同步操作的核心,这些过程主要包括路由信息的域内通知过程、路由选择过程、域间路由信息广播过程和各种策略的选择、确定和运用过程等。
    
     3.2.4 NOTIFICATION(通知)消息
    
       当LS检测到有某种故障、错误时,NOTIFICATION消息就产生和发送了,同时出现故障、错误的LS之间的TRIP会话就立即关闭。
    
       除去TRIP固定的消息头外,NOTIFICATION消息的格式如图11,其最小的长度为5个字节。
    
     TRIP--IP电话路由的技术和应用(图九)
       
     在此消息格式中Error Code和Error Subcode的取值范围为:
    
     Error Code 错误类别和错误内容
    
     1 Message Header Error(TRIP消息头错误) ,对应的具体故障为:
     Error Subcode=1 :Bad Message Length(错误的消息长度)
     Error Subcode=2 :Bad Message Type(错误的消息类型)
    
     2 OPEN Message Error(OPEN 消息错误),对应的具体故障为:
     Error Subcode=1 :Unsupported Version Number.(错误的版本号)
     Error Subcode=2 :Bad Peer ITAD(错误的ITAD编号)
     Error Subcode=3 :Bad TRIP Identifier(错误TRIP标识)
     Error Subcode=4 :Unsupported Optional Parameterr(错误TRIP标识)
     Error Subcode=5 :Unaclearcase/" target="_blank" >cceptable Hold Time(消息有效时间不合适)
     Error Subcode=6 :Unsupported Capability(无法支持的能力属性)
     Error Subcode=7 :Capability Mismatch(能力属性不匹配)
    
     3 UPDATE Message Error(UPDATE消息错误),对应的具体故障为:
     Error Subcode=1 :Malformed Attribute List(奇形属性列表)
     Error Subcode=2 :Unrecognized Well-known Attribute(不可识别的Well-known属性值)
     Error Subcode=3 :Missing Well-known Mandatory Attribute(无Well-known强制属性)
     Error Subcode=4 :Attribute Flags Error(属性标志错误)
     Error Subcode=5 :Attribute Length Error(属性长度错误)
     Error Subcode=6 :Invalid Attribute(无效的属性值)
    
     4 Hold Timer Expired(消息有效时间到)
    
     5 Finite State Machine Error(有限状态机错误)
    
     6 Cease (遇到致命性错误,TRIP交互立即停止)
    
     通知消息中数据值的长度的计算公式是:数据值长度 = 消息的总长度 - 5
    
     3.2.5 KEEPALIVE(活)消息
    
       KEEPALIVE消息是OPEN消息成功后的一个响应消息,它主要是为了告诉双方LS它们之间已经建立的成功会话还处于活动状态,以便进行UPDATE消息的交互,KEEPALIVE消息发送的时间间隔是自定义的,一般比较合理的最大间隔是OPEN消息中设定寿命值(Hold Time)的三分之一,如果寿命值为0,则不发送KEEPALIVE消息。
     KEEPALIVE消息格式就是TRIP消息的格式,如图8,其无单独的消息格式和内容,只须标明消息类型值为4。
    4 TRIP协议在目前通讯产品中的应用
    
       TRIP协议是一种分布式的对建立在不同国家、不同地域、不同运应商、不同网络上的路由信息进行相互广播、自动同步、友好共享(基于策略)的操作机制;在IP电话网关定位问题的解决中,它比目前存在的其它任何路由管理、路由控制和域间管理协议都有优势---它在继承目前相关协议功能的基础上,又在具体操作、安全方面汲取它们的优点,并对这些协议的已有特性进行了更有效地扩充和发展;其独立于运营商关系的思想包容了所有运营商的不同商业策略,只要路由信息符合其定义的格式和遵循IANA的有关约定,它都能予以交换和传递,这使得全球不同开发商所开发系统的无缝互连和路由资源相互共享成为了可能。因此TRIP协议一经产生,其先进性就吸引了所有电讯技术开发商的目光,并为其推广使用注进了动力!
    
     4.1 SS8公司在Signaling Switch中应用TRIP协议的分析
       SS8公司是美国硅谷的著名电信软件供应商,其目前的最新通讯产品信令交换机(Signaling Switch)中采用TRIP协议,实现了端到端的信令路由选择和交换,如图12:
     (http://www.ss8.com/solutions/SignalingSwitch/applications.cfm )
    
     TRIP--IP电话路由的技术和应用(图十)
    
       在SS8的以上结构中,所有的SS8 Signaling Switch(包括SIP proxy server、Redirect server、Location server和Registration server)都充当TRIP中的LS,LS之间拓扑结构是TRIP中心交换模式和转发模式的结合,这些LS通过自动广播IP电话路由信息,来简化全球IP电话信令网络的生成和管理,而且扩展后的网络路由结构还可以支持PSTN的电话号码。
    
       Signaling Switch通过网络向其它信令点动态地、自动地广播路由信息,当某处发生故障时,智能路由引擎会自动将所有受影响的路由从表中删除,使用备份路由,并将变化向全网广播,当故障修复后,受影响的路由将自动恢复,同时将变化向全网广播。
    
     4.2 ZTE公司的Softswitch中应用TRIP协议的分析
    
       软交换(Softswitch)体系结构是目前颇受推崇的面向网络融合的新一代多媒体业务整体解决方案,它在继承的基础上对目前各个业务网络(如PSTN/ISDN、PLMN、IN和Internet等)之间进行互通互融的思想是一个突破。ZTE(深圳中兴通讯)公司是国内的一家著名通讯设备供应商,在国内其率先开发出了自己的软交换产品,而且其目前最新版本的软交换产品就支持标准TRIP协议,---路由服务器(Route Server--RS)之间采用标准的TRIP协议来广播、同步IP电话的Softswitch路由信息,这个RS实际上就是TRIP的LS。
    
       ZTE的RS总体上采用一种分层的结构,它结合了TRIP存在模式中的转发和联合模式的特点,如图13(http://www.zte.com.cn/Magazine_upload/ ):
    
     TRIP--IP电话路由的技术和应用(图十)
    
       在上图中所有的Softswitch构成一个扁平的网络结构,但是为Softswitch提供路由范围的RS是金字塔式的分层结构的,所有的RS(片区RS群、主干RS群和国家级RS群)相互之间采用标准TRIP,片区的RS直接为地市级别的Softswitch提供路由服务,同一省内的片区RS群彼此之间、省际间的主干RS群之间、国家级的RS群之间通过TRIP来广播、同步平级间的路由信息,以实现路由信息添、删、改后最新路由信息的周知;
    
       国家级的RS把聚合后的路由信息广播、同步给国内省级的主干RS群,省级主干RS群把本地的路由信息和国家级路由信息进一步聚合后再一起向所辖片区的RS群进行广播、同步。一个用户要进行一次国际长途呼叫,首先发起地的SoftSwitch向本地的片区RS请求路由信息,这样本地的RS根据上级层层广播的聚合路由信息就可以一次定位到应答方所在的国家级RS。
    
       ZTE的RS之间TRIP的应用中,一个域中可以有多个RS(LS),有的RS专门向SoftSwitch提供路由服务,有的专门进行路由信息的对外广播和接受、管理外部广播、同步来的路由信息,这样ZTE的RS就不仅可以为ZTE自己的产品提供路由服务,也能对其它电讯供应商的通讯产品提供路由服务,只要这些通讯产品也支持标准的TRIP协议。
    
       以上两个厂家的产品都采用了TRIP协议,但是从使用中可以看出二者是有区别的:SS8 Signaling Switch中的LS存储的是网关路由信息,LS提供的是网关路由的一次定位服务,ZTE Softswitch中的LS(RS)存储的是Softswitch路由信息,实现的是Softswitch路由的一次定位服务,这对TRIP来说都是允许的,虽然二者的产品架构不同,但其路由信息的聚合、广播、同步等操作过程和数据格式都符合TRIP协议的要求。
    
    
     参考文献
     [1] J. Rosenberg, and H. Schulzrinne, "A Framework for Telephony Routing over IP", RFC 2871, June 2000。
    
     [2] J. Rosenberg, H. Salama, M. Squire ,"Telephony Routing over IP",RFC3219 ,February 2002。
    
     [3] Y. Rekhter,T. Li, "A Border Gateway Protocol 4 (BGP-4)", RFC1771, March 1995。
    
     [4] Moy, J., "Open Shortest Path First Version 2", STD 54, RFC2328, April 1998。
    
     [5] Simpson. W, "The Point-to-Point Protocol (PPP) " STD 51, RFC 1661, July 1994。
    
     [6] 冯德娟 ,《基于Softswitch的下一代网络组网路由解决方案》 【中兴通讯技术】105期 ,2001年11月
    
     [7] K. McCloghrie,D. Perkins,J. Schoenwaelder," Structure of Management Information Version 2",RFC2578 ,April 1999。
    
     [8] J. Case, K. McCloghrie, M. Rose,and S. Waldbusser, "Protocol Operations for Version 2 of the Simple Network Management Protocol (SNMPv2)",RFC 1905, January 1996.
    
     [9] Information processing systems-Open Systems Interconnection - Specification of Abstract Syntax Notation One (ASN.1),International Organization for Standardization. International Standard 8824, (December, 1987)。
    
     [10] SS8 Networks Corporate的产品介绍资料,http://www.ss8.com/solutions/SignalingSwitch ,2002
    
     [11] "NGN协议介绍" 《华为技术报》(136期)

原文转自:http://www.ltesting.net