首页>>厂商>>交换机/ACD系统平台厂商>>中兴通讯

TRIP--IP电话路由的新技术和应用(中)

包斌 2002/08/09

3 TRIP的实现

3.1 TRIB的构成

  TRIP协议交换的路由信息由外部路由(External routes)、内部路由(Internal routes)和本地路由(Local routes)三种类型组成,为了直观的描述TRIB的构成关系,TRIP协议从路由选择的角度把LS中的TRIB分成以下四个构成部分,这四个部分实际上是由以上三种类型的路由内容构成:
这几部分的关系如下图7:


  虽然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消息的总长度,这个长度也包括消息头的长度,最大值为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:



其中:
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操作能力,这种能力包括两个方面:
3.2.3 UPDATE(更新)消息

  UPDATE消息包中的数据勾勒出了多个ITAD之间的关系连接图,它不仅用来广播新增路由信息,也用来删除、修改已经广播出去的一些路由信息,而且这两种操作可以同时进行。

  除了TRIP消息固定的消息头外,UPDATE消息体实际上是一个路由属性列表,在属性和属性之间无其它的中间数据,其最短长度为三个字节,它的列表中属性的数量可以为0,其消息的格式如图10:


 

3.2.4 NOTIFICATION(通知)消息

  当LS检测到有某种故障、错误时,NOTIFICATION消息就产生和发送了,同时出现故障、错误的LS之间的TRIP会话就立即关闭。

  除去TRIP固定的消息头外,NOTIFICATION消息的格式如图11,其最小的长度为5个字节。


  

在此消息格式中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 :Unacceptable 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。

TRIP--IP电话路由的新技术和应用(上)

TRIP--IP电话路由的新技术和应用(下)

作者供稿 CTI论坛编辑



相关链接:
中兴通讯钟宏:Wi-Fi之路 越来越宽 2009-09-24
中兴副总裁钟宏:打造中国企业网首选品牌 2009-09-21
中兴通讯发布全新一代 “至美”ZIMS2.0方案 2009-09-21
中兴通讯携尖端技术产品闪耀2009北京通信展 2009-09-18
中兴通讯北京展重点展示前沿技术和交付能力 2009-09-16

分类信息:     文摘