10.5.1 标记交换的工作原理
标记交换机有两种构件:传递元件和控制元件。传递元件根据分组中携带的标记信息和交换机中保存的标记传递信息完成分组的传递。控制元件则负责在交换机之间维护标记传递信息。
在标记交换机中,标记传递信息库用于存放标记传递的相关信息,每个入口标记对应一个信息项(Entry),每个项内包括出口标记、出口接口号、出口链路层信息等子项。
1)传递元件
当标记交换机收到一个携带标记的分组时,传递元件的工作流程如下:
(1)从分组中抽出标记;
(2)将该标记作为标记信息库(TFIB)的查询索引,检索该分组所对应的项;
(3)用该信息项中的出口标记和链路层信息(如MAC地址)替换分组中原来的标记和链路层信息;
(4)将装配后的分组从信息项所指定的出口接口送出。
图10.25给出了一个应用实例。一个目的地址为128.89.26.4的无标记分组到达路由器A(RTA)。RTA查询它的TFIB,找到目的地址与网络前缀128.89.0.0/16(注:这里的16代表在TFIB中的网络掩码,意为网络掩码的高16比特为全1,其余为0)相匹配的项,取得到下一跳路由器B(RTB)的出口标记值4和出口接口号1,然后将出口标记4装配在分组上,再将该分组送至出口1进行发送输出。RTB收到标记4的分组,用4作为索引查询它的TFIB,找到它的下一跳出口和出口标记值。在RTB中的检索TFIB方法与在RTA中的有所不同,它用标记作为索引,这种检索方法类似于在ATM交换机中用来检索VPI/VCI的方法,这种方法非常便于采用硬件来实现。RTC在收到了RTB转发的该分组后,将分组中的标记剥除,恢复成无标记的IP分组并传递给用户。
图10.25 IP分组的标记交换流程
2)控制元件
控制元件完成标记分配和维护规程,也就是负责TFIB的标记信息生成和维护。标记的分配和维护主要用标记分配协议(TDP)来实现。
在介绍TDP协议之前,需要先介绍一下基于目的地的路由。
路由器采用的便是基于目的地的路由,也就是说,该路由器的每个可达网段在它的路由表中都对应一个信息项。这个信息项中包括这个可达网段的地址、下一跳路由器的物理地址(MAC地址)和转发的输出端口号等信息子项。路由器在收到一个分组后,用其目的地址匹配路由表中的信息项,若找不到匹配的项则将分组丢弃或使用默认路由,若找到则按其信息项中所指示的端口进行转发分组。路由器根据从路由协议(如OSPF、BGP等)中获取的路由信息以及相应的路由算法形成路由表。在网络状况发生改变后,路由器通过路由协议完成路由表的动态更新。
TFIB是根据路由表形成的,除了增加出口标记子项外,每个信息项在TFIB中所处的位置还进行了有序化处理,即用入口标记为索引进行一定的计算便可得到该信息项在TFIB中的位置,这样便可以用硬件方式完成对TFIB的检索和数据的转发。正是由于TFIB是根据路由表形成的,所以TFIB也是基于目的地的路由信息表。
3)TDP协议
TDP用来分配和维护TFIB中的标记子项。TDP使用专用的、可靠的链路传输,在ATM标记交换路由器(ATM-TSR)上使用VPI/VCI为0/32的默认虚通路。TDP规定了3种标记分配方式:下游结点标记分配、下游结点按需分配标记和上游结点标记分配。
所谓上游和下游是指站在某个路由器的角度(如图10.26中的RTA),指向某个目的地址的路由方向称为下游,反之称为上游。如图10.26中RTA对于目的端128.89.0.0/16而言,RTA→RTB→RTC为其路由的下游方向,而RTB则将RTA视为其上游结点,将RTC视为其下游结点。
下游结点标记分配由下游结点根据本结点的使用状况分配标记,然后通过TDP将所分配的标记通知上游结点。上游结点将该标记填入它的TFIB的对应项中。
图10.26给出了一个下游结点标记分配的实例。对于目的地址128.89.0.0/16而言,RTB为RTA的下游结点,RTB为该地址分配标记4,并将此信息通知RTA,RTA将该信息填入它的TFIB中对应项的出口标记子项中。同样,RTC为该地址分配标记9并通知RTB,RTB也进行同RTA一样的登记操作。标记分配的过程可以逐段完成,图10.26中虽然标记了分配过程的顺序(①RTC分配标记;②RTC将分配的标记通知RTB;③……),但其流程并非严格限制都需如此执行。在标记分配逐段完成之后,RTB的TFIB中输出标记和输入标记都已填入,这时RTB便可以实现标记交换,而无需再进行目的地址匹配和路由选择。
图10.26 上游和下游结点分配标记示例
上游结点标记分配的分配方向与下游结点标记分配相反,RTA为RTA→RTB段分配标记后通知RTB,RTB为RTB→RTC段分配标记后通知RTC。
下游结点按需分配标记则是由RTA先向RTB提出分配标记请求,然后再由RTB为RTA→RTB段分配标记,并通知分配结果。
三种分配方式相辅相成。结点的TFIB有两种管理方式:一种称为单接口TFIB,另一种称为单结点TFIB。单接口TFIB是一个接口配置一个TFIB,所有接口的TFIB互不相关,所以作为索引的入口标记只在本接口或本段有效,与结点的其他接口无关。这时入口标记的选择可以只考虑该接口的使用情况,使用上游结点分配或下游结点分配都可。而单结点标记TFIB则不然,一个结点只设一个TFIB表,可以将其下载到各接口,但其内容相同。因此入口标记在全结点有效而且不能重复。这时只能使用下游结点标记分配,因为上游结点对下游结点的入口标记的使用情况不了解,无法进行分配;而段标记作为上游结点的出口标记与其他接口无关,所以下游结点可以完成标记分配。下游结点按需分配标记和前两种不同,前两种应用于拓扑驱动时分配标记,它在一个结点中为每个目的地只分配一个或几个(按业务等级分)标记。但不同的源、不同的应用可能有不同的业务质量要求,当需要为某些特定业务提供特殊服务时,可以用下游结点按需分配标记为其提供专用标记。另外,ATM环境下的标记交换也使用下游结点按需分配标记,否则将会出现如图10.27所示的信元交织问题。
图10.27 信元交织问题
图10.27的RTA和RTD同样经由RTB和RTC访问128.89.0.0/16,若以上游或下游方式分配标记,则RTB→RTC段将只为128.89.0.0/16分配了一个标记40。对RTB而言,对应于该地址的入口标记有50和70两个,而出口标记只有一个,两个业务流就会交织在一起。如果RTB为ATM-TSR,则会出现信元交织的情况,RTC将无法区分两种业务流。所以,ATM环境下的标记交换必须采用下游结点按需分配标记协议,否则,标记交换机必须具有VC合并功能。
图10.28给出了下游结点按需分配标记的实例。当RTB为ATM-TSR时,首先RTB采用上游或下游标记分配的方法为RTA来的业务流分配了标记40。在RTD来的业务流出现后,为了避免出现信元交织的情况,RTB利用下游结点按需分配协议,为RTD来的业务流向RTC请求一个新的标记60,不同的源采用不同的标记就可以避免信元交织问题。
4)ATM环境下的VC合并
在ATM环境下,为了节省VC的使用数量,Cisco推出了一种新的功能称作VC合并(VC Merge)。VC合并允许不同来源的流汇往同一目的端时使用同一个标记,如图10.27所示。换句话说,就是实现了多点到点的连接。但VC合并同样会面临图10.27所指出的问题,即信元交织问题。VC Merge解决此问题当然不能使用图10.28的方法,因为它背离了使用合并的初衷。它的解决办法是使用输入缓存的技术,将输入的信元缓存成为帧,再对其进行交换。这样就将信元交织转换为帧交织,末端结点的AAL5就可以正确地将两个流的信元分别组合成帧了。很显然,VC合并节省了VC数量,却牺牲了转发效率,并加大了转发时延。不过节省的是合并后每一级结点的VC,而牺牲的却只有一级结点的转发效率,时延也只相当于增加了一跳,但对于时延敏感型业务而言,这是不可容忍的,所以标记交换只为尽最大努力传送业务提供VC合并功能。
图10.28 使用按需分配标记协议分配多个出口标记
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。