数据分组修改方法和相关网络装置与流程

文档序号:11156498
数据分组修改方法和相关网络装置与制造工艺

本发明有关于数据网络,更具体来说,有关于数据分组灵活的信息映射和修改的数据分组修改方法和相关网络装置。



背景技术:

除非另有说明,否则本部分中描述的方法不是后文权利要求的现有技术,也不因包含在本部分中而被认为是现有技术。

计算机网络或者数据网络中的数据通信通常涉及将所有已传送的数据分组为合适大小的模块,本文中称为“数据分组”或“分组”(二者可互换),它们经由可由多个同时的通信会话共享的介质上传送。数据分组一般由报头和有效载荷组成。报头中的信息被网络硬件用于将分组指向其目的地。有效载荷被(例如应用软件)提取并使用。

在如今复杂的网络环境下,很多时候数据分组可被在利用不同格式和协议的网络域中传送。在传统的方法中,数据分组通常以固定的方式被修改,例如,将数据分组的格式从一种格式转化或以其他方式转换为另一种。图7A和图7B中的每一个均是传统的数据分组修改方法示意图。请参考图7A,第一网络装置的入口数据分组700可通过复制外报头的给定位置或域的值并将其复制在内报头的相同位置或域来进行修改。请参考图7B,第二网络装置的入口数据分组750(可为上述修改后的数据分组700),可通过复制内报头的给定位置或域的值并将其复制在外报头的相同位置或域来进行修改。



技术实现要素:

有鉴于此,本发明特提供以下技术方案:

本发明实施例提供一种数据分组修改方法,包含接收数据分组;修改上述数据分组的一个或多个属性,修改包含:自数据分组撷取信息,信息包含数据分组的报头中的一个或多个用户定义域;依据一个或多个用户定义域中的至少 一个用户定义域定义一个或多个源用户定义域;以及对于一个或多个源用户定义域中的至少一个源用户定义域执行一个或多个操作;以及输出修改后的数据分组。

本发明实施例又提供一种数据分组修改方法,包含接收数据分组;储存数据分组;解析数据分组以自数据分组撷取信息,信息包含数据分组的报头中的一个或多个用户定义域;依据一个或多个用户定义域中的至少一个用户定义域定义一个或多个源用户定义域;储存一个或多个源用户定义域;通过多个流量表处理一个或多个用户定义域以及一个或多个源用户定义域,以及依据一个或多个操作命令以管线形式对于一个或多个源用户定义域中的至少一个源用户定义域执行多个操作,其中多个流量表用于识别一个或多个操作命令;储存一个或多个操作命令;依据所储存的一个或多个操作命令以及所储存的一个或多个源用户定义域修改数据分组的一个或多个属性;以及输出修改后的数据分组。

本发明实施例又提供一种网络装置,包含分组交换器,接收数据分组,以及输出数据分组的修改后的版本,分组交换器包含:解析器,解析数据分组,以自数据分组撷取信息,信息包含数据分组的报头中的一个或多个用户定义域,解析器也依据一个或多个用户定义域中的至少一个用户定义域定义一个或多个源用户定义域;储存装置,储存多个流量表,多个流量表识别一个或多个操作命令,并依据一个或多个操作命令对于一个或多个源用户定义域中的至少一个源用户定义域执行多个操作;命令收集器,自多个流量表接收并储存一个或多个操作命令;分组缓冲器,储存数据分组;重写数据向量器,自解析器接收并储存一个或多个源用户定义域;以及分组修改器,耦接于分组缓冲器、命令收集器以及重写数据向量器,以分别接收数据分组、一个或多个操作命令以及一个或多个源用户定义域,分组修改器依据一个或多个操作命令修改数据分组的一个或多个属性以及一个或多个源用户定义域以提供数据分组的修改后的版本。

本发明的数据分组修改方法和相关网络装置可以对数据分组做灵活的修改。

【附图说明】

图1是依据本发明实施例的示例架构的示意图。

图2示出依据本公开的一个实施的示例操作。

图3示出依据本发明的实施方案的示例情景。

图4是依据本发明实施例的示例装置的示意图。

图5示出依据本发明的实施例的示例流程。

图6示出依据本发明的实施例的示例流程。

图7A和图7B中的每一个均是传统的数据分组修改方法示意图。

【具体实施方式】

在说明书及权利要求书当中使用了某些词汇来指称特定的组件。所属领域中的技术人员应可理解,制造商可能会用不同的名词来称呼同样的组件。本说明书及权利要求书并不以名称的差异来作为区分组件的方式,而是以组件在功能上的差异来作为区分的基准。在通篇说明书及权利要求书当中所提及的「包含」是开放式的用语,故应解释成「包含但不限定于」。另外,「耦接」一词在此包含任何直接及间接的电气连接手段。因此,若文中描述第一装置耦接于第二装置,则代表第一装置可直接电气连接于第二装置,或透过其它装置或连接手段间接地电气连接至第二装置。

图1是依据本发明实施例的示例架构100的示意图。示例架构100可在分组交换器中实施及/或以硬件的方式实施。示例架构100可包含解析器110、管线形式的多个流量表120(1)–120(N)(N为大于1的正整数)、命令收集器130、分组缓冲器140、重写数据向量器150以及分组修改器160。示例架构100可接收一个或多个入口数据分组,包含如图1所述的原始数据分组102,并输出一个或多个出口数据分组,包含如图1所示的修改后的数据分组104。原始数据分组102可为具有隧道报头(tunnel header)的多层分组,或为简单的单层分组。示例架构100也可包含流量管理器(为简洁起见,没有展示在图1中以便避免混淆图示)。

管线的流量表120(1)–120(N)可用于以串行或者管线的形式接收信息,例如,依据通过一组命令的执行而进行的进程,其中该组命令符合开流(OpenFlow)协议。即,第一流量表120(1)可为管线的流量表120(1)–120(N)中接收信息的第一个流量表,接着是第二流量表120(2),接着是第三流量表120(3)等等,一直到管线的流量表120(1)–120(N)中的最后一个流量表120(N)。管线的流量表120(1)–120(N)有关的操作更详细的说明记载于后文。

解析器110可以用一个或多个源用户定义域(user-defined field,简写为SUDF)配置。一个或多个SUDF可在数据分组的外报头(outer header)及/或内报头(inner header)定义一个或多个用户定义域(user-defined field,简写为 UDF)。在示例架构100中,一个或多个元(meta)信号可被提供用来遍历管线的流量表120(1)–120(N)。一个或多个元信号的数量可等于一个或多个SUDF的数量。在某些实施例中,一个或多个SUDF可包含,举例来说,内TTL_SUDF、外TTL_SUDF、内PCP_DEI_SUDF、外PCP_DEI_SUDF、内DSCP_ECN_SUDF、外DSCP_ECN_SUDF、多个(例如,四个)内自定义SUDF和多个(例如,四个)外自定义SUDF。

示例架构100可也利用若干操作命令来对一个或多个SUDF进行操作。在某些实施例中,一个或多个操作命令可能关于给定SUDF的值,而一个或多个操作命令可能关于对给定SUDF(或其值)做什么。举例来说,操作命令SET_SUDF可用于设置给定SUDF的值,操作命令DECREASE_SUDF可用于减小给定SUDF的值,而操作命令INCREASE_SUDF可用于增加给定SUDF的值。作为另一示例,操作命令SET_BY_SUDF可用于将给定SUDF的值设置为数据分组的给定UDF的值。作为又一示例,操作命令PUSH_BY_SUDF可用于将给定SUDF推送或插入至数据分组的给定UDF,从而增加一个UDF至数据分组并增加数据分组的长度。

当原始数据分组102进入示例架构100时,原始数据分组102可被分组缓冲器140和解析器110接收。分组缓冲器140可在将原始数据分组102提供至分组修改器160进行修改之前储存原始数据分组102。一旦接收到原始数据分组102,解析器110可解析原始数据分组102以自原始数据分组102撷取一个或多个UDF,并将一个或多个撷取的UDF提供给管线的流量表120(1)–120(N)。举例来说,解析器102可将一个或多个UDF提供至第一流量表120(1),第一流量表120(1)可对一个或多个UDF中的任意一个进行修改,并随后将该一个或多个UDF提供至第二流量表120(2),第二流量表120(2)可又做同样的操作,以使该一个或多个UDF遍历管线的流量表120(1)–120(N)并可沿途被修改直至最后一个流量表120(N)。在本发明的实施中,所撷取的一个或多个UDF的值可分别定义一组一个或多个原始的SUDF的值,而解析器110可提供该一个或多个原始的SUDF作为管线的流量表的数据源120(1)–120(N)。举例来说,解析器102可提供一个或多个原始的SUDF至第一流量表120(1),第一流量表120(1)可对该一个或多个原始的SUDF中的任意一个执行修改,并将该一个或多个SUDF提供至第二流量表120(2),第二流量表120(2)可又做同样的操作,以使该一个或多个UDF可遍历管线的流量表120(1)–120(N)并可沿途被修改直至最后一个流量表120(N)。此外,解析器110可提供该一个或多个原始的(未修改 的)SUDF至重写数据向量器150,重写数据向量器150也可储存该一个或多个原始的SUDF。当分组修改器160准备好修改原始数据分组102时,重写数据向量器150可将个一个或多个原始的SUDF提供给分组修改器160作为数据源。

流量表120(1)–120(N)中的每一个可基于自解析器110接收的一个或多个已撷取的UDF查找、发现或识别一个或多个操作命令。流量表120(1)–120(N)中的每一个可提供对应的已识别的一个或多个操作命令至命令收集器130,命令收集器130可收集并储存自流量表120(1)–120(N)接收的操作命令。流量表120(1)–120(N)中的每一个可基于对应的已识别的一个或多个操作命令执行操作,包含修改一个或多个UDF中的至少一个UDF的值及一个或多个SUDF中的至少一个SUDF的值。流量表120(1)–120(N)中的每一个可更将一个或多个SUDF(其中的至少一个可以被修改)提供至其随后的流量表。举例来说,在第一流量表120(1)对命名为SUDF_0的SUDF进行修改之后,第一流量表120(1)可将SUDF_0(以及其他SUDF(若存在其他SUDF))提供至第二流量表120(2)。类似地,在第二流量表120(2)对命名为SUDF_0的SUDF及/或另一SUDF进行修改之后,第二流量表120(2)可将SUDF_0及/或另一SUDF(以及其他SUDF(若存在其他SUDF))提供至第三流量表120(3)。该操作可以以管线的方式继续进行,直至一个或多个SUDF被最后一个流量表处理120(N),一个或多个SUDF中的至少一个SUDF可被由此修改。

用于说明的目的,例如,当操作命令是SET_SUDF、DECREASE_SUDF或INCREASE_SUDF时,流量表120(1)–120(N)中的相应流量表可分别设置由操作命令识别的给定SUDF的值、降低给定SUDF的值或者增加给定SUDF的值。作为另一示例,当操作命令是SET_BU_SUDF时,流量表120(1)–120(N)中的相应流量表可将由操作命令识别的给定SUDF的值写入至操作命令识别的给定UDF中。作为进一步的命令,当操作命令是PUSH_BY_SUDF时,流量表120(1)–120(N)中的相应流量表可将由操作命令识别的给定SUDF的值推送(push)或插入至操作命令识别的给定UDF中。流量表120(1)–120(N)中的一个流量表执行的一个或多个操作命令而修改的UDF可随后被提供至管线中的随后的流量表(例如,自流量表120(K)至流量表120(K+1),其中K为大于或等于1且不大于N-1的正整数)。

分组修改器160可自命令收集器130读取储存于其中的收集的操作命令。分组修改器160也可自重写数据向量器150接收数据源并自分组缓冲器140接 收原始数据分组。分组修改器160可依据收集的操作命令和数据源修改原始数据分组102。在给定的操作命令为SET_SUDF、DECREASE_SUDF或INCREASE_SUDF的情况下,分组修改器160可修改给定SUDF的值。在给定的操作命令为SET_BY_SUDF的情况下,分组修改器160可将给定SUDF的值写入至数据分组内的确定位置(identified position),例如,依据相应UDF映射位置。在给定操作指令为PUSH_BY_SUDF的情况下,分组修改器160可将给定SUDF的值推送或插入至数据分组内的确定位置,例如,依据相应UDF映射位置。在执行依据收集的操作指令和数据源(即,原始的一个或多个SUDF)的一个或多个修改之后,分组修改器160可输出修改后的数据分组104作为示例架构100的输出。

图2示出依据本公开的一个实施的示例操作200。下文所述的示例操作200实施于示例架构100中,示例操作200仅用于说明之用,并不用于限制本发明的范围。在图2所示的示例中,U_TTL是外报头中的用户定义域,并且不是传统的层3(layer 3,简写为L3)TTL。命名为U_TTL的用户定义域的值(在本示例中是100),可被指派给命名为SUDF_0的源用户定义域。在示例操作200中,第一流量表120(1)可用匹配值80查找或识别与用户定义域UDF10相关联的一个或多个操作命令。在本示例中,相关的操作命令可为INCREASE_SUDF(SUDF_0,2)和SET_BY_SUDF(SUDF_0,UDF10)。在示例操作200中,第二流量表120(2)可用匹配值102查找或识别与用户定义域UDF10相关联的一个或多个操作命令。在本示例中,相关的操作命令可为SET_SUDF(SUDF_0,80)及SET_BY_SUDF(SUDF_0,UDF4)。在本示例中,出口数据分组可包含两个修改操作。具体来说,用户定义域UDF4的值被修改为80,而用户定义域UDF10的值被修改为102(=100+2)。

在示例操作200中,解析器100可自入口数据分组(例如,原始数据分组102)的U_TTL的用户定义域获取SUDF_0的值。第一流量表120(1)可以规定以下内容的条码进行配置:在UDF10的值为80的情况下,则查找操作命令INCREASE_SUDF(SUDF_0,2)及SET_BY_SUDF(SUDF_0,UDF10)。第二流量表120(2)可以规定以下内容的条码进行配置:在UDF10的值为102的情况下,则查找操作命令SET_SUDF(SUDF_0,80)及SET_BY_SUDF(SUDF_0,UDF4)。

相应的,当入口数据分组(例如,原始数据分组102)进入示例架构100时,解析器110可基于配置自U_TTL撷取值100并相应将SUDF_0的值设置为100。解析器110也可将一个或多个SUDF(包含SUDF_0)提供至第一流量表120(1)以及 重写数据向量器150。解析器110可更撷取用户定义域UDF0-UDFM(假设UDF的数量M是大于1的正整数)的值并将所撷取的用户定义域UDF0-UDFM的值提供给管线的流量表120(1)–120(N)用于处理。

在第一流量表120(1)中,假定UDF10的值初始是80,第一流量表120(1)中的上述条目存在匹配。相应的,相关的操作命令是INCREASE_SUDF(SUDF_0,2)和SET_BY_SUDF(SUDF_0,UDF10)。第一流量表120(1)可随后执行将SUDF_0的值(初始为100)加2的操作以使其值达到102,并将值102写入至UDF10的操作。此外,示例架构100可将操作命令INCREASE_SUDF(SUDF_0,2)和SET_BY_SUDF(SUDF_0,UDF10)储存至命令收集器130中。

在第二流量表120(2)中,假定UDF10已修改的值是102,第二流量表120(2)中的上述条目存在匹配。相应的,相关的操作命令是SET_SUDF(SUDF_0,80)和SET_BY_SUDF(SUDF_0,UDF4)。第二流量表120(2)可随后执行将SUDF_0的值(初始为100)设置为80,并将值80写入至UDF4的操作。此外,示例架构100可将操作命令SET_SUDF(SUDF_0,80)和SET_BY_SUDF(SUDF_0,UDF4)储存至命令收集器130中。

随后,分组修改器160可自重写数据向量器150读取SUDF_0的原始值。分组修改器160也可阅读、获取或以其他方式自分组缓冲器140获得原始数据分组102以及自命令收集器130获得操作命令。分组修改器160可随后依据所储存的操作命令修改原始数据分组102,其中操作指令分别被命名为:INCREASE_SUDF(SUDF_0,2)、SET_BY_SUDF(SUDF_0,UDF10)、SET_SUDF(SUDF_0,80)和SET_BY_SUDF(SUDF_0,UDF4)。特别是,分组修改器160可将值102(=100+2)写入至原始数据分组102对应于UDF10的位置或域中,并随后将值80写入至原始数据分组102对应于UDF4的位置或域中。在执行上述修改之后,分组修改器160可输出出口数据分组作为修改后的数据分组104。

图3示出依据本发明的实施方案的示例情景300。示例情景300可以包括两个数据中心,数据中心310和数据中心320,其可通过商业实体是私人拥有和/或操作。数据中心310和数据中心320中的每一个可包含一个或多个局域网(local area networks,简写为LAN)。此外,数据中心310和数据中心320中的每一个可包含一个或多个软件定义网络(software-defined network,简写为SDN)。数据中心310和数据中心320可通过公共网络330(举例来说,可为广域网(wide area network,简写为WAN)或因特网)彼此通信连接。数据中心310可 以通过网络装置315与公共网络330连接,其中网络装置315可以为某类型的网络节点,例如边缘网关(edge gateway)。数据执行B 320可以通过网络装置325与公共网络330连接,其中网络装置325可以为某类型的网络节点,例如边缘网关。网络装置315和网络装置325中的每一个可依据本发明的各种实施方式执行操作。例如,示例架构100可实施于网络装置315和网络装置325中的每一个中。此外,网络装置315和网络装置325中的每一个可执行类似于示例操作200的操作。

在示例情景300中,数据中心310和数据中心320的每一个中传输的数据分组可以是用户定义格式。相比之下,公共网络330可以只传送传统格式的数据分组,例如,数据分组的报头为传统报头格式。当用户定义的格式的数据分组340自数据中心310传输至数据中心B 320时,网络装置315可执行关键(key)信息映射以将数据分组340自用户定义格式变换或者转换为传统格式(例如,将数据分组340的报头自用户定义报头342变换或者转换为传统报头344)。相应地,网络装置325可执行反向关键信息映射以将数据分组340自传统格式变换或者转换为用户定义格式(例如,将数据分组340的报头自传统报头344变换或者转换为用户定义报头342)。

例如,在源端,网络装置315可自用户定义报头342复制关键信息(例如,第一域346和第二域348的值)至传统报头344。此外,网络装置315可移动用户定义报头342并发送具有传统报头344的数据分组340至公共网络330。在接收端,当数据分组340到达数据中心B 320的边缘时,网络装置325可自传统报头344复制关键信息(例如,第一域346和第二域348的值)至用户定义报头342。此外,网络装置325可移动传统报头344并发送具有用户定义报头342的数据分组340至数据中心320。

在将数据分组340自一个格式转换为另一个格式的时候(例如,自用户定义格式转换为传统格式,以及自传统格式转换为用户定义格式),网络装置315和网络装置325中的每一个可对于示例架构100和示例操作200,以及如示例装置400和描述如下的示例流程500和600处理执行上述操作。例如,网络装置315和网络装置325中的每一个可自数据分组340撷取信息。所撷取的信息可包含数据分组340的报头中的一个或多个UDF。网络装置315和网络装置325中的每一个也可依据该一个或多个UDF中的至少一个UDF定义一个或多个SUDF。网络装置315和网络装置325中的每一个可更对于该一个或多个SUDF中的至少一个 SUDF执行一个或多个操作。例如,网络装置315和网络装置325中的每一个可执行下述操作中的一个或多个:设置至少一个SUDF的值、增加至少一个SUDF的值、减小至少一个SUDF的值、将该至少一个SUDF的值设置为该一个或多个UDF中的一个UDF的值,以及将该至少一个SUDF的值推送至数据分组340的域中。

有利的,依据本发明的实施方式,数据分组中的一个或多个域可以以灵活的方式被向内和向外复制(例如,自外报头至内报头,以及自内报头至外报头)以修改数据分组。这种新颖的功能可以满足软件定义网络中对数据分组做灵活的修改的实际和潜在的需求。依据本发明对于数据分组灵活的修改可能使能拷贝或以其他方式复制数据分组中的任意域/位置的内容至数据分组的另一域/位置,同时伴随着修改或者不修改值。

图4是依据本发明实施例的示例装置400的示意图。示例装置400可执行这里所述的技术、方法和系统相关的各个功能,包含上述的示例操作200和示例情景300,以及下述示例流程500和600。示例装置400可为示例架构100的一种实施方式。此外,示例装置400可为实施于计算机/数据网络中的网络节点(例如,路由器或网关)。可选地,示例装置400可以实施为分组交换器,例如,以单集成电路芯片或多集成电路芯片的形式,并可实施于网络节点中。示例装置400可包含若干硬件元件,该若干硬件元件以包含一个或多个晶体管、电容器、电阻器、电感器和/或忆阻器的电路的形式实施。

在图4所述的示例中,示例装置400可包含分组交换器405,分组交换器405具有若干硬件元件,例如解析器410、存储装置420、命令收集器430、分组缓冲器440、重写数据向量器450以及分组修改器460。此外,分组交换器405可包含一个或多个输入端口470及一个或多个输出端口480。一个或多个输入端口470可接收一个或多个入口数据分组。一个或多个输出端口480可输出一个或多个出口数据分组,其中至少一个出口数据分组可为入口数据分组的修改后的版本。

解析器410可用于解析入口数据分组以自入口数据分组撷取信息。所撷取的信息可包含入口数据分组的报头中的一个或多个用户定义域(UDF)。解析器410可也如以上(示例架构100和示例操作200)所述的依据一个或多个UDF中的至少一个UDF定义一个或多个源用户定义域(SUDF)。

存储装置420可为任意类型的随机存取存储器(random access memory, 简写为RAM)、任意类型的三元内容可寻址存储器(ternary content addressable memory,简写为TCAM),或用于储存数据或一或多组指令的任意合适的存储装置(可为软件、中间件或固件模块的形式)。例如,TCAM可用于实施TCAM流量表,TCAM流量表可执行通配符搜索。换句话说,TCAM表的底部可设置”所有通配符”条目以执行默认查找结果,搜寻一个或更多错过的条目,或二者均执行。储存于存储装置420中的模块可以被一个或多个处理器410执行来实现若干操作。在图4所示的示例中,存储装置420中可储存多个流量表425(1)–425(N),其中N为大于1的正整数,多个流量表425(1)–425(N)可以管线方式运行。流量表425(1)–425(N)可识别一个或多个操作命令,并以管线方式依据一个或多个操作命令对一个或多个SUDF中的至少一个SUDF执行操作。

命令收集器430可被配置为自流量表425(1)–425(N)接收并储存一个或多个操作命令。

分组缓冲器440可被配置为储存入口数据分组。

重写数据向量器450可被配置为自解析器接收并储存一个或多个SUDF。

分组修改器460可耦接于分组缓冲器440、命令收集器430以及重写数据向量器450以分别自分组缓冲器440、命令收集器430以及重写数据向量器450接收入口数据分组、一个或多个操作命令以及一个或多个SUDF。分组修改器460也可被配置为依据一个或多个操作命令以及一个或多个SUDF修改入口数据分组的一个或多个属性,以及提供出口数据分组作为入口数据分组的修改后的版本。

在某些实施方式中,在修改入口数据分组的一个或多个属性时,分组修改器460可被配置为将入口数据分组的格式自第一格式转换为第二格式。在某些实施方式中,在将入口数据分组的格式自第一格式转换为第二格式时,分组修改器460可被配置为将入口数据分组的报头的格式自第一报头格式转换为第二报头格式。

在某些实施方式中,在修改入口数据分组的一个或多个属性时,分组修改器460可被配置修改入口数据分组的格式、入口数据分组的分组报头、入口数据分组的长度或其组合。

在某些实施例中,在依据一个或多个UDF中的至少一个UDF定义一个或多个SUDF时,解析器410可被配置为基于一个或多个UDF中的第一UDF的值设置一个或多个SUDF中的第一SUDF的值。

在某些实施例中,在依据一个或多个操作命令对于一个或多个SUDF中的至 少一个SUDF执行操作时,流量表425(1)–425(N)可被配置为执行一个或多个操作,举例来说,包含设置至少一个SUDF的值、增加至少一个SUDF的值、减小至少一个SUDF的值、将该至少一个SUDF的值设置为该一个或多个UDF中的一个UDF的值,以及将该至少一个SUDF的值推送至数据分组的域中。

在某些实施例中,在识别一个或多个操作命令时,在流量表425(1)–425(N)的每一个中,各流量表可决定在一个或多个UDF中的至少一个UDF和与流量表相关联的相应预定匹配值之间是否存在匹配。流量表425(1)–425(N)也可响应一个或多个UDF中的至少一个UDF与相应预定匹配值匹配的决定储存至少一操作命令。

图5示出依据本发明的实施例的示例流程500。示例流程500可以表示执行示例架构100、示例操作200、示例情景300和/或示例装置400的功能的一个方面。如一个或多个模块510和520,以及子模块522、524和526所示,示例流程500可包含一个或多个操作,动作,或功能。尽管以离散的模块展示,各个模块可被分为额外的模块、结合为较少的模块,或取消,取决于所需的实现方式。示例流程500的模块可以示例架构100(或示例装置400)实施。示例流程600可由示例装置500实现。下文将描述示例流程500的操作被示例装置400的分组交换器405执行的实施方式来对示例流程500做详细说明,并且该记载仅用作说明之用。示例流程500开始于模块510。

在510,示例流程500可涉及示例装置400的分组交换器405,分组交换器405接收数据分组。模块520可紧随模块510。

在520,示例流程500可涉及示例装置400的分组交换器405,分组交换器405修改数据分组的一个或多个属性。模块530可紧随模块520。

在530,示例流程500可涉及示例装置400的分组交换器405,分组交换器405输出修改后的数据分组。

模块520可包含若干子模块(包含子模块522、524以及526,并以子模块522开始)以实施对数据分组的一个或多个属性的修改。

在522,示例流程500可涉及示例装置400的分组交换器405,分组交换器405自数据分组撷取信息,信息包含数据分组的报头中的一个或多个UDF。子模块524可紧随子模块522。

在524,示例流程500可涉及示例装置400的分组交换器405,分组交换器405依据一个或多个UDF中的至少一个UDF定义一个或多个SUDF。子模块526 可紧随子模块524。

在526,示例流程500可涉及示例装置400的分组交换器405,分组交换器405对一个或多个SUDF中的至少一个SUDF执行一个或多个操作。

在某些实施方式中,在修改数据分组的一个或多个属性时,示例流程500可涉及分组交换器405将数据分组的格式自第一格式转换为第二格式。在某些实施方式中,在将数据分组的格式自第一格式转换为第二格式时,示例流程500可涉及分组交换器405将数据分组的报头的格式自第一报头格式转换为第二报头格式。

在某些实施方式中,在修改数据分组的一个或多个属性时,示例流程500可涉及分组交换器405修改数据分组的格式、分组报头或长度中的至少一个。

在某些实施例中,在依据一个或多个UDF中的至少一个UDF定义一个或多个SUDF时,示例流程500可涉及分组交换器405基于一个或多个UDF中的第一UDF的值设置一个或多个SUDF中的第一SUDF的值。

在某些实施例中,在对于一个或多个SUDF中的至少一个SUDF执行一个或多个操作时,示例流程500可涉及分组交换器405识别一个或多个操作命令。此外,示例流程500可涉及分组交换器405对于该至少一个SUDF执行一个或多个操作命令。在某些实施例中,在对于至少一个SUDF执行一个或多个操作命令时,示例流程500可涉及分组交换器405执行包含下述操作的一个或多个操作:设置至少一个SUDF的值、增加至少一个SUDF的值、减小至少一个SUDF的值、将该至少一个SUDF的值设置为该一个或多个UDF中的一个UDF的值,以及将该至少一个SUDF的值推送至数据分组的域中。

在某些实施例中,在识别一个或多个操作命令时,示例流程500可涉及分组交换器405通过多个流量表的管线处理一个或多个UDF以及一个或多个SUDF。此外,在多个流量表的每一个中,示例流程500可涉及分组交换器405决定在一个或多个UDF中的至少一个UDF和与流量表相关联的相应预定匹配值之间是否存在匹配。此外,示例流程500可涉及分组交换器405响应一个或多个UDF中的至少一个UDF与相应预定匹配值匹配的决定储存至少一操作命令。

图6示出依据本发明的实施例的示例流程600。示例流程600可以表示执行示例架构100、示例操作200、示例情景300和/或示例装置400的功能的一个方面。如一个或多个模块610、620、630、640、650、660、670、680和690所示,示例流程600可包含一个或多个操作,动作,或功能。尽管以离散的模块 展示,各个模块可被分为额外的模块、结合为较少的模块,或取消,取决于所需的实现方式。示例流程600可以示例架构100(或示例装置400)实施。下文将描述示例流程600的操作被示例装置400的分组交换器405执行的实施方式来对示例流程600做详细说明,并且该记载仅用作说明之用。示例流程600开始于模块610。

在610,示例流程600可涉及分组交换器405,分组交换器405接收数据分组。模块620可紧随模块610。

在620,示例流程600可涉及分组交换器405,分组交换器405储存数据分组。模块630可紧随模块620。

在630,示例流程600可涉及分组交换器405,分组交换器405解析数据分组以自数据分组撷取信息,信息包含数据分组的报头中的一个或多个UDF。模块640可紧随模块630。

在640,示例流程600可涉及分组交换器405,分组交换器405依据一个或多个UDF中的至少一个UDF定义一个或多个SUDF。模块650可紧随模块640。

在650,示例流程600可涉及分组交换器405,分组交换器405储存一个或多个SUDF。模块660可紧随模块650。

在660,示例流程600可涉及分组交换器405,分组交换器405通过多个流量表处理一个或多个UDF以及一个或多个SUDF,其中多个流量表用于识别一个或多个操作命令以及依据一个或多个操作命令以管线形式对一个或多个SUDF中的至少一个SUDF执行操作。模块670可紧随模块660。

在670,示例流程600可涉及分组交换器405,分组交换器405储存一个或多个操作命令。模块680可紧随模块670。

在680,示例流程600可涉及分组交换器405,分组交换器405依据所储存的一个或多个操作命令以及所储存的一个或多个SUDF修改数据分组的一个或多个属性。模块690可紧随模块680。

在690,示例流程600可涉及分组交换器405,分组交换器405输出修改后的数据分组。

在某些实施方式中,在修改数据分组的一个或多个属性时,示例流程600可涉及分组交换器405将数据分组的格式自第一格式转换为第二格式。在某些实施方式中,在将数据分组的格式自第一格式转换为第二格式时,示例流程600可涉及分组交换器405将数据分组的报头的格式自第一报头格式转换为第二报 头格式。

在某些实施例中,在依据一个或多个UDF中的至少一个UDF定义一个或多个SUDF时,示例流程600可涉及分组交换器405基于一个或多个UDF中的第一UDF的值设置一个或多个SUDF中的第一SUDF的值。

在某些实施例中,在依据一个或多个操作命令对于一个或多个SUDF中的至少一个SUDF执行操作时,示例流程600可涉及分组交换器405执行包含下述操作的一个或多个操作:例如,设置至少一个SUDF的值、增加至少一个SUDF的值、减小至少一个SUDF的值、将该至少一个SUDF的值设置为该一个或多个UDF中的一个UDF的值,以及将该至少一个SUDF的值推送至数据分组的域中。

在某些实施例中,在识别一个或多个操作命令时(包含执行操作时),示例流程600可涉及分组交换器405在每一个流量表中决定在一个或多个UDF中的至少一个UDF和与流量表相关联的相应预定匹配值之间是否存在匹配。例如,通过使用TCAM表,“默认操作命令”可通过默认条目(例如,通配符条目)而获得,即便没有UDF匹配。此外,示例流程600可涉及分组交换器405响应一个或多个UDF中的至少一个UDF与相应预定匹配值匹配的决定储存至少一操作命令。

文中描述的主题有时示出了包括在其它不同部件内的或与其它不同部件连接的不同部件。应当理解:这样描绘的架构仅仅是示例性的,并且,实际上可以实施实现相同功能的许多其它架构。在概念意义上,实现相同功能的部件的任何布置是有效地“相关联的”,以使得实现期望的功能。因此,文中被组合以获得特定功能的任意两个部件可以被视为彼此“相关联的”,以实现期望的功能,而不管架构或中间部件如何。类似地,这样相关联的任意两个部件还可以被视为彼此“可操作地连接的”或“可操作地耦接的”,以实现期望的功能,并且,能够这样相关联的任意两个部件还可以被视为彼此“操作上可耦接的”,以实现期望的功能。“操作上可耦接的”的具体示例包括但不限于:实体地可联结和/或实体地相互、作用的部件、和/或无线地可相互作用和/或无线地相互作用的部件、和/或逻辑地相互作用的和/或逻辑地可相互作用的部件。

此外,关于文中基本上任何复数和/或单数术语的使用,只要对于上下文和/或应用是合适的,本领域普通技术人员可以将复数变换成单数,和/或将单数变换成复数。

本领域普通技术人员将会理解,通常,文中所使用的术语,特别是在所附 权利要求(例如,所附权利要求中的主体)中所使用的术语通常意在作为“开放性”术语(例如,术语“包括”应当被解释为“包括但不限干”,术语“具有”应当被解释为“至少具有”,术语“包含”应当被解释为“包含但不限干”等)。本领域普通技术人员还将理解,如果意在所介绍的权利要求陈述对象的具体数目,则这样的意图将会明确地陈述在权利要求中,在缺乏这样的陈述的情况下,不存在这样的意图。例如,为了帮助理解,所附权利要求可以包括使用介绍性短语“至少一个”和“一个或更多个”来介绍权利要求陈述对象。然而,这样的短语的使用不应当被解释为:用不定冠词“一个(a或an)”的权利要求陈述对象的介绍将包括这样介绍的权利要求陈述对象的任何权利要求限制为只包含一个这样的陈述对象的发明,即使在同一权利要求包括介绍性短语“一个或更多个”或“至少一个”以及诸如“一个(a)”或“一个(an)”之类的不定冠词的情况下(例如,“一个(a)”和/或“一个(an)”应当通常被解释为意味着“至少一个”或“一个或更多个”)也如此;上述对以定冠词来介绍权利要求陈述对象的情况同样适用。另外,即使明确地陈述了介绍的权利要求陈述对象的具体数目,但本领域普通技术人员也会认识到:这样的陈述通常应当被解释为意味着至少所陈述的数目(例如,仅有“两个陈述对象”而没有其他修饰语的陈述通常意味着至少两个陈述对象,或两个或更多个陈述对象)。此外,在使用类似于“A、B和C中的至少一个等”的惯用语的情况下,通常这样的结构意在本领域普通技术人员所理解的该惯用语的含义(例如,“具有A、B和C中的至少一个的系统”将包括但不限于具有单独的A、单独的B、单独的C、A和B—起、A和C一起、B和C一起和/或A、B和C一起的系统等)。在使用类似于“A、B或C中的至少一个等”的惯用语的情况下,通常这样的结构意在本领域普通技术人员所理解的该惯用语的含义(例如,“具有A、B或C中的至少一个的系统”将包括但不限于具有单独的A、单独的B、单独的C、A和B—起、A和C一起、B和C一起和/或A、B和C一起的系统等)。本领域普通技术人员将进一歩理解,不管在说明书、权利要求书中还是在附图中,表示两个或更多个可替换的术语的几乎任意析取词和/或短语应当理解成考虑包括术语中的一个、术语中的任一个或所有两个术语的可能性。例如,短语“A或B”应当被理解成包括“A”、“B”、或“A和B”的可能性。

从前述内容的记载可以理解,本说明书中所描述的本发明的各个实施方式仅用于说明的目的,并且可以在不脱离本公开的范围和精神的情况下进行修改。 因此,本说明书中所描述的各个实施方式并不意在限制,真正的范围和精神由权利要求书来限定。

再多了解一些
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1