一种处理报文的方法和转发器技术

技术编号:20118679 阅读:31 留言:0更新日期:2019-01-16 12:13
本发明专利技术的实施例提供了一种在软件定义网络(Software‑Defined Network)中处理报文的方法,所述方法由转发器执行,所述方法包括:接收输入报文;根据所述输入报文确定所述输入报文所属的流;根据流与上下文标识集合之间的第一对应关系确定所述输入报文所属的流对应的上下文标识集合;所述第一对应关系中每个流对应的上下文标识集合包括至少一个上下文标识;根据上下文标识与上下文之间的第二对应关系确定与所述上下文标识集合相对应的上下文;根据所述上下文标识集合对应的上下文对所述输入报文进行处理。本发明专利技术实施例中的流与上下文不是直接关联的,当有多个流共用一个上下文时,这个上下文也不需要被保存多遍,在与现有技术相同的硬件条件下,本发明专利技术的实施例将使得转发器的存储能力和处理能力大大提高。

A Method of Processing Messages and Transmitter

An embodiment of the present invention provides a method for processing messages in a Software Defined Network, which is executed by a transponder. The method includes: receiving an input message; determining the flow to which the input message belongs according to the input message; and determining the flow to which the input message belongs according to the first correspondence between the flow and the set of context identifiers. The corresponding set of context identifiers; the set of context identifiers corresponding to each stream in the first corresponding relationship includes at least one context identifier; the context corresponding to the set of context identifiers is determined according to the second corresponding relationship between the context identifiers and the context; and the input message is processed according to the context corresponding to the set of context identifiers. The streams in the embodiments of the present invention are not directly related to the context, and when multiple streams share the same context, the context does not need to be saved multiple times. Under the same hardware conditions as the prior art, the embodiments of the present invention will greatly improve the storage and processing capabilities of the transponder.

【技术实现步骤摘要】
一种处理报文的方法和转发器
本专利技术实施例涉及通信
,并且更具体地,涉及一种处理报文的方法和转发器。
技术介绍
软件定义网络(英文全称:SoftwareDefinedNetwork,英文简称:SDN)是想把传统封闭的网络转变成一个开放式的环境,就像电脑一样也可以实现编程。OpenFlow技术是实现SDN的一种方式。OpenFlow技术最早由斯坦福大学提出,旨在基于现有传输控制协议(英文全称:TransmissionControlProtocol,英文简称:TCP)/网际协议(英文全称:InternetProtocol,英文简称:IP)技术条件,以创新的网络互联理念解决当前网络面对新业务产生的种种瓶颈。OpenFlow将原来完全由单一网元实现的报文转发处理过程转化为由OpenFlow转发器和控制器来共同完成,从而实现了数据转发和业务控制的分离。控制器通过OpenFlow协议这个标准接口对OpenFlow转发器中的流表进行控制,从而实现对整个网络进行集中控制。OpenFlow转发器中最重要的组成部分之一就是流表,流表由很多个流表项组成,每个流表项就是一个报文处理规则。转发器收到一个报文后可以通过查询流表项来获得需执行的动作。转发器可以包括多个流表,控制器为转发器的一个或多个流表下发针对某业务流的流表项。每个OpenFlow流表项由流的信息(如,流匹配域(flowmatchfield))、计数器和动作(Action)组成,具体参见如下表1所示:表1流匹配域计数器动作其中,表1中流匹配域是由多个域组成的匹配信息,是流表项的标识,可以用来定义流。表2所示的为流匹配域的一个例子,该流匹配域由十个域组成。表2表1中的计数器是用来对流量相关的数据进行计数的,计数器可以根据每张流表、每个流或每个端口等进行单独设置。表1中的动作标明了对与该流表项相匹配的报文应该执行的动作类型,例如转发、丢弃等动作类型。目前Openflow协议中定义的动作类型包括:Output:从特定端口转发报文;Set-Queue:通过特定转发队列转发报文;Drop:丢弃报文;Group:将多个流汇聚到一个动作处理;Push-Tag/Pop-Tag:封装、解封装;Set-Field:修改报文头;Change-TTL:修改TTL域。目前流表的动作模式有两种:主动模式和被动模式。主动模式下,控制器将自己收集的流表信息主动下发给转发器,随后转发器可以直接根据流表进行转发;被动模式是指转发器收到一个报文后没有找到匹配的流表项记录时,将该报文转发给控制器,由控制器决策该如何处理,并下发相应的流表项给转发器。由于现有技术的流表中,流与动作是直接关联的,当某些流对应的动作是相同时,针对每个流都需要在流表项中保存相应的动作,由此导致转发器中存储的信息出现大量的冗余,并且维护起来也非常困难。例如,当对某一个动作进行修改时,则需要对相关的流表项都进行修改。
技术实现思路
本专利技术实施例提供了一种在SDN中处理报文的方法和转发器,用以减少转发器中存储的冗余信息,提高转发器对报文的处理能力。第一方面,提供了一种在SDN中处理报文的方法,该方法由转发器执行,具体包括:接收输入报文;根据所述输入报文确定所述输入报文所属的流;根据流与上下文标识集合之间的第一对应关系确定所述输入报文所属的流对应的上下文标识集合;所述第一对应关系中每个流对应的上下文标识集合包括至少一个上下文标识;根据上下文标识与上下文之间的第二对应关系确定与所述上下文标识集合相对应的上下文;根据所述上下文标识集合对应的上下文对所述输入报文进行处理。结合第一方面,在第一方面的第一种可能的实现方式中,所述方法还包括:根据所述第一对应关系确定所述输入报文所属的流对应的上下文标识集合之前,判断所述第一对应关系中有没有与所述输入报文所属的流相对应的上下文标识集合;如果有,则执行所述根据所述第一对应关系确定所述输入报文所属的流对应的上下文标识集合的步骤;如果没有,则执行如下步骤:发送流规则请求消息给控制器,所述流规则请求消息中包括所述输入报文的报文头或内容;接收所述控制器发送的流规则安装消息,所述流规则安装消息中包括所述输入报文的流对应的上下文标识集合;在所述第一对应关系中添加所述输入报文的所属的流的信息,以及与所述输入报文的流相对应的上下文标识集合。结合第一方面或第一方面第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述方法还包括:根据上下文标识与上下文之间的第二对应关系确定与所述上下文标识集合相对应的上下文之前,判断所述第二对应关系中有没有与所述上下文标识集合相对应的上下文;如果有,则执行所述根据所述第二对应关系确定所述上下文标识集合对应的上下文的步骤;如果所述上下文集合中的部分或全部上下文标识没有对应的上下文,则执行如下步骤:发送上下文请求消息给所述控制器,所述上下文请求消息中包括所述上下文标识集合中的所述部分或全部上下文标识;接收所述控制器发送的上下文安装消息,所述上下文安装消息中包括所述上下文标识集合中的部分或全部上下文标识、以及与所述上下文标识集合中的部分或全部上下文标识相对应的上下文;在所述第二对应关系中,添加所述上下文标识集合中的部分或全部上下文标识、以及与所述上下文标识集合中的部分或全部上下文标识相对应的上下文。第二方面,提供了一种在SDN中使用的转发器,包括一个接收器,一个处理器和一个存储器:所述存储器,用于存储流与与上下文标识集合之间的第一对应关系,以及上下文标识与上下文之间的第二对应关系;所述第一对应关系中每个流对应的上下文标识集合包括至少一个上下文标识;所述接收器,用于接收输入报文;所述处理器,用于根据所述输入报文确定所述输入报文所属的流;根据所述存储器存储的的第一对应关系确定所述输入报文所属的流对应的上下文标识集合;根据所述存储器存储的第二对应关系确定与所述上下文标识集合相对应的上下文;并根据所述上下文标识集合对应的上下文对所述输入报文进行处理。结合第二方面,在第二方面的第一种可能的实现方式中,所述转发器还包括一个发送器;所述处理器还用于:根据所述存储器存储的所述第一对应关系确定所述输入报文所属的流对应的上下文标识集合之前,判断所述第一对应关系中有没有与所述输入报文所属的流相对应的上下文标识集合;如果有,则根据所述第一对应关系确定所述输入报文所属的流对应的上下文标识集合;如果没有,则通知所述发送器发送流规则请求消息给控制器,所述流规则请求消息中包括所述输入报文的报文头或内容;所述接收器,还用于用于接收所述控制器发送的流规则安装消息,所述流规则安装消息中包括所述输入报文的流对应的上下文标识集合;所述处理器,还用于在所述第一对应关系中添加所述输入报文的所属的流的信息,以及与所述输入报文的流相对应的上下文标识集合。结合第二方面或第二方面第一种可能的实现方式,在第二方面的第二种可能的实现方式中,所述处理器,还用于根据所述存储器存储的第二对应关系确定与所述输入报文所属的流对应的上下文标识集合相对应的上下文之前,判断第二对应关系中有没有与输入报文所属的流对应的上下文标识集合相对应的上下文;如果有,则根据所述存储器存储的第二对应关系确定与所述上下文标识集合相对应的上下文;如果所述上下文标识集本文档来自技高网
...

【技术保护点】
1.一种在软件定义网络(Software‑Defined Network)中处理报文的方法,其特征在于,所述方法由转发器执行,所述方法包括:接收输入报文;根据所述输入报文确定所述输入报文所属的流;根据流与上下文标识集合之间的第一对应关系确定所述输入报文所属的流对应的上下文标识集合;所述第一对应关系中每个流对应的上下文标识集合包括至少一个上下文标识;根据上下文标识与上下文之间的第二对应关系确定与所述上下文标识集合相对应的上下文;根据所述上下文标识集合对应的上下文对所述输入报文进行处理。

【技术特征摘要】
1.一种在软件定义网络(Software-DefinedNetwork)中处理报文的方法,其特征在于,所述方法由转发器执行,所述方法包括:接收输入报文;根据所述输入报文确定所述输入报文所属的流;根据流与上下文标识集合之间的第一对应关系确定所述输入报文所属的流对应的上下文标识集合;所述第一对应关系中每个流对应的上下文标识集合包括至少一个上下文标识;根据上下文标识与上下文之间的第二对应关系确定与所述上下文标识集合相对应的上下文;根据所述上下文标识集合对应的上下文对所述输入报文进行处理。2.根据权利要求1所述的方法,其特征在于,所述根据所述输入报文确定所述输入报文所属的流包括:根据所述输入报文的报文头或内容确定所述输入报文所属的流。3.根据权利要求1或2所述的方法,其特征在于,根据所述第一对应关系确定所述输入报文所属的流对应的上下文标识集合之前,所述方法进一步包括:判断所述第一对应关系中有没有与所述输入报文所属的流相对应的上下文标识集合;如果有,则执行所述根据所述第一对应关系确定所述输入报文所属的流对应的上下文标识集合的步骤;如果没有,则执行如下步骤:发送流规则请求消息给控制器,所述流规则请求消息中包括所述输入报文的报文头或内容;接收所述控制器发送的流规则安装消息,所述流规则安装消息中包括所述输入报文的流对应的上下文标识集合;在所述第一对应关系中添加所述输入报文的所属的流的信息,以及与所述输入报文的流相对应的上下文标识集合。4.根据权利要求3所述的方法,其特征在于,所述控制器发送的流规则安装消息中进一步包括与所述上下文标识集合相对应的上下文;所述转发器收到所述流规则安装消息后,如果发现所述第二对应关系中没有保存所述上下文标识集合中的部分或全部上下文标识、以及与所述上下文标识集合中部分或全部上下文标识相对应的上下文,则在所述第二对应关系中,添加所述上下文标识集合中的部分或全部上下文标识、以及与所述上下文标识集合中部分或全部上下文标识相对应的上下文。5.根据权利要求1或2所述的方法,其特征在于,根据上下文标识与上下文之间的第二对应关系确定与所述上下文标识集合相对应的上下文之前,所述方法进一步包括:判断所述第二对应关系中有没有与所述上下文标识集合相对应的上下文;如果有,则执行所述根据所述第二对应关系确定所述上下文标识集合对应的上下文的步骤;如果所述上下文集合中的部分或全部上下文标识没有对应的上下文,则执行如下步骤:发送上下文请求消息给所述控制器,所述上下文请求消息中包括所述上下文标识集合中的所述部分或全部上下文标识;接收所述控制器发送的上下文安装消息,所述上下文安装消息中包括所述上下文标识集合中的部分或全部上下文标识、以及与所述上下文标识集合中的部分或全部上下文标识相对应的上下文;在所述第二对应关系中,添加所述上下文标识集合中的部分或全部上下文标识、以及与所述上下文标识集合中的部分或全部上下文标识相对应的上下文。6.根据权利要求1-5任意一项所述的方法,其特征在于,当所述上下文标识集合中包括多个上下文标识时,所述根据与所述上下文标识集合对应的上下文对所述输入报文进行处理时按照预设的上下文顺序进行。7.根据权利要求6所述的方法,其特征在于,如果所述预设的上下文顺序中包括至少两个上下文的顺序相同的情况,则所述转发器同时根据所述至少两个上下文对所述输入报文进行处理。8.根据权利要求1-7任意一项所述的方法,其特征在于,所述方法还包括:接收控制器发送的流删除消息,所述流删除消息中包括待删除流的信息;从所述第一对应关系中删除所述待删除的流的信息、以及与所述待删除的流对应的上下文标识集合。9.根据权利要求8所述的方法,其特征在于,如果所述被删除的流对应的部分或全部上下文标识没有对应其它流,则所述方法还包括:从所述第二对应关系中删除所述被删除的流对应的部分或全部上下文标识、以及与所述被删除的流对应的部分或全部上下文标识相对应的上下文。10.根据权利要求1-7任意一项所述的方法,其特征在于,所述方法还包括:接收控制器发送的上下文删除消息,所述上下文删除消息中包括至少一个待删除的上下标识;从所述第二对应关系中,删除所述至少一个待删除的上下文标识、以及与所述至少一个待删除的上下文标识相对应的上下文。11.根据权利要求10所述的方法,其特征在于,所述删除所述至少一个待删除的上下文标识相对应的上下文之后还包括:在所述第一对应关系中,删除与所述已经删除的上下文对应的上下文标识。12.根据权利要求11所述的方法,其特征在于,在所述第一对应关系中删除与所述已经删除的上下文对应的上下文标识之后还包括:在所述第一对应关系中,删除与所述已经删除的上下文标识相对应的流的信息。13.根据权利要求1-12任意一项所述的方法,其特征在于,所述方法还包括:对所述输入报文进行处理后得到上下文处理结果。14.根据权利要求13所述的方法,其特征在于,所述方法还包括:将所述上下文处理结果发送给控制器。15.根据权利要求14所述的方法,其特征在于,所述方法还包括:接收所述控制器为所述输入报文新确定的流和新确定的上下文标识集合,以便根据所述新确定的上下文标识集合对应的上下文对所述输入报文进行进一步的处理。16.根据权利要求13所述的方法,其特征在于,如果所述上下文处理结果为一个新生成的报文,则所述方法还包括:根据新生成的报文确定所述新生成的报文所属的流;根据所述第一对应关系确定与所述新生成的报文所属的流相对应的新的上下文标识集合;根据所述第二对应关系确定与所述新的上下文标识集合相对应的上下文;根据所述新的上下文标识集合对应的上下文对所述新生成的报文进行处理。17.根据权利要求1-16任意一项所述的方法,其特征在于,所述方法还包括:所述输入报文的流对应的上下文标识集合中的部分或全部上下文标识还对应其它流。18.根据权利要求1-16任意一项所述的方法,其特征在于,所述上下文标识还用于指示每个上下文的上下文类型,所述上下文类型中不包括动作类型。19.一种在在软件定义网络(Software-DefinedNetwork)中使用的转发器,其特征在于,所述转发器包括一个接口,一个处理器和一个存储器:所述存储器,用于存储流与与上下文标识集合之间的第一对应关系,以及上下文标识与上下文之间的第二对应关系;所述第一对应关系中每个流对应的上下文标识集合包括至少一个上下文标识;所述接口,用于接收输入报文;所述处理器,用于根据所述输入报文确定所述输入报文所属的流;根据所述存储器存储的第一对应关系确定所述输入报文所属的流对应的上下文标识集合;根据所述存储器存储的第二对应关系确定与所述上下文标识集合相对应的上下文;并根据所述上下文标识集合对应的上下文对所述输入报文进行处理。20.根据权利要求19所述的转发器,其特征在于,所述处理器用于根据所述输入报文确定所述输入报文所属的流具体为:所述处理器用于根据所述输入报文的报文头或内容确定所述输入报文对应的流。21.根据权利要求19或20所述的转发器,其特征在于,所述接口包括一个接收器和一个发送器;所述接口,用于接收输入报文具体为:所述接口中的接收器用于接收所述输入报文。22.根据权利要求21所述的转发器,其特征在于,所述处理器还用于:根据所述存储器存储的所述第一对应关系确定所述输入报文所属的流对应的上下文标识集合之前,判断所述第一对应关系中有没有与所述输入报文所属的流相对应的上下文标识集合;如果有,则根据所述第一对应关系确定所述输入报文所属的流对应的上下文标识集合;如果没有,则通知所述发送器;所述发送器用于在收到所述处理器的通知后发送流规则请求消息给控制器,所述流规则请求消息中包括所述输入报文的报文头或内容;所述接收器,还用于接收所述控制器发送的流规则安装消息,所述流规则安装消息中包括所述输入报文的流对应的上下文标识集合;所述处理器,还用于在所述第一对应关系中添加所述输入报文的所属的流的信息,以及与所述输入报文的流相对应的上下文标识集合。23.根据权利要求21所述的转发器,其特征在于,所述处理器,还用于根据所述存储器存储的第二对应关系确定与所述输入报文所属的流对应的上下文标识集合相对应的上下文之前,判断第二对应关系中有没有与输入报文所属的流对应的上下文标识集合相对应的上下文;如果有,则根据所述存储器存储的第二对应关系确定与所述上下文标识集合相对应的上下文;如果所述上下文标识集合中的部分或全部上下文标识没有对应的上下文,则通知所述发送器;所述发送器用于发送上下文请求消息给所述控制器,所述上下文请求消息中包括所述输入报文所属的流对应的上下文标识集合中的部分或全部上下文标识;所述接收器,还用于接收所述控制器发送的上下文安装消息,所述上下文安装消息中包括所述上下文标识集合中的所述部分或全部上下文标识、以及与上下文标识集合中的所述部分或全部上下文标识相对应的上下文;所述处理器还用于,在所述第二对应关系中,添加所述上下文标识集合中的所述部分或全部上下文标识、以及与上下文标识集合中的所述部分或全部上下文标识相对应的上下文。24.根据权利要求19或20所述的转发器,其特征在于,如果所述输入报文所属的流有多个,所述处理器用于根据流与上下文标识之间的第一对应关系确定所述输入报文所属的流对应的上下文标识集合具体为:所述处理器用于根据所述第一对应关系依次获取所述输入报文所属的每个流对应的上下文标识集合。25.根据权利要求19或20所述的转发器,其特征在于,当所述上下文标识集合中包括多个上下文标识时,则所述处理器用于根据所述上下文标识集合相对应的上下文对所述输入报文进行处理时按照预设的上下文顺序进行。26.根据权利要求25所述的转发器,其特征在于,如果所述预设的上下文顺序中包括至少两个上下文的顺序相同的情况,则所述处理器还用于同时根据所述至少两个上下文对所述输入报文进行处理。27.根据权利要求19-26任意一项所述的转发器,其特征在于,所述接收器,还用于接收控制器发送的流删除消息,所述流删除消息中包括待删除的流的信息;所述处理器,还用于从所述第一对应关系中删除所述待删除的流的信息、以及与所述待删除的流...

【专利技术属性】
技术研发人员:谭仕勇倪慧蔡慧
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1