报文处理方法及装置的制造方法_2

文档序号:9923557阅读:来源:国知局
过程时,则所述第二电路根据控制命令调整所述第二电 路的结构。运样在运行时可W针对类型字段的使用概率的变化动态修改霍夫曼树,而不至 于影响正常的报文处理过程,从而可W提高压缩效率。
[0022] 本发明实施例提供一种报文处理方法及装置,该方法包括:依次匹配报文与流表 中的至少一条规则;若所述报文与任一条规则匹配成功,则对所述报文依次执行所述任一 条规则中的,至少一条类型、长度和值化V对应的动作集;其中,所述化V中的类型字段的编 码长度与所述类型字段的使用频率成反比。由于使用频率高的类型字段对应的编码则较 短,使用频率低的类型字段对应的编码则较长,因此,整个流表中类型字段的平均编码变短 了,从而达到节省内存空间的效果。
【附图说明】
[0023] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图做一简单地介绍,显而易见地,下面描述中的附图是本发 明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可W 根据运些附图获得其他的附图。
[0024] 图1为本发明一实施例提供的一种报文处理方法的流程图;
[0025] 图2为本发明一实施例提供的霍夫曼树的示意图;
[0026] 图3为本发明另一实施例提供的报文处理方法的流程图;
[0027] 图4为本发明一实施例提供的第二电路的示意图一;
[0028] 图5为本发明一实施例提供的第二电路的示意图二;
[0029] 图6为本发明一实施例提供的TLV数据流的示意图;
[0030] 图7为本发明一实施例提供的一种报文处理装置的结构示意图;
[0031] 图8为本发明另一实施例提供的一种报文处理装置的结构示意图。
【具体实施方式】
[0032] 为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例 中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是 本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员 在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0033] 为了解决现有技术中,由于流表中每条化V中类型字段占用的字节数为固定值,导 致内存空间浪费的问题,本发明实施例提供一种报文处理方法及装置,其中该方法的执行 主体为报文处理装置,该装置可W是交换机、路由器、也可W是交换机或者路由器中的处理 器等,该方法的应用场景为:流表中每条化V中的类型字段在预设时间段内的使用频率不完 全相同。图1为本发明一实施例提供的一种报文处理方法的流程图,如图1所示,该方法具体 包括如下流程:
[0034] SlOl:依次匹配报文与流表中的至少一条规则;
[0035] S102:若报文与任一条规则匹配成功,则对报文依次执行任一条规则中的,至少一 条类型、长度和值化V对应的动作集;其中,TLV中的类型字段的编码长度与类型字段的使用 频率成反比。
[0036] 其中,类型字段可W是:统计(Count)、设置字段(Set field)、删除标识(Delete Tag)、增加标识(Add化g)和输出(Output)等等,每一条化V都对应有一个动作,比如:类型 字段可W是统计、值字段可W是标识,则执行的动作则是根据标识对报文进行统计。其中, 电路来实现对所述报文依次执行所述任一条规则中的,至少一条类型、长度和值化V对应的 动作集的,具体地,该电路根据编码规则生成对应的结构,比如:编码为霍夫曼编码,那么生 成的结构则为霍夫曼树,每个霍夫曼树的叶子节点存储有:TLV中的类型字段对应的标识或 者该TLV对应的程序入口地址,该程序用于实现该TLV对应的动作。
[0037] 本发明实施例提供的报文处理方法中,由于使用频率高的类型字段对应的编码则 较短,相应地,使用频率低的类型字段对应的编码则较长,因此,整个流表中类型字段的平 均编码变短了,从而达到节省内存空间的效果。
[0038] 可选地,所述方法还包括:在预设时间段内,获取每条所述化V中的类型字段的使 用频率;分别根据每个所述类型字段的使用频率,对所述类型字段进行编码。
[0039] -种可选方式,采用霍夫曼编码方式,霍夫曼编码是一种用于无损数据压缩的赌 编码算法,也称"哈夫曼编码",霍夫曼编码过程中,使用变长编码表对类型字段进行编码, 其中变长编码表是根据类型字段在预设时间段内的使用频率得到的,该变长编码表中使用 频率高的类型字段对应的编码则较短,相应地,使用频率低的类型字段对应的编码则较长。
[0040] 具体地,霍夫曼编码过程如下:
[0041 ] 首先,如表1,将六个类型字段1796〇、17961、17962、17963、17964、17965按照在预 设时间段内的使用频率有小到大顺序排列,其中最左侧的类型字段对应的使用频率最小, 上述六个类型字段对应的使用频率分别为2、3、4、4、5和7。
[0042]表 1
[0044]其次,建立霍夫曼树,图2为本发明一实施例提供的霍夫曼树的示意图,如图2所 示,该霍夫曼树中的叶子节点包括的是类型字段,其中,霍夫曼树建立的过程包括:将使用 频率最小的两个节点进行频率相加,合成一个新的节点,确定使用频率最小的两个节点是 typeO和typel所代表的节点,频率相加为5,然后,在5、4、4、5和7中选出最小的两个频率为 4、4,频率相加为8;在5、8、5和7中选出最小的两个频率为5、5,频率相加为10;在8、7和10中 选出最小的两个频率为8和7,频率相加为15;最后将频率10和15相加得到25,给霍夫曼树的 所有左分支赋予0,右分支赋予1,至此整个霍夫曼树建立完毕。
[0045] 最后,基于上述建立好的霍夫曼树,得到变长编码表如表2, typeO对应的编码为 000,typel对应的编码为OOl,type2对应的编码为100,type3对应的编码为101,type3对应 的编码为Ol、types对应的编码为11。
[0046] 表 2
[0048] 另一种可选方式,和上面一种方式类似,确定每个类型字段对应的使用频率,如表 1,当确定使用频率最高的类型字段只有一个时,则该类型字段对应的编码可W为0或者1, 即用一位二进制数来表示该类型字段,当确定使用频率最高的类型字段有两个时,则可W 用两位二进制数来表示该类型字段,依次类推,确定完使用频率最高的类型字段之后,再通 过同样的方式确定使用频率次高的类型字段对应的编码,该编码的长度比使用频率最高的 类型字段的编码的长度多一位,依次类推,直到所有的类型字段都存在对应的编码,则结 束。比如:上述类型字段types的使用频率为7,它对应的编码为0,type4的使用频率为5,它 对应的编码为00, type3和type2的频率都是4,对应的编码分别可W为000,001 ,typel的使 用频率为3,对应的编码为0000, typeO的频率为2,对应的编码为00000。
[0049] 需要说明的是,本发明实施例对根据类型字段在预设时间段内的使用频率对类型 字段进行编码的方法不做限制,只要满足类型字段对应的编码长度与类型字段在预设时间 段内的使用频率成反比即可。
[0050] 综上,上述的两种编码方式,由于使用频率高的类型字段对应的编码则较短,相应 地,使用频率低的类型字段对应的编码则较长,因此,整个流表中类型字段的平均编码变短 了,从而达到节省内存空间的效果。
[0051] 进一步地,图3为本
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1