CN104601468B - 报文转发方法和设备 - Google Patents

报文转发方法和设备 Download PDF

Info

Publication number
CN104601468B
CN104601468B CN201510014938.3A CN201510014938A CN104601468B CN 104601468 B CN104601468 B CN 104601468B CN 201510014938 A CN201510014938 A CN 201510014938A CN 104601468 B CN104601468 B CN 104601468B
Authority
CN
China
Prior art keywords
flow table
table item
feature field
flow
matched
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201510014938.3A
Other languages
English (en)
Other versions
CN104601468A (zh
Inventor
程行峰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
New H3C Technologies Co Ltd
Original Assignee
New H3C Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by New H3C Technologies Co Ltd filed Critical New H3C Technologies Co Ltd
Priority to CN201510014938.3A priority Critical patent/CN104601468B/zh
Publication of CN104601468A publication Critical patent/CN104601468A/zh
Application granted granted Critical
Publication of CN104601468B publication Critical patent/CN104601468B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请提供了报文转发方法和设备。当flow cache表中存在与特征字段匹配的流表项时,可直接通过flow cache表中与特征字段匹配的流表项转发报文,无需再通过查询内核流表进行报文转发,能够极大地提高报文转发效率。

Description

报文转发方法和设备
技术领域
本申请涉及网络通信技术,特别涉及报文转发方法和设备。
背景技术
在软件自定义网络(SDN:Soft Defined Networks)中,开放虚拟交换机(OVS:OpenvSwitch)都设有两张流表,一张为内核流表,另一张为用户态流表。其中,用户态流表为多级流表,内核流表为单级流表。
如图1所示,当OVS收到虚拟机(VM:Virtual Machine)A发送的报文后,解析报文头中的特征字段,比如源MAC、目的MAC、源IP、目的IP、协议类型、源端口、目的端口等字段,依据该特征字段从内核流表中查询匹配的流表项;
如果在内核流表中查询到特征字段匹配的流表项,依据匹配的流表项对报文执行转发;
如果在内核流表中未查询到特征字段匹配的流表项,进一步利用该特征字段从用户态流表中查询匹配的流表项;
如果在用户态流表中查询到特征字段匹配的流表项,依据该流表项中的动作对报文执行转发,并将该流表项下发至内核流表;
如果在用户态流表中未查询到特征字段匹配的流表项,将报文携带在数据包接入(Packet In)消息中上送到SDN控制器(controller),以请求SDN控制器下发报文的特征字段匹配的流表项,依据请求的流表项对报文执行转发,并将该请求的流表项记录至本OVS的用户态流表。
从上面描述可以看出,OVS在接收到报文后,都需要先从内核流表查询匹配的流表项,如果查询到则根据查询到的流表项对报文执行转发。在应用中,同一个VM可能会连续发送多个具有相同特征字段的报文,而OVS每次收到报文,都从内核流表查询匹配的流表项会降低OVS转发报文的效率,且开销也比较大。
发明内容
本申请提供了报文转发方法和设备,以提高报文转发效率。
本申请提供的技术方案包括:
一种报文转发的方法,该方法应用于软件自定义网络SDN中的开放虚拟交换机OVS,包括:
通过连接虚拟机VM的虚拟机端口接收报文;
从所述报文中解析出所述报文携带的特征字段;
检查所述虚拟机端口对应的流缓存flow cache表中的流表项是否与所述特征字段匹配,
如果是,依据所述flow cache表中所述特征字段匹配的流表项转发报文;
如果否,从本OVS的内核流表中找到所述特征字段匹配的流表项,依据从内核流表中找到的所述特征字段匹配的流表项转发报文,并将所述flow cache表中的流表项更新为从所述内核流表中找到的所述特征字段匹配的流表项。
一种报文转发的设备,该设备应用于软件自定义网络SDN中的开放虚拟交换机OVS,包括:
接收单元,用于通过连接虚拟机VM的虚拟机端口接收报文;
解析单元,用于从所述报文中解析出所述报文携带的特征字段;
检查单元,用于检查所述虚拟机端口对应的流缓存flow cache表中的流表项是否与所述特征字段匹配,
处理单元,用于在所述检查单元的检查结果为是时,依据所述flow cache表中所述特征字段匹配的流表项转发报文;
以及,在所述检查单元的检查结果为否时,从本OVS的内核流表中找到所述特征字段匹配的流表项,依据从内核流表中找到的所述特征字段匹配的流表项转发报文,并将所述flow cache表中的流表项更新为从所述内核流表中找到的所述特征字段匹配的流表项。
由以上技术方案可以看出,本发明中,当OVS通过虚拟机接口接收到报文时,如果该虚拟机接口对应的flow cache表中存在与报文携带的特征字段匹配的流表项,则可直接通过flow cache表中存在的与特征字段匹配的流表项转发报文,无需再通过查询内核流表进行报文转发,能够极大地提高报文转发效率。
附图说明
图1为现有报文转发示意图;
图2为本发明提供的方法流程图。
图3为本发明实施例提供的组网示意图;
图4为本发明提供的设备结构图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。
参见图2,图2为本发明提供的方法流程图。在该方法中,预先针对OVS上的虚拟机端口(vport)配置对应的流缓存(flow cache)表,在初始时,每一虚拟机端口对应的flowcache表为默认值。这里,虚拟机端口为OVS上连接VM的端口,比如图3所示的OVS连接VM1的vport1、OVS连接VM2的vport 2、OVS连接VM3的vport3。
基于上述配置,则应用于OVS,图2所示的方法流程可包括以下步骤:
步骤201,通过虚拟机端口接收报文。
步骤202,从所述报文中解析出所述报文携带的特征字段。
作为本发明的一个实施例,这里的特征字段可为报文头中的字段,比如源MAC、目的MAC、源IP、目的IP、协议类型、源端口、目的端口等字段,本发明并不具体限定。
步骤203,检查所述虚拟机端口对应的flow cache表中的流表项是否与所述特征字段匹配,如果是,执行步骤204,如果否,执行步骤205。
步骤204,依据所述flow cache表中所述特征字段匹配的流表项转发报文。结束当前流程。
通过步骤204可以看出,当flow cache表中存在与特征字段匹配的流表项时,可直接通过flow cache表中与特征字段匹配的流表项转发报文,无需再通过查询内核流表进行报文转发,这能够极大地提高报文转发效率。
步骤205,从本OVS的内核流表中找到所述特征字段匹配的流表项,依据从内核流表中找到的所述特征字段匹配的流表项转发报文,并将所述flowcache表中的流表项更新为从所述内核流表中找到的所述特征字段匹配的流表项。
作为本发明的一个实施例,在本步骤205中,如果从内核流表中未查找到所述特征字段匹配的流表项,则可进一步执行以下步骤:
检查本OVS的用户态流表中是否存在所述特征字段匹配的流表项,
如果否,请求本OVS连接的SDN控制器下发所述特征字段匹配的流表项,依据所述SDN控制器下发的所述特征字段匹配的流表项转发所述报文,并将所述SDN控制器下发的所述特征字段匹配的流表项记录至所述用户态流表。这里,请求本OVS连接的SDN控制器下发所述特征字段匹配的流表项的方式可以通过向SDN控制器发送Packet In消息实现。
如果是,依据所述用户态流表中所述特征字段匹配的流表项转发所述报文,并将所述用户态流表中所述特征字段匹配的流表项下发至内核流表。之后,OVS再次通过上述虚拟机端口收到携带所述特征字段的报文时,就会基于步骤203、步骤205将内核流表中与所述特征字段匹配的流表项更新到该虚拟机端口对应的flow cache表中,这能够保证后续携带所述特征字段的报文都直接通过查询flow cache表进行转发,无需再通过查询内核流表进行报文转发,能够极大地提高报文转发效率。
至此,完成图2所示的流程。
通过图2所示的流程可以看出,当flow cache表中存在与报文携带的特征字段匹配的流表项时,可直接通过flow cache表中存在的与特征字段匹配的流表项转发报文,无需再通过查询内核流表进行报文转发,能够极大地提高报文转发效率。该报文转发效率的提高幅度可通过以下举例体现:
比如,假设一个VM每秒处理20个并发会话请求,并针对每一会话请求回复5个报文,则如果每一个报文在内核流表中查询平均需要5次匹配,则按照现有方案需要每秒内在内核流表进行20*5*5=500次匹配,而采用本发明的上述图2所示流程,则只需要20*5+80*1=180次匹配,其中,20*5表示各个会话请求的首个回复报文在内核流表查询所需要的匹配次数,80*1表示各个会话请求的除首个回复报文之外的剩余回复报文在flow cache表查询所需要的匹配次数。可以看出,采用本发明,有效的提升实际应用网络中OVS内核的转发性能。
作为本发明的一个实施例,在本发明中,上述步骤205中将flow cache表中的流表项更新为从内核流表中找到的所述特征字段匹配的流表项具体实现时可有以下两种实现方式:
方式1:
本方式1下,将flow cache表中的流表项更新为从内核流表中找到的所述特征字段匹配的流表项可包括:
检查flow cache表是否存有流表项,
如果否,将从内核流表中找到的所述特征字段匹配的流表项拷贝至所述flowcache表;
如果是,拷贝从内核流表中找到的所述特征字段匹配的流表项,将flow cache表中的流表项更新为拷贝的流表项。
可以看出,本方式1下,flow cache表中仅记录一条流表项,并且,该记录的流表项只是内核流表中一条流表项的一份拷贝。
方式2:
本方式2下,将flow cache表中的流表项更新为从内核流表中找到的所述特征字段匹配的流表项可包括:
检查所述flow cache表当前是否已关联于所述内核流表中的流表项,
如果否,将所述flow cache表关联于从内核流表中找到的所述特征字段匹配的流表项;
如果是,取消所述flow cache表当前与流表项的关联关系,并重新将所述flowcache表关联于从内核流表中找到的所述特征字段匹配的流表项。
可以看出,本方式2下,flow cache表内不会记录流表项,其只是与内核流表中的一条流表项关联,其中,该关联方式可以通过指针、索引等方式实现。为便于描述,这里将flow cache表关联的流表项确认归纳为flow cache表内的流表项,也即,当flow cache表关联内核流表中的一条流表项,就确认为该flow cache表内存在该流表项。
至此,完成方式2的描述。基于方式2,则上述步骤204中,依据flow cache表中所述特征字段匹配的流表项转发报文具体为包括:依据flow cache表关联的内核流表中与所述特征字段匹配的流表项转发报文。
在网络实际应用中,当内核流表中的流表项因为网络运行时的配置、端口状态等变化而发生变化时,就必须及时通知flow cache表更新流表项,否则会引起报文转发的错误。
这里,内核流表的流表项发生变化包括新建、删除、修改,其中,流表项的修改具体为先删除原有的流表项,再新建流表项,至于新建流表项可以按照上述面描述的从内核流表中未查找到特征字段匹配的流表项时的操作进行流表项新建。
基于此,本发明只需要考虑流表项删除的情况。
应用于方式1下的flow cache表,如上所述,在方式1中flow cache表中仅记录一条流表项,并且,该记录的流表项只是内核流表中一条流表项的一份拷贝,基于此,应用于方式1下的flow cache表,为保证内核流表和flow cache表中相同的流表项及时更新,可先在上述从内核流表中找到所述特征字段匹配的流表项,依据从内核流表中找到的所述特征字段匹配的流表项转发报文时进一步记录所述特征字段匹配的流表项的匹配次数为初始值和第一设定值之和;
之后,在每次依据flow cache表中所述特征字段匹配的流表项转发报文时进一步将所述特征字段匹配的流表项的匹配次数增加第一设定值,检查所述特征字段匹配的流表项的匹配次数是否达到设定阈值,如果是,从所述flow cache表中删除所述特征字段匹配的流表项,如果否,不执行任何处理。这里,第一设定值可为1,初始值可为0。
也就是说,应用于方式1下的flow cache表,直接利用流表项的匹配次数是否达到设定阈值来快速刷新flow cache表。这里,设定的阈值可基于依据网络变化推算出的需要从内核流表删除流表项的时间确定。基于此,当内核流表需要删除流表项时,就可直接删除流表项。这样能够保证flow cache表、内核流表的相同流表项同步更新。
而应用于方式2下的flow cache表,如上所述,方式2下的flow cache表内不会记录流表项,其只是通过诸如指针或者引用等方式与内核流表中的一条流表项关联,基于此,应用于方式2下的flow cache表,为保证内核流表和flow cache表中相同的流表项及时更新,可先在上述将flow cache表关联于从内核流表中找到的所述特征字段匹配的流表项时进一步在该从内核流表中找到的所述特征字段匹配的流表项上设置关联标识;
之后,当需要删除内核流表中的流表项时,先检查待删除流表项是否设置关联标识,如果否,直接将待删除流表项删除,如果是,将待删除流表项的关联标识更新为老化标识,此时并不删除待删除流表项。
之后,在每次依据flow cache表关联的内核流表中与所述特征字段匹配的流表项转发报文之前,进一步执行以下步骤:
检查所述flow cache表关联的与所述特征字段匹配的流表项是否设置了老化标识,如果否,继续执行依据flow cache表关联的内核流表中与所述特征字段匹配的流表项转发报文的操作,如果是,取消所述flow cache表与流表项的关联关系,从所述内核流表中删除flow cache表关联的与所述特征字段匹配的流表项,重新从所述内核流表中找到与所述特征字段匹配的流表项,将所述flow cache表关联于重新从内核流表中找到的所述特征字段匹配的流表项,之后依据所述flow cache表当前关联的与所述特征字段匹配的流表项转发所述报文。这里,将flow cache表关联于重新从内核流表中找到的所述特征字段匹配的流表项时还需要进一步执行如上所述的操作:针对该重新从内核流表中找到的所述特征字段匹配的流表项设置关联标识的操作。
至此,完成本发明提供的方法描述。
下面对本发明提供的设备进行描述:
参见图4,图4为本发明提供的设备结构图。该设备应用于软件自定义网络SDN中的OVS,包括:
接收单元,用于通过连接虚拟机VM的虚拟机端口接收报文;
解析单元,用于从所述报文中解析出所述报文携带的特征字段;
检查单元,用于检查所述虚拟机端口对应的流缓存flow cache表中的流表项是否与所述特征字段匹配,
处理单元,用于在所述检查单元的检查结果为是时,依据所述flow cache表中所述特征字段匹配的流表项转发报文;
以及,在所述检查单元的检查结果为否时,从本OVS的内核流表中找到所述特征字段匹配的流表项,依据从内核流表中找到的所述特征字段匹配的流表项转发报文,并将所述flow cache表中的流表项更新为从所述内核流表中找到的所述特征字段匹配的流表项。
优选地,所述处理单元在从内核流表中未找到所述特征字段匹配的流表项时,进一步检查本OVS的用户态流表中是否存在所述特征字段匹配的流表项,如果是,依据所述用户态流表中所述特征字段匹配的流表项转发所述报文,并将所述用户态流表中所述特征字段匹配的流表项下发至内核流表;如果否,请求本OVS连接的SDN控制器下发所述特征字段匹配的流表项,依据所述SDN控制器下发的所述特征字段匹配的流表项转发所述报文,并将所述SDN控制器下发的所述特征字段匹配的流表项记录至所述用户态流表。
优选地,所述处理单元将flow cache表中的流表项更新为从内核流表中找到的所述特征字段匹配的流表项包括:检查flow cache表是否存有流表项,如果否,将从内核流表中找到的所述特征字段匹配的流表项拷贝至flow cache表;如果是,拷贝该从内核流表中找到的所述特征字段匹配的流表项,将flow cache表中的流表项更新为拷贝的流表项;
基于此,本发明中,为保证内核流表和flow cache表中相同流表项同步更新,所述处理单元依据从内核流表中找到的所述特征字段匹配的流表项转发报文时进一步记录所述特征字段匹配的流表项的匹配次数为初始值和第一设定值之和;以及,依据flow cache表中所述特征字段匹配的流表项转发报文时进一步将所述特征字段匹配的流表项的匹配次数增加第一设定值,检查所述特征字段匹配的流表项的匹配次数是否达到设定阈值,如果是,从所述flow cache表中删除所述特征字段匹配的流表项。
优选地,所述处理单元将flow cache表中的流表项更新为从内核流表中找到的所述特征字段匹配的流表项包括:检查所述flow cache表当前是否已关联于所述内核流表中的流表项,如果否,将所述flow cache表关联于从内核流表中找到的所述特征字段匹配的流表项,所述flow cache表关联的流表项确认为所述flow cache表的流表项;如果是,取消所述flow cache表与流表项的关联关系,重新将所述flow cache表关联于从内核流表中找到的所述特征字段匹配的流表项;
基于此,上述处理单元依据flow cache表中特征字段匹配的流表项转发报文具体可包括:依据flow cache表关联的内核流表中与所述特征字段匹配的流表项转发报文;
本发明中,为保证内核流表和flow cache表中相同流表项同步更新,所述处理单元将flow cache表关联于从内核流表中找到的所述特征字段匹配的流表项进一步在从内核流表中找到的所述特征字段匹配的流表项上设置关联标识;
如此,所述处理单元在需要删除内核流表中的流表项时,检查待删除流表项是否设置关联标识,如果否,直接删除待删除流表项,如果是,将待删除流表项的关联标识更新为老化标识;
以及,所述处理单元在依据flow cache表关联的内核流表中与特征字段匹配的流表项转发报文之前进一步检查flow cache表关联的与所述特征字段匹配的流表项是否设置了老化标识,如果否,继续执行依据flow cache表关联的内核流表中与所述特征字段匹配的流表项转发报文的操作,如果是,从内核流表中删除flow cache表关联的与所述特征字段匹配的流表项,重新从所述内核流表中找到与所述特征字段匹配的流表项,将所述flow cache表关联于重新从内核流表中找到的所述特征字段匹配的流表项,依据所述flowcache表当前关联的与所述特征字段匹配的流表项转发所述报文。
至此,完成本发明提供的设备结构描述。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

Claims (14)

1.一种报文转发的方法,其特征在于,该方法应用于软件自定义网络SDN中的开放虚拟交换机OVS,包括:
通过连接虚拟机VM的虚拟机端口接收报文;
从所述报文中解析出所述报文携带的特征字段;
检查所述虚拟机端口对应的流缓存flow cache表中的流表项是否与所述特征字段匹配,
如果是,依据所述flow cache表中所述特征字段匹配的流表项转发报文;
如果否,从OVS的内核流表中查找所述特征字段匹配的流表项;当从本OVS的内核流表中找到所述特征字段匹配的流表项时,依据从内核流表中找到的所述特征字段匹配的流表项转发报文,并将所述flow cache表中的流表项更新为从所述内核流表中找到的所述特征字段匹配的流表项。
2.根据权利要求1所述的方法,其特征在于,在从内核流表中未找到所述特征字段匹配的流表项时,该方法进一步包括:
检查本OVS的用户态流表中是否存在与所述特征字段匹配的流表项,
如果是,依据所述用户态流表中所述特征字段匹配的流表项转发所述报文,并将所述用户态流表中所述特征字段匹配的流表项下发至内核流表;
如果否,请求本OVS连接的SDN控制器下发所述特征字段匹配的流表项,依据所述SDN控制器下发的所述特征字段匹配的流表项转发所述报文,并将所述SDN控制器下发的所述特征字段匹配的流表项记录至所述用户态流表。
3.根据权利要求1或2所述的方法,其特征在于,所述将flow cache表中的流表项更新为从内核流表中找到的所述特征字段匹配的流表项包括:
检查flow cache表是否存有流表项,
如果否,将从内核流表中找到的所述特征字段匹配的流表项拷贝至所述flow cache表;
如果是,拷贝该从内核流表中找到的所述特征字段匹配的流表项,将flow cache表中的流表项更新为拷贝的流表项。
4.根据权利要求3所述的方法,其特征在于,所述依据从内核流表中找到的所述特征字段匹配的流表项转发报文进一步包括:记录所述特征字段匹配的流表项的匹配次数为初始值和第一设定值之和;
所述依据flow cache表中所述特征字段匹配的流表项转发报文进一步包括:将所述特征字段匹配的流表项的匹配次数增加第一设定值,检查所述特征字段匹配的流表项的匹配次数是否达到设定阈值,如果是,从所述flow cache表中删除所述特征字段匹配的流表项。
5.一种报文转发的方法,其特征在于,该方法应用于软件自定义网络SDN中的开放虚拟交换机OVS,包括:
通过连接虚拟机VM的虚拟机端口接收报文;
从所述报文中解析出所述报文携带的特征字段;
检查所述虚拟机端口对应的流缓存flow cache表中的流表项是否与所述特征字段匹配,
如果是,依据所述flow cache表中所述特征字段匹配的流表项转发报文;
如果否,从OVS的内核流表中查找所述特征字段匹配的流表项;当从本OVS的内核流表中找到所述特征字段匹配的流表项时,依据从内核流表中找到的所述特征字段匹配的流表项转发报文,并将所述flow cache表关联于从内核流表中找到的所述特征字段匹配的流表项。
6.根据权利要求5所述的方法,其特征在于,在从内核流表中未找到所述特征字段匹配的流表项时,该方法进一步包括:
检查本OVS的用户态流表中是否存在与所述特征字段匹配的流表项,
如果是,依据所述用户态流表中所述特征字段匹配的流表项转发所述报文,并将所述用户态流表中所述特征字段匹配的流表项下发至内核流表;
如果否,请求本OVS连接的SDN控制器下发所述特征字段匹配的流表项,依据所述SDN控制器下发的所述特征字段匹配的流表项转发所述报文,并将所述SDN控制器下发的所述特征字段匹配的流表项记录至所述用户态流表。
7.根据权利要求5或6所述的方法,其特征在于,所述将所述flow cache表关联于从内核流表中找到的所述特征字段匹配的流表项包括:
检查所述flow cache表当前是否已关联于所述内核流表中的流表项,
如果否,将所述flow cache表关联于从内核流表中找到的所述特征字段匹配的流表项,所述flow cache表关联的流表项确认为所述flow cache表的流表项;
如果是,取消所述flow cache表与流表项的关联关系,重新将所述flow cache表关联于从内核流表中找到的所述特征字段匹配的流表项。
8.根据权利要求7所述的方法,其特征在于,所述将flow cache表关联于从内核流表中找到的所述特征字段匹配的流表项进一步包括:在从内核流表中找到的所述特征字段匹配的流表项上设置关联标识;
该方法进一步包括:当需要删除内核流表中的流表项时,检查待删除流表项是否设置关联标识,如果否,直接将待删除流表项删除,如果是,将待删除流表项的关联标识更新为老化标识。
9.根据权利要求8所述的方法,其特征在于,所述依据flow cache表中所述特征字段匹配的流表项转发报文包括:依据flow cache表关联的内核流表中与所述特征字段匹配的流表项转发报文;
在依据flow cache表关联的内核流表中与所述特征字段匹配的流表项转发报文之前进一步包括:检查所述flow cache表关联的与所述特征字段匹配的流表项是否设置了老化标识,如果否,继续执行所述依据flow cache表关联的内核流表中与所述特征字段匹配的流表项转发报文的操作,如果是,从所述内核流表中删除flow cache表关联的与所述特征字段匹配的流表项,重新从所述内核流表中找到与所述特征字段匹配的流表项,将所述flow cache表关联于重新从内核流表中找到的所述特征字段匹配的流表项,依据所述flowcache表当前关联的与所述特征字段匹配的流表项转发所述报文。
10.一种报文转发的设备,其特征在于,该设备应用于软件自定义网络SDN中的开放虚拟交换机OVS,包括:
接收单元,用于通过连接虚拟机VM的虚拟机端口接收报文;
解析单元,用于从所述报文中解析出所述报文携带的特征字段;
检查单元,用于检查所述虚拟机端口对应的流缓存flow cache表中的流表项是否与所述特征字段匹配,
处理单元,用于在所述检查单元的检查结果为是时,依据所述flow cache表中所述特征字段匹配的流表项转发报文;
以及,在所述检查单元的检查结果为否时,从OVS的内核流表中查找所述特征字段匹配的流表项;当从本OVS的内核流表中找到所述特征字段匹配的流表项时,依据从内核流表中找到的所述特征字段匹配的流表项转发报文,并将所述flow cache表中的流表项更新为从所述内核流表中找到的所述特征字段匹配的流表项。
11.根据权利要求10所述的设备,其特征在于,所述处理单元在从内核流表中未找到所述特征字段匹配的流表项时,进一步检查本OVS的用户态流表中是否存在所述特征字段匹配的流表项,如果是,依据所述用户态流表中所述特征字段匹配的流表项转发所述报文,并将所述用户态流表中所述特征字段匹配的流表项下发至内核流表;如果否,请求本OVS连接的SDN控制器下发所述特征字段匹配的流表项,依据所述SDN控制器下发的所述特征字段匹配的流表项转发所述报文,并将所述SDN控制器下发的所述特征字段匹配的流表项记录至所述用户态流表。
12.根据权利要求10或11所述的设备,其特征在于,所述处理单元将flow cache表中的流表项更新为从内核流表中找到的所述特征字段匹配的流表项包括:检查flow cache表是否存有流表项,如果否,将从内核流表中找到的所述特征字段匹配的流表项拷贝至flowcache表;如果是,拷贝该从内核流表中找到的所述特征字段匹配的流表项,将flow cache表中的流表项更新为拷贝的流表项;
所述处理单元依据从内核流表中找到的所述特征字段匹配的流表项转发报文时进一步记录所述特征字段匹配的流表项的匹配次数为初始值和第一设定值之和;以及,依据flow cache表中所述特征字段匹配的流表项转发报文时进一步将所述特征字段匹配的流表项的匹配次数增加第一设定值,检查所述特征字段匹配的流表项的匹配次数是否达到设定阈值,如果是,从所述flow cache表中删除所述特征字段匹配的流表项。
13.一种报文转发的设备,其特征在于,该设备应用于软件自定义网络SDN中的开放虚拟交换机OVS,包括:
接收单元,用于通过连接虚拟机VM的虚拟机端口接收报文;
解析单元,用于从所述报文中解析出所述报文携带的特征字段;
检查单元,用于检查所述虚拟机端口对应的流缓存flow cache表中的流表项是否与所述特征字段匹配,
处理单元,用于在所述检查单元的检查结果为是时,依据所述flow cache表中所述特征字段匹配的流表项转发报文;
以及,在所述检查单元的检查结果为否时,从OVS的内核流表中查找所述特征字段匹配的流表项;当从本OVS的内核流表中找到所述特征字段匹配的流表项时,依据从内核流表中找到的所述特征字段匹配的流表项转发报文,并将所述flow cache表关联于从内核流表中找到的所述特征字段匹配的流表项。
14.根据权利要求13所述的设备,其特征在于,所述处理单元将所述flow cache表关联于从内核流表中找到的所述特征字段匹配的流表项:检查所述flow cache表当前是否已关联于所述内核流表中的流表项,如果否,将所述flow cache表关联于从内核流表中找到的所述特征字段匹配的流表项,所述flow cache表关联的流表项确认为所述flow cache表的流表项;如果是,取消所述flow cache表与流表项的关联关系,重新将所述flow cache表关联于从内核流表中找到的所述特征字段匹配的流表项;
所述处理单元依据flow cache表中特征字段匹配的流表项转发报文包括:依据flowcache表关联的内核流表中与所述特征字段匹配的流表项转发报文;
所述处理单元将flow cache表关联于从内核流表中找到的所述特征字段匹配的流表项进一步在从内核流表中找到的所述特征字段匹配的流表项上设置关联标识;以及,在需要删除内核流表中的流表项时,检查待删除流表项是否设置关联标识,如果否,直接删除待删除流表项,如果是,将待删除流表项的关联标识更新为老化标识;以及,在依据flowcache表关联的内核流表中与特征字段匹配的流表项转发报文之前进一步检查flow cache表关联的与所述特征字段匹配的流表项是否设置了老化标识,如果否,继续执行依据flowcache表关联的内核流表中与所述特征字段匹配的流表项转发报文的操作,如果是,从内核流表中删除flow cache表关联的与所述特征字段匹配的流表项,重新从所述内核流表中找到与所述特征字段匹配的流表项,将所述flow cache表关联于重新从内核流表中找到的所述特征字段匹配的流表项,依据所述flow cache表当前关联的与所述特征字段匹配的流表项转发所述报文。
CN201510014938.3A 2015-01-13 2015-01-13 报文转发方法和设备 Active CN104601468B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510014938.3A CN104601468B (zh) 2015-01-13 2015-01-13 报文转发方法和设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510014938.3A CN104601468B (zh) 2015-01-13 2015-01-13 报文转发方法和设备

Publications (2)

Publication Number Publication Date
CN104601468A CN104601468A (zh) 2015-05-06
CN104601468B true CN104601468B (zh) 2018-10-09

Family

ID=53126986

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510014938.3A Active CN104601468B (zh) 2015-01-13 2015-01-13 报文转发方法和设备

Country Status (1)

Country Link
CN (1) CN104601468B (zh)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104965810B (zh) * 2015-05-08 2018-08-21 国家计算机网络与信息安全管理中心 多核模式下快速处理数据报文的方法及装置
CN108028831A (zh) * 2015-09-22 2018-05-11 慧与发展有限责任合伙企业 加密的数据包
CN105357146B (zh) * 2015-10-21 2018-10-09 北京交通大学 出口网关内缓存队列饱和攻击防御方法、装置及系统
CN106020926B (zh) 2016-04-29 2019-10-25 华为技术有限公司 一种用于虚拟交换机技术中数据传输的方法及装置
CN106506402B (zh) * 2016-10-21 2019-08-23 中国科学院声学研究所 一种协议无关转发流缓存方法
CN109873768B (zh) * 2017-12-01 2021-06-22 华为技术有限公司 更新转发表的方法、硬件加速器、ovs和服务器
CN113542125B (zh) 2018-03-31 2022-11-25 华为技术有限公司 一种基于集成流表转发报文的方法及装置
CN112422457B (zh) * 2019-08-23 2023-04-07 中兴通讯股份有限公司 报文处理方法、装置和计算机存储介质
CN115486046A (zh) * 2020-05-14 2022-12-16 深圳市欢太科技有限公司 基于开放虚拟软交换机ovs的数据包处理方法及设备
CN111740910A (zh) * 2020-06-19 2020-10-02 联想(北京)有限公司 一种报文处理方法、装置、网络传输设备及报文处理系统
CN111740909A (zh) * 2020-06-19 2020-10-02 联想(北京)有限公司 一种报文处理方法、装置、网络传输设备及报文处理系统
CN111817961B (zh) * 2020-08-06 2022-02-08 平安科技(深圳)有限公司 Overlay网络中基于Open vSwitch内核态流表的分布式路由方法及装置
CN113595822B (zh) * 2021-07-26 2024-03-22 北京恒光信息技术股份有限公司 一种数据包管理方法、系统和装置
CN116185886B (zh) * 2022-12-13 2023-10-13 中国科学院声学研究所 一种匹配表系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101986611A (zh) * 2010-11-30 2011-03-16 东南大学 基于两级缓存的快速组流方法
CN103346981A (zh) * 2013-06-28 2013-10-09 华为技术有限公司 虚拟交换方法、相关装置和计算机系统
CN103763194A (zh) * 2013-12-31 2014-04-30 杭州华三通信技术有限公司 一种报文转发方法及装置
CN104092612A (zh) * 2014-06-05 2014-10-08 汉柏科技有限公司 更新快速转发表匹配顺序的方法及装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9379973B2 (en) * 2013-02-11 2016-06-28 Cisco Technology, Inc. Binary compatible extension architecture in an openflow compliant network environment
US10148544B2 (en) * 2013-04-06 2018-12-04 Citrix Systems, Inc. Systems and methods for cluster statistics aggregation

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101986611A (zh) * 2010-11-30 2011-03-16 东南大学 基于两级缓存的快速组流方法
CN103346981A (zh) * 2013-06-28 2013-10-09 华为技术有限公司 虚拟交换方法、相关装置和计算机系统
CN103763194A (zh) * 2013-12-31 2014-04-30 杭州华三通信技术有限公司 一种报文转发方法及装置
CN104092612A (zh) * 2014-06-05 2014-10-08 汉柏科技有限公司 更新快速转发表匹配顺序的方法及装置

Also Published As

Publication number Publication date
CN104601468A (zh) 2015-05-06

Similar Documents

Publication Publication Date Title
CN104601468B (zh) 报文转发方法和设备
EP2955884B1 (en) Method, apparatus and system for configuring flow table in openflow network
KR101886291B1 (ko) 흐름 엔트리 구성 방법, 장치, 및 시스템
EP3633929B1 (en) Method for sending virtual extensible local area network packet, computer device, and computer readable medium
EP3313025B1 (en) Data packet forwarding
CN104796353B (zh) 报文转发方法、交换机
US9967177B2 (en) Control apparatus, communication system, switch control method and program
EP3179687B1 (en) Network flow information statistics method and apparatus
US20170026313A1 (en) Data Processing Method and Apparatus for OpenFlow Network
WO2015106623A1 (zh) 一种配置、下发流表项的方法及装置
WO2014198064A1 (zh) 一种处理报文的方法和转发器
CN108173763B (zh) 报文处理方法、设备及系统
EP3425860B1 (en) Tunnel type selection methods and apparatuses
CN103347075B (zh) 一种数据多级缓存处理方法
CN109413001B (zh) 对云计算系统内的交互数据进行安全保护的方法及装置
CN102263837B (zh) 一种域名系统dns解析方法及装置
US10230647B2 (en) Data packet processing method and device
CN1863193B (zh) 实现网络安全装置安全策略的方法
US11349757B2 (en) ICN packet forwarding method
CN104486217A (zh) 跨网络的报文转发方法和设备
CN103685030A (zh) 一种数据处理方法和设备
CN103078869A (zh) 一种加速会话转发的系统及其方法
EP2965204B1 (en) Server to client reverse persistence
US11303476B2 (en) Communication apparatus, communication system, communication control method, communication program and device connection control program
JP2013126219A (ja) 転送サーバおよび転送プログラム

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information

Address after: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No.

Applicant after: Xinhua three Technology Co., Ltd.

Address before: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No.

Applicant before: Huasan Communication Technology Co., Ltd.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant