与具有转发功能的电子设备的网络转发平面有关的实现规范的制作方法_2

文档序号:9291641阅读:来源:国知局
130。应理解网络100 仅用于说明目的,以及适合于与在此所述的示例性实施例一起使用的网络可以具有任何数 目的节点。节点110、120、130可以是电子设备,诸如个人计算机、平板电脑、服务器、路由 器、交换机或定制电子网络设备等其它能力。例如,第一节点110、第二节点120和第三节点 130可以是具有转发功能的设备,使得节点110、120和130能接收入站接口的进入信息、处 理信息来确定信息的下一目的地、以及将信息转发到出站接口的下一目的地。
[0033] 根据示例性实施例,网络100可以包括控制器140,用于与第一节点110、第二节点 120和第三节点130通信。如图1所示,控制器140可以直接或间接地连接到节点110、120、 130〇
[0034] 控制器140可以能发出命令和/或制定将由节点110、120和130执行或应用的规 贝1J。例如,控制器140可以以硬件或软件实现网络转发逻辑,其确定节点110、120、130的转 发平面应当如何转发所接收的消息。
[0035] 控制器140可以通过制定设备模型、子模型或联网原语和将模型、子模型或原语 转发到节点110、120、130来控制节点110、120、130的转发平面。联网原语可以表示分配节 点110、120、130的基本联网功能,诸如"实现轮询调度"。子模型可以表示提供能由不同设 备使用的功能的划分或模块化组的网络原语的集合。模型可以表示共同定义或描述实现该 模型的设备的期望联网行为的子模型或原语的集合。因此,模型可以描述用于设备的转发 平面的期望行为。在下文中关于图6详细地讨论模型、子模型和原语。
[0036] 不同模型、子模型或原语可以发送到节点110、120和130中的每一个或节点110、 120、130可以被发送相同或覆盖模型、子模型或原语。
[0037] 使用图1中所述的配置,控制器140可以充当能控制网络100中的路由或转发策 略的集中机构。由此,网络管理者可以改变控制器140的转发策略,其然后指示个体节点 110、120、130实现何种策略。替选地或附加地,控制器140可以基于预定因素或通过监视网 络100的状态来动态地设置转发策略。
[0038] 为了实现节点110、120、130的期望行为,控制器可以制定规则,诸如网络路由规 则和/或网络转发规则,并且将规则发送到节点110、120、130。在图2中示出了示例性网络 转发规则200。
[0039] 网络转发规则200可以描述在某些条件下、诸如在接收到进入数据包时节点的期 望行为。可以根据一个或多个函数标识符210来指定期望行为。函数标识符210可以识别 表示执行一个或多个任务的所定义的过程或步骤的集合的函数。由函数标识符210识别的 函数可以是算法、源代码、程序或子程序、例程或子例程、过程或方法(诸如Java方法)等 其他可能。
[0040] 函数标识符210 (例如函数名)可以提供将由函数实现的期望功能的高级描述。然 而,可以存在实现由函数标识符210建议的功能的许多方式。例如,如果函数标识符210建 议该函数对列表排序(例如函数标识符210是" S〇rt_list"),则该函数能使用许多不同公 知的排序算法(例如冒泡排序、插入排序、快速排序等等)来实现列表排序。
[0041] 如果实现网络转发规则200的转发设备可以或可以不具有网络转发规则200的本 原预定实现或由函数标识符210识别的函数,由控制器创建规则200。因此,在转发设备不 本原地实现规则规则200或由函数标识符210识别的函数的情况下,可以在网络转发规则 200中指定缺省或通用实现220。缺省或通用实现可以是由实现由函数标识符210建议的 功能的控制器提供的推荐算法。
[0042] 然而,如果转发设备本原地实现规则200或由函数标识符210识别的函数的预定 版本,与通用或缺省实现220相比,本原预定实现可以更有效或者更改进。因此,网络转发 规则200提供指定通用或缺省实现220是否可以被覆盖的"可覆盖? "标志230。如果将 "可覆盖? "标志230设置为"是"或"1",例如,则转发设备可以忽略通用或缺省实现220, 以使用转发设备的预定本原实现的实现来取代。如果将"可覆盖? "标志230设置为"否" 或"〇",则转发设备可以不忽略由控制器建议的实现220并且可以使用实现220,代替由转 发设备实现的本原实现。
[0043] -个或多个网络转发规则200可以收集在可以从控制器发送到具有转发功能的 一个或多个设备的网络转发规则的规范中。网络转发规则的集合可以封装为模型或子模 型。这样的集合可以由共同标识符识别。个体网络转发规则200也可以由个体标识符识别, 以及规则200内的函数也可以由函数标识符210识别。
[0044] 上述标识符中的任何一个可以用来提供有关将由函数、规则、模型或子模型实现 的期望作用或功能的提示。例如,一个共同执行的任务是找到路由表中的子网掩码的最长 前缀匹配。通过命名函数,例如"l〇ng est_prefiX_match"或"LPM",控制器可以提供该函数 提供执行该通用任务的算法的实现的提示。
[0045] 因此,实现接收该函数、规则、模型或子模型的转发功能的转发设备可以分析函 数、规则、模型或子模型的标识符。转发设备可以分析用于该提示的标识符,诸如与建议将 由函数、规则、模型或子模型执行的作用或功能的标识符有关的语义信息。除标识符外,诸 如函数、规则、模型或子模型的头部的指定位置中的其他信息。
[0046] 在识别与标识符有关的提示后,可以将该提示与描述由转发设备本原实现的预定 功能的数据库中的标识符相比。例如,图3描述由转发设备本原实现的功能的实现数据库 300。应注意到尽管图3中的实现数据库300涉及函数,也可以在实现数据库300或另一数 据库中提供与规则、模型和子模型有关的信息。
[0047] 实现数据库300可以存在于转发设备。替选地,实现数据库300可以存在于远离 转发设备的位置,并且可以由转发设备经由网络访问。
[0048] 实现数据库300可以提供用于由与实现数据库300相关联的转发设备本原实现的 一个或多个函数的实现细节。实现细节可以基于函数标识符索引。例如,实现数据库300 可以包括用于第一函数的标识符310和实现312、用于第二函数的标识符320和实现322、 以及用于第三函数的标识符330和实现332。实现312、322、332提供用于实现由函数ID 310、320、330描述的功能的细节(例如算法)。实现312、322、332可以以编译模式存储,使 得能由转发设备执行实现312、322、332,而不需要编译实现312、322、332。
[0049] 在接收包括函数的规则后,转发设备可以分析用于实现如上所述的提示的规则 或函数。例如,可以从规则或函数提取语义信息并且将其与函数标识符310、320、330比 较来确定在提示和函数标识符310、320、330中的一个或多个之间是否存在紧密匹配。匹 配不需要是精确匹配。例如,提示可以指定用在规则中的函数实现"l〇nge St_prefiX_ match"。这样的提示可以匹配到与标识符"longest_prefix_match"(例如精确匹配)或 " longest-pref ix-match"或"LPM"或该标识符的变体相关联的实现数据库300中的函数。
[0050] 如果在实现数据库300中识别用于该规则或函数的匹配,则与实现数据库300相 关联的转发设备可以使用本原实现312、322、332,代替由从控制器发送的规则建议的实现。 在下文中参考图4描述这样的过程。
[0051] 在步骤410,实现转发功能的转发设备可以从控制器接收规范。规范可以包括利用 该函数的规则。在一些实施例中,规范可以指定与诸如子模型标识符或模型标识符的提示 相关联的子模型或模型,包括规则和/或联网原语的集合。
[0052] 在步骤415,转发设备可以检查规则和/或函数来确定该函数是否可被覆盖。例 如,转发设备可以检查规则和/或函数的"可覆盖?"标志的存在。
[0053] 如果在步骤415发现规则或函数可覆盖,则在步骤420转发设备可以将在规范中 指定的函数、规则、模型或子模型与由转发设备本原实现的已知函数、规则、模型或子模型 的列表进行比较。例如,已知函数、规则、模型或子模型的列表可以存储在由标识符索引的 实现数据库中。在步骤430,可以在数据库中查找(例如通过散列在规范中指定的函数、规 贝1J、模型或子模型)在规范中指定的函数、规则、模型或子模型来确定相应的本原实现是否 存在于实现数据库中。
[0054] 如果在步骤415未发现函数可覆盖,则处理可以进行到步骤450。<
当前第2页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1