报文编辑处理方法和相关设备与流程

文档序号:17148517发布日期:2019-03-19 23:12阅读:369来源:国知局
报文编辑处理方法和相关设备与流程

本发明涉及通信技术领域,具体涉及报文编辑处理方法和相关设备。



背景技术:

在报文转发过程中,报文转发设备通常需根据报文的内容等执行不同转发动作,例如执行二层交换、三层路由转发等等。不同的转发动作往往意味着需要按照不同方式对报文进行编辑处理。

因此报文编辑处理是一项非常基本但是极其重要的基本功能。报文编辑处理主要指报文转发设备有时候需根据转发需求对接收的报文进行修改(如添加或删除报文的某层协议头域、更改报文生存时间(TTL,Time To Live)字段等等)。因此,报文编辑处理可以看作是对接收到的报文进行修改和编辑操作过程的总称。一般来说,一个复杂的报文编辑处理可看作由多个基本的报文编辑操作组成。而基本的报文编辑操作可分为以下三种:插入操作、删除操作和替换操作。其中,插入操作一般指在接收的报文的某处位置之后插入一段新的数据。删除操作一般指删除接收的报文中的某段数据。替换操作一般指将接收的报文中的某段数据替换为新数据。例如,报文S1的以太网转发可看作是删除报文S1的旧以太网(Ethernet)头域、替换报文S1的TTL字段取值(如TTL字段取值减1)、替换报文S1的网际互连协议(IP,Internet Protocol)头域中的首部校验和(checksum)字段、在报文S1插入新的Ethernet报文头域等一系列报文编辑操作的组合。

现有的报文编辑处理中一般是由处理器完成报文编辑处理,即报文编辑处理的动作可由处理器执行相关程序完成。在这种方式下,报文数据通常存储在一块连续的地址区域内,并记录报文数据的起始地址和结束地址。处理器根据所需要执行的操作,对报文数据直接进行移动和修改等。当处理结束后将编辑处理后的报文送出报文转发设备。例如,假设报文转发设备收到一个64字节的Ethernet+IPv4的报文(即该报文协议头域包括Ethernet头域和IPv4头域)。在报文编辑处理过程中,需要添加虚拟局域网(VLAN,Virtual Local Area Network)标签,然后输出一个68字节的Ethernet+VLAN+IPv4的报文。在报文编辑处理过程中,报文编辑部分的程序就需要先将接收的报文地址12-64的数据移动到地址16-68,然而这一过程至少需要(64-16)/4=12条处理器指令,将VLAN标签的4字节数据写入地址12,这一过程需1条处理器指令。

对现有技术的研究和实践发现,上述现有技术进行报文编辑的指令复杂度一般较高,并且对于插入和删除等操作报文编辑处理,由于可能需移动大量数据而导致执行起来非常慢,并且随着报文长度的增加,插入和删除操作所需要的时间也会加长。



技术实现要素:

本发明实施例提供一种报文编辑处理方法和相关设备,以期降低报文编辑处理的指令复杂度,提高报文编辑处理的效率。

本发明实施例第一方面提供一种报文编辑处理方法,可包括:

基于输入报文的待编辑处理的N个协议头域和预设的协议字段映射关系生成输入报文模版,所述输入报文模版包含有与所述N个协议头域一一对应的N个协议描述符,其中,所述协议字段映射关系为具有对应关系的协议描述符与协议头域所包含的协议字段之间的映射关系;

对所述输入报文模版进行编辑处理以得到输出报文模版;

基于预设的所述协议字段映射关系,将得到的所述输出报文模版所包含的M个协议描述符转换为输出报文的M个协议头域,将所述输入报文中的所述N个协议头域替换为所述M个协议头域以得到输出报文,其中,所述N和所述M为正整数。

结合第一方面,在第一方面的第一种可能的实施方式中,所述基于输入报文的待编辑处理的N个协议头域和预设的协议字段映射关系生成输入报文模版包括:根据输入报文的报文接收信息确定所述输入报文对应的报文解析表;调用所述报文解析表中的解析指令序列,基于所述输入报文的待编辑处理的N个协议头域生成输入报文模版。

结合第一方面或第一方面的第一种可能的实施方式,在第一方面的第一种可能的实施方式中,所述N个协议描述符中的第一协议描述符所包含的第一协议字段,与所述N个协议头域中的第一协议头域所包含的至少一个协议字段之间具有的映射关系,其中,所述第一协议描述符与所述第一协议头域具有对应关系。

结合第一方面或第一方面的第一种可能的实施方式或第一方面的第二种可能的实施方式,在第一方面的第三种可能的实施方式中,所述N个协议头域中的第一协议头域所包含的第二协议字段,与所述N个协议描述符中的第一协议描述符所包含的至少一个协议字段之间具有映射关系;其中,所述第一协议描述符与所述第一协议头域具有对应关系。

结合第一方面或第一方面的第一种可能的实施方式或第一方面的第二种可能的实施方式或第一方面的第三种可能的实施方式,在第一方面的第四种可能的实施方式中,所述输入报文模版还包含模版描述符,其中,所述模版描述符中包含有协议组合描述字段,所述协议组合描述字段用于描述出所述输入报文模版包含的各协议描述符所对应的协议类型序列。

结合第一方面的第四种可能的实施方式,在第一方面的第五种可能的实施方式中,

所述对所述输入报文模版进行编辑处理,包括:确定与所述协议类型序列对应的编辑处理指令序列,调用确定出的所述编辑处理指令序列对所述输入报文模版进行编辑处理。

结合第一方面的第四种可能的实施方式或第一方面的第五种可能的实施方式,在第一方面的第六种可能的实施方式中,所述对所述输入报文模版进行编辑处理包括:在所述输入报文模版中新增至少1个协议描述符,并更新所述输入报文模版中的模版描述符中的协议组合描述字段,以使得更新后的所述协议组合描述字段描述出所述输入报文模版当前包含的各协议描述符所对应的协议类型序列。

结合第一方面的第四种可能的实施方式或第一方面的第五种可能的实施方式,在第一方面的第七种可能的实施方式中,所述对所述输入报文模版进行编辑处理包括:删除所述输入报文模版中的至少一个协议描述符,并更新所述输入报文模版中的模版描述符中的协议组合描述字段,以使得更新后的所述协议组合描述字段描述出所述输入报文模版当前包含的各协议描述符所对应的协议类型序列。

结合第一方面的第四种可能的实施方式或第一方面的第五种可能的实施方式,在第一方面的第八种可能的实施方式中,所述对所述输入报文模版进行编辑处理包括:替换所述输入报文模版中的至少一个协议描述符。

结合第一方面或第一方面的第一种可能的实施方式或第一方面的第二种可能的实施方式或第一方面的第三种可能的实施方式或第一方面的第四种可能的实施方式或第一方面的第五种可能的实施方式或第一方面的第六种可能的实施方式或第一方面的第七种可能的实施方式或第一方面的第八种可能的实施方式,在第一方面的第九种可能的实施方式中,所述将所述输入报文中的所述N个协议头域替换为所述M个协议头域以得到输出报文,包括:将所述输入报文的所述N个协议头域进行删除;将所述M个协议头域插入到所述输入报文中被删除的所述N个协议头域所对应的位置。

本发明第二方面提供一种报文编辑处理装置,包括:

报文解析器,用于基于输入报文的待编辑处理的N个协议头域和预设的协议字段映射关系生成输入报文模版,所述输入报文模版包含有与所述N个协议头域一一对应的N个协议描述符,其中,所述协议字段映射关系为具有对应关系的协议描述符与协议头域所包含的协议字段之间的映射关系;

模版编辑处理器,用于对所述输入报文模版进行编辑处理以得到输出报文模版;

报文组装器,用于基于预设的所述协议字段映射关系,将得到的所述输出报文模版所包含的M个协议描述符转换为输出报文的M个协议头域,将所述输入报文中的所述N个协议头域替换为所述M个协议头域以得到输出报文,所述N和所述M为正整数。

结合第二方面,在第二方面的第一种可能的实施方式中,所述报文解析器具体用于:根据输入报文的报文接收信息确定所述输入报文对应的报文解析表;调用所述报文解析表中的解析指令序列,基于所述输入报文的待编辑处理的N个协议头域生成输入报文模版。

结合第二方面或第二方面的第一种可能的实施方式,在第二方面的第一种可能的实施方式中,所述N个协议描述符中的第一协议描述符所包含的第一协议字段,与所述N个协议头域中的第一协议头域所包含的至少一个协议字段之间具有的映射关系,所述第一协议描述符与所述第一协议头域具有对应关系。

结合第二方面或第二方面的第一种可能的实施方式或第二方面的第二种可能的实施方式,在第二方面的第三种可能的实施方式中,所述N个协议头域中的第一协议头域所包含的第二协议字段,与所述N个协议描述符中的第一协议描述符所包含的至少一个协议字段之间具有映射关系;所述第一协议描述符与所述第一协议头域具有对应关系。

结合第二方面或第二方面的第一种可能的实施方式或第二方面的第二种可能的实施方式或第二方面的第三种可能的实施方式,在第二方面的第四种可能的实施方式中,所述输入报文模版还包含模版描述符,其中,所述模版描述符中包含有协议组合描述字段,所述协议组合描述字段用于描述出所述输入报文模版包含的各协议描述符所对应的协议类型序列。

结合第二方面的第四种可能的实施方式,在第二方面的第五种可能的实施方式中,在所述对所述输入报文模版进行编辑处理的方面,所述模版编辑处理器具体用于:确定与所述协议类型序列对应的编辑处理指令序列,调用确定出的所述编辑处理指令序列对所述输入报文模版进行编辑处理。

结合第二方面的第四种可能的实施方式或第二方面的第五种可能的实施方式,在第二方面的第六种可能的实施方式中,在所述对所述输入报文模版进行编辑处理的方面,所述模版编辑处理器具体用于:在所述输入报文模版中新增至少1个协议描述符,并更新所述输入报文模版中的模版描述符中的协议组合描述字段,以使得更新后的所述协议组合描述字段描述出所述输入报文模版当前包含的各协议描述符所对应的协议类型序列。

结合第二方面的第四种可能的实施方式或第二方面的第五种可能的实施方式,在第二方面的第七种可能的实施方式中,在所述对所述输入报文模版进行编辑处理的方面,所述模版编辑处理器具体用于:删除所述输入报文模版中的至少一个协议描述符,并更新所述输入报文模版中的模版描述符中的协议组合描述字段,以使得更新后的所述协议组合描述字段描述出所述输入报文模版当前包含的各协议描述符所对应的协议类型序列。

结合第二方面的第四种可能的实施方式或第二方面的第五种可能的实施方式,在第二方面的第八种可能的实施方式中,在所述对所述输入报文模版进行编辑处理的方面,所述模版编辑处理器具体用于:替换所述输入报文模版中的至少一个协议描述符。

结合第二方面或第二方面的第一种可能的实施方式或第二方面的第二种可能的实施方式或第二方面的第三种可能的实施方式或第二方面的第四种可能的实施方式或第二方面的第五种可能的实施方式或第二方面的第六种可能的实施方式或第二方面的第七种可能的实施方式或第二方面的第八种可能的实施方式,在第二方面的第九种可能的实施方式中,

在所述将所述输入报文中的所述N个协议头域替换为所述M个协议头域以得到输出报文的方面,所述报文组装器具体用于,将所述输入报文的所述N个协议头域进行删除;将所述M个协议头域插入到所述输入报文中被删除的所述N个协议头域所对应的位置。

本发明第三方面提供一种报文转发设备,可包括:

处理器和存储器;其中,所述处理器调用所述存储器中存储的代码,以用于基于输入报文的待编辑处理的N个协议头域和预设的协议字段映射关系生成输入报文模版,所述输入报文模版包含有与所述N个协议头域一一对应的N个协议描述符,所述协议字段映射关系为具有对应关系的协议描述符与协议头域所包含的协议字段之间的映射关系;对所述输入报文模版进行编辑处理以得到输出报文模版;基于预设的所述协议字段映射关系,将得到的所述输出报文模版所包含的M个协议描述符转换为输出报文的M个协议头域,将所述输入报文中的所述N个协议头域替换为所述M个协议头域以得到输出报文,所述N和所述M为正整数。

结合第三方面,在第三方面的第一种可能的实施方式中,在所述基于输入报文的待编辑处理的N个协议头域和预设的协议字段映射关系生成输入报文模版的方面,所述处理器具体用于,根据输入报文的报文接收信息确定所述输入报文对应的报文解析表;调用所述报文解析表中的解析指令序列,基于所述输入报文的待编辑处理的N个协议头域生成输入报文模版。

结合第三方面或第三方面的第一种可能的实施方式,在第三方面的第一种可能的实施方式中,所述N个协议描述符中的第一协议描述符所包含的第一协议字段,与所述N个协议头域中的第一协议头域所包含的至少一个协议字段之间具有的映射关系,所述第一协议描述符与所述第一协议头域具有对应关系。

结合第三方面或第三方面的第一种可能的实施方式或第三方面的第二种可能的实施方式,在第三方面的第三种可能的实施方式中,所述N个协议头域中的第一协议头域所包含的第二协议字段,与所述N个协议描述符中的第一协议描述符所包含的至少一个协议字段之间具有映射关系;所述第一协议描述符与所述第一协议头域具有对应关系。

结合第三方面或第三方面的第一种可能的实施方式或第三方面的第二种可能的实施方式或第三方面的第三种可能的实施方式,在第三方面的第四种可能的实施方式中,

所述输入报文模版还包含模版描述符,其中,所述模版描述符中包含有协议组合描述字段,所述协议组合描述字段用于描述出所述输入报文模版包含的各协议描述符所对应的协议类型序列。

结合第三方面的第四种可能的实施方式,在第三方面的第五种可能的实施方式中,在所述对所述输入报文模版进行编辑处理的方面,所述处理器具体用于,确定与所述协议类型序列对应的编辑处理指令序列,调用确定出的所述编辑处理指令序列对所述输入报文模版进行编辑处理。

结合第三方面的第四种可能的实施方式或第三方面的第五种可能的实施方式,在第三方面的第六种可能的实施方式中,在所述对所述输入报文模版进行编辑处理的方面,所述处理器具体用于,在所述输入报文模版中新增至少1个协议描述符,并更新所述输入报文模版中的模版描述符中的协议组合描述字段,以使得更新后的所述协议组合描述字段描述出所述输入报文模版当前包含的各协议描述符所对应的协议类型序列。

结合第三方面的第四种可能的实施方式或第三方面的第五种可能的实施方式,在第三方面的第七种可能的实施方式中,在所述对所述输入报文模版进行编辑处理的方面,所述处理器具体用于,删除所述输入报文模版中的至少一个协议描述符,并更新所述输入报文模版中的模版描述符中的协议组合描述字段,以使得更新后的所述协议组合描述字段描述出所述输入报文模版当前包含的各协议描述符所对应的协议类型序列。

结合第三方面的第四种可能的实施方式或第三方面的第五种可能的实施方式,在第三方面的第八种可能的实施方式中,在所述对所述输入报文模版进行编辑处理的方面,所述处理器具体用于,替换所述输入报文模版中的至少一个协议描述符。

结合第三方面或第三方面的第一种可能的实施方式或第三方面的第二种可能的实施方式或第三方面的第三种可能的实施方式或第三方面的第四种可能的实施方式或第三方面的第五种可能的实施方式或第三方面的第六种可能的实施方式或第三方面的第七种可能的实施方式或第三方面的第八种可能的实施方式,在第三方面的第九种可能的实施方式中,

在所述将所述输入报文中的所述N个协议头域替换为所述M个协议头域以得到输出报文的方面,所述处理器具体用于,将所述输入报文的所述N个协议头域进行删除;将所述M个协议头域插入到所述输入报文中被删除的所述N个协议头域所对应的位置。

本发明第四方面提供一种计算机存储介质,

所述计算机存储介质存储有程序,所述程序执行时包括如本发明实施例提供的任意一种报文编辑处理方法的部分或全部步骤。

可以看出,本发明实施例中由于是先基于输入报文的待编辑处理的N个协议头域和预设的协议字段映射关系生成输入报文模版,其中,上述输入报文模版包含有与上述N个协议头域一一对应的N个协议描述符,其中,上述协议字段映射关系为具有对应关系的协议描述符与协议头域所包含的协议字段之间的映射关系;而后对上述输入报文模版进行编辑处理以得到输出报文模版;基于预设的上述协议字段映射关系,将上述输出报文模版所包含的M个协议描述符转换为输出报文的M个协议头域,将上述输入报文中的上述N个协议头域替换为上述M个协议头域以得到输出报文。由于在编辑处理时主要是对输入报文模版进行编辑处理而并非对整个输入报文进行编辑处理,因此,有利于降低编辑处理的数据量,进而有利于降低报文编辑处理的指令复杂度,提高报文编辑处理的效率。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例提供的一种报文编辑处理方法的流程示意图;

图2-a是本发明实施例提供的一种协议头域中的协议字段和协议描述符中的协议字段之间的映射关系示意图;

图2-b是本发明实施例提供的另一种协议头域中的协议字段和协议描述符中的协议字段之间的映射关系示意图;

图2-c是本发明实施例提供的另一种协议头域中的协议字段和协议描述符中的协议字段之间的映射关系示意图;

图2-d是本发明实施例提供的另一种协议头域中的协议字段和协议描述符中的协议字段之间的映射关系示意图;

图2-e是本发明实施例提供的另一种协议头域中的协议字段和协议描述符中的协议字段之间的映射关系示意图;

图2-f是本发明实施例提供的另一种协议头域中的协议字段和协议描述符中的协议字段之间的映射关系示意图;

图2-g是本发明实施例提供的另一种协议头域中的协议字段和协议描述符中的协议字段之间的映射关系示意图;

图2-h是本发明实施例提供的一种输入报文模版的结构示意图;

图3是本发明实施例提供的另一种报文编辑处理方法的流程示意图;

图4-a是本发明实施例提供的一种IPv4头域的结构示意图;

图4-b是本发明实施例提供的一种IP v4描述符的结构示意图;

图4-c是本发明实施例提供的一种在输入报文模版中添加协议描述符的示意图;

图4-d是本发明实施例提供的一种在输入报文模版中删除协议描述符的示意图;

图4-e是本发明实施例提供的一种替换输入报文模版中的协议描述符的示意图;

图5是本发明实施例提供的一种报文编辑处理装置的示意图;

图6是本发明实施例提供的一种报文转发设备的示意图;

图7是本发明实施例提供的另一种报文转发设备的示意图。

具体实施方式

本发明实施例提供报文编辑处理方法和相关设备,以期降低报文转发处理的指令复杂度,提高报文转发处理的效率。

下面通过具体实施例,分别进行详细的说明。

为了使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等是用于区别不同的对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。

本发明一种报文编辑处理方法的一个实施例,一种报文编辑处理方法可以包括:基于输入报文的待编辑处理的N个协议头域和预设的协议字段映射关系生成输入报文模版,上述输入报文模版包含有与上述N个协议头域一一对应的N个协议描述符,其中,上述协议字段映射关系为具有对应关系的协议描述符与协议头域所包含的协议字段之间的映射关系;对上述输入报文模版进行编辑处理以得到输出报文模版;基于预设的上述协议字段映射关系,将上述输出报文模版所包含的M个协议描述符转换为输出报文的M个协议头域,将上述输入报文中的上述N个协议头域替换为上述M个协议头域以得到输出报文,上述N和上述M为正整数。

请参见图1,图1为本发明的一个实施例提供的一种报文编辑处理方法的流程示意图。其中,本发明的一个实施例提供的一种报文编辑处理方法可包括以下内容:

101、基于输入报文的待编辑处理的N个协议头域和预设的协议字段映射关系生成输入报文模版。其中,上述输入报文模版包含有与上述N个协议头域一一对应的N个协议描述符,其中,上述协议字段映射关系为具有对应关系的协议描述符与协议头域所包含的协议字段之间的映射关系。

可以理解,由于协议头域和协议描述符之间具有一一对应的关系,因此基于输入报文的待编辑处理的上述N个协议头域,可得到与之一一对应的N个协议描述符。

其中,上述N个协议头域例如可包括:VLAN标签、Ethernet头域和/或IPv4头域等等,相应地,上述N个协议描述符可包括:VLAN描述符、Ethernet描述符和/或IPv4描述符等等。其中,Ethernet头域对应的协议描述符可称为Ethernet描述符(即Ethernet头域与Ethernet描述符之间具有对应关系)。与VLAN标签对应的协议描述符亦可称之为VLAN描述符(即,VLAN标签与VLAN描述符之间具有对应关系)。IPv4头域对应的协议描述符可称为IPv4描述符(即IPv4头域与IPv4描述符之间具有对应关系)。

其中,由于上述预设的协议字段映射关系为具有对应关系的协议描述符与协议头域所包含的协议字段之间的映射关系,因此,上述协议字段映射关系例如可包括:VLAN标签所包含的协议字段与VLAN描述符所包含的协议字段之间的映射关系、IPv4头域所包含的协议字段与IPv4描述符所包含的协议字段之间的映射关系、Ethernet头域所包含的协议字段与Ethernet描述符所包含的协议字段之间的映射关系。也就是说,预设的协议字段映射关系可指示出,如何将协议头域所包含的协议字段,映射为与该协议头域具有对应关系的协议描述符中的协议字段,同理,预设的协议字段映射关系也可指示出如何将协议描述符所包含的协议字段,映射为与该协议描述符具有对应关系的协议头域中的协议字段。例如预设的协议字段映射关系可指示出如何将IPv4头域所包含的协议字段映射为IPv4描述符中的协议字段,还可指示出如何将IPv4描述符所包含的协议字段映射为IPv4头域中的协议字段。预设的协议字段映射关系可指示出如何将Ethernet头域所包含的协议字段映射为Ethernet描述符中的协议字段,且还可指示出如何将Ethernet描述符所包含的协议字段映射为Ethernet头域中的协议字段。预设的协议字段映射关系可指示出,如何将VLAN标签所包含的协议字段映射为VLAN描述符中的协议字段,可指示出如何将VLAN描述符所包含的协议字段映射为VLAN标签中的协议字段,以此类推。

因此,可基于某个协议头域和预设的协议字段映射关系,生成输入报文模版中与该某个协议头域对应的协议描述符,同理,也可基于输入报文模版中的某个协议描述符和预设的协议字段映射关系,转换得到与输入报文模版中的该某个协议描述符对应的协议头域。举例来说,可基于VLAN标签和预设的协议字段映射关系生成输入报文模版中的VLAN描述符,同理,可基于预设的协议字段映射关系和输入报文模版中的VLAN描述符变换得到VLAN标签。可基于IPv4头域和预设的协议字段映射关系生成输入报文模版中的IPv4描述符,也可基于预设的协议字段映射关系和输入报文模版中的IPv4描述符变换得到IPv4头域。可基于Ethernet头域和预设的协议字段映射关系生成输入报文模版中的Ethernet描述符,也可基于预设的协议字段映射关系和输入报文模版中的Ethernet描述符变换得到Ethernet头域。其它具有对应关系的协议头域和协议描述符之间的转换方式可以此类推。

102、对上述输入报文模版进行编辑处理以得到输出报文模版。

103、基于预设的上述协议字段映射关系,将上述输出报文模版所包含的M个协议描述符转换为输出报文的M个协议头域。

104、将上述输入报文中的上述N个协议头域替换为上述M个协议头域以得到输出报文,其中,上述N和上述M为正整数。

其中,上述N可能大于、小于或等于上述M。

例如,当对上述输入报文模版进行编辑处理的过程中,在上述输入报文模版中新增了协议描述符,则上述M将大于上述N。当对上述输入报文模版进行编辑处理的过程中,在上述输入报文模版中删除了协议描述符,则上述M将小于上述N,当对上述输入报文模版进行编辑处理的过程中,既在上述输入报文模版中删除了协议描述符,又在上述输入报文模版中新增了协议描述符,则上述M可能大于、小于或等于上述N。

可以看出,本实施例中由于是先基于输入报文的待编辑处理的N个协议头域和预设的协议字段映射关系生成输入报文模版,其中,上述输入报文模版包含有与上述N个协议头域一一对应的N个协议描述符,其中,上述协议字段映射关系为具有对应关系的协议描述符与协议头域所包含的协议字段之间的映射关系;而后对上述输入报文模版进行编辑处理以得到输出报文模版;基于预设的上述协议字段映射关系,将上述输出报文模版所包含的M个协议描述符转换为输出报文的M个协议头域,将上述输入报文中的上述N个协议头域替换为上述M个协议头域以得到输出报文。由于在编辑处理时主要是对输入报文模版进行编辑处理而并非对整个输入报文进行编辑处理,因此,有利于降低编辑处理的数据量,进而有利于降低报文编辑处理的指令复杂度,提高报文编辑处理的效率。

在本发明的一些实施例中,上述将上述输入报文中的上述N个协议头域替换为上述M个协议头域以得到输出报文,可以包括:将上述输入报文的上述N个协议头域进行删除;将上述M个协议头域插入到上述输入报文中被删除的上述N个协议头域所对应的位置。

在本发明的一些实施例中,可选的,上述N个协议描述符中的第一协议描述符所包含的第一协议字段,可以与上述N个协议头域中的第一协议头域所包含的至少一个协议字段之间具有的映射关系。可选的,上述第一协议头域所包含的第二协议字段,可以与上述第一协议描述符所包含的至少一个协议字段之间具有映射关系。其中,上述第一协议描述符与上述第一协议头域之间具有对应关系。可选的,上述N个协议描述符中的第二协议描述符所包含的各协议字段也可以与上述N个协议头域中的第二协议头域所包含的各协议字段之间具有一一映射关系。其中,上述第二协议描述符与上述第二协议头域之间具有对应关系。其中,上述第一协议头域或上述第二协议头域可为上述N个协议头域中的任意一个协议头域或某个特定的协议头域。其中,上述第一协议头域或上述第二协议头域例如可为Ethernet头域、IPV4头域或VLAN标签等。

也就是说,具有对应关系的协议头域和协议描述符所包含的协议字段的数量可能相等或不等,例如,IPV4头域所包含的协议字段的数量和IPV4描述符所包含的协议字段的数量可能相等或不等,Ethernet头域所包含的协议字段的数量和Ethernet描述符所包含的协议字段的数量可能相等或不等,VLAN标签所包含的协议字段的数量和VLAN描述符所包含的协议字段的数量可能相等或不等。

举例来说,若第一协议描述符(例如IPV4描述符)所包含的任意一个协议字段,均与第一协议头域(例如IPV4头域)所包含的多个协议字段之间具有的映射关系,则第一协议描述符包含的协议字段的数量小于第一协议头域包含的协议字段的数量。又例如,若第一协议头域(例如Ethernet头域)所包含的任意一个协议字段,均与第一协议描述符(例如Ethernet描述符)包含的多个协议字段之间具有的映射关系,则第一协议描述符包含的协议字段的数量,大于第一协议头域包含的协议字段的数量。又例如,若第一协议描述符(例如IPV4描述符)所包含的某些协议字段中的每个协议字段,与第一协议头域(例如IPV4头域)所包含的多个协议字段之间具有的映射关系,且第一协议头域所包含的某些协议字段中的每个协议字段,与第一协议描述符所包含的多个协议字段之间具有的映射关系,则第一协议描述符包含的协议字段的数量可能大于、小于或等于第一协议头域包含的协议字段的数量。又例如,若第二协议描述符所包含的各协议字段,与上述第二协议头域所包含的各协议字段之间具有一一映射关系,则第二协议描述符包含的协议字段的数量等于第二协议头域包含的协议字段的数量。其它场景以此类推。

为便于更好的理解字段映射关系,下面结合附图2-a~图2-g来举例介绍具有对应关系的协议描述符和协议头域所包含的协议字段之间可能具有的如下几种字段映射关系。其中,图2-a~图2-g中的协议描述符A1与协议头域B1具有对应关系。

参见图2-a~图2-g。图2-a举例示出了协议描述符A1中的协议字段与协议头域B1中的字段之间具有一一映射关系,具体的,协议描述符A1中的协议字段d11与协议头域B1中的协议字段d21具有映射关系(即协议字段d11,可基于协议头域B1中的协议字段d21变换得到),协议描述符A1中的协议字段d12与协议头域B1中的协议字段d22具有映射关系(即协议字段d12,可基于协议头域B1中的协议字段d22变换得到),协议描述符A1中的协议字段d13与协议头域B1中的协议字段d23具有映射关系(即协议字段d13,可基于协议头域B1中的协议字段d23变换得到),协议描述符A1中的协议字段d14与协议头域B1中的协议字段d24具有映射关系(即协议字段d14,可基于协议头域B1中的协议字段d24变换得到),以此类推。

又例如图2-b所示,图2-b举例示出协议描述符A1中的某个协议字段可与协议头域B1中的多个协议字段之间具有映射关系,具体的,协议描述符A1中的协议字段d11,与协议头域B1中的协议字段d21和d22具有映射关系(即协议字段d11可基于协议头域B1中的协议字段d21和d22变换得到),同理,协议描述符A1中的协议字段d12,与协议头域B1中的协议字段d23、d24和d25之间具有映射关系(即协议字段d12,可以基于协议头域B1中的协议字段d23、d24和d25变换得到),以此类推。

又如图2-c所示,图2-c举例示出协议头域B1中的某个协议字段可与协议描述符A1中的多个协议字段之间具有映射关系。具体的,协议头域B1中的协议字段d21,与协议描述符A1中的协议字段d11和d12具有映射关系(即,协议描述符A1中的协议字段d21和d22,可基于协议字段d21变换得到),同理,协议头域B1中的协议字段d22,与协议描述符A1中的协议字段d13、d14和d15之间具有映射关系(即,协议描述符A1中的协议字段d13、d14和d15,可基于协议字段d22变换得到),以此类推。

又例如图2-d所示,图2-d举例示出了协议头域B1中的某个协议字段与协议描述符A1中的多个协议字段之间具有映射关系,协议描述符A1中的另某个协议字段与协议头域B1中的另多个协议字段之间具有映射关系。具体的,图2-d举例示出协议描述符A1中的协议字段d11,与协议头域B1中的协议字段d21和d22具有映射关系(即,协议字段d11可基于协议头域B1中的协议字段d21和d22变换得到);协议描述符A1中的协议字段d15,与协议头域B1中的协议字段d24和d25具有映射关系(即,协议字段d15可基于协议头域B1中的协议字段d24和d25变换得到);协议头域B1中的协议字段d23,与协议描述符A1中的协议字段d12和d13和d13之间具有映射关系(即,协议描述符A1中的协议字段d12和d13和d13可基于协议头域B1中的协议字段d23变换得到),以此类推。

又如图2-e所示,图2-e举例示出了协议头域B1中的某个协议字段与协议描述符A1中的多个协议字段之间具有映射关系,并且协议描述符A1中的另某个协议字段与协议头域B1中的另多个协议字段之间具有映射关系,并且,协议描述符A1中的又某个协议字段与协议头域B1中的又某个协议字段之间具有映射关系。具体的,图2-e举例示出协议描述符A1中的协议字段d11,与协议头域B1中的协议字段d21和d22具有映射关系(即,协议字段d11可基于协议头域B1中的协议字段d21和d22变换得到);协议头域B1中的协议字段d23,与协议描述符A1中的协议字段d12和d13具有映射关系(即,协议字段d12和d13可基于协议头域B1中的协议字段d23变换得到);协议描述符A1中的协议字段d15与协议头域B1中的协议字段d25具有映射关系(即协议字段d15,可基于协议头域B1中的协议字段d25变换得到),协议描述符A1中的协议字段d14与协议头域B1中的协议字段d24具有映射关系(即协议字段d14,可基于协议头域B1中的协议字段d24变换得到),以此类推。

又如图2-f所示,图2-f举例示出了协议描述符A1中的某个协议字段与协议头域B1中的多个协议字段之间具有映射关系,协议描述符A1中的又某个协议字段与协议头域B1中的又某个协议字段之间具有映射关系。具体的,图2-f举例示出协议描述符A1中的协议字段d11,与协议头域B1中的协议字段d21和d22和d23具有映射关系(即,协议字段d11,可基于协议头域B1中的协议字段d21和d22和d23变换得到);协议描述符A1中的协议字段d12与协议头域B1中的协议字段d24具有映射关系(即协议字段d12,可基于协议头域B1中的协议字段d24变换得到),协议描述符A1中的协议字段d13与协议头域B1中的协议字段d25具有映射关系(即协议字段d13,可基于协议头域B1中的协议字段d25变换得到),以此类推。

又如图2-g所示,图2-g举例示出了协议头域B1中的某个协议字段与协议描述符A1中的多个协议字段之间具有映射关系,协议描述符A1中的又某个协议字段与协议头域B1中的又某个协议字段之间具有映射关系。具体的,图2-g举例示出协议头域B1中的协议字段d21,与协议描述符A1中的协议字段d11和d12和d13具有映射关系(即,协议描述符A1中的协议字段d11和d12和d13,可基于协议头域B1中的协议字段d21变换得到);协议描述符A1中的协议字段d14与协议头域B1中的协议字段d22具有映射关系(即协议字段d14,可基于协议头域B1中的协议字段d22变换得到),协议描述符A1中的协议字段d15与协议头域B1中的协议字段d23具有映射关系(即协议字段d15可基于协议头域B1中的协议字段d23变换得到),以此类推。

可以理解,图2-a~图2-g介绍的协议描述符所包含的协议字段与协议头域所包含的协议字段之间的几种可能的字段映射关系仅为举例,当然,协议描述符所包含的协议字段与协议头域所包含的协议字段之间,亦可具有其它的字段映射关系,此处不再一一列举。

在本发明一些实施例中,上述基于输入报文的待编辑处理的N个协议头域和预设的协议字段映射关系生成输入报文模版,可包括:根据输入报文的报文接收信息(如接收端口号和/或接收通道号等)确定上述输入报文对应的报文解析表;调用上述报文解析表中的解析指令序列,基于上述输入报文的待编辑处理的N个协议头域生成输入报文模版。例如,不同的协议头域可对应不同的报文解析表,或者一个报文解析表可对应多个协议头域。

在本发明一些实施例中,上述输入报文模版还可包含模版描述符,上述模版描述符中可包含有协议组合描述字段,上述协议组合描述字段用于描述出上述输入报文模版包含的各协议描述符所对应的协议类型序列。同理,输出报文模版也还可包含模版描述符,其中,上述模版描述符中可包含有协议组合描述字段,其中,上述协议组合描述字段用于描述出上述输出报文模版包含的各协议描述符所对应的协议类型序列。可以理解,当输入报文模版中包含的协议描述符发生变化时,可适应性的更新协议组合描述字段,以使得该协议组合描述字段可以描述出上述输入报文模版当前所包含的各协议描述符所对应的协议类型序列。

可选的,输入报文模版中的模版描述符还可包含:用于记录上述输入报文模版所包含的协议描述符所对应的协议头域的总长度的头域长度字段。可以理解的是,当输入报文模版中包含的协议描述符发生变化时,可适应性的更新模版描述符中的头域长度字段,以使得该头域长度字段可描述出上述输入报文模版当前所包含的各协议描述符所对应的协议头域的总长度。举例来说,假设输入报文模版包含2协议描述符,而该2协议描述符所对应的协议头域的总长度为50字节(此时头域长度字段记录的值为50字节),若在对上述输入报文模版进行编辑处理过程中,在输入报文模版中新增了1个VLAN描述符,该VLAN描述符所对应VLAN标签长度为4字节,则可以将头域长度字段记录的值为更新为54字节。又例如,假设输入报文模版包含3协议描述符,该3协议描述符所对应的协议头域的总长度为68字节(此时头域长度字段记录的值为68字节),若在对上述输入报文模版进行编辑处理过程中,在输入报文模版中删除了1个VLAN描述符,该VLAN描述符所对应VLAN标签长度为4字节,则可将头域长度字段记录的值为更新为64字节,其它情况以此类推。

可选的,上述模版描述符还可包含用于记录输入报文的转发方式的转发指示字段。可选的,模版描述符还可包含用于记录输入报文对应的附加信息(报文的接收端口号和/或接收通道号等等)的附件信息字段。当然,上述模版描述符也还可以包含其它字段。

参见图2-h,图2-h举例示出了一种输入报文模版的数据结构,图2-h举例示出的输入报文模版包括模版描述符和至少1个协议描述符。输出报文模版可以具有输入报文模版的类似结构。当然,输入出报文模版的具体结构并不限于图2-h所示举例,可根据具体场景进行设定。

在本发明的一些实施例中,上述对上述输入报文模版进行编辑处理例如可以包括:确定与上述协议类型序列对应的编辑处理指令序列,调用确定出的上述编辑处理指令序列对上述输入报文模版进行编辑处理。具体的,可针对每一种协议类型序列,预设至少一种编辑处理指令序列,因此当生成输入报文模版之后,便可根据输入报文模版所包含的协议描述符对应的协议类型序列,确定与该协议类型序列对应的编辑处理指令序列,利用确定出的编辑处理指令序列来对上述输入报文模版进行编辑处理。可以理解,若针对不同协议类型序列预设对应的编辑处理指令序列,则在对上述输入报文模版进行编辑处理时可无需临时生成编辑处理指令序列,这样有利于降低指令复杂度,简化编辑处理的计算复杂度。

在本发明的一些实施例中,上述对上述输入报文模版进行编辑处理例如可以包括:在上述输入报文模版中新增至少1个协议描述符,并可进一步更新上述输入报文模版中的模版描述符中的协议组合描述字段,以使得更新后的上述协议组合描述字段描述出上述输入报文模版当前包含的各协议描述符所对应的协议类型序列。

在本发明的一些实施例中,上述对上述输入报文模版进行编辑处理例如可以包括:删除上述输入报文模版中的至少一个协议描述符,并可进一步更新上述输入报文模版中的模版描述符中的协议组合描述字段,以使得更新后的上述协议组合描述字段描述出上述输入报文模版当前包含的各协议描述符所对应的协议类型序列。

在本发明的一些实施例中,上述对上述输入报文模版进行编辑处理例如可以包括:上述对上述输入报文模版进行编辑处理包括:替换上述输入报文模版中的至少一个协议描述符。由于替换至少一个协议描述符,输入报文模版对应的协议类型序列可能没有变化,因此可能无需新输入报文模版中的模版描述符中的协议组合描述字段。

可以理解,替换上述输入报文模版中的一个协议描述符也可分解为先删除输入报文模版中的一个旧的协议描述符,而后在上述输入报文模版中新增1个新的协议描述符。

可以理解,对上述输入报文模版进行编辑处理并不一定是进行单一的删除输入报文模版中的一些协议描述符,或单一的在输入报文模版中新增一些协议描述符。也可能是既需要删除输入报文模版中的一些协议描述符,也需要在上述输入报文模版中新增一些协议描述符,甚至还需要替换输入报文模版中的一些协议描述符。

其中,本发明各实施例中提及的指令(如解析指令、编辑处理指令等)例如可以是微码指令或者其它类型的指令,其中,本发明各实施例中提及的指令序列(例如解析指令、编辑处理指令等)例如可以是微码指令或者其它类型的指令。

可以理解,本实施例的上述方案的执行主体可为报文转发设备,报文转发设备例如可以是路由器、交换机、防火墙等设备。

为便于更好的理解和实施本发明实施例的上述方案,下面通过一些具体是应用场景进行举例介绍。

请参见图3,图3为本发明的另一个实施例提供的一种报文编辑处理方法的流程示意图。其中,本发明的另一个实施例提供的一种报文编辑处理方法可包括以下内容:

301、报文转发设备接收输入报文。

302、报文转发设备将输入报文的报文接收信息(如接收端口号、接收通道号等)作为当前报文解析表的索引,查找上述输入报文的待编辑处理的当前层协议头域所对应的报文解析表。

举例来说,接收端口号和报文解析表之间具有对应关系,因此可根据输入报文的接收端口号查找到上述输入报文的待编辑处理的当前协议头域所对应的报文解析表。或者,接收通道号和报文解析表之间具有对应关系,因此可根据输入报文的接收通道号查找到上述输入报文的待编辑处理的当前协议头域所对应的报文解析表。或者,接收端口号+接收通道号与报文解析表之间具有对应关系,因此,可根据输入报文的接收通道号+接收通道号,查找到上述输入报文的待编辑处理的当前协议头域所对应的报文解析表。

303、报文转发设备生成输入报文模版。

其中,此时生成的输入报文模版为初始的输入报文模版,初始的输入报文模版可不包含任何协议描述符或包含若干个空的协议描述符,初始的输入报文模版中的模版描述符可包含有协议组合描述字段,上述协议组合描述字段用于描述出上述输入报文模版包含的各协议描述符所对应的协议类型序列。可以理解的是,由于初始的输入报文模版可不包含任何协议描述符或包含若干个空的协议描述符,因此初始的输入报文模版中的模版描述符包含的协议组合描述字段为空或记录无效值。当输入报文模版中包含的协议描述符发生变化时,可适应性的更新协议组合描述字段,以使得该协议组合描述字段可描述出上述输入报文模版当前所包含的各协议描述符所对应的协议类型序列。

可选的,输入报文模版中的模版描述符还可包含:用于记录上述输入报文模版所包含的协议描述符所对应的协议头域的总长度的头域长度字段。可以理解的是,由于初始的输入报文模版不包含任何协议描述符或包含若干个空的协议描述符,因此初始的输入报文模版中的模版描述符包含的头域长度字段为空或记录无效值。当输入报文模版中包含的协议描述符发生变化时,可适应性的更新模版描述符中的头域长度字段,以使得该头域长度字段可描述出上述输入报文模版当前所包含的各协议描述符所对应的协议头域的总长度。

可选的,上述模版描述符还可包含用于记录输入报文的转发方式的转发指示字段。可选的,模版描述符还可包含用于记录输入报文对应的附加信息(报文的接收端口号和/或接收通道号等等)的附件信息字段。当然,上述模版描述符也还可以包含其它字段。

304、报文转发设备根据上述输入报文的待编辑处理的当前层协议头域所对应的报文解析表中的解析指令序列,读取上述输入报文的待编辑处理的当前层协议头域,利用读取的当前层协议头域和协议字段映射关系,生成输入报文模版中与之对应的一个协议描述符。

其中,由于输入报文模版中包含的协议描述符发生了变化,因此报文转发设备还可进一步更新模版描述符中的头域长度字段,以使得该头域长度字段可描述出上述输入报文模版当前所包含的各协议描述符所对应的协议头域的总长度;报文转发设备还可进一步更新协议组合描述字段,以使得该协议组合描述字段可描述出上述输入报文模版当前所包含的各协议描述符所对应的协议类型序列。

其中,上述协议字段映射关系为具有对应关系的协议描述符与协议头域所包含的协议字段之间的映射关系。

305、报文转发设备将上述输入报文的待编辑处理的当前层协议头域中包含的下一层协议头域关键字作为索引,查找是否存在与该下一层协议头域关键字匹配的报文解析表,其中,与该下一层协议头域关键字匹配的报文解析表为上述输入报文的待编辑处理的该下一层协议头域所对应的报文解析表。

若是,则执行步骤306。

若否,则执行步骤307。其中,若查找到不存在与该下一层协议头域关键字匹配的报文解析表,则表示上述输入报文的待编辑处理的N个协议头域已经确定完毕。

306、报文转发设备将上述输入报文的待编辑处理的下一层协议头域作为上述输入报文的待编辑处理的当前层协议头域,跳转至步骤304。

307、报文转发设备对当前的输入报文模版进行编辑处理以得到输出报文模版。

其中,当前的输入报文模版可包含模版描述符和N个协议描述符(N个协议描述符和输入报文的待编辑处理的N个协议头域一一对应)。

可以理解,由于协议头域和协议描述符之间具有一一对应的关系,因此基于输入报文的待编辑处理的上述N个协议头域,可得到与之一一对应的N个协议描述符。

其中,上述N个协议头域例如可包括:VLAN标签、Ethernet头域和/或IPv4头域等等,相应地,上述N个协议描述符可包括:VLAN描述符、Ethernet描述符和/或IPv4描述符等等。其中,Ethernet头域对应的协议描述符可称为Ethernet描述符(即Ethernet头域与Ethernet描述符之间具有对应关系)。与VLAN标签对应的协议描述符亦可称之为VLAN描述符(即,VLAN标签与VLAN描述符之间具有对应关系)。IPv4头域对应的协议描述符可称为IPv4描述符(即IPv4头域与IPv4描述符之间具有对应关系)。

其中,由于上述预设的协议字段映射关系为具有对应关系的协议描述符与协议头域所包含的协议字段之间的映射关系,因此,上述协议字段映射关系例如可包括:VLAN标签所包含的协议字段与VLAN描述符所包含的协议字段之间的映射关系、IPv4头域所包含的协议字段与IPv4描述符所包含的协议字段之间的映射关系、Ethernet头域所包含的协议字段与Ethernet描述符所包含的协议字段之间的映射关系。也就是说,预设的协议字段映射关系可指示出,如何将协议头域所包含的协议字段,映射为与该协议头域具有对应关系的协议描述符中的协议字段,同理,预设的协议字段映射关系也可指示出如何将协议描述符所包含的协议字段,映射为与该协议描述符具有对应关系的协议头域中的协议字段。例如预设的协议字段映射关系可指示出如何将IPv4头域所包含的协议字段映射为IPv4描述符中的协议字段,还可指示出如何将IPv4描述符所包含的协议字段映射为IPv4头域中的协议字段。预设的协议字段映射关系可指示出如何将Ethernet头域所包含的协议字段映射为Ethernet描述符中的协议字段,且还可指示出如何将Ethernet描述符所包含的协议字段映射为Ethernet头域中的协议字段。预设的协议字段映射关系可指示出,如何将VLAN标签所包含的协议字段映射为VLAN描述符中的协议字段,可指示出如何将VLAN描述符所包含的协议字段映射为VLAN标签中的协议字段,以此类推。

因此,可基于某个协议头域和预设的协议字段映射关系,生成输入报文模版中与该某个协议头域对应的协议描述符,同理,也可基于输入报文模版中的某个协议描述符和预设的协议字段映射关系,转换得到与输入报文模版中的该某个协议描述符对应的协议头域。举例来说,可基于VLAN标签和预设的协议字段映射关系生成输入报文模版中的VLAN描述符,同理,可基于预设的协议字段映射关系和输入报文模版中的VLAN描述符变换得到VLAN标签。可基于IPv4头域和预设的协议字段映射关系生成输入报文模版中的IPv4描述符,也可基于预设的协议字段映射关系和输入报文模版中的IPv4描述符变换得到IPv4头域。可基于Ethernet头域和预设的协议字段映射关系生成输入报文模版中的Ethernet描述符,也可基于预设的协议字段映射关系和输入报文模版中的Ethernet描述符变换得到Ethernet头域。其它具有对应关系的协议头域和协议描述符之间的转换方式可以此类推。

其中,协议描述符可记录在1bit,8bit,16bit,32bit,64bit,128bit等相同或不同宽度的寄存器中。当输入报文模版确定之后,协议描述符中各字段的存储位置就可固定。其中,若协议描述符中各字段的存储位置相对固定,则有利于进一步简化编辑处理指令的复杂度,因为此时编辑处理指令可直接针对地址来设定,而无需过多地址中的具体内容。

其中,协议描述符包含的各协议字段并不要求与协议头域中的各协议字段一一对应,可以根据转发业务灵活配置。在不同的转发应用中,同一协议头域可以对应不同数据格式的协议描述符。同时,一个协议描述符并不要求其所有数据分布在一块连续的存储空间内。

例如,假设输入报文的IPv4头域如图4-a所示,输入报文的IPv4头域所对应的IPv4描述符可如图4-b所示。假设,IPv4头域起始的4字节数据在转发过程中不会被用到,因此可以分配一个4字节长度的寄存器将其作为一个完整的字存储在第14号寄存器中。IPv4描述符的数据结构可以通过协议无感知转发机制的报文解析器编译得到,也可以通过用户指定。

其中,图4-a和图4-b共同示出了IPv4描述符所包含的协议字段与IPv4头域所包含的协议字段之间的一种映射关系,当然也不限于这样的映射关系,其它具有对应关系的协议描述符和协议头域所包含的协议字段之间的映射关系可以此类推。举例来说,图4-a中的IPv4头域中的Protocol字段映射到了图4-b所示的IPv4描述符的Protocol字段,IPv4头域中的TTL字段映射到IPv4描述符的TTL字段,IPv4头域中的源地址字段映射到IPv4描述符的源地址字段。其中,IPv4头域中的版本字段、首部长度字段、优先级信息字段字段、全长字段、标识符字段、协议标签字段和分片偏移字段,映射到IPv4描述符的起始词字段。其它协议字段的映射关系如图4-a和图4-b所示,此处不再赘述。

在本发明的一些实施例中,上述对上述输入报文模版进行编辑处理例如可以包括:确定与上述协议类型序列对应的编辑处理指令序列,调用确定出的上述编辑处理指令序列对上述输入报文模版进行编辑处理。具体的,可针对每一种协议类型序列,预设至少一种编辑处理指令序列,因此当生成输入报文模版之后,便可根据输入报文模版所包含的协议描述符对应的协议类型序列,确定与该协议类型序列对应的编辑处理指令序列,利用确定出的编辑处理指令序列来对上述输入报文模版进行编辑处理。可以理解,若针对不同协议类型序列预设对应的编辑处理指令序列,则在对上述输入报文模版进行编辑处理时可无需临时生成编辑处理指令序列,这样有利于降低指令复杂度,简化编辑处理的计算复杂度。

在本发明的一些实施例中,上述对上述输入报文模版进行编辑处理例如可以包括:在上述输入报文模版中新增至少1个协议描述符,并可进一步更新上述输入报文模版中的模版描述符中的协议组合描述字段,以使得更新后的上述协议组合描述字段描述出上述输入报文模版当前包含的各协议描述符所对应的协议类型序列。如图4-c所示,报文转发设备在输入报文模版中新增1个VLAN标签,并更新了输入报文模版中的模版描述符中的协议组合描述字段,使得协议组合描述字段所描述的协议类型序列,与输入报文模版当前所包含的协议描述符对应。其中,图4-c中举例示出,协议组合描述字段所描述的协议类型序列由Ethernet+VLAN+IPv4更新为Ethernet+VLAN+VLAN+IPv4。

在本发明的一些实施例中,上述对上述输入报文模版进行编辑处理例如可以包括:删除上述输入报文模版中的至少一个协议描述符,并可进一步更新上述输入报文模版中的模版描述符中的协议组合描述字段,以使得更新后的上述协议组合描述字段描述出上述输入报文模版当前包含的各协议描述符所对应的协议类型序列。例如图4-d所示,在输入报文模版中删除1个VLAN描述符和1个Ethernet描述符,并更新了输入报文模版中的模版描述符中的协议组合描述字段,使得协议组合描述字段所描述的协议类型序列与输入报文模版当前所包含的协议描述符对应。其中,图4-d中举例示出,协议组合描述字段所描述的协议类型序列由Ethernet+VLAN+IPv4更新为IPv4。其中,图4-d还示出,而后又在输入报文模版中添加了1个新的Ethernet描述符,并更新了输入报文模版中的模版描述符中的协议组合描述字段,使得更新了的协议组合描述字段所描述的协议类型序列与输入报文模版当前所包含的协议描述符对应,其中,图4-d中举例示出,协议组合描述字段所描述的协议类型序列由IPv4被更新为Ethernet+IPv4。

在本发明的一些实施例中,上述对上述输入报文模版进行编辑处理例如可以包括:上述对上述输入报文模版进行编辑处理包括:替换上述输入报文模版中的至少一个协议描述符。其中,由于替换至少一个协议描述符,输入报文模版对应的协议类型序列可能没有变化,因此可能无需新输入报文模版中的模版描述符中的协议组合描述字段。例如图4-e所示,在输入报文模版中替换了1个VLAN描述符,由于只是替换了1个VLAN描述符,输入报文模版对应的协议类型序列(Ethernet+VLAN+IPv4)没有变化,因此,可以无需更新输入报文模版中的模版描述符中的协议组合描述字段。

可以理解,替换上述输入报文模版中的一个协议描述符也可分解为先删除输入报文模版中的一个旧的协议描述符,而后在上述输入报文模版中新增1个新的协议描述符。

可以理解,协议类型序列(如Ethernet+VLAN+IPv4)不仅可描述出输入报文模版所包含的协议描述符所对应的各协议类型的组合,还可描述出各协议类型之间的位置关系,如协议类型序列Ethernet+VLAN+IPv4还可描述出各协议类型之间的位置关系为VLAN处于Ethernet与IPv4之间。

308、基于预设的上述协议字段映射关系,将上述输出报文模版所包含的M个协议描述符转换为输出报文的M个协议头域。

309、将上述输入报文中的上述N个协议头域替换为上述M个协议头域以得到输出报文,其中,上述N和上述M为正整数。

其中,上述N可能大于、小于或等于上述M。

例如,当对上述输入报文模版进行编辑处理的过程中,在上述输入报文模版中新增了协议描述符,则上述M将大于上述N。当对上述输入报文模版进行编辑处理的过程中,在上述输入报文模版中删除了协议描述符,则上述M将小于上述N,当对上述输入报文模版进行编辑处理的过程中,既在上述输入报文模版中删除了协议描述符,又在上述输入报文模版中新增了协议描述符,则上述M可能大于、小于或等于上述N。

可以看出,本实施例中报文转发设备由于是先基于输入报文的待编辑处理的N个协议头域和预设的协议字段映射关系生成输入报文模版,其中,上述输入报文模版包含有与上述N个协议头域一一对应的N个协议描述符,其中,上述协议字段映射关系为具有对应关系的协议描述符与协议头域所包含的协议字段之间的映射关系;而后对上述输入报文模版进行编辑处理以得到输出报文模版;基于预设的上述协议字段映射关系,将上述输出报文模版所包含的M个协议描述符转换为输出报文的M个协议头域,将上述输入报文中的上述N个协议头域替换为上述M个协议头域以得到输出报文。由于在编辑处理时主要是对输入报文模版进行编辑处理而并非对整个输入报文进行编辑处理,因此,有利于降低编辑处理的数据量,进而有利于降低报文编辑处理的指令复杂度,提高报文编辑处理的效率。

为便于更好的实施本发明实施例的上述方案,本发明实施例下面还提供用于实施上述方案的相关装置。

参见图5,本发明实施例提供一种报文编辑处理装置500,可包括:报文解析器510、模版编辑处理器520和报文组装器530。

其中,报文解析器510,用于基于输入报文的待编辑处理的N个协议头域和预设的协议字段映射关系生成输入报文模版,上述输入报文模版包含有与上述N个协议头域一一对应的N个协议描述符,其中,上述协议字段映射关系为具有对应关系的协议描述符与协议头域所包含的协议字段之间的映射关系。

模版编辑处理器520,用于对上述输入报文模版进行编辑处理以得到输出报文模版。

报文组装器530,用于基于预设的上述协议字段映射关系,将得到的上述输出报文模版所包含的M个协议描述符转换为输出报文的M个协议头域,将上述输入报文中的上述N个协议头域替换为上述M个协议头域以得到输出报文,上述N和上述M为正整数。

在本发明的一些实施例中,报文解析器510可具体用于:根据输入报文的报文接收信息确定上述输入报文对应的报文解析表;调用上述报文解析表中的解析指令序列,基于上述输入报文的待编辑处理的N个协议头域生成输入报文模版。

可以理解,由于协议头域和协议描述符之间具有一一对应的关系,因此报文解析器510基于输入报文的待编辑处理的上述N个协议头域,可得到与之一一对应的N个协议描述符。

其中,上述N个协议头域例如可包括:VLAN标签、Ethernet头域和/或IPv4头域等等,相应地,上述N个协议描述符可包括:VLAN描述符、Ethernet描述符和/或IPv4描述符等等。其中,Ethernet头域对应的协议描述符可称为Ethernet描述符(即Ethernet头域与Ethernet描述符之间具有对应关系)。与VLAN标签对应的协议描述符亦可称之为VLAN描述符(即,VLAN标签与VLAN描述符之间具有对应关系)。IPv4头域对应的协议描述符可称为IPv4描述符(即IPv4头域与IPv4描述符之间具有对应关系)。

其中,由于上述预设的协议字段映射关系为具有对应关系的协议描述符与协议头域所包含的协议字段之间的映射关系,因此,上述协议字段映射关系例如可包括:VLAN标签所包含的协议字段与VLAN描述符所包含的协议字段之间的映射关系、IPv4头域所包含的协议字段与IPv4描述符所包含的协议字段之间的映射关系、Ethernet头域所包含的协议字段与Ethernet描述符所包含的协议字段之间的映射关系。也就是说,预设的协议字段映射关系可指示出,如何将协议头域所包含的协议字段,映射为与该协议头域具有对应关系的协议描述符中的协议字段,同理,预设的协议字段映射关系也可指示出如何将协议描述符所包含的协议字段,映射为与该协议描述符具有对应关系的协议头域中的协议字段。例如预设的协议字段映射关系可指示出如何将IPv4头域所包含的协议字段映射为IPv4描述符中的协议字段,还可指示出如何将IPv4描述符所包含的协议字段映射为IPv4头域中的协议字段。预设的协议字段映射关系可指示出如何将Ethernet头域所包含的协议字段映射为Ethernet描述符中的协议字段,且还可指示出如何将Ethernet描述符所包含的协议字段映射为Ethernet头域中的协议字段。预设的协议字段映射关系可指示出,如何将VLAN标签所包含的协议字段映射为VLAN描述符中的协议字段,可指示出如何将VLAN描述符所包含的协议字段映射为VLAN标签中的协议字段,以此类推。

因此报文解析器510可基于某协议头域和预设的协议字段映射关系,生成输入报文模版中与该某个协议头域对应的协议描述符,同理,也可基于输入报文模版中的某个协议描述符和预设的协议字段映射关系,转换得到与输入报文模版中的该某个协议描述符对应的协议头域。举例来说,可基于VLAN标签和预设的协议字段映射关系生成输入报文模版中的VLAN描述符,同理,可基于预设的协议字段映射关系和输入报文模版中的VLAN描述符变换得到VLAN标签。可基于IPv4头域和预设的协议字段映射关系生成输入报文模版中的IPv4描述符,也可基于预设的协议字段映射关系和输入报文模版中的IPv4描述符变换得到IPv4头域。可基于Ethernet头域和预设的协议字段映射关系生成输入报文模版中的Ethernet描述符,也可基于预设的协议字段映射关系和输入报文模版中的Ethernet描述符变换得到Ethernet头域。其它具有对应关系的协议头域和协议描述符之间的转换方式可以此类推。

在本发明的一些实施例中,上述N个协议描述符中的第一协议描述符所包含的第一协议字段,与上述N个协议头域中的第一协议头域所包含的至少一个协议字段之间具有的映射关系,上述第一协议描述符与上述第一协议头域具有对应关系。

在本发明的一些实施例中,上述N个协议头域中的第一协议头域所包含的第二协议字段,与上述N个协议描述符中的第一协议描述符所包含的至少一个协议字段之间具有映射关系;上述第一协议描述符与上述第一协议头域具有对应关系。

其中,上述第一协议头域或上述第二协议头域可为上述N个协议头域中的任意一个协议头域或某个特定的协议头域。其中,上述第一协议头域或上述第二协议头域例如可为Ethernet头域、IPV4头域或VLAN标签等。

也就是说,具有对应关系的协议头域和协议描述符所包含的协议字段的数量可能相等或不等,例如,IPV4头域所包含的协议字段的数量和IPV4描述符所包含的协议字段的数量可能相等或不等,Ethernet头域所包含的协议字段的数量和Ethernet描述符所包含的协议字段的数量可能相等或不等,VLAN标签所包含的协议字段的数量和VLAN描述符所包含的协议字段的数量可能相等或不等。

举例来说,若第一协议描述符(例如IPV4描述符)所包含的任意一个协议字段,均与第一协议头域(例如IPV4头域)所包含的多个协议字段之间具有的映射关系,则第一协议描述符包含的协议字段的数量小于第一协议头域包含的协议字段的数量。又例如,若第一协议头域(例如Ethernet头域)所包含的任意一个协议字段,均与第一协议描述符(例如Ethernet描述符)包含的多个协议字段之间具有的映射关系,则第一协议描述符包含的协议字段的数量,大于第一协议头域包含的协议字段的数量。又例如,若第一协议描述符(例如IPV4描述符)所包含的某些协议字段中的每个协议字段,与第一协议头域(例如IPV4头域)所包含的多个协议字段之间具有的映射关系,且第一协议头域所包含的某些协议字段中的每个协议字段,与第一协议描述符所包含的多个协议字段之间具有的映射关系,则第一协议描述符包含的协议字段的数量可能大于、小于或等于第一协议头域包含的协议字段的数量。又例如,若第二协议描述符所包含的各协议字段,与上述第二协议头域所包含的各协议字段之间具有一一映射关系,则第二协议描述符包含的协议字段的数量等于第二协议头域包含的协议字段的数量。其它场景以此类推。

为便于更好的理解字段映射关系,下面结合附图2-a~图2-g来举例介绍具有对应关系的协议描述符和协议头域所包含的协议字段之间可能具有的如下几种字段映射关系。其中,图2-a~图2-g中的协议描述符A1与协议头域B1具有对应关系。

参见图2-a~图2-g。图2-a举例示出了协议描述符A1中的协议字段与协议头域B1中的字段之间具有一一映射关系,具体的,协议描述符A1中的协议字段d11与协议头域B1中的协议字段d21具有映射关系(即协议字段d11,可基于协议头域B1中的协议字段d21变换得到),协议描述符A1中的协议字段d12与协议头域B1中的协议字段d22具有映射关系(即协议字段d12,可基于协议头域B1中的协议字段d22变换得到),协议描述符A1中的协议字段d13与协议头域B1中的协议字段d23具有映射关系(即协议字段d13,可基于协议头域B1中的协议字段d23变换得到),协议描述符A1中的协议字段d14与协议头域B1中的协议字段d24具有映射关系(即协议字段d14,可基于协议头域B1中的协议字段d24变换得到),以此类推。

又例如图2-b所示,图2-b举例示出协议描述符A1中的某个协议字段可与协议头域B1中的多个协议字段之间具有映射关系,具体的,协议描述符A1中的协议字段d11,与协议头域B1中的协议字段d21和d22具有映射关系(即协议字段d11可基于协议头域B1中的协议字段d21和d22变换得到),同理,协议描述符A1中的协议字段d12,与协议头域B1中的协议字段d23、d24和d25之间具有映射关系(即协议字段d12,可以基于协议头域B1中的协议字段d23、d24和d25变换得到),以此类推。

又如图2-c所示,图2-c举例示出协议头域B1中的某个协议字段可与协议描述符A1中的多个协议字段之间具有映射关系。具体的,协议头域B1中的协议字段d21,与协议描述符A1中的协议字段d11和d12具有映射关系(即,协议描述符A1中的协议字段d21和d22,可基于协议字段d21变换得到),同理,协议头域B1中的协议字段d22,与协议描述符A1中的协议字段d13、d14和d15之间具有映射关系(即,协议描述符A1中的协议字段d13、d14和d15,可基于协议字段d22变换得到),以此类推。

又例如图2-d所示,图2-d举例示出了协议头域B1中的某个协议字段与协议描述符A1中的多个协议字段之间具有映射关系,协议描述符A1中的另某个协议字段与协议头域B1中的另多个协议字段之间具有映射关系。具体的,图2-d举例示出协议描述符A1中的协议字段d11,与协议头域B1中的协议字段d21和d22具有映射关系(即,协议字段d11可基于协议头域B1中的协议字段d21和d22变换得到);协议描述符A1中的协议字段d15,与协议头域B1中的协议字段d24和d25具有映射关系(即,协议字段d15可基于协议头域B1中的协议字段d24和d25变换得到);协议头域B1中的协议字段d23,与协议描述符A1中的协议字段d12和d13和d13之间具有映射关系(即,协议描述符A1中的协议字段d12和d13和d13可基于协议头域B1中的协议字段d23变换得到),以此类推。

又如图2-e所示,图2-e举例示出了协议头域B1中的某个协议字段与协议描述符A1中的多个协议字段之间具有映射关系,并且协议描述符A1中的另某个协议字段与协议头域B1中的另多个协议字段之间具有映射关系,并且,协议描述符A1中的又某个协议字段与协议头域B1中的又某个协议字段之间具有映射关系。具体的,图2-e举例示出协议描述符A1中的协议字段d11,与协议头域B1中的协议字段d21和d22具有映射关系(即,协议字段d11可基于协议头域B1中的协议字段d21和d22变换得到);协议头域B1中的协议字段d23,与协议描述符A1中的协议字段d12和d13具有映射关系(即,协议字段d12和d13可基于协议头域B1中的协议字段d23变换得到);协议描述符A1中的协议字段d15与协议头域B1中的协议字段d25具有映射关系(即协议字段d15,可基于协议头域B1中的协议字段d25变换得到),协议描述符A1中的协议字段d14与协议头域B1中的协议字段d24具有映射关系(即协议字段d14,可基于协议头域B1中的协议字段d24变换得到),以此类推。

又如图2-f所示,图2-f举例示出了协议描述符A1中的某个协议字段与协议头域B1中的多个协议字段之间具有映射关系,协议描述符A1中的又某个协议字段与协议头域B1中的又某个协议字段之间具有映射关系。具体的,图2-f举例示出协议描述符A1中的协议字段d11,与协议头域B1中的协议字段d21和d22和d23具有映射关系(即,协议字段d11,可基于协议头域B1中的协议字段d21和d22和d23变换得到);协议描述符A1中的协议字段d12与协议头域B1中的协议字段d24具有映射关系(即协议字段d12,可基于协议头域B1中的协议字段d24变换得到),协议描述符A1中的协议字段d13与协议头域B1中的协议字段d25具有映射关系(即协议字段d13,可基于协议头域B1中的协议字段d25变换得到),以此类推。

又如图2-g所示,图2-g举例示出了协议头域B1中的某个协议字段与协议描述符A1中的多个协议字段之间具有映射关系,协议描述符A1中的又某个协议字段与协议头域B1中的又某个协议字段之间具有映射关系。具体的,图2-g举例示出协议头域B1中的协议字段d21,与协议描述符A1中的协议字段d11和d12和d13具有映射关系(即,协议描述符A1中的协议字段d11和d12和d13,可基于协议头域B1中的协议字段d21变换得到);协议描述符A1中的协议字段d14与协议头域B1中的协议字段d22具有映射关系(即协议字段d14,可基于协议头域B1中的协议字段d22变换得到),协议描述符A1中的协议字段d15与协议头域B1中的协议字段d23具有映射关系(即协议字段d15可基于协议头域B1中的协议字段d23变换得到),以此类推。

可以理解,图2-a~图2-g介绍的协议描述符所包含的协议字段与协议头域所包含的协议字段之间的几种可能的字段映射关系仅为举例,当然,协议描述符所包含的协议字段与协议头域所包含的协议字段之间,亦可具有其它的字段映射关系,此处不再一一列举。

其中,协议描述符可记录在1bit,8bit,16bit,32bit,64bit,128bit等相同或不同宽度的寄存器中。当输入报文模版确定之后,协议描述符中各字段的存储位置就可固定。其中,若协议描述符中各字段的存储位置相对固定,则有利于进一步简化编辑处理指令的复杂度,因为此时编辑处理指令可直接针对地址来设定,而无需过多地址中的具体内容。

在本发明的一些实施例中,上述输入报文模版还包含模版描述符,上述模版描述符中包含有协议组合描述字段,上述协议组合描述字段用于描述出上述输入报文模版包含的各协议描述符所对应的协议类型序列。

同理,输出报文模版也还可包含模版描述符,其中,上述模版描述符中可包含有协议组合描述字段,其中,上述协议组合描述字段用于描述出上述输出报文模版包含的各协议描述符所对应的协议类型序列。可以理解,当输入报文模版中包含的协议描述符发生变化时,可适应性的更新协议组合描述字段,以使得该协议组合描述字段可以描述出上述输入报文模版当前所包含的各协议描述符所对应的协议类型序列。

可选的,输入报文模版中的模版描述符还可包含:用于记录上述输入报文模版所包含的协议描述符所对应的协议头域的总长度的头域长度字段。可以理解的是,当输入报文模版中包含的协议描述符发生变化时,可适应性的更新模版描述符中的头域长度字段,以使得该头域长度字段可描述出上述输入报文模版当前所包含的各协议描述符所对应的协议头域的总长度。举例来说,假设输入报文模版包含2协议描述符,而该2协议描述符所对应的协议头域的总长度为50字节(此时头域长度字段记录的值为50字节),若在对上述输入报文模版进行编辑处理过程中,在输入报文模版中新增了1个VLAN描述符,该VLAN描述符所对应VLAN标签长度为4字节,则可以将头域长度字段记录的值为更新为54字节。又例如,假设输入报文模版包含3协议描述符,该3协议描述符所对应的协议头域的总长度为68字节(此时头域长度字段记录的值为68字节),若在对上述输入报文模版进行编辑处理过程中,在输入报文模版中删除了1个VLAN描述符,该VLAN描述符所对应VLAN标签长度为4字节,则可将头域长度字段记录的值为更新为64字节,其它情况以此类推。

可选的,上述模版描述符还可包含用于记录输入报文的转发方式的转发指示字段。可选的,模版描述符还可包含用于记录输入报文对应的附加信息(报文的接收端口号和/或接收通道号等等)的附件信息字段。当然,上述模版描述符也还可以包含其它字段。

可选的,在本发明的一些实施例中,在上述对上述输入报文模版进行编辑处理的方面,上述模版编辑处理器520可具体用于:确定与上述协议类型序列对应的编辑处理指令序列,调用确定出的上述编辑处理指令序列对上述输入报文模版进行编辑处理。具体的,可针对每一种协议类型序列,预设至少一种编辑处理指令序列,因此当生成输入报文模版之后,便可根据输入报文模版所包含的协议描述符对应的协议类型序列,确定与该协议类型序列对应的编辑处理指令序列,利用确定出的编辑处理指令序列来对上述输入报文模版进行编辑处理。可以理解,若针对不同协议类型序列预设对应的编辑处理指令序列,则在对上述输入报文模版进行编辑处理时可无需临时生成编辑处理指令序列,这样有利于降低指令复杂度,简化编辑处理的计算复杂度。

可选的,在本发明的一些实施例中,在上述对上述输入报文模版进行编辑处理的方面,上述模版编辑处理器520可具体用于:在上述输入报文模版中新增至少1个协议描述符,并更新上述输入报文模版中的模版描述符中的协议组合描述字段,以使得更新后的上述协议组合描述字段描述出上述输入报文模版当前包含的各协议描述符所对应的协议类型序列。

可选的,在本发明的一些实施例中,在上述对上述输入报文模版进行编辑处理的方面,上述模版编辑处理器520可具体用于:删除上述输入报文模版中的至少一个协议描述符,并更新上述输入报文模版中的模版描述符中的协议组合描述字段,以使得更新后的上述协议组合描述字段描述出上述输入报文模版当前包含的各协议描述符所对应的协议类型序列。

可选的,在本发明的一些实施例中,在上述对上述输入报文模版进行编辑处理的方面,上述模版编辑处理器520可具体用于:替换上述输入报文模版中的至少一个协议描述符。

可选的,在本发明的一些实施例中,在上述将上述输入报文中的上述N个协议头域替换为上述M个协议头域以得到输出报文的方面,上述报文组装器530可具体用于,将上述输入报文的上述N个协议头域进行删除;将上述M个协议头域插入到上述输入报文中被删除的上述N个协议头域所对应的位置。

可以理解,替换上述输入报文模版中的一个协议描述符也可分解为先删除输入报文模版中的一个旧的协议描述符,而后在上述输入报文模版中新增1个新的协议描述符。

可以理解的是,本实施例的报文编辑处理装置500的各功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。

可以看出,本实施例中由于报文编辑处理装置500是先基于输入报文的待编辑处理的N个协议头域和预设的协议字段映射关系生成输入报文模版,上述输入报文模版包含有与上述N个协议头域一一对应的N个协议描述符,上述协议字段映射关系为具有对应关系的协议描述符与协议头域所包含的协议字段之间的映射关系;而后对上述输入报文模版进行编辑处理以得到输出报文模版;基于预设的上述协议字段映射关系,将上述输出报文模版所包含的M个协议描述符转换为输出报文的M个协议头域,将上述输入报文中的上述N个协议头域替换为上述M个协议头域以得到输出报文。由于在编辑处理时主要是对输入报文模版进行编辑处理而并非对整个输入报文进行编辑处理,因此,有利于降低编辑处理的数据量,进而有利于降低报文编辑处理的指令复杂度,提高报文编辑处理的效率。

参见图6,图6为本发明实施例提供的报文转发设备600的示意图,报文转发设备600可包括至少一个总线601、与总线601相连的至少一个处理器602以及与总线601相连的至少一个存储器603。

其中,处理器602通过总线601调用存储器603中存储的代码,以用于基于输入报文的待编辑处理的N个协议头域和预设的协议字段映射关系生成输入报文模版,上述输入报文模版包含有与上述N个协议头域一一对应的N个协议描述符,上述协议字段映射关系为具有对应关系的协议描述符与协议头域所包含的协议字段之间的映射关系;对上述输入报文模版进行编辑处理以得到输出报文模版;基于预设的上述协议字段映射关系,将得到的上述输出报文模版所包含的M个协议描述符转换为输出报文的M个协议头域,将上述输入报文中的上述N个协议头域替换为上述M个协议头域以得到输出报文,上述N和上述M为正整数。

在本发明的一些实施例中,在上述基于输入报文的待编辑处理的N个协议头域和预设的协议字段映射关系生成输入报文模版的方面,上述处理器602可以具体用于,根据输入报文的报文接收信息确定上述输入报文对应的报文解析表;调用上述报文解析表中的解析指令序列,基于上述输入报文的待编辑处理的N个协议头域生成输入报文模版。

可以理解,由于协议头域和协议描述符之间具有一一对应的关系,因此处理器602基于输入报文的待编辑处理的上述N个协议头域,可得到与之一一对应的N个协议描述符。

其中,上述N个协议头域例如可包括:VLAN标签、Ethernet头域和/或IPv4头域等等,相应地,上述N个协议描述符可包括:VLAN描述符、Ethernet描述符和/或IPv4描述符等等。其中,Ethernet头域对应的协议描述符可称为Ethernet描述符(即Ethernet头域与Ethernet描述符之间具有对应关系)。与VLAN标签对应的协议描述符亦可称之为VLAN描述符(即,VLAN标签与VLAN描述符之间具有对应关系)。IPv4头域对应的协议描述符可称为IPv4描述符(即IPv4头域与IPv4描述符之间具有对应关系)。

其中,由于上述预设的协议字段映射关系为具有对应关系的协议描述符与协议头域所包含的协议字段之间的映射关系,因此,上述协议字段映射关系例如可包括:VLAN标签所包含的协议字段与VLAN描述符所包含的协议字段之间的映射关系、IPv4头域所包含的协议字段与IPv4描述符所包含的协议字段之间的映射关系、Ethernet头域所包含的协议字段与Ethernet描述符所包含的协议字段之间的映射关系。也就是说,预设的协议字段映射关系可指示出,如何将协议头域所包含的协议字段,映射为与该协议头域具有对应关系的协议描述符中的协议字段,同理,预设的协议字段映射关系也可指示出如何将协议描述符所包含的协议字段,映射为与该协议描述符具有对应关系的协议头域中的协议字段。例如预设的协议字段映射关系可指示出如何将IPv4头域所包含的协议字段映射为IPv4描述符中的协议字段,还可指示出如何将IPv4描述符所包含的协议字段映射为IPv4头域中的协议字段。预设的协议字段映射关系可指示出如何将Ethernet头域所包含的协议字段映射为Ethernet描述符中的协议字段,且还可指示出如何将Ethernet描述符所包含的协议字段映射为Ethernet头域中的协议字段。预设的协议字段映射关系可指示出,如何将VLAN标签所包含的协议字段映射为VLAN描述符中的协议字段,可指示出如何将VLAN描述符所包含的协议字段映射为VLAN标签中的协议字段,以此类推。

因此处理器602可基于某协议头域和预设的协议字段映射关系,生成输入报文模版中与该某个协议头域对应的协议描述符,同理,也可基于输入报文模版中的某个协议描述符和预设的协议字段映射关系,转换得到与输入报文模版中的该某个协议描述符对应的协议头域。例如,可基于VLAN标签和预设的协议字段映射关系生成输入报文模版中的VLAN描述符,同理,可基于预设的协议字段映射关系和输入报文模版中的VLAN描述符变换得到VLAN标签。可基于IPv4头域和预设的协议字段映射关系生成输入报文模版中的IPv4描述符,也可基于预设的协议字段映射关系和输入报文模版中的IPv4描述符变换得到IPv4头域。可基于Ethernet头域和预设的协议字段映射关系生成输入报文模版中的Ethernet描述符,也可基于预设的协议字段映射关系和输入报文模版中的Ethernet描述符变换得到Ethernet头域。其它具有对应关系的协议头域和协议描述符之间的转换方式可以此类推。

其中,若协议描述符记录在1bit,8bit,16bit,32bit,64bit,128bit等相同或不同宽度的寄存器中。则当输入报文模版确定之后,协议描述符中各字段的存储位置就可固定。其中,若协议描述符中各字段的存储位置相对固定,则有利于进一步简化编辑处理指令的复杂度,因为此时编辑处理指令可直接针对地址来设定,而无需过多地址中的具体内容。

在本发明的一些实施例中,上述N个协议描述符中的第一协议描述符所包含的第一协议字段,与上述N个协议头域中的第一协议头域所包含的至少一个协议字段之间具有的映射关系,上述第一协议描述符与上述第一协议头域具有对应关系。

在本发明的一些实施例中,上述N个协议头域中的第一协议头域所包含的第二协议字段,与上述N个协议描述符中的第一协议描述符所包含的至少一个协议字段之间具有映射关系;上述第一协议描述符与上述第一协议头域具有对应关系。

其中,上述第一协议头域或上述第二协议头域可为上述N个协议头域中的任意一个协议头域或某个特定的协议头域。其中,上述第一协议头域或上述第二协议头域例如可为Ethernet头域、IPV4头域或VLAN标签等。

也就是说,具有对应关系的协议头域和协议描述符所包含的协议字段的数量可能相等或不等,例如,IPV4头域所包含的协议字段的数量和IPV4描述符所包含的协议字段的数量可能相等或不等,Ethernet头域所包含的协议字段的数量和Ethernet描述符所包含的协议字段的数量可能相等或不等,VLAN标签所包含的协议字段的数量和VLAN描述符所包含的协议字段的数量可能相等或不等。

举例来说,若第一协议描述符(例如IPV4描述符)所包含的任意一个协议字段,均与第一协议头域(例如IPV4头域)所包含的多个协议字段之间具有的映射关系,则第一协议描述符包含的协议字段的数量小于第一协议头域包含的协议字段的数量。又例如,若第一协议头域(例如Ethernet头域)所包含的任意一个协议字段,均与第一协议描述符(例如Ethernet描述符)包含的多个协议字段之间具有的映射关系,则第一协议描述符包含的协议字段的数量,大于第一协议头域包含的协议字段的数量。又例如,若第一协议描述符(例如IPV4描述符)所包含的某些协议字段中的每个协议字段,与第一协议头域(例如IPV4头域)所包含的多个协议字段之间具有的映射关系,且第一协议头域所包含的某些协议字段中的每个协议字段,与第一协议描述符所包含的多个协议字段之间具有的映射关系,则第一协议描述符包含的协议字段的数量可能大于、小于或等于第一协议头域包含的协议字段的数量。又例如,若第二协议描述符所包含的各协议字段,与上述第二协议头域所包含的各协议字段之间具有一一映射关系,则第二协议描述符包含的协议字段的数量等于第二协议头域包含的协议字段的数量。其它场景以此类推。

为便于更好的理解字段映射关系,下面结合附图2-a~图2-g来举例介绍具有对应关系的协议描述符和协议头域所包含的协议字段之间可能具有的如下几种字段映射关系。其中,图2-a~图2-g中的协议描述符A1与协议头域B1具有对应关系。

参见图2-a~图2-g。图2-a举例示出了协议描述符A1中的协议字段与协议头域B1中的字段之间具有一一映射关系,具体的,协议描述符A1中的协议字段d11与协议头域B1中的协议字段d21具有映射关系(即协议字段d11,可基于协议头域B1中的协议字段d21变换得到),协议描述符A1中的协议字段d12与协议头域B1中的协议字段d22具有映射关系(即协议字段d12,可基于协议头域B1中的协议字段d22变换得到),协议描述符A1中的协议字段d13与协议头域B1中的协议字段d23具有映射关系(即协议字段d13,可基于协议头域B1中的协议字段d23变换得到),协议描述符A1中的协议字段d14与协议头域B1中的协议字段d24具有映射关系(即协议字段d14,可基于协议头域B1中的协议字段d24变换得到),以此类推。

又例如图2-b所示,图2-b举例示出协议描述符A1中的某个协议字段可与协议头域B1中的多个协议字段之间具有映射关系,具体的,协议描述符A1中的协议字段d11,与协议头域B1中的协议字段d21和d22具有映射关系(即协议字段d11可基于协议头域B1中的协议字段d21和d22变换得到),同理,协议描述符A1中的协议字段d12,与协议头域B1中的协议字段d23、d24和d25之间具有映射关系(即协议字段d12,可以基于协议头域B1中的协议字段d23、d24和d25变换得到),以此类推。

又如图2-c所示,图2-c举例示出协议头域B1中的某个协议字段可与协议描述符A1中的多个协议字段之间具有映射关系。具体的,协议头域B1中的协议字段d21,与协议描述符A1中的协议字段d11和d12具有映射关系(即,协议描述符A1中的协议字段d21和d22,可基于协议字段d21变换得到),同理,协议头域B1中的协议字段d22,与协议描述符A1中的协议字段d13、d14和d15之间具有映射关系(即,协议描述符A1中的协议字段d13、d14和d15,可基于协议字段d22变换得到),以此类推。

又例如图2-d所示,图2-d举例示出了协议头域B1中的某个协议字段与协议描述符A1中的多个协议字段之间具有映射关系,协议描述符A1中的另某个协议字段与协议头域B1中的另多个协议字段之间具有映射关系。具体的,图2-d举例示出协议描述符A1中的协议字段d11,与协议头域B1中的协议字段d21和d22具有映射关系(即,协议字段d11可基于协议头域B1中的协议字段d21和d22变换得到);协议描述符A1中的协议字段d15,与协议头域B1中的协议字段d24和d25具有映射关系(即,协议字段d15可基于协议头域B1中的协议字段d24和d25变换得到);协议头域B1中的协议字段d23,与协议描述符A1中的协议字段d12和d13和d13之间具有映射关系(即,协议描述符A1中的协议字段d12和d13和d13可基于协议头域B1中的协议字段d23变换得到),以此类推。

又如图2-e所示,图2-e举例示出了协议头域B1中的某个协议字段与协议描述符A1中的多个协议字段之间具有映射关系,并且协议描述符A1中的另某个协议字段与协议头域B1中的另多个协议字段之间具有映射关系,并且,协议描述符A1中的又某个协议字段与协议头域B1中的又某个协议字段之间具有映射关系。具体的,图2-e举例示出协议描述符A1中的协议字段d11,与协议头域B1中的协议字段d21和d22具有映射关系(即,协议字段d11可基于协议头域B1中的协议字段d21和d22变换得到);协议头域B1中的协议字段d23,与协议描述符A1中的协议字段d12和d13具有映射关系(即,协议字段d12和d13可基于协议头域B1中的协议字段d23变换得到);协议描述符A1中的协议字段d15与协议头域B1中的协议字段d25具有映射关系(即协议字段d15,可基于协议头域B1中的协议字段d25变换得到),协议描述符A1中的协议字段d14与协议头域B1中的协议字段d24具有映射关系(即协议字段d14,可基于协议头域B1中的协议字段d24变换得到),以此类推。

又如图2-f所示,图2-f举例示出了协议描述符A1中的某个协议字段与协议头域B1中的多个协议字段之间具有映射关系,协议描述符A1中的又某个协议字段与协议头域B1中的又某个协议字段之间具有映射关系。具体的,图2-f举例示出协议描述符A1中的协议字段d11,与协议头域B1中的协议字段d21和d22和d23具有映射关系(即,协议字段d11,可基于协议头域B1中的协议字段d21和d22和d23变换得到);协议描述符A1中的协议字段d12与协议头域B1中的协议字段d24具有映射关系(即协议字段d12,可基于协议头域B1中的协议字段d24变换得到),协议描述符A1中的协议字段d13与协议头域B1中的协议字段d25具有映射关系(即协议字段d13,可基于协议头域B1中的协议字段d25变换得到),以此类推。

又如图2-g所示,图2-g举例示出了协议头域B1中的某个协议字段与协议描述符A1中的多个协议字段之间具有映射关系,协议描述符A1中的又某个协议字段与协议头域B1中的又某个协议字段之间具有映射关系。具体的,图2-g举例示出协议头域B1中的协议字段d21,与协议描述符A1中的协议字段d11和d12和d13具有映射关系(即,协议描述符A1中的协议字段d11和d12和d13,可基于协议头域B1中的协议字段d21变换得到);协议描述符A1中的协议字段d14与协议头域B1中的协议字段d22具有映射关系(即协议字段d14,可基于协议头域B1中的协议字段d22变换得到),协议描述符A1中的协议字段d15与协议头域B1中的协议字段d23具有映射关系(即协议字段d15可基于协议头域B1中的协议字段d23变换得到),以此类推。

可以理解,图2-a~图2-g介绍的协议描述符所包含的协议字段与协议头域所包含的协议字段之间的几种可能的字段映射关系仅为举例,当然,协议描述符所包含的协议字段与协议头域所包含的协议字段之间,亦可具有其它的字段映射关系,此处不再一一列举。

其中,若协议描述符记录在1bit,8bit,16bit,32bit,64bit,128bit等相同或不同宽度的寄存器中。则当输入报文模版确定之后,协议描述符中各字段的存储位置就可固定。其中,若协议描述符中各字段的存储位置相对固定,则有利于进一步简化编辑处理指令的复杂度,因为此时编辑处理指令可直接针对地址来设定,而无需过多地址中的具体内容。

在本发明的一些实施例中,上述输入报文模版还包含模版描述符,上述模版描述符中包含有协议组合描述字段,上述协议组合描述字段用于描述出上述输入报文模版包含的各协议描述符所对应的协议类型序列。

同理,输出报文模版也还可包含模版描述符,其中,上述模版描述符中可包含有协议组合描述字段,其中,上述协议组合描述字段用于描述出上述输出报文模版包含的各协议描述符所对应的协议类型序列。可以理解,当输入报文模版中包含的协议描述符发生变化时,可适应性的更新协议组合描述字段,以使得该协议组合描述字段可以描述出上述输入报文模版当前所包含的各协议描述符所对应的协议类型序列。

可选的,输入报文模版中的模版描述符还可包含:用于记录上述输入报文模版所包含的协议描述符所对应的协议头域的总长度的头域长度字段。可以理解的是,当输入报文模版中包含的协议描述符发生变化时,可适应性的更新模版描述符中的头域长度字段,以使得该头域长度字段可描述出上述输入报文模版当前所包含的各协议描述符所对应的协议头域的总长度。举例来说,假设输入报文模版包含2协议描述符,而该2协议描述符所对应的协议头域的总长度为50字节(此时头域长度字段记录的值为50字节),若在对上述输入报文模版进行编辑处理过程中,在输入报文模版中新增了1个VLAN描述符,该VLAN描述符所对应VLAN标签长度为4字节,则可以将头域长度字段记录的值为更新为54字节。又例如,假设输入报文模版包含3协议描述符,该3协议描述符所对应的协议头域的总长度为68字节(此时头域长度字段记录的值为68字节),若在对上述输入报文模版进行编辑处理过程中,在输入报文模版中删除了1个VLAN描述符,该VLAN描述符所对应VLAN标签长度为4字节,则可将头域长度字段记录的值为更新为64字节,其它情况以此类推。

可选的,上述模版描述符还可包含用于记录输入报文的转发方式的转发指示字段。可选的,模版描述符还可包含用于记录输入报文对应的附加信息(报文的接收端口号和/或接收通道号等等)的附件信息字段。当然,上述模版描述符也还可以包含其它字段。

可选的,在本发明的一些实施例中,在上述对上述输入报文模版进行编辑处理的方面,上述处理器602可以具体用于,确定与上述协议类型序列对应的编辑处理指令序列,调用确定出的上述编辑处理指令序列对上述输入报文模版进行编辑处理。具体的,可针对每一种协议类型序列,预设至少一种编辑处理指令序列,因此当生成输入报文模版之后,便可根据输入报文模版所包含的协议描述符对应的协议类型序列,确定与该协议类型序列对应的编辑处理指令序列,利用确定出的编辑处理指令序列来对上述输入报文模版进行编辑处理。可以理解,若针对不同协议类型序列预设对应的编辑处理指令序列,则在对上述输入报文模版进行编辑处理时可无需临时生成编辑处理指令序列,这样有利于降低指令复杂度,简化编辑处理的计算复杂度。

可选的,在本发明的一些实施例中,在上述对上述输入报文模版进行编辑处理的方面,上述处理器602可以具体用于,在上述输入报文模版中新增至少1个协议描述符,并更新上述输入报文模版中的模版描述符中的协议组合描述字段,以使得更新后的上述协议组合描述字段描述出上述输入报文模版当前包含的各协议描述符所对应的协议类型序列。

可选的,在本发明的又一些实施例中,在上述对上述输入报文模版进行编辑处理的方面,上述处理器602可以具体用于,删除上述输入报文模版中的至少一个协议描述符,并更新上述输入报文模版中的模版描述符中的协议组合描述字段,以使得更新后的上述协议组合描述字段描述出上述输入报文模版当前包含的各协议描述符所对应的协议类型序列。

可选的,在本发明的另一些实施例中,在上述对上述输入报文模版进行编辑处理的方面,上述处理器602可以具体用于,替换上述输入报文模版中的至少一个协议描述符。

可选的,在本发明的另一些实施例中,在上述将上述输入报文中的上述N个协议头域替换为上述M个协议头域以得到输出报文的方面,上述处理器602可以具体用于,将上述输入报文的上述N个协议头域进行删除;将上述M个协议头域插入到上述输入报文中被删除的上述N个协议头域所对应的位置。

可以理解,替换上述输入报文模版中的一个协议描述符也可分解为先删除输入报文模版中的一个旧的协议描述符,而后在上述输入报文模版中新增1个新的协议描述符。

可以理解的是,本实施例的报文转发设备600的各功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。

可以理解,本实施例报文转发设备600例如可以是路由器、交换机、防火墙等设备。

可以看出,本实施例由于报文转发设备600是先基于输入报文的待编辑处理的N个协议头域和预设的协议字段映射关系生成输入报文模版,上述输入报文模版包含有与上述N个协议头域一一对应的N个协议描述符,上述协议字段映射关系为具有对应关系的协议描述符与协议头域所包含的协议字段之间的映射关系;而后对上述输入报文模版进行编辑处理以得到输出报文模版;基于预设的上述协议字段映射关系,将上述输出报文模版所包含的M个协议描述符转换为输出报文的M个协议头域,将上述输入报文中的上述N个协议头域替换为上述M个协议头域以得到输出报文。由于在编辑处理时主要是对输入报文模版进行编辑处理而并非对整个输入报文进行编辑处理,因此,有利于降低编辑处理的数据量,进而有利于降低报文编辑处理的指令复杂度,提高报文编辑处理的效率。

参见图7,图7是本发明另一实施例提供的报文转发设备700的结构框图。

其中,报文转发设备700可以包括:至少一个处理器701,至少一个网络接口704或者其他用户接口703,存储器705,至少一个通信总线702。通信总线702用于实现这些组件之间的连接通信。其中,该报文转发设备700可选的包含用户接口703,包括:显示器(例如,触摸屏、LCD、CRT、全息成像(Holographic)或者投影(Projector)等)、点击设备(例如,鼠标,轨迹球(trackball)触感板或触摸屏等)、摄像头和/或拾音装置等。

其中,存储器702例如可包括只读存储器和随机存取存储器,并向处理器701提供指令和数据。

存储器702中的一部分还包括非易失性内存(NVRAM)等。

在一些实施方式中,存储器705存储了如下的元素,可执行模块或者数据结构,或者他们的子集,或者他们的扩展集:

操作系统7051,包含各种系统程序,用于实现各种基础业务以及处理基于硬件的任务。

应用程序模块7052,包含各种应用程序,用于实现各种应用业务。

在本发明实施例中,通过调用存储器702存储的程序或指令,处理器701基于输入报文的待编辑处理的N个协议头域和预设的协议字段映射关系生成输入报文模版,上述输入报文模版包含有与上述N个协议头域一一对应的N个协议描述符,上述协议字段映射关系为具有对应关系的协议描述符与协议头域所包含的协议字段之间的映射关系;对上述输入报文模版进行编辑处理以得到输出报文模版;基于预设的上述协议字段映射关系,将得到的上述输出报文模版所包含的M个协议描述符转换为输出报文的M个协议头域,将上述输入报文中的上述N个协议头域替换为上述M个协议头域以得到输出报文,上述N和上述M为正整数。

在本发明的一些实施例中,在上述基于输入报文的待编辑处理的N个协议头域和预设的协议字段映射关系生成输入报文模版的方面,上述处理器701可以具体用于,根据输入报文的报文接收信息确定上述输入报文对应的报文解析表;调用上述报文解析表中的解析指令序列,基于上述输入报文的待编辑处理的N个协议头域生成输入报文模版。

可以理解,由于协议头域和协议描述符之间具有一一对应的关系,因此处理器701基于输入报文的待编辑处理的上述N个协议头域,可得到与之一一对应的N个协议描述符。

其中,上述N个协议头域例如可包括:VLAN标签、Ethernet头域和/或IPv4头域等等,相应地,上述N个协议描述符可包括:VLAN描述符、Ethernet描述符和/或IPv4描述符等等。其中,Ethernet头域对应的协议描述符可称为Ethernet描述符(即Ethernet头域与Ethernet描述符之间具有对应关系)。与VLAN标签对应的协议描述符亦可称之为VLAN描述符(即,VLAN标签与VLAN描述符之间具有对应关系)。IPv4头域对应的协议描述符可称为IPv4描述符(即IPv4头域与IPv4描述符之间具有对应关系)。

其中,由于上述预设的协议字段映射关系为具有对应关系的协议描述符与协议头域所包含的协议字段之间的映射关系,因此,上述协议字段映射关系例如可包括:VLAN标签所包含的协议字段与VLAN描述符所包含的协议字段之间的映射关系、IPv4头域所包含的协议字段与IPv4描述符所包含的协议字段之间的映射关系、Ethernet头域所包含的协议字段与Ethernet描述符所包含的协议字段之间的映射关系。也就是说,预设的协议字段映射关系可指示出,如何将协议头域所包含的协议字段,映射为与该协议头域具有对应关系的协议描述符中的协议字段,同理,预设的协议字段映射关系也可指示出如何将协议描述符所包含的协议字段,映射为与该协议描述符具有对应关系的协议头域中的协议字段。例如预设的协议字段映射关系可指示出如何将IPv4头域所包含的协议字段映射为IPv4描述符中的协议字段,还可指示出如何将IPv4描述符所包含的协议字段映射为IPv4头域中的协议字段。预设的协议字段映射关系可指示出如何将Ethernet头域所包含的协议字段映射为Ethernet描述符中的协议字段,且还可指示出如何将Ethernet描述符所包含的协议字段映射为Ethernet头域中的协议字段。预设的协议字段映射关系可指示出,如何将VLAN标签所包含的协议字段映射为VLAN描述符中的协议字段,可指示出如何将VLAN描述符所包含的协议字段映射为VLAN标签中的协议字段,以此类推。

因此处理器701可基于某协议头域和预设的协议字段映射关系,生成输入报文模版中与该某个协议头域对应的协议描述符,同理,也可基于输入报文模版中的某个协议描述符和预设的协议字段映射关系,转换得到与输入报文模版中的该某个协议描述符对应的协议头域。例如,可基于VLAN标签和预设的协议字段映射关系生成输入报文模版中的VLAN描述符,同理,可基于预设的协议字段映射关系和输入报文模版中的VLAN描述符变换得到VLAN标签。可基于IPv4头域和预设的协议字段映射关系生成输入报文模版中的IPv4描述符,也可基于预设的协议字段映射关系和输入报文模版中的IPv4描述符变换得到IPv4头域。可基于Ethernet头域和预设的协议字段映射关系生成输入报文模版中的Ethernet描述符,也可基于预设的协议字段映射关系和输入报文模版中的Ethernet描述符变换得到Ethernet头域。其它具有对应关系的协议头域和协议描述符之间的转换方式可以此类推。

在本发明的一些实施例中,上述N个协议描述符中的第一协议描述符所包含的第一协议字段,与上述N个协议头域中的第一协议头域所包含的至少一个协议字段之间具有的映射关系,上述第一协议描述符与上述第一协议头域具有对应关系。

在本发明的一些实施例中,上述N个协议头域中的第一协议头域所包含的第二协议字段,与上述N个协议描述符中的第一协议描述符所包含的至少一个协议字段之间具有映射关系;上述第一协议描述符与上述第一协议头域具有对应关系。

其中,上述第一协议头域或上述第二协议头域可为上述N个协议头域中的任意一个协议头域或某个特定的协议头域。其中,上述第一协议头域或上述第二协议头域例如可为Ethernet头域、IPV4头域或VLAN标签等。

也就是说,具有对应关系的协议头域和协议描述符所包含的协议字段的数量可能相等或不等,例如,IPV4头域所包含的协议字段的数量和IPV4描述符所包含的协议字段的数量可能相等或不等,Ethernet头域所包含的协议字段的数量和Ethernet描述符所包含的协议字段的数量可能相等或不等,VLAN标签所包含的协议字段的数量和VLAN描述符所包含的协议字段的数量可能相等或不等。

举例来说,若第一协议描述符(例如IPV4描述符)所包含的任意一个协议字段,均与第一协议头域(例如IPV4头域)所包含的多个协议字段之间具有的映射关系,则第一协议描述符包含的协议字段的数量小于第一协议头域包含的协议字段的数量。又例如,若第一协议头域(例如Ethernet头域)所包含的任意一个协议字段,均与第一协议描述符(例如Ethernet描述符)包含的多个协议字段之间具有的映射关系,则第一协议描述符包含的协议字段的数量,大于第一协议头域包含的协议字段的数量。又例如,若第一协议描述符(例如IPV4描述符)所包含的某些协议字段中的每个协议字段,与第一协议头域(例如IPV4头域)所包含的多个协议字段之间具有的映射关系,且第一协议头域所包含的某些协议字段中的每个协议字段,与第一协议描述符所包含的多个协议字段之间具有的映射关系,则第一协议描述符包含的协议字段的数量可能大于、小于或等于第一协议头域包含的协议字段的数量。又例如,若第二协议描述符所包含的各协议字段,与上述第二协议头域所包含的各协议字段之间具有一一映射关系,则第二协议描述符包含的协议字段的数量等于第二协议头域包含的协议字段的数量。其它场景以此类推。

其中,若协议描述符记录在1bit,8bit,16bit,32bit,64bit,128bit等相同或不同宽度的寄存器中。则当输入报文模版确定之后,协议描述符中各字段的存储位置就可固定。其中,若协议描述符中各字段的存储位置相对固定,则有利于进一步简化编辑处理指令的复杂度,因为此时编辑处理指令可直接针对地址来设定,而无需过多地址中的具体内容。

在本发明的一些实施例中,上述输入报文模版还包含模版描述符,上述模版描述符中包含有协议组合描述字段,上述协议组合描述字段用于描述出上述输入报文模版包含的各协议描述符所对应的协议类型序列。

同理,输出报文模版也还可包含模版描述符,其中,上述模版描述符中可包含有协议组合描述字段,其中,上述协议组合描述字段用于描述出上述输出报文模版包含的各协议描述符所对应的协议类型序列。可以理解,当输入报文模版中包含的协议描述符发生变化时,可适应性的更新协议组合描述字段,以使得该协议组合描述字段可以描述出上述输入报文模版当前所包含的各协议描述符所对应的协议类型序列。

可选的,输入报文模版中的模版描述符还可包含:用于记录上述输入报文模版所包含的协议描述符所对应的协议头域的总长度的头域长度字段。可以理解的是,当输入报文模版中包含的协议描述符发生变化时,可适应性的更新模版描述符中的头域长度字段,以使得该头域长度字段可描述出上述输入报文模版当前所包含的各协议描述符所对应的协议头域的总长度。举例来说,假设输入报文模版包含2协议描述符,而该2协议描述符所对应的协议头域的总长度为50字节(此时头域长度字段记录的值为50字节),若在对上述输入报文模版进行编辑处理过程中,在输入报文模版中新增了1个VLAN描述符,该VLAN描述符所对应VLAN标签长度为4字节,则可以将头域长度字段记录的值为更新为54字节。又例如,假设输入报文模版包含3协议描述符,该3协议描述符所对应的协议头域的总长度为68字节(此时头域长度字段记录的值为68字节),若在对上述输入报文模版进行编辑处理过程中,在输入报文模版中删除了1个VLAN描述符,该VLAN描述符所对应VLAN标签长度为4字节,则可将头域长度字段记录的值为更新为64字节,其它情况以此类推。

可选的,上述模版描述符还可包含用于记录输入报文的转发方式的转发指示字段。可选的,模版描述符还可包含用于记录输入报文对应的附加信息(报文的接收端口号和/或接收通道号等等)的附件信息字段。当然,上述模版描述符也还可以包含其它字段。

可选的,在本发明的一些实施例中,在上述对上述输入报文模版进行编辑处理的方面,上述处理器701可以具体用于,确定与上述协议类型序列对应的编辑处理指令序列,调用确定出的上述编辑处理指令序列对上述输入报文模版进行编辑处理。具体的,可针对每一种协议类型序列,预设至少一种编辑处理指令序列,因此当生成输入报文模版之后,便可根据输入报文模版所包含的协议描述符对应的协议类型序列,确定与该协议类型序列对应的编辑处理指令序列,利用确定出的编辑处理指令序列来对上述输入报文模版进行编辑处理。可以理解,若针对不同协议类型序列预设对应的编辑处理指令序列,则在对上述输入报文模版进行编辑处理时可无需临时生成编辑处理指令序列,这样有利于降低指令复杂度,简化编辑处理的计算复杂度。

可选的,在本发明的一些实施例中,在上述对上述输入报文模版进行编辑处理的方面,上述处理器701可以具体用于,在上述输入报文模版中新增至少1个协议描述符,并更新上述输入报文模版中的模版描述符中的协议组合描述字段,以使得更新后的上述协议组合描述字段描述出上述输入报文模版当前包含的各协议描述符所对应的协议类型序列。

可选的,在本发明的又一些实施例中,在上述对上述输入报文模版进行编辑处理的方面,上述处理器701可以具体用于,删除上述输入报文模版中的至少一个协议描述符,并更新上述输入报文模版中的模版描述符中的协议组合描述字段,以使得更新后的上述协议组合描述字段描述出上述输入报文模版当前包含的各协议描述符所对应的协议类型序列。

可选的,在本发明的另一些实施例中,在上述对上述输入报文模版进行编辑处理的方面,上述处理器701可以具体用于,替换上述输入报文模版中的至少一个协议描述符。

可选的,在本发明的另一些实施例中,在上述将上述输入报文中的上述N个协议头域替换为上述M个协议头域以得到输出报文的方面,上述处理器701可以具体用于,将上述输入报文的上述N个协议头域进行删除;将上述M个协议头域插入到上述输入报文中被删除的上述N个协议头域所对应的位置。

可以理解,替换上述输入报文模版中的一个协议描述符也可分解为先删除输入报文模版中的一个旧的协议描述符,而后在上述输入报文模版中新增1个新的协议描述符。

可以理解的是,本实施例的报文转发设备700的各功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。

可以理解,本实施例报文转发设备700例如可以是路由器、交换机、防火墙等设备。

可以看出,本实施例由于报文转发设备700是先基于输入报文的待编辑处理的N个协议头域和预设的协议字段映射关系生成输入报文模版,上述输入报文模版包含有与上述N个协议头域一一对应的N个协议描述符,上述协议字段映射关系为具有对应关系的协议描述符与协议头域所包含的协议字段之间的映射关系;而后对上述输入报文模版进行编辑处理以得到输出报文模版;基于预设的上述协议字段映射关系,将上述输出报文模版所包含的M个协议描述符转换为输出报文的M个协议头域,将上述输入报文中的上述N个协议头域替换为上述M个协议头域以得到输出报文。由于在编辑处理时主要是对输入报文模版进行编辑处理而并非对整个输入报文进行编辑处理,因此,有利于降低编辑处理的数据量,进而有利于降低报文编辑处理的指令复杂度,提高报文编辑处理的效率。

本发明实施例提供一种计算机存储介质,其中,上述计算机存储介质存储有程序,上述程序执行时包括如本发明上述实施例提供的任意一种报文编辑处理方法的部分或全部步骤。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可能可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如上述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。

上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

上述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以为个人计算机、服务器或者网络设备等,具体可以是计算机设备中的处理器)执行本发明各个实施例上述方法的全部或部分步骤。其中,而前述的存储介质可包括:U盘、移动硬盘、磁碟、光盘、只读存储器(ROM,Read-Only Memory)或者随机存取存储器(RAM,Random Access Memory)等各种可以存储程序代码的介质。

以上上述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

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