标记交换技术
发布时间:2006-10-14 7:34:49   收集提供:gaoqian
  摘要

  本文概括介绍了一种称为标记交换的技术,该技术是一种用于网络层信息包转发的新方法。本文主要描述这种标记交换体系结构的两个主要部件:转发与控制。转发通过应用简单的标签交换技术来完成实施,而现有的网络层路由协议则与联编和分配标记的机制一同进行用于控制。标记交换能够保持IP的扩展属性,并有助于提高IP网的伸缩能力。标记交换并不依赖于ATM,它能直接应用于ATM交换机。本文同时还介绍了一系列标记交换的应用与部署场合。

  引言

  Internet的持续发展日益要求Internet服务提供商(ISPs)提供更高带宽。不过,Internet的发展并不是更高带宽的唯一驱动因素─对更高带宽的需求,还来源于日渐蓬勃发展的多媒体应用。

  而更高带宽的需求又要求:路由器对多播与单播流量都具有更高的转发性能(每秒信息包数)。

  Internet的发展也要求Internet路由系统改善其扩展性能。由单个路由器维护大量路由信息的能力与建立一个路由知识层的能力对支持一个高质量、可扩展的路由系统是必不可少的。

  我们已经意识到有必要改善转发性能,同时,增加路由功能支持多点广播,从而能够更灵活地控制流量路由,并提供建立一个路由知识层的能力。不仅如此,拥有一个能支持适度发展以适应新的需要的路由系统,正变得越来越重要。

  标记交换是针对这些挑战而提供的一种有效解决方案。标记交换可以将网络层路由的灵活性及丰富功能与标签交换转发模式的简易性紧密融合在一起。标记交换转发模式(标签交换)的简易性改进了转发性能,同时保持了极具竞争力的性能价格比。通过将大范围的转发粒度与标记联系起来,同一转发模式可以用于支持各种各样的路由功能,比如:基于目的地的路由,多点广播,路由知识层与灵活的路由控制。最后,在保持同样转发模式的情况下把简单的转发,大范围的转发粒度与发展路由功能的能力结合起来,便产生了可以确保适度发展以适应新涌现需求的路由系统。

  标记交换部件

  标记交换包括两个部件:转发与控制。转发部件运用信息包所携带的标记信息(tags)和标记交换机所维护的标记转发信息来完成信息包的转发。控制部件负责在一组互连的标记交换机中维护正确的标记转发信息。

  转发部件

  标记交换所用的基本转发模式是以标签交换的构想为基础的。当一个带有标记的信息包被标记交换机收到时,该交换机用这个标记作为其Tag Information Base(TIB)中的一个索引。TIB的每一个项都包括一个进站标记,一个或多个表单子项(出站标记、出站接口、出站链路级信息)。如果交换机发现一个项的进站标记与该信息包所携带的标记相同,那么交换机就会对该项的每个子项(出站标记,出站接口、出站链路级信息)进行处理,即用出站标记替换信息包中的标记,用出站链路级信息替换信息包中的链路级信息(如:MAC地址)。并通过出站接口,将此信息包转发出去。

  从以上对转发部件的介绍中,我们可以发现如下几点:第一,转发决策是以精确匹配算法为基础的,该算法用一个固定长度、相当短的标记作为索引。相对于传统的用于网络层的最长匹配转发而言,它使用了一个简化的转发过程。

  反过来,这确保了更高的转发性能(每秒更多的信息包数)。这个转发过程,简单到足以允许直接的硬件实施。第二点发现是:转发决策与标记的转发粒度无关。例如,同一转发算法适用于多路广播与单路广播─一个单路广播项只会有一个单一的(出站标记、出站接口,出站链路级信息)子项,而一个多路广播会有一个或许多个(出站标记,出站接口,出站链路级信息)子项。(对于多访问链路,在这种状况下,出站链路级信息将包括一个多路广播MAC地址)。这就说明了同一转发模式是如何运用标记交换来支持不同的路由功能的(如多路广播、单路广播、等等)。

  这一简单的转发过程必须与标记交换的控制部件不相耦合。新的路由(控制)功能可以被方便地部署,而无需干扰转发模式。这就意味着:当增添新的路由功能时,没必要重新优化转发性能(通过修改硬件或软件)。

  标记封装

  标记信息可以以多种途径的方式封装在信息包中:

  以一个小"楔子"标记头,填加在层与Network Layer头之间;

  如果层头提供了足够的语义(例如,下面讨论的ATM),可作为层头的部分;

  作为Network Layer头的部分(如:以适当修改的语义,来使用Ipv6中的Flow Label域)。因此通过虚拟的任何介质类型(包括点到点链路,多访问链及ATM)实施标记交换是可能的。

  还应注意到:标记转发部件与网络层无关。使用特定于某个Network Layer协议的控制部件,实现以不同的Network Layer协议应用标记交换。

  控制部件

  标记交换所必需的是标记与网络层路由之间的联编概念。为了提供良好的伸缩性能,同时适应多种路由功能,标记交换可支持很大范围的转发粒度。在一个极端上,一个标记可能被关联(联编)到一组路由上(更具体地说,是与这个组内路由的Network Layer Reachability有联系在另一个极端上,一个标记可能被联系到一个单独的应用流上(例如,一个RSVP流)。一个标记也可能被联系到一个多路广播树上。

  控制部件负责产生标记联编信息,然后在标记交换机中将这个标记联编信息进行分配。

  控制部件是一系列模块的集合,每个模块均可支持一项特定的路由功能。为了支持新的路由功能,可随时增添新的模块。下面,对这些模块进行简要介绍。

  基于目的地的路由

  在本节中,我们将介绍标记交换如何支持基于目的地的路由。回忆一下,用基于目的地的路由,一个路由器是根据信息包中携带的目的地址和转发信息库(FIB)中存贮的信息(由路由器维护)来作转发决策的。路由器是用其从路由协议(例如,OSPF,BGP)中接到的信息来构造其FIB的。

  为了以标记交换支持基于目的地的路由,一个标记交换机可以象一个路由器一样参与路由协议(例如,OSPF,BGP),并用从这些协议中接到的信息来构造其FIB。

  进行标记分配及标记信息库(TIB)管理的三种许可方法为:(a)下行标记分配,(b)下行按需标记分配及(c)上行标记分配。

  在所有情况下,交换机分配标记并将它们联编到其FIB的地址前缀码上。在下行分配中,信息包中携带的标记是由链路的下行端的交换机(就数据流的方向而言)产生并取编到前缀码上的。在上行分配中,标记是在链路的上行端,被分配和联编的。"按需"分配意味着只有在上行交换机要求去做时,标记方才由下行交换机分配和分布。方法(b)与(c)在ATM网络中最有用(参见第5节)。请注意,在下行分配中,交换机负责:生成应用于进站数据信息包的标记联编,并从其毗邻的交换机接收出站信息包的标记联编。在上行分配中,交换机负责:为出站标记生成标记联编,如:应用于离开此交换机的数据信息包的标记,并从其毗邻交换机接收进站信息包的联编。

  下行标记分配方案操作如下:交换机为其FIB中的每一个路由分配一个标记。用设置给这个分配标记的进站标记,在其标记信息库(TIB)中生成一项,然后把这个(进站)标记与这个路由之间的联编通知给其它的领接标记交换机。这个通知,或者通过将此联编置于现有的路由协议上或者通过使用一个独立的标记分配协议(TDP)来实现。当一个标记交换机接收到一个路由的标记联编信息,并且那个信息是由那个路由的下一次跳转所生成,则这个交换机就把这个标记(作为联编信息的一部分携带)放入与此路由关联的那个TIB项的出站标记中。这就产生了出站标记与路由之间的联编。

  下行按需标记配置方案操作如下:交换机为其FIB中每个路由指定下一次跳转。然后向下一次跳转发布一个请求(通过TDP):索要那个路由的标记联编。当下一个跳转接收到这个请求时,它就分配一个标记,以设置给这个被分配标记的进站标记,在其TIB中产生一项,然后再把这个(进站)标记与这个路由之间的联编返回至发出此原始请求的那个交换机。当那个交换机接收到这个联编信息后,它就会在其TIB中生成一项,并将此项中的出站标记设置成从下一个跳转接收到的值。

  上行标记分配方案如下使用:如果一个标记交换机有一个或多个点到点接口,则它为其FIB中那些下一个跳转通过这些接口之一可及的每一个路由,分配一个标记,用设置给此被分配标记的出站标记,在其TIB生成一项,然后把这个(出站)标记与这个路由之间的联编通知给下一个跳转(通过TDP)。当一个正是下一个跳转的标记交换机接收到这个标记联编信息时,这个交换机将把这个标记(作为联编信息的一部分被携带)放在与这个路由相关联的那个TIB项的进站标记之中。

  当一个标记交换机,任一个出站标记与一个路由间生成了一个联编,这个交换机除了填充其TIB之外,还要用这个联编信息来修改其FIB。这就可以确保让这个交换机为原先未标记的信息包增加标记。为了理解带有基于目的地路由功能的标记交换机的伸缩性能,应注意到一个标记交换机不得不维护的标记的总数,不能超过这个交换机FIB中路由的数目。然而,某些情况下,一个单一标记可能与一组路由相联,而非与一个单一路由。这样,所需要的状态,就要比标记被分配给单一流的情况要少得多。

  一般来说,一个标记交换机将试图以它可达的所有路由的进站和出站标记来填充其TIB,从而实现所有的信息都能由简单的标签交换转发。因此,标记分配是由拓扑结构(路由)驱动的,并非流量--这是由于引起标记分配的FIB项的存在,而并非由于数据信息包的到达。

  使用与路由相关联的标记而非流也意味着:没有必要为所有的流执行的分类过程,以决定是否合为一个流指派一个标记。反过来,这也简化了整体方案,并使其在流量方式出现改变时,更加强健与稳定。请注意,当标记交换被用于支持基于目的地的路由功能时,标记交换并不完全消除执行正常的网络层转发的需求。首先,向一个先前未标记的信息包增加一个标记,需要正常的网络层转发。这个功能可能由第一个跳转路由器执行,或者由能够参与标记交换路径上的第一个路由器执行。另外,一个标记交换机无论何时把一个路由聚合(通过使用层次路由技术)到一个单一标记中,并且这些路由不共享一个公共的下次跳转,则这个交换机需要为携带此标记的信息包执行网络层转发。然而,有人可能会发现:路由被聚合的地点数目比必须做转发决策的地点数目要少。此外,十分常见的聚合是只应用于标记交换机所维护路由的一个子集。作为结果,通常大多数情况下,信息包转发要交换算法。

  路由知识层

  IP路由体系结构把网络建模为:一个路由功能域的集合。在一个域内,路由是通过内部路由功能(例如:CSPF)来提供的,而跨域的路由是通过外部路由功能(例如BGP)来提供的。然而,承载传输流量的域(如Internet Service Provider形成的域)内所有路由器,必须要维护不仅由内部路由提供的,还有外部路由提供的信息。这就产生了一定的问题。

  首先,这种信息的数量并非无关紧要。因此,它使路由器增添了额外的资源需求。此外,路由信息容量的增加很常见地增加了路由的收敛时间。反过来,这又降低了系统的整体性能。

  标记交换允许内部与外部选路功能不相耦合,这样,只要求处于一个域边界上的标记交换机维护外部路由提供的路由信息,而其它域内的交换机只需维护该域的内部路由所提供的路由信息(它通常要比外部路由信息小得多)。反过来,这又减小了非边界交换机上的选路由负载,并缩短了选路收剑时间。

  为了支持这项功能,标记交换允许一个信息包携带并非一个,而是一个组织为栈的标记集合。一个标记交换机,即可以交换栈顶的标记,也可以退栈,还可以交换标记并且把一个或多个标记压入栈。学一个信息在不同域的两个(边界)标记交换机之间被转发时,此信息包的标记栈只包含一个标机之间被转发时,此信息包的标记栈只包含一个标记。

  然而,当一个信息包在一个域内被转发时,此信息包中的标记栈将包含不是一个而是两个标记(第二个标记是被此域的入口边界标记交换机压入的)。栈顶的标记提供到一个适当的出口边界标记交换机的信息包转发,同时栈中的第二个标记提供在此出口交换机处正确的信息包转发。此栈由出口交换机或由倒数第二个(相对于出口交换机而言)交换机来退栈。

  用于此情况的控制部件与基于目的地路由所用到的部件极为类似。实际上,仅有的实值差别就是:在此情况中,标记联编信息将分布于:在物理领接的标记交换中及在一个单一域内的边界标记交换中。有人可能还发现后者(在边界交换机中分布)可能被BGP的非常小的扩充(通过一个独立的标记联编BGP属性)来轻易包容。

摘自《天极网》
 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50