数据包输出控制方法及使用该方法的网络装置的制造方法

文档序号:9732002阅读:951来源:国知局
数据包输出控制方法及使用该方法的网络装置的制造方法【
技术领域
】[0001]本发明涉及一种软件定义网络(SoftwareDefinedNetworking)(SDN)技术,尤其是涉及一种处理用于数据包转发的流表的流水线的技术、控制数据包输出的方法、以及使用该方法的网络装置。【
背景技术
】[0002]软件定义网络(SDN)表示面向用户的网络,其中不管路由器或交换机等基础网络设备,用户具有控制权限,并且单独的软件控制器控制通信的流量。[0003]OpenFlow是SDN技术的一种,定义了连接路由器等硬件和在网络操作系统(OS)中操作的控制器的界面,并且是一种协议,用于将用于控制如何通过网络传输数据包的控制平面与物理网络分离,并与用于数据传输的数据平面互动。[0004]OpenFlow交换机可具有多个以流水线方式连接的流表,使得灵活并行处理成为可能,且OpenFlow交换机可具有效率和灵活性。[0005]当数据包通过流水线被处理时,由构成流水线的各流表指示的动作存储于动作列表中,并最终构成位于流水线的最后流表的动作集(act1nset)。并且,元数据消息在各流表中交换。[000?]当数据包被输入到交换机并通过各流表时,匹配字段(matchfield)和动作集基于在各流表中为各流定义的指令而更新。[0007]所述动作可根据各流表的指令而立即执行,也可在动作集中累积。在后一种情况中,累积的动作集在数据包通过所有流表后被最后执行。[0008]同时,用于流水线处理的输出端动作是最终将数据包转发至外部实体的动作。因此,一旦输出端动作被执行,除了数据包输出的任何进一步动作都不能在数据包上执行。即,任何进一步动作都不能基于输出端动作的信息而连接。[0009]并且,用于通过多个输出端传输数据包的多播操作的分组表(grouptable)也具有同样的问题。一旦数据包被转发到多个输出端,除了数据包输出的任何进一步动作都不能在数据包上执行。即,任何进一步动作都不能基于分组表的执行结果而连接。【
发明内容】[0010]技术问题[0011]为解决上述问题,本发明的目的在于提供一种根据流的输出端处理流的方法。[0012]并且,为解决上述问题,本发明的另一目的在于提供一种执行根据流的输出端处理流的方法的网络装置。[0013]技术方案[0014]为实现上述目的,本发明提供一种处理以流水线(pipeline)连接的多个(N,其中N为2以上的自然数)流表(fIowtabIe)中的流(fIow)的方法。所述方法包括:在多个流表中将流的数据包(packet)从第一流表传递至第N-1流表;在数据包通过第N-1流表后处理由关于数据包的第N-1流表指引的输出专用第N流表(出口表(egresstable));以及在处理出口表后输出数据包。[0015]此处,所述方法可在支持软件定义网络(SDN)的网络装置中执行。[0016]此处,在数据包通过第N-1流表后指定流的输出端(outputport),并且出口表中待执行的动作根据指定的输出端而确定。[0017]并且,处理出口表包括附加虚拟局域网(VLAN)标签至待通过指定的输出端输出的数据包。[0018]并且,处理出口表包括计算待通过指定的输出端输出的流的数据包。[0019]并且,当流的数据包的计算值等于或大于预设阈值时改变输出端。[0020]并且,处理出口表包括当数据包的大小等于或大于预设阈值时数据包的分段(fragmentat1n)。[0021]为实现本发明上述的另一目的,本发明提供了一种网络装置,包括:流表存储部,存储以流水线连接的多个(N,其中N为2以上的自然数)流表;流表处理部,在存储于流表存储部的多个流表中将流的输入的数据包从第一流表传递至第N-1流表,并且在数据包通过第N-1流表后处理由关于数据包的第N-1流表指引的输出专用第N流表(出口表);以及数据包输出部,在流表处理部处理出口表后输出流表的数据包。[0022]此处,所述网络装置是支持软件定义网络(SDN)的网络装置。[0023]此处,在数据包通过第N-1流表后指定流的输出端,并且出口表中待执行的动作根据指定的输出端而确定。[0024]并且,处理出口表包括附加虚拟局域网(VLAN)标签至待通过指定的输出端输出的数据包。[0025]并且,处理出口表包括计算待通过指定的输出端输出的流的数据包。[0026]并且,当流的数据包的计算值等于或大于预设阈值时改变输出端。[0027]并且,处理出口表包括当数据包的大小等于或大于预设阈值时数据包的分段。[0028]有益效果[0029]基于流表的流水线处理,利用本发明的处理流的方法以及执行该方法的网络装置,与由流表指定的输出端匹配的进一步动作能利用作为输出专用流表的出口表执行。因此,最终数据包输出能通过连接至关于输出端的信息的各种动作而灵活控制。【附图说明】[0030]图1和图2是对以流水线方式处理流表的方法进行说明的概念图。[0031]图3是根据本发明的示例性实施例对处理流的方法进行说明的概念图。[0032]图4是根据本发明对根据处理流的方法的VLANID标记的示例性实施例进行说明的概念图。[0033]图5是根据本发明对根据处理流的方法的VLANID标记的示例性实施例进行说明的另一概念图。[0034]图6是根据本发明对基于利用处理流的方法的流计算的输出端改变方法的示例性实施例进行说明的概念图。[0035]图7是根据本发明对利用处理流的方法进行数据包分段(packetfragmentat1n)的示例性实施例进行说明的概念图。[0036]图8是根据本发明的示例性实施例对出口表中字段的配置进行说明的概念图。[0037]图9是对出口表的匹配字段的配置进行说明的概念图。[0038]图10是根据本发明对出口表中利用包含通配符(wildcard)的匹配字段的实例进行说明的示例性示意图。[0039]图11是根据本发明对出口表中利用用于大小比较的匹配字段的实例进行说明的示例性示意图。[0040]图12是根据本发明对出口表中利用用于流计算的匹配字段的实例进行说明的示例性示意图。[0041]图13是根据本发明对用于执行处理流的方法的网络装置的示例性实施例进行说明的框图。【具体实施方式】[0042]尽管本发明易受各种变型和替代形式影响,但仅在附图中以示例的方式对其特定实施例进行说明并作详细描述。然而,应当理解本发明并不限于此处公开的特定形式,相反,本发明的保护范围包括属于本发明的发明构思和范围内的所有改动、替代物和变型。附图中相同的标记表示相同的元件。[0043]应当理解的是,尽管术语“第一”、“第二”、“A”、“B”等在此用于描述不同的元件,但是这些元件并不受限于这些术语。这些术语仅用于将一个元件与另一元件区分开来。例如,第一元件可叫做第二元件,并且,类似地,第二元件可叫做第一元件,而不脱离本发明的范围。此处使用的术语“和/或”包括一个或多个所关联的列举项目的任一个或者它们的结合。[0044]应当理解的是,当某一元件定义为“连接”或“耦合”至另一元件时,它既可与另一元件直接连接或親合,也可通过中间元件连接或親合。相反,应当理解的是,当某一元件定义为“直接连接”或“直接耦合”至另一元件时,它们中间无中间元件。[0045]此处所用的术语的目的仅在于描述特定实施例,不对本发明的范围进行限制。除非文中清楚地作出相反指示,此处使用的单数形式“一”、“一个”和“所述”的含义包含其复数形式。应当进一步理解的是,当此处使用术语“包含”、“包括”、“组成为”和/或“由…组成”时,表示存在阐明的特征、整体、步骤、操作、元件、和/或部件,但是并不排除还存在或附加一个或更多其它特征、整体、步骤、操作、元件、部件,和/或其组合。[0046]除非另有其它定义,否则此处使用的所有术语具有与本发明所属
技术领域
中普通技术人员通常理解的含义相同的含义。应当进一步理解的是,除非此处另有明确定义,否则通常使用的字典中定义的术语应当理解为具有与本发明的相关领域中的含义相同的含义,并且不能理解为理想化或过度形式化的含义。[0047]下文将会参照附图对本发明的具体实施例进行更加详细的叙述。[0048]作为在网络装置中执行的以流水线形式处理流表的方法,有两种方法。在第一种方法中,数据包通过各流表,并且数据包所属的流的动作在各流表中立即执行。并且在第二种方法中,数据包所属的流的动作在动作集中累积,所述动作集在数据包通过所有流表后被执行。[0049]图1和图2是对以流水线方式处理流表的方法进行说明的概念图。[0050]首先,图1所示的情形中,为多个(N,其中N为2以上的自然数)流表10卜1至1(Π-N中的最后第N流表的特定流执行输出动作102或分组输出动作103。[0051]同时,图2所示的情形中,由累积在动作集104中的指令所指示的动作中输出动作105或分组输出动作106在特定流通过N流表101-1至101-Ν的最后第N流表后执行。即,动作集中的输出动作或分组输出动作最后执行。[0052]上述两种情形中,数据包所属的流的输出端通过输出动作或者分组输出动作而指定,并且属于流的数据包通过指定的输出端转发。并且,一旦指定输出端,任何进一步动作无法在流上执行。即,任何进一步动作都不能基于指定的输出端上的信息而连接。[0053]并且,流表如上文所述以流水线方式处理。这样,流可通过利用“GoTo表”(GoToTable)指令而转发至只存在于流水线的转发方向的另一流表,并且这样“GoTo表”指令无法在最后流表中使用。[0054]根据本发明处理流的方法[0055]为解决上述问题,根据本发明的示例性实施例的处理流表的方法可引入作为输出专用流表的出口表。即,当存在多个(N,其中N为2以上的自然数)流表时,最后流表(第N流表)可成为或包括出口表。[0056]图3是根据本发明的示例性实施例对处理流的方法进行说明的概念图。[0057]参见图3,根据本发明的交换机可具有N-1个流表301-1、301-2、…和301-(N-1),以及出口表305,并且它们以流水线方式连接。[0058]输入至交换机的数据包可从第一流表301-1传递至第N-1流表301-(N_1)。之后可执行累积的动作集302。在最终执行动作集302中包含的输出动作304或者分组输出动作303后,数据包可被传送至出口表305。可选择性地,如图1所示,分组输出动作或者输出动作的立即执行可使流被传送至出口表305而无需使用这种动作集。[0059]在出口表305中,可执行由分组输出动作303或输出动作304指定的输出端的操作以使数据包通过指定的输出端而被输出。[0060]下文中,为根据本发明对上述处理流的方法作进一步详细描当前第1页1 2 
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1