运行时可编程的任意网络协议报文编辑装置及方法制造方法及图纸

技术编号:38314699 阅读:12 留言:0更新日期:2023-07-29 08:56
本公开涉及一种运行时可编程的任意网络协议报文编辑装置及方法,包括预处理单元、报文编辑单元。通过预处理单元提取待编辑报文的元数据、参考偏移量记录。然后,由报文编辑单元根据设定的第一指令、所述参考偏移记录,确定第一偏移量;并且根据所述第一偏移量,从第一起始位置起对所述待编辑报文进行编辑,生成第一报文片段。根据本公开实施例的报文编辑装置能够对任意网络协议报文进行编辑,无需与软件交互,因此降低延迟,提高协议报文编辑效率。提高协议报文编辑效率。提高协议报文编辑效率。

【技术实现步骤摘要】
运行时可编程的任意网络协议报文编辑装置及方法


[0001]本公开涉及通讯领域,尤其涉及一种运行时可编程的任意网络协议报文编辑装置及方法。

技术介绍

[0002]从端口进入到网络设备的报文通常由多层协议组合而成,并且每一层协议的类型选择颇多,这就导致报文的解析过程非常复杂。
[0003]现有的网络协议报文编辑器主要有两类:第一类为固定协议报文编辑器,这种编辑器只能针对某种或某几种网络协议的报文进行编辑,无法对新的协议类型进行扩展,已经无法胜任新兴网络业务。第二类为可扩展报文编辑器,但是这种编辑器实质是使用软件对报文进行编辑。由于这种编辑器对报文编辑时需要软件与硬件多次交互,所以编辑效率低,延迟大。

技术实现思路

[0004]有鉴于此,本公开提出了一种运行时可编程的任意网络协议报文编辑方案。
[0005]根据本公开的一方面,提供了一种运行时可编程的任意网络协议报文编辑装置,包括:预处理单元、报文编辑单元;所述预处理单元,用于提取待编辑报文的元数据、参考偏移量记录,所述参考偏移量记录表征报文片段的起始位置相对于待编辑报文的起始位置的偏移量;所述报文编辑单元,用于根据设定的第一指令、所述参考偏移记录,确定第一偏移量,所述第一偏移量为在所述待编辑报文中进行编辑操作的起始位置相对于所述待编辑报文起始位置的偏移量;根据所述第一偏移量,从第一起始位置起对所述待编辑报文进行编辑,生成第一报文片段。
[0006]在一种可能的实现方式中,所述报文编辑单元,包括:增删单元;所述增删单元,用于,在所述第一指令中的第一操作命令字段为表征删除操作的字段的情况下,在所述待编辑报文中的所述第一起始位置起删除第一长度的数据,生成所述第一报文片段,所述第一长度为所述第一指令的第一长度字段的值;在所述第一指令中的所述第一操作命令字段为表征增加操作的字段的情况下,从所述第一指令中第一操作数字段的起始位置起提取第一长度的第一数据段;将所述第一数据段从所述第一起始位置插入到所述待编辑报文中,生成所述第一报文片段。
[0007]在一种可能的实现方式中,所述报文编辑单元,包括:复写单元:所述复写单元用于从所述待编辑报文的所述第一起始位置开始,将第二长度的数据确定为第二数据段,所述第二长度为所述第一指令的第二长度字段的值;将所述待编辑报文中所述第一起始位置开始的第三长度的数据确定为第一数据源,所述第三长度为所述第一指令的第三长度字段的值;从所述元数据的第二起始位置起提取所述第三长度的数据,作为第二数据源,所述第二起始位置为所述第一指令中元数据偏移量字段的值;利用所述第一数据源或所述第二数据源,确定第三数据段;将所述待编辑报文中的所述第二数据段替换为所述第三数据段,生
成所述第一报文片段。
[0008]在一种可能的实现方式中,所述报文编辑单元,包括:检查单元,所述检查单元用于,在所述第一指令中的第二数据源类型选择字段指示第一数据源的情况下,将所述第一数据源与所述第一指令中的第三操作数进行大小比较,获得第一比较结果;在所述第一指令中的所述第二数据源类型选择字段指示第二数据源的情况下,将所述第二数据源与所述第一指令中的所述第三操作数进行大小比较,获得第二比较结果;比较所述第一比较结果或所述第二比较结果与所述第一指令中第三操作命令字段是否相同,获得第三比较结果;根据所述第三比较结果,确定输出报文的转发目的端口。
[0009]在一种可能的实现方式中,所述装置还包括:指令调度单元,所述指令调度单元用于根据与所述待编辑报文对应的第一指令的执行序号,将各所述第一指令输入到所述编辑单元。
[0010]在一种可能的实现方式中,所述装置还包括:报文片段合并单元,
[0011]所述报文片段合并单元用于将所述第一报文按照从所述编辑单元输出的顺序进行合并,生成输出报文。
[0012]根据本公开的另一方面,提供了一种运行时刻编程的任意网络协议报文编辑方法,包括:提取待编辑报文的元数据、参考偏移量记录,所述参考偏移量记录表征报文片段的起始位置相对于待编辑报文的起始位置的偏移量;根据设定的第一指令、所述参考偏移记录,确定第一偏移量,所述第一偏移量为在所述待编辑报文中进行编辑操作的起始位置相对于所述待编辑报文起始位置的偏移量;根据所述第一偏移量,从第一起始位置起对所述待编辑报文进行编辑,生成第一报文片段。
[0013]在一种可能的实现方式中,所述根据第一指令、所述参考偏移记录,确定第一偏移量,包括:将所述第一指令中的参考偏移量选择字段的值作为提取位置;在所述提取位置,提取所述参考偏移记录中的参考偏移量,所述参考偏移量为待编辑报文进行编辑操作的部分所在的一层协议报文的头部位置相对于待解析报文的起始位置的偏移量;根据第一指令中的相对偏移量字段、所述参考偏移量,确定所述第一偏移量,所述相对偏移量字段表征编辑操作的起始位置相对于待编辑报文进行编辑操作的部分所在的一层协议报文的头部位置相的偏移量。
[0014]在一种可能的实现方式中,所述根据设定的第一指令、所述参考偏移记录,确定第一偏移量,所述第一偏移量为在所述待编辑报文中进行编辑操作的起始位置相对于所述待编辑报文起始位置的偏移量;根据所述第一偏移量,从第一起始位置起对所述待编辑报文进行编辑,生成第一报文片段,包括:在所述第一指令中的第一操作命令字段为表征删除操作的字段的情况下,在所述待编辑报文中的所述第一起始位置起删除第一长度的数据,生成所述第一报文片段,所述第一长度为所述第一指令的第一长度字段的值;在所述第一指令中的所述第一操作命令字段为表征增加操作的字段的情况下,从所述第一指令中第一操作数字段的起始位置起提取第一长度的第一数据段;将所述第一数据段从所述第一起始位置插入到所述待编辑报文中,生成所述第一报文片段。
[0015]在一种可能的实现方式中,所述根据所述第一偏移量,从所述第一起始位置起对所述待编辑报文进行编辑,生成第一报文片段,包括:从所述待编辑报文的所述第一起始位置开始,将第二长度的数据确定为第二数据段,所述第二长度为所述第一指令的第二长度
字段的值;将所述待编辑报文中所述第一起始位置开始的第三长度的数据确定为第一数据源,所述第三长度为所述第一指令的第三长度字段的值;从所述元数据的第二起始位置起提取所述第三长度的数据,作为第二数据源,所述第二起始位置为所述第一指令中元数据偏移量字段的值;利用所述第一数据源或所述第二数据源,确定第三数据段;将所述待编辑报文中的所述第二数据段替换为所述第三数据段,生成所述第一报文片段。
[0016]在一种可能的实现方式中,所述根据所述第一偏移量,从第一起始位置起对所述待编辑报文进行编辑,生成第一报文片段,包括:在所述第一指令中的第二数据源类型选择字段指示第一数据源的情况下,将所述第一数据源与所述第一指令中的第三操作数进行大小比较,获得第一比较结果;在所述第一指令中的所述第二数据源类型选择字段指示第二数据源的情况下,将所述第二数据源与所述第一指令中的所述第三操作数进行大小比较,获得第二比较结果;比较所述第一比较结果或所述本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种运行时可编程的任意网络协议报文编辑装置,其特征在于,包括:预处理单元、报文编辑单元;所述预处理单元,用于提取待编辑报文的元数据、参考偏移量记录,所述参考偏移量记录表征报文片段的起始位置相对于待编辑报文的起始位置的偏移量;所述报文编辑单元,用于,根据设定的第一指令、所述参考偏移记录,确定第一偏移量,所述第一偏移量为在所述待编辑报文中进行编辑操作的起始位置相对于所述待编辑报文起始位置的偏移量;根据所述第一偏移量,从第一起始位置起对所述待编辑报文进行编辑,生成第一报文片段。2.根据权利要求1所述的装置,所述报文编辑单元,包括:增删单元;所述增删单元,用于,在所述第一指令中的第一操作命令字段为表征删除操作的字段的情况下,在所述待编辑报文中的所述第一起始位置起删除第一长度的数据,生成所述第一报文片段,所述第一长度为所述第一指令的第一长度字段的值;在所述第一指令中的所述第一操作命令字段为表征增加操作的字段的情况下,从所述第一指令中第一操作数字段的起始位置起提取第一长度的第一数据段;将所述第一数据段从所述第一起始位置插入到所述待编辑报文中,生成所述第一报文片段。3.根据权利要求1所述的装置,所述报文编辑单元,包括:复写单元;所述复写单元,用于,从所述待编辑报文的所述第一起始位置开始,将第二长度的数据确定为第二数据段,所述第二长度为所述第一指令的第二长度字段的值;将所述待编辑报文中所述第一起始位置开始的第三长度的数据确定为第一数据源,所述第三长度为所述第一指令的第三长度字段的值;从所述元数据的第二起始位置起提取所述第三长度的数据,作为第二数据源,所述第二起始位置为所述第一指令中元数据偏移量字段的值;利用所述第一数据源或所述第二数据源,确定第三数据段;将所述待编辑报文中的所述第二数据段替换为所述第三数据段,生成所述第一报文片段。4.根据权利要求3所述的装置,所述报文编辑单元,包括:检查单元,所述检查单元,用于,在所述第一指令中的第二数据源类型选择字段指示第一数据源的情况下,将所述第一数据源与所述第一指令中的第三操作数进行大小比较,获得第一比较结果;在所述第一指令中的所述第二数据源类型选择字段指示第二数据源的情况下,将所述第二数据源与所述第一指令中的所述第三操作数进行大小比较,获得第二比较结果;比较所述第一比较结果或所述第二比较结果与所述第一指令中第三操作命令字段是否相同,获得第三比较结果;根据所述第三比较结果,确定输出报文的转发目的端口。5.根据权利要求1

4任一所述的装置,还包括:指令调度单元,
所述指令调度单元,用于,根据与所述待编辑报文对应的第一指令的执行序号,将各所述第一指令输入到所述编辑单元。6.根据权利要求1

【专利技术属性】
技术研发人员:袁光黄益人
申请(专利权)人:益思芯科技上海有限公司
类型:发明
国别省市:

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

1