[发明专利]一种报文处理方法及系统有效
申请号: | 201910473300.4 | 申请日: | 2019-05-31 |
公开(公告)号: | CN112019491B | 公开(公告)日: | 2022-09-13 |
发明(设计)人: | 文奇 | 申请(专利权)人: | 烽火通信科技股份有限公司 |
主分类号: | H04L69/16 | 分类号: | H04L69/16;H04L69/163 |
代理公司: | 武汉智权专利代理事务所(特殊普通合伙) 42225 | 代理人: | 许小静 |
地址: | 430000 湖北省武*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 报文 处理 方法 系统 | ||
1.一种报文处理方法,其特征在于,其包括:
从TCP/IP协议栈获取至少一种第一报文、对应的第一套接字和TCP连接状态,每种所述第一报文基于一种预设协议;
从脚本中获取基于所述预设协议编辑的解析和封装规则以及状态确定规则,将所述第一报文解析为预定格式的第一数据,并确定所述预设协议的连接状态;
将所述第一数据和预设协议的连接状态上传给应用;
所述脚本包括数据模型脚本和状态分析脚本,所述数据模型脚本包括所述预设协议的基本信息以及解析和封装规则,所述状态分析脚本包括所述预设协议的基本信息和状态确定规则。
2.如权利要求1所述的报文处理方法,其特征在于:
所述数据模型脚本和状态分析脚本均还包括TCP端口信息,所述TCP端口绑定所述第一套接字;
所述方法还包括:
预先加载所述数据模型脚本,将所述数据模型脚本转换为内部数据模型,并存入关联所述TCP端口信息的第一缓存区;
预先加载所述状态分析脚本,从所述状态分析脚本中提取所述状态确定规则,并存入关联所述TCP端口信息的第二缓存区。
3.如权利要求2所述的报文处理方法,其特征在于,所述从脚本中获取基于所述预设协议编辑的解析和封装规则以及状态确定规则,将所述第一报文解析为预定格式的第一数据包括:
根据所述TCP端口信息,从所述第一缓存区中读取所述内部数据模型;
利用C++反射机制,基于所述内部数据模型构建解析类和管理类,将所述第一报文解析为所述第一数据。
4.如权利要求2所述的报文处理方法,其特征在于,所述从脚本中获取基于所述预设协议编辑的解析和封装规则以及状态确定规则,确定所述预设协议的连接状态还包括:
根据所述TCP端口信息,从所述第二缓存区中读取所述状态确定规则;
基于所述状态确定规则、TCP连接状态和第一数据,确定所述预设协议的当前连接状态和下一个连接状态;
其中,所述状态确定规则包括从所述当前连接状态变化为所述下一个连接状态的触发条件,触发条件包括所述TCP连接状态和所述第一数据中的特定信息。
5.如权利要求2所述的报文处理方法,其特征在于,所述从TCP/IP协议栈获取至少一种第一报文、对应的第一套接字和TCP连接状态包括:
创建第二套接字,以监听所述第一套接字绑定的TCP端口;
使用IO多路复用技术监控所述第二套接字,并通过多线程的方式获取所述TCP端口所接收的所述第一报文。
6.如权利要求1所述的报文处理方法,其特征在于,所述方法还包括:
当所述预设协议的连接状态为连接建立时,创建心跳报文,通过所述第一套接字将心跳报文下发到所述TCP/IP协议栈。
7.如权利要求1所述的报文处理方法,其特征在于,所述方法还包括:
接收所述应用下发的所述预定格式的第二数据;
根据所述脚本,将所述第二数据封装为基于所述预设协议的第二报文,并确定所述预设协议的连接状态;
通过所述第一套接字将第二报文下发到所述TCP/IP协议栈。
8.一种报文处理系统,其特征在于,其包括:
收发模块,其用于从TCP/IP协议栈获取至少一种第一报文、对应的第一套接字和TCP连接状态,每种所述第一报文基于一种预设协议;
协议处理模块,其用于从脚本中获取基于所述预设协议编辑的解析和封装规则以及状态确定规则,将所述第一报文解析为预定格式的第一数据,并确定所述预设协议的连接状态;还用于将所述第一数据和预设协议的连接状态上传给应用;所述脚本包括数据模型脚本和状态分析脚本,所述数据模型脚本包括所述预设协议的基本信息以及解析和封装规则,所述状态分析脚本包括所述预设协议的基本信息和状态确定规则。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于烽火通信科技股份有限公司,未经烽火通信科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910473300.4/1.html,转载请声明来源钻瓜专利网。