一种TCP数据重传方法及系统与流程

文档序号:22621512发布日期:2020-10-23 19:27阅读:230来源:国知局
一种TCP数据重传方法及系统与流程

本发明涉及计算机网络技术领域,尤其涉及一种tcp数据重传方法及系统。



背景技术:

随着互联网发展,各类网络应用都需要一个可靠稳定的网络协议进行数据传输,通常的在传输层都会采用tcp协议,但是由于网络/路径的质量问题,使得网络链路上会出现很多错误包或重传包。

通常情况下,如图1所示,发送端/请求端(client)跟接收端/回复端(server)做tcp传输,通常会有以下的过程:

1、发送端和接收端建立tcp3次握手,发送端发送syn(同步数据包),等待接收端回复syn+ack(同步+确认数据包),发送端发送ack(确认数据包);

2、发送端开始发送数据(seq+ack)数据包,等待接收端的回复;

3、接收端回复ack数据包。

完整的tcp传输数据过程,一发送一确认。但互联网中往往会发生一些需要传输重传的数据包情况,根据网络质量的问题出现重传数据包,这种情况无法避免,因为tcp协议天生就是设计可靠的传输,为保证收发数据包正常,它就会发起重传数据包的要求。

如图2所示,出现重传数据包的情况如下:

1)传输数据的过程都是跟正常传输数据包是一样的,都需要先经过3次握手,发送端发送syn过程、接收端回复syn+ack过程、发送端发送ack过程;

2)不一样的是,当接收端校验数据发送不完整,就会给发送端发送-个重传数据包的要求;

3)发送端收到重传数据包的要求后,重新再发送一次上一次未确认(ack)的数据;

4)由于重传,是无法确认发1次,就可以补发成功,还是多次重传才成功;当然也可能因为超时,导致重传失败。



技术实现要素:

为了克服现有技术存在的缺点与不足,本发明提供一种tcp数据重传方法及系统,通过在出口设备增加出口装置(检测模块+切换模块),通过检测判断到重传(达到阈值),对重传的数据使用切换模块对链路进行切换,让网络上重传的数据包得到最新的重传数据,从而净化网络重传数据包,节省链路带宽。

为解决上述技术问题,本发明提供如下技术方案:一种tcp数据重传方法

包括以下步骤:

s1、发送端发送seq+ack数据包至接收端;其中,发送端发送给接收端的seq+ack数据包均经过出口装置,出口装置通过一个网络通道将seq+ack数据包发给接收端;

s2、接收端检测seq+ack数据包是否完全接收成功,若完全接收成功,则发送ack数据给发送端;若接收端对出口装置发送的seq+ack数据包没有完全接收成功,则发送一个重传数据包给出口装置;

s3、出口装置接收到接收端发送的重传数据包,出口装置的检测模块记录收到的同一重传数据包的次数,并发送一个新增网络通道的指令给切换模块;出口装置的切换模块收到检测模块的指令后新增一个网络通道,并将seq+ack数据包通过新增的网络通道重新发送给接收端,然后返回步骤s2。

本发明另一目的是提供一种tcp数据重传系统,包括依次连接的发送端、出口装置以及接收端,所述出口装置包括检测模块和切换模块;

所述发送端用于发送seq+ack数据包至所述接收端;其中,所述发送端发送给接收端的seq+ack数据包均经过出口装置;

所述出口装置用于通过一个网络通道将seq+ack数据包发给接收端;

所述接收端用于检测seq+ack数据包是否完全接收成功,若完全接收成功,则发送ack数据给发送端;若所述接收端对所述发送端发送的seq+ack数据包没有完全接收成功,则发送一个重传数据包给所述出口装置;

所述出口装置还用于接收到所述接收端发送的重传数据包;所述检测模块用于记录收到的同一重传数据包的次数,并发送一个新增网络通道的指令给所述切换模块;所述切换模块用于收到所述检测模块的指令后新增一个网络通道,并将seq+ack数据包通过新增的网络通道重新发送给所述接收端。

采用上述技术方案后,本发明至少具有如下有益效果:本发明降低重传数据包的数量/次数,节省带宽资源,并提高了转发效率。

附图说明

图1为本发明背景技术中tcp传输过程中的正常流程图。

图2为本发明背景技术中tcp重传传输的异常流程图。

图3为本发明一种tcp数据重传方法的步骤流程图。

图4为本发明一种tcp数据重传系统的框架图。

具体实施方式

需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互结合,下面结合附图和具体实施例对本申请作进一步详细说明。

实施例1

如图1所示,以及在背景技术中已经提到,在网络数据经过tcp协议传输过程中,都需要经过以下过程:通常会有以下的过程:1、发送端和接收端建立tcp3次握手,发送端发送syn(同步数据包),等待接收端回复syn+ack(同步+确认数据包),发送端发送ack(确认数据包);2、发送端开始发送数据(seq+ack)数据包,等待接收端的回复;3、接收端回复ack数据包。

完整的tcp传输数据过程,一发送一确认。但互联网中往往会发生一些需要传输重传的数据包情况,根据网络质量的问题出现重传数据包,这种情况无法避免,因为tcp协议天生就是设计可靠的传输,为保证手法数据包正常,它机制就发起要求重传,于是,就得到了如图2所示的情况,出现重传数据包的情况如下:

1)传输数据的过程都是跟正常传输数据包是一样的,都需要先经过3次握手,发送端发送syn过程、接收端回复syn+ack过程、发送端发送ack过程;

2)不一样的是,当接收端校验数据发送不完整,就会给发送端发送-要求重传数据包;

3)发送端收到重传要求数据包后,重新再发送一次上一次未确认(ack)的数据;

4)由于重传,是无法确认发1次,就可以补发成功,还是多次重传才成功;当然也可能因为超时,导致重传失败。

基于此,本实施例提供一种tcp数据重传方法,用于解决图2所示出现的问题,通过增加出口装置(检测模块+切换模块),通过检测及判断到重传数据包,然后对重传数据包的网络通道(网络链路)进行切换,让网络上重传数据包得到最新网络通道进行重传,从而净化重传数据包,节省链路带宽。

如图3所示和图4所示,本实施例公开一种tcp数据重传方法,包括以下步骤:

s1、发送端发送seq+ack数据包至接收端;其中,发送端发送给接收端的seq+ack数据包均经过出口装置,出口装置通过一个网络通道将seq+ack数据包发给接收端;

s2、接收端检测seq+ack数据包是否完全接收成功,若完全接收成功,则发送ack数据给发送端;若接收端对出口装置发送的seq+ack数据包没有完全接收成功,则发送一个重传数据包给出口装置;

s3、出口装置接收到接收端发送的重传数据包,出口装置的检测模块记录收到的同一重传数据包的次数,并发送一个新增网络通道的指令给切换模块;出口装置的切换模块收到检测模块的指令后新增一个网络通道,并将seq+ack数据包通过新增的网络通道重新发送给接收端,然后返回步骤s2。例如,出口装置第1次接收到重传数据包,则检测模块新增第1个网络通道,并从第1个网络通道将seq+ack数据包重新发送给接收端;当接收端对出口装置发送的seq+ack数据包再次没有完全接收成功,则再次发送一个重传数据包给出口装置,此时该重传数据为第2次发给出口装置了,则检测模块新增第2个网络通道,并从第2个网络通道将seq+ack数据包重新发送给接收端;依次类推,重传数据包再一次发送到出口装置,检测模块新增一个网络通道,直至最终接收端对seq+ack数据包完全接收成功并返还一个ack数据给发送端。步骤s3具体就是带来的效果为:通过检测并判断到需要重传的数据包,对重传的数据包使用切换模块对链路进行切换,让网络上重传的数据包得到最新的重传数据,从而净化网络重传数据包,节省链路带宽。

实施例2

本实施例是在实施例1一种tcp数据重传方法基础上,公开一种tcp数据重传系统,如图4所示,包括依次连接的发送端、出口装置以及接收端,所述出口装置包括检测模块和切换模块;

所述发送端用于发送seq+ack数据包至所述接收端;其中,所述发送端发送给接收端的seq+ack数据包均经过出口装置;

所述出口装置用于通过一个网络通道将seq+ack数据包发给接收端;

所述接收端用于检测seq+ack数据包是否完全接收成功,若完全接收成功,则发送ack数据给发送端;若所述接收端对所述发送端发送的seq+ack数据包没有完全接收成功,则发送一个重传数据包给所述出口装置;

所述出口装置还用于接收到所述接收端发送的重传数据包;所述检测模块用于记录收到的同一重传数据包的次数,并发送一个新增网络通道的指令给所述切换模块;所述切换模块用于收到所述检测模块的指令后新增一个网络通道,并将seq+ack数据包通过新增的网络通道重新发送给所述接收端。

尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解的是,在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种等效的变化、修改、替换和变型,本发明的范围由所附权利要求及其等同范围限定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1