专利名称:利用IPv6能力的业务工程和快速保护的制作方法
技术领域:
本发明涉;5L^于分组的网络,具体地,基于ip分组的网络中的业务工程。
背景技术:
随着近年来网络需求的增加,基于分組的网络的服务质量(QoS)要 求已成为一个重要问题。所涉及的一个具体的QoS要求是业务工程,或源 -目的地路由选择。与业务工程相关的进一步要求是在原始源-目的地路由 中选择的链路出现故障或以其他方式变得不可用时通过备选路由选择快速 恢复。
在基于链路状态路由选择的IP网络(例如,OSPF)中,网络上的节 点维护网络拓朴表,或整个网络中节点到节点链路连同相应特性的列表。 利用此表,源节点可以构建源-目的地路由并开始传送数据流。
用于IP网络中的业务工程的当前标准是多协议标签交换(MPLS)。 在MPLS中,根据要在标签交换路径(LSP )上承载的流的QoS要求,可 以沿网络中的任意期望路由创建该路径。本质上,LSP^t拟连接,或是 使用路由选择协议提供的信息通过网络选择的路径。虽然可以使用标准的 路由选择协议来分发构建LSP所需的拓朴信息,但是分组自身根据固定长 度的LSP标签进行交换。这提供了基于由LSP标签索引的基准路由选择 表的高效分组转发。基本上,通过使用分组的LSP标签来标识相应的下一 跳(即,路由上的下一节点),路由中的每个路由选择节点都可以快速地 确定在其上转发分组的下一链路。
虽然对于转发分组是高效的,但是此方法在从路由故障快速恢复时具 有局限性。MPLS通过在节点路径上预先建立备选LSP来提供在IP网络中快速保护的手段。在主路径出现故障时将业务切换到此备选LSP。此方 法的主要缺点是必须为快速保护预先建立备选LSP,因为与将业务切换到 预先建立的LSP相比,在出现故障后发信号通知建立新的LSP需要较长 的时间。此方案的额外缺点在于,根据当前网络情况,选择替代故障LSP 的这些备选路径可能不是最高效的。
用于沿指定路由来路由分组的另一方法是源路由选择。通过利用IPv4 (互联网协议版本4)中的特性,例如标头中的选项字段,源可以标记其 选择的整个路由以便分组遵循该路由。在源路由选择中,每个分组都必须 在标头中具有整个路由。这带来了额外的成本,因为路径上的每个路由选 择节点都必须检查每个标头的路径并且确定下一跳。此外,因为每个分组 都包含整个源-目的地路由,所以增加了每个分组的大小。
最近,批准了 IPv6 (互联网协议版本6 )作为减轻IP地址耗尽问题的 手段。具体地说,通过IPv4分配的IP地址的数量正在耗尽。除了提供更 多的地址空间以外,IPv6还提供了额外的能力来改进QoS。这些能力之一 是使用扩展标头,或由节点动态地使用标头以在分组中包括额外的信息。
发明内容
本发明提供了一种利用IPv6所支持的能力进行业务工程和快速保护 单个数据流的方法。在此方法中,源节点可以选择基于数据流的QoS要求 (即,所需带宽和延迟约束)的特定网络路由和数据流的流标签。 一旦选 择了满足数据流的QoS要求的路由和相应的流标签,源节点就可以将所述 路由和所述流标签插入初始分组标头并强制所述流沿着相应的网络路径前 进。将路由插入初始分组标头利用了 IPv6逐跳扩展标头的能力。在IPv6 固定标头的"流标签"字段中携带流标签。源和中间节点緩存为数据流选 择的路由和流标签。对于后续分组,中间节点使用所述流标签来确定沿所 述路由的下一逸匕。
在数据流的路由上的链路或节点出现故障的情况下,中间节点可以通 过将新的路由插入属于所述数据流的下一分组来使数据流转向新的路由,
6使得在向目的地转发分组时,此新的路径上的中间节点可以緩存所述路由 和与数据流关联的流标签。计算此新的路由以脱离主路径的故障段。注意, 可以预先计算或实时计算此备选路由,并且一旦接收到故障指示,中间节 点就立即将所述流切换到此备选路由。
图l是示出根据本发明的原理的局域网的方块图; 图2a是根据IPv6标准的数据分组; 图2b是逐跳扩展标头中的选项字段;图3a是示出根据本发明的原理的源客户端的行为的流程图; 图3b是示出根据本发明的原理的中间节点的行为的流程图; 图3c是示出根据本发明的原理的目的地客户端的行为的流程图; 图4是根据本发明的原理的包含用于流建立或更改的扩展标头的数据 分组;图5是根据本发明的原理的包含用于响应流建立或更改的扩展标头的 数据分组;图6是根据本发明的原理的包含用于流重新路由的扩展标头的数据分组;图7是根据本发明的原理的包含用于响应流重新路由的扩展标头的数 据分组;图8是根据本发明的原理的包含用于流终止的扩展标头的数据分组。
具体实施方式
本发明提供了 一种利用IPv6(互联网协议版本6 )中的服务质量(QoS ) 能力来改进业务工程和进行快速保护/错误控制的方法和计算机程序产品。 图1示出了简单的局域网100。源客户端105通过4吏用路由器(或服务器) 110a和100b发起到目的地客户端115的数据流。为了将数据流导向目的 地客户端115,首先,源客户端105在数据流的第一分组中创建包括扩展标头的IPv6标头。源客户端105将数据流的预定目的地的地址插入所述分 组,在此实例中,目的地地址是目的地客户端115的网络层(IP)地址。 接着,源客户端105将流标签插入所述分组。流标签用于标识每个属于特 定数据流的分组。如图2a所示,在IPv6分组标头的"固定标头"部分中 携带源和目的地地址以及流标签。源客户端105还根据网络拓朴表中存储 的链路插入最优化路由。在所述分组的扩展标头中携带所述路由。网络拓 朴表是网络中所有链路的集合,可能带有相应的带宽、业务级别和其他相 关参数,并用于快速寻找从一个网络节点到另一个网络节点的路径。在此 实例中,最优化路由是源客户端105到路由器110a到路由器110b以及最 终到目的地客户端115。路由器110a接收来自源客户端105的数据流的第 一分组并检查该第一分组。所接收的第一分组包含源客户端105创建的扩 展标头,该扩展标头包含最优化路由。路由器110a緩存从分组的固定标头 提取的流标签以及扩展标头中包含的伴随的最优化路由。路由器110a然后 将分组转发到路由器110b。类似于路由器110a,路由器110b接收数据流 的第一分组并緩存流标签和伴随的最优化路由。最后,路由器110b将数据 流转发到目的地客户端115。由源客户端105发送的数据流的每个其他分 组只需标记有流标签。也就是说,这些其他分组无需携带包含源-目的地路 由的扩展标头。在沿着路径的每个路由器接收到其他分組时,它们可以使 用流标签来标识分组的下 一跳。但是,沿着所述路由可能会出现问题。例如,路由器110a与路由器 110b之间的连接120可能会因为各种原因(例如,物理硬件故障)而变得 无效。用于转发数据流的最优化路由现在是不完整的并且不能被继续使用。 需要备选路径来继续传输数据流。使用现有技术从诸如此类的情况恢复需要在源路由处开始新的路径。 如果路径上的节点数很多,则这会非常耗时。每个节点都必须将属于数据 流的分组排队,直到源节点可以确定新的路径并沿此新的路径转发分组。 此外,若干现有技术(如上述的MPLS)利用在选择最优化路由的同时确 定的新的路由。由于运行条件的变化,这会导致所选的新路由不适合将数据流携带到目的客户端。在本发明中,紧接问题之前的节点(在此实例中,路由器110a)将确 定新的路由以用于转发分组。在此实例中,路由器110a确定路由器110c 可用于绕过断开的连接120。路由器110a通过使用源客户端105用于建立 原始路由的IPv6扩展标头的相同特性来向参与路由数据流的节点指示该 新的路由。通过在中间路由选择节点处形成新的路由可节省时间,因为优 化可以实时发生,无需路由上的每一个节点都将数据流排队,直到故障指 示传播到源客户端以及包含新路由的结果传播到发生错误之前的路由器。图2a示出了根据IPv6标准化的数据分组,其包括以下字段版本字 段201、业务类别字段202、流标签字段203、有效负荷长度字段204、下 一标头字段205、跳限制字段206、源地址字段207、目的地地址字段208、 下一标头字段209、标头扩展长度字段210、下一标头字段211、标头扩展 长度字段212,以及数据字段213。本发明利用IPv6中引入的扩展标头。 IPv6规范允许6种类型的扩展标头逐跳、路由选择、分段、目的地选项、 验证,以及封装-安全-有效负荷。除了逐跳和路由选择扩展标头以外,仅 在由IPv6标头中的目的地地址指定的节点处处理所有其他扩展标头。路由 选择扩展标头用于源路由选择,即,用于列出要访问的中间节点。逐跳扩 展标头也由每个中间路由器处理。但是,要指出的是,所述标准仅指定了 格式/框架,但是未建议这些扩展标头的任何特定用途或内容。可以使用如 图2a所示的下一标头字段201将这些扩展标头结合在一起。下一标头字段 201指向另一扩展标头。当遇到下一标头字段时,分组的接收方推断下一 扩展标头具有相关的信息。采用此类系统的基本原理是将额外服务与基本 服务分开、将它们置于扩展标头中,并进一步根据其功能来对扩展标头分 类。通过执行此类操作,减轻了置于单个路由器上的负担,并且建立了允 许灵活添加功能的系统。在下一标头字段201之后是扩展标头长度字段 202。此字段用于指示不包括最初8个字节的相应扩展标头的总长度。在扩 展标头长度字段202之后是选项字段203。图2b示出了逐跳扩展标头的选项字段203,其包括以下字段选项类型字段220、选项长度字段221,以及数据字段222。通过利用此(即,选 项)特性,可以在逐跳扩展标头中^^艮告若干种信息。本发明利用此特性来 指示与当前分组所属的数据流关联的分组所要遵循的路由。要指出的是, 单个扩展标头可以包含多个选项字段,每个选项字段都包括三个子字段-选项类型、选项长度,以及数据。图3a-c示出了根据本发明的特定实施例的由网络(即,源客户端、中 间节点以及目的地客户端)中的主要组件采取的步骤。在此实施例中,讨 论了通过图1所示的网络转发数据流所需的步骤。图3a示出了由源客户端采取的步骤。过程始于步骤300。在步骤300, 源客户端105发起要转发到目的地客户端115的数据流。在发起数据流并 确定目的地客户端后,源节点105确定在将数据流转发到目的地中使用的 最优化路由。通过使用网络拓朴表,源客户端105可以快速地确定用于转 发数据流的最优化路由。在此实例中,所使用的最优化路由是源客户端105 到路由器110a到路由器110b到目的地客户端115。源客户端105还为数 据流选择在网络的相关部分内唯一 的流标签。一旦源客户端105确定了最优化路由并选择了流标签,过程继续到步 骤302。在步骤302,源客户端105格式化数据流的第一分组以包括包含该 最优化路由的扩展标头。图4 (将在以下讨论)示出了数据流的第一分组, 即,分组400,其包括含有最优化路由的扩展标头。一旦完全填充了包括初始分组的扩展标头的分组标头,过程就继续到 步骤304。在步骤304,源客户端105沿最优化路由发送数据流的初始数据 分组。 一旦传输了初始数据分组,源客户端105就等待响应。响应可以是 两者之一指示数据分組到达目的i^户端115的肯定响应,或指示数据 分組未能到达目的地客户端115的否定响应。如果接收到否定响应,则过 程返回步骤302,在步骤302,源客户端105重新格式化扩展标头以包括新 的最优化路由。然后过程如先前那样继续。图5 (将在以下详细讨论)示 出了从目的地客户端接收的肯定响应。如果接收到肯定响应,则过程继续 到步骤308。在步骤308,源客户端105发送额外分组。在发送后,过程继续到步骤310,在步骤310,源客户端105判定最新发送的数据分组是否是 数据流中的最后数据分组。如果否,过程返回步骤308。如果所述数据分 组是数据流的最后分组,则过程继续到步骤312。在步骤312,源客户端 105发送结束数据流的终止分组。图8 (将在以下详细讨论)示出了数据流 终止分组。具体地说,数据流终止分组用于向中间节点指示数据流已完成 并且它们可以删除所存储的与此特定数据流有关的任何緩存的信息。图3b示出了中间节点(例如,图1中的路由器110a和110b)执行的 步骤。在步骤320,中间节点接收数据流的初始分组。此分组包含源客户 端105确定的最优化路由以及流标签。中间节点緩存所述流标签和最优化 路由。过程继续到步骤322,在步骤322,中间节点进行检查以确保最优化 路由未被修改。如果路由已被修改,则过程继续到步骤326,在步骤326, 中间节点删除緩存的表项并向源节点发送否定响应。如果路由被确认为未 被修改,则过程继续到步骤324。在步骤324,中间节点将分组转发到最优 化路由上的下一节点。 一旦转发了分组,中间节点就等待额外分组。在步 骤328,中间节点接收额外分组。利用分组中包括的流标签,中间节点可 以快速地访问存储的最优化路由并确定分组要被转发到的下 一 节点。在确定分组要被转发到的下一节点后,过程继续到步骤330,在步骤 330,中间节点判定发送的分组是否是数据流的最后分组。如果分组不是数 据流的最后分組,则过程继续到步骤332。在步骤332,如先前在步骤322 那样,中间节点判定路由是否未被修改。如果路由未被修改,则过程返回 步骤324,在步骤324,将分组转发到最优化路由上的下一节点。但是,如 果路由已被修改,则过程继续到步骤334,在步骤334,中间节点计算新的 路由。使用存储在中间节点处的本地网络拓朴表来计算此新的路由。通过 在中间节点而不是在源节点处计算此新的路由而提高了效率,因为重新路 由选择将立即发生。如果必须通知源节点计算新的路由,则需要沿新的路 由重新发送分组,这将产生比本发明的延迟大得多的延迟。图6(将在以 下详细说明)示出了由中间节点创建的指示重新路由的分組以及如何创建 路由的详细说明。 一旦创建了新的路由,就沿着新创建的路由发送重新路由的分组。发送的中间节点等待响应,其可以是肯定的,也可以是否定的。图7 (将在以下详细说明)示出了对重新路由通知的响应分组并详细说明 了如何创建该响应。如果接收到否定响应,则中间节点计算新的重新路由。 如果接收到肯定响应,则过程返回步骤324并且分组被转发到该路由上的 下一节点,在此情况下,转发到新创建的重新路由上的下一节点。返回步骤330,如果分组是与数据流关联的流终止分组,则过程继续 到步骤336。在步骤336,如在步骤322和332那样,中间节点判定路由是 否未^皮修改。如果路由已坤皮修改,则在步骤338,中间节点删除緩存的与 流关联的表项,然后丢弃流终止分组。相反,如果路由未被修改,则在步 骤340,中间节点标识终止分组的下一跳、删除緩存的与流关联的表项, 然后将终止分组转发到下 一跳节点。图3c示出了根据本发明的实施例的由目的地客户端(例如,目的地客 户端115)执行的步骤。在步骤350,目的地客户端接收数据流的第一分组, 其包含列出流标签和最优化路由的扩展标头。目的地客户端緩存有关流的 相关信息(例如,源客户端的地址、流标签等)。所述过程然后继续到步 骤352,在步骤352,目的地客户端向源客户端发送肯定响应。此响应用作 初始数据分组到达目的地客户端以及最优化路由适于转发数据流的其^ 分的指示。图5 (将在以下详细说明)示出了由目的地客户端创建的肯定 响应。在响应補发送到源客户端后,过程继续到步骤354。在此步骤,目 的地客户端接收额外的分組。 一旦接收到额外分组,目的地客户端就判定 该分组是否是最后分组,或是否是终止分组。如果该分组不是终止分组, 则过程返回步骤354,在步骤354接收额外分組。如果接收的分組是终止 分组,则过程继续到步骤358。在步骤358,目的地客户端处理终止分组并 结束接收数据流。从存储器删除緩存的流标签和最优化路由。如上所述,图4-8详细示出了由图3a-c示出的本发明的实施例使用的 各种分组的实例。图4示出了源客户端用于发起沿最优化路由的数据流的分组400,其 包括以下字段IPv6固定标头402、下一标头字段404、标头扩展长度字段406、选项类型字段408、选项长度字段410、流标签字段412、带宽字 段414、业务类别字段416、中间节点数字段418、路由器110a地址字段 420,以及路由器110b地址字段422。(注意,如果数据流要更改与该流 关联的参数,则源使用相同的分组格式。)分组400的第一部分是IPv6 固定标头402。在此,源客户端105插入其自己的地址作为源地址,并插 入目的地客户端U5的地址作为目的地地址。接着,源客户端105设置下 一标头字段404以指示随后存在扩展标头。标头扩展长度字段406保持为 空,直至已完全填充扩展标头。由于各种类型的扩展标头(每个扩展标头 都可能具有不同类型的内容)可以被链接在一起,所以此字段用于指示相 应扩展标头的长度。接着,源客户端105填充选项类型字段408。此字段 用于指示随后的扩展标头将是用于建立新数据流的逐跳标头,意味着源-目的地路由上的每个节点都将处理扩展标头内包含的信息。选项长度字段 410指示当前选项的范围内包含的字段的总长度,并在源节点完成这些字 段后被.填充。接着,源客户端105将标识符插入流标签字段412。源-目的 地路由上的所有节点都使用此标识符来标识各个数据流。接着,源客户端 105填充带宽字段414。对于特定数据流,可以要求最小带宽(例如,流音 频或视频)。通过指定最小带宽,源可以确保源-目的地路由上的所有路径 都满足此准则。在带宽之后,源客户端填充业务类别字段416。此字段用 于报告数据流所需的优先级或QoS处理。可以使用特定指示符来表示数据 流非常重要并且应被按优先顺序排列在路由上的任何队列的顶部。一旦填充了带宽和业务类别,源客户端就开始填充与所选路由相关的 字段。第一字段是中间节点数字段418。在此实例中,源客户端105将"2" 插入此字段中,因为源客户端105与目的地客户端115之间存在两个中间 节点(即,路由器110a和路由器110b)。在字段418之后,源客户端105 将路由器110a的网络地址插入字段420。类似地,源客户端105将路由器 110b的网络地址插入字段422。重要的是指出,在此实施例中,源地址和 目的地地址并未插入初始扩展标头中。仅将中间节点的地址插入初始扩展 标头中。一旦中间节点地址被插入扩展标头,源客户端就可以更新选项长度字段410以指示当前选项的范围内包含的字段的总长度。此时还使用刚才填 充的扩展标头的总长度来填充标头扩展长度字段406。源客户端在此时还 可以添加其他扩展标头,如包含用于沿源-目的地路由的性能监视的信息的 扩展标头。这些扩展标头中的每个扩展标头都将以"下一标头"和"标头 扩展长度"字段开始,后JM目应的内容。图5示出了目的地客户端115响应于数据流的初始分组而创建的分组 500的实例,其包括以下字段IPv6固定标头502、下一标头字段504、标 头扩展长度字段506、选项类型字段508、选项长度字段510、流标签字段 512、业务类别字段514、响应代码字段516、节点地址数字段518、目的 地客户端地址字段520、路由器110b地址字段522,以及路由器110a地址 字段524。类似于创建图4中的分组400的过程,首先,目的地客户端115 填充IPv6固定标头502。在此,源客户端105的地址被用作目的地地址并 且目的地客户端115的地址被用作源地址(因为此确认分组被沿路由发送 回源客户端105)。接着,目的地客户115适当地填充扩展标头字段。其 适当地填充下一标头字段504,指示随后是扩展标头并保持标头扩展字段 506为空,直到完成扩展标头。接着,目的地客户端115填充选项类型字 段508以指示随后的扩展标头是用于响应流建立或更改分组的逐跳扩展标 头。选项长度字段510保持为空,直到完成扩展标头。使用先前为数据流 选择的流标签填充流标签字段512。使用先前为数据流选择的业务类别指 示符填充业务类别字段514。接着,目的地客户端115填充响应代码字段 516。此字段用于指示响应是肯定的还是否定的。在此实例中,由于响应来 自目的地客户端,所以响应是肯定的。接着,填充节点地址数字段518。 在此,目的地客户端115将插入"3",指示随后是3个网络地址。将使用 原始流建立或更改分组(作为对其的响应而发送当前分组)的目的地的地 址来填充这些地址字段中的第一地址字段(在此实例中为520)。在此情 况下,目的地客户端115将其自己的地址插入字段520。使用要通过其携 带响应分组的节点的地址来填充其余的地址字段。因此,目的地客户端115将路由器110b的地址插入字段522并将路由器110a的地址插入字段524。 一旦插入了所述地址,目的地客户端115就可以填充选项长度字段510以 指示当前选项的范围内包含的字段的总长度。目的地客户端115然后填充 标头扩展长度字段506以指示当前扩展标头的长度、结束将任何额外信息 插入分组,并且将分组转发到源客户端105。在流建立或更改分组的情况 下,同才羊可以向响应分组添加更多的扩展标头。与上述讨论相反,可以从沿路由的任何中间节点将否定响应发送到源 节点。与肯定响应在结构上类似,否定响应在响应代码字段516中包括否 定指示。此外,节点地址数字段518将随在何处发起否定响应而变化。分 组的地址也将变化。IPv6固定标头502中的源地址将;l^送否定响应的节 点的地址。扩展标头的字段520中包含的地址将是目的地客户端的地址。 如前所述,始终^f吏用原始流建立或更改分组(响应于其而发送当前分组) 的目的地的地址来填充此地址字段。扩展中随后的字段将相应地更改以指 示发送否定响应的节点与源节点之间的节点。图6示出了包含路由器110a (包括新建议的路由)所创建的扩展标头 的分组600,其包括以下字段IPv6固定标头602、下一标头字段604、标 头扩展长度字段606、选项类型字段608、选项长度字段610、流标签字段 612、带宽字段614、业务类别字段616、节点地址数字段618、源客户端 地址字段620、目的地客户端地址字段622,以及路由器110c地址字段624。 首先,填充IPv6固定标头602。在此,源地址是建议重新路由的节点(在 此情况下,路由器10a)的地址,而目的地地址是重新路由将在该处重新 加入旧的路由(路由器110b)的节点的地址。接着,路由器110a填充下 一标头字段以指示随后是扩展标头并且暂时保持标头扩展长度字段606为 空。它填充选项类型字段608以指示随后是用于重新路由数据流的逐跳扩 展标头并暂时保持选项长度字段610为空。路由器110a将数据流标签插入 流标签字段612。它还将所需带宽和业务类别分别插入字段614和616。接 着,路由器110a填充节点地址数字段618。此字段中的值始终是添加到路 由的节点数(在此情况下为1)加上2。出于在新添加的节点(路由器110c)处的记录目的,数据流的源(源客户端105)和数据流的目的地(目的地 客户端115)的地址始终被插入扩展标头。所以,将"3"插入节点地址数 字段618。插入扩展标头的第一个地址是源客户端105的地址。此地址被 插入字段620。接着,目的地客户端115的地址被插入字段622。最后,与 建议的重新路由关联的所有节点的地址以重新路由重新加入原始路由之前 节点在重新路由上出现的顺序来显示。在此实例中,只有路由器110c出现 在建议的重新路由上。因此,路由器110c的地址被插入字段622。在插入 最后字段后,路由器110a更新选项长度字段610以指示落入当前选项的范 围内的字段的长度。接着,路由器110a更新标头扩展长度以指示扩展标头 的总长度。最后,路由器110a将任何额外数据添加到分组并将分组转发到 路由器110c。图7示出了当前实例中路由器110b响应于由路由器10a发送的重新路 由通知而构建的分组700,其包括以下字段IPv6固定标头702、下一标 头字段704、标头扩展长度字段706、选项类型字段708、选项长度字段710、 流标签字段712、业务类别字段714、响应代码字段716、节点地址数字段 718、目的地客户端地址字段720、源客户端地址字段722,以及路由器110c 地址字段724。此响应类似于根据图5讨论的响应。首先,路由器110b填 充IPv6固定标头702。它插入其自己的地址作为源地址以及插入请求重新 路由的节点(在此情况下,路由器110a)的地址作为目的地地址。接着, 路由器110b填充下一标头字段704以指示存在扩展标头。标头扩展长度字 段706暂时保持为空。路由器110b使用表示随后的扩展标头是用于响应流 重新路由的逐跳扩展标头的指示符来填充选项类型字段708。选项长度字 段710暂时保持为空。使用针对此数据流的緩存的流标签来填充流标签字 段712。类似地,〗吏用为此数据流先前选择的业务类别来填充业务类别字 段714。路由器110b接着填充响应代码字段716。类似于图5的讨论,此 字段用于指示重新路由是被肯定地还是否定地确认。只有重新路由重新加 入原始路由的点(在此实例中,路由器11 Ob )才能够肯定地确认重新路由。 沿重新路由的任何点都可以否定地确认重新路由。对于此实例,路由器nob肯定地确认重新路由。接着,路由器iiob将"3"插入节点地址数字段718。 "3"作为标头被插入,包括(1)数据流的源(源客户端105) 的地址;(2)数据流的目的地(目的地客户端115)的地址;以及(3) 在建议的重新路由上出现的节点(在此情况下,只有一个节点(路由器110c) 落入此分类)。接着,路由器110b将源客户端105的地址插入字段720。 接着,它将目的地客户端115的地址插入字段722。最后,路由器110b将 新添加的路由器110c的地址插入字段724。在完成扩展标头之后,路由器 llOb填充选项长度字段710以指示落入当前选项的范围内的字段的总长 度。接着,路由器110b填充标头扩展字段706以指示扩展标头的长度。最 后,路由器110b将任何额外信息插入分組的主体并将分组转发到路由器 110a。在此情况下,通过路由器110c将分组转发到路由器110a。一旦路由器110a接收到分组,其知道新的路由上的所有节点都已肯定 地确认该新的路由。注意,当路由器110a发起重新路由时,它沿着建议的 路由发送携带流重新路由请求的分组。当在此路由上的节点接收到重新路 由请求时,它们检验它们是否具有支持流的资源。如果是,它们将所需资 源分配给流、緩存与路由相关的信息(包括流标签),并将分組转发到建 议的重新路由上的下一节点。否则,它们丢弃携带流重新路由请求的分组, 并向发起流重新路由请求的节点(在此实例中,路由器110a)发送否定响 应。由于只有建议的重新路由与原始路由合并处的节点才能发送对流重新 路由请求的肯定响应(只有所有中间节点都已沿建议的路由转发重新路由 请求时才会发生),所以从路由器110b接收到肯定响应向路由器110a指 示建议的重新路由上的所有节点和链路都可以支持重新路由的流。类似于图5的讨论,同样可以将否定响应消息发送到请求重新路由的 节点。可以由沿重新路由的任何节点发起此请求。该消息指示新选择的路 由无法处理数据流的要求并且必须选择新的重新路由。图8示出了由源客户端105创建以发信号通知数据流的终止的分组 800,其包括以下字段IPv6固定标头802、下一标头字段804、标头扩展 长度字段806、选项类型字段808、选项长度字段810、业务类别字段812、流标签字段814、节点地址数字段816、路由器110a地址字段818、路由 器110c地址字段820,以及路由器110b地址字段822。初始地,源客户端 105填充IPv6固定标头802中的源和目的地地址。在此情况下,源地址是 源客户端105的地址并且目的地地址是目的g户端115的地址。接着, 源客户端105设置下一标头字段804以指示随后是扩展标头并且暂时保持 标头扩展长度字段806为空。接着,源客户端105设置选项类型字段808 以指示随后是终止数据流的逐跳扩展标头。暂时保持选项长度字段810为 空,直到完成扩展标头。源客户端将先前选择的业务类别指示符插入业务 类别字段812,然后将先前选择的流标签插入流标签字段814。接着,源客 户端105填充选项长度字段810以指示落入当前选项范围内的字段的总长 度,然后填充标头扩展长度字段806以指示扩展标头的总长度。在完成数 据分组(例如,包括任何未包含在标头字段中的数据有效负荷)后,源客 户端105将分组转发到去往目的地客户端115的路由上的下一节点。如前 所述,由于与数据流关联的路由上的每个节点都存储相应的流标签以及到 流的目的地的路由,所以携带流终止指示的分组可以经由与路由关联的节 点被逐跳地转发。这是流终止选项不包括除流的源和目的地节点以外的节 点的地址的原因。在通过路由转发终止分组时,每个中间节点都类似地处理信息。首先, 中间节点检查选项类型字段808并确定分组指示流终止。接着,中间节点 检查流标签字段808以确定正在终止哪个流。所述节点使用此信息在其高 速緩存中寻找存储的路由、标识路由上出现的下一节点(如果有),然后 删除该路由和附带的流标签。所述节点接着将分组转发到路由上的下一节 点(在先前步骤中标识)。如果在路由上出现的下一节点是流的目的地, 则所述节点将分组转发到IPv6固定标头802内包含的目的地地址。 一旦目 的地客户端115接收到分组,它也首先检查选项类型字段808以确定分组 是流终止分组。它检查流标签814并且类似于中间节点,删除存储的路由。 最后,目的地客户端115在分组内包含的非标头信息中检查与数据流有关 的任何额外数据。上述使用流终止特性是可选的。在与数据流关联的路由上的每个节点 处,通过定时器控制与流关联的高速緩存表项和相应的资源分配。如果节 点在一定时间内未接收到任何与数据流关联的分组,则删除相应的高速緩 存表项和资源分配。流终止特性通过使节点在删除表项和资源分配之前无 需等待相应的超时间隔来帮助加速此过程。通过利用如上所述的IPv6中提供的扩展标头,实现了优于现有技术的 若干优点。主要地,可以在链路出现故障的节点处立即做出路由更改。节 点可以快速地确定新的路由并使数据流改为遵循此新的路由,同时向路由 中未受影响的节点报告该新的路由。通过此操作,使用新的路由列表更新 未受影响的节点而不中断数据流的传送。优于现有技术的另 一个优点是源 节点可以在任何时间改变路由。如果数据流的要求因某种原因而改变,则 源节点只需发送指示新的带宽或业务类别要求的流建立或更改分组以及新 的路由(如果需要)。在此情况下,如果路由改变,则如前所述,在没有 出现在新的路由上的节点处的与流关联的表项将发生超时。备选地,源节 点可以首先发送将沿旧的路由转发的终止分组,随后遵循新的路由的流建 立或更改分组。如果使用后者的方法,则在建立新的路由之前,将显式地 删除旧的路由上的节点处的高速緩存表项和资源分配。在任一情况下,源 客户端都可以通过动态地创建与数据流的要求一致的新的路由来无缝地 (不丢失任何数据)快速更改路由。另 一个优点是源客户端可以强制数据 流遵循选定路由,而不将该路由插入数据流的每一个分组。这减小了数据 流中的每个分组的大小并提高了效率。图3a-c所示的实施例以及图4-8所示的数据分组只是通过实例的方式 示出。本领域的技术人员将认识到以上未完全例示的其他实施例和优点。 例如,可以使用其他格式的扩展标头以及有关新的路由的备选请求/响应方 案。此外,除了可用带宽,还可以对单个网络链路设置其他要求。其他要 求可以包括最小等待时间、特定信噪比(在无线网络中)、最小链路总数 等。此外,源或重新路由节点可以使用路由构建的备选的公知方法。
权利要求
1.一种通过数据网络路由数据流的方法,所述方法包括以下步骤(1)在源节点处创建数据流;(2)在所述源节点处确定最优化的源-目的地路由;(3)将所述路由连同相应的流标签一起插入所述数据流的第一分组的扩展标头;(4)通过沿所述路由的任意中间节点将所述数据流转发到所述目的地节点。
2. 根据权利要求1的方法,其中步骤(4)进一步包括在所述中间 节点处緩存所述路由和所述流标签。
3. 根据权利要求2的方法,还包括(5 )沿所述路由将属于所述数据流的其他分组从所述源节点转发到所 述中间节点,所述其他分组包含所述流标签但不包含所述路由;以及(6 )根据所述其他分组中的所述流标签在所述中间节点中的每个中间 节点处标识所述路由,以及根据所标识的路由将所述其他分组转发到所述 目的地节点。
4. 根据权利要求3的方法,还包括 (7)如果沿所述原始路由的在所述中间节点与另一节点之间的链路不可用,则在所述中间节点处确定新的路由。
5. 根据权利要求4的方法,其中步骤(7)进一步包括创建新的分 组,所述新的分组包括所述流标签和所述新的路由;以及将所述新的分组 转发到所述新的路由上的每个节点。
6. —种通过数据网络引导数据流的方法,所述数据网络包含多个节点, 所述方法包括以下步骤(1)在源节点处发起所述数据流;(2 )确定通过所述数据网络的从所述源节点到目的地节点的最优化路由;(3 )格式化所述数据流的第一分组以包括扩展标头,所述扩展标头包 括所述最优化路由以及特别地选择以唯一地对应于所述数据流的流标签;(4 )经由沿所述最优化路由的任意中间节点将所述第一分组从所述源 节点转发到所述目的地节点;(5 )在所述中间节点处緩存所述第一分组中包含的所述流标签和所述 最优化路由;(6 )经由所述中间节点将所述数据流的任意其他分组转发到所述目的 地节点,所述其他分组包含所述流标签但不包含所述最优化路由;(7 )根据所述其他分组内包含的所述流标签在所述中间节点处标识所 述最优化路由;(8 )根据所标识的最优化路由从所述中间节点向所述目的地节点转发 所述其他分组。
7. —种通过数据网络路由数据流的系统,所述系统包括 在源节点处创建数据流的装置; 在所述源节点处确定最优化的源-目的地路由的装置;将所述路由连同相应的流标签一起插入所述数据流的第 一分组的扩展 标头的装置;通过沿所述路由的任意中间节点将所述数据流转发到所述目的地节点 的装置。
8. 根据权利要求7的系统,其中用于转发的装置进一步包括在所述 中间节点处緩存所述路由和所述流标签。
9. 根据权利要求8的系统,还包括沿所述路由将属于所述数据流的其他分组从所述源节点转发到所迷中 间节点的装置,所述其他分组包含所述流标签但不包含所述路由;以及才艮据所述其他分组中的所述流标签在所述中间节点中的每个中间节点 处标识所述路由,以及根据所标识的路由将所述其他分组转发到所述目的 地节点的装置。
10. 根据权利要求9的系统,还包括如果沿所述原始路由的中间节点与另 一节点之间的链路不可用,则在 所述中间节点处确定新的路由的装置。
全文摘要
本发明提供了一种利用IPv6所支持的能力进行业务工程和快速保护单个数据流的方法。通过利用IPv6扩展标头和流标签,源节点可以选择基于数据流的服务质量(QoS)要求的特定网络路由。一旦选择了满足数据流的QoS要求的路由,源节点就可以将所述路由插入初始分组标头并强制所述流沿着相应的网络路径前进。源和中间节点缓存为数据流选择的路由和流标签。对于后续分组,中间节点使用所述流标签来确定沿所述路由的下一跳。在出现故障的情况下,中间节点可以强制将新的路由(连同原始流标签)插入属于故障数据流的下一分组,使得在向目的地转发分组时,此新的路径上的中间节点可以缓存所述路由和相应的流标签。然后,此新的路由用于继续将数据流转发到目的地节点。
文档编号H04L12/56GK101569146SQ200780048135
公开日2009年10月28日 申请日期2007年12月26日 优先权日2006年12月29日
发明者K·M·雷热, R·纳加拉让, S·P·帕雷克 申请人:朗讯科技公司