用于加速软件定义网络中的转发的方法和设备的制造方法_4

文档序号:8386214阅读:来源:国知局
具有相同的匹配部分(正方形/三角形/正方形)来指示的。在圆圈‘10’,将第二分组132与流表116A-116N进行比较,并且第二分组132将与通过流条目修改消息130刚刚插入(但没有描绘)的新添加的流条目匹配。因此,将通过在圆圈‘11’处利用一个或多个网络接口 108转发第二分组132来对第二分组132执行该新添加的流条目的动作的集合(由‘F’表示),并将不需要检查⑶RT 118。
[0063]尽管该第二分组132的处理与属于传统SDN中的建立的流的分组(B卩,在流表中未命中的分组)的处理类似,但是关于流的第一分组130的处理和在第一分组130之后短时间到达的流的其它分组的处理清楚地示出一个关键差异。在传统SDN环境中,第一分组130将在流表(例如,116A)的集合中未命中,并且将被转发到控制器以进行分析。在该时间期间,属于该流的随后分组可以到达,并且可以类似地发送给控制器(并且可能被转发平面丢掉)。该过程在转发平面中继续,直到控制器能够用具有标识和处理该流的分组的能力的一个或多个额外流表条目对转发平面进行编程为止。但是,在本发明的实施例以及图1中所标识的实施例中,虽然流的前几个分组将在流表116A-116N中未命中,但是仍可以因为⑶RT 118的⑶RT条目143中的动作146的集合而立即进行处理。类似地,描述这些分组的信息(例如,分组部分149和未示出的其它分组相关的遥测数据)将保存在PMT 120中,并且只有当控制器(即,控制模块104)搜索该信息时才将该信息传送到控制器。此外,可以将聚合在只有几个网络消息中的来自PMT 120的该未处理条目148信息发送到控制器。因此,在本发明的这类实施例中,能够立即处理流的所述前几个分组,并且控制器和网络不会被与“未知”分组有关的控制业务淹没。
[0064]图2示出根据本发明一个实施例由软件定义网络中的转发平面执行以便加速转发的流程200。将参考其它流程图的示例性实施例来描述该流程图和其它流程图的操作。但是,应了解,这些流程图的操作可以通过参考这些其它图所论述的实施例以外的本发明的实施例来执行,并且参考这些其它图论述的本发明的实施例可以执行与参考这些流程图所论述的操作不同的操作。尽管图中的流程图示出由本发明的某些实施例执行的特定操作顺序,但是应了解,这样的顺序是示例性的(例如,备选实施例可以按不同的顺序执行这些操作,将某些操作加以组合,重叠某些操作,等等)。
[0065]在210,转发平面接收第一分组,然后确定第一分组是否与一个或多个流表的集合内的任何流条目匹配(220)。流表的集合包括一个或多个流条目的集合,每个流条目包括将对照入局分组的匹配部分进行匹配的匹配准则以及将对具有与该流条目的匹配准则匹配的所述匹配部分的分组执行的一个或多个动作的集合。
[0066]响应于确定第一分组不与流表的集合内的任何流条目匹配,转发平面执行未命中过程(230)。在一个实施例中,该未命中过程240包括在分组未命中表(PMT)中插入第一分组的至少一部分作为第一条目(250)。PMT存储由转发平面所接收的不与流表的集合250的任何流条目匹配的分组的部分(250)。在一些实施例中,对于发现为不与流表的集合内的任何流条目匹配的每个分组进行该插入;但是,在一些实施例中,当在PMT中不存在描述该分组的任何条目时,进行到PMT中的插入。在这些实施例中,当接收在流表的集合中未命中的分组时,未命中过程240包括基于该分组更新PMT中的第一条目的至少一部分(255)。该更新可以包括:更新第一条目中指示该条目表示多少个分组(即,转发平面接收由该条目所描述的在流表中“未命中”的多少个分组)的计数器,更新指示接收与该PMT条目匹配的上一个分组的时间的“上一次接收”时间,等等。
[0067]在260,一旦软件定义网络中的控制器寻求对PMT的第一条目的存取,转发平面便向控制器提供所述存取(260 )。在本发明的一些实施例中,转发平面通过从控制器接收指示对PMT的一个或多个未处理条目的拉请求的拉条目请求消息(270)来检测控制器寻求所述存取。在本发明的一些实施例中,转发平面通过以下方法来向控制器提供对PMT的第一条目的存取:响应于拉条目请求消息的接收,向控制器传送包括PMT的第一条目的拉条目响应消息(280)。
[0068]图3示出根据本发明一个实施例由软件定义网络中的转发平面执行以便加速转发的未命中过程300。该未命中过程300示出图2的未命中过程240的一个可能实施例。
[0069]在210,转发平面将第一分组与可配置默认规则表(⑶RT)的一个或多个条目的集合进行比较。该比较通过确定第一分组的匹配部分是否与来自条目的集合中的任何条目的⑶RT匹配准则匹配来进行(310)。⑶RT的每个条目包括将用于确定分组是否与该条目匹配的⑶RT匹配准则。在一些实施例中,⑶RT的每个条目还包括指示如何在PMT中为具有与该条目的CDRT匹配准则匹配的匹配部分的分组构造条目的格式说明符。
[0070]然后,转发平面确定第一分组的匹配部分的确与⑶RT的第一条目的⑶RT匹配准则匹配(320)。通过⑶RT的第一条目的格式说明符确定在PMT中作为第一条目插入的第一分组的部分。然后,转发平面执行CDRT的匹配的第一条目的默认动作的集合,从而使得转发第一分组,而不管第一分组不与流表的集合的任何流条目匹配(330)。接着,如刚刚在图2中,转发平面在分组未命中表(PMT)中插入第一分组的至少一部分作为第一条目(250)。PMT存储由网络元件所接收的不与流表的集合的任何流条目匹配的分组的部分。
[0071]图4示出根据本发明一个实施例由软件定义网络中的控制器执行以便加速转发的流程400。在本发明的一些实施例中,控制器执行可配置默认规则表配置,这将在图5中进一步详述。
[0072]在420,控制器存取充当软件定义网络中的转发平面的网络元件的分组未命中表(PMT)的未处理条目。PMT的每个条目存储由该网络元件所接收的不与该网络元件的一个或多个流表的集合内的任何条目匹配的分组的部分。流表的集合包括一个或多个流条目的集合,每个流条目包括将对照入局分组的匹配部分进行匹配的匹配准则。流条目的集合中的每个流条目还包括将对具有与该条目的匹配准则匹配的匹配部分的分组执行的一个或多个动作的集合。
[0073]在本发明的一些实施例中,控制器通过向网络元件传送指示对PMT的未处理条目的拉请求的拉条目请求消息(422)来执行存取。在一些实施例中,控制器接着从网络元件接收包括PMT的一个或多个未处理条目的集合的拉条目响应消息(424)。
[0074]在430,响应于所述存取,控制器使得网络元件将一个或多个流条目的集合插入到流表的集合中的一个或多个流表中。在本发明的一些实施例中,这通过控制器向网络元件传送指示将流条目的集合插入到流表的集合中的所述一个或多个流表中的命令的流条目修改消息(432)来进行。
[0075]图5示出根据本发明一个实施例由软件定义网络中的控制器执行以便加速转发的可配置默认规则表配置过程500。在本发明的一个实施例中,控制器首先通过确定充当软件定义网络中的转发平面的网络元件的装置类型(510)来执行可配置默认规则表(CDRT)配置410。
[0076]接着,控制器向网络元件传送可配置默认规则表修改消息以使得网络元件在可配置默认规则表(CDRT )中配置一个或多个条目的集合(520 )。条目集合中的这些条目是基于确定的装置类型确定的。因此,一旦接收不与流表的集合的任何流条目匹配的分组,网络元件便由此配置成确定分组与⑶RT条目的第一⑶RT条目匹配,执行由第一⑶RT条目所指定的一个或多个动作的集合,并在PMT中插入第一分组的至少一部分作为第一条目(520)。
[0077]可配置默认规则表配置选项
如之前所述,可配置默认规则表(⑶RT)包括⑶RT条目143,所述⑶RT条目143包含对于在流表116A-116N中“未命中”的分组指定处理决定的一个或多个默认动作146。对于默认动作146是什么有很多种可能性。例如,如果转发装置(即,网络元件112)的装置类型是以太网交换装置,那么有用的默认动作可以是将匹配分组转发到与分组相同的虚拟局域网(VLAN)中的所有端口。或者,如果所编程的转发装置的装置类型是路由装置,那么有用的默认动作可以是将分组转发给特定子网内的所有成员。如果装置类型是防火墙,那么有用的默认动作可以是丢掉分组,其配置转发元件以便选择稳妥的做法。此外,如果所编程的转发元件的装置类型是负载平衡装置,那么默认动作可以命令转发元件根据诸如循环法、随机选择等的特定负载分配方案分配负载(也许通过利用CDRT条目143中的非常广泛的CDRT匹配准则144以便与各种业务匹配)。
[0078]分鉬未命中表实现诜项
在本发明的一些实施例中,可以使分组未命中表(PMT) 120对于控制模块104来说看起来像是环形缓冲器,这将使得控制模块104无需重置它的行计数器,并且这可使得底层硬件无需明确地移除已经由控制器处理的行。在其它实施例中,PMT 120可以利用递增行计数器和换行(wrap)来简单地实现。在这个情况下,网络元件112可以通过将新内容写入到由行计数器所指示的下一行并将行计数器递增来创建新行(如果没有当前对应的条目的话)。因此,控制模块104没有理由将行标记为“经过处理”,除非控制模块104中的实现本身利用该信息——硬件将覆写下一行,而不管它是否正在进行处理或者已经被处理。但是,该方法多半与利用哈希过程来确定是否存在匹配条目并放置新条目的方法不兼容。
[0079]在其它实施例中,网络元件112实现哈希算法以便选择要写入假定的“新”条目的PMT 120的行。如果使用该方法,那么网络元件112避免检查是否存在条目的需要,因为如果存在,那么哈希算法应当是将使得这样的条目覆写现有的相同条目的算法。在利用该方法的实施例中,存在将出现哈希冲突的可计算概率,由此使得条目被不相同的另一个条目覆写。但是,当控制器对条目进行处理时,随后冲突的概率则会降低。除了选择确保条目必定会取代它本身的哈希算法外,还应选择哈希算法(并且可能提供多个备选算法)以使得对于为此目的分配的数据平面本地存储器而言冲突的概率最低。
[0080]另外,一个优点是(特别是在控制模块104与数据平面151并置的情况下)使底层硬件以允许控制模块104容易地确定它已经处理所有现有条目的方式向控制模块104提供在PMT 120中建立了新条目的某种通知。这可以采用任意数量的方式来实现,但是避免不断打断控制模块104的一个实施例是具有计数器,该计数器保留自从控制模块104上一次读取计数器以来由数据平面151处理(即,分组处理模块114)所创建的新条目的数量。在这些实施例中,计数器在读取时重置。
[0081]每个PMT条目147可以按多种可能的方式组织。例如,在一个实施例中,每个PMT条目147包含未图示的接收上下文的形式(例如,在其上接收对应分组的端口)以及分组的前N个位/字节(S卩,分组部分149),其中N的值是实现选择。但是,在其它实施例中,通过使用更复杂的行语义来实现更大效率,其中除了所存储的接收上下文以外,还存在具有有限数量的“公知”(由数据和控制平面共同了解)格式的格式说明符(或到格式说明表的索引)。该格式说明符伴随有与根据格式说明符格式化的每个格式相关联的密钥内容。在某些实施例中,PMT条目147内容的顺序并不特别,并且因此PMT条目120中的字段可以按照任何顺序排序。在某些实施例中,格式说明符包括在常见的以太网帧报头、IPv4和IPv6报头、TCP和用户数据报协议(UDP)端口号等以及它们的某些组合中的密钥字段的格式。
[0082]另外,用于将信息从PMT 120拉到控制模块104的机制存在许多选项。由实现器来决定特定实现将利用什么种类的协议/机制来将分组从数据平面151的PMT 120拉到控制模块104。但是,重要的是,与诸如OpenFlow的现有解决方案相比,协议的特定实现考虑控制模块104与数据平面151之间的增加的分组流的成本。具体来说,实现器应当在决定用于从数据平面151拉PMT 120信息的优选机制时考虑以下四点:
(1)控制模块104的处理能力和软件体系结构是什么?
(2)转发元件和控制模块104中可用的缓冲器的数量是多少?
(3)控制平面150和数据平面151是否并置?例如,在底座的管理卡充当控制模块104并且一个或多个线卡充当数据平面151的情况下,控制平面150和数据平面151并置,并且两者之间的信令可能具有相对较低的成本。另外,在控制平面150和数据平面151并置的情况下,实现器可以利用诸如直接存储器存取(DMA)的机制来从数据平面151拉分组。
[0083](4)控制模块104是否网络中的独立节点?在这个情况下,重要的是考虑控制模块104与特定控制模块104正在控制的那些数量的转发节点之间的网络。在控制模块104是独立网络节点的情况下,实现器可以选择实现允许批处理由控制模块104所检索的信息的某个协议。该协
当前第4页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1