报文处理的方法及转发设备技术

技术编号:15302786 阅读:87 留言:0更新日期:2017-05-14 23:00
本发明专利技术实施例提供了一种报文处理的方法,包括:根据报文中连续的N层协议头中的第i层协议头,查找对应的流表,确定与其中的第一字段对应的指令并执行该指令以生成协议位置表。本发明专利技术实施例中,执行主体在通过流表逐层解析报文中连续的N层协议头时,生成协议位置表,用于记录每一层协议头在报文中的起始位置。该协议位置表以协议ID作为索引且协议ID是由控制器分配的。当增加新的协议时,控制器分配一个新的协议ID并配置相应的流表,执行主体在协议位置表中增加一个新的表项即可。这样,该执行主体通过查询协议位置表能够获取任意一层协议头的起始位置,进而可将报文处理窗口的起始位置移动至该起始位置,对该协议头进行引用或编辑处理。

Message processing method and forwarding device

Including the embodiment of the invention provides a method for processing message according to the I protocol layer in N protocol packet head head continuous in the table to find the corresponding flow, and determine the field corresponding to the first instruction and executes the instructions to generate protocol table. In the embodiment of the invention, the executing entity generates a protocol position table when the continuous N layer protocol header is parsed by the flow meter layer by layer to record the starting position of each layer of the protocol header in the message. The protocol location table is indexed by protocol ID, and the protocol ID is assigned by the controller. When new protocols are added, the controller assigns a new protocol, ID, and configures the corresponding flow table, where the executing entity adds a new table item to the protocol location table. In this way, the implementation of the main position through query protocol table can access arbitrary starting position of one layer of the head, and then the message processing window start position to the start position of the head of the protocol reference or editing.

【技术实现步骤摘要】
报文处理的方法及转发设备
本专利技术实施例涉及通信领域,并且更具体地,涉及一种报文处理的方法及转发设备。
技术介绍
软件定义网络(SoftwareDefinedNetwork,SDN)是新一代网络架构,其核心思想是将控制面和转发设备传输的数据面解耦。SDN中可以通过在控制器(Controller)上编程来实时控制转发,实现动态调整。SDN能够更好地满足网络业务的应用需求,比如灵活创建虚拟子网、基于流量统计的实时负载均衡、流量工程(TrafficEngineering,TE)等。开放流(OpenFlow)技术的基本思想是转发设备维护一个(FlowTable)并且只按照流表中的指令进行转发处理,流表的生成、维护、下发完全由控制器来实现。流表包括匹配域(MatchFields)、计数器(Counters)和指令集(Instructions)。匹配域是报文匹配的输入关键字,可以是端口号、虚拟局域网(VirtualLocalAreaNetwork,VLAN)、L2/L3/L4信息等,每个匹配字段都可以是通配的,网络的运营商可以决定使用何种粒度的流,比如运营商只需要根据目的网际协议(InternetProtocol,IP)地址进行路由,那么流表的匹配域就可以只有目的IP地址字段。指令集用于对报文进行处理,最基本的处理包括修改报文、封装和解封装、转发、丢弃等。但是,OpenFlow技术不能灵活支持新的协议。对新的协议,必须增加新的指令,需同时在控制器和转发设备中分别开发代码,才能实现对增加的新的指令的支持。
技术实现思路
本专利技术实施例提供一种报文处理的方法及转发设备,能够实现解析和处理包含新的协议的报文。第一方面,提供了一种报文处理的方法,包括:根据报文中连续的N层协议头中的第i层协议头,查找与所述第i层协议头对应的流表,确定与所述第i层协议头中的第一字段对应的指令;执行所述与所述第i层协议头中的第一字段对应的指令,其中,所述执行所述与所述第i层协议头中的第一字段对应的指令,包括:将所述N层协议头中的第i+1层协议头在所述报文中的起始位置写入协议位置表的表项,所述协议位置表的表项的索引信息为所述第i+1层协议头的协议标识ID,N为正整数,且i为小于N的任一正整数。结合第一方面,在第一种可能的实现方式中,还包括:根据第一协议ID将报文处理窗口的起始位置移动到第一位置,所述第一位置为所述第一协议ID对应的协议头在所述报文中的起始位置;根据第一偏移和第一长度,对所述报文进行处理。结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述根据第一协议ID将报文处理窗口的起始位置移动到第一位置,包括:利用SetPacketOffset(ProtocolID)指令将所述报文处理窗口的起始位置移动到第一位置,其中ProtocolID表示第一协议ID。结合第一方面,在第三种可能的实现方式中,还包括:以第一协议ID为索引查找所述协议位置表,确定第一位置;根据第一偏移和第一长度,对所述报文进行处理。结合上述第一方面的任一种可能的实现方式,在第四种可能的实现方式中,在所述根据第一偏移和第一长度,对所述报文进行处理之前,还包括:根据所述第一协议ID和第一域的ID,查找协议域描述表,确定所述第一偏移和所述第一长度。结合第一方面或者上述任一种可能的实现方式,在第五种可能的实现方式中,还包括:接收所述报文,所述报文包括所述连续的N层协议头。结合第一方面或者上述任一种可能的实现方式,在第六种可能的实现方式中,所述与所述第i层协议头中的第一字段对应的指令中包含所述第i层报文头的长度,所述N层协议头中的第i+1层协议头在所述报文中的起始位置为所述第i层协议头的长度与所述第i层协议头在所述报文中的起始位置的和。第二方面,提供了一种转发设备,包括:第一确定单元,用于根据报文中连续的N层协议头中的第i层协议头,查找与所述第i层协议头对应的流表,确定与所述第i层协议头中的第一字段对应的指令;执行单元,用于执行所述第一确定单元确定的与所述第i层协议头中的第一字段对应的指令,其中,所述执行单元,具体用于:将所述N层协议头中的第i+1层协议头在所述报文中的起始位置写入协议位置表的表项,所述协议位置表的表项的索引信息为所述第i+1层协议头的协议标识ID,N为正整数,且i为小于N的任一正整数。结合第二方面,在第一种可能的实现方式中,所述转发设备还包括:偏移单元,用于根据第一协议ID将报文处理窗口的起始位置移动到第一位置,所述第一位置为所述第一协议ID对应的协议头在所述报文中的起始位置;处理单元,用于根据第一偏移和第一长度,对所述报文进行处理。结合第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述偏移单元,具体用于:利用SetPacketOffset(ProtocolID)指令将所述报文处理窗口的起始位置移动到第一位置,其中ProtocolID表示第一协议ID。结合第二方面,在第三种可能的实现方式中,所述转发设备还包括:第二确定单元,用于以第一协议ID为索引查找所述协议位置表,确定第一位置;所述处理单元,用于根据第一偏移和第一长度,对所述报文进行处理。结合第二方面的任一种可能的实现方式,在第四种可能的实现方式中,所述转发设备还包括第三确定单元,用于根据所述第一协议ID和第一域的ID,查找协议域描述表,确定所述第一偏移和所述第一长度。结合第二方面或者上述的任一种可能的实现方式,在第五种可能的实现方式中,所述转发设备还包括接收单元,用于接收所述报文,所述报文包括所述连续的N层协议头。结合第二方面或者上述的任一种可能的实现方式,在第六种可能的实现方式中,所述第一确定单元确定的与所述第i层协议头中的第一字段对应的指令中包含所述第i层报文头的长度,所述N层协议头中的第i+1层协议头在所述报文中的起始位置为所述第i层协议头的长度与所述第i层协议头在所述报文中的起始位置的和。本专利技术实施例中,执行主体在通过流表逐层解析报文中连续的N层协议头时,生成协议位置表,用于记录N层协议头中的每一层协议头在报文中的起始位置。该协议位置表以协议ID作为索引,并且协议ID是由控制器分配的。当增加新的协议时,控制器分配一个新的协议ID并配置相应的流表,执行主体在协议位置表中增加一个新的表项即可。这样,该执行主体通过查询协议位置表能够获取任意一层协议头在报文中的起始位置,进而可将报文处理窗口的起始位置移动至该协议头的起始位置,以对该协议头进行引用或编辑处理。附图说明为了更清楚地说明本专利技术实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本专利技术一个实施例的报文处理的方法的流程图。图2是本专利技术一个实施例的报文处理的方法的示意图。图3是本专利技术一个实施例的转发设备的框图。图4是本专利技术另一个实施例的转发设备的框图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出本文档来自技高网...
报文处理的方法及转发设备

【技术保护点】

【技术特征摘要】
1.一种报文处理的方法,其特征在于,包括:根据报文中连续的N层协议头中的第i层协议头,查找与所述第i层协议头对应的流表,确定与所述第i层协议头中的第一字段对应的指令;执行所述与所述第i层协议头中的第一字段对应的指令,其中,所述第一字段对应的指令包括所述第i层协议头的长度和所述N层协议头中的第i+1层协议头的协议标识ID,所述执行所述与所述第i层协议头中的第一字段对应的指令,包括:将所述N层协议头中的所述第i+1层协议头在所述报文中的起始位置写入协议位置表的表项,所述协议位置表的表项的索引信息为所述第i+1层协议头的协议ID,N为正整数,且i为小于N的任一正整数。2.根据权利要求1所述的方法,其特征在于,还包括:根据第一协议ID将报文处理窗口的起始位置移动到第一位置,所述第一位置为所述第一协议ID对应的协议头在所述报文中的起始位置;根据第一偏移和第一长度,对所述报文进行处理。3.根据权利要求2所述的方法,其特征在于,所述根据第一协议ID将报文处理窗口的起始位置移动到第一位置,包括:利用SetPacketOffset(ProtocolID)指令将所述报文处理窗口的起始位置移动到第一位置,其中ProtocolID表示第一协议ID。4.根据权利要求1所述的方法,其特征在于,还包括:以第一协议ID为索引查找所述协议位置表,确定第一位置;根据第一偏移和第一长度,对所述报文进行处理。5.根据权利要求2至4任一项所述的方法,其特征在于,在所述根据第一偏移和第一长度,对所述报文进行处理之前,还包括:根据所述第一协议ID和第一域的ID,查找协议域描述表,确定所述第一偏移和所述第一长度。6.根据权利要求1至4任一项所述的方法,其特征在于,还包括:接收所述报文,所述报文包括所述连续的N层协议头。7.根据权利要求1至4任一项所述的方法,其特征在于,所述与所述第i层协议头中的第一字段对应的指令中包含所述第i层协议头的长度,所述N层协议头中的第i+1层协议头在所述报文中的起始位置为所述第i层协议头的长度与所述第i层协议头在所述报文中的起始位置的和。8.一种转发设备,其特征在于,包括:第一确定单元,用...

【专利技术属性】
技术研发人员:王小忠龚钧
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东,44

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

1