CN102255802B - 一种sna主机报文解析的方法及系统 - Google Patents
一种sna主机报文解析的方法及系统 Download PDFInfo
- Publication number
- CN102255802B CN102255802B CN201110180056.6A CN201110180056A CN102255802B CN 102255802 B CN102255802 B CN 102255802B CN 201110180056 A CN201110180056 A CN 201110180056A CN 102255802 B CN102255802 B CN 102255802B
- Authority
- CN
- China
- Prior art keywords
- packet
- link
- upstream data
- data bag
- information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种SNA主机报文解析的方法,根据数据包中的通讯数据域信息查询正常链接对照表以获取该数据包对应链接中相应上行数据包的通讯标识信息,并根据获取的通讯标识信息查找已存储的上行数据包从而实现正常链接中上下行数据包的匹配解析,并且以学习链接对照表的形式对数据包所对应的学习链接进行学习,在满足学习条件后将学习链接转为正常链接从而实现该链接中上下行数据包的匹配解析。本发明相应地还提供了一种SNA主机报文解析的系统,通过将上述两种链接对照表及其对应的处理流程相结合实现了对SNA主机报文的解析。
Description
技术领域
本发明涉及银行数据处理领域,尤其涉及一种SNA主机报文解析的方法及系统。
背景技术
近年来,商业银行操作风险防控较为薄弱,大案要案时有发生,传统的稽核、审计等风险监督手段无法满足实时监控银行操作、交易风险的需要。要实现交易风险的实时监测,必须要解决实时获取交易数据的难题。
在商业银行前后台交易数据的实时监测中可以采用交换机镜像技术获取数据,这种获取交易数据的方式与传统的通过应用系统提取数据的方式相比,不但不占用主机资源,而且能够获取实时数据,通过在核心业务主机上部署数据采集点,进行数据采集,且只需两个采集点即可完成数据采集,部署方便,便于后期维护。但是这种采集方式的难点就在于解决大型主机底层多种协议的报文的解析。大型主机网络系统一般采用的是国际商用机器(International Business Machine,IBM)公司的系统网络体系结构(SystemsNetwork Architecture,SNA)协议,SNA协议最大的特色就在于其封闭性,对用户而言,无法获知具体的协议结构和通讯方式,不能实现对实时数据的采集从而无法完成对业务交易的实时监控。
发明内容
本发明提供了一种SNA主机报文解析的方法及系统,根据从数据包中提取的通讯数据域信息查询正常链接对照表以获取该数据包对应链接中相应上行数据包的通讯标识信息,并根据获取的通讯标识信息查找已存储的上行数据包从而实现正常链接中上下行数据包的匹配解析,并且以学习链接对照表的形式根据数据包中的业务信息对该数据包所对应的链接进行学习,在满足学习条件后将学习链接转为正常链接从而实现该链接中上下行数据包的匹配解析,通过将上述两种链接对照表及其对应的处理流程相结合实现了对SNA主机报文的匹配解析,从而能够实现对实时数据的采集以及对业务交易的实时监控。
根据本发明的第一方面,提供了一种SNA主机报文解析的方法,包括以下步骤:
a,获取数据包,并提取所述数据包的通讯数据域信息,其中所述通讯数据域信息包括:IP地址信息、端口号信息、传输链接标识信息和会话地址信息,所述数据包还包括机构标识信息或流水号信息;
b,根据数据包的所述通讯数据域信息查询正常链接对照表是否存在所述数据包对应的链接,若存在,则执行步骤c,若不存在,则执行步骤d;
c,判断所述数据包是上行数据包还是下行数据包,
c1,若是上行数据包,则将该上行数据包存储至快速匹配二叉树,
c2,若是下行数据包,则从正常链接对照表中获取该下行数据包对应的上行数据包的通讯数据域信息,并根据获取的通讯数据域信息在快速匹配二叉树中查找该下行数据包对应的上行数据包以实现上下行数据包的匹配解析;
d,判断所述数据包是上行数据包还是下行数据包,
d1,若是上行数据包,则将该上行数据包存储至快速匹配二叉树,
d2,若是下行数据包,则根据该下行数据包的流水号信息在快速匹配二叉树中查找具有与该流水号信息对应的机构标识信息的上行数据包,若查找到,则执行步骤d3,若未查找到,则执行步骤e;
d3,查询学习链接对照表是否存在该下行数据包与查找到的上行数据包所对应的链接,若不存在,则将所述链接放入学习链接对照表,并初始化该链接的学习次数,若存在,则判断所述链接的学习次数是否超过预设的学习阈值,若超过,则将该链接更新至正常链接对照表,然后执行步骤e,若未超过,则更新学习链接对照表中该链接的学习次数,然后执行步骤e;
e,返回步骤a以获取下一个数据包。
根据本发明的第二方面,提供了一种SNA主机报文解析的系统,所述系统包括:
数据包处理模块,用于实现如下功能:
获取数据包,并提取所述数据包的通讯数据域信息,其中所述通讯数据域信息包括:IP地址信息、端口号信息、传输链接标识信息和会话地址信息,所述数据包还包括机构标识信息或流水号信息;
判断模块,用于根据数据包的所述通讯数据域信息查询正常链接对照表是否存在所述数据包对应的链接,若存在,则启动正常链接处理模块,若不存在,则启动学习链接处理模块;
正常链接处理模块,包括第一判断子模块、第一存储子模块和匹配处理子模块,其中,
第一判断子模块,用于判断所述数据包是上行数据包还是下行数据包,若是上行数据包,则启动第一存储子模块,若是下行数据包,则启动匹配处理子模块;
第一存储子模块,用于将所述上行数据包存储至快速匹配二叉树;
匹配处理子模块,用于从正常链接对照表中获取所述下行数据包对应的上行数据包的通讯数据域信息,并根据获取的通讯数据域信息在快速匹配二叉树中查找该下行数据包对应的上行数据包以实现上下行数据包的匹配解析;
学习链接处理模块,包括第二判断子模块、第二存储子模块和链接学习子模块,其中,
第二判断子模块,用于判断所述数据包是上行数据包还是下行数据包,若是上行数据包,则启动第二存储子模块,若是下行数据包,则启动链接学习子模块,其中链接学习子模块包括链接查询处理单元;
第二存储子模块,用于将所述上行数据包存储至快速匹配二叉树;
链接学习子模块,用于根据所述下行数据包的流水号信息在快速匹配二叉树中查找具有与该流水号信息对应的机构标识信息的上行数据包,若查找到,则启动链接查询处理单元,若未查找到,则返回数据包处理模块以开始下一个数据包的处理;
链接查询处理单元,用于实现如下功能:查询学习链接对照表是否存在所述下行数据包与查找到的上行数据包所对应的链接,若不存在,则将所述链接放入学习链接对照表,并初始化该链接的学习次数,若存在,则判断所述链接的学习次数是否超过预设的学习阈值,若超过,则将该链接更新至正常链接对照表,然后返回数据包处理模块以开始下一个数据包的处理,若未超过,则更新学习链接对照表中该链接的学习次数,然后返回数据包处理模块以开始下一个数据包的处理。
实施本发明的SNA主机报文解析的方法和系统,以正常链接对照表和学习链接对照表的形式存储数据包中提取的通讯双方已经学习成功和需要学习的链接对应关系信息,并根据所述数据包中的业务信息对上述两种链接对应关系进行添加、删除等维护操作,保证了两种链接对照表中的链接的实时更新,实现了正常链接中SNA主机报文上下行数据包的匹配解析,从而能够实现对实时数据的采集以及对业务交易的实时监控。
附图说明
图1是根据本发明实施例的SNA主机报文解析的方法流程示意图。
图2是根据本发明实施例的步骤c1的具体流程示意图。
图3是根据本发明实施例的步骤c2的具体流程示意图。
图4是根据本发明实施例的SNA主机报文解析的系统的第一结构示意图
图5是根据本发明实施例的第一存储子模块的具体结构示意图。
图6是根据本发明实施例的匹配处理子模块的具体结构示意图。
图7是根据本发明实施例的SNA主机报文解析的系统的第二结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述。
参见图1,图1是根据本发明实施例的SNA主机报文解析的方法流程示意图,该方法包括以下步骤:
a,获取数据包,并提取所述数据包的通讯数据域信息,其中所述通讯数据域信息包括:IP地址信息、端口号信息、传输链接标识信息和会话地址信息,所述数据包还包括机构标识信息或流水号信息;
b,根据数据包的所述通讯数据域信息查询正常链接对照表是否存在所述数据包对应的链接,若存在,则执行步骤c,若不存在,则执行步骤d;
c,判断所述数据包是上行数据包还是下行数据包,
c1,若是上行数据包,则将该上行数据包存储至快速匹配二叉树,
c2,若是下行数据包,则从正常链接对照表中获取该下行数据包对应的上行数据包的通讯数据域信息,并根据获取的通讯数据域信息在快速匹配二叉树中查找该下行数据包对应的上行数据包以实现上下行数据包的匹配解析;
d,判断所述数据包是上行数据包还是下行数据包,
d1,若是上行数据包,则将该上行数据包存储至快速匹配二叉树,
d2,若是下行数据包,则根据该下行数据包的流水号信息在快速匹配二叉树中查找具有与该流水号信息对应的机构标识信息的上行数据包,若查找到,则执行步骤d3,若未查找到,则执行步骤e;
d3,查询学习链接对照表是否存在该下行数据包与查找到的上行数据包所对应的链接,若不存在,则将所述链接放入学习链接对照表,并初始化该链接的学习次数,若存在,则判断所述链接的学习次数是否超过预设的学习阈值,若超过,则将该链接更新至正常链接对照表,然后执行步骤e,若未超过,则更新学习链接对照表中该链接的学习次数,然后执行步骤e;
e,返回步骤a以获取下一个数据包。
在本发明的实施例中,获取的数据包包括上行数据包和下行数据包,上行数据包是指主机下属的客户机向该主机发送的请求类信息数据包,其包含IP地址信息、端口号(Port)信息、传输链接标识(Transport Connection Identifier,TCID)信息和会话地址(Session Address,SA)信息等通讯数据域信息以及机构号和柜员号等机构标识信息,以及相关的请求信息等,而下行数据包是指该主机根据客户机请求信息返回的交易信息数据包,其不仅包含IP地址信息、Port信息、TCID信息和SA信息等通讯数据域信息,还包括所述机构标识信息以及上述交易信息的流水号等业务信息,将所述上行数据包请求类信息与下行数据包对应的返回交易信息匹配解析才能解析出一条完整的交易信息。
传输过程中的数据包不仅包括单包形式数据包,还包括包含两个或两个以上数据包的多包形式数据包。需要指出的是,本发明的传输链接中采用串行方式传输数据包。
在获取数据包后,提取所述数据包的通讯数据域信息,其中通讯数据域信息包括IP信息、Port信息、TCID信息和SA信息。然后根据提取的所述数据包的通讯数据域信息查询正常链接对照表是否存在所述数据包对应的链接,若所述链接存在,则执行步骤c,若所述链接不存在,则执行步骤d。在此需要说明的是,所述数据包对应的链接是指所述数据包中源IP、源Port、源TCID、源SA和目的IP、目的Port、目的TCID和目的SA所对应的SNA协议通讯双方的链接对应关系。正常链接对照表中包含通讯链接双方的IP、Port、TCID、SA和IP,学习链接对照表中同样也包含通讯链接双方的IP、Port、TCID、SA和目的IP。两种链接对照表中除了包含链接双方的通讯标识相关信息之外,还可以包含其他的一些链接辅助信息,例如学习链接对照表中包含链接的学习次数,正常链接对照表中包含链接中数据包的替换次数和链接中的上下行数据包验证不对应的次数。
在本发明实施例中,步骤d3中链接放入学习链接对照表后将该链接的学习次数初始化为1,并在以后的更新学习次数中逐次递增,相应的学习阈值可设置为大于1的自然数。在其他一些实施例中,链接的学习次数可以初始化为一个大于1的自然数,其更新采用逐次递减的形式,学习阈值也可以根据需要相应的设置。本领域的技术人员还可以采用本领域已知的其他的计数方法进行处理,并不限于本发明实施例中所提到的计数方式。
进一步地,本发明实施例中从数据包中提取的通讯数据域信息还包括通讯指示符(Communication Indicator)信息。
在本发明的实施例中,在将上行数据包存储至快速匹配二叉树之前,若所述上行数据包为单包形式数据包,则将所述上行数据包存储至快速匹配二叉树,若所述上行数据包为多包形式数据包,则根据通讯指示符判断所述上行数据包是否为该上行数据包所属多包第一个数据包,若是所属多包的第一个数据包,则将所述上行数据包存储至快速匹配二叉树,若不是所属多包的第一个数据包,则在快速匹配二叉树中按照多包合并算法将该上行数据包与所属多包中除了该上行数据包之外的其他数据包进行合并,并将合并后的数据包存储至快速匹配二叉树,然后返回步骤a以获取下一个数据包。其中,按照多包合并算法将该上行数据包与所属多包中除了该上行数据包之外的其他数据包进行合并的具体步骤包括:
根据提取的IP地址信息、端口号信息、传输链接标识信息、会话地址信息在快速匹配二叉树中查找与该上行数据包具有相同IP地址信息、端口号信息、传输链接标识信息、会话地址信息的其他数据包;
根据所述通讯指示符信息来确定该上行数据包在所属多包中的顺序;
按所确定的顺序将所述上行数据包与查找到的所述其他数据包进行合并。
本发明的实施例中采用通讯指示符信息来确定数据包在所属多包中的位置。具体地,将数据包的通讯指示符信息与0x30进行逻辑与操作,若结果为0x20,则说明该数据包为该数据包所属多包中的第一个数据包;将数据包的通讯指示符信息与0x10进行逻辑与操作,若结果为0x10,则说明该数据包为该数据包所属多包中处于中间位置的数据包;将数据包的通讯指示符信息与0x18进行逻辑与操作,若结果为0x18,则说明该数据包为该数据包所属多包中最后一个数据包。根据链接中多包的串行传输和上述逻辑操作可确定出数据包在所属多包中的顺序,随后可按照所确定的顺序将所述数据包与该数据包所属多包中已经存储的数据包进行合并。
在本发明的其他一些实施例中,可根据具体的风险监测应用需要设置需要监测的数据,在将上行数据包存储至快速匹配二叉树之前,判断所述上行数据包是否为预设的监测数据,若是,则将所述上行数据包存储至快速匹配二叉树,若否,则返回步骤a以获取下一个数据包,这样做节约了解析非监测数据的处理时间,有利于提高风险监测的处理效率。
需要说明的是,本发明实施例中的上行数据包根据提取的IP信息、Port信息、TCID信息和SA信息顺序存储至快读匹配二叉树的二叉树节点。使用快速匹配二叉树可以满足本发明的快速查找匹配需求,本领域的技术可以根据应用需要选择其他的可快速查找匹配的存储工具,并不仅限于本实施例所提到的快速匹配二叉树。
参见图2,图2是根据本发明实施例的步骤c1的具体流程示意图,步骤c1中将该上行数据包存储至快速匹配二叉树具体包括:
c10,判断快速匹配二叉树节点上是否已经存储了与所述上行数据包具有相同IP地址信息、端口号信息、传输链接标识信息、会话地址信息的上行数据包,若是,则执行步骤c11,若否,则执行步骤c12;
c11,用所述上行数据包替换所述二叉树节点上已经存储了的上行数据包,并在正常链接对照表中记录该上行数据包所对应的链接中数据包的替换次数;
c12,将所述上行数据包存入空闲的二叉树节点。
在本发明的实施例中,正常链接对照表中还包括链接中数据包的替换次数,当该链接中数据包的替换次数达到替换阈值后删除该链接从而保证正常链接对照表中的链接都是有效的传输链接。在本发明的实施例中,将上行数据包存储至快速匹配二叉树后,所述方法还包括:
判断存储所述上行数据包的二叉树节点上是否有数据包被替换,
若是,则判断正常链接对照表中所述替换次数是否超过预设的替换阈值,若超过,则从正常链接对照表中删除所述链接,若未超过,则返回步骤a以获取下一个数据包。
本发明的实施例中,替换阈值为大于1的自然数,本领域技术人员可根据具体的应用需要进行设置。上述对正常链接对照表中链接的删除操作是为了避免链接断掉后出现的正常链接对照表中链接的上行数据包在存储到二叉树节点后长时间无法获取其对应的下行数据包的现象,保证正常链接对照表中的链接是有效的上下行数据包传输链接。
参见图3,图3是根据本发明实施例的步骤c2的具体流程示意图,步骤c2中根据获取的通讯数据域信息在快速匹配二叉树中查找该下行数据包对应的上行数据包以实现上下行数据包的匹配解析具体包括:
c20,根据获取的IP地址信息、端口号信息、传输链接标识信息和会话地址信息在快速匹配二叉树中查找该下行数据包对应的上行数据包,若查找到,则执行步骤c21,若未查找到,则执行步骤e;
c21,验证所述下行数据包的流水号信息与查找到的上行数据包的机构标识信息是否对应,若验证对应,则执行步骤c22,若验证不对应,则执行步骤c23;
c22,将该下行数据包及查找的上行数据包匹配解析;
c23,在正常链接对照表中记录所述下行数据包所对应的链接中数据包验证不对应的次数,并判断所述验证不对应的次数是否超过预设的验证阈值,若超过,则执行步骤c24,若未超过,则执行步骤c25;
c24,从正常链接对照表中删除所述链接并丢弃该下行数据包;
c25,丢弃所述下行数据包和查找到的上行数据包,执行步骤e。
在本发明的实施例中,根据获取的IP地址信息、端口号信息、传输链接标识信息和会话地址信息在快速匹配二叉树中查找到该下行数据包对应的上行数据包之后,若所述上行数据包为单包形式数据包,则进行验证操作,若所述上行数据包为多包形式,则判断所述上行数据包是否为该上行数据包所属多包的最后一个数据包,若是,则进行验证操作,若否,则将所述下行数据包存储至快速匹配二叉树,并所述下行数据包与该下行数据包所属多包中除了该下行数据包之外的其他数据包进行合并。此处下行数据包的存储和前面所述上行数据包的存储类似,都是根据其IP信息、Port信息、TCID信息和SA信息存储至快速匹配二叉树的二叉树节点以方便查找。
步骤c21中验证所述下行数据包的流水号信息与查找到的上行数据包的机构标识信息是否对应具体包括,验证下行数据包的流水号的前12位与查找到的上行数据包的柜员号是否相等,如果相等,则验证对应,执行步骤c22,如果流水号与柜员号不相等,则进一步验证该下行数据包的流水号的前9位与查找到的上行数据包的机构号是否相等,如果流水号与机构号相等,则验证对应,执行步骤c22,如果流水号与机构号不相等,则验证不对应,执行步骤c23。
步骤c22中如果所述下行数据包的流水号信息与查找到的上行数据包的机构标识信息验证对应,则将该下行数据包及查找的上行数据包匹配解析,具体为,若所述下行数据包为单包形式数据包,则将所述下行数据包与查找到的上行数据包匹配解析得到完整的一条交易信息;若所述下行数据包为多包形式数据包,则将所述下行数据包与快速匹配二叉树中已经存储的该下行数据包所属多包的其他数据包进行合并得到完整的数据包后与查找到的上行数据包进行匹配解析得到完整的交易信息。
在本发明的实施例中,步骤c23中验证阈值设置为大于1的自然数,可根据具体应用需要进行设置。
在本发明的实施例中,步骤d1具体包括,若所述上行数据包为单包形式数据包,则将所述上行数据包直接存储至快速匹配二叉树,若所述上行数据包为多包形式数据包,则进一步判断所述上行数据包是否为该上行数据包所属多包的第一个包,若是,则将该上行数据包存储至快速匹配二叉树,若否,则返回步骤a以获取下一个数据包。
在本发明的另外一些实施例中,在将上行数据包存储至快速匹配二叉树之前,还包括判断所述上行数据包是否为预设的监测数据的步骤。
在本发明的实施例中,在获取数据包之后,查询正常链接对照表之前,还可以包括链接建立的处理过程,具体包括:
根据提取的通讯指示符信息判断所述数据包是否为建立链接数据包,
若是,则将所述建立链接数据包所对应的链接放入学习链接对照表,并初始化该链接的学习次数;
若否,则执行步骤b。
在本发明的实施例中,根据提取的通讯指示符信息判断所述数据包是否为建立链接数据包的具体步骤包括,将所述数据包的通讯指示符信息与0x40进行逻辑与操作,若结果为0x40,则说明该数据包为建立链接包。若所述数据包判断为建立链接数据包,则将所述建立链接数据包所对应的链接放入学习链接对照表,并初始化该链接的学习次数为1;若所述数据包不是建立链接数据包,则执行步骤b。
上面结合附图和具体的实施例阐述了本发明的SNA主机报文解析的方法流程,下面将结合附图和具体的实施例阐述本发明的SNA主机报文解析的系统的结构。
参见图4,图4是根据本发明实施例的SNA主机报文解析的系统的第一结构示意图,所述系统包括:
数据包处理模块10,用于实现如下功能:
获取数据包,并提取所述数据包的通讯数据域信息,其中所述通讯数据域信息包括:IP地址信息、端口号信息、传输链接标识信息和会话地址信息,所述数据包还包括机构标识信息或流水号信息;
判断模块20,用于根据数据包的所述通讯数据域信息查询正常链接对照表是否存在所述数据包对应的链接,若存在,则启动正常链接处理模块30,若不存在,则启动学习链接处理模块40;
正常链接处理模块30,包括第一判断子模块31、第一存储子模块32和匹配处理子模块33,其中,
第一判断子模块31,用于判断所述数据包是上行数据包还是下行数据包,若是上行数据包,则启动第一存储子模块32,若是下行数据包,则启动匹配处理子模块33,
第一存储子模块32,用于将所述上行数据包存储至快速匹配二叉树,
匹配处理子模块33,用于从正常链接对照表中获取所述下行数据包对应的上行数据包的通讯数据域信息,并根据获取的通讯数据域信息在快速匹配二叉树中查找该下行数据包对应的上行数据包以实现上下行数据包的匹配解析;
学习链接处理模块40,包括第二判断子模块41、第二存储子模块42和链接学习子模块43,其中,
第二判断子模块41,用于判断所述数据包是上行数据包还是下行数据包,若是上行数据包,则启动第二存储子模块42,若是下行数据包,则启动链接学习子模块43,其中链接学习子模块包括链接查询处理单元430,
第二存储子模块42,用于将所述上行数据包存储至快速匹配二叉树,
链接学习子模块43,用于根据所述下行数据包的流水号信息在快速匹配二叉树中查找具有与该流水号信息对应的机构标识信息的上行数据包,若查找到,则启动链接查询处理单元430,若未查找到,则返回数据包处理模块10以开始下一个数据包的处理,
链接查询处理单元430,用于实现如下功能:查询学习链接对照表是否存在所述下行数据包与查找到的上行数据包所对应的链接,若不存在,则将所述链接放入学习链接对照表,并初始化该链接的学习次数,若存在,则判断所述链接的学习次数是否超过预设的学习阈值,若超过,则将该链接更新至正常链接对照表,然后返回数据包处理模块10以开始下一个数据包的处理,若未超过,则更新学习链接对照表中该链接的学习次数,然后返回数据包处理模块10以开始下一个数据包的处理。
在本发明的实施例中,数据包处理模块10获取的数据包包括上行数据包和下行数据包,上行数据包中包括IP信息、Port信息、TCID信息和SA信息以及机构号和柜员号等机构标识信息,以及相关的请求信息,下行数据包中不仅包括IP信息、Port信息、TCID信息和SA信息,还包括机构号和柜员号等机构标识信息以及返回的请求的交易信息的流水号等业务信息。
判断模块20根据数据包处理模块10提取的所述数据包的通讯数据域信息查询正常链接对照表是否存在所述数据包对应的链接,若存在所述链接,则启动正常链接处理模块30,若不存在所述链接,则启动学习链接处理模块40。
在本发明的实施例中,链接查询处理单元430查询学习链接对照表是否存在所述下行数据包与链接学习子模块43查找到的上行数据包所对应的链接,若不存在所述链接,则将所述链接放入学习链接对照表,并初始化学习链接对照表中该链接的学习次数为1。若存在所述链接,则判断所述链接的学习次数是否超过预设的学习阈值,若超过,则将该链接更新至正常链接对照表,然后返回数据包处理模块10以开始下一个数据包的处理,若未超过,则更新学习链接对照表中该链接的学习次数,即将该链接的学习次数加1,然后返回数据包处理模块10以开始下一个数据包的处理。本实施例中的学习阈值设置为大于1的自然数。本领域的技术人员可采用已知的其他的计数方式,并不限于本实施例所采用的计数方式。
在本发明的实施例中,数据包处理模块10所提取的数据包的通讯数据域信息还包括通讯指示符信息。
参见图5,图5是根据本发明实施例的第一存储模块的具体结构示意图,第一存储模块32具体包括第一判断单元320、替换单元321和存储单元322,其中,
第一判断单元320,用于判断快速匹配二叉树节点上是否已经存储了与所述上行数据包具有相同IP地址信息、端口号信息、传输链接标识信息、会话地址信息的上行数据包,若是,则启动替换单元321,若否,则启动存储单元322;
替换单元321,用于用所述上行数据包替换所述二叉树节点上已经存储了的上行数据包,并在正常链接对照表中记录该上行数据包所对应的链接中数据包的替换次数;
存储单元322,用于将所述上行数据包存入空闲的二叉树节点。
在本发明的实施例中,为避免链接断掉后出现的正常链接对照表中链接的上行数据包在存储到二叉树节点后长时间无法获取其对应的下行数据包的现象,保证正常链接对照表中的链接是有效的上下行数据包传输链接。第一存储子模块32除了包括第一判断单元320、替换单元321和存储单元322之外,还可包括第二判断单元323和链接替换处理单元324,其中,
第二判断单元323,用于判断存储所述上行数据包的二叉树节点上是否有数据包被替换,若是,则启动链接替换处理单元324;
链接替换处理单元324,用于实现如下功能:
判断正常链接对照表中所述替换次数是否超过预设的替换阈值,若超过,则从正常链接对照表中删除所述链接,若未超过,则返回数据包处理模块10以开始下一个数据包的处理。
需要指出的是,在本发明的实施例中,替换阈值为大于1的自然数,本领域技术人员可根据具体的应用需要进行设置。
参见图6,图6是根据本发明实施例的匹配处理子模块的具体结构示意图,匹配处理子模块33具体包括上行包查找单元330、验证单元331、匹配解析单元332和链接验证处理单元333,其中
上行包查找单元330,用于根据获取的IP地址信息、端口号信息、传输链接标识信息和会话地址信息在快速匹配二叉树中查找该下行数据包对应的上行数据包,若查找到,则启动验证单元331,若未查找到,则返回数据包处理模块10以开始下一个数据包的处理;
验证单元331,用于验证所述下行数据包的流水号信息与查找到的上行数据包的机构标识信息是否对应,若验证对应,则启动匹配解析单元332,若验证不对应,则启动链接验证处理单元333;
匹配解析单元332,用于将该下行数据包与查找到的上行数据包匹配解析;
链接验证处理单元333,用于实现如下功能:在正常链接对照表中记录所述下行数据包所对应的链接中数据包验证不对应的次数,并判断所述验证不对应的次数是否超过预设的验证阈值,若超过,则从正常链接对照表中删除所述链接并丢弃该下行数据包,若未超过,则丢弃所述下行数据包和查找到的上行数据包,并返回数据包处理模块10以开始下一个数据包的处理。
在本发明的实施例中,在查找到所述下行数据包对应的上行数据包之后,进行验证操作之前,若所述下行数据包为多包形式数据包,还包括判断所述下行数据包是否为该下行数据包所属多包的最后一个包,若是,则进行验证操作,若否,则将该下行数据包存储至快速匹配二叉树。
验证单元331验证所述下行数据包的流水号信息与查找到的上行数据包的机构标识信息是否对应具体包括,验证下行数据包的流水号的前12位与查找到的上行数据包的柜员号是否相等,如果相等,则验证对应,如果流水号与柜员号不相等,则进一步验证该下行数据包的流水号的前9位与查找到的上行数据包的机构号是否相等,如果流水号与机构号相等,则验证对应,如果流水号与机构号不相等,则验证不对应。
若验证单元331验证所述下行数据包的流水号信息与查找到的上行数据包的机构标识信息对应,则启动匹配解析单元332。具体的,若所述下行数据包为单包形式数据包,则匹配解析子单元332直接将所述下行数据包与查找到的上行数据包匹配解析得到完整的一条交易信息;若所述下行数据包为多包形式数据包,则匹配解析子单元332将所述下行数据包与快速匹配二叉树中已经存储的该下行数据包所属多包的其他数据包进行合并得到完整的数据包后与查找到的上行数据包进行匹配解析得到完整的交易信息。
参见图7,图7是根据本发明实施例的SNA主机报文解析的系统的第二结构示意图,所述系统除了包括图4所示的模块外,还可以包括:
建链包识别模块50,用于根据提取的通讯指示符信息判断所述数据包是否为建立链接数据包,若是,则启动建链包处理模块60,若否,则启动判断模块20;
建链包处理模块60,用于将所述建立链接数据包所对应的链接放入学习链接对照表,并初始化该链接的学习次数。
本发明的实施例中,建链包识别模块50根据提取的通讯指示符信息判断所述数据包是否为建立链接数据包的具体步骤为,将所述通讯指示符信息与0x40进行逻辑与操作,若结果为0x40,则说明所述数据包为建立链接数据包。若建链包识别模块50的识别结果为建立链接数据包,则建链包处理模块60将所述建立链接数据包所对应的链接放入学习链接对照表,并初始化该链接的学习次数为1。
综上所述,本发明的一种SNA主机报文解析的方法和系统,通过正常链接对照表和学习链接对照表存储上下行数据包所对应的链接关系,并在获取数据包之后,根据数据包中提取的通讯标识信息查询正常链接对照表以获取其对应的上行数据包的通讯标识信息从而实现正常链接中上下行数据包的匹配解析,并且以学习链接对照表的形式根据数据包中提取的业务信息对该数据包所对应的链接进行学习,在满足学习条件后将该链接转为正常链接从而实现该链接中上下行数据包的匹配解析,通过将上述两种链接对照表及其对应的处理流程相结合实现了对SNA主机报文的解析,从而能够实现对实时数据的采集以及对业务交易的实时监控。
通过以上实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件结合硬件平台的方式来实现,当然也可以全部通过硬件来实施。基于这样的理解,本发明的技术方案对背景技术做出贡献的全部或者部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
以上所公开的仅为本发明的一种较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
Claims (14)
1.一种SNA主机报文解析的方法,其特征在于,所述方法包括以下步骤:
a,获取数据包,并提取所述数据包的通讯数据域信息,其中所述通讯数据域信息包括:IP地址信息、端口号信息、传输链接标识信息和会话地址信息,所述数据包还包括机构标识信息或流水号信息;
b,根据数据包的所述通讯数据域信息查询正常链接对照表是否存在所述数据包对应的链接,若存在,则执行步骤c,若不存在,则执行步骤d;
c,判断所述数据包是上行数据包还是下行数据包,
c1,若是上行数据包,则将该上行数据包存储至快速匹配二叉树,
c2,若是下行数据包,则从正常链接对照表中获取该下行数据包对应的上行数据包的通讯数据域信息,并根据获取的通讯数据域信息在快速匹配二叉树中查找该下行数据包对应的上行数据包以实现上下行数据包的匹配解析;
d,判断所述数据包是上行数据包还是下行数据包,
d1,若是上行数据包,则将该上行数据包存储至快速匹配二叉树,
d2,若是下行数据包,则根据该下行数据包的流水号信息在快速匹配二叉树中查找具有与该流水号信息对应的机构标识信息的上行数据包,若查找到该上行数据包,则执行步骤d3,若未查找到该上行数据包,则执行步骤e;
d3,查询学习链接对照表是否存在该下行数据包与查找到的上行数据包所对应的链接,若不存在,则将所述链接放入学习链接对照表,并初始化该链接的学习次数,若存在,则判断所述链接的学习次数是否超过预设的学习阈值,若超过,则将该链接更新至正常链接对照表,然后执行步骤e,若未超过,则更新学习链接对照表中该链接的学习次数,然后执行步骤e;
e,返回步骤a以获取下一个数据包。
2.如权利要求1所述的方法,其特征在于,提取的所述通讯数据域信息还包括通讯指示符信息。
3.如权利要求1至2任意一项所述的方法,其特征在于,所述上行数据包根据提取的IP地址信息、端口号信息、传输链接标识信息、会话地址信息存储至快速匹配二叉树的二叉树节点。
4.如权利要求3所述的方法,其特征在于,步骤c1中将该上行数据包存储至快速匹配二叉树具体包括:
判断快速匹配二叉树节点上是否已经存储了与所述上行数据包具有相同IP地址信息、端口号信息、传输链接标识信息、会话地址信息的上行数据包,
若是,则用所述上行数据包替换所述二叉树节点上已经存储了的上行数据包,并在正常链接对照表中记录该上行数据包所对应的链接中数据包的替换次数;
若否,则将所述上行数据包存入空闲的二叉树节点。
5.如权利要求4所述的方法,其特征在于,在步骤c1中,将所述上行数据包存储至快速匹配二叉树后,所述方法还包括:
判断存储所述上行数据包的二叉树节点上是否有数据包被替换,
若是,则判断正常链接对照表中所述替换次数是否超过预设的替换阈值,若超过,则从正常链接对照表中删除所述链接,若未超过,则返回步骤a以获取下一个数据包。
6.如权利要求5所述的方法,其特征在于,在步骤c2中,根据获取的通讯数据域信息在快速匹配二叉树中查找该下行数据包对应的上行数据包以实现上下行数据包的匹配解析具体包括:
c20,根据获取的IP地址信息、端口号信息、传输链接标识信息和会话地址信息在快速匹配二叉树中查找该下行数据包对应的上行数据包,若查找到,则执行步骤c21,若未查找到,则执行步骤e;
c21,验证所述下行数据包的流水号信息与查找到的上行数据包的机构标识信息是否对应,若验证对应,则执行步骤c22,若验证不对应,则执行步骤c23;
c22,将该下行数据包及查找的上行数据包匹配解析;
c23,在正常链接对照表中记录所述下行数据包所对应的链接中数据包验证不对应的次数,并判断所述验证不对应的次数是否超过预设的验证阈值,若超过,则执行步骤c24,若未超过,则执行步骤c25;
c24,从正常链接对照表中删除所述链接并丢弃该下行数据包;
c25,丢弃所述下行数据包和查找到的上行数据包,执行步骤e。
7.如权利要求2所述的方法,其特征在于,步骤a之后,步骤b之前,所述方法还包括:
根据提取的通讯指示符信息判断所述数据包是否为建立链接数据包,
若是,则将所述建立链接数据包所对应的链接放入学习链接对照表,并初始化该链接的学习次数;
若否,则执行步骤b。
8.一种SNA主机报文解析的系统,其特征在于,所述系统包括:
数据包处理模块,用于实现如下功能:
获取数据包,并提取所述数据包的通讯数据域信息,其中所述通讯数据域信息包括:IP地址信息、端口号信息、传输链接标识信息和会话地址信息,所述数据包还包括机构标识信息或流水号信息;
判断模块,用于根据数据包的所述通讯数据域信息查询正常链接对照表是否存在所述数据包对应的链接,若存在,则启动正常链接处理模块,若不存在,则启动学习链接处理模块;
正常链接处理模块,包括第一判断子模块、第一存储子模块和匹配处理子模块,其中,
第一判断子模块,用于判断所述数据包是上行数据包还是下行数据包,若是上行数据包,则启动第一存储子模块,若是下行数据包,则启动匹配处理子模块,
第一存储子模块,用于将所述上行数据包存储至快速匹配二叉树,
匹配处理子模块,用于从正常链接对照表中获取所述下行数据包对应的上行数据包的通讯数据域信息,并根据获取的通讯数据域信息在快速匹配二叉树中查找该下行数据包对应的上行数据包以实现上下行数据包的匹配解析;
学习链接处理模块,包括第二判断子模块、第二存储子模块和链接学习子模块,其中,
第二判断子模块,用于判断所述数据包是上行数据包还是下行数据包,若是上行数据包,则启动第二存储子模块,若是下行数据包,则启动链接学习子模块,其中链接学习子模块包括链接查询处理单元,
第二存储子模块,用于将所述上行数据包存储至快速匹配二叉树,
链接学习子模块,用于根据所述下行数据包的流水号信息在快速匹配二叉树中查找具有与该流水号信息对应的机构标识信息的上行数据包,若查找到,则启动链接查询处理单元,若未查找到,则返回数据包处理模块以开始下一个数据包的处理,
链接查询处理单元,用于实现如下功能:查询学习链接对照表是否存在所述下行数据包与查找到的上行数据包所对应的链接,若不存在,则将所述链接放入学习链接对照表,并初始化该链接的学习次数,若存在,则判断所述链接的学习次数是否超过预设的学习阈值,若超过,则将该链接更新至正常链接对照表,然后返回数据包处理模块以开始下一个数据包的处理,若未超过,则更新学习链接对照表中该链接的学习次数,然后返回数据包处理模块以开始下一个数据包的处理。
9.如权利要求8所述的系统,其特征在于,提取的所述通讯数据域信息还包括通讯指示符信息。
10.如权利要求8至9任意一项所述的系统,其特征在于,所述上行数据包根据提取的IP地址信息、端口号信息、传输链接标识信息、会话地址信息存储至快速匹配二叉树的二叉树节点。
11.如权利要求10所述的系统,其特征在于,所述第一存储子模块具体包括:
第一判断单元,用于判断快速匹配二叉树节点上是否已经存储了与所述上行数据包具有相同IP地址信息、端口号信息、传输链接标识信息、会话地址信息的上行数据包,若是,则启动替换单元,若否,则启动存储单元;
替换单元,用于用所述上行数据包替换所述二叉树节点上已经存储了的上行数据包,并在正常链接对照表中记录该上行数据包所对应的链接中数据包的替换次数;
存储单元,用于将所述上行数据包存入空闲的二叉树节点。
12.如权利要求11所述的系统,其特征在于,第一存储子模块还包括第二判断单元和链接替换处理单元,其中,
第二判断单元,用于判断存储所述上行数据包的二叉树节点上是否有数据包的替换,若是,则启动链接替换处理单元;
链接替换处理单元,用于实现如下功能:
判断正常链接对照表中所述替换次数是否超过预设的替换阈值,若超过,则从正常链接对照表中删除所述链接,若未超过,则返回数据包处理模块以开始下一个数据包的处理。
13.如权利要求12所述的系统,其特征在于,所述匹配处理子模块包括上行包查找单元、验证单元、匹配解析单元和链接验证处理单元,其中,
上行包查找单元,用于根据获取的IP地址信息、端口号信息、传输链接标识信息和会话地址信息在快速匹配二叉树中查找该下行数据包对应的上行数据包,若查找到,则启动验证单元,若未查找到,则返回数据包处理模块以开始下一个数据包的处理;
验证单元,用于验证所述下行数据包的流水号信息与查找到的上行数据包的机构标识信息是否对应,若验证对应,则启动匹配解析单元,若验证不对应,则启动链接验证处理单元;
匹配解析单元,用于将该下行数据包与查找到的上行数据包匹配解析;
链接验证处理单元,用于实现如下功能:在正常链接对照表中记录所述下行数据包所对应的链接中数据包验证不对应的次数,并判断所述验证不对应的次数是否超过预设的验证阈值,若超过,则从正常链接对照表中删除所述链接并丢弃该下行数据包,若未超过,则丢弃所述下行数据包和查找到的上行数据包,并返回数据包处理模块以开始下一个数据包的处理。
14.如权利要求9所述的系统,其特征在于,所述系统还包括:
建链包识别模块,用于根据提取的通讯指示符信息判断所述数据包是否为建立链接数据包,若是,则启动建链包处理模块,若否,则启动判断模块;
建链包处理模块,用于将所述建立链接数据包所对应的链接放入学习链接对照表,并初始化该链接的学习次数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110180056.6A CN102255802B (zh) | 2011-06-27 | 2011-06-27 | 一种sna主机报文解析的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110180056.6A CN102255802B (zh) | 2011-06-27 | 2011-06-27 | 一种sna主机报文解析的方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102255802A CN102255802A (zh) | 2011-11-23 |
CN102255802B true CN102255802B (zh) | 2014-01-01 |
Family
ID=44982806
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110180056.6A Active CN102255802B (zh) | 2011-06-27 | 2011-06-27 | 一种sna主机报文解析的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102255802B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102737443B (zh) * | 2012-06-12 | 2014-04-09 | 中国工商银行股份有限公司 | 一种银行卡数据监控报警系统 |
CN110020574B (zh) * | 2018-01-08 | 2021-05-07 | 台达电子工业股份有限公司 | 基于数据融合的物体辨识系统及物体辨识的自我学习方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1225183A (zh) * | 1996-07-11 | 1999-08-04 | 哈拉营业股份有限公司 | 交易系统的耦合方法 |
US6990466B1 (en) * | 2000-08-08 | 2006-01-24 | International Business Machines Corporation | Method and system for integrating core banking business processes |
CN1987925A (zh) * | 2006-12-29 | 2007-06-27 | 中国建设银行股份有限公司 | 一种金融系统综合前置平台及交易数据的转发方法 |
CN101719258A (zh) * | 2009-12-08 | 2010-06-02 | 交通银行股份有限公司 | 基于大型机的远距离双中心交易信息的处理方法和系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020161907A1 (en) * | 2001-04-25 | 2002-10-31 | Avery Moon | Adaptive multi-protocol communications system |
-
2011
- 2011-06-27 CN CN201110180056.6A patent/CN102255802B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1225183A (zh) * | 1996-07-11 | 1999-08-04 | 哈拉营业股份有限公司 | 交易系统的耦合方法 |
US6990466B1 (en) * | 2000-08-08 | 2006-01-24 | International Business Machines Corporation | Method and system for integrating core banking business processes |
CN1987925A (zh) * | 2006-12-29 | 2007-06-27 | 中国建设银行股份有限公司 | 一种金融系统综合前置平台及交易数据的转发方法 |
CN101719258A (zh) * | 2009-12-08 | 2010-06-02 | 交通银行股份有限公司 | 基于大型机的远距离双中心交易信息的处理方法和系统 |
Non-Patent Citations (2)
Title |
---|
《基于SNA体系结构的群集型通信控制器》;魏仰苏等;《计算机应用》;20010331;第21卷(第3期);第63-65页 * |
魏仰苏等.《基于SNA体系结构的群集型通信控制器》.《计算机应用》.2001,第21卷(第3期), |
Also Published As
Publication number | Publication date |
---|---|
CN102255802A (zh) | 2011-11-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101009516B (zh) | 一种进行数据同步的方法、系统及装置 | |
CN105321108A (zh) | 一种用于在对等网络上创建共享信息列表的系统和方法 | |
CN103366117B (zh) | 一种感染型病毒修复方法及系统 | |
CN102075409A (zh) | 请求消息处理方法、系统及负载均衡器设备 | |
CN103618733B (zh) | 一种应用于移动互联网的数据过滤系统及方法 | |
CN102571732A (zh) | 一种处理传感器协议信息的方法、装置和系统 | |
CA2931525C (en) | Data stream identifying method and device | |
CN105550222A (zh) | 一种基于分布式存储的图像服务系统及方法 | |
CN102325124B (zh) | 一种支持引流功能的应用识别设备及方法 | |
CN104639391A (zh) | 一种生成网络流量记录的方法及相应的流量检测设备 | |
CN107959715A (zh) | 基于无线通讯的远程终端信息识别软件系统及识别方法 | |
CN111859426B (zh) | 一种通用加密数据库连接器及其设置方法 | |
CN111885133A (zh) | 基于区块链的数据处理方法、装置及计算机存储介质 | |
CN1703890B (zh) | 数据网络中识别和分析协议的方法 | |
CN101339560B (zh) | 一种搜索系列性数据的方法、装置及一种搜索引擎系统 | |
CN107870982A (zh) | 数据处理方法、系统和计算机可读存储介质 | |
CN102780681A (zh) | Url过滤系统及过滤url的方法 | |
CN111404768A (zh) | 一种dpi识别的实现方法及设备 | |
CN102255802B (zh) | 一种sna主机报文解析的方法及系统 | |
CN106612300A (zh) | 一种消息推送方法及推送服务器 | |
WO2024149297A1 (zh) | 容器网络抓包处理方法、装置、设备及可读存储介质 | |
CN109542913A (zh) | 一种复杂环境下的网络资产安全管理方法 | |
CN102802143B (zh) | 一种业务恢复方法、相关装置以及系统 | |
CN108011870B (zh) | 一种软件远程在线升级信息自动识别管理方法 | |
CN111832661B (zh) | 分类模型构建方法、装置、计算机设备及可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |