CN109660495B - 一种文件传输方法和装置 - Google Patents
一种文件传输方法和装置 Download PDFInfo
- Publication number
- CN109660495B CN109660495B CN201710946910.2A CN201710946910A CN109660495B CN 109660495 B CN109660495 B CN 109660495B CN 201710946910 A CN201710946910 A CN 201710946910A CN 109660495 B CN109660495 B CN 109660495B
- Authority
- CN
- China
- Prior art keywords
- connection
- transmitted
- file
- initial
- request
- 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
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1074—Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
- H04L67/1078—Resource delivery mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/163—In-band adaptation of TCP data exchange; In-band control procedures
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明实施例涉及通信技术领域,尤其涉及一种文件传输方法和装置,用于通过多路径传输实现加速小文件传输,改善用户的上网体验。当请求端与响应端之间存在数据传输需求,在请求端和响应端之间建立初始TCP连接,并在请求端和响应端之间进行最优传输路径的查找;通过初始TCP连接在请求端和响应端之间传输待传输文件;若待传输文件未传输完、且在请求端和响应端之间确定出最优传输路径,则在最优传输路径建立优选TCP连接;通过优选TCP连接在请求端和响应端之间传输待传输文件的尚未传输部分。如此,可以实现提高文件传输速度,进而改善用户的上网体验。
Description
技术领域
本发明实施例涉及通信技术领域,尤其涉及一种文件传输方法和装置。
背景技术
互联网的飞速发展,使得网络传输的内容越来越丰富,用户对网络传输的要求也来越高。自从多路径传输数据的传输层的协议Multipath TCP被提出,很多公司开始推出支持多路径传输的网络设备。
现有技术中,在内容分发网络CDN网络中,双边传输的中间一公里(如图1所示,服务器101和服务器102之间的传输)、最后一公里(如图2所示,边缘服务器201和终端设备202之间的传输,其中边缘服务器201和终端设备202可以通过无线热点203或无线路由WiFi204连接)的环境下,小文件进行传输时,不采用压缩技术,通过在两个设备之间采用TCP连接传输文件。现有技术中,在小文件传输之前确定一条路径建立TCP连接进行文件传输,由于小文件一般几千或几万字节大小,所以在一条TCP连接还未释放之前就已经传输完成,而进行文件传输的两端存在的各条路径的服务质量在变化,可能正在传输文件的路径不是最优的路径,因此并不能发挥多路径传输的优势。特别是在web应用、即时通讯、移动应用等场景下,用户对文件传输的速度有较高的需求,文件传输速度对用户上网体验有较大影响。
因此,亟需一种文件传输方法,用以通过多路径传输实现加速小文件传输,改善用户的上网体验。
发明内容
本发明实施例提供一种文件传输方法和装置,用以通过多路径传输实现提高小文件传输速度,改善用户的上网体验。
本发明实施例提供一种文件传输方法,适用于小文件传输,该方法包括:当请求端与响应端之间存在数据传输需求,在所述请求端和所述响应端之间建立初始TCP连接,并在所述请求端和所述响应端之间进行最优传输路径的查找;通过所述初始TCP连接在所述请求端和所述响应端之间传输待传输文件;若所述待传输文件未传输完、且在所述请求端和所述响应端之间确定出最优传输路径,则在所述最优传输路径建立优选TCP连接;通过所述优选TCP连接在所述请求端和所述响应端之间传输所述待传输文件的尚未传输部分。
可选的,通过所述初始TCP连接在所述请求端和所述响应端之间传输待传输文件之后,还包括:若所述待传输文件传输完毕且所述请求端和所述响应端之间尚未确定出最优传输路径,则释放所述初始TCP连接并结束所述最优传输路径的查找。
可选的,所述在所述请求端和所述响应端之间建立初始TCP连接,包括:若所述请求端和所述响应端均支持TFO协议,则在所述请求端和所述响应端之间建立初始TFO短连接;所述初始TFO短连接在传输完所述待传输文件之后释放。
可选的,所述在所述请求端和所述响应端之间建立初始TCP连接,包括:若所述请求端和所述响应端均支持长连接,则在所述请求端和所述响应端之间建立初始TCP长连接或初始TFO长连接;所述初始TCP长连接或所述初始TFO长连接在预设时长内保持连接,在所述预设时长到达时且当前文件传输完毕后释放。
可选的,所述若所述待传输文件传输完成且所述请求端和所述响应端之间尚未确定出最优传输路径,则释放所述初始TCP连接并结束所述最优传输路径的查找,包括:若所述初始TCP长连接或所述初始TFO长连接在预设时长内接收到M个请求,则在第M个请求对应的待传输文件传输完成、且所述请求端和所述响应端之间尚未确定出最优传输路径,则释放所述初始TCP长连接或所述初始TFO长连接,并结束所述最优传输路径的查找。
可选的,所述在所述请求端和所述响应端之间建立初始TCP连接之前,还包括:确定所述请求端和所述响应端之间的各传输路径两端是否支持长连接以及是否支持TFO协议;所述在所述最优传输路径建立优选TCP连接,包括:根据各传输路径两端是否支持长连接以及是否支持TFO协议,确定出所述最优传输路径两端是否支持长连接以及是否支持TFO协议,并根据确定出的结果在所述最优传输路径建立优选TCP连接。
可选的,待传输文件为K个数据包在请求端和响应端之间进行传输;K为一个或多个;请求端的CPU为多核CPU;方法还包括:将请求端中的CPU和网卡队列进行绑定;其中,每个CPU对应绑定一个网卡队列,组成网络数据传输通道;网络数据传输通道的数量为请求端中的CPU个数和网卡队列个数最小值;若请求端中的任一个网络数据传输通道接收到K个数据包中的一个,则:以接收该数据包的网络数据传输通道接收K个数据包;并由网络数据传输通道的CPU进行处理。
本发明实施例提供一种文件传输装置,用于执行适用于小文件传输的文件传输方法,该装置包括:第一连接建立单元,用于当请求端与响应端之间存在数据传输需求,在所述请求端和所述响应端之间建立初始TCP连接,并在所述请求端和所述响应端之间进行最优传输路径的查找;第一传输单元,用于通过所述初始TCP连接在所述请求端和所述响应端之间传输待传输文件;第二连接建立单元,用于若所述待传输文件未传输完、且在所述请求端和所述响应端之间确定出最优传输路径,则在所述最优传输路径建立优选TCP连接;第二传输单元,用于通过所述优选TCP连接在所述请求端和所述响应端之间传输所述待传输文件的尚未传输部分。
可选的,所述第二连接建立单元,还用于:若所述待传输文件传输完毕且所述请求端和所述响应端之间尚未确定出最优传输路径,则释放所述初始TCP连接并结束所述最优传输路径的查找。
可选的,所述第一连接建立单元,用于:若所述请求端和所述响应端均支持TFO协议,则在所述请求端和所述响应端之间建立初始TFO短连接;所述初始TFO短连接在传输完所述待传输文件之后释放。
可选的,所述第一连接建立单元,用于:若所述请求端和所述响应端均支持长连接,则在所述请求端和所述响应端之间建立初始TCP长连接或初始TFO长连接;所述初始TCP长连接或所述初始TFO长连接在预设时长内保持连接,在所述预设时长到达时且当前文件传输完毕后释放。
可选的,所述第二连接建立单元,用于:若所述初始TCP长连接或所述初始TFO长连接在预设时长内接收到M个请求,则在第M个请求对应的待传输文件传输完成、且所述请求端和所述响应端之间尚未确定出最优传输路径,则释放所述初始TCP长连接或所述初始TFO长连接,并结束所述最优传输路径的查找。
可选的,该装置还包括处理单元,用于:确定所述请求端和所述响应端之间的各传输路径两端是否支持长连接以及是否支持TFO协议;所述第二连接建立单元,用于:根据各传输路径两端是否支持长连接以及是否支持TFO协议,确定出所述最优传输路径两端是否支持长连接以及是否支持TFO协议,并根据确定出的结果在所述最优传输路径建立优选TCP连接。
可选的,待传输文件为K个数据包在所述请求端和所述响应端之间进行传输;所述K为一个或多个;所述请求端的CPU为多核CPU;所述处理单元还用于:将请求端中的CPU和网卡队列进行绑定;其中,每个CPU对应绑定一个网卡队列,组成网络数据传输通道;若请求端中的任一个网络数据传输通道接收到所述K个数据包中的一个,则:以接收该数据包的网络数据传输通道接收所述K个数据包;并由所述网络数据传输通道的CPU进行处理。
本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使所述计算机执行上述任一实施例所述的方法。
本发明实施例提供一种计算机设备,包括:存储器,用于存储程序指令;处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行上述任一实施例所述的方法。
本发明实施例中,当请求端与响应端之间存在数据传输需求,在请求端和响应端之间建立初始TCP连接,并在请求端和响应端之间进行最优传输路径的查找;通过初始TCP连接在请求端和响应端之间传输待传输文件;若待传输文件未传输完、且在请求端和响应端之间确定出最优传输路径,则在最优传输路径建立优选TCP连接;通过优选TCP连接在请求端和响应端之间传输待传输文件的尚未传输部分。可见,本发明实施例若在待传输文件未传输完确定出最优传输路径,则在最优路径建立优选TCP连接之后释放初始TCP连接,而通过优选TCP连接传输待传输文件的尚未传输部分,而不像现有技术中一直在同一条TCP连接上传输待传输文件。如此,待传输文件的尚未传输部分在最优传输路径传输,可以节省待传输文件的尚未传输部分的传输时间,实现提高文件传输速度,进而改善用户的上网体验。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍。
图1为本发明实施例提供的多路径系统传输中间一公里传输示意图;
图2为本发明实施例提供的多路径系统传输最后一公里传输示意图;
图3为本发明实施例提供的一种文件传输方法流程示意图;
图4为本发明实施例提供的建立初始TCP连接的方法流程示意图;
图5为本发明和现有技术在RTT为220ms路径上传输4KB文件的时间对比示意图;
图6为本发明和现有技术在RTT为220ms路径上传输64KB文件的时间对比示意图;
图7为本发明和现有技术在RTT为220ms路径上传输128KB文件的时间对比示意图;
图8为本发明和现有技术在RTT为23ms路径上传输4KB文件的时间对比示意图;
图9为本发明和现有技术在RTT为23ms路径上传输16KB文件的时间对比示意图;
图10为本发明实施例提供的一种文件传输装置的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例中,为了解决现有技术中的文件传输方案并没有在小文件传输时发挥多路径传输优势问题,本发明提供一种适用于小文件传输的文件传输方法,下面对如何实现小文件传输进行介绍。
图3示例性示出了本发明实施例提供的一种文件传输方法流程示意图。如图3所示,本发明实施例提供的文件传输方法适用于小文件传输,该方法包括以下步骤:
步骤301:当请求端与响应端之间存在数据传输需求,在请求端和响应端之间建立初始TCP连接,并在请求端和响应端之间进行最优传输路径的查找;
步骤302:通过初始TCP连接在请求端和响应端之间传输待传输文件;
步骤303:若待传输文件未传输完、且在请求端和响应端之间确定出最优传输路径,则在最优传输路径建立优选TCP连接;
步骤304:通过优选TCP连接在请求端和响应端之间传输待传输文件的尚未传输部分。
本发明实施例中,当请求端与响应端之间存在数据传输需求,在请求端和响应端之间建立初始TCP连接,并在请求端和响应端之间进行最优传输路径的查找;通过初始TCP连接在请求端和响应端之间传输待传输文件;若待传输文件未传输完、且在请求端和响应端之间确定出最优传输路径,则在最优传输路径建立优选TCP连接;通过优选TCP连接在请求端和响应端之间传输待传输文件的尚未传输部分。可见,本发明实施例若在待传输文件未传输完确定出最优传输路径,则在最优路径建立优选TCP连接之后释放初始TCP连接,而通过优选TCP连接传输待传输文件的尚未传输部分,而并不像现有技术中一直在同一条TCP连接上传输待传输文件。如此,待传输文件的尚未传输部分在最优传输路径传输,可以节省待传输文件的尚未传输部分的传输时间,实现提高文件传输速度,进而改善用户的上网体验。
上述步骤303中,一种实现方式为:若待传输文件未传输完、且在请求端和响应端之间确定出最优传输路径,则在最优传输路径建立优选TCP连接,并不释放初始TCP连接;另一种实现方式为:若待传输文件未传输完、且在请求端和响应端之间确定出最优传输路径,则在最优传输路径建立优选TCP连接,并释放初始TCP连接。
本发明实施例中,两个网络设备之间存在多条路径,每条路径都可以建立一条TCP连接。每条TCP连接由一个四元组唯一确定,四元组为源IP地址、目的IP地址、源端口标识、目的端口标识。
举个例子,比如设备A的端口标识为PortA、IP地址为IPA,设备B的端口标识为PortB、IP地址为IPB,那么在设备A和设备B之间存在的路径为:四元组(PortA、IPA、PortB、IPB)组成的一条路径。再比如,每个设备可以有多个端口和多个IP地址,比如设备A的端口标识为PortA,IP地址有IPA1、IPA2;设备B的端口标识为PortB,IP地址有IPB1、IPB2。
再举个例子,在设备A和设备B之间可以组成的四元组的数量为4,分别为:(PortA、IPA1、PortB、IPB1)、(PortA、IPA1、PortB、IPB2)、(PortA、IPA2、PortB、IPB1)和(PortA、IPA2、PortB、IPB2),也就是说,设备A和设备B之间的路径数量。
基于步骤301,最优传输路径的查找方式有多种,本发明实施例提供一种实现方式为:请求端和响应端之间的各条路径确定出探测包往返传输时间最小的路径作为最优路径。具体的实现方法为:定时在请求端和响应端之间的各条路径中发送探测包,从而监测各条路径中探测包从请求端发出并收到响应端的响应包的往返传输时间(Round-Trip Time,简称RTT);各条路径中RTT越小,说明路径传输速度越快。在请求端和响应端之间的TCP连接上未传输完时,确定出最优路径,那么将尚未传输部分从最优路径上建立的优选TCP连接传输比从初始TCP连接传输速度更快,如此,可以提高待传输文件在请求端和响应端之间的传输速度,进而改善用户的上网体验。
本发明实施例中,建立的优选TCP连接和初始TCP连接的四元组不同,四元组不同包括:两条TCP连接的四元组(源IP地址、目的IP地址、源端口标识、目的端口标识)中存在任一元或任多元不同。
本发明实施例中,通过初始TCP连接在请求端和响应端之间传输待传输文件之后,还包括:若待传输文件传输完毕且请求端和响应端之间尚未确定出最优传输路径,则结束最优传输路径的查找。如此,待传输文件从初始TCP连接传输完成,在下一次请求端与响应端之间存在数据传输需求时,再重新建立TCP连接进行文件传输。
在请求端和响应端之间需要建立TCP连接时,根据请求端和响应端之间是否支持长连接,主要可以建立以下两种类型的TCP连接:TCP长连接和TCP短连接。若请求端和响应端支持长连接,响应端接收到请求端发送的携带有keep-alive的请求时,在请求端和响应端之间建立TCP长连接,该TCP长连接可以在预设时长内不会释放。若请求端和响应端之间存在任一端不支持长连接,那么在请求端和响应端之间建立TCP短连接。根据请求端和响应端之间是否支持TFO协议,在请求端和响应端之间主要可以建立以下两种类型的连接:TCP连接和TFO(TCP Fast Open)连接。一种可选的实施方式中,在请求端和响应端之间建立初始TCP连接,包括:若请求端和响应端均支持TFO协议,则在请求端和响应端之间建立初始TFO短连接;初始TFO短连接在传输完待传输文件之后释放。如此,需要三次握手在请求端和响应端之间建立初始TFO短连接,由于请求端缓存有TFO cookie,在请求端和响应端的IP地址均不变的情况下,当再次在请求端和响应端建立TFO短连接时,在第二次握手之后不需要等请求端发送的ACK消息响应就可以直接向请求端传输数据,这样可以减少一次握手时间,进而可以提高文件传输速度。
另一种可选的实施方式中,在请求端和响应端之间建立初始TCP连接,包括:若请求端和响应端均支持长连接,则在请求端和响应端之间建立初始TCP长连接或初始TFO长连接;初始TCP长连接或初始TFO长连接在预设时长内保持连接,在预设时长到达时且当前文件传输完毕后释放。本发明实施例中,预设时长可以根据实际需要进行设置,此处不作限制。以初始TCP长连接建立为例,比如预设时长为2小时,请求端直接通过初始TCP长连接向响应端发送请求,响应端通过初始TCP长连接向请求端传输待传输文件,直到初始TCP长连接建立后2小时到达时,且当前文件传输完毕后,在请求端和响应端之间释放。如此,在请求端和响应端之间建立初始TCP长连接或初始TFO长连接,可以实现建立一次连接,多次传输请求和请求对应的待传输文件,相较于短连接,不用每次发送请求之前都需要建立连接,可以减少每次建立连接的三次握手时间。
一种可选的实施方式中,在初始TCP长连接或初始TFO长连接建立之后,初始TCP长连接或初始TFO长连接在未达到预设时长、且传输完M个请求时释放,M为大于等于1的整数。可选的,若待传输文件传输完成且请求端和响应端之间尚未确定出最优传输路径,则结束最优传输路径的查找,包括:若初始TCP长连接或初始TFO长连接在预设时长内接收到M个请求,则在第M个请求对应的待传输文件传输完成、且请求端和响应端之间尚未确定出最优传输路径,结束最优传输路径的查找。优选的,在本发明实施例中,预设请求数量的阈值为M个,当请求数量超出M个时,释放初始TCP长连接或初始TFO长连接,通过建立新的TCP长连接或TFO长连接传输超出M个以后的请求及响应文件,以免在系统负载压力较大时,新的请求无法建立连接而得不到响应。同时,可以减少每个TCP长连接或TFO长连接的连接时间,使得请求端和响应端之间不需要在预设时长内一直保持连接,以免在系统负载压力较大时,新的请求因为无法建立连接而得不到响应;并且可以节省系统的资源。
本发明实施例中,在请求端和响应端之间建立初始TCP连接之前,还包括:确定请求端和响应端之间的各传输路径两端是否支持长连接以及是否支持TFO协议,在请求端和响应端之间建立初始TCP连接时,根据上述确定的结果确定建立的初始TCP连接为以下类型中的哪一种:初始TCP短连接、初始TCP长连接、初始TFO长连接或初始TFO短连接。同样的,在最优传输路径建立优选TCP连接也可以采用同样的方式实现:根据各传输路径两端是否支持长连接以及是否支持TFO协议,确定出最优传输路径两端是否支持长连接以及是否支持TFO协议,并根据确定出的结果在最优传输路径建立优选TCP连接。如此,可以节省确定最优传输路径两端支持的连接类型的时间,进而节省建立优选TCP连接的时间。
为了更清楚的介绍上述方法流程,本发明实施例提供以下示例。
图4示例性示出了本发明实施例提供的建立初始TCP连接的方法流程示意图,基于图1所示的系统架构,如图4所示,本发明实施例提供的另一种文件传输方法,适用于小文件传输,该方法包括以下步骤:
步骤401:当请求端与响应端之间存在数据传输需求,请求端和所述响应端是否均支持长连接;若是,则执行步骤402;若否,则执行步骤406;
步骤402:请求端和所述响应端是否均支持TFO协议;若是,则执行步骤403;若否,则执行步骤404;
步骤403:在请求端和响应端之间建立初始TFO长连接;之后,执行步骤405;
步骤404:在请求端和响应端之间建立初始TCP长连接;之后,执行步骤405;
步骤405:初始TCP长连接或初始TFO长连接在预设时长内保持连接,在预设时长结束时且当前文件传输完毕后释放;之后,结束;
步骤406:请求端和所述响应端是否均支持TFO协议;若是,则执行步骤407;若否,则执行步骤408;
步骤407:在请求端和响应端之间建立初始TFO短连接;之后,执行步骤409;
步骤408:在请求端和响应端之间建立初始TCP短连接;之后,执行步骤409;
步骤409:通过所述初始TCP短连接或初始TFO短连接传输请求,并在传输完请求对应的待传输文件之后释放;之后,结束。
本发明实施例中,请求端和响应端中都可能存在多个CPU和网卡队列,在请求端向响应端发送请求之后,在请求端与响应端之间传输请求对应的待传输文件;可选的,待传输文件为K个数据包在请求端和响应端之间进行传输;K为一个或多个。
为了减少请求端在接收到K个数据包的处理时间,本发明实施例提供一种可选的实施方式:将请求端中的CPU和网卡队列进行绑定;其中,每个CPU对应绑定一个网卡队列,组成网络数据传输通道;网络数据传输通道的数量为请求端中的CPU个数和网卡队列个数最小值。举个例子,比如,请求端的CPU为4个,网卡队列为6个,那么组成的网络数据传输通道的数量为4个。
若请求端中的任一个网络数据传输通道接收到K个数据包中的一个,则:以接收该数据包的网络数据传输通道接收K个数据包;并由该网络数据传输通道的CPU进行处理。也就是说,通过网络数据传输通道的同一个网卡队列接收K个数据包,并将K个数据包从该网卡队列发送至该网卡队列绑定的CPU进行处理。如此,可以保证同一个待传输文件的K个数据包全部通过同一个网络数据传输通道,可以避免K个数据包进入不同的CPU而增加数据包组包的时间,进而减少文件传输的时间,进而达到提高文件传输速度的效果。
基于相同构思,在响应端也设有网络数据传输通道,本发明实施例提供一种可选的实施方式:将响应端中的CPU和网卡队列进行绑定;其中,每个CPU对应绑定一个网卡队列,组成网络数据传输通道;网络数据传输通道的数量为响应端中的CPU个数和网卡队列个数最小值。以从响应端向请求端发送待传输文件的K个数据包为例,在传输K个数据包时,通过响应端中的同一个网络数据传输通道发送K个数据包。如此,可以提高数据传输效率。
为了更好的介绍本发明实施例中文件传输方法的效果,下面提供新加坡节点访问福州电信的具体示例。
图5示例性示出了本发明和现有技术在RTT为220ms路径上传输4KB文件的时间对比示意图;如图5所示,横坐标为实验组数,纵坐标为传输时间。曲线501为97个4KB文件在现有技术中TCP连接上传输时间,每个4KB文件平均传输时间为0.45s;曲线502为97个4KB文件在本发明TFO长连接上传输时间,每个4KB文件平均传输时间为0.22s。
图6示例性示出了本发明和现有技术在RTT为220ms路径上传输64KB文件的时间对比示意图;如图6所示,曲线601中,现有技术每个64KB文件平均传输时间为0.70s,曲线602中,本发明每个64KB文件平均传输时间为0.60s。
图7示例性示出了本发明和现有技术在RTT为220ms路径上传输128KB文件的时间对比示意图;如图7所示,曲线701中,现有技术每个128KB文件平均传输时间为0.90s,曲线702中,本发明每个128KB文件平均传输时间为0.70s。
下面提供国内跨省两台服务器之间传输文件的具体示例。
图8为本发明和现有技术在RTT为23ms路径上传输4KB文件的时间对比示意图;如图8所示,横坐标为实验组数,纵坐标为传输时间。曲线801为97个4KB文件在现有技术中TCP连接上传输时间,每个4KB文件平均传输时间为0.045s;曲线802为97个4KB文件在本发明TFO长连接上传输时间,每个4KB文件平均传输时间为0.026s。
图9为本发明和现有技术在RTT为23ms路径上传输16KB文件的时间对比示意图;如图9所示,曲线901为97个16KB文件在现有技术中TCP连接上传输时间,每个16KB文件平均传输时间为0.06s;曲线902为97个16KB文件在本发明TFO长连接上传输时间,每个16KB文件平均传输时间为0.04s。
从图5至图9所示的示例中,可以看出本发明实施例的文件传输方案文件传输速度比现有技术中有明显提高。
通过上述实施例可以看出,本发明实施例若在待传输文件未传输完确定出最优传输路径,则在最优路径建立优选TCP连接之后,通过优选TCP连接传输待传输文件的尚未传输部分,而不像现有技术中一直在同一条TCP连接上传输待传输文件。如此,待传输文件的尚未传输部分在最优传输路径传输,可以节省待传输文件的尚未传输部分的传输时间,实现提高文件传输速度,进而改善用户的上网体验。
基于以上实施例以及相同构思,图10为本发明实施例提供的文件传输装置结构示意图,该文件传输装置用于执行适用于小文件传输的文件传输方法,如图10所示,该装置1000可以实现如上图3中所示的任一项或任多项对应的方法步骤。该装置1000可以包括第一连接建立单元1001、第一传输单元1002、第二连接建立单元1003、第二传输单元1004;可选的,还包括处理单元1005。
第一连接建立单元1001,用于当请求端与响应端之间存在数据传输需求,在请求端和响应端之间建立初始TCP连接,并在请求端和响应端之间进行最优传输路径的查找;第一传输单元1002,用于通过初始TCP连接在请求端和响应端之间传输待传输文件;第二连接建立单元1003,用于若待传输文件未传输完、且在请求端和响应端之间确定出最优传输路径,则在最优传输路径建立优选TCP连接;可选的,在建立优选TCP连接后,可以释放初始TCP连接,也可以不释放初始TCP连接;第二传输单元1004,用于通过优选TCP连接在请求端和响应端之间传输待传输文件的尚未传输部分。
可选的,第二连接建立单元1003,还用于:若待传输文件传输完毕且请求端和响应端之间尚未确定出最优传输路径,则释放初始TCP连接并结束最优传输路径的查找。
可选的,第一连接建立单元1001,用于:若请求端和响应端均支持TFO协议,则在请求端和响应端之间建立初始TFO短连接。
可选的,第一连接建立单元1001,用于:若请求端和响应端均支持长连接,则在请求端和响应端之间建立初始TCP长连接或初始TFO长连接;初始TCP长连接或初始TFO长连接在预设时长内保持连接,在预设时长到达且当前文件传输完毕后释放。
可选的,第二连接建立单元1003,用于:若初始TCP长连接或初始TFO长连接在预设时长内接收到M个请求,则在第M个请求对应的待传输文件传输完成、且请求端和响应端之间尚未确定出最优传输路径,则释放初始TCP长连接或初始TFO长连接,并结束最优传输路径的查找。
可选的,该装置还包括处理单元1005,用于:确定请求端和响应端之间的各传输路径两端是否支持长连接以及是否支持TFO协议;第二连接建立单元,用于:根据各传输路径两端是否支持长连接以及是否支持TFO协议,确定出最优传输路径两端是否支持长连接以及是否支持TFO协议,并根据确定出的结果在最优传输路径建立优选TCP连接。
可选的,待传输文件为K个数据包在所述请求端和所述响应端之间进行传输;所述K为一个或多个;所述请求端的CPU为多核CPU;处理单元1005,还用于:将请求端中的CPU和网卡队列进行绑定;其中,每个CPU对应绑定一个网卡队列,组成网络数据传输通道;若请求端中的任一个网络数据传输通道接收到K个数据包中的一个,则:以接收该数据包的网络数据传输通道接收所述K个数据包;并由所述网络数据传输通道的CPU进行处理。可选的,网络数据传输通道的数量为请求端中的CPU个数和网卡队列个数最小值。
上述产品可执行本申请实施例所提供的方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本申请实施例所提供的方法。
本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使所述计算机执行上述所述的方法。
本发明实施例提一种计算机设备,包括:存储器,用于存储程序指令;处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行上述所述的方法。
本领域内的技术人员应明白,本发明实施例可提供为方法、系统、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (14)
1.一种文件传输方法,适用于小文件传输,其特征在于,包括:
当请求端与响应端之间存在数据传输需求,在所述请求端和所述响应端之间建立初始TCP连接,并在所述请求端和所述响应端之间进行最优传输路径的查找;
通过所述初始TCP连接在所述请求端和所述响应端之间传输待传输文件;
若所述待传输文件未传输完、且在所述请求端和所述响应端之间确定出最优传输路径,则在所述最优传输路径建立优选TCP连接;
通过所述优选TCP连接在所述请求端和所述响应端之间传输所述待传输文件的尚未传输部分;
若所述待传输文件传输完毕且所述请求端和所述响应端之间尚未确定出最优传输路径,则释放所述初始TCP连接并结束所述最优传输路径的查找。
2.如权利要求1所述的方法,其特征在于,所述在所述请求端和所述响应端之间建立初始TCP连接,包括:
若所述请求端和所述响应端均支持TFO协议,则在所述请求端和所述响应端之间建立初始TFO短连接;所述初始TFO短连接在传输完所述待传输文件之后释放。
3.如权利要求1或2所述的方法,其特征在于,所述在所述请求端和所述响应端之间建立初始TCP连接,包括:
若所述请求端和所述响应端均支持长连接,则在所述请求端和所述响应端之间建立初始TCP长连接或初始TFO长连接;所述初始TCP长连接或所述初始TFO长连接在预设时长内保持连接,在所述预设时长到达时且当前文件传输完毕后释放。
4.如权利要求3所述的方法,其特征在于,所述若所述待传输文件传输完成且所述请求端和所述响应端之间尚未确定出最优传输路径,则释放所述初始TCP连接并结束所述最优传输路径的查找,包括:
若所述初始TCP长连接或所述初始TFO长连接在预设时长内接收到M个请求,则在第M个请求对应的待传输文件传输完成、且所述请求端和所述响应端之间尚未确定出最优传输路径,则释放所述初始TCP长连接或所述初始TFO长连接,并结束所述最优传输路径的查找。
5.如权利要求1所述的方法,其特征在于,所述在所述请求端和所述响应端之间建立初始TCP连接之前,还包括:
确定所述请求端和所述响应端之间的各传输路径两端是否支持长连接以及是否支持TFO协议;
所述在所述最优传输路径建立优选TCP连接,包括:
根据各传输路径两端是否支持长连接以及是否支持TFO协议,确定出所述最优传输路径两端是否支持长连接以及是否支持TFO协议,并根据确定出的结果在所述最优传输路径建立优选TCP连接。
6.如权利要求1所述的方法,其特征在于,所述待传输文件为K个数据包在所述请求端和所述响应端之间进行传输;所述K为一个或多个;所述请求端的CPU为多核CPU;所述方法还包括:
将所述请求端中的CPU和网卡队列进行绑定;其中,每个CPU对应绑定一个网卡队列,组成网络数据传输通道;若请求端中的任一个网络数据传输通道接收到所述K个数据包中的一个,则:以接收该数据包的网络数据传输通道接收所述K个数据包;并由所述网络数据传输通道的CPU进行处理。
7.一种文件传输装置,用于执行适用于小文件传输的文件传输方法,其特征在于,所述装置包括:
第一连接建立单元,用于当请求端与响应端之间存在数据传输需求,在所述请求端和所述响应端之间建立初始TCP连接,并在所述请求端和所述响应端之间进行最优传输路径的查找;
第一传输单元,用于通过所述初始TCP连接在所述请求端和所述响应端之间传输待传输文件;
第二连接建立单元,用于若所述待传输文件未传输完、且在所述请求端和所述响应端之间确定出最优传输路径,则在所述最优传输路径建立优选TCP连接;
第二传输单元,用于通过所述优选TCP连接在所述请求端和所述响应端之间传输所述待传输文件的尚未传输部分;
所述第二连接建立单元,还用于:
若所述待传输文件传输完毕且所述请求端和所述响应端之间尚未确定出最优传输路径,则释放所述初始TCP连接并结束所述最优传输路径的查找。
8.如权利要求7所述的装置,其特征在于,所述第一连接建立单元,用于:
若所述请求端和所述响应端均支持TFO协议,则在所述请求端和所述响应端之间建立初始TFO短连接;所述初始TFO短连接在传输完所述待传输文件之后释放。
9.如权利要求7或8所述的装置,其特征在于,所述第一连接建立单元,用于:
若所述请求端和所述响应端均支持长连接,则在所述请求端和所述响应端之间建立初始TCP长连接或初始TFO长连接;所述初始TCP长连接或所述初始TFO长连接在预设时长内保持连接,在所述预设时长到达时且当前文件传输完毕后释放。
10.如权利要求9所述的装置,其特征在于,所述第二连接建立单元,用于:
若所述初始TCP长连接或所述初始TFO长连接在预设时长内接收到M个请求,则在第M个请求对应的待传输文件传输完成、且所述请求端和所述响应端之间尚未确定出最优传输路径,则释放所述初始TCP长连接或所述初始TFO长连接,并结束所述最优传输路径的查找。
11.如权利要求7所述的装置,其特征在于,还包括处理单元,用于:
确定所述请求端和所述响应端之间的各传输路径两端是否支持长连接以及是否支持TFO协议;
所述第二连接建立单元,用于:
根据各传输路径两端是否支持长连接以及是否支持TFO协议,确定出所述最优传输路径两端是否支持长连接以及是否支持TFO协议,并根据确定出的结果在所述最优传输路径建立优选TCP连接。
12.如权利要求7所述的装置,其特征在于,所述待传输文件为K个数据包在所述请求端和所述响应端之间进行传输;所述K为一个或多个;所述请求端的CPU为多核CPU;所述处理单元还用于:
将所述请求端中的CPU和网卡队列进行绑定;其中,每个CPU对应绑定一个网卡队列,组成网络数据传输通道;若请求端中的任一个网络数据传输通道接收到所述K个数据包中的一个,则:以接收该数据包的网络数据传输通道接收所述K个数据包;并由所述网络数据传输通道的CPU进行处理。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使所述计算机执行权利要求1至6任一权利要求所述的方法。
14.一种计算机设备,其特征在于,包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行如权利要求1至6任一权利要求所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710946910.2A CN109660495B (zh) | 2017-10-12 | 2017-10-12 | 一种文件传输方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710946910.2A CN109660495B (zh) | 2017-10-12 | 2017-10-12 | 一种文件传输方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109660495A CN109660495A (zh) | 2019-04-19 |
CN109660495B true CN109660495B (zh) | 2021-08-27 |
Family
ID=66109288
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710946910.2A Active CN109660495B (zh) | 2017-10-12 | 2017-10-12 | 一种文件传输方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109660495B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111935246A (zh) * | 2020-07-21 | 2020-11-13 | 山东省计算中心(国家超级计算济南中心) | 一种基于云边协作的用户生成内容上传方法和系统 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100581257C (zh) * | 2006-12-19 | 2010-01-13 | 浙江工业大学 | 基于视频帧拆分的实时流媒体传输方法及系统 |
CN101964785A (zh) * | 2010-09-19 | 2011-02-02 | 中兴通讯股份有限公司 | Nat网络中sip终端间文件传输的方法、终端及系统 |
CN104579961B (zh) * | 2013-10-11 | 2018-09-07 | 中国移动通信集团公司 | 数据报文的调度方法及装置 |
KR20150110103A (ko) * | 2014-03-24 | 2015-10-02 | 삼성전자주식회사 | 전송 경로 최적화를 위한 컨텐츠 서버 간 핸드오버 방법 및 장치 |
CN103944825B (zh) * | 2014-04-01 | 2017-05-17 | 广州华多网络科技有限公司 | 互联网通信系统和方法 |
CN104281493A (zh) * | 2014-09-28 | 2015-01-14 | 般固(北京)科技股份有限公司 | 一种提升应用交付通讯平台多进程程序性能的方法 |
CN104618236A (zh) * | 2015-01-21 | 2015-05-13 | 网宿科技股份有限公司 | 一种加速网络的并行数据传输系统及方法 |
CN105101316B (zh) * | 2015-07-10 | 2020-02-11 | 山东聚盛联创信息科技有限公司 | 多数据通道的数据传输方法及装置 |
CN105578553B (zh) * | 2015-12-23 | 2019-12-13 | 北京奇虎科技有限公司 | 数据通信发起、中继、接收方法及其装置 |
CN105721570B (zh) * | 2016-02-04 | 2019-06-25 | 福建星网锐捷通讯股份有限公司 | 数据点对点传输方法及装置 |
CN106850805A (zh) * | 2017-02-06 | 2017-06-13 | 网宿科技股份有限公司 | 一种数据传输方法及装置 |
-
2017
- 2017-10-12 CN CN201710946910.2A patent/CN109660495B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN109660495A (zh) | 2019-04-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20170302724A1 (en) | Virtual Channel Joining | |
CN110022264B (zh) | 控制网络拥塞的方法、接入设备和计算机可读存储介质 | |
CN109412946B (zh) | 一种确定回源路径的方法、装置、服务器及可读存储介质 | |
JP2019503123A (ja) | マルチパス転送設計 | |
US20190312938A1 (en) | Data Transmission Method And Apparatus | |
US9794354B1 (en) | System and method for communication between networked applications | |
KR101938623B1 (ko) | 오픈 플로우 통신 방법, 시스템, 제어기 및 서비스 게이트웨이 | |
WO2014180407A1 (zh) | 推送方法及装置 | |
CN111107672B (zh) | 一种建立多路径连接的子流的方法、装置和系统 | |
WO2024037296A1 (zh) | 基于协议族的quic数据传输方法及装置 | |
CN111193756B (zh) | 一种vxlan隧道负载均衡方法及相关设备 | |
CN113891396B (zh) | 数据包的处理方法、装置、计算机设备和存储介质 | |
US9961024B2 (en) | Enhanced acknowledgement handling in communication packet transfer | |
Kogias et al. | Bypassing the load balancer without regrets | |
CN110417632B (zh) | 一种网络通信方法、系统及服务器 | |
CN112165449B (zh) | web应用实时权限的控制方法、电子装置和存储介质 | |
WO2016165524A1 (zh) | 内容访问方法、无线接入网内容分发网络基站和核心内容分发网络装置 | |
CN109660495B (zh) | 一种文件传输方法和装置 | |
CN107483628B (zh) | 基于dpdk的单向代理方法及系统 | |
US11223567B2 (en) | Transmission control protocol session mobility | |
CN113315648A (zh) | 用于执行虚拟化的网络功能的方法及装置 | |
CN112968965A (zh) | Nfv网络节点的元数据服务方法、服务器及存储介质 | |
US10887236B2 (en) | Method, network interface card, and computer program product for load balance | |
CN112838983A (zh) | 数据传输方法、系统、设备、代理服务器及存储介质 | |
CN115150333B (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 |