数据传输控制方法和装置制造方法
【专利摘要】本发明公开了一种数据传输控制方法和装置,其中,该方法包括:在TCP连接数据发送失败进行超时重传等待时,确定TCP客户端与TCP服务端之间的网络状态是否恢复正常;若确定TCP客户端与TCP服务端之间的网络状态恢复正常,取消TCP连接数据发送超时重传时的超时等待时间,直接进行数据重传。本发明有效地解决现有技术中在TCP连接数据发送失败时,TCP连接数据需要等待重传定时器超时后才进行下一次重传导致数据发送恢复速度较慢的问题,提高了TCP连接超时重传时的数据发送恢复速度,避免了宽带资源的闲置浪费,增加了数据传输的吞吐量。
【专利说明】数据传输控制方法和装置
【技术领域】
[0001]本发明涉及数据传输领域,具体而言,涉及一种数据传输控制方法和装置。
【背景技术】
[0002]TCP (Transmission Control Protocol,传输控制协议)是 TCP/IP 协议栈中传输层协议,通过ACK (Acknowledgement,确认字符)确认以及数据包重传机制,为应用层的应用程序提供可靠的数据传输通道。很多应用协议都使用TCP作为承载协议来传输应用协议的各种数据。如:HTTP (Hypertext transfer protocol,超文本传输协议)、TELNET (远程登录协议)等都是基于TCP的应用协议。
[0003]TCP协议的超时重传机制,就是为了保证TCP协议传输可靠性。超时重传机制的原理和步骤如下:
(1)在发送一个数据包后启动一个超时重传定时器;
(2)如果在该定时时间内,收到该数据包的ACK确认报文,则跳转到步骤(I),继续发送下一个数据包;
(3)如果在该定时时间内,没有收到该数据包的ACK确认报文,则重新发送该数据包,并且按照TCP重传时间算法计算确定超时重传的间隔时间,再次启动一个超时重传定时器。
[0004](4)在重传定时器超时后,重复执行步骤(2)、(3)、(4);
通常情况下,TCP重传时间间隔采用指数退避机制进行重传,在连续多次发送失败时,重传间隔时间以指数级增加,如,间隔时间依次为:I秒、2秒、4秒、8秒、16秒、32秒。然而,这种重传方式却存在缺陷,具体来说,在TCP连接进行超时重传流程后,TCP连接数据发送需要等待重传定时器超时后,才进行下一次重传发送,而在等待重传定时器超时的过程中,网络可能已经恢复,这种情况下,仍需等待重传定时器超时后才进行数据发送,造成TCP连接数据发送失败时的数据发送恢复速度较慢,宽带资源的闲置浪费。
[0005]以上述采用指数退避机制进行重传为例进行具体说明,如果网络在第16秒时恢复,由于在第15秒(I + 2 + 4 + 8)时刚进行过重传,因而下一次重传需要在第31秒时进行,因此TCP数据发送需要等到第31秒重传时才可以恢复,而第16秒到第31秒之间,虽然网络已经恢复,但是数据发送仍然没有恢复。
[0006]针对现有技术中在TCP连接数据发送失败时,TCP连接数据需要等待重传定时器超时后才进行下一次重传导致数据发送恢复速度较慢的问题,目前尚未提出有效的解决方案。
【发明内容】
[0007]本发明提供了一种数据传输控制方法和装置,以至少解决现有技术中在TCP连接数据发送失败时,TCP连接数据需要等待重传定时器超时后才进行下一次重传导致数据发送恢复速度较慢的问题。[0008]根据本发明的一个方面,提供了一种数据传输控制方法,该方法包括:在TCP连接数据发送失败进行超时重传等待时,确定TCP客户端与TCP服务端之间的网络状态是否恢复正常;若确定TCP客户端与TCP服务端之间的网络状态恢复正常,取消TCP连接数据的超时重传等待时间,直接进行数据重传。
[0009]可选地,确定TCP客户端与TCP服务端之间的网络状态是否恢复正常,包括:判断第一连接是否数据收发正常,其中,第一连接为在TCP连接数据发送失败时,在TCP客户端与TCP服务端之间新建立的连接,第一连接持续有数据收发;若第一连接数据收发正常,则确定TCP客户端与TCP服务端之间的网络状态恢复正常。
[0010]可选地,判断第一连接是否数据收发正常,包括:获取第一连接的数据收发信息;根据获取的第一连接的数据收发信息,判断第一连接是否数据收发正常,其中,当第一连接发送数据包后,在预定时间阈值内接收到响应数据包时,则判定第一连接数据收发正常,当第一连接发送数据包后,在预定时间阈值内没有接收到响应数据包时,则判定第一连接数据收发异常。
[0011]可选地,第一连接的连接方式包括以下之一:UDP连接方式、TCP连接方式、ICMP连接方式、ARP连接方式。
[0012]可选地,确定TCP客户端与TCP服务端之间的网络状态是否恢复正常,包括:判断第二连接是否数据收发正常,其中,第二连接为在TCP连接数据发送失败前,TCP客户端与TCP服务端之间已存在的连接;若第二连接数据收发正常,则确定TCP客户端与TCP服务端之间的网络状态恢复正常。
[0013]可选地,第二连接的连接方式包括以下之一:UDP连接方式、TCP连接方式、ICMP连接方式、ARP连接方式。
[0014]根据本发明的另一方面,提供了一种数据传输控制装置,该装置包括:确定单元,用于在TCP连接数据发送失败进行超时重传等待时,确定TCP客户端与TCP服务端之间的网络状态是否恢复正常;重传单元,用于在确定单元确定TCP客户端与TCP服务端之间的网络状态恢复正常时,取消TCP连接数据的超时重传等待时间,直接进行数据重传。
[0015]可选地,确定单元包括:第一判断模块,用于判断第一连接是否数据收发正常,其中,第一连接为在TCP连接数据发送失败时,在TCP客户端与TCP服务端之间新建立的连接,第一连接持续有数据收发;第一确定模块,用于在第一连接数据收发正常时,确定TCP客户端与TCP服务端之间的网络状态恢复正常。
[0016]可选地,第一判断模块包括:第一获取子模块,用于获取第一连接的数据收发信息;第一判断子模块,用于根据获取的第一连接的数据收发信息,判断第一连接是否数据收发正常,其中,当第一连接发送数据包后,在预定时间阈值内接收到响应数据包时,则判定第一连接数据收发正常,当第一连接发送数据包后,在预定时间阈值内没有接收到响应数据包时,则判定第一连接数据收发异常。
[0017]可选地,确定单元包括:第二判断模块,用于判断第二连接是否数据收发正常,其中,第二连接为在TCP连接数据发送失败前,TCP客户端与TCP服务端之间已存在的连接;第二确定模块,用于在第二连接数据收发正常时,确定TCP客户端与TCP服务端之间的网络状态恢复正常。
[0018]在本发明中TCP客户端与TCP服务端进行数据传输过程,当TCP连接数据发送失败进行超时重传等待时,检测TCP客户端与TCP服务端之间的网络状态,如果检测到网络状态恢复正常,设置TCP连接取消超时重传等待时间,立即进行数据重传。这种数据传输控制的方案有效地解决现有技术中在TCP连接数据发送失败时,TCP连接数据需要等待重传定时器超时后才进行下一次重传导致数据发送恢复速度较慢的问题,保证在网络恢复时,TCP连接数据发送可以第一时间进行,提高了 TCP连接超时重传时的数据发送恢复速度,避免了宽带资源的闲置浪费,增加了数据传输的吞吐量。
[0019]
【专利附图】
【附图说明】
[0020]此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的数据传输控制方法的一种可选的流程图;
图2是根据本发明实施例的数据传输控制装置的一种可选的结构框图;以及 图3是根据本发明实施例的数据传输控制装置的另一种可选的结构框图。
[0021]
【具体实施方式】
[0022]下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
[0023]实施例1
在本发明的实施例1中提供了一种数据传输控制方法,图1不出该方法的一种可选的流程图,如图1所示,该方法包括如下步骤:
S102,在TCP连接数据发送失败进行超时重传等待时,确定TCP客户端与TCP服务端之间的网络状态是否恢复正常;
S104,若确定TCP客户端与TCP服务端之间的网络状态恢复正常,取消TCP连接数据的超时重传等待时间,直接进行数据重传。
[0024]在上述记载的实施方式中,在TCP客户端与TCP服务端进行数据传输过程中,当TCP连接数据发送失败进行超时重传等待时,会对TCP客户端与TCP服务端之间的网络状态进行检测,如果检测到网络状态恢复正常,设置TCP连接取消超时重传等待时间,立即进行数据重传。这种数据传输控制的方案可有效地解决现有技术中在TCP连接数据发送失败时,TCP连接数据需要等待重传定时器超时后才进行下一次重传导致数据发送恢复速度较慢的问题,保证在网络恢复时,TCP连接数据发送可以第一时间进行,提高了 TCP连接超时重传时的数据发送恢复速度,避免了宽带资源的闲置浪费,增加了数据传输的吞吐量,从而为基于TCP的应用程序提供更好的网络稳定性及网络响应能力。
[0025]在本发明的一个实施方式中,还提供了一种确定TCP客户端与TCP服务端之间的网络状态是否恢复正常的可选的方案,具体地,在确定TCP客户端与TCP服务端之间的网络状态是否恢复正常时,判断第一连接是否数据收发正常,其中,第一连接为在TCP连接数据发送失败时,在TCP客户端与TCP服务端之间新建立的连接,第一连接持续有数据收发,以便能尽快检测出TCP客户端和TCP服务端之间的网络状态变化;若第一连接数据收发正常,则确定TCP客户端与TCP服务端之间的网络状态恢复正常。优选地,建立的第一连接的连接类型可以是UDP (User Datagram Protocol,用户数据报协议)连接方式、TCP连接方式、ICMP (Internet Control Message Protocol, Internet 控制报文协议)连接方式、ARP(Address Resolution Protocol,地址解析协议)连接方式,也可以是其他可用的连接方式,本发明并不限于此。
[0026]进一步地,在判断第一连接是否数据收发正常时,可先获取第一连接的数据收发信息,根据获取的第一连接的数据收发信息,判断第一连接是否数据收发正常。当第一连接发送数据包后,在预定时间阈值内接收到响应数据包时,则判定第一连接数据收发正常,当第一连接发送数据包后,在预定时间阈值内没有接收到响应数据包时,则判定第一连接数据收发异常。
[0027]此外,在本发明的实施例中还提供了另一种确定TCP客户端与TCP服务端之间的网络状态是否恢复正常的可选的方案,可以通过TCP客户端和TCP服务端之间已有的其他连接的网络状态进行判断,具体来说,该方案可包括如下步骤:判断第二连接是否数据收发正常,其中,第二连接为在TCP连接数据发送失败前,TCP客户端与TCP服务端之间已存在的连接;若第二连接数据收发正常,则确定TCP客户端与TCP服务端之间的网络状态恢复正常。优选地,第二连接的连接类型可以是UDP连接方式、TCP连接方式、ICMP连接方式、ARP连接方式,也可以是其他可用的连接方式,本发明并不限于此。
[0028]在判断第二连接是否数据收发正常时,可先获取第二连接的数据收发信息,根据获取的第二连接的数据收发信息,判断第二连接是否数据收发正常。当第二连接发送数据包后,在预定时间阈值内接收到响应数据包时,则判定第二连接数据收发正常,当第二连接发送数据包后,在预定时间阈值内没有接收到响应数据包时,则判定第二连接数据收发异
堂
巾O
[0029]实施例2
基于上述实施例1中记载的数据传输控制方法,本优选的实施例提供了一种数据传输控制装置,具体地,图2示出该装置的一种可选的结构框图,如图2所示,该数据传输控制装置包括:确定单元20,用于在TCP连接数据发送失败进行超时重传等待时,确定TCP客户端与TCP服务端之间的网络状态是否恢复正常;重传单元22,用于在确定单元20确定TCP客户端与TCP服务端之间的网络状态恢复正常时,取消TCP连接数据的超时重传等待时间,直接进行数据重传。
[0030]在上述记载的实施方式中,在TCP客户端与TCP服务端进行数据传输过程,当TCP连接数据发送失败进行超时重传等待时,确定单元20会对TCP客户端与TCP服务端之间的网络状态进行检测,如果检测到网络状态恢复正常,重传单元22设置TCP连接取消超时重传等待时间,立即进行数据重传。这种数据传输控制的方案可有效地解决现有技术中在TCP连接数据发送失败时,TCP连接数据需要等待重传定时器超时后才进行下一次重传导致数据发送恢复速度较慢的问题,保证在网络恢复时,TCP连接数据发送可以第一时间进行,提高了 TCP连接超时重传时的数据发送恢复速度,避免了宽带资源的闲置浪费,增加了数据传输的吞吐量,从而为基于TCP的应用程序提供更好的网络稳定性及网络响应能力。[0031]在本发明的一个实施方式中,还提供了一种确定TCP客户端与TCP服务端之间的网络状态是否恢复正常的可选的方案,具体来说,如图3所示,确定单元20包括:第一判断模块30,用于判断第一连接是否数据收发正常,其中,第一连接为在TCP连接数据发送失败时,在TCP客户端与TCP服务端之间新建立的连接,第一连接持续有数据收发;第一确定模块32,与第一判断模块30连接,用于在第一连接数据收发正常时,确定TCP客户端与TCP服务端之间的网络状态恢复正常。优选地,建立的第一连接的连接类型可以是UDP连接方式、TCP连接方式、ICMP连接方式、ARP连接方式,也可以是其他可用的连接方式,本发明并不限于此。
[0032]进一步地,第一判断模块包括:第一获取子模块,用于获取第一连接的数据收发信息;第一判断子模块,用于根据获取的第一连接的数据收发信息,判断第一连接是否数据收发正常,其中,当第一连接发送数据包后,在预定时间阈值内接收到响应数据包时,则判定第一连接数据收发正常,当第一连接发送数据包后,在预定时间阈值内没有接收到响应数据包时,则判定第一连接数据收发异常。
[0033]此外,在本发明的实施例中还提供了另一种确定TCP客户端与TCP服务端之间的网络状态是否恢复正常的可选的方案,可以通过TCP客户端和TCP服务端之间已有的其他连接的网络状态进行判断,具体来说,确定单元包括:第二判断模块,用于判断第二连接是否数据收发正常,其中,第二连接为在TCP连接数据发送失败前,TCP客户端与TCP服务端之间已存在的连接;第二确定模块,用于在第二连接数据收发正常时,确定TCP客户端与TCP服务端之间的网络状态恢复正常。优选地,第二连接的连接类型可以是UDP连接方式、TCP连接方式、ICMP连接方式、ARP连接方式,也可以是其他可用的连接方式,本发明并不限于此。
[0034]在第二判断模块判断第二连接是否数据收发正常时,可先获取第二连接的数据收发信息,根据获取的第二连接的数据收发信息,判断第二连接是否数据收发正常。当第二连接发送数据包后,在预定时间阈值内接收到响应数据包时,则判定第二连接数据收发正常,当第二连接发送数据包后,在预定时间阈值内没有接收到响应数据包时,则判定第二连接数据收发异常。
[0035]从以上描述中可以看出,本发明实现了如下技术效果:
本发明在TCP客户端与TCP服务端进行数据传输过程,当TCP连接数据发送失败进行超时重传等待时,会对TCP客户端与TCP服务端之间的网络状态进行检测,如果检测到网络状态恢复正常,设置TCP连接取消超时重传等待时间,立即进行数据重传。这种数据传输控制的方案可有效地解决现有技术中在TCP连接数据发送失败时,TCP连接数据需要等待重传定时器超时后才进行下一次重传导致数据发送恢复速度较慢的问题,保证在网络恢复时,TCP连接数据发送可以第一时间进行,提高了 TCP连接超时重传时的数据发送恢复速度,避免了宽带资源的闲置浪费,增加了数据传输的吞吐量,从而为基于TCP的应用程序提供更好的网络稳定性及网络响应能力。
[0036]应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
[0037]本申请可以应用于计算机系统/服务端,其可与众多其它通用或专用计算系统环境或配置一起操作。适于与计算机系统/服务端一起使用的众所周知的计算系统、环境和/或配置的例子包括但不限于:个人计算机系统、服务端计算机系统、瘦客户机、厚客户机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统、大型计算机系统和包括上述任何系统的分布式云计算技术环境,等等。
[0038]计算机系统/服务端可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括例程、程序、目标程序、组件、逻辑、数据结构等等,它们执行特定的任务或者实现特定的抽象数据类型。计算机系统/服务端可以在分布式云计算环境中实施,分布式云计算环境中,任务是由通过通信网络链接的远程处理设备执行的。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。
【权利要求】
1.一种数据传输控制方法,其特征在于,包括: 在TCP连接数据发送失败进行超时重传等待时,确定TCP客户端与TCP服务端之间的网络状态是否恢复正常; 若确定所述TCP客户端与TCP服务端之间的网络状态恢复正常,取消所述TCP连接数据的超时重传等待时间,直接进行数据重传。
2.如权利要求1所述的方法,其特征在于,所述确定TCP客户端与TCP服务端之间的网络状态是否恢复正常,包括: 判断第一连接是否数据收发正常,其中,所述第一连接为在TCP连接数据发送失败时,在所述TCP客户端与所述TCP服务端之间新建立的连接,所述第一连接持续有数据收发; 若所述第一连接数据收发正常,则确定TCP客户端与TCP服务端之间的网络状态恢复正常。
3.如权利要求2所述的方法,其特征在于,所述判断第一连接是否数据收发正常,包括: 获取所述第一连接的数据收发信息; 根据获取的所述第一连接的数据收发信息,判断所述第一连接是否数据收发正常,其中,当所述第一连接发送数据包后,在预定时间阈值内接收到响应数据包时,则判定所述第一连接数据收发正常,当所述第一连接发送数据包后,在预定时间阈值内没有接收到响应数据包时,则判定所述第一连接数据收发异常。
4.如权利要求2或3所述的方法,其特征在于,所述第一连接的连接方式包括以下之 UDP连接方式、TCP连接方式、ICMP连接方式、ARP连接方式。
5.如权利要求1所述的方法,其特征在于,所述确定TCP客户端与TCP服务端之间的网络状态是否恢复正常,包括: 判断第二连接是否数据收发正常,其中,所述第二连接为在TCP连接数据发送失败前,所述TCP客户端与所述TCP服务端之间已存在的连接; 若所述第二连接数据收发正常,则确定TCP客户端与TCP服务端之间的网络状态恢复正常。
6.如权利要求5所述的方法,其特征在于,所述第二连接的连接方式包括以下之一: UDP连接方式、TCP连接方式、ICMP连接方式、ARP连接方式。
7.一种数据传输控制装置,其特征在于,包括: 确定单元,用于在TCP连接数据发送失败进行超时重传等待时,确定TCP客户端与TCP服务端之间的网络状态是否恢复正常; 重传单元,用于在所述确定单元确定所述TCP客户端与TCP服务端之间的网络状态恢复正常时,取消所述TCP连接数据的超时重传等待时间,直接进行数据重传。
8.如权利要求7所述的装置,其特征在于,所述确定单元包括: 第一判断模块,用于判断第一连接是否数据收发正常,其中,所述第一连接为在TCP连接数据发送失败时,在所述TCP客户端与所述TCP服务端之间新建立的连接,所述第一连接持续有数据收发; 第一确定模块,用于在所述第一连接数据收发正常时,确定TCP客户端与TCP服务端之间的网络状态恢复正常。
9.如权利要求8所述的装置,其特征在于,所述第一判断模块包括: 第一获取子模块,用于获取所述第一连接的数据收发信息; 第一判断子模块,用于根据获取的所述第一连接的数据收发信息,判断所述第一连接是否数据收发正常,其中,当所述第一连接发送数据包后,在预定时间阈值内接收到响应数据包时,则判定所述第一连接数据收发正常,当所述第一连接发送数据包后,在预定时间阈值内没有接收到响应数据包时,则判定所述第一连接数据收发异常。
10.如权利要求7所述的装置,其特征在于,所述确定单元包括: 第二判断模块,用于判断第二连接是否数据收发正常,其中,所述第二连接为在TCP连接数据发送失败前,所述TCP客户端与所述TCP服务端之间已存在的连接; 第二确定模块,用于在所述第二连接数据收发正常时,确定TCP客户端与TCP服务端之间的网络状态恢复正常。
【文档编号】H04L1/18GK103929286SQ201410152333
【公开日】2014年7月16日 申请日期:2014年4月16日 优先权日:2014年4月16日
【发明者】常鹏 申请人:厦门市美亚柏科信息股份有限公司