一种TCP通讯连接中报文排序方法技术

技术编号:17544244 阅读:59 留言:0更新日期:2018-03-25 00:22
本发明专利技术涉及一种TCP通讯连接中报文排序方法,通过判断两个报文间为同向且确认序列号相等,那么就对报文的序列号和报文长度进行更新取值;如两个报文间为同向且确认序列号不相等,那么需要对序列号,以及前一个的报文的是否位于队列头,经过上述比较判断,得出相应的判断结果或者进行下一步处理,直到获得最后的判断结果为止;如果两个报文间为异向,则通过对队列最后一个报文的序列号与长度之和、新报文的确认序列号的大小比较,进行后续相应分析判断,直到获得最后的排序结果为止。本发明专利技术能够提供一种计算准确度高、外界影响因素少、计算流程简单且易于实现的TCP通讯连接中报文排序方法。

A method of message sorting in TCP communication connection

The invention relates to a method of connecting sort message in TCP communication, through the judgment of two packets in the same direction and confirm the sequence number is equal, then the message sequence number and message length update values; such as two packets in the same direction and confirm the sequence number is not equal, so the need for serial number. And the message before a is located in the head of the queue, through the comparison, concluded the corresponding results or processed in the next step, until the final judgment result so far; if two packets for anisotropic, confirmed by sequence number of the last message queue sequence number and length and the new packet size, the corresponding follow-up analysis, until the final ranking results so far. The invention can provide a method of sorting message sorting in TCP communication connection with high calculation accuracy, less external influence factors, simple calculation process and easy realization.

【技术实现步骤摘要】
一种TCP通讯连接中报文排序方法
本专利技术涉及通讯数据处理
,尤其涉及一种TCP通讯连接中报文排序方法。
技术介绍
如今,人们的工作、学习越来越离不开网络,网络中的数据也越来越有价值,目前已出现了各种类型的网络中间设备,对网络流量进行分析和统计,最终为网络用户提供更多的方便或保护。对于TCP流量,分析的目标是其承载的应用数据,而分析前提就是识别到应用层对应的协议。端口识别是一种方法,但随着网络应用种类的迅速增长,每个网络应用独占一个端口,是不现实的,这样就造成端口识别的结果极不精确,甚至有些网络应用使用的端口不是固定的,根本无法通过端口识别。在这种情形下,就出现了特征识别的方法,特征识别首先要求TCP连接中出现包含指定特征的报文,另外对这样的报文在整个TCP连接中的位置范围也是有要求的。然后,TCP机制只是保证数据到达应用程序时,是排好序的,网络中间设备上抓到的原始报文乱序是很正常的的,这样就不能确定匹配到指定特征的报文,位置是否也符合要求,从而在协议分析之前,计算报文的理论顺序,为特征识别的正确性提供保障,是必要的,而本文就是提出一种在乱序的情况下,最大程度恢复报文实际顺序的思路。
技术实现思路
本专利技术目的是为了克服现有技术的不足而提供一种计算准确度高、外界影响因素少、计算流程简单且易于实现的TCP通讯连接中报文排序方法。为便于本技术方案的描述,作出如下定义解释:序列号(seq):减掉初始序列号(isn),转换为相对序列号后,表示当前报文承载的数据,在所有发送给对方数据中的偏移量。确认序列号(ack):减掉对方初始序列号(isn),转换为相对确认序列号后,表示希望对方下个发送报文承载数据的偏移量。假设某个报文序列号为x,长度为len,则紧接着的同向报文,序列号为x+len,紧接着的异向报文,确认序列号为x+len。选取seq1、seq2中的最小值:min(seq1,seq2);选取len1、len2中最大值:max(len1,len2)。为达到上述目的,本专利技术采用了如下技术方案。一种TCP通讯连接中报文排序方法,包括如下步骤:步骤一:获取队列最后一个报文为pkt1,其序列号、确认序列号、长度分别为seq1、ack1、len1,另外新报文为pkt2的序列号、确认序列号、长度分别为seq2、ack2、len2;步骤二:如果pkt1与pkt2同向,就是报文pkt1的源ip地址、源端口、目的ip地址、目的端口与报文pkt2一致,且报文pk1的确认序列号ack1与报文pk2的确认序列号ack2相等,则报文pk1的序列号seq1更新为min(seq1,seq2),报文pk1的长度len1更新为max(len1,len2);步骤三:如果pkt1与pkt2同向,就是报文pkt1的源ip地址、源端口、目的ip地址、目的端口与报文pkt2一致,但报文pk1的确认序列号ack1与报文pk2的确认序列号ack2不相等,则根据ack1与ack2的大小比较结果作进一步处理;步骤四:如果步骤三中的ack1小于ack2,则pkt2加入队列且位于pkt1之后,如果ack1不小于ack2,则需要再根据pk1是否位于队列头的判断,再进行下一步处理;步骤五:如果步骤四中的pk1是位于队列头的话,则将pkt2加入队列头位置,反之就将pkt1前一个报文设定为新pk1并继续从步骤一开始比较;步骤六:如果pkt1与pkt2异向,就是报文pkt1的源ip地址、源端口、目的ip地址、目的端口与报文pkt2相反,则需要根据seq1+len1与ack2的大小判断,再进行下一步处理;步骤七:如果ack2大于等于seq1+len1,则pkt2加入队列,且位于pkt1之后,否则就按所述步骤五进行分析判断,并最后得到报文的排序结果为止。由于上述技术方案的运用,本专利技术的技术方案带来的有益技术效果:本技术方案通过采用对报文之间的同异向、序列号、确认序列号和长度等多个因素结合分析,然后作出判断结果,实现对报文顺序的快速判断,具有在丢包、重复报文时,也不影响顺序计算的正确性;序列号及确认序列号溢出,也不影响计算结果正确性;除两个方向在同一区间丢包的情况以外,都可以计算每个报文的具体序号;可以直接使用绝对序列号和绝对确认序列号进行计算,不依赖报文中提供的上、下行初初始序列号,计算流程简单,易于实现。附图说明附图1为本专利技术的运算流程结构示意图。具体实施方式下面结合反应路线及具体实施例对本专利技术作进一步的详细说明。如图1所示,一种TCP通讯连接中报文排序方法,包括如下:获取队列最后一个报文为pkt1,其序列号、确认序列号、长度分别为seq1、ack1、len1,另外新报文为pkt2的序列号、确认序列号、长度分别为seq2、ack2、len2;如果pkt1与pkt2同向,就是报文pkt1的源ip地址、源端口、目的ip地址、目的端口与报文pkt2一致,且报文pk1的确认序列号ack1与报文pk2的确认序列号ack2相等,则报文pk1的序列号seq1更新为min(seq1,seq2),报文pk1的长度len1更新为max(len1,len2);如果pkt1与pkt2同向,就是报文pkt1的源ip地址、源端口、目的ip地址、目的端口与报文pkt2一致,但报文pk1的确认序列号ack1与报文pk2的确认序列号ack2不相等,则根据ack1与ack2的大小比较结果作进一步处理;如果ack1小于ack2,则pkt2加入队列且位于pkt1之后,如果ack1不小于ack2,则需要再根据pk1是否位于队列头的判断,再进行下一步处理;如果pk1是位于队列头的话,则将pkt2加入队列头位置,反之就将pkt1前一个报文设定为新pk1并继续从步骤一开始比较;如果pkt1与pkt2异向,就是报文pkt1的源ip地址、源端口、目的ip地址、目的端口与报文pkt2相反,则需要根据seq1+len1与ack2的大小判断,再进行下一步处理;如果ack2大于等于seq1+len1,则pkt2加入队列,且位于pkt1之后,否则就按所述步骤五进行分析判断,并最后得到报文的排序结果为止。以上仅是本专利技术的具体应用范例,对本专利技术的保护范围不构成任何限制。凡采用等同变换或者等效替换而形成的技术方案,均落在本专利技术权利保护范围之内。本文档来自技高网...
一种TCP通讯连接中报文排序方法

【技术保护点】
一种TCP通讯连接中报文排序方法,包括如下步骤:步骤一:获取队列最后一个报文为pkt1,其序列号、确认序列号、长度分别为seq1、ack1、len1,另外新报文为pkt2的序列号、确认序列号、长度分别为seq2、ack2、len2;步骤二:如果pkt1与pkt2同向,就是报文pkt1的源ip地址、源端口、目的ip地址、目的端口与报文pkt2一致,且报文pk1的确认序列号ack1与报文pk2的确认序列号ack2相等,则报文pk1的序列号seq1更新为min(seq1,seq2),报文pk1的长度len1更新为max(len1,len2);步骤三:如果pkt1与pkt2同向,就是报文pkt1的源ip地址、源端口、目的ip地址、目的端口与报文pkt2一致,但报文pk1的确认序列号ack1与报文pk2的确认序列号ack2不相等,则根据ack1与ack2的大小比较结果作进一步处理;步骤四:如果步骤三中的ack1小于ack2,则pkt2加入队列且位于pkt1之后,如果ack1不小于ack2,则需要再根据pk1是否位于队列头的判断,再进行下一步处理;步骤五:如果步骤四中的pk1是位于队列头的话,则将pkt2加入队列头位置,反之就将pkt1前一个报文设定为新pk1并继续从步骤一开始比较;步骤六:如果pkt1与pkt2异向,就是报文pkt1的源ip地址、源端口、目的ip地址、目的端口与报文pkt2相反,则需要根据seq1+len1与ack2的大小判断,再进行下一步处理;步骤七:如果ack2大于等于seq1+len1,则pkt2加入队列,且位于pkt1之后,否则就按所述步骤五进行分析判断,并最后得到报文的排序结果为止。...

【技术特征摘要】
1.一种TCP通讯连接中报文排序方法,包括如下步骤:步骤一:获取队列最后一个报文为pkt1,其序列号、确认序列号、长度分别为seq1、ack1、len1,另外新报文为pkt2的序列号、确认序列号、长度分别为seq2、ack2、len2;步骤二:如果pkt1与pkt2同向,就是报文pkt1的源ip地址、源端口、目的ip地址、目的端口与报文pkt2一致,且报文pk1的确认序列号ack1与报文pk2的确认序列号ack2相等,则报文pk1的序列号seq1更新为min(seq1,seq2),报文pk1的长度len1更新为max(len1,len2);步骤三:如果pkt1与pkt2同向,就是报文pkt1的源ip地址、源端口、目的ip地址、目的端口与报文pkt2一致,但报文pk1的确认序列号ack1与报文pk2的确认...

【专利技术属性】
技术研发人员:陈稳
申请(专利权)人:南京安讯科技有限责任公司
类型:发明
国别省市:江苏,32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1