压缩的源路由编码的制作方法_2

文档序号:9732413阅读:来源:国知局
,如图4所示,符号“M”被分配给链路201,符号“C"被分配给链路204,符号“I”被分配给链路207。
[0031]返回参照图3,中央控制器210给指示符分配可变长度的压缩码字。分配的码字的长度取决于,例如,网络互连上网络业务流量发生的概率,网络互连例如是分配了指示符的网络链路或接口。以减少指示符的数量的方式将该指示符分配给网络接口和链路。对于每个指示符或符号,分配给该指示符的所有互连的容量加在一起生成总容量。一种算法,如香农-法诺(Shannon-Fano)算法,霍夫曼(Huffman)编码算法,或其他算术算法可以被用来确定用于每个指示符的相关容量的可变长度的压缩码字。在另外一些实施例中,可变长度的压缩码字可以对应一些其他的参数,如相关互连上的历史业务流量或者预测的未来业务流量。可以采用任意合适的过程来压缩。
[0032]给上述互连分配码字基于,例如,使整个网络的或者特定链路上的平均报头长度最小化的准则。为此,例如,如图3所示,最短的码字分配给与最大容量相关的符号或者其他参数,并且较大的码字分配给较小容量相关的符号或者其他参数。根据一些实施例,上述参数可以基于从接口容量推断出来的网络互连上的网络业务流量发生的统计概率。在另一些实施例中,上述准则可以从另外的参数推断出来,例如相关互连上的历史业务流量或者预测的未来业务流量。
[0033]附加的可变长度的码字可以分配给特殊解码或者数据包处理动作。例如,如图3所示,码字可以分配给代表下一跳(“NxtHop”)的动作,以及代表路由列表结束(“Exit”)的动作。在一些实施例中,中央控制器210分配相同的码字值给链路两端的接口,如端口。当基于链路转发时,可以通过改变报头中的链路顺序来创建反向路由路径列表,同时获取遍历的跳数,有利地实现路径反向,而不影响报头的大小。源节点将特殊解码或者数据包处理动作码字插入到路由路径中以生成目的报头。
[0034]特殊解码动作通常与跳列表的结构有关。根据本发明的一些实施例,特殊解码动作包括创建和/或保持到路径上的下一跳的指针,反向跳列表的开始,遍历的路径列表的开始,或者目前为止遍历的跳列表,反向跳列表的结束,遍历的路径列表的结束,和/或路由路径列表的结束。与源路由报头相反,数据包处理动作用于指示该数据包是否应该基于数据包内容本地处理。数据包处理动作包括,例如,移除该源路由报头并且本地处理数据包,可产生的结果是,例如,I)将数据包当做操作、管理和维护(OAM)数据包,2)基于嵌入的报头转发数据包,3)将数据包发送给网络控制器,4)丢弃数据包,和/或5)增加一个或多个计数器值。
[0035]在一个实施例中,选择或者生成压缩的可变长度的码字集,以实现全局编码最优化的方案。中央控制器210配置用于自动发现网络的网络拓扑以及收集所有节点,接口和连接节点之间链路的信息,包括链路容量及其他参数,如历史业务流量,或预测的未来业务流量。利用与未来网络扩张有关的网络规划数据,可以增强拓扑。
[0036]中央控制器210选择压缩的可变长度的码字集,以代表在其上可以转发业务的接口。在构建数据包报头中使用码字集。最佳化可以考虑链路或接口的各自的容量、历史流量或者预测的流量。在一些实施例中,以这样的方式选择码字可以减小整个网络212的平均报头长度。在一个可选的实施例中,选择码字以减少网络212中特定链路或者链路子集的报头长度。
[0037]例如,可变长度的码字可以基于每个互连将来可能要携带的统计的数据包的可能数量来进行分配。在一些实施例中,可能性可以由接口容量或其他拓扑信息推导出来,例如,基于现有的或预期的业务流量的当前或计划的接口利用率。在一个可选的实施例中,多个互连被分配不同的码字,以识别它们还没有被处理或者它们已经被处理,以消除用特殊码字来代表下一跳的需求。
[0038]中央控制器210下载或发送码字列表连同来自每个码字的映射给所有节点,以通过特定的本地接口的方式转发数据包或者执行另一解码或数据包处理动作。在一个可选的实施例中,对于每个网络节点,中央控制器仅下载或发送码字的子集给各个单独的节点,例如与那个节点相关的码字集而非整个码字集。
[0039]因此,为了分配可变长度的压缩的接口标识符,中央控制器210可以执行下述示例性过程,或者伪代码:
[0040]加权图形-着色算法优化符号到链路或接口的分配;
[0041]对于每个颜色,将分配给该颜色的所有链路的容量进行累计;
[0042]霍夫曼编码算法为每个颜色的相关容量寻找最佳可变-长度的压缩的接口标识符;以及
[0043]中央控制器210下载所有压缩的可变-长度的代码列表连同到接口标识符或者特殊动作的映射给每个节点。
[0044]再次参照图2,可以理解的是中央控制器210将源路由路径编码提供给用于业务流的源节点。例如,如图3-4所示,从链路201到链路209的路由路径可以通过下述指示符列表来表示:
[0045]MFBCABIAF
[0046]等同地,从链路201到链路209的路由路径可以通过下述码字列表来表示:
[0047]00101-0110-101-1110-110-101-10011-110-0110
[0048]在插入路由路径到报头之前,源节点201可选地添加一个或多个特殊动作码字到路由列表。参照图5,例如源节点2 OI可选地添加映射到下一跳(“Hx t Ho p”)和列表结束(“Exit”)特殊动作的码字,以生成通过下述指示符列表来表示的源路由列表或报头:
[0049]NxtHop MFBCABIAF Exit
[0050]或者,等同地,通过下述码字列表来表示:
[0051 ] 11110000-00101-0110-101-1110-110-101-10011-110-0110-11110001
[0052]基于全局分配的码字(如图3所示)以及基于图4分配给链路的符号,所述示例性的报头包括码字来表示本地接口以及特殊解码或数据包处理动作。在链路201的源节点插入在数据包的报头中编码的编码后的源路由路径。一个示例性的数据包,如图6所示。该数据包包括数据,或有效负载,分段601,以及报头分段602。编码后的源路由路径603被嵌入报头分段602。
[0053]每个节点查看代码,也就是说,每个节点解码编码了源路由路径的数据包报头。该节点根据下述过程、或伪代码向前执行:
[0054]若代码表示本地接口标示符,则节点:
[0055]从所述路由路径移除或弹出所述码字,
[0056]添加弹出的代码到路径反向列表(若链路两端的接口标识符相同,还获取反向链路列表),或者
[0057]添加接收数据包的接口的端口代码至反向列表,
[0058]转换预-处理端口/接口代码为等同的后-处理端口 /接口代码值以指示其已经被处理过;
[0059]若代码代表特殊动作,则执行对应的动作。
[0060]因此,随着数据包遍历网络,在路由列表中指示的每一跳之后,每个后继节点,可选地,从路由路径弹出或移除最近完成的跳,或互连。接着,每个后继节点,可选地,添加完成的跳至遍历的跳列表,和/或反向路由路径列表。可选地,如果对应链路两端的接口不具有相同的码字,则节点添加接收数据包的接口对应的码字至反向路由路径列表。
[0061 ]接着,每个节点解码报头中的下一个码字。可选地,在特定接口转发数据包之前,每个节点将预-处理接口码字转换成等同的后-处理接口码字值,以指示该码字已经被处理。若码字代表一特殊解码或者数据包处理动作,则对应的动作被执行。否则,若码字代表转发至本地接口,节点随后在对应下一个码字的接口上转发数据包,以朝下一跳发送数据包。
[0062]现在参照图7,图2中的中央网络控制器210可以执行该过程流,以实现本公开内容中描述的用于编码源路由的方法的实施例。该过程始于方框701,其中发现或识别通信网络节点和互连,包括例如链路和接口。在方框702,如上所述,指示符被分配给与网络中每个节点相关的互连。
[0063]在方框703,如上所说明的,确定关于每个互连的最优化参数的值,所述最优化参数例如容量、历史业务流量、或预测的未来业务流量。如上所述,在方框704,生成码字,以及在方框705,码字分配给指示符,或者与指示符关联。如上所述,在方框706,将码字映射到网络接口,如与节点相关联的本地端口号。例如,可变长度的码字可以被最优化,以编码用于在网络上转发数据包的网络接口或链路。
[0064]如上所说明的,在方框707,附加码字可选地可以被映射到特殊动作。如上所述,在方框708,映射被发送到每个网络节点。当然,如上所说明的,在一个可选的实施例中,中央控制器仅下载码字的子集给各个单独的节点。如上所述,在方框709,编译从网络源节点到网络目的节点的编码后的源路由路径。在方框710,发送路由路径至源节点。
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1