著录项信息
专利名称 | SCTP报文识别方法和装置 |
申请号 | CN201010193624.1 | 申请日期 | 2010-06-01 |
法律状态 | 授权 | 申报国家 | 中国 |
公开/公告日 | 2010-10-27 | 公开/公告号 | CN101873259A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | H04L29/06 | IPC分类号 | H;0;4;L;2;9;/;0;6;;;H;0;4;L;1;2;/;8;0;1查看分类表>
|
申请人 | 华为技术有限公司 | 申请人地址 | 广东省深圳市龙岗区坂田华为总部办公楼
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 华为技术有限公司 | 当前权利人 | 华为技术有限公司 |
发明人 | 刘华;周维军;段亮;潘能毅 |
代理机构 | 暂无 | 代理人 | 暂无 |
摘要
本发明实施例公开了一种SCTP报文识别方法,包括:获取接收到的SCTP报文的特征元组,所述特征元组包括源IP地址、目的IP地址和验证标签中的至少一项信息;将获取的SCTP报文的特征元组和预先设定的SCTP元组识别表进行匹配,SCTP元组识别表包括SCTP报文的特征集元组和SCTP偶联的对应关系,所述特征集元组包括源IP地址集、目的IP地址集和验证标签中的至少一项信息;如果匹配成功,得到SCTP报文所属的SCTP偶联。相应地,本发明实施例还公开了一种SCTP报文识别装置和系统以及建立SCTP元组识别表的方法,能减少SCTP流漏识别的情况。
1.一种流控制传输协议SCTP报文识别方法,其特征在于,包括:
获取接收到的SCTP报文的特征元组,所述特征元组包括源IP地址、目的IP地址和验证标签中的至少一项信息;
将获取的SCTP报文的特征元组和预先设定的SCTP元组识别表进行匹配,所述SCTP元组识别表包括所述SCTP报文的特征集元组和SCTP偶联的对应关系和关联关系,所述特征集元组包括源IP地址集、目的IP地址集和验证标签中的至少一项信息;所述关联关系用于将属于同一偶联的特征集元组的记录关联;
如果匹配成功,得到所述SCTP报文所属的SCTP偶联;
如果匹配不成功,解析本次SCTP握手消息的初始化消息报文,将解析到的信息作为一个记录添加到所述元组识别表中,所述解析到的信息包括所述初始化消息报文的IP地址集、端口和验证标签中的至少一项信息;
解析所述本次SCTP握手消息的初始化确认消息报文,获取所述初始化确认消息报文的IP地址集、端口和验证标签;
解析所述SCTP报文的公共分组头中的验证标签,利用所述公共分组头中的验证标签和所述SCTP元组识别表进行匹配,匹配到的记录为所述初始化消息报文对应的记录;
将解析所述本次SCTP握手消息的初始化确认消息报文得到的IP地址集、端口和验证标签作为另一个记录添加到所述SCTP元组识别表,建立和所述初始化消息报文对应的记录的关联关系;
识别所述SCTP报文所属的SCTP偶联所承载的应用类型;
用应用标识标记所述新的记录,所述应用标识和所述应用类型相对应。
2.如权利要求1所述的SCTP报文识别方法,其特征在于,所述验证标签包括:
源端到目的端的验证标签和/或目的端到源端的验证标签。
3.如权利要求1所述的SCTP报文识别方法,其特征在于,所述特征元组还包括源端口或目的端口;所述特征集元组还包括源端口号和目的端口号。
4.如权利要求1所述的SCTP报文识别方法,其特征在于,所述SCTP偶联用偶联标识或者应用标识进行标记,所述偶联标识用于标记所述SCTP偶联的序号,所述应用标识用于标记所述SCTP偶联所承载的应用类型。
5.如权利要求1所述的SCTP报文识别方法,其特征在于,还包括:
按照预定的周期对所述SCTP元组识别表进行老化处理,删除所述SCTP元组识别表中不再使用的记录;所述按照预定的周期对所述SCTP元组识别表进行老化处理,删除所述元组识别表中不再使用的记录,包括:
解析收到的SCTP报文,如果是STCP关闭报文,则从所述元组识别表中删除所述SCTP报文对应的记录;或者,
定期检查所述元组识别表中记录相应记录匹配成功的计数,删除计数没有增加的相应的记录;或者,
定期检查元组识别表中记录相应表项匹配成功的时间的时间戳,删除时间戳超过预置老化时间的记录。
6.一种SCTP报文识别装置,其特征在于,包括:
第一获取模块,用于获取接收到的SCTP报文的特征元组,所述特征元组包括源IP地址、目的IP地址和验证标签中的至少一项信息;
匹配模块,用于将获取的SCTP报文的特征元组和预先设定的SCTP元组识别表进行匹配,所述SCTP元组识别表包括所述SCTP报文的特征集元组和SCTP偶联的对应关系,所述特征集元组包括源IP地址集、目的IP地址集和验证标签中的至少一项信息;
第二获取模块,用于所述匹配模块匹配成功时,得到所述SCTP报文所属的SCTP偶联;
第三解析单元,用于解析本次SCTP握手消息的初始化消息报文,将解析到的信息作为一个记录添加到所述元组识别表中,所述解析到的信息包括所述初始化消息报文的IP地址集、端口和验证标签中的至少一项信息;
第四解析单元,用于解析所述本次SCTP握手消息的初始化确认消息报文,获取所述初始化确认消息报文的IP地址集、端口和验证标签;
解析匹配单元,用于解析所述SCTP报文的公共分组头中的验证标签,利用所述公共分组头中的验证标签和所述SCTP元组识别表进行匹配,匹配到的记录为所述初始化消息报文对应的记录;
关联建立单元,用于将解析所述本次SCTP握手消息的初始化确认消息报文得到的IP地址集、端口和验证标签作为另一个记录添加到所述SCTP元组识别表,建立和所述初始化消息报文对应的记录的关联关系;
应用识别模块,用于识别所述SCTP报文所属的SCTP偶联所承载的应用类型;
业务添加模块,用于用应用标识标记所述新的记录,所述应用标识和所述应用类型相对应。
7.如权利要求6所述的SCTP报文识别装置,其特征在于,所述特征元组还包括源端口或目的端口;所述特征集元组还包括源端口号或目的端口号。
8.如权利要求6或7所述的SCTP报文识别装置,其特征在于,所述装置还包括:
维护模块,用于按照预定的周期对所述SCTP元组识别表进行老化处理,删除所述SCTP元组识别表中不再使用的记录;所述维护模块包括第一维护单元、第二维护单元或第三维护单元;
所述第一维护单元,用于解析收到的SCTP报文,如果是STCP关闭报文,则从所述元组识别表中删除所述SCTP报文对应的记录;
所述第二维护单元,用于定期检查所述元组识别表中记录相应记录匹配成功的计数,删除计数没有增加的相应的记录;
所述第三维护单元,用于定期检查元组识别表中记录相应表项匹配成功的时间的时间戳,删除时间戳超过预置老化时间的记录。
SCTP报文识别方法和装置\n技术领域\n[0001] 本发明涉及通信技术领域,特别涉及一种SCTP报文识别方法和装置。\n背景技术\n[0002] SCTP(Stream Control Transmission Protocol,流控制传输协议),是在IP网络上使用的一种可靠的通用传输层协议。该协议最初是为发送电信信令而设计的,具有支持多归属、多流、初始化保护、消息分帧、可配置的无序发送、平滑关闭等特性,有很高的可靠性和安全性。基于此原因,很多主流操作系统(如:Linux、BSD、Solaris等)也开始支持SCTP,所以现在网络上的使用该协议进行传输的业务逐渐增多。\n[0003] 现有技术中使用五元组(源IP、目的IP、源Port、目的Port、传输层协议)来识别一个TCP/UDP报文,该数据流需要保存的信息和该五元组进行关联,数据流的后续报文使用五元组索引数据流保存的信息\n[0004] 但是,由于SCTP支持多归属的特性,SCTP的同一个偶联可能使用几个不同的五元组进行交互。由于偶联中的五元组有多个,如果识别TCP/UDP报文的五元组来识别SCTP偶联,只能识别出偶联中一个或少数几个五元组,使用偶联中其他五元组进行通信的报文则识别不出来,这样会造成大量的漏识别。\n发明内容\n[0005] 本发明实施例提供一种SCTP报文识别方法和装置,以减少现有技术中SCTP流漏识别的情况。\n[0006] 本发明实施例提供一种流控制传输协议SCTP报文识别方法,包括:\n[0007] 获取接收到的SCTP报文的特征元组,所述特征元组包括源IP地址目的IP地址和验证标签中的至少一项信息;\n[0008] 将获取的SCTP报文的特征元组和预先设定的SCTP元组识别表进行匹配,所述SCTP元组识别表包括所述SCTP报文的特征集元组和SCTP偶联的对应关系,所述特征集元组包括源IP地址集、目的IP地址集和验证标签中的至少一项信息;\n[0009] 如果匹配成功,得到所述SCTP报文所属的SCTP偶联。\n[0010] 本发明实施例提供一种SCTP报文识别装置,包括:\n[0011] 第一获取模块,用于获取接收到的SCTP报文的特征元组,所述特征元组包括源IP地址、目的IP地址和验证标签中的至少一项信息;\n[0012] 匹配模块,用于将获取的SCTP报文的特征元组和预先设定的SCTP元组识别表进行匹配,所述SCTP元组识别表包括所述SCTP报文的特征集元组和SCTP偶联的对应关系,所述特征集元组包括源IP地址集、源端口号、目的IP地址集、目的端口号、验证标签中的至少一项信息;\n[0013] 第二获取模块,用于所述匹配模块匹配成功时,得到所述SCTP报文所属的SCTP偶联。\n[0014] 本发明实施例提供一种建立SCTP元组识别表的方法,\n[0015] 获得SCTP偶联的SCTP握手消息,所述SCTP握手消息包括初始化消息报文和与所述初始化消息报文对应的初始化确认消息报文;\n[0016] 从所述初始化消息报文和所述初始化确认消息报文对中获得所述SCTP偶联的SCTP特征集元组,所述SCTP特征集元组包括源IP地址集、目的IP地址集、源端口号、目的端口号、验证标签中的至少一项信息;\n[0017] 建立所述特征集元组和SCTP偶联的关联关系。\n[0018] 本发明实施例通过以上技术方案,针对SCTP支持多归属的特点,利用包包括所述SCTP报文的特征集元组和SCTP偶联的对应关系的SCTP元组识别表进行SCTP报文的识别,由于该SCTP特征集元组包括源IP地址集、目的IP地址集或者验证标签,包括了一个SCTP偶联中所有的交互。当SCTP报文的特征元组,如源IP地址、目的IP地址或者SCTP标签和上述特征集元组匹配成功时,就可以得到SCTP报文所属的SCTP偶联。与传统五元组识别SCTP数据流时存在的不能完整识别同一个偶联中所有交互的相比,在SCTP偶联中发生使用五元组切换后,本实施例中的方案根据IP地址集或者验证标签的匹配结果,仍能正确的识别出该交互的报文所属的SCTP偶联,减少了漏识别的情况。\n附图说明\n[0019] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。\n[0020] 图1本发明实施例提供一种SCTP报文识别方法流程图;\n[0021] 图2本发明实施例提供一种SCTP报文识别方法流程图;\n[0022] 图3本发明实施例提供一种SCTP报文识别方法流程图;\n[0023] 图4本发明实施例提供一种SCTP元组识别表结构示意图;\n[0024] 图5本发明实施例提供一种SCTP报文识别装置结构图;\n[0025] 图6本发明实施例提供一种SCTP报文识别装置结构图;\n[0026] 图7本发明实施例提供一种解析添加模块结构图;\n[0027] 图8本发明实施例提供一种解析添加模块结构图;\n[0028] 图9本发明实施例提供一种SCTP报文识别装置结构图;\n[0029] 图10本发明实施例提供一种维护模块结构图;\n[0030] 图11本发明实施例提供一种SCTP报文识别系统结构图;\n[0031] 图12本发明实施例提供一种SCTP元组识别表结构示意图;\n[0032] 图13本发明实施例提供一种建立SCTP元组识别表的方法流程图。\n具体实施方式\n[0033] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。\n[0034] 如图1所示,本发明实施例提供一种SCTP报文识别方法,包括:\n[0035] S101,获取接收到的SCTP报文的特征元组;\n[0036] 在一个实施例中,SCTP报文的特征元组包括:SCTP报文中的源IP地址、目的IP地址和验证标签(Verification Tag)中的至少一项信息。在另一个实施例中,该SCTP报文的特征元组还可以包括源端口号或者目的端口号。在另一个实施例中,该SCTP报文的特征元组还可以包括源端口号和目的端口号。\n[0037] 在一个实施例中,如果SCTP报文是源端发送到目的端的,那么验证标签为源端到目的端的验证标签。\n[0038] 在一个实施例中,如果SCTP报文是目的端发送到源端的,那么验证标签为目的端到源端的验证标签。\n[0039] S102,将获取的SCTP报文的特征元组和预先设定的SCTP元组识别表进行匹配,所述SCTP元组识别表包括所述SCTP报文的特征集元组和SCTP偶联的对应关系;\n[0040] 需要说明的是,在一个实施例中,SCTP元组识别表还可以包括关联关系,该关联关系用于指向属于同一偶联的特征集元组的记录。\n[0041] 需要说明的是,在一个实施例中,在SCTP元组识别表中,上述SCTP偶联用偶联标识或者应用标识进行标记,偶联标识用于标记所述SCTP偶联的序号,应用标识用于标记所述SCTP偶联所承载的应用类型。\n[0042] 在一个实施例中,上述SCTP元组识别表中的特征集元组包括源IP地址集、目的IP地址集和验证标签中的至少一项信息。在另一个实施例中,上述特征集元组还可以包括源端口号和目的端口号。\n[0043] 需要说明的是,在本实施例以及本发明其它实施例中,源IP地址集包括该SCTP偶联中源端所有可用的IP地址,目的IP地址集包括该SCTP偶联中目的端所有可用的IP地址。验证标签(Verification Tag)专用于建立偶联,SCTP两侧端点在建立偶联时会交换验证标签,验证标签的值在SCTP握手时第一次交换时确定,并且在以后的交互中保持不变。\n[0044] 在一个实施例中,在进行匹配时,可以将获取的特征元组作为键(key)值,采用哈希(hash)查找的方法与SCTP元组识别表进行匹配。hash查找的方法作为一个具体的查找方式具有迅速查找的优势,能提高匹配速度。可以理解的是hash查找的方法并不是匹配的唯一实现方式,故hash查找的方式作为一个举例不应理解为对本发明实施例的限定。\n[0045] 如图4所示,本发明一个实施例提供一种SCTP元组识别表的结构示意图。根据图\n4,该SCTP元组识别表包括验证标签(V_tag)、端口(Port)、应用标识(Application),IP列表(IP List)和关联关系(Relation)。本发明实施例中将SCTP元组识别表中每一个SCTP元组识别表的表项称为一个记录。如图4中,SCTP表的每一个表项(记录)包括括验证标签、端口、应用,IP列表和关联关系。在图4中,V_tag用于标识SCTP报文。IP列表通过一个指针来标识一个IP地址集,这个IP地址集可以是源IP地址集或者目的IP地址集。\n[0046] 在本实施例中,在图4所示的SCTP元组识别表中,SCTP报文的特征集元组和SCTP偶联的对应关系通过关联关系来表示。在表4中关联关系用于将属于同一偶联的特征集元组的记录关联,也就是说关联关系将两个记录关联起来,标识这两个记录同一个SCTP偶联。\n[0047] 在图4中,本实施例是用应用标识来标记一个SCTP偶联,通过应用标识能获得偶该联所承载的应用类型。当然在另一个实施例中,也可以将应用标识替换为偶联标识来标记这个SCTP偶联,通过偶联标识能获得SCTP偶联的序号,这时在一个实施例中,可以再增加一个应用标识的信息表项,来标识这个SCTP偶联所承载的应用。\n[0048] 当然,在另一个实施例中,也可以不使用指针,而直接将IP地址集放在IP列表项中。在另一个实施例中,还可以将两个具有关联关系的记录合并为一个记录,如图12所示,在图12中,SCTP元组识别表的每一个记录包括了源IP地址集、目的IP地址集、源端口号、目的端口号、和验证标签(对于图12来说,在一个实施例中,也可以叫做验证标签对,即图\n12中的源端到目的端的验证标签和目的端到源端的验证标签)。在图12中,每一个记录就代表一个偶联的信息。图4和图12仅仅是作为本发明实施例一个SCTP元组识别表的举例,本发明实施例不对SCTP元组识别表进行特别的限定。\n[0049] 在一个实施例中,验证标签为源端到目的端和/或目的端到源端的验证标签。例如,当采用图4所示的SCTP元组识别表的结构时,表中一个记录的验证标签可以为源端到目的端的验证标签,也可以为目的端到源端的验证标签。当采用图12所述的SCTP元组识别表的结构时,表中一个记录的验证标签为源端到目的端的验证标签和目的端到源端的验证标签。\n[0050] 为了更为直观的说明两个记录的关联关系,在图4中将属于同一个SCTP偶联的记录用箭头连接示出。如图4所示,V_tag为1254932544的SCTP报文与V_tag为8941172325的SCTP报文属于同一个SCTP偶联。V_tag为1254932544的SCTP报文对应的记录中的IP列表通过一个指针来标识源IP地址集,V_tag为8941172325的SCTP报文对应的记录中的IP列表通过一个指针来标识目的IP地址集。\n[0051] 当接收到新的SCTP报文时,可以通过解析次SCTP报文获得此SCTP报文的特征元组。例如,在一个实施例中,通过解析接收到的新的SCTP报文得到此SCTP报文的源IP地址为10.70.145.28,此时可以将得到的源IP地址与图4中的SCTP元组识别表进行匹配,得到该SCTP报文所属的SCTP偶联。\n[0052] S 103,如果匹配成功,得到所述SCTP报文所属的SCTP偶联。\n[0053] 在一个实施例中,如果上述SCTP报文的特征元组和SCTP元组识别表匹配成功,则说明该SCTP报文是属于SCTP元组识别表中已有的SCTP偶联,所以可以通过SCTP元组识别表中的SCTP报文的特征集元组和SCTP偶联的对应关系,获取该SCTP报文所属的SCTP偶联,即获取该SCTP报文所属的SCTP数据流。进一步,还可以通过SCTP元组识别表中的应用标识,获取该SCTP报文所属的SCTP偶联所承载的应用。由于一个SCTP偶联对应一个应用,所以当根据本实施例提供的方法识别出一个SCTP报文所属的偶联后,后续属于这个SCTP偶联的报文就都承载相同的应用。\n[0054] 例如,在一个实施例中,将IP地址为10.70.145.28的SCTP报文的IP地址与图4中的SCTP元组识别表进行匹配,可以得到此SCTP报文对应的记录和与其具有关联关系的记录(在图4中为V_tag为8941172325的SCTP报文对应的记录),从而确定此SCTP报文所属的SCTP偶联。进一步通过应用标识,来得到该SCTP所属的偶联所承载的应用,后续如果识别出属于这个SCTP偶联的其它报文,直接可以得知这些其它报文都承载HTTP应用。\n[0055] 例如,根据图4,该IP地址为10.70.145.28的SCTP报文所属的SCTP偶联所承载的应用为HTTP应用,在一个实施例中,IP地址为10.25.202.183的报文经过匹配,发现该报文对应的记录和上述IP地址为10.70.145.28的SCTP报文对应的记录具有关联关系,属于同一个SCTP偶联,对应的应用为HTTP应用。\n[0056] 需要说明的是,图4仅仅是本发明实施例一个元组识别表的举例,图4所示的SCTP元组识别表只是提供了元组识别表实现的一种典型方式,不是唯一的,可以在此表的基础上进行优化和完善。例如,在一个实施例中,如果不考虑误识别、漏识别、不需要获取对应的应用等因素,也可以只使用验证标签和关联关系来组织元组识别表。\n[0057] 或者,在另一个实施例中也可以只使用IP列表和关联关系来组织元组识别表。由于SCTP元组识别表是预先设置的,所以此时就需要根据元组识别表中的记录来相应的提取SCTP报文的特征元组。例如,如果SCTP元组识别表只使用验证标签和关联关系来设定,那么就需要提取接收到的SCTP报文的验证标签;如果,SCTP元组识别表只使用IP列表和关联关系来设定,那么就需要提取接收到的SCTP报文的源IP地址或者目的IP地址。\n[0058] 本发明实施例通过以上技术方案,针对SCTP支持多归属的特点,利用包包括所述SCTP报文的特征集元组和SCTP偶联的对应关系的SCTP元组识别表进行SCTP报文的识别,由于该SCTP特征集元组包括源IP地址集、目的IP地址集或者验证标签,包括了一个SCTP偶联中所有的交互。当SCTP报文的特征元组,如源IP地址、目的IP地址或者SCTP标签和上述特征集元组匹配成功时,就可以得到SCTP报文所属的SCTP偶联。与传统五元组识别SCTP数据流时存在的不能完整识别同一个偶联中所有交互的相比,在SCTP偶联中发生使用五元组切换后,本实施例中的方案根据IP地址集或者验证标签的匹配结果,仍能正确的识别出该交互的报文所属的SCTP偶联,减少了漏识别的情况。\n[0059] 如图2所示,本发明实施例提供一种SCTP报文识别方法,包括:\n[0060] S110,判断接收到的报文的传输协议类型;\n[0061] 在一个实施例中,可以通过判断接收到的报文的传输层协议的类型,来判断接收到的报文是否是SCTP报文。如果传输层协议的类型是TCP/UDP协议,则接收的报文是普通的报文,这时可以使用普通的五元组对该报文进行识别;如果传输层协议的类型是SCTP协议,则接收到的报文是SCTP报文。\n[0062] S120,若传输协议类型为SCTP协议,则接收到的报文为SCTP报文,获取该SCTP报文的特征元组;\n[0063] 在一个实施例中,SCTP报文的特征元组包括:SCTP报文中的源IP地址、目的IP地址和验证标签中的至少一项信息;在一个实施例中该特征元组还可以包括源端口号和目的端口号;在一个实施例中,该特征元组还可以全部包括源IP地址、目的IP地址、源端口号、目的端口号和验证标签这五项信息。\n[0064] S130,将获取的SCTP报文的特征元组和预先设定的SCTP元组识别表进行匹配,所述SCTP元组识别表包括所述SCTP报文的特征集元组和SCTP偶联的对应关系;\n[0065] 在一个实施例中,在进行匹配时,可以将获取的特征元组作为key值,采用hash查找的方法与SCTP元组识别表进行匹配。hash查找的方法作为一个具体的查找方式具有迅速查找的优势,能提高匹配速度。可以理解的是hash查找的方法并不是匹配的唯一实现方式,故hash查找的方式作为一个举例不应理解为对本发明实施例的限定。\n[0066] 在一个实施例中,上述特征集元组包括源IP地址集、目的IP地址集、源端口号、目的端口号和验证标签中的至少一项信息。在一个实施例中,该特征集元组还可以包括源端口号和目的端口号;在一个实施例中,该特征集元组还可以全部包括源IP地址集、目的IP地址集、源端口号、目的端口号和验证标签这五项信息。关于验证标签具体类型,在前述实施例中已经详细描述,在此不再赘述。\n[0067] S140,如果匹配成功,得到所述SCTP报文所属的SCTP偶联。\n[0068] 在一个实施例中,进一步,还可以通过SCTP元组识别表中的应用标识,获取该SCTP报文所属的SCTP偶联所承载的应用。\n[0069] S150,如果匹配不成功,解析本次SCTP握手消息得到新的具有关联关系的特征集元组,将上述特征集元组作为新的记录添加到所述SCTP元组识别表中。\n[0070] 在一个实施例中,如果匹配不成功,说明该SCTP报文是SCTP建立新连接的握手消息,属于一个新的SCTP数据流,需要添加新的记录以标识此新的SCTP数据流。\n[0071] 在一个实施例中,S150可以包括:\n[0072] S1501,获得SCTP的握手消息,所述握手消息包括属于同一新的SCTP偶联的INIT(初始化消息)和INIT ACK(初始化确认消息)报文;\n[0073] 在一个实施例中可以通过INIT报文中的IP列表获得属于同一SCTP偶联握手消息对应的INITACK报文,从而获得SCTP的握手消息。具体地,在一个实施例中,可以解析INIT报文的IP列表,来获取INIT ACK报文的目的IP,如果该目的IP在INIT报文的IP列表中,则可以确认INIT ACK报文和INIT报文是属于同一个SCTP偶联。\n[0074] S1502,从该握手消息中的INIT报文解析,得到该INIT报文的特征元组,从该握手消息中INIT ACK报文解析得到该INIT ACK报文的特征元组;\n[0075] S1503,根据解析得到的INIT报文和INIT ACK报文的特征元组,得到本次SCTP握手消息对应的新的SCTP偶联的源IP地址集、目的IP地址集、源端口号、目的端口号、验证标签;\n[0076] S1504,将S1503中得到的源端数据和目的端数据进行关联,作为本次SCTP握手消息对应的新的SCTP偶联的记录;\n[0077] S1505,将上述新的SCTP偶联的记录添加到SCTP元组识别表中。\n[0078] 在另一个实施例中,S150可以包括:\n[0079] S1511,获得SCTP的握手消息,所述握手消息包括属于同一新的SCTP偶联的INIT和INIT ACK消息;\n[0080] S1512,解析INIT报文,将解析到的信息作为一个记录添加到元组识别表,上述解析到的信息包括INIT报文的IP地址集、端口和验证标签中的至少一项信息;\n[0081] 将解析INIT报文得到的信息作为一个记录添加到元组识别表后,此记录在SCTP元组识别表中并没有具有关联关系的记录,所以需要进行步骤S1513。\n[0082] S1513,解析INITACK报文,获取该报文的IP地址集、端口和验证标签;\n[0083] S1514,解析SCTP报文的公共分组头中的验证标签,利用上述公共分组头中的验证标签匹配元组识别表,匹配到的记录为S1512中INIT报文对应的记录;\n[0084] S1515,将S1513中解析到的信息作为另一个记录添加到元组识别表,建立和S1514中匹配到的记录的关联关系。\n[0085] 由上述内容可知,在上述两个实施例中标识新的SCTP数据流,可以解析此次SCTP握手消息中的INIT和INIT ACK报文。在本发明的另一个实施例中,在S150中将新的记录添加到元组识别表中时,也可以只解析INIT ACK报文,INIT ACK报文中携带了源端和目的端的验证标签和端口信息。通过解析INIT ACK报文获取两端的验证标签和端口信息,就将解析得到的两端的信息关联起来作为一个偶联的两个记录添加到元组识别表中。\n[0086] 如图13所示,本发明实施例提供一种建立SCTP元组识别表的方法,包括:\n[0087] S401,获得SCTP偶联的SCTP握手消息,所述SCTP握手消息包括初始化消息(INIT)报文和与所述初始化消息报文对应的初始化确认消息(INITACK)报文;\n[0088] S402,从INIT报文和INIT ACK报文对中获得SCTP特征集元组,SCTP特征集元组包括源IP地址集、目的IP地址集、源端口号、目的端口号、验证标签中的至少一项信息;\n[0089] 具体地,在一个实施例中,S402可以包括:\n[0090] S4021,解析INIT ACK报文,得到此SCTP偶联的源IP地址集、目的IP地址、源端口号、目的端口号和源端到目的端的验证标签;\n[0091] S4022,解析INITACK报文,得到此SCTP偶联的目的IP地址集、源IP地址、源端口号、目的端口号和目的端到源端的验证标签;\n[0092] S4023,根据解析上述INIT报文和INIT ACK得到的信息,获得所述SCTP偶联特征集元组。\n[0093] S403,建立所述特征集元组和SCTP偶联的关联关系。\n[0094] 在一个实施例中,S403可以包括:\n[0095] 将S402中得到的源端数据和目的端数据进行关联,作为本次SCTP握手消息对应的新的SCTP偶联的记录。\n[0096] 在一个实施例中,S403可以包括:\n[0097] S4031,将S4021解析得到的信息作为一个记录添加到元组识别表;\n[0098] S4032,解析SCTP偶联中SCTP报文的公共分组头中的验证标签,利用上述公共分组头中的验证标签匹配元组识别表,匹配到的记录为S4031中INIT报文对应的记录;\n[0099] S4033,将S4022中解析到的信息作为另一个记录添加到元组识别表,建立和S4032中匹配到的记录的关联关系。\n[0100] 本发明实施例通过以上技术方案,针对SCTP支持多归属的特点,利用包包括所述SCTP报文的特征集元组和SCTP偶联的对应关系的SCTP元组识别表进行SCTP报文的识别,由于该SCTP特征集元组包括源IP地址集、目的IP地址集或者验证标签,包括了一个SCTP偶联中所有的交互。当SCTP报文的特征元组,如源IP地址、目的IP地址或者SCTP标签和上述特征集元组匹配成功时,就可以得到SCTP报文所属的SCTP偶联。与传统五元组识别SCTP数据流时存在的不能完整识别同一个偶联中所有交互的相比,在SCTP偶联中发生使用五元组切换后,本实施例中的方案根据IP地址集或者验证标签的匹配结果,仍能正确的识别出该交互的报文所属的SCTP偶联,减少了漏识别的情况。并且解析和元组识别表匹配不成功的报文,将解析到的结果作为记录更新到元组识别表中,方便后续属于同一个SCTP偶联的报文的识别。\n[0101] 如图3所示,在基于图2对应的实施例的基础上,本发明实施例提供的SCTP数据流的识别方法还可以包括:\n[0102] S160,在匹配不成功时,识别该SCTP报文所属的SCTP偶联所承载的应用类型;\n[0103] 在一个实施例中,可以使用业务识别技术(例如,DPI(Deep PacketInspection)深度包检测)技术)识别SCTP数据流,即SCTP偶联所承载的应用类型。\n[0104] S170,用应用标识标记所述新的记录,该应用标识和上述应用类型相对应。\n[0105] 在一个实施例中,将识别出的应用类型和对应的偶联关联,并标识到SCTP元组识别表中的对应记录,便于该SCTP数据流的后续报文可以通过SCTP元组识别表直接查找到对应的表项,进一步可以获取该SCTP所承载的业务。\n[0106] S180,按照预定的周期对上述元组识别表进行老化处理,删除上述元组识别表中不再使用的记录。\n[0107] 在一个实施例中,可以解析收到的SCTP报文,如果是STCP关闭报文(如,SHUTDOWN、SHUTDOWN ACK或ABORT),则从上述元组识别表中删除相应的记录;\n[0108] 在一个实施例中,可以定期检查元组识别表中记录相应表项匹配成功的计数,如果相应表项的计数没有增加,在元组识别表中删除该记录。\n[0109] 在一个实施例中,可以定期检查元组识别表中记录相应表项匹配成功的时间的时间戳,删除时间戳超过预置老化时间的记录。\n[0110] 需要说明的是,在一个实施例中,在预先建立SCTP元组识别表时,采用的方法与步骤S1501~S1504或者S1511~S1515类似,在此不再赘述。在另一个实施例中,在预先建立SCTP元组识别表时,还可以进一步的采用步骤S160~S170中的方法,识别出一个SCTP偶联所对应的应用,并利用对应的应用标识来标记此SCTP偶联,在此不再赘述。\n[0111] 本发明实施例通过以上技术方案,针对SCTP支持多归属的特点,利用包包括所述SCTP报文的特征集元组和SCTP偶联的对应关系的SCTP元组识别表进行SCTP报文的识别,由于该SCTP特征集元组包括源IP地址集、目的IP地址集或者验证标签,包括了一个SCTP偶联中所有的交互。当SCTP报文的特征元组,如源IP地址、目的IP地址或者SCTP标签和上述特征集元组匹配成功时,就可以得到SCTP报文所属的SCTP偶联。与传统五元组识别SCTP数据流时存在的不能完整识别同一个偶联中所有交互的相比,在SCTP偶联中发生使用五元组切换后,本实施例中的方案根据IP地址集或者验证标签的匹配结果,仍能正确的识别出该交互的报文所属的SCTP偶联,减少了漏识别的情况。并且解析和元组识别表匹配不成功的报文,将解析到的结果作为记录更新到元组识别表中,方便后续属于同一个SCTP偶联的报文的识别。进一步,通过业务识别技术识别新的SCTP偶联所承载的应用,方便后续对所属同一个SCTP偶联的SCTP报文所承载的应用的识别,而且通过对元组识别表进行老化维护,及时删除元组识别表中不再使用的记录,提高了识别效率。\n[0112] 如图5所示,本发明实施例提供一种SCTP报文识别装置,包括:\n[0113] 第一获取模块210,用于获取接收到的SCTP报文的特征元组;\n[0114] 在一个实施例中,SCTP报文的特征元组包括:SCTP报文中的源IP地址、目的IP地址和验证标签中的至少一项信息;在一个实施例中,该特征元组还可以包括源端口号和目的端口号;在一个实施例中,该特征集元组还可以全部包括源IP地址、目的IP地址、源端口号、目的端口号和验证标签这五项信息。\n[0115] 匹配模块220,用于将获取的SCTP报文的特征元组和预先设定的SCTP元组识别表进行匹配,上述SCTP元组识别表包括上述SCTP报文的特征集元组和SCTP偶联的对应关系;\n[0116] 在一个实施例中,上述特征集元组包括源IP地址集、目的IP地址集、源端口号、目的端口号和验证标签中的至少一项信息。在一个实施例中,该特征集元组还可以包括源端口号和目的端口号;在一个实施例中,该特征集元组还可以全部包括源IP地址集、目的IP地址集、源端口号、目的端口号和验证标签这五项信息。\n[0117] 第二获取模块230,用于在匹配模块220匹配成功时,得到所述SCTP报文所属的SCTP偶联。\n[0118] 在一个实施例中,如果上述SCTP报文的特征元组和SCTP元组识别表匹配成功,则说明该SCTP报文是属于SCTP元组识别表中已有的SCTP偶联,所以第二获取模块230可以通过SCTP元组识别表中的SCTP报文的特征集元组和SCTP偶联的对应关系,获取该SCTP报文所属的SCTP偶联,即获取该SCTP报文所属的SCTP数据流。\n[0119] 如图5中的虚线框所示,在一个实施例中,该装置还包括:\n[0120] 第三获取模块231,用于根据上述SCTP报文所属的SCTP偶联对应的应用标识,获取该SCTP报文所属的SCTP偶联所承载的应用。\n[0121] 本发明实施例通过以上技术方案,针对SCTP支持多归属的特点,利用包包括所述SCTP报文的特征集元组和SCTP偶联的对应关系的SCTP元组识别表进行SCTP报文的识别,由于该SCTP特征集元组包括源IP地址集、目的IP地址集或者验证标签,包括了一个SCTP偶联中所有的交互。当SCTP报文的特征元组,如源IP地址、目的IP地址或者SCTP标签和上述特征集元组匹配成功时,就可以得到SCTP报文所属的SCTP偶联。与传统五元组识别SCTP数据流时存在的不能完整识别同一个偶联中所有交互的相比,在SCTP偶联中发生使用五元组切换后,本实施例中的方案根据IP地址集或者验证标签的匹配结果,仍能正确的识别出该交互的报文所属的SCTP偶联,减少了漏识别的情况。进一步地,还可以通过SCTP元组识别表中的业务标识,获取接收到的SCTP报文所承载的应用。\n[0122] 如图6所示,在一个实施例中,该装置还可以包括:\n[0123] 解析添加模块240,用于在匹配模块220匹配不成功时,解析此次SCTP握手消息得到新的具有关联关系的特征集元组,将所述特征集元组作为新的记录添加到所述SCTP元组识别表中;\n[0124] 应用识别模块250,用于在匹配模块220匹配不成功时,识别该SCTP报文所属的SCTP数据流所承载的应用类型;\n[0125] 在一个实施例中,可以使用DPI技术识别SCTP数据流所承载的应用类型。\n[0126] 业务添加模块260,用于用应用标识标记所述新的记录,所述应用标识和所述应用类型相对应。\n[0127] 如图7所示,在一个实施例中,解析添加模块240可以包括:\n[0128] 消息获取单元2401,用于获得SCTP的握手消息,所述握手消息包括属于同一新的SCTP偶联的INIT和INIT ACK消息;\n[0129] 在一个实施例中,消息获取单元2401可以通过INIT消息中的IP列表获得属于同一SCTP偶联握手消息对应的INIT ACK,从而获得SCTP的握手消息。\n[0130] 第一解析单元2402,用于从上述握手消息中的INIT报文解析得到该INIT报文的特征元组;\n[0131] 第二解析单元2403,用于从握手消息中INIT ACK报文解析得到该INITACK报文的特征元组;\n[0132] 获取单元2404,用于根据解析得到的INIT报文和INIT ACK报文的特征元组,得到本次SCTP握手消息对应的新的SCTP偶联的源IP地址集、目的IP地址集、源端口号、目的端口号、验证标签;\n[0133] 关联单元2405,用于将获取单元2404中得到的源端数据和目的端数据进行关联,作为上述新的SCTP偶联的记录;\n[0134] 添加单元2406,用于将上述具有关联关系的记录添加到SCTP元组识别表中。\n[0135] 如图8所示,在另一个实施例中,解析添加模块240可以包括:\n[0136] 消息获取单元2401,用于获得SCTP的握手消息,所述握手消息包括属于同一新的SCTP偶联的INIT和INIT ACK消息;\n[0137] 第三解析单元241,用于解析INIT报文,将解析到的信息作为一个记录添加到元组识别表中,所述解析到的信息包括所述初始化消息报文的IP地址集、端口和验证标签中的至少一项信息;\n[0138] 第四解析单元242,用于解析INITACK报文,获取该报文的IP地址集、端口和验证标签;\n[0139] 解析匹配单元243,用于解析SCTP报文的公共分组头中的验证标签,利用上述公共分组头中的验证标签匹配元组识别表,匹配到的记录为第一解析单元241中INIT报文对应的记录;\n[0140] 关联建立单元244,用于将第二解析单元242中解析到的信息作为另一个记录添加到元组识别表,建立和解析匹配单元243中匹配到的记录的关联关系。\n[0141] 本发明实施例通过以上技术方案,针对SCTP支持多归属的特点,利用包包括所述SCTP报文的特征集元组和SCTP偶联的对应关系的SCTP元组识别表进行SCTP报文的识别,由于该SCTP特征集元组包括源IP地址集、目的IP地址集或者验证标签,包括了一个SCTP偶联中所有的交互。当SCTP报文的特征元组,如源IP地址、目的IP地址或者SCTP标签和上述特征集元组匹配成功时,就可以得到SCTP报文所属的SCTP偶联。与传统五元组识别SCTP数据流时存在的不能完整识别同一个偶联中所有交互的相比,在SCTP偶联中发生使用五元组切换后,本实施例中的方案根据IP地址集或者验证标签的匹配结果,仍能正确的识别出该交互的报文所属的SCTP偶联,减少了漏识别的情况。并且解析和元组识别表匹配不成功的报文,将解析到的结果作为记录更新到元组识别表中,方便后续属于同一个SCTP偶联的报文的识别。进一步,通过业务识别技术识别新的SCTP偶联所承载的应用,方便后续对属于同一个SCTP偶联的SCTP报文所承载的应用的识别。\n[0142] 如图9所示,在另一个实施例中,该装置还可以包括:\n[0143] 维护模块270,用于按照预定的周期对上述元组识别表进行老化处理,删除上述元组识别表中不再使用的记录。\n[0144] 如图10所示,在一个实施例中,所述维护模块270包括:\n[0145] 第一维护单元271,用于解析收到的SCTP报文,如果是STCP关闭报文(SHUTDOWN、SHUTDOWN ACK或ABORT),则从上述元组识别表中删除相应的记录;或者,[0146] 第二维护单元272,用于定期检查元组识别表中记录相应记录匹配成功的计数,如果相应记录的计数没有增加,在元组识别表中删除该记录,即,删除计数没有增加的相应的记录;或者,\n[0147] 第三维护单元273,用于定期检查元组识别表中记录相应记录匹配成功的时间的时间戳,删除时间戳超过预置老化时间的记录。\n[0148] 本发明实施例通过以上技术方案,针对SCTP支持多归属的特点,利用包包括所述SCTP报文的特征集元组和SCTP偶联的对应关系的SCTP元组识别表进行SCTP报文的识别,由于该SCTP特征集元组包括源IP地址集、目的IP地址集或者验证标签,包括了一个SCTP偶联中所有的交互。当SCTP报文的特征元组,如源IP地址、目的IP地址或者SCTP标签和上述特征集元组匹配成功时,就可以得到SCTP报文所属的SCTP偶联。与传统五元组识别SCTP数据流时存在的不能完整识别同一个偶联中所有交互的相比,在SCTP偶联中发生使用五元组切换后,本实施例中的方案根据IP地址集或者验证标签的匹配结果,仍能正确的识别出该交互的报文所属的SCTP偶联,减少了漏识别的情况。并且解析和元组识别表匹配不成功的报文,将解析到的结果作为记录更新到元组识别表中,方便后续属于同一个SCTP偶联的报文的识别。进一步,通过业务识别技术识别新的SCTP偶联所承载的应用,方便后续对属于同一个SCTP偶联的SCTP报文所承载的应用的识别,而且通过对元组识别表进行老化维护,及时删除元组识别表中不再使用的记录,提高了识别效率。\n[0149] 如图11所示,本发明实施例提供一种SCTP报文识别系统,包括:\n[0150] 接收装置10,用于接收报文;\n[0151] SCTP报文识别装置20,用于接收装置10接受到SCTP报文时,获取接收到的SCTP报文的特征元组,所述特征元组包括源IP地址、目的IP地址和验证标签中的至少一项信息;将获取的SCTP报文的特征元组和预先设定的SCTP元组识别表进行匹配,所述SCTP元组识别表包括所述SCTP报文的特征集元组和SCTP偶联的对应关系,所述特征集元组包括源IP地址集、目的IP地址集和验证标签中的至少一项信息;如果匹配成功,得到所述SCTP报文所属的SCTP偶联。\n[0152] 在一个实施例中,该特征元组还可以包括源端口号和目的端口号;在一个实施例中,该特征元组还可以全部包括源IP地址、目的IP地址、源端口号、目的端口号和验证标签这五项信息。\n[0153] 在一个实施例中,该特征集元组还可以包括源端口号和目的端口号;在一个实施例中,该特征集元组还可以全部包括源IP地址集、目的IP地址集、源端口号、目的端口号和验证标签这五项信息。\n[0154] SCTP报文识别装置20的结构和功能如上述装置实施例所述,在此不再赘述。\n[0155] 本发明实施例通过以上技术方案,针对SCTP支持多归属的特点,利用包包括所述SCTP报文的特征集元组和SCTP偶联的对应关系的SCTP元组识别表进行SCTP报文的识别,由于该SCTP特征集元组包括源IP地址集、目的IP地址集或者验证标签,包括了一个SCTP偶联中所有的交互。当SCTP报文的特征元组,如源IP地址、目的IP地址或者SCTP标签和上述特征集元组匹配成功时,就可以得到SCTP报文所属的SCTP偶联。与传统五元组识别SCTP数据流时存在的不能完整识别同一个偶联中所有交互的相比,在SCTP偶联中发生使用五元组切换后,本实施例中的方案根据IP地址集或者验证标签的匹配结果,仍能正确的识别出该交互的报文所属的SCTP偶联,减少了漏识别的情况。\n[0156] 本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。\n[0157] 以上所述仅为本发明的几个实施例,本领域的技术人员依据申请文件公开的可以对本发明进行各种改动或变型而不脱离本发明的精神和范围。
法律信息
- 2013-01-09
- 2010-12-08
实质审查的生效
IPC(主分类): H04L 12/56
专利申请号: 201010193624.1
申请日: 2010.06.01
- 2010-10-27
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2007-12-26
|
2007-08-07
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |