网络中的分段源路由的制作方法

文档序号:10494718阅读:207来源:国知局
网络中的分段源路由的制作方法
【专利摘要】一种在网络控制器中实施的用于执行源路由的方法,所述方法包括:接收来自网络节点的请求以确定将数据包从源节点传输至目的节点的路径;确定将所述数据包从所述源节点传输至所述目的节点的所述路径;将所述路径的描述分割成多个路由段;以及将所述路由段分发给一个或多网络节点以将路由信息附加到所述数据包中,其中所述网络节点使用所述附加的路由信息并且在不使用转发表的情况下路由所述数据包,以及每个所述路由段描述了所述路径的一部分。
【专利说明】网络中的分段源路由
[0001 ]相关申请案交叉申请
[0002]本发明要求2013年8月23日递交的发明名称为“网络中的分段源路由(segmentedsource routing in a network)”的第13/974,950号美国专利申请案的在先申请优先权,该在先申请的全部内容以引入的方式并入本文本中。
技术领域
[0003]本发明涉及网络通信领域,且在具体实施例中,涉及网络中的分段源路由。
【背景技术】
[0004]软件定义网络(software defined networking,SDN)是一种网络架构形式,在该架构中,控制平面与数据平面分离并且作为软件应用来实现。该架构允许网络管理员对网络业务进行可编程的逻辑上集中式的控制,而无需对网络硬件设备的物理访问。因此,SDN将网络控制(学习和转发决策)与网络拓扑(接头、接口,以及它们如何对接)解耦。将网络控制与网络拓扑解耦基于集中收集和管理的全局网络拓扑、状态和应用或者业务流模式实现了更好的路由决策和资源利用。SDN可以简化网络操作,因为集中式控制器可以预先指定替代路由路径并自动配置网络设备,每个标识的全局定义无需匹配到每个接口位置。实现网络控制与网络拓扑解耦的基本方法是在网络边缘应用全局感知的、拓扑解耦的软件控制。假设传统的拓扑耦合桥接和路由驱动网络内核,这样可以维持互联网协议(InternetProtocol,IP)网络的可伸缩性、互操作性、高可用性和可扩展性。
[0005]SDN网络内的一些网络节点可以在数据平面中操作以将数据转发给SDN网络内的其它网络节点。通常,网络节点可以从SDN控制器获取转发表并使用转发表将数据路由并转发给其它网络节点。然而,使用转发表增加了路由收敛时间和路由时延。如2013年7月3日发表的标题为“SDN状态简化(SDN State Reduct1n)”的Internet工程任务组(InternetEngineering Task Force,IETF)文档draft-ashwood-sdnrg-state-reduct1n-O0.txt中所描述的源路由简化了数据转发网络节点并且与使用转发表相比缩短了路由时间和时延,该文档的全部内容以引入的方式并入本文本中。具体而言,源路由在数据包内附加并记录路径的全部路由信息。网络节点使用数据包中的路由信息转发数据包,而不是使用转发表执行查找功能。然而,较长且复杂的路径可能拥有大量路由信息来表示整个路径。因此,将全部路由信息附加到数据包中可以降低净荷的有效大小。因此,需要一种更为有效的方案来路由通过SDN网络的数据。

【发明内容】

[0006]在一项示例实施例中,本发明包括用于执行源路由的网络控制器。所述网络控制器可以接收来自网络节点的请求以确定将数据包从源节点传输至目的节点的路径。在接收所述请求之后,所述网络控制器可以确定将所述数据包从所述源节点传输至所述目的节点的所述路径并将所述路径的所述路由信息分割成多个路由段。所述路由段可被分发给将所述路由信息附加到所述数据包中的一个或多个网络节点。随后使用所述附加的路由信息并且在不使用转发表的情况下在所述网络节点中转发所述数据包。每个所述路由段描述了从所述源节点到所述目的节点的所述路径的一部分。
[0007]在另一项示例实施例中,本发明包括确定完整路由以将数据包从源节点转发至目的节点的网络控制器。所述网络控制器可以将所述完整路径的描述分割成多个路由段并获取段长度变量,所述段长度变量确定沿所述完整路由的每个分段节点之间的中间节点的数量。所述网络控制器可以将所述路由段分发给所述分段节点。所述分段节点可以基于所述路由段将路由信息附加到所述数据包中,沿所述完整路由的中间节点可以使用所述附加的路由信息并且在不使用转发表的情况下转发所述数据包。
[0008]在又一项示例实施例中,本发明包括一种用于通过接收数据包并检查引用附加到所述数据包中的路由信息的指针执行分段源路由的网络节点。所述网络节点随后可以根据所述指针引用的路由信息转发所述数据包。所述路由信息可以表示用于将所述数据包从源节点路由至目的节点的所有路由信息的一部分。所述网络节点可以在不使用转发表的情况下转发所述数据包。
[0009 ]结合附图和权利要求书,可从以下的详细描述中更清楚地理解这些和其它特征。
【附图说明】
[0010]为了更透彻地理解本发明,现参阅结合附图和【具体实施方式】而描述的以下简要说明,其中的相同参考标号表不相同部分。
[0011]图1是SDN的示例实施例的示意图。
[0012]图2是网络控制器的示例实施例的示意图。
[0013]图3是网络节点的示例实施例的示意图。
[0014]图4是执行分段源路由的网络的示例实施例的示意图。
[0015]图5是分段源路由数据包的示例实施例的图。
[0016]图6是用于分割和分发分段源路由信息的方法的示例实施例的流程图。
[0017]图7是用于基于分段源路由转发数据包的方法的示例实施例的流程图。
【具体实施方式】
[0018]首先应理解,尽管下文提供一项或多项示例性实施例的说明性实施方案,但所公开的系统和/或方法可使用任何数目的技术来实施,无论该技术是当前已知还是现有的。本发明决不应限于下文所说明的说明性实施方案、附图和技术,包括本文所说明并描述的示例性设计和实施方案,而是可在所附权利要求书的范围以及其等效物的完整范围内修改。
[0019]本文所公开的是在诸如SDN网络之类的网络中实施分段源路由的各种示例实施例。分段源路由意味着数据包可以携带一些或所有信息,这样路径上的节点无需搜索转发表。为了使开销最小化并使数据包的载荷大小最大化,路由信息可被分割成一个或多个路由段并分发给沿路径的一个或多个分段节点。每个路由段可以描述用于通过路径将数据包从源节点传输至目的节点的至少一部分路由信息或路由信息子集。分段节点可以将路由信息附加到沿路径遍历的数据包中。附加到数据包中的路由信息可以基于从网络控制器接收到的路由段。位于分段节点之间的中间节点可以使用附加到数据包中的路由信息并且在不使用路由表的情况下将数据转发给合适的网络节点。
[0020]图1是可以操作本发明示例实施例的SDN网络100的示例实施例的示意图。SDN网络100可以包括网络控制器102、多个网络节点104,以及多个终端节点106。控制路径由虚线表示,数据路径由实线表示。系统配置、管理信息,以及路由段信息可以通过控制路径在网络控制器102和网络节点104之间交换。数据包可以通过数据路径从终端节点106接收并在网络节点104之间转发。终端节点106可以是用于传输、接收、发起,和/或终止数据的任意网元,例如主机、虚拟机,和/或服务器。网络节点104可以是SND网络100内沿一个或多个路径接收和传输数据的任意设备。在一项示例实施例中,网络节点104可以遵循一种或多种应用编程接口(applicat1n programming interface,API)协议,例如Openflow。网络节点 104可以是交换机、路由器、网桥,和/或用于在SDN网络100的数据平面内转发数据的任意其它设备。在一项示例实施例中,网络节点104可以在数据平面中操作,但不在控制平面内操作。至少一些网络节点104可以配置为分段节点,而其它网络节点104可以配置为利用SDN网络100形成的任意给定路径内的中间节点。
[0021]网络控制器102可以是用于执行各种控制路径和/或控制平面功能的任意网络控制器,例如绘制网络图和定义路由段中的信息,该路由段定义如何路由传入包。在一项示例实施例中,网络控制器102可以是SDN控制器。网络控制器102可以配置用于控制平面的管理和控制功能,这些功能可以包括路由和资源管理。网络控制器102可以通过控制平面接收来自网络节点104的消息并向网络节点104传输消息。网络控制器102可通过各种API协议,例如Openf low,与分段节点104通信。网络控制器102可以确定SDN网络100的全局网络拓扑。利用全局网络拓扑、状态信息、动态业务流/量信息以及其它网络状态信息,网络控制器102可以决定如何通过SDN网络100分配资源和路由应用、信息,和/或数据包流。
[0022]正如所属领域普通技术人员所了解,尽管前述讨论涉及SDN和SDN网络,但是所公开的技术不局限于该应用,但同样适用于多个网络架构和网络技术,这些网络架构和网络技术利用具有网络全局视图的集中式控制器可以控制网络中的网元,所有这些应该被本发明包含。单个架构的使用和论述只是为了方便描述和解释。
[0023]本发明中所描述的至少一些特征/方法可以在诸如分段节点和中间节点之类的网络控制器和网络节点中实现。例如,本发明的特征/方法可以使用硬件、固件和/或安装在硬件上运行的软件来实现。网络控制器可以是通过控制平面通信的任意设备,例如,路由器、服务器、SDN控制器等。图2是网络控制器200的示例实施例的示意图,网络控制器可以是用于提供控制平面功能的任意设备,例如图1所示的网络控制器102。网络控制器200也可以用于实现或支持本文所公开的分段源路由。
[0024]网络控制器200可以包括親合到收发器(transceiver,Tx/Rx) 212的一个或多个下行端口210,Tx/Rx 212可以是发射器、接收器,或其组合。Tx/Rx 212可耦合到多个下行端口210用于传输和/或接收来自其它节点的帧。Tx/Rx 212可耦合到多个上行端口230用于传输和/或接收来自其它节点的帧。处理器225可以耦合到Tx/Rx 212以处理帧和/或确定向哪些节点发送帧。处理器225可包括一个或多个多核处理器和/或存储器模块222,存储器模块222可用作数据存储器、缓冲器等。处理器225可以作为通用处理器实现或者可以是一个或多个专用集成电路(applicat1n specific integrated circuit,ASIC)和/或数字信号处理器(digital signal processor,DSP)的一部分。下行端口210和/或上行端口230可以包含电和/或光发射和/或接收部件。在一项示例实施例中,网络控制器200可以是作出路由决策的路由部件。
[0025]存储器模块222可用于存放用于执行本文所述的系统和方法的指令。存储器模块222可包括用于暂时存储内容的缓存,例如随机存取存储器(Random Access Memory,RAM)。此外,存储器模块222可包括用于将内容存储相对较长时间的长期存储设备,例如只读存储器(Read Only Memory,ROM)。例如,缓存和长期存储设备可包括动态随机存取存储器(dynamic random-access memory,DRAM)、固态驱动器(solid-state drive,SSD)、硬盘或其组合。存储器模块222可包括可以在处理器225上实施的源路由确定和分段块228。或者,源路由确定和分段块228可以直接在处理器225上实施。源路由确定和分段块228可以用于实施图6公开的方法600。例如,源路由确定和分段块228可以用于为了响应请求来确定数据的路径、生成路径的路由信息,以及将路由信息划分为路由段。
[0026]存储器模块222还可包括段分发块229,其可使用处理器225实施或者可以直接在处理器225上实施。段分发块229可以用于将对应路径的路由段分发给网络中的一个或多个分段节点。在一项示例实施例中,段分发块229可将路由段同时分发给分段节点。在另一项示例实施例中,段分发块229可以将第一段分发给第一分段节点,随后为了响应后续分段节点的请求来分发后续路由段。源路由确定和分段块228和段分发块229可以使用软件、硬件或者两者进行实施。
[0027]图3是诸如分段节点之类的网络节点300的示例实施例的示意图,分段节点可以是通过网络传输和处理数据的任意设备,例如图1中公开的网络节点104。网络节点300可以用于实现或支持本文所公开的分段源路由。网络节点300可以包括下行端口310、收发器312、存储器模块322、处理器325,以及上行端口 330,它们大体上分别类似于图2所示的下行端口210、收发器212、存储器模块222、处理器225,以及上行端口 230。
[0028]存储器模块322可包括可以在处理器325上实施的数据包转发块328。数据包转发块328可以用于实施图7所示的方法700。或者,数据包转发块328可以直接在处理器325上实施。数据包转发块328可以用于使用数据包内的路由信息路由数据包。在一项示例实施例中,数据包转发块328可以随着从网络控制器接收到的新路由信息而更新数据包中包含的路由信息。如果在接收数据包之后未从网络控制器接收到合适的路由段,数据转发块328也可以用于搜索和/或请求合适的路由段。数据包转发块328可以使用软件、硬件或这两者进行实施。
[0029]应理解,通过将可执行指令编程和/或加载到网络控制器200和/或分段节点300上,处理器225和/或325、缓存,和长期存储设备中的至少一个被更改,从而将网络控制器200和/或网络节点300部分转变成具有本发明所教示的新颖功能的特定机器或装置,例如分段源路由网络部件。加载可执行软件至计算机所实现的功能可以通过公知设计规则转换成硬件实施,这在电力工程和软件工程领域是很基础的。决定使用软件还是硬件来实施一个概念通常取决于对设计稳定性及待生产的单元数量的考虑,而不是从软件领域转换至硬件领域中所涉及的任何问题。一般来说,经常变动的设计更适于在软件中实施,因为重新编写硬件实施比重新编写软件更为昂贵。一般而言,将投入量产的稳定设计可首选以硬件实现,例如通过ASIC实现,这是因为对于大型生产活动,硬件实现的成本可能要低于软件实现。设计通常可以以软件形式进行开发和测试,之后通过公知设计规定转变成专用集成电路中等同的硬件实施,该集成电路硬线软件指令。机器由新的ASIC控制后就成为具有特殊用途的机器或装置,同样,经过编程和/或已加载有可执行指令的计算机也可视为具有特殊用途的机器或装置。
[0030]图4是执行分段源路由的网络400的示例实施例的示意图。当分段节点418接收来自源节点450的数据包时,网络控制器410可以从耦合到源节点450的分段节点418接收对路由信息的请求。网络控制器410可以维持网络400的拓扑,以及网络400中分段节点418和中间节点420的可达信息。网络控制器410可以确定将包从源节点450传输到目的节点460的最优路径。网络控制器410可以利用下文论述的已知路由技术生成数据包的路由,例如最短路径、距离、成本、链路带宽、时延、内部网关协议(Inter1r Gateway Protocol,IGP),和/或边界网关协议(Border Gateway Protocol ,BGP)以确定最优路径。正如所属领域普通技术人员将知晓,前述示例是非包含性的,并且网络控制器在确定数据包的最优路径中可以利用任意合适的路由技术。一个以上路径可以遍历网络400内的分段节点418和中间节点420。在一项示例实施例中,图4所示的分段节点418可以用作一个或多个路径内的中间节点420并且可以用作其它路径内的分段节点418。此外,图4所示的中间节点420可以用作一个或多个路径内的中间节点420并且可以用作其它路径内的分段节点418。
[0031]在另一项示例实施例中,在分段节点418处接收数据包之前,将数据包从源节点450传输至目的节点460的最优路径可以由网络控制器410预先确定。在任一示例实施例中,在确定最优路径之后,网络控制器410可以将路由信息分割成较小的路由段430。路由段430可以包括识别网络400中的链路440子集的信息,数据包应当通过该链路进行转发。路由段430的集合可以指示网络400中的每条链路440,通过链路440传输数据包经由最优路径到达目的节点460。
[0032]如图4所示,网络控制器410可以分别在分段节点418a、418b和418c中传输和设立路由段430a、430b和430c。每个分段节点418a-c可以使用路由段430来确定路由信息并将路由信息附加到传入数据包中。附加到数据包中的路由信息可以为至少一部分最优路径提供路由数据包的信息。例如,路由段430a可以指定数据包将通过链路440A、B、C和D从分段节点418a转发到分段节点418b。分段节点418a可以附加包含链路440A-D的信息的路由信息到数据包中,随后基于附加的路由信息通过链路440A转发数据包。从路由段430中获取的路由信息可以根据所属领域普通技术人员已知的任意合适的方法进行传输和附加。
[0033]路由段430a_c可以通过各种方式分发给分段节点418a_c。在一项示例实施例中,在分段节点418a接收到数据包之前,网络控制器410可以在各分段节点418a-c中传输和设立相应的路由段430a-c。网络控制器410可以基于下文参照图5更为详细地描述的分段长度“η”确定哪些网络节点是分段节点418a-c。通常,路由段430可以在接收来自源节点450的帧的第一网络节点(例如,边缘节点)中设立。在图4中,分段节点418a可以是边缘节点并且可以表示第一网络节点。此后沿数据包被转发的最优路径的每“η”个网络节点可被选为分段节点418。换言之,网络控制器410可以将路由段430a-c分发给段边界,例如由附加到数据包中的路由信息所提供的已经通过所有链路440转发的数据包所在的位置,上的分段节点418。如图4所示,路由段430可以在网络400中的分段节点418a、418b和418c中设立,其中分段长度“η”为4。其它网络节点可以是中间节点420,其可能不接收路由段430a-c。
[0034]在另一项示例实施例中,网络控制器410可以每次传输并设立分段节点418上的一个路由段430。在数据包已经通过其当前路由段430所标识的所有链路440进行转发之后,刚刚接收到数据包的分段节点418可以确定分段节点418是否拥有正确的路由信息。如果分段节点418不具有路由信息,分段节点418可以向网络控制器410请求路由信息。在接收路由段430之后,分段节点418可以将新的路由信息附加到数据包中。为了确定分段节点418是否存储合适的路由信息,分段节点418可以使用数据包内的信息,例如源地址、目的地址、先前的路由信息,输入端口等查找路由信息。一旦分段节点418获取到新的路由信息,分段节点418可以在将数据包转发给网络400中的下一分段节点418之前将先前的路由信息替换为新的路由信息。如图4所示,附加到数据包中的路由信息可以包括输出链路信息、下一跳网络节点、输出端口信息,和/或向分段节点418和/或中间节点420指示转发数据包的位置的任意其它合适的信息。
[0035]在网络400的示例实施例中,网络400可以在创建路由段430时利用严格的链路源路由。因此,路由段430可以显式描述每个特定链路440,数据包应当通过该链路进行转发。换言之,路由段430的集合可以描述数据包通过网络400从源节点450传送到目的节点460的精确路由,并且清楚地告知每个分段节点418通过哪个链路440向哪些其它分段节点418转发数据包。
[0036]在附加路由信息之后,分段节点418可以基于附加到数据包中的路由信息转发数据包。为了确定转发数据包的位置,分段节点418可以检查数据包内引用合适的路由信息的指针470。分段节点418随后可以根据路由信息所描述的且由指针470所标识的链路440转发数据包。如图4所示,将数据包从分段节点418a转发至沿路径的下一节点,例如中间节点420时,指针470指向链路440A。一旦中间节点420接收数据包,中间节点还检查指针470以从数据包中获取路由信息。中间节点420可以不使用转发表或者任意其它类型的路由表来确定如何转发数据包。指针470可以递增以指向合适的路由信息,例如链路440B。
[0037]中间节点420可以继续读取和递增附着的指针470,并相应地转发数据包直至数据包到达下一分段节点418b。分段节点418b随后可以检查指针470并确定分段节点418a附加的路由信息中没有引用其它链路。分段节点418b可以搜索和/请求来自网络控制器410的下一路由段430b,并在接收路由段430b之后,将数据包内的路由信息替换为从路由段430b中获取到的路由信息。分段节点418b随后可以以与分段节点418a类似的方式转发数据包。中间网络节点420可以如先前所论述的那样进行操作并且可以如上所述将数据包转发给下一分段节点418。
[0038]图5是数据包500的示例实施例。数据包500可以在实施本文所公开的技术,例如网络400的分段源路由,的各种示例实施例中使用。数据包500可以包括路由头510、净荷520,以及指针540。净荷520可以是用户想要通过网络,例如SDN网络100和/互联网,从源向目的地传输的任意数据,并且可以由分段节点从源节点接收。路由头510可以包括由分段节点附加到遍历路径的数据包500中的路由信息。路由头510可以是基于从网络控制器发往分段节点的路由段的路由信息。路由信息可以包括一个或多个网络链路的列表、一个或多个下一跳路由器的列表、一个或多个输出端口的列表,或者指示分段节点和/或中间节点转发数据包500的位置的任意其它合适的信息。指针540可以包括分段节点和/或中间节点所检查的用于确定路由头510中的哪个路由信息应当接着在转发数据包500时使用的指示符。
[0039]返回路由头510,路由头还可包括数据包500的完整路由路径的一段或一部分。路由段可以包括“η”条链路530,其中“η”为整数,每个路由段包括耦合网元的一个或多个网络链路的标识,相关的数据包500应当在网元之间转发。在路由头510的示例实施例中,其中数据包500应通过其传输的网络链路的总数量不能被η整除,最后一个路由段应包括“m”条链路,其中“m”为整数,并且。例如,在图4中,网络包含14条链路并且段大小为4(例如,“n” =4)。图4中最后一个路由段包含网络中剩余的链路并且大小为2(例如,“m” =2)。路由路径的每个路由段中链路530的数量,例如每个路由段的大小,可以是一种预定义的设计选择,可以由网络管理员基于网络中可用的数据开销确定,或者可以由网络控制器动态确定。路由段的总大小可以是随着每个相应网络中的数据开销量因网络而变化的临界值,并且数据业务流的设计考虑因素可能变化。
[0040]图6是用于分割和分发分段源路由信息的方法600的示例实施例的流程图。方法600可以在网络控制器,例如网络控制器200中实施。在步骤610中,方法600可以接收来自分段节点,例如分段节点418的请求以将数据包从源节点路由到目的节点。在步骤620处,方法600可以使用如上文论述的并且所属领域普通技术人员已知的任意合适的数据路由技术来确定数据包的最优路径。方法600可以生成最优路径的路由信息,其可用于识别沿路径的网络节点之间的一个或多个连接或链路。在步骤630处,方法600可以将路由信息分割成较小的路由段,例如路由段430。最优路径的路由信息可以通过划分路由信息进行分割,这样每个路由段可以是完整的最优路由信息的唯一合适子集,其中每个路由段包含的信息比所有完整的最优路由信息要少。每个路由段中存在的最优路径的链路数量可取决于给定网络中可用的数据开销量并且可随网络而不同。每个路由段中的链路数量可能大约相等,或者,最后一个路由段具有的链路可能少于先前每个路由段。在步骤640处,方法600可将路由段分发给网络中的一个或多个分段节点。方法600可以将路由段分发给段边界,例如已通过数据当前路由段中的所有链路转发并且等待描述该数据应通过其转发的其它网络链路的新路由段的数据的所处位置,上的分段节点,或者,方法600可以将第一路由段分发给网络中的第一分段节点并为了响应网络中位于段边界处的其它分段节点的请求来分发后续路由段。
[0041]图7是用于基于分段源路由转发数据包的方法700的示例实施例的流程图。方法700可以在分段节点,例如分段节点300中实施。在步骤710处,方法700可以接收来自网络控制器,例如网络控制器200的路由段,该路由段描述数据包应通过其转发的链路。在步骤720处,方法700可以接收来自网络中的先前分段节点的数据包。或者,如果方法700在接收来自先前分段节点的数据包之前未接收到来自网络控制器的路由段,则在步骤730处,方法700可以确定转发数据包所必需的路由信息是否存在于该数据内。如果此信息不在数据包内并且未从网络控制器接收,则在步骤740处,方法700可以搜索并请求合适的路由段。方法700可以使用数据包特有的信息,例如源地址、目的地址、输入端口、当前位置等,搜索路由段内的路由信息。在步骤750处,方法700可以在通过路由段中描述的下一链路转发数据包之前使用从网络控制器接收到的新路由信息覆盖或替换当前附加到数据包中的旧路由信息。在步骤760处,方法700可以检查数据包附着的指针并通过对应的网络链路将数据包转发给后续分段节点,该指针识别路由分段中的哪条链路是进行转发的下一链路。
[0042]本发明公开至少一项示例性实施例,且所属领域的普通技术人员对所述示例性实施例和/或所述示例性实施例的特征作出的变化、组合和/或修改均在本发明公开的范围内。因组合、合并和/或省略所述示例性实施例的特征而得到的替代性示例性实施例也在本发明的范围内。在明确说明数字范围或限制的情况下,此类表达范围或限制应被理解成包括在明确说明的范围或限制内具有相同大小的迭代范围或限制(例如,从约为I到约为10包括2、3、4等;大于0.10包括0.11、0.12、0.13等)。例如,只要公开具有下限Ri和上限Ru的数字范围,则明确公开了此范围内的任何数字。具体而言,在所述范围内的以下数字是明确公开的:R=Ri+k*(Ru-Ri),其中k为从1%至丨」100%范围内以1%递增的变量,即,k为1%、2%、3%、4%,5%……50%、51%、52%……95%、96%、97%、98%、99% 或 100%。此夕卜,由上文所定义的两个数字R定义的任何数字范围也是明确公开的。除非另有说明,否则术语“约”是指随后数字的±10%。相对于权利要求的任一元素使用术语“选择性地”意味着所述元素是需要的,或者所述元素是不需要的,两种替代方案均在所述权利要求的范围内。使用如“包括”、“包含”和“具有”等较广术语应被理解为提供对如“由……组成”、“基本上由……组成”以及“大体上由……组成”等较窄术语的支持。因此,保护范围不受上文所陈述的说明限制,而是由所附权利要求书界定,所述范围包含所附权利要求书的标的物的所有等效物。每一和每条权利要求作为进一步揭示内容并入说明书中,且所附权利要求书是本发明的示例实施例。对所述揭示内容中的参考进行的论述并非承认其为现有技术,尤其是具有在本申请案的在先申请优先权日期之后的【公开日】期的任何参考。本发明中所引用的所有专利、专利申请案和公开案的揭示内容特此以引用的方式并入本文本中,其提供补充本发明的示例性、程序性或其它细节。
[0043]虽然本发明中已提供若干实施例,但应理解,在不脱离本发明的精神或范围的情况下,本发明所公开的系统和方法可以以许多其他特定形式来体现。本发明的实例应被视为说明性而非限制性的,且本发明并不限于本文本所给出的细节。例如,各种元件或部件可以在另一系统中组合或合并,或者某些特征可以省略或不实施。
[0044]此外,在不脱离本发明的范围的情况下,各种实施例中描述和说明为离散或单独的技术、系统、子系统和方法可以与其它系统、模块、技术或方法进行组合或合并。展示或论述为彼此耦合或直接耦合或通信的其它项也可以采用电方式、机械方式或其它方式通过某一接口、设备或中间部件间接地耦合或通信。其他变化、替代和改变的示例可以由本领域的技术人员在不脱离本文精神和所公开的范围的情况下确定。
【主权项】
1.一种在网络控制器中实施的用于执行源路由的方法,其特征在于,所述方法包括: 接收来自网络节点的请求以确定将数据包从源节点传输至目的节点的路径; 确定将所述数据包从所述源节点传输至所述目的节点的所述路径; 将所述路径的描述分割成多个路由段;以及 将所述路由段分发给一个或多网络节点以将路由信息附加到所述数据包中, 其中所述网络节点使用所述附加的路由信息并且在不使用转发表的情况下路由所述数据包,以及 每个所述路由段描述了所述路径的一部分。2.根据权利要求1所述的方法,其特征在于,所述路由段包括多个用于转发所述数据包的链路;划分所述路径的所述描述包括形成描述所述链路的第一部分的第一路由段,所述数据包将通过所述链路的所述第一部分转发,以及描述所述链路的第二部分的第二路由段,所述数据包将通过所述链路的上述第二部分转发。3.根据权利要求2所述的方法,其特征在于,所述第一路由段中的连接数量不等于所述第二路由段中的连接数量。4.根据权利要求1所述的方法,其特征在于,所述附加的路由信息指示与所述路径关联的多条链路,所述数据包包括数据净荷、一条或多条链路,以及引用所述链路的指针。5.根据权利要求1所述的方法,其特征在于,分发所述路由段包括向所述网络中位于段边界的每个网络节点发送所述路由段,接收所述路由段的所述网络节点基于分段长度变量。6.根据权利要求5所述的方法,其特征在于,分发所述路由段包括同时向所述网络中位于段边界的每个分段节点发送所述路由段。7.根据权利要求5所述的方法,其特征在于,分发所述路由段包括向所述网络中位于第一段边界的第一分段节点发送第一路由段,以及向所述网络中位于第二段边界的第二分段节点发送第二路由段,所述第一分段节点和所述第二分段节点之间的网络节点数量由所述分段长度变量确定。8.—种包括存储在非瞬时计算机可读介质上的计算机可执行指令的计算机程序产品,其特征在于,当处理器执行所述计算机可执行指令时,使所述处理器执行以下操作: 确定将数据包从源节点转发至目的节点的完整路由; 将所述完整路由的描述分割成多个路由段; 获取段长度变量,所述段长度变量确定沿所述完整路径的每个分段节点之间的中间节点数量;以及 将所述路由段分发给所述分段节点, 其中所述分段节点基于所述路由段将路由信息附加到所述数据包中,以及 所述中间节点使用所述附加的路由信息并且在不使用转发表的情况下转发所述数据包。9.根据权利要求8所述的计算机程序产品,其特征在于,将所述路由段分发给所述分段节点包括同时向所述网络中位于段边界的每个分段节点发送所述路由段。10.根据权利要求8所述的计算机程序产品,其特征在于,存储在非瞬时计算机可读介质上的所述指令还使所述处理器基于所述分段长度变量选择沿所述路径的所述分段节点,所述分段长度变量指示每个路由段的网络链路的数量。11.根据权利要求8所述的计算机程序产品,其特征在于,将所述完整路由的所述描述分割成多个路由段包括形成描述路由的第一部分的第一路由段,所述数据包将通过所述路由的所述第一部分转发,以及描述所述路由的第二部分的第二路由段,所述数据包将通过所述路由的所述第二部分转发。12.根据权利要求11所述的计算机程序产品,其特征在于,所述第一路由段中的链路数量大于所述第二路由段中的链路数量。13.根据权利要求8所述的计算机程序产品,其特征在于,存储在非瞬时计算机可读介质上的所述指令还使所述处理器生成第二数据包的第二路径,所述路径上的第一分段节点是所述第二路径的一部分,所述第一分段节点不接收所述第二路径对应的路由段。14.根据权利要求13所述的计算机程序产品,其特征在于,所述路径上的第一中间节点是所述第二路径的一部分,所述第一中间节点接收所述第二路径对应的路由段。15.—种在网络节点中实施的用于执行分段源路由的方法,其特征在于,所述方法包括: 接收数据包; 检查引用附加到所述数据包中的路由信息的指针;以及 根据所述指针引用的路由信息转发所述数据包, 其中所述路由信息表示用于将所述数据包从源节点路由至目的节点的所有路由信息的一部分,以及 在使用转发表的情况下转发所述数据包。16.根据权利要求15所述的方法,其特征在于,所述数据包包括数据净荷、用于路由所述数据包的链路的列表,以及引用转发所述数据包的所述下一链路的所述指针。17.根据权利要求15所述的方法,其特征在于,还包括接收路由段,所述路由段包括用于将所述数据包从所述源节点转发至所述目的节点的所述路由信息的一部分。18.根据权利要求17所述的方法,其特征在于,还包括无法在所述网络节点内定位所述数据包对应的合适的路由信息时,请求用于转发所述数据包的所述路由段。19.根据权利要求17所述的方法,其特征在于,所述网络节点接收第一路径的路由段,但不接收第二路径的路由段。20.根据权利要求15所述的方法,其特征在于,还包括接收指示转发所述数据包的所述链路的路由段并且将附加到所述数据包中的所述路由信息替换为从所述路由段中获取的第二路由信息。
【文档编号】H04L12/701GK105850082SQ201480046785
【公开日】2016年8月10日
【申请日】2014年8月20日
【发明人】宋浩宇
【申请人】华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1