CN107835138B - 一种tcp通讯连接中报文排序方法 - Google Patents
一种tcp通讯连接中报文排序方法 Download PDFInfo
- Publication number
- CN107835138B CN107835138B CN201710834689.1A CN201710834689A CN107835138B CN 107835138 B CN107835138 B CN 107835138B CN 201710834689 A CN201710834689 A CN 201710834689A CN 107835138 B CN107835138 B CN 107835138B
- Authority
- CN
- China
- Prior art keywords
- pkt1
- pkt2
- sequence number
- queue
- message
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9057—Arrangements for supporting packet reassembly or resequencing
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及一种TCP通讯连接中报文排序方法,通过判断两个报文间为同向且确认序列号相等,那么就对报文的序列号和报文长度进行更新取值;如两个报文间为同向且确认序列号不相等,那么需要对序列号,以及前一个的报文的是否位于队列头,经过上述比较判断,得出相应的判断结果或者进行下一步处理,直到获得最后的判断结果为止;如果两个报文间为异向,则通过对队列最后一个报文的序列号与长度之和、新报文的确认序列号的大小比较,进行后续相应分析判断,直到获得最后的排序结果为止。本发明能够提供一种计算准确度高、外界影响因素少、计算流程简单且易于实现的TCP通讯连接中报文排序方法。
Description
技术领域
本发明涉及通讯数据处理技术领域,尤其涉及一种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一致,且报文pkt1的确认序列号ack1与报文pkt2的确认序列号ack2相等,则报文pkt1的序列号seq1更新为min(seq1,seq2),报文pkt1的长度len1更新为max(len1,len2);
步骤三:如果pkt1与pkt2同向,就是报文pkt1的源ip地址、源端口、目的ip地址、目的端口与报文pkt2一致,但报文pkt1的确认序列号ack1与报文pkt2的确认序列号ack2不相等,则根据ack1与ack2的大小比较结果作进一步处理;
步骤四:如果步骤三中的ack1小于ack2,则pkt2加入队列且位于pkt1之后,如果ack1不小于ack2,则需要再根据pkt1是否位于队列头的判断,再进行下一步处理;
步骤五:如果步骤四中的pkt1是位于队列头的话,则将pkt2加入队列头位置,反之就将pkt1前一个报文设定为新pkt1并继续从步骤一开始比较;
步骤六:如果pkt1与pkt2异向,就是报文pkt1的源ip地址、源端口、目的ip地址、目的端口与报文pkt2相反,则需要根据seq1+len1与ack2的大小判断,再进行下一步处理;
步骤七:如果ack2大于等于seq1+len1,则pkt2加入队列,且位于pkt1之后,否则就需再判定pkt1是否符合位于队列头的条件,如判定pkt1符合位于队列头条件则将pkt2加入队列头位置,反之就将pkt1前一个报文设定为新pkt1并继续从步骤一开始比较,并最后得到报文的排序结果为止。
由于上述技术方案的运用,本发明的技术方案带来的有益技术效果:本技术方案通过采用对报文之间的同异向、序列号、确认序列号和长度等多个因素结合分析,然后作出判断结果,实现对报文顺序的快速判断,具有在丢包、重复报文时,也不影响顺序计算的正确性;序列号及确认序列号溢出,也不影响计算结果正确性;除两个方向在同一区间丢包的情况以外,都可以计算每个报文的具体序号;可以直接使用绝对序列号和绝对确认序列号进行计算,不依赖报文中提供的上、下行初初始序列号,计算流程简单,易于实现。
附图说明
附图1为本发明的运算流程结构示意图。
具体实施方式
下面结合反应路线及具体实施例对本发明作进一步的详细说明。
如图1所示,一种TCP通讯连接中报文排序方法,包括如下:获取队列最后一个报文为pkt1,其序列号、确认序列号、长度分别为seq1、ack1、len1,另外新报文为pkt2的序列号、确认序列号、长度分别为seq2、ack2、len2;
如果pkt1与pkt2同向,就是报文pkt1的源ip地址、源端口、目的ip地址、目的端口与报文pkt2一致,且报文pkt1的确认序列号ack1与报文pkt2的确认序列号ack2相等,则报文pkt1的序列号seq1更新为min(seq1,seq2),报文pkt1的长度len1更新为max(len1,len2);如果pkt1与pkt2同向,就是报文pkt1的源ip地址、源端口、目的ip地址、目的端口与报文pkt2一致,但报文pkt1的确认序列号ack1与报文pkt2的确认序列号ack2不相等,则根据ack1与ack2的大小比较结果作进一步处理;如果ack1小于ack2,则pkt2加入队列且位于pkt1之后,如果ack1不小于ack2,则需要再根据pkt1是否位于队列头的判断,再进行下一步处理;如果pkt1是位于队列头的话,则将pkt2加入队列头位置,反之就将pkt1前一个报文设定为新pkt1并继续从步骤一开始比较;
如果pkt1与pkt2异向,就是报文pkt1的源ip地址、源端口、目的ip地址、目的端口与报文pkt2相反,则需要根据seq1+len1与ack2的大小判断,再进行下一步处理;如果ack2大于等于seq1+len1,则pkt2加入队列,且位于pkt1之后,否则就需再判定pkt1是否符合位于队列头的条件,如判定pkt1符合位于队列头条件则将pkt2加入队列头位置,反之就将pkt1前一个报文设定为新pkt1并继续从步骤一开始比较,并最后得到报文的排序结果为止。
以上仅是本发明的具体应用范例,对本发明的保护范围不构成任何限制。凡采用等同变换或者等效替换而形成的技术方案,均落在本发明权利保护范围之内。
Claims (1)
1.一种TCP通讯连接中报文排序方法,包括如下步骤:
步骤一:获取队列最后一个报文为pkt1,其序列号、确认序列号、长度分别为seq1、ack1、len1,另外新报文为pkt2的序列号、确认序列号、长度分别为seq2、ack2、len2;
步骤二:如果pkt1与pkt2同向,就是报文pkt1的源ip地址、源端口、目的ip地址、目的端口与报文pkt2一致,且报文pkt1的确认序列号ack1与报文pkt2的确认序列号ack2相等,则报文pkt1的序列号seq1更新为min(seq1,seq2),报文pkt1的长度len1更新为max(len1,len2);
步骤三:如果pkt1与pkt2同向,就是报文pkt1的源ip地址、源端口、目的ip地址、目的端口与报文pkt2一致,但报文pkt1的确认序列号ack1与报文pkt2的确认序列号ack2不相等,则根据ack1与ack2的大小比较结果作进一步处理;
步骤四:如果步骤三中的ack1小于ack2,则pkt2加入队列且位于pkt1之后,如果ack1不小于ack2,则需要再根据pkt1是否位于队列头的判断,再进行下一步处理;
步骤五:如果步骤四中的pkt1是位于队列头的话,则将pkt2加入队列头位置,反之就将pkt1前一个报文设定为新pkt1并继续从步骤一开始比较;
步骤六:如果pkt1与pkt2异向,就是报文pkt1的源ip地址、源端口、目的ip地址、目的端口与报文pkt2相反,则需要根据seq1+len1与ack2的大小判断,再进行下一步处理;
步骤七:如果ack2大于等于seq1+len1,则pkt2加入队列,且位于pkt1之后,否则就需再判定pkt1是否符合位于队列头的条件,如判定pkt1符合位于队列头条件则将pkt2加入队列头位置,反之就将pkt1前一个报文设定为新pkt1并继续从步骤一开始比较,并最后得到报文的排序结果为止。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710834689.1A CN107835138B (zh) | 2017-09-15 | 2017-09-15 | 一种tcp通讯连接中报文排序方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710834689.1A CN107835138B (zh) | 2017-09-15 | 2017-09-15 | 一种tcp通讯连接中报文排序方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107835138A CN107835138A (zh) | 2018-03-23 |
CN107835138B true CN107835138B (zh) | 2022-01-04 |
Family
ID=61643309
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710834689.1A Active CN107835138B (zh) | 2017-09-15 | 2017-09-15 | 一种tcp通讯连接中报文排序方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107835138B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104093170A (zh) * | 2014-06-10 | 2014-10-08 | 北京创毅视讯科技有限公司 | 基于tcp的数据传输方法和tcp代理装置 |
CN106911644A (zh) * | 2015-12-23 | 2017-06-30 | 中国移动通信集团广西有限公司 | 一种报文重组方法和设备 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8130761B2 (en) * | 2008-01-22 | 2012-03-06 | Dell Products L.P. | Method and system for providing confirmed delivery of ethernet packets |
CN101321036A (zh) * | 2008-06-28 | 2008-12-10 | 华为技术有限公司 | 一种数据包处理方法、装置和系统 |
CN103166912B (zh) * | 2011-12-09 | 2016-08-10 | 华为技术有限公司 | 一种数据包的传输方法、系统 |
CN104753627A (zh) * | 2013-12-26 | 2015-07-01 | 中兴通讯股份有限公司 | 多路径传输方法、系统及数据发送装置和数据接收装置 |
CN103825841B (zh) * | 2014-03-19 | 2017-04-05 | 武汉众合德信技术有限公司 | 一种以太网报文排序方法及装置 |
CN104393961B (zh) * | 2014-12-12 | 2017-05-03 | 成都朗锐芯科技发展有限公司 | 一种接收包排序及无效包处理方法 |
CN105939297B (zh) * | 2015-10-26 | 2019-03-15 | 杭州迪普科技股份有限公司 | 一种tcp报文重组方法和装置 |
CN106230744B (zh) * | 2016-07-26 | 2019-04-16 | 京信通信系统(中国)有限公司 | 一种数据流乱序重组的方法及转发设备 |
-
2017
- 2017-09-15 CN CN201710834689.1A patent/CN107835138B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104093170A (zh) * | 2014-06-10 | 2014-10-08 | 北京创毅视讯科技有限公司 | 基于tcp的数据传输方法和tcp代理装置 |
CN106911644A (zh) * | 2015-12-23 | 2017-06-30 | 中国移动通信集团广西有限公司 | 一种报文重组方法和设备 |
Non-Patent Citations (1)
Title |
---|
"无线网络中TCP性能的改进方案";邓颖姝;《大连海事大学硕士学位论文》;20090915;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN107835138A (zh) | 2018-03-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103971687B (zh) | 一种语音识别系统中的负载均衡实现方法和装置 | |
US20100275031A1 (en) | Method for securely transmitting control data from a secure network | |
JP6463708B2 (ja) | 産業インターネットのフィールドレベルブロードバンドバスデータのディープインスペクションの実現方法 | |
CN110730143B (zh) | 一种分片数据包处理方法及装置 | |
CN110831010A (zh) | 一种多通道数据发送及接收方法及装置和数据传输系统 | |
CN108616925B (zh) | 一种数据流的处理方法及装置 | |
EP3203699A1 (en) | Method for man-in-the-middle processing for tcp without protocol stack | |
CN103763198A (zh) | 一种数据包分类方法 | |
CN106899419B (zh) | 一种实现异常处理的方法、装置及请求端 | |
AU2019203465A1 (en) | Link-fault tolerance in a distributed antenna system | |
EP2958259B1 (en) | Method for transmitting feedback information, user equipment and evolved node b | |
CN107835138B (zh) | 一种tcp通讯连接中报文排序方法 | |
CN107733583A (zh) | 设置混合自动重传请求的通信方式的方法、基站和用户设备 | |
WO2018108127A1 (zh) | 信息发送方法、信息接收方法及pdcp实体、计算机存储介质 | |
JPWO2008149434A1 (ja) | 中継装置および端末装置 | |
GB2592314A (en) | Modified methods and system of transmitting and receiving transmission control protocol segments over internet protocol packets | |
CN104796235B (zh) | 基于丢包率的卫星通信自适应拥塞控制方法 | |
GB2592315A (en) | Methods and systems for sending packets through a plurality of tunnels | |
CN111246588B (zh) | Nr系统中的解决不同优先级业务之间无序调度的方法 | |
US9461931B1 (en) | Methods and apparatus for preventing head of line blocking for RTP over TCP | |
CN106686630B (zh) | 基于网络时延特征的移动蜂窝网络流量识别方法 | |
CN110324302B (zh) | 一种iot设备通信方法 | |
CN111093111B (zh) | 一种视频播放等待时长加速方法及装置 | |
JP4974366B2 (ja) | 無線環境の時間占有率を監視する無線環境監視装置及びプログラム | |
CN103636157B (zh) | 一种ack信息的发送方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |