一种文件传输方法、装置、系统及电子设备与流程

文档序号:20916650发布日期:2020-05-29 13:36阅读:123来源:国知局
一种文件传输方法、装置、系统及电子设备与流程

本发明涉及计算机网络技术领域,特别是涉及一种文件传输方法、装置、系统及电子设备。



背景技术:

ftp(filetransferprotocol,文件传输协议)为标准的应用层协议,在ftp中规定传输层使用两条tcp(transmissioncontrolprotocol,传输控制协议)连接来完成文件传输的任务,其中一条tcp连接用来交互控制指令(比如待传输文件的文件名、文件列表等),另外一条tcp连接用来传输待传输文件的数据报文。

tcp作为网络传输层的可靠传输协议,可以保证接收端收到的数据报文是有序到达的,同时可以自动处理丢包重传。发送端每发送一个数据报文,若接收端成功接收到该数据报文,则会回复一个确认报文,如果发送端在预设时间内未接收到确认报文,则认为该数据报文在传输过程中丢失,需重传该数据报文。

然而,由于网络环境越来越复杂,tcp传输中判断数据报文是否丢失,依赖于接收端回复的确认报文,在高延迟、高丢包率的网络环境中,接收端在回复确认报文时也有可能发生确认报文的丢失。如果确认报文丢失,即使接收端成功接收到数据报文,发送端仍然会因为未接收到确认报文而认为数据报文丢失,则会重传该数据报文,导致不必要的数据报文重传,浪费网络带宽资源,影响网络传输效率。



技术实现要素:

本发明实施例的目的在于提供一种文件传输方法、装置、系统及电子设备,以避免网络带宽资源的浪费、提高网络传输效率。具体技术方案如下:

第一方面,本发明实施例提供了一种文件传输方法,应用于发送端,所述方法包括:

采用预设的传输层非可靠传输协议,通过目标接口,发送各待传输数据报文至接收端,所述目标接口为在与所述接收端建立传输控制协议tcp连接时确定的用于传输待传输文件的接口,所述待传输数据报文包括所述待传输文件的分片数据;

在确定各待传输数据报文发送完毕后,获取所述接收端反馈的所述待传输文件的分片丢失信息;

根据所述接收端反馈的分片丢失信息,确定所述待传输文件的分片数据中待重传的分片数据;

采用所述传输层非可靠传输协议,通过所述目标接口,发送包括所述待重传的分片数据的待传输数据报文至所述接收端。

可选的,所述采用预设的传输层非可靠传输协议,通过目标接口,发送各待传输数据报文至接收端,包括:

采用预设的传输层非可靠传输协议,按照预设速率,通过目标接口,发送各待传输数据报文至接收端。

可选的,所述传输层非可靠传输协议包括用户传输协议udp;所述目标接口包括udp套接字;

所述目标接口的确定方式,包括:

在与所述接收端建立tcp连接时,获取所述接收端的第一ip地址及所述接收端分配的第一udp协议端口号;

获取所述发送端自身的第二ip地址,并分配第二udp协议端口号;

确定包括所述udp、所述第一ip地址、所述第一udp协议端口号、所述第二ip地址及所述第二udp协议端口号的udp套接字;

确定所述udp套接字为目标接口;

所述采用预设的传输层非可靠传输协议,通过目标接口,发送各待传输数据报文至接收端,包括:

通过所述udp套接字,发送各待传输数据报文至所述接收端。

可选的,在所述确定各待传输数据报文发送完毕之前,所述方法还包括:

接收由所述接收端周期性反馈的所述待传输文件的分片丢失信息;

所述在确定各待传输数据报文发送完毕后,获取所述接收端反馈的所述待传输文件的分片丢失信息,包括:

在确定各待传输数据报文发送完毕后,获取已接收到的分片丢失信息中最新接收到的分片丢失信息。

可选的,所述分片丢失信息中包括未被所述接收端成功接收的分片数据的第一标识信息;

所述根据所述接收端反馈的分片丢失信息,确定所述待传输文件的分片数据中待重传的分片数据,包括:

根据所述接收端反馈的分片丢失信息中的第一标识信息,确定所述待传输文件的分片数据中未被所述接收端成功接收的分片数据为待重传的分片数据。

可选的,在所述采用所述传输层非可靠传输协议,通过所述目标接口,发送包括所述待重传的分片数据的待传输数据报文至所述接收端之后,所述方法还包括:

在确定包括所述待重传的分片数据的待传输数据报文均发送完毕后,获取所述接收端反馈的分片丢失信息;

根据所述接收端反馈的分片丢失信息,判断是否仍然存在待重传的分片数据;

若是,则返回执行所述采用所述传输层非可靠传输协议,通过所述目标接口,发送包括所述待重传的分片数据的待传输数据报文至所述接收端;

否则,确定所述待传输文件的所有分片数据均被所述接收端成功接收。

第二方面,本发明实施例提供了一种文件传输方法,应用于接收端,所述方法包括:

采用预设的传输层非可靠传输协议,通过目标接口,接收发送端发送的各待传输数据报文,所述目标接口为在与所述发送端建立tcp连接时确定的用于传输待传输文件的接口,所述待传输数据报文包括所述待传输文件的分片数据及所述分片数据的附属信息;

根据所述附属信息,将所述分片数据存储至预先分配的所述待传输文件对应的存储位置,并更新所述待传输文件的分片丢失信息中所述分片数据的标识信息为已被所述接收端成功接收的第二标识信息,所述分片丢失信息中还包括未被所述接收端成功接收的分片数据的第一标识信息;

反馈更新后的分片丢失信息至所述发送端。

可选的,所述反馈更新后的分片丢失信息至所述发送端,包括:

周期性地反馈更新后的分片丢失信息至所述发送端。

可选的,所述传输层非可靠传输协议包括用户传输协议udp;所述目标接口包括udp套接字;

所述目标接口的确定方式,包括:

在与所述发送端建立tcp连接时,获取所述接收端自身的第一ip地址,并分配第一udp协议端口号;

获取所述发送端的第二ip地址,以及所述发送端分配的第二udp协议端口号;

确定包括所述udp、所述第一ip地址、所述第一udp协议端口号、所述第二ip地址及所述第二udp协议端口号的udp套接字;

确定所述udp套接字为目标接口;

所述采用预设的传输层非可靠传输协议,通过目标接口,接收发送端发送的各待传输数据报文,包括:

通过所述udp套接字,接收所述发送端发送的各待传输数据报文。

第三方面,本发明实施例提供了一种文件传输装置,应用于发送端,所述装置包括:

发送模块,用于采用预设的传输层非可靠传输协议,通过目标接口,发送各待传输数据报文至接收端,所述目标接口为在与所述接收端建立传输控制协议tcp连接时确定的用于传输待传输文件的接口,所述待传输数据报文包括所述待传输文件的分片数据;

获取模块,用于在确定各待传输数据报文发送完毕后,获取所述接收端反馈的所述待传输文件的分片丢失信息;

确定模块,用于根据所述接收端反馈的分片丢失信息,确定所述待传输文件的分片数据中待重传的分片数据;

所述发送模块,还用于采用所述传输层非可靠传输协议,通过所述目标接口,发送包括所述待重传的分片数据的待传输数据报文至所述接收端。

可选的,所述发送模块,具体用于:

采用预设的传输层非可靠传输协议,按照预设速率,通过目标接口,发送各待传输数据报文至接收端。

可选的,所述传输层非可靠传输协议包括用户传输协议udp;所述目标接口包括udp套接字;

所述目标接口的确定方式,包括:

在与所述接收端建立tcp连接时,获取所述接收端的第一ip地址及所述接收端分配的第一udp协议端口号;

获取所述发送端自身的第二ip地址,并分配第二udp协议端口号;

确定包括所述udp、所述第一ip地址、所述第一udp协议端口号、所述第二ip地址及所述第二udp协议端口号的udp套接字;

确定所述udp套接字为目标接口;

所述发送模块,具体用于:

通过所述udp套接字,发送各待传输数据报文至所述接收端。

可选的,所述装置还包括:

接收模块,用于接收由所述接收端周期性反馈的所述待传输文件的分片丢失信息;

所述获取模块,具体用于:

在确定各待传输数据报文发送完毕后,获取已接收到的分片丢失信息中最新接收到的分片丢失信息。

可选的,所述分片丢失信息中包括未被所述接收端成功接收的分片数据的第一标识信息;

所述确定模块,具体用于:

根据所述接收端反馈的分片丢失信息中的第一标识信息,确定所述待传输文件的分片数据中未被所述接收端成功接收的分片数据为待重传的分片数据。

可选的,所述获取模块,还用于在确定包括所述待重传的分片数据的待传输数据报文均发送完毕后,获取所述接收端反馈的分片丢失信息;

所述装置还包括:

判断模块,用于根据所述接收端反馈的分片丢失信息,判断是否仍然存在待重传的分片数据;若是,则返回执行所述采用所述传输层非可靠传输协议,通过所述目标接口,发送包括所述待重传的分片数据的待传输数据报文至所述接收端;否则,确定所述待传输文件的所有分片数据均被所述接收端成功接收。

第四方面,本发明实施例提供了一种文件传输装置,应用于接收端,所述装置包括:

接收模块,用于采用预设的传输层非可靠传输协议,通过目标接口,接收发送端发送的各待传输数据报文,所述目标接口为在与所述发送端建立tcp连接时确定的用于传输待传输文件的接口,所述待传输数据报文包括所述待传输文件的分片数据及所述分片数据的附属信息;

存储模块,用于根据所述附属信息,将所述分片数据存储至预先分配的所述待传输文件对应的存储位置,并更新所述待传输文件的分片丢失信息中所述分片数据的标识信息为已被所述接收端成功接收的第二标识信息,所述分片丢失信息中还包括未被所述接收端成功接收的分片数据的第一标识信息;

反馈模块,用于反馈更新后的分片丢失信息至所述发送端。

可选的,所述反馈模块,具体用于:

周期性地反馈更新后的分片丢失信息至所述发送端。

可选的,所述传输层非可靠传输协议包括用户传输协议udp;所述目标接口包括udp套接字;

所述目标接口的确定方式,包括:

在与所述发送端建立tcp连接时,获取所述接收端自身的第一ip地址,并分配第一udp协议端口号;

获取所述发送端的第二ip地址,以及所述发送端分配的第二udp协议端口号;

确定包括所述udp、所述第一ip地址、所述第一udp协议端口号、所述第二ip地址及所述第二udp协议端口号的udp套接字;

确定所述udp套接字为目标接口;

所述接收模块,具体用于:

通过所述udp套接字,接收所述发送端发送的各待传输数据报文。

第五方面,本发明实施例提供了一种文件传输系统,所述系统包括:发送端及接收端;

所述发送端,用于采用预设的传输层非可靠传输协议,通过目标接口,发送各待传输数据报文至所述接收端,所述目标接口为在与所述接收端建立传输控制协议tcp连接时确定的用于传输待传输文件的接口,所述待传输数据报文包括所述待传输文件的分片数据;在确定各待传输数据报文发送完毕后,获取所述接收端反馈的所述待传输文件的分片丢失信息;根据所述接收端反馈的分片丢失信息,确定所述待传输文件的分片数据中待重传的分片数据;采用所述传输层非可靠传输协议,通过所述目标接口,发送包括所述待重传的分片数据的待传输数据报文至所述接收端;

所述接收端,用于采用所述传输层非可靠传输协议,通过所述目标接口,接收所述发送端发送的各待传输数据报文;根据所述附属信息,将所述分片数据存储至预先分配的所述待传输文件对应的存储位置,并更新所述待传输文件的分片丢失信息中所述分片数据的标识信息为已被所述接收端成功接收的第二标识信息,所述分片丢失信息中还包括未被所述接收端成功接收的分片数据的第一标识信息;反馈更新后的分片丢失信息至所述发送端。

第六方面,本发明实施例提供了一种发送端电子设备,包括处理器和存储器,其中,

所述存储器,用于存放计算机程序;

所述处理器,用于执行所述存储器上所存放的程序时,实现本发明实施例第一方面所述的任一方法步骤。

第七方面,本发明实施例提供了一种机器可读存储介质,所述机器可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现本发明实施例第一方面所述的任一方法步骤。

第八方面,本发明实施例提供了一种接收端电子设备,包括处理器和存储器,其中,

所述存储器,用于存放计算机程序;

所述处理器,用于执行所述存储器上所存放的程序时,实现本发明实施例第二方面所述的任一方法步骤。

第九方面,本发明实施例提供了一种机器可读存储介质,所述机器可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现本发明实施例第二方面所述的任一方法步骤。

本发明实施例提供的一种文件传输方法、装置、系统及电子设备,发送端在与接收端建立tcp连接时确定用于传输待传输文件的目标接口,发送端采用预设的传输层非可靠传输协议,通过目标接口发送各传输数据报文至接收端,传输报文中包括待传输文件的分片数据及分片数据的附属信息,则接收端在接收到分片数据后,根据附属信息更新分片丢失信息,分片丢失信息中标识了被接收端成功接收的分片数据及未被接收端成功接收的分片数据,接收端将分片丢失信息反馈给发送端,发送端在确定各待传输数据报文发送完毕之后,获取接收端反馈的分片丢失信息,并根据分片丢失信息确定待重传的分片数据,再对待重传的分片数据统一进行重传。由于传输层非可靠传输协议为不提供自动处理丢包重传的传输协议,即传输层非可靠传输协议中并未定义与tcp相同的重传机制,如果某个分片数据丢失,并不立刻对其进行重传,而是在将完整的待传输数据报文均传输完毕后,进行待重传的分片数据的统一重传,发送端是基于分片丢失信息进行分片数据重传的,如果未接收到分片丢失信息,则不会进行重传处理,只有在接收到分片丢失信息后,基于分片丢失信息进行重传,并且,发送端在将完整的待传输数据报文均传输完毕后,获取到的分片丢失信息,能够更为准确、完整的反映分片数据整体的丢失情况,有效避免了丢失信息不准确所带来的网络带宽资源的浪费,从而提高了网络传输效率。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例的文件传输方法的交互流程图;

图2为本发明实施例的应用于发送端的文件传输装置的结构示意图;

图3为本发明实施例的应用于接收端的文件传输装置的结构示意图;

图4为本发明实施例的文件传输系统的结构示意图;

图5为本发明实施例的发送端电子设备的结构示意图;

图6为本发明实施例的接收端电子设备的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

为了避免网络带宽资源的浪费、提高网络传输效率,本发明实施例提供了一种文件传输方法、装置、系统及电子设备。

下面,通过对发送端和接收端的交互过程进行介绍,如图1所示,说明本发明实施例所提供的文件传输方法。

s101,发送端采用预设的传输层非可靠传输协议,通过目标接口,发送各待传输数据报文至接收端。

其中,目标接口为发送端与接收端建立tcp连接时确定的用于传输待传输文件的接口。发送端和接收端为网络通信的两个主体,例如用户端与服务器、服务器与服务器、用户端与用户端等。发送端和接收端在进行文件传输之前首先需要完成tcp连接的建立,通过这条tcp连接来交互控制信息,所交互的控制信息包括:发送端根据待传输的文件所建立的待传输文件列表、所使用的传输协议、发送端的第一ip地址、发送端分配的协议端口、接收端的第二ip地址、接收端分配的协议端口等。

待传输文件列表中包括:每个待传输文件的文件名、每个待传输文件的文件标识、每个待传输文件的大小、对各待传输文件进行分片的分片数据大小、分片数据的数量等。由于网络传输的待传输文件越来越大,如果直接将待传输文件作为一个数据报文进行传输,极易导致大延迟、易丢包的情况发生,因此,可以将待传输文件进行分片,每一个分片数据较小,所占用的网络资源较少,这样,针对每一个分片数据,传输成功率得以保证。

为了避免tcp传输的自动重传现象,本发明实施例中发送端与接收端之间的数据报文传输采用预设的传输层非可靠传输协议,不会自动处理丢包重传的传输层非可靠传输协议均适用于本发明实施例,传输层非可靠传输协议的种类繁多,其中,最为典型的为udp(userdatagramprotocol,用户数据报协议)。

可选的,传输层非可靠传输协议包括udp;目标接口包括udpsocket(udp套接字);

则,目标接口的确定方式,可以包括:

在发送端与接收端建立tcp连接时,发送端获取接收端的第一ip地址及接收端分配的第一udp协议端口号;

发送端获取发送端自身的第二ip地址,并分配第二udp协议端口号;

确定包括udp、第一ip地址、第一udp协议端口号、第二ip地址及第二udp协议端口号的udpsocket;

确定udpsocket为目标接口;

相应的,s101具体可以为:

发送端通过udpsocket发送各待传输数据报文至接收端。

udp将客户端和接收端的ip地址加上协议端口号作为udp传输的网络层编程接口,该接口为虚拟接口,这种接口就称为udpsocket。udpsocket是采用udp进行网络通信过程中接口的抽象表示,包含进行网络通信必需的五种信息:所使用的传输协议、发送端的ip地址、发送端的协议端口号、接收端的ip地址、接收端的协议端口号。

发送端在发送待传输数据报文时,可以按照固定速率发送,也可以随机发送,但是,由于udp等传输层非可靠传输协议的不可靠性,在发送待传输数据报文时可能会乱序传输,为了避免发生网络拥堵,在发送端发送待传输报文时,需要进行速率控制,即可选的,s101具体可以为:

采用预设的传输层非可靠传输协议,按照预设速率,通过目标接口,发送各待传输数据报文至接收端。

预设速率为发送端发送每一个待传输报文的间隔,即间隔多长时间发送一个待传输报文。预设速率可以是在发送端与接收端建立tcp连接时商议得到的,也可以是预先设置的,由于传输层非可靠传输协议不保证数据报文的有序到达,接收端接收数据报文的顺序可以与发送端发送数据报文的顺序不相同,即可能出现“后发先至”的现象。

待传输数据报文包括待传输文件的分片数据及分片数据的附属信息。待传输数据报文包括包头和包体两个部分,包头即为附属信息,附属信息表征了分片数据的隶属属性,包括但不限于以下信息:该分片数据隶属于哪一个待传输文件、该分片数据在待传输文件中的位置等;包体即为分片数据。具体的,附属信息可以包括待传输文件的标识信息(用于确定该分片数据隶属于哪一个待传输文件),待传输文件的标识信息可以为待传输文件的文件名、文件id等,其中,文件id可以更好的压缩传输的数据大小,因此,通常将文件id作为待传输文件的标识信息;附属信息还可以包括分片数据的标识信息(用于确定该分片数据在待传输文件中的位置,即该分片数据为待传输文件的第几个分片数据),分片数据的标识信息可以为分片id。

发送端按照预设速率依次发送各各待传输数据报文。例如,总共要传输2个待传输文件,第一个待传输文件分为20个分片数据,第二个待传输文件分为10个分片数据,那么发送端就按照预设速率,先依次发送第一个待传输文件的20个分片数据,结束后,再依次发送第二个待传输文件的10个分片数据,每个分片数据发送后都等待一定时间,保证是以预设速率进行发送的。

s102,接收端根据待传输数据报文中的附属信息,将该待传输数据报文中的分片数据存储至预先分配的待传输文件对应的存储位置,并更新待传输文件的分片丢失信息。

在发送端与接收端建立tcp连接时,接收端可以从发送端获取到待传输文件列表,接收端在获取到待传输文件列表后,在本地为待传输文件列表中的各待传输文件分配相应的存储空间,这样,接收端在接收到分片数据后可以直接将分片数据存储至相应的存储位置。同时,接收端还会为每个待传输文件创建一个分片丢失信息。

分片丢失信息中包括了未被接收端成功接收的分片数据的第一标识信息以及已被接收端成功接收的分片数据的第二标识信息,初始的分片丢失信息中,所有分片数据的标识信息均为未被接收端成功接收的第一标识信息。当然,分片丢失信息中还可以包括待传输文件的标识信息(用来区分该分片丢失信息是隶属于那个待传输文件的)。分片丢失信息的主要数据结构可以为bitmap(位集),接收端可以根据获取的待传输文件列表中待传输文件的分片数据的总数量计算出bitmap所需的字节数,例如,bitmap所需的字节数=待传输文件的分片数据的总数量/8+1。bitmap即把二进制数据看成是连续的bit(位),第n个bit为0即表示第n个分片数据未被接收端成功接收,为1则表示第n个分片数据被接收端成功接收。例如,对于一个200mb的待传输文件,假定该待传输文件的分片数据大小为1400b,则可以计算出该待传输文件对应的分片丢失信息只需要18kb,所占用的空间非常小。

初始的分片丢失信息中每一位的数据均为0,即表示接收端还未收到待传输文件的任何分片数据,当接收到成功接收到一个分片数据,则会根据该分片数据的附属信息,将分片丢失信息中对应的位设置为1,其他位不变。接收端在每次接收到分片数据时都会实时更新分片丢失信息。

s103,接收端反馈更新后的分片丢失信息至发送端。

接收端在更新分片丢失信息后,会将更新后的分片丢失信息反馈给发送端,以告知发送端已成功接收到哪些分片数据,而哪些分片数据未接收到。接收端向发送端反馈分片丢失信息,可以是在更新后立即反馈,也可以是按照预设周期,周期性的反馈。

可选的,s103具体可以为:

周期性地反馈更新后的分片丢失信息至发送端。

由于网络环境的复杂性,接收端在想发送端反馈分片丢失信息时,可能会出现分片丢失信息丢失、或者数据报文传输延迟的情况,为了保证分片丢失信息的正常反馈和数据报文是否丢失的判断的准确性,可以设置一预设周期,接收端按照预设周期,反馈分片丢失信息。

s104,发送端在确定各待传输数据报文发送完毕后,获取接收端反馈的待传输文件的分片丢失信息。

发送端在向接收端发送待传输数据报文的过程中,可能会接收到接收端反馈的分片丢失信息,但此时先不做丢包重传处理,而是等到所有待传输数据报文都发送完毕之后,再同一进行重传处理。而由于接收端可能是周期性地反馈分片丢失信息,发送端在确定各待传输数据报文发送完毕之前已经接收到了多个分片丢失信息,发送端在确定各待传输数据报文发送完毕后,需要从中取获取待传输文件的分片丢失信息。

可选的,在s104之前,还可以包括:

发送端接收由接收端周期性反馈的待传输文件的分片丢失信息;

则s104具体可以为:

发送端在确定各待传输数据报文发送完毕后,获取已接收到的分片丢失信息中最新接收到的分片丢失信息。

由于发送端接收到的多个分片丢失信息中,最新接收到的分片丢失信息能够最为完整、准确的反映所有分片数据的传输情况,每一个分片丢失信息都可以纠正之前分片丢失信息的错误反馈,因此,发送端可以获取最新接收到的分片丢失信息,最大限度避免了因为误判而重传导致带宽浪费的问题。

s105,发送端根据接收端反馈的分片丢失信息,确定待传输文件的分片数据中待重传的分片数据。

可选的,分片丢失信息中可以包括未被接收端成功接收的分片数据的第一标识信息,分片丢失信息中还可以包括已被接收端成功接收的分片数据的第二标识信息。基于分片丢失信息,发送端可以确定哪些分片数据已被接收端成功接收、哪些分片数据未被接收端成功接收,即为第一标识信息的分片数据未被接收端成功接收、为第二标识信息的分片数据已被接收端成功接收。因此,可选的,s105具体可以为:

根据分片丢失信息中的第一标识信息,确定待传输文件的分片数据中未被所述接收端成功接收的分片数据为待重传的分片数据。

s106,发送端采用传输层非可靠传输协议,通过目标接口,发送包括待重传的分片数据的待传输数据报文至接收端。

发送端在确定待重传的分片数据后,可以基于待重传的分片数据及该分片数据的附属信息,构建待传输数据报文,采用传输层非可靠传输协议,通过目标接口,重传这些待传输数据报文至接收端。

可选的,在s106之后,还可以包括:

发送端在确定包括待重传的分片数据的待传输数据报文均发送完毕后,获取接收端反馈的分片丢失信息;

发送端根据接收端反馈的分片丢失信息,判断是否仍然存在待重传的分片数据;

若是,则返回执行s106;

否则,确定待传输文件的所有分片数据均被接收端成功接收。

发送端在每完整发送完一次待传输报文后,均会基于接收端反馈的分片丢失信息判断是否仍然存在待重传的分片数据,如果接收端给发送端反馈的分片丢失信息中包括未被接收端成功接收的分片数据的第一标识信息,则说明仍然存在待重传的分片数据,发送端就会新一轮重传这些分片数据,以此往复,直至待传输文件的所有分片数据均被接收端成功接收。

在传统的tcp传输中,发送端会顺序发送数据报文,如果之前发送的数据报文丢失了,则发送端会重传该数据报文,重传成功后再发送后续的数据报文。而本实施例中,由于使用传输层非可靠传输协议,重传机制可以设置成一组完整的待传输数据报文传输成功后,再进行重传的处理,并且通过将待传输文件进行分片处理,提高了每一轮传输的效率,不会因某一个数据报文丢失而影响后续的数据报文一直无法传输。并且,在传统的tcp传输中,tcp的发送窗口的变化方式具有aimd(additiveincreasemultiplicativedecrease,加增乘减)的特点,一旦发现丢包,发送端会减小发送窗口,这样同时投递到网络中的报文数就大大减少了,造成了网络带宽资源的浪费;而本实施例中,数据报文数量不会受到分片数据丢失的影响。

应用本实施例,发送端在与接收端建立tcp连接时确定用于传输待传输文件的目标接口,发送端采用预设的传输层非可靠传输协议,通过目标接口发送各传输数据报文至接收端,传输报文中包括待传输文件的分片数据及分片数据的附属信息,则接收端在接收到分片数据后,根据附属信息更新分片丢失信息,分片丢失信息中标识了被接收端成功接收的分片数据及未被接收端成功接收的分片数据,接收端将分片丢失信息反馈给发送端,发送端在确定各待传输数据报文发送完毕之后,获取接收端反馈的分片丢失信息,并根据分片丢失信息确定待重传的分片数据,再对待重传的分片数据统一进行重传。由于传输层非可靠传输协议为不提供自动处理丢包重传的传输协议,即传输层非可靠传输协议中并未定义与tcp相同的重传机制,如果某个分片数据丢失,并不立刻对其进行重传,而是在将完整的待传输数据报文均传输完毕后,进行待重传的分片数据的统一重传,发送端是基于分片丢失信息进行分片数据重传的,如果未接收到分片丢失信息,则不会进行重传处理,只有在接收到分片丢失信息后,基于分片丢失信息进行重传,并且,发送端在将完整的待传输数据报文均传输完毕后,获取到的分片丢失信息,能够更为准确、完整的反映分片数据整体的丢失情况,有效避免了丢失信息不准确所带来的网络带宽资源的浪费,从而提高了网络传输效率。受网络环境的影响较小,在高延迟、稿丢包率的网络环境下,比如卫星网络,依然具有较高的网络传输效率。

相应于上述方法实施例,本发明实施例提供了一种应用于发送端的文件传输装置,如图2所示,该文件传输装置可以包括:

发送模块210,用于采用预设的传输层非可靠传输协议,通过目标接口,发送各待传输数据报文至接收端,所述目标接口为在与所述接收端建立传输控制协议tcp连接时确定的用于传输待传输文件的接口,所述待传输数据报文包括所述待传输文件的分片数据;

获取模块220,用于在确定各待传输数据报文发送完毕后,获取所述接收端反馈的所述待传输文件的分片丢失信息;

确定模块230,用于根据所述接收端反馈的分片丢失信息,确定所述待传输文件的分片数据中待重传的分片数据;

所述发送模块210,还用于采用所述传输层非可靠传输协议,通过所述目标接口,发送包括所述待重传的分片数据的待传输数据报文至所述接收端。

可选的,所述发送模块210,具体可以用于:

采用预设的传输层非可靠传输协议,按照预设速率,通过目标接口,发送各待传输数据报文至接收端。

可选的,所述传输层非可靠传输协议包括用户传输协议udp;所述目标接口包括udp套接字;

所述目标接口的确定方式,包括:

在与所述接收端建立tcp连接时,获取所述接收端的第一ip地址及所述接收端分配的第一udp协议端口号;

获取所述发送端自身的第二ip地址,并分配第二udp协议端口号;

确定包括所述udp、所述第一ip地址、所述第一udp协议端口号、所述第二ip地址及所述第二udp协议端口号的udp套接字;

确定所述udp套接字为目标接口;

所述发送模块210,具体可以用于:

通过所述udp套接字,发送各待传输数据报文至所述接收端。

可选的,所述装置还可以包括:

接收模块,用于接收由所述接收端周期性反馈的所述待传输文件的分片丢失信息;

所述获取模块210,具体可以用于:

在确定各待传输数据报文发送完毕后,获取已接收到的分片丢失信息中最新接收到的分片丢失信息。

可选的,所述分片丢失信息中包括未被所述接收端成功接收的分片数据的第一标识信息;

所述确定模块230,具体可以用于:

根据所述接收端反馈的分片丢失信息中的第一标识信息,确定所述待传输文件的分片数据中未被所述接收端成功接收的分片数据为待重传的分片数据。

可选的,所述获取模块220,还可以用于在确定包括所述待重传的分片数据的待传输数据报文均发送完毕后,获取所述接收端反馈的分片丢失信息;

所述装置还可以包括:

判断模块,用于根据所述接收端反馈的分片丢失信息,判断是否仍然存在待重传的分片数据;若是,则返回执行所述采用所述传输层非可靠传输协议,通过所述目标接口,发送包括所述待重传的分片数据的待传输数据报文至所述接收端;否则,确定所述待传输文件的所有分片数据均被所述接收端成功接收。

相应于上述方法实施例,本发明实施例提供了一种应用于接收端的文件传输装置,如图3所示,该文件传输装置可以包括:

接收模块310,用于采用预设的传输层非可靠传输协议,通过目标接口,接收发送端发送的各待传输数据报文,所述目标接口为在与所述发送端建立tcp连接时确定的用于传输待传输文件的接口,所述待传输数据报文包括所述待传输文件的分片数据及所述分片数据的附属信息;

存储模块320,用于根据所述附属信息,将所述分片数据存储至预先分配的所述待传输文件对应的存储位置,并更新所述待传输文件的分片丢失信息中所述分片数据的标识信息为已被所述接收端成功接收的第二标识信息,所述分片丢失信息中还包括未被所述接收端成功接收的分片数据的第一标识信息;

反馈模块330,用于反馈更新后的分片丢失信息至所述发送端。

可选的,所述反馈模块330,具体可以用于:

周期性地反馈更新后的分片丢失信息至所述发送端。

可选的,所述传输层非可靠传输协议包括用户传输协议udp;所述目标接口包括udp套接字;

所述目标接口的确定方式,包括:

在与所述发送端建立tcp连接时,获取所述接收端自身的第一ip地址,并分配第一udp协议端口号;

获取所述发送端的第二ip地址,以及所述发送端分配的第二udp协议端口号;

确定包括所述udp、所述第一ip地址、所述第一udp协议端口号、所述第二ip地址及所述第二udp协议端口号的udp套接字;

确定所述udp套接字为目标接口;

所述接收模块310,具体可以用于:

通过所述udp套接字,接收所述发送端发送的各待传输数据报文。

应用本实施例,发送端在与接收端建立tcp连接时确定用于传输待传输文件的目标接口,发送端采用预设的传输层非可靠传输协议,通过目标接口发送各传输数据报文至接收端,传输报文中包括待传输文件的分片数据及分片数据的附属信息,则接收端在接收到分片数据后,根据附属信息更新分片丢失信息,分片丢失信息中标识了被接收端成功接收的分片数据及未被接收端成功接收的分片数据,接收端将分片丢失信息反馈给发送端,发送端在确定各待传输数据报文发送完毕之后,获取接收端反馈的分片丢失信息,并根据分片丢失信息确定待重传的分片数据,再对待重传的分片数据统一进行重传。由于传输层非可靠传输协议为不提供自动处理丢包重传的传输协议,即传输层非可靠传输协议中并未定义与tcp相同的重传机制,如果某个分片数据丢失,并不立刻对其进行重传,而是在将完整的待传输数据报文均传输完毕后,进行待重传的分片数据的统一重传,发送端是基于分片丢失信息进行分片数据重传的,如果未接收到分片丢失信息,则不会进行重传处理,只有在接收到分片丢失信息后,基于分片丢失信息进行重传,并且,发送端在将完整的待传输数据报文均传输完毕后,获取到的分片丢失信息,能够更为准确、完整的反映分片数据整体的丢失情况,有效避免了丢失信息不准确所带来的网络带宽资源的浪费,从而提高了网络传输效率。

相应于上述方法实施例,本发明实施例还提供了一种文件传输系统,如图4所示,该文件传输系统包括:发送端410和接收端420;

所述发送端410,用于采用预设的传输层非可靠传输协议,通过目标接口,发送各待传输数据报文至所述接收端420,所述目标接口为在与所述接收端420建立传输控制协议tcp连接时确定的用于传输待传输文件的接口,所述待传输数据报文包括所述待传输文件的分片数据;在确定各待传输数据报文发送完毕后,获取所述接收端420反馈的所述待传输文件的分片丢失信息;根据所述接收端420反馈的分片丢失信息,确定所述待传输文件的分片数据中待重传的分片数据;采用所述传输层非可靠传输协议,通过所述目标接口,发送包括所述待重传的分片数据的待传输数据报文至所述接收端420;

所述接收端420,用于采用所述传输层非可靠传输协议,通过所述目标接口,接收所述发送端410发送的各待传输数据报文;根据所述附属信息,将所述分片数据存储至预先分配的所述待传输文件对应的存储位置,并更新所述待传输文件的分片丢失信息中所述分片数据的标识信息为已被所述接收端420成功接收的第二标识信息,所述分片丢失信息中还包括未被所述接收端420成功接收的分片数据的第一标识信息;反馈更新后的分片丢失信息至所述发送端410。

应用本实施例,发送端在与接收端建立tcp连接时确定用于传输待传输文件的目标接口,发送端采用预设的传输层非可靠传输协议,通过目标接口发送各传输数据报文至接收端,传输报文中包括待传输文件的分片数据及分片数据的附属信息,则接收端在接收到分片数据后,根据附属信息更新分片丢失信息,分片丢失信息中标识了被接收端成功接收的分片数据及未被接收端成功接收的分片数据,接收端将分片丢失信息反馈给发送端,发送端在确定各待传输数据报文发送完毕之后,获取接收端反馈的分片丢失信息,并根据分片丢失信息确定待重传的分片数据,再对待重传的分片数据统一进行重传。由于传输层非可靠传输协议为不提供自动处理丢包重传的传输协议,即传输层非可靠传输协议中并未定义与tcp相同的重传机制,如果某个分片数据丢失,并不立刻对其进行重传,而是在将完整的待传输数据报文均传输完毕后,进行待重传的分片数据的统一重传,发送端是基于分片丢失信息进行分片数据重传的,如果未接收到分片丢失信息,则不会进行重传处理,只有在接收到分片丢失信息后,基于分片丢失信息进行重传,并且,发送端在将完整的待传输数据报文均传输完毕后,获取到的分片丢失信息,能够更为准确、完整的反映分片数据整体的丢失情况,有效避免了丢失信息不准确所带来的网络带宽资源的浪费,从而提高了网络传输效率。

对于文件传输系统而言,发送端410可以实现上述应用于发送端的文件传输方法、接收端420可以实现上述应用于接收端的文件传输方法,由于其所涉及的方法内容基本相似于前述的方法实施例,所以描述的比较简单,且具有相同或相似的有益效果,相关之处参见方法实施例的部分说明即可。

为了避免网络带宽资源的浪费、提高网络传输效率,本发明实施例提供了一种发送端电子设备,如图5所示,发送端电子设备500包括处理器501和存储器502,其中,

所述存储器502,用于存放计算机程序;

所述处理器501,用于执行所述存储器502上所存放的程序时,实现上述应用于发送端的文件传输方法的所有步骤。

另外,相应于上述实施例所提供的应用于发送端的文件传输方法,本发明实施例提供了一种机器可读存储介质,所述机器可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时,实现上述应用于发送端的文件传输方法的所有步骤。

本发明实施例还提供了一种接收端电子设备,如图6所示,接收端电子设备600包括处理器601和存储器602,其中,

所述存储器602,用于存放计算机程序;

所述处理器601,用于执行所述存储器602上所存放的程序时,实现上述应用于接收端的文件传输方法的所有步骤。

发送端电子设备可以为监控设备(如ipc(internetprotocalcamera,网络相机))、服务器、移动终端设备(例如手机、个人计算机等)、嵌入式控制设备等;接收端电子设备可以为服务器、云存储服务器、后台计算机、云存储设备等。

上述存储器可以包括ram(randomaccessmemory,随机存取存储器),也可以包括nvm(non-volatilememory,非易失性存储器),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。

上述处理器可以是通用处理器,包括cpu(centralprocessingunit,中央处理器)、np(networkprocessor,网络处理器)等;还可以是dsp(digitalsignalprocessing,数字信号处理器)、asic(applicationspecificintegratedcircuit,专用集成电路)、fpga(field-programmablegatearray,现场可编程门阵列)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

另外,相应于上述实施例所提供的应用于接收端的文件传输方法,本发明实施例提供了一种机器可读存储介质,所述机器可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时,实现上述应用于接收端的文件传输方法的所有步骤。

应用本实施例,发送端电子设备在与接收端电子设备建立tcp连接时确定用于传输待传输文件的目标接口,发送端电子设备采用预设的传输层非可靠传输协议,通过目标接口发送各传输数据报文至接收端电子设备,传输报文中包括待传输文件的分片数据及分片数据的附属信息,则接收端电子设备在接收到分片数据后,根据附属信息更新分片丢失信息,分片丢失信息中标识了被接收端电子设备成功接收的分片数据及未被接收端电子设备成功接收的分片数据,接收端电子设备将分片丢失信息反馈给发送端电子设备,发送端电子设备在确定各待传输数据报文发送完毕之后,获取接收端电子设备反馈的分片丢失信息,并根据分片丢失信息确定待重传的分片数据,再对待重传的分片数据统一进行重传。由于传输层非可靠传输协议为不提供自动处理丢包重传的传输协议,即传输层非可靠传输协议中并未定义与tcp相同的重传机制,如果某个分片数据丢失,并不立刻对其进行重传,而是在将完整的待传输数据报文均传输完毕后,进行待重传的分片数据的统一重传,发送端电子设备是基于分片丢失信息进行分片数据重传的,如果未接收到分片丢失信息,则不会进行重传处理,只有在接收到分片丢失信息后,基于分片丢失信息进行重传,并且,发送端电子设备在将完整的待传输数据报文均传输完毕后,获取到的分片丢失信息,能够更为准确、完整的反映分片数据整体的丢失情况,有效避免了丢失信息不准确所带来的网络带宽资源的浪费,从而提高了网络传输效率。

对于发送端电子设备、接收端电子设备以及机器可读存储介质实施例而言,由于其所涉及的方法内容基本相似于前述的方法实施例,所以描述的比较简单,且具有相同或相似的有益效果,相关之处参见方法实施例的部分说明即可。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备及机器可读存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

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