[发明专利]一种基于指针迭代的IPV6报文硬件解析方法有效
申请号: | 201410196343.X | 申请日: | 2014-05-12 |
公开(公告)号: | CN104009923B | 公开(公告)日: | 2017-07-14 |
发明(设计)人: | 王雨;李玉峰;黄万伟;卜佑军;姜鲲鹏;张霞;杜飞 | 申请(专利权)人: | 中国人民解放军信息工程大学 |
主分类号: | H04L12/741 | 分类号: | H04L12/741;H04L12/749;H04L29/06 |
代理公司: | 郑州大通专利商标代理有限公司41111 | 代理人: | 陈大通 |
地址: | 450002 *** | 国省代码: | 河南;41 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种基于指针迭代的IPV6报文硬件解析方法,主要包括如下步骤将输入报文转换为64bit宽的数据,从报文头开始,对报文进行周期计数;根据IPV6基本头的外层信息,解析出IPV6基本头的位置以及基本头中的下个首部所在位置,并存入指针;用报文所在的处理周期以及在周期内的偏移与指针值进行比较,提取出基本头的下个首部类型并判定是否是IPV6扩展头,如否,则扩展头解析结束;如是,则根据首部类型值以及指针值来提取第一个扩展头中的头长度、下个首部类型信息,下个扩展头的位置等信息,并分别存入类型寄存器与位置指针;用类型寄存器与位置指针对下一层报文进行迭代处理,将新计算出的值覆盖旧值,直至扩展头解析结束。本发明的特点是使用硬件资源少;能够对任意扩展头组合的IPV6报文的解析;能够实现IPv6报文的实时解析。 | ||
搜索关键词: | 一种 基于 指针 ipv6 报文 硬件 解析 方法 | ||
【主权项】:
一种基于指针迭代的IPV6报文硬件解析方法,其特征在于,所述方法包括如下步骤:A、将输入报文转换为64bit宽的数据,从报文头开始,对报文进行周期计数;B、根据IPV6基本头的外层信息,解析出IPV6基本头的位置以及基本头中的下个首部所在位置,并存入指针;具体过程为:根据IPV6基本头的外层信息,解析出IPV6基本头的位置以及基本头中的下个首部所在位置,用寄存器basehead_pointer作为指针存储基本头的位置,用寄存器first_ext_headtype_pointer作为指针存储基本头中下个首部类型域所在位置,计算并生成指针first_ext_headloc_pointer做为基本头的下个首部所在位置;C、用报文所在的计数周期以及在周期内的偏移与指针值进行比较,提取出基本头的下个首部类型并判定是否是IPV6扩展头,如否,则扩展头解析结束; 如是,则根据首部类型值以及指针值来提取第一个扩展头中的头长度、下个首部类型信息,下个扩展头的位置信息,并分别存入类型寄存器与位置指针;用类型寄存器与位置指针对下一层报文进行迭代处理,将新计算出的值覆盖旧值,直至扩展头解析结束;具体过程为:用报文所在的周期以及在周期内的偏移与寄存器first_ext_headtype_pointer进行匹配,提取出基本头的下个首部类型并存入寄存器first_ext_headtype,根据寄存器first_ext_headtype存储的值来判定是否是IPV6扩展头,如否,则扩展头解析结束;如是,根据指针first_ext_headloc_pointer来提取第一个扩展头中的头长度和下个扩展头的首部类型的信息,累加计算下个扩展头的位置与类型,并分别存入指针next_ext_headloc_pointer与寄存器next_ext_headtype;用指针next_ext_headloc_pointer与寄存器next_ext_headtype对下一层报文进行处理,用新计算出的值覆盖旧值,接着对下层报文进行迭代处理,直至扩展头解析结束。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国人民解放军信息工程大学,未经中国人民解放军信息工程大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201410196343.X/,转载请声明来源钻瓜专利网。