[发明专利]一种针对应用层协议的IPv4/IPv6数据翻译网关及方法有效
申请号: | 201510777462.9 | 申请日: | 2015-11-12 |
公开(公告)号: | CN105450515B | 公开(公告)日: | 2018-06-12 |
发明(设计)人: | 崔勇;刘聪;张朝昆;范权;吴建平 | 申请(专利权)人: | 清华大学 |
主分类号: | H04L12/66 | 分类号: | H04L12/66;H04L29/06 |
代理公司: | 西安智大知识产权代理事务所 61215 | 代理人: | 贾玉健 |
地址: | 100084 北京市海淀区1*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 翻译 应用层协议 网关 下行 协议描述语言 数据连接 私有协议 翻译器 数据报 通用的 应用层 报文 上行 互联 部署 访问 服务 | ||
1.一种针对应用层协议的IPv4/IPv6数据翻译网关,部署于ICP侧,将上行IPv6数据报文翻译成IPv4数据报文,将下行IPv4数据报文翻译成IPv6数据报文,其翻译内容包括IP数据报文头部以及下行IPv4数据报文中包含的用于建立数据连接的IPv4地址,其中,网关体系中包括如下模块:
分类器,决定接收到的数据报文的应用层协议类型:当一个新的数据报文到来时,分类器根据传输层协议及端口来决定该数据报文的应用层协议类型,然后调用对应的解析器来解析该数据报文,如果有多个协议同时匹配成功,则轮流调用对应的解析器,直到有一个协议的解析器接受该数据报文;如果分类器判定该数据报文不需要处理跨协议的翻译,则跳过应用层处理;
解析器,分析应用层数据并根据翻译规则产生将会应用于该数据报文的翻译操作;
数据报文修改模块,执行解析器生成的翻译操作;
TCP管理器;
流状态管理器:与上述其它各模块交互来获取、提供以及更新各种状态信息;
其特征在于,
所述解析器包括由生成引擎根据协议描述语言生成可执行的应用层协议解析程序,其输入为对于某应用层协议格式的描述,输出为能够被数据报文处理引擎调用的可执行程序代码,该代码中包括处理引擎应当对该协议的数据报文做出的翻译操作;
所述协议描述语言结合了词法分析和语法分析功能,并提供如下额外特性:自动生成终结符的正则表达式,进而转换成具体的可执行代码;提供常用的翻译操作接口,使得仅用一行命令来代表原来多行代码才能实现的翻译操作;以及自动添加异常处理操作,来支持自动异常恢复。
2.根据权利要求1所述针对应用层协议的IPv4/IPv6数据翻译网关,其特征在于,
IPv4的地址为IPx,端口为PORTx,所述翻译规则为:IPx,PORTx->IPy,PORTy;
当解析器找到了IPv4的地址IPx和端口PORTx,然后调用流管理器查找到用于替换的IPv6的地址IPy和端口PORTy,则根据翻译规则产生相应的操作,将IPx替换成IPy,将PORTx替换成PORTy。
3.根据权利要求1所述针对应用层协议的IPv4/IPv6数据翻译网关,其特征在于,所述数据报文处理引擎包含三个功能模块:解析器、数据报文修改模块以及TCP管理器,数据报文处理引擎采用基于报文的数据处理机制,利用所述解析器对相应协议数据报文进行解析,找到所有需要翻译操作的字段,包括其位置、长度,并执行相应的翻译操作。
4.根据权利要求1所述针对应用层协议的IPv4/IPv6数据翻译网关,其特征在于,所述数据报文修改模块中,所有的翻译操作最终均转换成文本替换操作。
5.根据权利要求1所述针对应用层协议的IPv4/IPv6数据翻译网关,其特征在于,在所述数据报文修改模块中,采用如下算法来加速修改操作的执行过程:
首先,将操作集根据操作开始位置升序排序,对于每个目标位置,判断是应该选择来自操作的结果还是原始的文本,如果某一个操作的结果被选取了,新的数据将被拷贝到目标位置,同时原始文本的遍历指针将跳至该操作数据的结尾。
6.根据权利要求1所述针对应用层协议的IPv4/IPv6数据翻译网关,其特征在于,所述TCP管理器,一方面跟踪更新TCP序号和ACK序号,以处理TCP报文的无序接收;另一方面提供缓存能力,以处理TCP重传和跨越数据报文的应用层协议字段。
7.一种基于权利要求1所述针对应用层协议的IPv4/IPv6数据翻译网关的方法,其特征在于,包括如下步骤:
步骤1:用户使用协议描述语言对其使用的应用层协议进行代码描述,包括协议头部格式及内容格式,标记出需要执行翻译操作的字段,并指定在该字段上执行的操作;
步骤2:根据步骤1中用户的代码描述,生成可执行的解析器子程序;首先,自动补全代码描述中缺失的规则,包括终结符的正则表达式以及将预定义的操作接口展开为C++代码,补全后的代码作为中间代码;然后,将中间代码分离为词法规则和语法规则,分别送往对应的分析程序;最后,生成解析器的C++代码,并集成到翻译网关中供其他模块调用;
步骤3:当一个报文到来时,首先被分类器接收并进行分类;分类是根据传输层协议及端口号,如果能够匹配某个应用层协议的解析器,则调用该解析器执行后续操作;如果匹配到多个应用层协议,则轮流调用其对应的解析器,直到存在某解析器表示接受该数据报文的格式;如果分类器判定该数据报文不需要处理跨协议的翻译,则跳过应用层处理;
步骤4:由步骤3调用的解析器对传入的数据报文的应用层数据进行分析,找到所有需要被翻译的协议字段,包括其位置和长度,并查询流管理器来获取翻译之后的值,并将这些信息传递给数据报文修改模块;
其中,对于一个数据流的不同方向,将创建两个独立的解析器分别处理,当一个报文处理完毕而数据流未结束时,则解析器状态被保存,等待下一个该数据流的报文到来之后,再恢复运行;
步骤5:数据报文修改模块接收步骤4中解析器所传递的参数,并执行其中包含的操作;
步骤6:将修改之后的报文重新封装并转发,并在每接收到一个新的数据报文时重复步骤3-6;
其中,所述解析器包括由生成引擎根据协议描述语言生成可执行的应用层协议解析程序,其输入为对于某应用层协议格式的描述,输出为能够被数据报文处理引擎调用的可执行程序代码,该代码中包括处理引擎应当对该协议的数据报文做出的翻译操作;
所述协议描述语言结合了词法分析和语法分析功能,并提供如下额外特性:自动生成终结符的正则表达式,进而转换成具体的可执行代码;提供常用的翻译操作接口,使得仅用一行命令来代表原来多行代码才能实现的翻译操作;以及自动添加异常处理操作,来支持自动异常恢复。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于清华大学,未经清华大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510777462.9/1.html,转载请声明来源钻瓜专利网。
- 上一篇:基于正交分解和EM算法的阴影检测方法
- 下一篇:车载自动诊断系统数据传输方法