CN107623562B - 数据传输方法、装置及电子设备 - Google Patents
数据传输方法、装置及电子设备 Download PDFInfo
- Publication number
- CN107623562B CN107623562B CN201710927426.5A CN201710927426A CN107623562B CN 107623562 B CN107623562 B CN 107623562B CN 201710927426 A CN201710927426 A CN 201710927426A CN 107623562 B CN107623562 B CN 107623562B
- Authority
- CN
- China
- Prior art keywords
- data
- timer information
- message
- information
- peer
- 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
Abstract
本发明提供了一种数据传输方法、装置及电子设备,涉及数据传输技术领域,该数据传输方法包括:接收数据报文,该数据报文中包括数据块号信息和对端计时器信息;如果接收到的当前数据报文中的数据块号信息,与已接收过的先前数据报文中的数据块号信息相同,则比较当前数据报文的对端计时器信息是否早于先前数据报文的对端计时器信息;如果是,则不发送数据确认报文。本发明实施例提供的数据传输方法、装置及电子设备,能够有效减少因网络阻塞或者时延导致的报文重复传输,提高传输可靠性及传输效率。
Description
技术领域
本发明涉及数据传输技术领域,尤其是涉及一种数据传输方法、装置及电子设备。
背景技术
TFTP(Trivial File Transfer Protocol,简单文件传输协议)是基于UDP(UserDatagram Protocol,用户数据报协议)之上建立的轻量级的文件传输协议,类似于FTP(File Transfer Protocol,文件传输协议)但仅支持文件上传和下载功能,并不包含FTP中的目录操作和用户权限等内容。TFTP经常使用在安全性要求不高,传输文件较小的环境。尤其是企业内部网络管理系统中,使用频率非常高,主要用于网络设备软件备份、升级以及配置文件的备份和下发等。
TFTP虽然基于UDP,但每个数据包都有确认机制,可以实现一定程度的可靠性。但是超时处理机制并不完善,RFC(Request For Comments,请求评议)文件中并没有给出详细的处理机制说明。尤其是极端异常的情况下,当前的超时重传机制容易导致TFTP服务器和客户端之间大量报文重复传输,导致带宽浪费以及传输效率低下。
比如,某TFTP客户端(IP地址183.43.0.52)超时时间为7秒,因为某些原因(比如网络延时),TFTP服务器(IP地址183.43.0.40)在15秒后才发送数据块号1600的数据块(以下简称数据块1600)的确认报文给该客户端,导致该客户端重传2次该数据块1600,最终TFTP服务器收到了3个数据块1600,并且一一发送确认报文给TFTP客户端。该客户端响应第一个确认报文后,立即发送下一个数据块1601给TFTP服务器,但因为紧接着收到了TFTP服务器对数据块1600的确认,TFTP客户端认为TFTP服务器没有收到数据块1601,所以再次重传数据块1601。此后TFTP客户端和服务器就进入一个不断重传的交互过程。尤其,当网络时延间歇性存在时,重传的次数将不断递增而严重降低传输效率,甚至导致传输失败。
发明内容
有鉴于此,本发明的目的在于提供一种数据传输方法、装置及电子设备,以有效减少因网络阻塞或者时延导致的报文重复传输,提高传输可靠性及传输效率。
第一方面,本发明实施例提供了一种数据传输方法,包括:
接收数据报文,所述数据报文中包括数据块号信息和对端计时器信息;
如果接收到的当前数据报文中的数据块号信息,与已接收过的先前数据报文中的数据块号信息相同,则比较所述当前数据报文的对端计时器信息是否早于所述先前数据报文的对端计时器信息;
如果是,则不发送数据确认报文。
结合第一方面,本发明实施例提供了第一方面的第一种可能的实施方式,其中,在比较所述当前数据报文的对端计时器信息是否早于所述先前数据报文的对端计时器信息之后,还包括:
如果否,则比较当前的本端计时器信息与前一次数据确认报文的本端计时器信息之差,是否小于对端超时时间;
如果是,则不发送数据确认报文;
如果否,则发送数据确认报文。
结合第一方面,本发明实施例提供了第一方面的第二种可能的实施方式,其中,在比较所述当前数据报文的对端计时器信息是否早于所述先前数据报文的对端计时器信息之后,还包括:
如果否,则比较当前的本端计时器信息与前一次数据确认报文的本端计时器信息之差,是否小于本端超时时间;
如果是,则不发送数据确认报文;
如果否,则发送数据确认报文。
结合第一方面的第一种和第二种可能的实施方式,本发明实施例提供了第一方面的第三种可能的实施方式,其中,所述数据确认报文中包括数据块号信息和本端计时器信息。
结合第一方面,本发明实施例提供了第一方面的第四种可能的实施方式,其中,在所述接收数据报文之前,还包括:
发送读写请求报文,所述读写请求报文中包括格式请求字符串;
所述格式请求字符串用于携带表示本端支持发送包含本端计时器信息的数据报文的信息。
第二方面,本发明实施例还提供一种数据传输装置,包括:
数据接收模块,用于接收数据报文,所述数据报文中包括数据块号信息和对端计时器信息;
信息对比模块,用于当接收到的当前数据报文中的数据块号信息,与已接收过的先前数据报文中的数据块号信息相同时,比较所述当前数据报文的对端计时器信息是否早于所述先前数据报文的对端计时器信息;
第一拒绝发送模块,用于当所述当前数据报文的对端计时器信息早于所述先前数据报文的对端计时器信息时,不发送数据确认报文。
结合第二方面,本发明实施例提供了第二方面的第一种可能的实施方式,其中,还包括:
差值比较模块,用于当所述当前数据报文的对端计时器信息晚于所述先前数据报文的对端计时器信息,或者与所述先前数据报文的对端计时器信息相同时,比较当前的本端计时器信息与前一次数据确认报文的本端计时器信息之差,是否小于对端超时时间;
第二拒绝发送模块,用于当当前的本端计时器信息与前一次数据确认报文的本端计时器信息之差,小于对端超时时间时,不发送数据确认报文;
确认发送模块,用于当当前的本端计时器信息与前一次数据确认报文的本端计时器信息之差,大于等于对端超时时间时,发送数据确认报文。
结合第二方面,本发明实施例提供了第二方面的第二种可能的实施方式,其中,还包括:
所述差值比较模块,还用于当所述当前数据报文的对端计时器信息晚于所述先前数据报文的对端计时器信息,或者与所述先前数据报文的对端计时器信息相同时,比较当前的本端计时器信息与前一次数据确认报文的本端计时器信息之差,是否小于本端超时时间;
所述第二拒绝发送模块,还用于当当前的本端计时器信息与前一次数据确认报文的本端计时器信息之差,小于对端超时时间时,不发送数据确认报文;
所述确认发送模块,还用于当当前的本端计时器信息与前一次数据确认报文的本端计时器信息之差,大于等于对端超时时间时,发送数据确认报文。
结合第二方面的第一种和第二种可能的实施方式,本发明实施例提供了第二方面的第三种可能的实施方式,其中,所述数据确认报文中包括数据块号信息和本端计时器信息。
结合第二方面,本发明实施例提供了第二方面的第四种可能的实施方式,其中,还包括:
请求发送模块,用于发送读写请求报文,所述读写请求报文中包括格式请求字符串;
所述格式请求字符串用于携带表示本端支持发送包含本端计时器信息的数据报文的信息。
第三方面,本发明实施例还提供一种电子设备,包括存储器、处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述第一方面所述的方法的步骤。
本发明实施例带来了以下有益效果:
在本发明提供的实施例中,在数据传输过程中,根据接收到的数据报文中增加的计时器信息,判断是否需要发送数据确认报文,从而防止出现因超时重发机制或网络阻塞等原因导致的大量数据报文重发的现象,改善数据传输性能,有效减少因网络阻塞或者时延导致的报文重复传输,提高传输可靠性及传输效率。
本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的数据传输方法的第一种流程示意图;
图2为本发明实施例提供的数据传输方法的第二种流程示意图;
图3为本发明实施例提供的数据报文传输过程的流程示意图;
图4为本发明实施例提供的数据传输装置的结构示意图;
图5为本发明实施例提供的电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
目前当前的超时重传机制容易导致TFTP服务器和客户端之间大量报文重复传输,导致带宽浪费以及传输效率低下。基于此,本发明实施例提供的一种数据传输方法、装置及电子设备,可以有效减少因网络阻塞或者时延导致的报文重复传输,提高传输可靠性及传输效率。
为便于对本实施例进行理解,首先对本发明实施例所公开的一种数据传输方法进行详细介绍。
实施例一:
本发明提供的实施例中,首先定义了本地计时器的概念,描述如下:
本地计时器:本地计时器是以数据传输连接建立时刻为时间基点的计时器,用于记录本地最新发送的报文相对时间基点的时间差,以识别客户端或者服务器端的报文发送顺序。比如,在写请求报文操作中,客户端的计时器时间基点可以设定为发送第一个数据报文至服务器的时刻,服务器的计时器时间基点可以设定为发送第一个数据确认报文至客户端的时刻。
为了便于清楚的描述数据传输过程,在本实施例中,将接收数据报文的接收方称为本端,本端的本地计时器称为本端计时器;发送数据报文的发送方称为对端,对端的本地计时器称为对端计时器。下面将定义的上述概念应用于以下描述的方法中。
图1示出了本发明实施例提供的数据传输方法的第一种流程示意图。如图1所示,该数据传输方法包括:
步骤S101,接收数据报文,该数据报文中包括数据块号信息和对端计时器信息。
其中,数据块号信息作为数据报文的唯一标识,用于区别不同的数据报文。在一个实施例中,数据块号信息可以为数字编号,如1600、1601。
步骤S102,如果接收到的当前数据报文中的数据块号信息,与已接收过的先前数据报文中的数据块号信息相同,则比较当前数据报文的对端计时器信息是否早于先前数据报文的对端计时器信息。
当前数据报文即步骤S101中目前接收到的数据报文,已接收过的先前数据报文指的是在步骤S101前接收到的对端发送的数据报文。
若当前接收到的数据报文的数据块号信息与已接收的先前数据报文相同,则说明对端重复传输了数据报文。但由于对端先发送的数据报文,并不一定先到达本端,有可能存在后发先至的问题,因而可以根据数据报文中携带的计时器信息确定对端发送报文的时刻。
步骤S103,如果当前数据报文的对端计时器信息早于先前数据报文的对端计时器信息,则不发送数据确认报文。
如果当前数据报文的对端计时器信息早于先前数据报文的对端计时器信息,则说明当前数据报文为先发送却后到达本端的数据报文,因此不再重复响应。
在数据传输过程中,根据接收到的数据报文中增加的计时器信息,判断是否需要发送数据确认报文,从而防止出现因超时重发机制或网络阻塞等原因导致的大量数据报文重发的现象,改善数据传输性能,有效减少因网络阻塞或者时延导致的报文重复传输,提高传输可靠性及传输效率。
实施例二:
本发明提供的实施例中,首先定义了本地计时器、客户端超时时间、服务器超时时间等概念,其中,本地计时器的定义与实施例一中的定义相同,这里不再赘述。为了便于描述,客户端本地计时器记为LTC,服务器本地计时器记为LTS。
客户端超时时间、服务器超时时间描述如下:
客户端超时时间(简称TC):客户端设定的超时时间,若超过该时间未收到服务器响应,则启动重传。
服务器超时时间(简称TS):服务器设定的超时时间,若超过该时间未收到客户端响应,则启动重传。
其中,由于客户端和服务器可以由不同的厂商自定义超时时间,因而二者的超时时间不一定相同。
为了便于清楚的描述数据传输过程,在本实施例中,将接收数据报文的接收方称为本端,本端的本地计时器称为本端计时器;发送数据报文的发送方称为对端,对端的本地计时器称为对端计时器。下面将定义的上述概念应用于以下描述的方法中,并以TFTP传输过程为例进行说明。
图2示出了本发明实施例提供的数据传输方法的第二种流程示意图。如图2所示,该数据传输方法包括:
步骤S201,发送读写请求报文,该读写请求报文中包括格式请求字符串。
其中格式请求字符串用于携带表示本端支持发送包含本端计时器信息的数据报文的信息。在本实施例中,该数据传输方法不限于进行读写操作的读写请求报文,也可以是其他操作对应的请求报文。
在具体的实现过程中,在TFTP协议的读写请求报文中增加本地计时器支持字段,在数据报文(表示为DATA)、数据确认报文(表示为ACK)中增加本地计时器信息字段。
在一个实施例中,可以在读写请求报文的尾部添加可变长字符串(表示为LocalTimeFlag)作为格式请求字符串,以表达是否支持传输本地计时器信息。
变化后的读写请求报文的格式具体表示如下:
|Opcode|Filename|0|Mode|0|LocalTimeFlag|0
其中,Opcode表示操作码,Filename表示待读写的文件名称,mode 表示文件传输模式。读写请求报文格式由当前(即现有技术中)“2bytes(字节)string(字符串)1bytestring 1byte”变更为“2bytes string 1byte string 1byte string 1byte”。
例如,若LocalTimeFlag赋值为“yes”,表明本端支持传输本地计时器信息。此时,若对端不支持传输本地计时器信息或不支持此字段,则会回复错误代码给本端,本端以原格式(现有技术中的格式)重新发起数据传输连接。通过上述方式可兼容不支持传输本地计时器信息的TFTP协议版本。
步骤S202,接收数据报文,该数据报文中包括数据块号信息和对端计时器信息。
在具体的实现过程中,可以在数据报文的操作码(表示为Opcode)之后,添加本地计时器信息字段。数据报文的格式由当前(即现有技术中)“2bytes 2bytes n bytes”变更为“2bytes 2bytes 2bytes n bytes”。在一个实施例中,变化后的格式具体表示如下,|Opcode|LocalTime|Block#|Data|,其中,LocalTime表示本地计时器信息(即对端计时器信息),Block#表示数据块号信息。
具体地,在接收到对端的数据报文后,记录数据报文中的数据块号信息与对端计时器信息,同时记录收到对端的数据报文时的本端计时器信息。
步骤S203,如果接收到的当前数据报文中的数据块号信息,与已接收过的先前数据报文中的数据块号信息相同,则比较当前数据报文的对端计时器信息是否早于先前数据报文的对端计时器信息。
具体地,对比当前数据报文中的数据块号信息与之前已接收到的先前数据报文中的数据块号信息,如果两者的数据块号信息相同,则需要读取先前数据报文的对端计时器信息;如果当前数据报文的对端计时器信息早于先前数据报文的对端计时器信息,则确定是对端先发而后到的数据报文,无需重复响应(即再次发送数据确认报文),执行步骤S206;反之,则执行步骤S204。
另外,在当前数据报文的对端计时器信息晚于先前数据报文的对端计时器信息的情况下,可以判断当前数据报文是否为对端超时重发报文,具体为:计算当前数据报文的对端计时器信息与先前数据报文的对端计时器信息之间的时间差,如果该时间差大于对端超时时间,则可以确定当前数据报文为对端超时重发报文。
步骤S204,比较当前的本端计时器信息与前一次数据确认报文的本端计时器信息之差,是否小于对端超时时间。
具体地,如果当前数据报文的对端计时器信息晚于先前数据报文的对端计时器信息,则说明当前数据报文为重发报文,为避免出现由于本端在对端超时时间内多次发送数据确认报文,而导致接收更多重复报文的情况,需要比较当前的本端计时器信息与前一次数据确认报文的本端计时器信息之差,判断该差是否小于对端超时时间。
如果该差小于对端超时时间,则确定在对端超时时间内已发送过数据确认报文,为避免产生更多的重复报文,不需要重复响应即不再发送数据确认报文,执行步骤S206。如果该差大于等于对端超时时间,则存在先前发送的数据确认报文丢失的现象,需要再次发送数据确认报文,执行步骤S207。
另外,在进行步骤S204时,作为步骤S204的替换方案,或者,也可以在步骤S204的基础上同步进行以下步骤:
步骤S205,比较当前的本端计时器信息与前一次数据确认报文的本端计时器信息之差,是否小于本端超时时间。
具体地,如果当前数据报文的对端计时器信息晚于先前数据报文的对端计时器信息,则说明当前数据报文为重发报文,为避免出现由于本端在对端超时时间内多次发送数据确认报文,而导致接收更多重复报文的情况,需要比较当前的本端计时器信息与前一次数据确认报文的本端计时器信息之差,判断该差是否小于本端超时时间。
如果该差小于本端超时时间,则确定在本端超时时间内已发送过数据确认报文,因此基于本端超时时间的工作原理,不需要重复响应即不再发送数据确认报文,执行步骤S206。如果该差等于本端超时时间,则存在先前发送的数据确认报文丢失的现象,需要再次发送数据确认报文,执行步骤S207。
上述实例是对超时重发报文进行是否发送数据确认报文进行判断,而对于网络阻塞等其他原因发生的重发报文,同样也可以通过步骤S204和/或步骤S205进行判断。
步骤S206,确定不发送数据确认报文。
步骤S207,确定发送数据确认报文。
在具体的实现过程中,可以在数据确认报文的操作代码之后,添加本地计时器信息字段和数据块号信息。数据确认报文的格式由当前(即现有技术中)报文格式由“2bytes2bytes”变更为“2bytes 2bytes 2bytes”。在一个实施例中,变化后的格式具体表示如下,|Opcode|LocalTime|Block#|。其中,数据确认报文中包括数据块号信息和本端计时器信息。具体地,在本端发送数据确认报文后,记录本端计时器信息。
在数据传输过程中,根据接收到的数据报文中增加的计时器信息,可以判断出该数据报文是否为对端先发而后到的数据报文或者超时重发报文。对于先发而后到的数据报文,不再重复响应,而对于超时重发报文,如果在对端超时时间内已响应过,则同样不再重复响应,从而防止出现因超时重发机制或网络阻塞等原因导致的大量数据报文重发的现象,改善数据传输性能,有效减少因网络阻塞或者时延导致的报文重复传输,提高传输可靠性及传输效率。
为了便于理解,下面以TFTP客户端(本端)从服务器(对端)读取数据为例,阐述本方法计算步骤。参见图3(其中,读请求报文表示为RRQ且图中仅标注本方法中需要的参数,其他参数未标出),客户端在接收数据块N时,出现重复数据报文。在客户端连续收到的服务器发送的同一个数据块N的数据报文中,对于第一个数据报文(服务器计时器信息为LTS(N,1)立即发送该数据确认报文;对于接收到的第二个数据报文(服务器计时器信息为LTS(N,2)开始的重复报文,需要根据服务器本地计时器信息和服务器超时时间,以及客户端本地计时器信息进行综合计算,确认是否重复发送该数据报文的数据确认报文。具体过程如下:
(1)客户端连续收到服务器发送的三个数据块信息为N的数据报文后,立即发送数据确认报文给服务器,以对第一个数据块信息为N的数据报文(简称第一数据报文)进行响应,针对第一数据报文的响应报文,为了便于表述,本实施例中记为第一数据确认报文。客户端获取三个数据报文(第一数据报文、第二数据报文、第三数据报文)携带的服务器的计时器信息,并记录该服务器计时器信息LTS(N,1)、LTS(N,2)、LTS(N,3);同时,客户端记录本端发送第一数据确认报文的本端计时器信息LTC(N,1)及数据块信息N。
(2)客户端处理第二个数据块信息为N的数据报文(即第二数据报文)时,若LTS(N,2)<LTS(N,1),说明当前数据报文(即第二数据报文)比先前数据报文(即第一数据报文)更早,无需再重发该第二数据报文的确认报文。
若LTS(N,2)≥LTS(N,1),说明当前数据报文与先前数据报文相比,在时间上来说是更新的报文,此时计算二者之差,若(LTS(N,2)–LTS(N,1))≥TS,说明此数据报文为服务器超时重发数据报文。
在LTS(N,2)≥LTS(N,1)的情况下,计算当前的客户端计时器信息LTC(N,2)与记录的前一个数据确认报文的客户端计时器信息LTC(N,1)之差,将该差记为T,若T<TS,则说明在对端超时时间内已发送过数据确认报文,为避免产生更多的重复报文,不再发送第二数据报文的数据确认报文。若T≥TS,则说明可能存在先前发送的数据确认报文丢失的现象,此时需要发送第二数据报文的数据确认报文。
(3)在LTS(N,2)≥LTS(N,1)的情况下,还可以将T与TC进行比较。若T<TC,则说明在本端超时时间内已发送过数据确认报文,为避免产生更多的重复报文,不再发送第二数据报文的数据确认报文。若T=TC,则说明可能存在先前发送的数据确认报文丢失的现象,此时需要发送第二数据报文的数据确认报文。基于TC的工作原理,即使未收到第二个数据块信息为N的数据报文,当客户端计时器到达TC时,也会自动发送数据确认报文,因此通常不会出现T>TC的情况。
(4)对后续数据块信息为N的数据报文按照上述(2)和/或(3)步骤做同样处理。这样即可大大减少因网络阻塞或者时延导致的某一方连续收到多个相同的数据报文后的重复触发。
进一步地,当服务器从TFTP客户端读取数据时,服务器作为本端,TFTP作为对端,读取过程与上述TFTP客户端(本端)从服务器(对端)读取数据类似,仅需要将服务器和TFTP客户端对换,LTS与LTC对换,TS和TC对换。
综上所述,本发明提供的数据传输方法具有以下特点:
(a)发送方通过传递本地计时器信息的方式让接收方识别TFTP报文发送顺序,辅助对端进行时序处理,提高传输可靠性,降低重复报文出现概率。
(b)发送方通过传递本地计时器信息的方式让接收方可轻易计算并判定收到的重传报文是否超时重传数据报文。
(c)接收方以一个数据确认报文响应发送方超时时间内收到的多个重传数据报文,防止重复数据报文产生。
实施例三:
图4示出了本发明实施例提供的数据传输装置的结构示意图。如图4所示,该数据传输装置包括:
数据接收模块11,用于接收数据报文,该数据报文中包括数据块号信息和对端计时器信息;
信息对比模块12,用于当接收到的当前数据报文中的数据块号信息,与已接收过的先前数据报文中的数据块号信息相同时,比较当前数据报文的对端计时器信息是否早于先前数据报文的对端计时器信息;
第一拒绝发送模块13,用于当当前数据报文的对端计时器信息早于先前数据报文的对端计时器信息时,不发送数据确认报文。
进一步地,上述装置还包括:
差值比较模块,用于当当前数据报文的对端计时器信息晚于先前数据报文的对端计时器信息,或者与先前数据报文的对端计时器信息相同时,比较当前的本端计时器信息与前一次数据确认报文的本端计时器信息之差,是否小于对端超时时间;
第二拒绝发送模块,用于当当前的本端计时器信息与前一次数据确认报文的本端计时器信息之差,小于对端超时时间时,不发送数据确认报文;
确认发送模块,用于当当前的本端计时器信息与前一次数据确认报文的本端计时器信息之差,大于等于对端超时时间时,发送数据确认报文。
进一步地,差值比较模块,还用于当当前数据报文的对端计时器信息晚于先前数据报文的对端计时器信息,或者与先前数据报文的对端计时器信息相同时,比较当前的本端计时器信息与前一次数据确认报文的本端计时器信息之差,是否小于本端超时时间;
第二拒绝发送模块,还用于当当前的本端计时器信息与前一次数据确认报文的本端计时器信息之差,小于对端超时时间时,不发送数据确认报文;
确认发送模块,还用于当当前的本端计时器信息与前一次数据确认报文的本端计时器信息之差,大于等于对端超时时间时,发送数据确认报文。
进一步地,上述数据确认报文中包括数据块号信息和本端计时器信息。
进一步地,上述装置还包括:
请求发送模块,用于发送读写请求报文,该读写请求报文中包括格式请求字符串。其中该格式请求字符串用于携带表示本端支持发送包含本端计时器信息的数据报文的信息。
在数据传输过程中,根据接收到的数据报文中增加的计时器信息,判断是否需要发送数据确认报文,从而防止出现因超时重发机制或网络阻塞等原因导致的大量数据报文重发的现象,改善数据传输性能,有效减少因网络阻塞或者时延导致的报文重复传输,提高传输可靠性及传输效率。
实施例四:
参见图5,本发明实施例还提供一种电子设备100,其中,该电子设备100可以为终端设备,也可以为服务器,包括:处理器40,存储器41,总线42和通信接口43,所述处理器40、通信接口43和存储器41通过总线42连接;处理器40用于执行存储器41中存储的可执行模块,例如计算机程序。
其中,存储器41可能包含高速随机存取存储器(RAM,RandomAccessMemory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口43(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。
总线42可以是ISA总线、PCI总线或EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
其中,存储器41用于存储程序,所述处理器40在接收到执行指令后,执行所述程序,前述本发明实施例任一实施例揭示的流过程定义的装置所执行的方法可以应用于处理器40中,或者由处理器40实现。
处理器40可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器40中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器40可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital SignalProcessing,简称DSP)、专用集成电路(Application Specific Integrated Circuit,简称ASIC)、现成可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器41,处理器40读取存储器41中的信息,结合其硬件完成上述方法的步骤。
本发明实施例提供的数据传输装置及电子设备,与上述实施例提供的数据传输方法具有相同的技术特征,所以也能解决相同的技术问题,达到相同的技术效果。
本发明实施例所提供的进行数据传输方法的计算机程序产品,包括存储了处理器可执行的非易失的程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置及电子设备的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
附图中的流程图和框图显示了根据本发明的多个实施例方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (11)
1.一种数据传输方法,其特征在于,包括:
接收数据报文,所述数据报文中包括数据块号信息和对端计时器信息;所述对端计时器信息包括对端发送所述数据报文的时刻信息;所述对端为发送数据报文的发送方;
如果接收到的当前数据报文中的数据块号信息,与已接收过的先前数据报文中的数据块号信息相同,则比较所述当前数据报文的对端计时器信息是否早于所述先前数据报文的对端计时器信息;
如果是,则不发送数据确认报文。
2.根据权利要求1所述的方法,其特征在于,在比较所述当前数据报文的对端计时器信息是否早于所述先前数据报文的对端计时器信息之后,还包括:
如果否,则比较当前的本端计时器信息与前一次数据确认报文的本端计时器信息之差,是否小于对端超时时间;
如果是,则不发送数据确认报文;
如果否,则发送数据确认报文。
3.根据权利要求1所述的方法,其特征在于,在比较所述当前数据报文的对端计时器信息是否早于所述先前数据报文的对端计时器信息之后,还包括:
如果否,则比较当前的本端计时器信息与前一次数据确认报文的本端计时器信息之差,是否小于本端超时时间;
如果是,则不发送数据确认报文;
如果否,则发送数据确认报文。
4.根据权利要求2或3所述的方法,其特征在于,所述数据确认报文中包括数据块号信息和本端计时器信息。
5.根据权利要求1所述的方法,其特征在于,在所述接收数据报文之前,还包括:
发送读写请求报文,所述读写请求报文中包括格式请求字符串;
所述格式请求字符串用于携带表示本端支持发送包含本端计时器信息的数据报文的信息。
6.一种数据传输装置,其特征在于,包括:
数据接收模块,用于接收数据报文,所述数据报文中包括数据块号信息和对端计时器信息;
信息对比模块,用于当接收到的当前数据报文中的数据块号信息,与已接收过的先前数据报文中的数据块号信息相同时,比较所述当前数据报文的对端计时器信息是否早于所述先前数据报文的对端计时器信息;
第一拒绝发送模块,用于当所述当前数据报文的对端计时器信息早于所述先前数据报文的对端计时器信息时,不发送数据确认报文。
7.根据权利要求6所述的装置,其特征在于,还包括:
差值比较模块,用于当所述当前数据报文的对端计时器信息晚于所述先前数据报文的对端计时器信息,或者与所述先前数据报文的对端计时器信息相同时,比较当前的本端计时器信息与前一次数据确认报文的本端计时器信息之差,是否小于对端超时时间;
第二拒绝发送模块,用于当当前的本端计时器信息与前一次数据确认报文的本端计时器信息之差,小于对端超时时间时,不发送数据确认报文;
确认发送模块,用于当当前的本端计时器信息与前一次数据确认报文的本端计时器信息之差,大于等于对端超时时间时,发送数据确认报文。
8.根据权利要求7所述的装置,其特征在于,
所述差值比较模块,还用于当所述当前数据报文的对端计时器信息晚于所述先前数据报文的对端计时器信息,或者与所述先前数据报文的对端计时器信息相同时,比较当前的本端计时器信息与前一次数据确认报文的本端计时器信息之差,是否小于本端超时时间;
所述第二拒绝发送模块,还用于当当前的本端计时器信息与前一次数据确认报文的本端计时器信息之差,小于对端超时时间时,不发送数据确认报文;
所述确认发送模块,还用于当当前的本端计时器信息与前一次数据确认报文的本端计时器信息之差,大于等于对端超时时间时,发送数据确认报文。
9.根据权利要求7或8所述的装置,其特征在于,所述数据确认报文中包括数据块号信息和本端计时器信息。
10.根据权利要求6所述的装置,其特征在于,还包括:
请求发送模块,用于发送读写请求报文,所述读写请求报文中包括格式请求字符串;
所述格式请求字符串用于携带表示本端支持发送包含本端计时器信息的数据报文的信息。
11.一种电子设备,包括存储器、处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现上述权利要求1至5任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710927426.5A CN107623562B (zh) | 2017-09-30 | 2017-09-30 | 数据传输方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710927426.5A CN107623562B (zh) | 2017-09-30 | 2017-09-30 | 数据传输方法、装置及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107623562A CN107623562A (zh) | 2018-01-23 |
CN107623562B true CN107623562B (zh) | 2021-05-07 |
Family
ID=61091460
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710927426.5A Active CN107623562B (zh) | 2017-09-30 | 2017-09-30 | 数据传输方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107623562B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116824724A (zh) * | 2023-08-30 | 2023-09-29 | 深圳市永兴元科技股份有限公司 | 网络打卡计时管理方法、装置、设备及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101547070A (zh) * | 2008-03-24 | 2009-09-30 | 华为技术有限公司 | 一种数据包类型的判断方法及其装置 |
CN101662700A (zh) * | 2009-08-28 | 2010-03-03 | 中兴通讯股份有限公司 | 一种信令消息传递方法及系统 |
CN102694631A (zh) * | 2012-05-23 | 2012-09-26 | 华为技术有限公司 | 一种用于控制数据传输的方法和装置 |
CN103636157A (zh) * | 2013-06-20 | 2014-03-12 | 华为技术有限公司 | 一种ack信息的发送方法及装置 |
CN104104608A (zh) * | 2013-04-15 | 2014-10-15 | 华为技术有限公司 | 接收报文的方法及装置 |
CN104995950A (zh) * | 2014-06-25 | 2015-10-21 | 华为技术有限公司 | 一种数据传输方法及设备 |
US9578640B1 (en) * | 2013-09-30 | 2017-02-21 | Sprint Spectrum L.P. | Dynamic provision of hybrid-ARQ repetition factor based on subscription service class |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
ES2257724T3 (es) * | 2004-01-06 | 2006-08-01 | Alcatel | Emisor-receptor de multiples portadoras con reconfiguracion en linea segura. |
CN101932052B (zh) * | 2009-06-23 | 2016-08-24 | 华为技术有限公司 | 一种切换方法、用户终端及网络侧设备 |
CN102118236B (zh) * | 2009-12-31 | 2014-04-02 | 华为技术有限公司 | 一种基于竞争资源的反馈方法和装置 |
CN103607743A (zh) * | 2013-12-03 | 2014-02-26 | 无锡儒安科技有限公司 | 机会路由方法、发送端和接收端无线传感器网络节点 |
CN105744622B (zh) * | 2014-12-09 | 2020-05-29 | 上海新岸线电子技术有限公司 | 数据发送方法及装置 |
-
2017
- 2017-09-30 CN CN201710927426.5A patent/CN107623562B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101547070A (zh) * | 2008-03-24 | 2009-09-30 | 华为技术有限公司 | 一种数据包类型的判断方法及其装置 |
CN101662700A (zh) * | 2009-08-28 | 2010-03-03 | 中兴通讯股份有限公司 | 一种信令消息传递方法及系统 |
CN102694631A (zh) * | 2012-05-23 | 2012-09-26 | 华为技术有限公司 | 一种用于控制数据传输的方法和装置 |
CN104104608A (zh) * | 2013-04-15 | 2014-10-15 | 华为技术有限公司 | 接收报文的方法及装置 |
CN103636157A (zh) * | 2013-06-20 | 2014-03-12 | 华为技术有限公司 | 一种ack信息的发送方法及装置 |
US9578640B1 (en) * | 2013-09-30 | 2017-02-21 | Sprint Spectrum L.P. | Dynamic provision of hybrid-ARQ repetition factor based on subscription service class |
CN104995950A (zh) * | 2014-06-25 | 2015-10-21 | 华为技术有限公司 | 一种数据传输方法及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN107623562A (zh) | 2018-01-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4906295B2 (ja) | レートを同期させたクロックを使用した高信頼メッセージング | |
CN109412946B (zh) | 一种确定回源路径的方法、装置、服务器及可读存储介质 | |
US7496038B2 (en) | Method for faster detection and retransmission of lost TCP segments | |
CN111371631B (zh) | 一种心跳机制检测方法、终端设备和存储介质 | |
JP5867188B2 (ja) | 情報処理装置、輻輳制御方法および輻輳制御プログラム | |
CN109245955B (zh) | 一种数据处理方法、装置及服务器 | |
JP2014524092A (ja) | 単一ソケットポイントツーマルチポイント性能による高信頼性仮想双方向データストリーム通信のためのシステムおよび方法 | |
JP2019506072A (ja) | データ伝送方法および関連するデバイス | |
JP3966711B2 (ja) | 代理応答方法 | |
CN104025550B (zh) | 从数据项获得信息的方法及装置 | |
EP2978171A1 (en) | Communication method, communication device, and communication program | |
EP2692115B1 (en) | Sctp endpoint migration | |
CN111970208A (zh) | 网络传输方法、装置、设备及计算机可读存储介质 | |
WO2009109375A1 (en) | Method and apparatus for managing transmission of tcp data segments | |
US20150067066A1 (en) | Provisioning Communication Services using Proxy Server in a Cloud | |
CN114363351B (zh) | 一种代理连接抑制方法、网络架构及代理服务器 | |
CN107623562B (zh) | 数据传输方法、装置及电子设备 | |
US7535916B2 (en) | Method for sharing a transport connection across a multi-processor platform with limited inter-processor communications | |
CN107786607B (zh) | 一种消息重传方法、消息重传服务器及用户设备 | |
WO2016196486A1 (en) | Systems and methods for improved trivial file transfer protocol | |
TWI740210B (zh) | 終端設備管理方法及伺服器 | |
CN107733903B (zh) | 一种基于udp的数据传输确认方法和基站 | |
CN114422573A (zh) | 报文发送方法及装置、存储介质及电子装置 | |
CN107548105B (zh) | 一种基于udp的数据传输确认方法和基站 | |
WO2018223981A1 (zh) | 一种软件下载方法、装置及基站 |
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 |