[发明专利]TCP承载的上层协议数据单元的自动定界方法和系统有效
申请号: | 201010575424.2 | 申请日: | 2010-12-06 |
公开(公告)号: | CN102006304A | 公开(公告)日: | 2011-04-06 |
发明(设计)人: | 杨海龙;贾林 | 申请(专利权)人: | 北京中创信测科技股份有限公司 |
主分类号: | H04L29/06 | 分类号: | H04L29/06;H04L29/08 |
代理公司: | 北京信远达知识产权代理事务所(普通合伙) 11304 | 代理人: | 王学强 |
地址: | 100081 北京市海淀区中关*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | tcp 承载 上层 协议 数据 单元 自动 定界 方法 系统 | ||
技术领域
本发明属于网络技术领域,尤其涉及一种通用TCP承载的上层协议数据单元的自动定界方法和系统。
背景技术
TCP是一个面向连接的传输协议,也是一个面向字节流的协议,在TCP数据包中,数据是作为字节流提交给接收方的,并没有内在的消息和消息边界。接收方在接收到TCP数据时也不知一个给定的读调用将会返回多少字节的数据量。
要分析基于TCP承载的上层协议数据,首要的问题就是要将收到的上层协议数据进行定界,以界定出一个完整的上层PDU(Protocol Data Unit,协议数据单元),否则无法对上层协议数据进行解码分析等操作。
现有技术中存在一种对TCP承载的上层PDU进行定界的方法,将分片合包的过程以及解码过程都放在一个为特定上层协议专门设置的分析模块中,TCP承载的协议数据都被送往该分析模块中,该分析模块进行TCP流分析,跟踪TCP流的建立及销毁过程,只要分析模块跟踪到TCP流的建立过程,就能知道被传送的数据流的开始点,然后将数据流缓存起来,并根据上层协议的规范,找出一个该上层协议的PDU的结束位置,再以当前PDU的结束位置作为下一个PDU的开始点,再根据上层协议的规范,找出该下一个PDU的结束点,当缓存的数据不够长(即缓存的数据还不能合成一个完整的PDU)时,则继续接收下一个TCP段承载的数据,如此下去就能够逐个定界出各个PDU。这种方案中的分析模块既要处理分片合包定界,还要处理解码,使得模块实现的代码不够清晰,复杂度增加,不容易维护。另外,由于分析模块只跟踪TCP流的创建,因此如果错过了TCP流的创建过程,则该TCP流的内的所有PDU都无法进行分界,对于TCP短连接的情况,这种问题还不严重,但对于TCP长连接的情况则会比较严重。
发明内容
有鉴于此,本发明的目的在于提供一种TCP承载的上层协议数据单元的自动定界方法和系统,能够充分利用TCP流,减少丢包率。
为实现上述目的,本发明提供一种TCP承载的上层协议数据单元(PDU)的自动定界方法,包括:
A调整模块接收由TCP协议分析模块上传的TCP段,根据该TCP段的方向性信息确定该TCP段所属的TCP流,以及该TCP流承载的上层PDU所属的上层协议;
B调整模块从公共模块中获取该上层协议在公共模块中注册的PDU定界策略;
C所述调整模块根据获取的PDU定界策略,对接收到的TCP段进行如下处理:对于当前接收到的TCP段所属的TCP流处于“未定位”状态的情况,调整模块检测当前接收到的TCP段是否是PDU的开始,如果是,则将当前接收到的TCP段所属的TCP流修改为“已定位”状态,并创建PDU,将当前接收到的TCP段以及后续接收到的属于同一TCP流、并且TCP段序号符合预期条件的TCP段中的数据顺序加入到所述创建的PDU中,直至该PDU完备,合成该PDU结束。
优选地,该方法还包括:
对于当前接收到的TCP段所属的TCP流处于“未定位”状态的情况,当检测到当前接收到的TCP段不是PDU的开始时,丢弃本TCP段,等待下一个TCP段,并返回继续执行A。
优选地,在步骤C中,如果后续接收到的TCP段的序号不符合预期条件,则调整模块清空PDU中的内容,并丢弃本次接收到TCP段,将当前接收到的TCP段所属的TCP流修改为“未定位”状态;等待下一个TCP段,返回执行步骤A。
优选地,在步骤C将TCP段加入到PDU之后,如果PDU仍不完备,则记下该PDU还需要填入的数据量,并计算下一个期望的TCP段的序号;所述TCP段序号符合的预期条件为该TCP段的序号等于所述计算的下一个期望的TCP段的序号。
优选地,在步骤C中将TCP段加入到PDU之后,如果PDU完备并且加入到PDU中的TCP段中的数据还有剩余,则建立下一个PDU,并将上述TCP段中尚未填入到上一个PDU中的数据填入到所述下一个PDU中。
优选地,还包括:
TCP协议分析模块在收到TCP段后,判断该TCP段在确定了TCP流承载的上层PDU所属的上层协议后,如果从公共模块中没有获取到该上层协议注册的PDU定界策略,则将该TCP流中的TCP段直接发送至上层协议分析模块。
优选地,还包括:
调整模块将合成成功的PDU发送至上层协议分析模块中。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京中创信测科技股份有限公司,未经北京中创信测科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201010575424.2/2.html,转载请声明来源钻瓜专利网。