CN115695408A - 文件传输方法、装置、计算机设备和存储介质 - Google Patents
文件传输方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN115695408A CN115695408A CN202111176502.6A CN202111176502A CN115695408A CN 115695408 A CN115695408 A CN 115695408A CN 202111176502 A CN202111176502 A CN 202111176502A CN 115695408 A CN115695408 A CN 115695408A
- Authority
- CN
- China
- Prior art keywords
- information block
- information
- file
- transmission space
- sending
- 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.)
- Pending
Links
Images
Landscapes
- Communication Control (AREA)
Abstract
本申请涉及一种文件传输方法、装置、计算机设备和存储介质。所述方法包括:向接收端发送传输空间建立请求,传输空间建立请求至少携带有区块组装时间段和文件的大小。接收接收端发送的与传输空间建立请求对应的传输空间建立响应,传输空间建立响应至少携带有信息块大小和信息块标识,信息块大小和信息块标识是根据区块组装时间段和文件的大小生成的。根据信息块大小和文件的大小将文件切分成至少一个信息块。将信息块标识分配给信息块,且每一个信息块对应一个信息块标识。本申请使得大数据量的文件传输转换成小信息块的传输,同时消除了确认协议,极大地提高了大文件的传输速度。
Description
技术领域
本申请涉及区块链技术领域,特别是涉及一种文件传输方法、装置、计算机设备和存储介质。
背景技术
随着区块链被广泛地应用到企业级软件系统,存储在区块链上的信息不可篡改的特性,被用在信息永久性存储机制。区块链操作系统具有去中心化特征,依赖于快速高效的网络数据传输技术实现大数据文件的分布式存储。
受区块链的块链体系生成速度的限制,大数据量的文件必须在有限的确定时间内传输到区块链的分布式文件存储空间,并且将唯一标识(数字指纹)记录到区块上。
如何实现大数据量的文件在有限时间内快速传输成为区块链操作系统在企业级软件系统应用的前提条件。
发明内容
基于此,有必要针对上述技术问题,提供一种能够实现大数据量的文件在有限时间内能被快速传输的文件传输方法、装置、计算机设备和存储介质。
一种文件传输方法,应用于发送端,所述方法包括:
向接收端发送传输空间建立请求,所述传输空间建立请求至少携带有区块组装时间段和文件的大小;
接收所述接收端发送的与所述传输空间建立请求对应的传输空间建立响应,所述传输空间建立响应至少携带有信息块大小和信息块标识,所述信息块大小和所述信息块标识是根据所述区块组装时间段和文件的大小生成的;
根据所述信息块大小和所述文件的大小将所述文件切分成至少一个信息块;
将所述信息块标识分配给所述信息块,且每一个信息块对应一个信息块标识;
通过至少两个并行发送线程向所述接收端发送所述信息块。
在其中一个实施例中,所述通过至少两个并行线程向所述接收端发送所述信息块之前,还包括:
以所述信息块标识作为键值构建发送端主框架,并生成所述发送端主框架的框架标识;
基于所述信息块标识将所述信息块填充到所述发送端主框架上并将所述发送端主框架的框架标识绑定到所述信息块上;
根据所述主框架复制至少一个发送端副框架并将所述框架标识改为所述发送端副框架的框架标识;所述发送端副框架的数量与接收端副框架的数量一致;
分配不同的并行数据链路给对应信息块;所述对应信息块指具有相同的所述信息块标识以及不同的所述框架标识的信息块;
所述通过至少两个并行线程向所述接收端发送所述信息块,包括:
通过所述信息块分配到的数据链路并行发送所述信息块。
在其中一个实施例中,所述方法还包括:
接收所述接收端发送的传输空间关闭请求,所述传输空间关闭请求至少携带有所述接收端主框架上的信息块信息;
当所述信息块信息表征所述接收端主框架上的所述信息块来自于所述发送端副框架时,将所述发送端主框架上所述信息块被分配的数据链路调整为所述发送端副框架上对应信息块被分配的数据链路。
在其中一个实施例中,所述方法还包括:
接收所述接收端发送的传输空间关闭请求,所述传输空间关闭请求至少携带有所述接收端所计算的所述文件的接收端数字指纹;
计算所述文件的发送端数字指纹;
当接收端数字指纹和发送端数字指纹一致时,更新传输日志为成功并记录所有所述信息块标识;
清除所述并行线程、所述主框架和所述副框架;
向接收端发送关闭成功确认消息。
一种文件传输方法,应用于接收端,所述方法包括:
接收发送端发送的传输空间建立请求,所述传输空间建立请求至少携带有区块组装时间段和文件的大小;
基于所述传输空间建立请求,计算信息块的大小和信息块标识;
向所述发送端发送传输空间建立响应,所述传输空间建立响应至少携带所述信息块的大小和所述信息块标识;
通过至少两个并行接收线程接收所述发送端发送的所述信息块;
将所述信息块合成所述文件。
在其中一个实施例中,所述信息块的大小等于区块组装时间段乘以所述接收端和所述发送端之间的数据传输速率。
在其中一个实施例中,在所述通过至少两个并行线程接收所述发送端发送的信息块之前,还包括:
以所述信息块标识作为键值构建接收端主框架;
根据所述接收端主框架复制至少一个接收端副框架;所述接收端副框架的数量与发送端副框架的数量一致;
所述通过至少两个并行线程接收所述发送端发送的所述信息块,包括:
基于所述信息块标识将所述信息块填满所述接收端主框架;
当所述接收端主框架上与所述信息块标识对应的位置已被填充时,将后接收到的所述信息块填充到所述接收端副框架上与所述信息块标识对应的位置。
在其中一个实施例中,在所述基于所述信息块标识将所述信息块填满所述接收端主框架之后,还包括:
向所述发送端发送传输空间关闭请求,所述传输空间关闭请求至少携带所述接收端主框架上的信息块信息,所述信息块信息用于指示所述发送端调整发送端主框架上所述信息块被分配的数据链路。
在其中一个实施例中,所述方法还包括:
计算所述文件的数字指纹;
向所述发送端发送传输空间关闭请求,所述传输空间关闭请求至少携带有所述数字指纹;
接收所述发送端发送的传输空间关闭成功的消息;
更新传输日志并记录所有所述信息块;
清除所述并行线程和所述主框架和所述副框架。
一种文件传输装置,应用于发送端,所述装置包括:
传输空间建立请求模块,用于向接收端发送传输空间建立请求,所述传输空间建立请求至少携带有区块组装时间段和文件的大小;
传输空间建立响应接收模块,用于接收所述接收端发送的与所述传输空间建立请求对应的传输空间建立响应,所述传输空间建立响应至少携带有信息块大小和信息块标识,所述信息块大小和所述信息块标识是根据所述区块组装时间段和文件的大小生成的;
文件切分模块,用于根据所述信息块大小和所述文件的大小将所述文件切分成至少一个信息块;
信息块标识分配模块,用于将所述信息块标识分配给所述信息块,且每一个信息块对应一个信息块标识;
信息块发送模块,用于通过至少两个并行发送线程向所述接收端发送所述信息块。
一种文件传输装置,应用于接收端,所述装置包括:
传输空间建立请求接收模块,用于接收发送端发送的传输空间建立请求,所述传输空间建立请求至少携带有区块组装时间段和文件的大小;
信息块计算模块,用于基于所述传输空间建立请求,计算信息块的大小和信息块标识;
传输空间建立响应模块,用于向所述发送端发送传输空间建立响应,所述传输空间建立响应至少携带所述信息块的大小和所述信息块标识;
信息块接收模块,用于通过至少两个并行接收线程接收所述发送端发送的所述信息块;
信息块合成模块,用于将所述信息块合成所述文件。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述任一实施例中所述的方法的步骤。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一实施例中所述方法的步骤。
上述文件传输方法、装置、计算机设备和存储介质,通过将文件分成信息块,最大限度地利用了网络传输线路并发、处理器并发和程序并发,实现文件发送、传输和接受并发,使得大数据量的文件传输转换成小信息块的传输;同时消除了确认协议,极大地提高了大文件的传输速度。
附图说明
图1为一个实施例中的文件传输方法的应用环境图;
图2为一个实施例中发送端侧的文件传输方法的流程示意图;
图3为一个实施例中传输空间建立请求的消息结构图;
图4为一个实施例中传输空间建立响应的消息结构图;
图5为一个实施例中信息块的结构图;
图6为一个实施例中构建发送端框架的流程图;
图7为一个实施例中主框架的结构图;
图8为一个实施例中传输空间关闭请求的消息结构图;
图9为一个实施例中关闭成功确认的消息结构图;
图10为一个实施例中接收端侧的文件传输方法的流程示意图;
图11为一个实施例中接收端侧的主框架和副框架示意图;
图12为一个实施例中发送端侧的文件传输装置结构框图;
图13为一个实施例中接收端侧的文件传输装置结构框图;
图14为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的文件传输方法,可以应用于如图1所示的应用环境中。其中,发送端(Sender)和接收端(Receiver)之间通过网络(Network)连接。数据文件(Big File)被切分成不同的信息块(B1、B2、B3、B4)后被填充到主框架(Master Frame)和副框架(SecondaryFrame)上。图1中发送端通过多个线程(Processor)发送信息块到接收端,接收端通过多个线程(Processor)接手信息块并将信息块填充到对应的接收端主框架和接收端副框架上。图1中,对应的发送线程(Processor)为SP1、SP2、SP3、SP4、SP5、SP6、SP7和SP8。对应的接收线程(Processor)为RP1、RP2、RP3、RP4、RP5、RP6、RP7和RP8。
在一个实施例中,如图2所示,提供了一种文件传输方法,以该方法应用于图1中的发送端为例进行说明,包括以下步骤:
步骤S202,向接收端发送传输空间建立请求,传输空间建立请求至少携带有区块组装时间段和文件的大小。
具体地,传输空间建立请求的消息结构如图3所示,包括消息头(Message Head)和消息体(Message Body)。消息头包括但不限于:消息序号(Message SeqNo.)、发送端账号(Sender Account)、消息类型(Message Type)以及校验和(CheckSum)。消息体包括但不限于发送端时区(Sender timezone)、发送端发送时间戳(Sender timestamp)、文件类型(File type,例如有文本(Text)和二进制类型(binary))、文件大小(File Size)和区块组装时间周期(Blockchain Lifecycle)。其中,文件大小和区块组装时间周期是传输空间建立请求中必需的。
发送端将消息序号、发送端账号、消息类型、校验和、发送端时区、发送时间戳、文件类型、文件大小以及区块组装时间周期等信息中的至少两个(其中文件大小和区块组装时间周期是必须的)记录到传输空间建立请求中,并用私钥加密传输空间建立请求。之后发送端向接收端发送加密后的传输空间建立请求。
区块组装时间周期和区块链的生命周期是一致的,都是指时段。一般情况下这个值是在区块链上统一设置的,比如每3分钟全网实现共识,将3分钟内所有的信息写入区块,再将该区块链接到目标区块链上。文件大小是待发送文件的尺寸,可以通过查看文件属性获得。
步骤S204,接收接收端发送的与传输空间建立请求对应的传输空间建立响应,传输空间建立响应至少携带有信息块大小和信息块标识,信息块大小和信息块标识是根据区块组装时间段和文件的大小生成的。
具体地,传输空间建立响应的消息结构如图4所示,包括消息头(Message Head)和消息体(Message Body)。消息头包括但不限于:消息序号(Message SeqNo.)、接收端账号(Receiver Account)、消息类型(Message Type)、校验和(CheckSum)、确认消息序号(AckMessage SeqNo.)、信息块大小(Info Block Size)以及框架大小(Frame Size)。消息体包括信息块标识(例如:Block1)和对应的接收端口号(例如:Port15)。
其中消息快标识是由接收端随机选取起始编号后,按照增序分配给每个待接收的信息块,接收端口是用来接收信息块的,最大端口数是可以根据计算机的硬件性能配置,理论上每个IP地址可以配置0-65535个端口。对于普通计算机,默认配置是15个端口/IP,比如一台计算机具有双网卡和双IP,则该计算机的默认最大端口数为30个,端口号与端口数对应。
发送端接收传输空间建立响应的消息,传输空间建立响应的消息被接收端通过公钥和私钥加密。发送端用接收端公钥解密传输空间建立响应,确定消息是由接收端发送。发送端用私钥解密传输空间建立响应的内容,确定接收端已经同意并创建了接收端框架并且在指定的端口等待接收文件的消息块。
步骤S206,根据信息块大小和文件的大小将文件切分成至少一个信息块。
其中,信息块大小等于区块组装时间段乘以数据传输速率,数据传输速率等于传输空间建立请求消息的大小除以延时时间。例如:文件大小为18G,传输空间建立请求消息的大小是100K,延时时间是100ms,区块组装时间段为3min。数据传输速率=100K/100ms=0.1M/0.1s=1M/s,信息块大小=3*60*1M/s=180M=0.18G。
具体地,发送端从头开始循序计算每个文件切块的开始和结尾,并将文件切块拷贝到信息块,保证信息块大于计算出来的标准大小且最接近于标准大小。发送端对最后一个文件切块做边沿处理,当最后一个文件切块小于设定的范围时,则把最后一个文件切块和上一个文件切块合并一起拷贝到最后一个尾部信息块。当最后一个文件切块大于设定的范围时,则将最后一个文件切块单独拷贝到最后一个尾部信息块。
步骤S208,将信息块标识分配给信息块,且每一个信息块对应一个信息块标识。
其中,信息块的结构如图5所示,信息块包括信息块头(Block Head)和信息块体(Block Body)。信息块头包括信息块标识(Block ID)、框架标识(Frame ID)、创建时间戳(Timestamp)以及校验和(CheckSum)。信息块体包括文件切块内容(content)。
具体地,发送端提取传输空间建立响应消息中的信息块标识。其中,信息块标识是由接收端随机选取起始编号后,按照增序分配给每个待接收的信息块。发送端将信息块标识添加到信息块的信息头中。
优选地,信息块之间按照信息块标识增序排列。例如发送端将数据文件切分成8块,按照切分的先后顺序将1、2、3、4、5、6、7、8个不同的信息块标识分别分配给不同的信息块。每一个信息块都记录了自身的哈希标识,从第二个信息块开始到最后一个信息块还记录了上一个信息块的哈希标识,用于检验信息块之间是否按照设定的顺序排列。
步骤S210,通过至少两个并行发送线程向接收端发送信息块。
具体地,当信息块数量小于线程数量时,发送端用一个线程处理一个信息块。当信息块数量大于线程数量时,发送端用一个线程处理多个信息块。发送端根据信息块标识和端口号向发送端发送信息块。例如,默认的线程数量是15个,包括14个发送线程和1个指令线程,具体线程数量可以根据发送端的硬件性能(内存、处理器多核数量)进行配置。当信息块的总和为8,线程数量为30个时,一个线程处理一个信息块。当信息块的总和为60,线程为30时,一个线程按照信息块标识顺序和对应的框架标识依次处理这两个信息块。
上述文件传输方法中,发送端通过多线程的方式将数据文件切分成能够在区块组装时间周期内传输的信息块,实现文件发送、传输和接受并发,使得大数据量的文件传输转换成小信息块的传输;同时消除了过多的确认协议,极大地提高了大文件的传输速度。
在一个实施例中,如图6所示的流程图,通过至少两个并行线程向接收端发送信息块之前,还包括:
步骤S602,以信息块标识作为键值构建发送端主框架,并生成发送端主框架的框架标识。
具体地,如图7所示的主框架结构图中,发送端以信息块标识(Block ID)作为键值(key)构建空的发送端主框架,并生成相应的主框架标识,框架标识由发送端和接收端根据相同的预设规则设定,在生成主框架标识后,增序生成所有副框架标识。例如主框架标识为1,则副框架标识为2。其中空的发送端主框架包括键值(key)和信息块(Info Block)槽。信息块槽包括信息块标识(Block ID)、序号(SeqNo.)、主框架标识(Master Frame(1))和文件切块内容(Content)。
步骤S604,基于信息块标识将信息块填充到发送端主框架上并将发送端主框架的框架标识绑定到信息块上。
具体地,发送端根据信息块上的信息块标识从主框架上找到相同信息块标识所在的信息块槽,将信息块填充到对应的槽位。同时,发送端将主框架的标识添加到信息块头中。
步骤S606,根据主框架复制至少一个发送端副框架并将框架标识改为发送端副框架的框架标识;发送端副框架的数量与接收端副框架的数量一致。
具体地,发送端根据主框架的结构连同主框架上的信息块复制一份完全一样的副框架,并将副框架上框架标识从主框架标识改为副框架标识。例如,发送端生成的主框架标识为1,在复制得到副框架之后,发送端将副框架的框架标识按照增序改为2,由此副框架的框架标识为2。同时发送端根据预先设置的规定,保证发送端副框架的数量和接收端副框架的数量一致。这样可以通过比较接收端信息块的接收情况,从而准确地判定所有信息块是否成功从发送端发送到接收端。一般情况下,一次文件传输过程中,发送端和接收端会创建两个框架,一个主框架和一个副框架。一方面,发送端可以根据当前自身的硬件情况,例如,发送端可以根据可用内存、处理器性能以及网络状况等决定需要创建的框架数量。另一方面,发送端需要根据待发送文件的性质确定需要创建的框架数量。例如,当待发送文件的安全性是最优考虑时,发送端可以建立三个框架,一个主框架和两个副框架。发送端确定需要创建的框架数量之后,将需要创建的框架数量通过传输空间建立请求发送给接收端,等待接收端确认。
步骤S608,分配不同的并行数据链路给对应信息块;对应信息块指具有相同的信息块标识以及不同的框架标识的信息块。
具体地,传输空间由三层结构:最一层是底层的物理通讯链路,第二层是数据链路,由线程和端口组成,第三层传输空间层建立于第二层之上。发送端在每一次传输文件的时候会请求建立传输空间,传输空间建立在多条数据链路上。发送端在发送具有相同信息块标识和不同框架标识的多个信息块时,会选择不同的数据链路进行发送,这样可以提高相同信息块在传输过程中的传输成功率。
例如,发送端到接收端之间存在3条物理通讯链路,线程1向端口1发送信息块的数据链路相应的有两条,一条数据链路建立在第一条物理通讯链路上,另一条数据链路建立在第二条物理通讯链路上,剩余的一条物理通讯链路留作备用暂不使用。发送端与接收端建立的传输空间建立在前面的两条数据链路上。
步骤S610,通过至少两个并行线程向接收端发送信息块,包括:通过信息块分配到的数据链路并行发送信息块。
具体地,发送端根据信息块的数量从线程池中选择相应数量的线程并行发送信息块。发送端发送信息块的数据链路由步骤S608决定,发送端可以根据以往的传输记录将传输成功率高、传输速率快的数据链路分配给主框架上的信息块。
例如,根据前一次的记录,线程1向端口1发送信息块的两条数据链路中,第二条数据链路的成功率和速率相比第一条数据链路的成功率高出很多,那么下一次发送端将第二条数据链路作为发送主框架上信息块的数据链路,同时去除第一条数据链路,将第三条数据链路(建立在第三条物理通讯链路上)选为用于发送副框架上信息块的数据链路。在测试过所有数据链路后,发送端可以找到成功率最高和速率最高的数据链路。
本实施例中,发送端通过创建多个框架同时发送信息块,其中只要有一个信息块被发送到接收端,那么就可以确认该信息块被正确接收,保证了文件传输过程中的成功率。同时,因为发送端和接收端都创建了相同结构的发送框架和接收框架,消除了过多的确认消息,极大地提高了文件传输的速度。
在其中一个实施例中,还包括:接收接收端发送的传输空间关闭请求,传输空间关闭请求至少携带有接收端主框架上的信息块信息;当信息块信息表征接收端主框架上的信息块来自于发送端副框架时,将发送端主框架上信息块被分配的数据链路调整为发送端副框架上对应信息块被分配的数据链路。
其中,传输空间关闭请求的消息结构如图8所示,包括消息头(Message Head)和消息体(Message Body)。消息头(Messasge Head)包括消息序号(Msg SeqNo.)、接收端账号(Receiver Account)、消息类型(Message Type)、时区(Timezone)、消息发送时间戳(Timestamp)、文件数字指纹(File Digital Fingerprinting)以及校验和(CheckSum)。消息体(Message Body)包括键值(key)和信息块接收确认信息(Info Block Acknowledges)。键值(key)包括所有信息块标识(Block ID),信息块接收确认信息(Info BlockAcknowledges)包括主框架(Master Frame)标识和副框架(Secondary Frame)标识。在图8中,当主框架列和副框架列同时为1时,说明具有相同信息块标识的两个信息块,接收端同时接收到了来自发送端主框架和副框架的信息块。当主框架列为1,副框架列为0时,说明具有相同信息块标识的两个信息块中,接收端只接收到了发送端主框架上的信息块。当主框架列为0,副框架列为1时,说明具有相同信息块标识的两个信息块中,接收端只接收到了发送端副框架上的信息块。当主框架列为1,副框架列为0时,说明具有相同信息块标识的两个信息块,接收端同时接收到了来自发送端主框架和副框架的信息块。
具体地,发送端接收到接收端发送的传输空间关闭请求后,会从请求中提取信息块信息,信息块信息中记录了接收端主框架上信息块的信息块标识、框架标识以及时间戳等信息。发送端将信息块信息中的信息块标识、框架标识以及时间戳等信息跟主框架上的信息块进行比对。当信息块信息中的信息块标识、框架标识以及时间戳等信息与副框架上的对应信息块相同时,说明接收端主框架上的信息块来自于发送端副框架上的对应信息块。发送端将分配给副框架对应信息块的数据链路调整分配给主框架上的对应信息块。发送端可以将传输空间建立在不同的数据链路上,经过多次文件传输后,选取传输成功率和传输速率最高的数据链路。
本实施例中,发送端通过比对信息块信息表征的接收端主框架信息块来源,可以找到当前数据链路中传输成功率和传输速率最高的数据链路,从而动态规划下次用于发送文件的数据链路。
在其中一个实施例中,还包括:接收接收端发送的传输空间关闭请求,传输空间关闭请求至少携带有接收端所计算的文件的接收端数字指纹;计算文件的发送端数字指纹;当接收端数字指纹和发送端数字指纹一致时,更新传输日志为成功并记录所有信息块标识;清除并行线程、主框架和副框架;向接收端发送关闭成功确认消息。
具体地,发送端用接收端公钥解密传输空间关闭请求并确定传输空间关闭请求由接收端发送。发送端用私钥解密传输空间关闭请求并提出请求中的接收端计算得到数字指纹信息。发送端计算文件的数字指纹并将发送端数字指纹与接收端的数字指纹进行比较。当接收端数字指纹和发送端指纹一致时,将传输日志更新为成功并记录所有信息块的标识。同时发送端清除线程池用于传输信息块的线程并将建立的主框架和副框架全部清空,回收相应的内存资源。最后,发送端将关闭成功确认消息发送给接收端,关闭成功确认消息的结构具体如图9所示,包括消息头(Message Head)和消息体(Message Body)。其中,消息头(Message Head)包括消息序号(Msg SeqNo.)、发送端账号(Sender Account)、消息类型(Message Type)、发送端时区(Timezone)、发送端时间戳(Timestamp)、校验和(CheckSum)。消息体(Message Body)包括发送端数字指纹((Sender)File Digital Fingerprinting)以及相关的消息序号(Linked Msg SeqNo.)。
本实施例中,发送端通过私钥和公钥等方式解密传输空间关闭请求保证了数据传输过程中的安全性,通过验证发送端和接收端对于传输文件的数字指纹是否一致,确保了文件传输结果的准确性。
在一个实施例中,如图10所示,提供了一种文件传输方法,以该方法应用于图1中的接收端为例进行说明,包括以下步骤:
步骤S1002,接收发送端发送的传输空间建立请求,传输空间建立请求至少携带有区块组装时间段和文件的大小。
其中,传输空间建立请求如图3所示,包括消息头(Message Head)和消息体(Message Body)。消息头包括但不限于:消息序号(Message SeqNo.)、发送端账号(SenderAccount)、消息类型(Message Type)以及校验和(CheckSum)。消息体包括但不限于发送端时区(Sender timezone)、发送端发送时间戳(Sender timestamp)、文件类型(File type,例如有文本(Text)和二进制类型(binary))、文件大小(File Size)和区块组装时间周期(Blockchain Lifecycle)。其中,文件大小和区块组装时间周期是传输空间建立请求中必需的。
在其中一个实施例中,传输空间建立请求被发送端用公钥和私钥加密,接收端通过公钥解密传输空间建立请求,确保该请求是发送端发送。之后接收端再通过私钥解密传输空间建立请求的内容,从内容中取出区块组装时间段、待传输文件的大小、发送端发送时间戳等关键信息。
步骤S1004,基于传输空间建立请求,计算信息块的大小和信息块标识。
具体地,接收端获取传输空间建立请求消息中携带的参数信息,根据预先设置的计算规则和该参数信息计算需要切分的信息块大小,该信息块大小可以使得发送端在规定的时间内将信息块全部发送到接收端。
接收端在计算得到需要的信息块大小之后,随机选取起始的信息块标识,然后增序分配给每个待接收的信息块。
步骤S1006,向发送端发送传输空间建立响应,传输空间建立响应至少携带信息块的大小和信息块标识。
其中,传输空间建立响应的消息结构如图10所述,包括消息头(Message Head)和消息体(Message Body)。消息头(Message Head)包括有消息序号(Message SeqNo)、接收端账号(Receiver Account)、消息类型(Message Type)、校验和(CheckSum)、确认消息序号(Ack Message SeqNo.)、信息块大小(Info Block Size)、框架大小(Frame Size)、信息块标识(Block1、Block2、Block3…)和端口号(Port15、Port14、Port13…)。
具体地,接收端将消息序号、接收端账号、消息类型、校验和、确认消息序号、信息块大小、框架大小、信息块标识和对应的端口号组装到传输空间建立响应消息中,并用公钥和私钥对传输空间建立响应消息进行加。之后接收端将加密后的传输空间建立响应消息发送给发送端。
步骤S1008,通过至少两个并行接收线程接收发送端发送的信息块。
具体地,当信息块数量小于线程数量时,接收端用一个线程处理一个信息块。当信息块数量大于线程数量时,接收端用一个线程处理多个信息块。接收端每个端口的接收线程根据端口号和信息块标识的对应关系检查该端口接收到的信息块是否匹配,如果端口号和信息块标识匹配就接收信息块,如果端口号和信息块标识不匹配就放弃在该端口接收到的信息块。例如,默认的线程数量是15个,包括14个接收线程和1个指令线程,具体线程数量可以根据接收端的硬件性能(内存、处理器多核数量)进行配置。当信息块的总和为8,线程数量为30个时,一个线程处理一个信息块。当信息块的总和为60,线程为30时,一个线程按照信息块标识的顺序和信息块对应的框架标识依次处理两个信息块。
步骤S1010,将信息块合成文件。
具体地,当接收端接收到了多于一个的具有相同信息块标识的信息块时,将先接收到的信息块优先用于合成目标文件。当组成文件的具有相同信息块标识的信息块中至少有一个信息块被接收了,接收端按照信息块标识的顺序将信息块组合在一起,生成最后的目标文件。
接收端用发送端的公钥解密文件,使用校验和中的数据确认信息在传输中没有被改动。
上述文件传输方法中,接收端通过计算数据文件在区块组装时间段内完成传输所需要的信息块大小,可以保证数据文件被发送段切分成信息块之后可以在区块组装时间段内完成传输。接收端通过多线程的方式接收信息块可以提高信息块接收的效率。此外,接收端通过构造和发送端相同的主框架和副框架,保证了信息块传输的准确性和成功率,消除了过多的确认协议,极大地提高了大文件的传输速度。
在其中一个实施例中,信息块的大小等于区块组装时间段乘以接收端和发送端之间的数据传输速率。
具体地,接收端获取传输空间建立请求消息的大小,并从传输空间建立请求消息中提取出区块组装时间段和发送端发送时间戳,根据接收时间与发送时间的差计算得到延时时间。信息块大小等于区块组装时间段乘以数据传输速率,数据传输速率等于传输空间建立请求消息的大小除以延时时间。例如:文件大小为18G,传输空间建立请求消息的大小是100K,延时时间是100ms,区块组装时间段为3min。数据传输速率=100K/100ms=0.1M/0.1s=1M/s,信息块大小=3*60*1M/s=180M=0.18G。
本实施例中,接收端根据区块组装时间段和数据传输速率计算得到了所需要的信息块大小。通过将数据文件切分到上述信息块大小,接收端可以在一个区块组装时间段内接收数据文件的所有信息块,从而极大地提高了数据文件的传输速度并使得该文件传输方法可以适用于区块链操作系统。
在其中一个实施例中,在通过至少两个并行线程接收发送端发送的信息块之前,还包括:以信息块标识作为键值构建接收端主框架。根据接收端主框架复制至少一个接收端副框架;接收端副框架的数量与发送端副框架的数量一致。通过至少两个并行线程接收发送端发送的信息块,包括:基于信息块标识将信息块填满接收端主框架。当接收端主框架上与信息块标识对应的位置已被填充时,将后接收到的信息块填充到接收端副框架上与信息块标识对应的位置。
具体地,如图11所示,接收端以计算得到的信息块标识(Block ID)作为键值(key)构建一个带有空槽位的接收端主框架(Master Frame),空槽位用于接收发送端发送过来的信息块(Info Block)。在构建完接收端的主框架之后,接收端按照主框架的结构复制至少一个完全一样的副框架(Secondary Frame),并且保证接收端副框架的数量和发送端副框架的数量一致。
接收端从线程池中选择至少两个线程用于接收发送端发送的信息块。接收端按照信息块上的信息块标识将信息块优先填充到主框架上。当主框架上信息块标识对应的槽位已经被填满时,接收端将接收到的信息块填充到副框架上与信息块标识对应的槽位上。
接收端在主框架被填满之后,将信息块拼接成一个完整的文件并用发送端的公钥解密文件,使用校验和中的数据确认信息在传输过程中没有被改动。
本实施例中,接收端通过创建多个框架同时接收信息块,其中只要有一个信息块被接收,那么就可以确认该信息块被正确接收,从而保证了文件传输过程中的成功率。同时,因为发送端和接收端都创建了相同结构的发送框架和接收框架,消除了过多的确认消息,极大地提高了文件传输的速度。
在其中一个实施例中,在基于信息块标识将信息块填满接收端主框架之后,还包括:向发送端发送传输空间关闭请求,传输空间关闭请求至少携带接收端主框架上的信息块信息,信息块信息用于指示发送端调整发送端主框架上信息块被分配的数据链路。
具体地,在接收端主框架被信息块填满之后,接收端记录下主框架上所有信息块的信息块标识以及信息块上的框架标识生成信息块信息,该框架标识表示接收端主框架上的信息块来自于发送端的具体某一个框架。信息块信息显示接收端主框架上的信息块来自于发送端的副框架,那么发送端可以通过信息块信息调整下一次发送主框架上信息块所用的数据链路。接收端将信息块信息组装到传输空间关闭请求的消息结构中,传输空间关闭请求的消息结构如图8所示。
本实施例中,接收端通过将信息块信息组装到传输空间关闭请求中发送给发送端,使得发送端可以根据接收端接收信息块的具体情况,相应地优化用于发送信息块的数据链路,提高了信息块发送的效率。
在其中一个实施例中,还包括:计算文件的数字指纹。向发送端发送传输空间关闭请求,传输空间关闭请求至少携带有数字指纹。接收发送端发送的传输空间关闭成功的消息。更新传输日志并记录所有信息块。清除并行线程和主框架和副框架。
具体地,发送端计算合成的目标文件的数字指纹,并将数字指纹组装到传输空间关闭请求的消息结构中,传输空间关闭请求的消息结构如图8所示。在接收端接收到发送端发送的传输空间关闭成功的消息后,接收端将将所有已被接收的信息块信息记录到传输日志中,方便后续的追踪查询。最后,接收端将线程池中用于接收信息块的所有并行线程清除,并将构建用于接收信息块的主框架和副框架清除,回收内存资源。
本实施例中,接收端通过将目标文件的数字指纹通过传输空间关闭请求发送给发送端,从而保证了发送端和接收端传输的数据文件是一致的和完整的,没有发生改动。
为了使得本领域技术人员充分了解本申请中的基于区块链的文件存储和读取方法,下文就给出一个具体的实施例。
本实施例中,发送端拥有一份大数据文件并准备把大数据文件通过广域网传输给接收端。整个文件传输过程分为三个阶段:初始化阶段、传输阶段和关闭阶段。
在初始化阶段,发送端向接收端发送传输空间建立请求,该请求中包含了待传输文件的大小、文件类型、区块组装时间段和数据传输速率等参数。接收端在接收到请求信息后,根据区块组装时间乘以数据传输速率得到需要的信息块大小。接收段随机生成信息块标识并增序分配给带发送的不同信息块。之后接收端选择和不同信息块对应的端口用于接收发送端发送的信息块,并将端口号、对应的信息块标号、信息块大小以及框架大小等关键信息组装到传输空间建立响应消息中发送给发送端。同时,接收端在本地构建一个带有空槽位的主框架用于接收信息块。之后接收端根据空的主框架复制一个具有相同结构的副框架。接收端继续构建多个线程,每个线程监听一个端口,等待发送端发送信息块。发送端在收到传输空间建立响应之后,提取信息块大小,框架大小、所有信息块标识以及对应端口信息。发送端根据信息块大小将大数据文件切分成信息块。发送端根据框架大小,信息块标识等信息构建一个主框架并将信息块拼接到主框架上。发送端在构建主框架的过程中分配给主框架一个框架标识。之后发送端根据主框架的结构连同主框架上的信息块复制一个完全一样的副框架并将框架标识改为副框架标识。发送端构建多个线程,准备向接收端监听的端口发送信息块。
在传输阶段,发送端通过多线程并发地向接收端发送信息块。接收方通过多线程并发地接收信息块。由于网络原因,接收端接收到的信息块并不是按顺序到达的。接收端根据信息块标识优先填满接收端主框架。当接收端发现主框架中的某个信息块标识对应的槽位已经被填满之后,就将接收到的信息块根据信息块标识组装到副框架上和信息块标识对应的槽位中。接收端在主框架填满后,将主框架上的信息块拼接成一个完整的目标文件,并用发送端的公钥解密文件,使用校验和中的数据确认信息块在传输中没有被改动。接收端在获得正确完整的文件后,计算该文件的数字指纹,将数字指纹连同主框架上所有信息块的标识和框架标识组装到传输空间关闭请求消息中,并将该请求发送给发送端。
在关闭阶段,发送端在接收到传输空间关闭请求后,取出接收端计算的数字指纹并和发送端计算的数字指纹进行比较。当数字指纹一致时,将所有已经被成功传输的信息块标识记录到传输日志上。随后发送端清除所有发送线程、主框架和副框架。最后,发送端向接收端发送传输空间关闭成功的消息。接收端在接收到传输空间关闭成功的消息后,将成功传输的信息块标识记录到传输日志上,同时清除多个接收线程并清除主框架和副框架。
本实施例中,整个传输过程最大限度地利用了网络传输线路并发、处理器并发和程序并发。通过在发送端和接收端构建两个相同的框架将大数据文件的传输简化为信息块并行传输和终点拼接,实现文件发送、传输和接收并发,使得大数据文件传输转换成小信息块传输,同时消除了不必要的确认协议,极大地提高了大数据文件的传输速度。
应该理解的是,虽然图2、图6和图10的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2、图6和图10中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图12所示,提供了一种文件传输装置,应用于发送端,包括:传输空间建立请求模块100、传输空间建立响应接收模块200、文件切分模块300、信息块标识分配模块400和信息块发送模块500,其中:
传输空间建立请求模块100,用于向接收端发送传输空间建立请求,传输空间建立请求至少携带有区块组装时间段和文件的大小。
传输空间建立响应接收模块200,用于接收接收端发送的与传输空间建立请求对应的传输空间建立响应,传输空间建立响应至少携带有信息块大小和信息块标识,信息块大小和信息块标识是根据区块组装时间段和文件的大小生成的。
文件切分模块300,用于根据信息块大小和文件的大小将文件切分成至少一个信息块。
信息块标识分配模块400,用于将信息块标识分配给信息块,且每一个信息块对应一个信息块标识。
信息块发送模块500,用于通过至少两个并行发送线程向接收端发送信息块。
在其中一个实施例中,还包括:发送端主框架构建模块,用于以信息块标识作为键值构建发送端主框架,并生成发送端主框架的框架标识。发送端信息块填充模块,用于基于信息块标识将信息块填充到发送端主框架上并将发送端主框架的框架标识绑定到信息块上。发送端框架复制模块,用于根据主框架复制至少一个发送端副框架并将框架标识改为发送端副框架的框架标识,发送端副框架的数量与接收端副框架的数量一致。数据链路分配模块,用于分配不同的并行数据链路给对应信息块,对应信息块指具有相同的信息块标识以及不同的框架标识的信息块。多链路发送模块,用于通过信息块分配到的数据链路并行发送信息块。
在其中一个实施例中,还包括:信息块信息接收模块,用于接收接收端发送的传输空间关闭请求,传输空间关闭请求至少携带有接收端主框架上的信息块信息。数据链路调整模块,用于当信息块信息表征接收端主框架上的信息块来自于发送端副框架时,将发送端主框架上信息块被分配的数据链路调整为发送端副框架上对应信息块被分配的数据链路。
在其中一个实施例中,还包括:数字指纹接收模块,用于接收接收端发送的传输空间关闭请求,传输空间关闭请求至少携带有接收端所计算的文件的接收端数字指纹。发送端数字指纹计算模块,用于计算文件的发送端数字指纹。发送端传输日志更新模块,用于当接收端数字指纹和发送端数字指纹一致时,更新传输日志为成功并记录所有信息块标识。发送端清除模块,用于清除并行线程、主框架和副框架。关闭成功确认消息发送模块,用于向接收端发送关闭成功确认消息。
在一个实施例中,如图13所示,提供了一种文件传输装置,应用于接收端,包括:传输空间建立请求接收模块100、信息块计算模块200、传输空间建立响应模块300、信息块接收模块400和信息块合成模块500,其中:
传输空间建立请求接收模块100,用于接收发送端发送的传输空间建立请求,传输空间建立请求至少携带有区块组装时间段和文件的大小。
信息块计算模块200,用于基于传输空间建立请求,计算信息块的大小和信息块标识。
传输空间建立响应模块300,用于向发送端发送传输空间建立响应,传输空间建立响应至少携带信息块的大小和信息块标识。
信息块接收模块400,用于通过至少两个并行接收线程接收发送端发送的信息块。
信息块合成模块500,用于将信息块合成文件。
在其中一个实施例中,信息块的大小等于区块组装时间段乘以接收端和发送端之间的数据传输速率。
在其中一个实施例中,还包括:接收端主框架构建模块,用于以信息块标识作为键值构建接收端主框架。接收端框架复制模块,用于根据接收端主框架复制至少一个接收端副框架;接收端副框架的数量与发送端副框架的数量一致。接收端信息块填充模块,用于基于信息块标识将信息块填满接收端主框架。信息块调整模块,用于当接收端主框架上与信息块标识对应的位置已被填充时,将后接收到的信息块填充到接收端副框架上与信息块标识对应的位置。
在其中一个实施例中,还包括:传输空间关闭请求发送模块,用于在基于信息块标识将信息块填满接收端主框架之后,向发送端发送传输空间关闭请求,传输空间关闭请求至少携带接收端主框架上的信息块信息,信息块信息用于指示发送端调整发送端主框架上信息块被分配的数据链路。
在其中一个实施例中,还包括:接收端数字指纹计算模块,用于计算文件的数字指纹。传输空间关闭请求发送模块,用于向发送端发送传输空间关闭请求,传输空间关闭请求至少携带有数字指纹。传输空间关闭成功消息接收模块,用于接收发送端发送的传输空间关闭成功的消息。接收端日志更新模块,用于更新传输日志并记录所有信息块。接收端清除模块,用于清除并行线程和主框架和副框架。
关于文件传输装置的具体限定可以参见上文中对于文件传输方法的限定,在此不再赘述。上述文件传输装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图14所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储大数据文件数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种文件传输方法。
本领域技术人员可以理解,图14中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述各方法实施例中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (13)
1.一种文件传输方法,其特征在于,应用于发送端,所述方法包括:
向接收端发送传输空间建立请求,所述传输空间建立请求至少携带有区块组装时间段和文件的大小;
接收所述接收端发送的与所述传输空间建立请求对应的传输空间建立响应,所述传输空间建立响应至少携带有信息块大小和信息块标识,所述信息块大小和所述信息块标识是根据所述区块组装时间段和文件的大小生成的;
根据所述信息块大小和所述文件的大小将所述文件切分成至少一个信息块;
将所述信息块标识分配给所述信息块,且每一个信息块对应一个信息块标识;
通过至少两个并行发送线程向所述接收端发送所述信息块。
2.根据权利要求1所述的方法,其特征在于,所述通过至少两个并行线程向所述接收端发送所述信息块之前,还包括:
以所述信息块标识作为键值构建发送端主框架,并生成所述发送端主框架的框架标识;
基于所述信息块标识将所述信息块填充到所述发送端主框架上并将所述发送端主框架的框架标识绑定到所述信息块上;
根据所述主框架复制至少一个发送端副框架并将所述框架标识改为所述发送端副框架的框架标识;所述发送端副框架的数量与接收端副框架的数量一致;
分配不同的并行数据链路给对应信息块;所述对应信息块指具有相同的所述信息块标识以及不同的所述框架标识的信息块;
所述通过至少两个并行线程向所述接收端发送所述信息块,包括:
通过所述信息块分配到的数据链路并行发送所述信息块。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
接收所述接收端发送的传输空间关闭请求,所述传输空间关闭请求至少携带有所述接收端主框架上的信息块信息;
当所述信息块信息表征所述接收端主框架上的所述信息块来自于所述发送端副框架时,将所述发送端主框架上所述信息块被分配的数据链路调整为所述发送端副框架上对应信息块被分配的数据链路。
4.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
接收所述接收端发送的传输空间关闭请求,所述传输空间关闭请求至少携带有所述接收端所计算的所述文件的接收端数字指纹;
计算所述文件的发送端数字指纹;
当接收端数字指纹和发送端数字指纹一致时,更新传输日志为成功并记录所有所述信息块标识;
清除所述并行线程、所述主框架和所述副框架;
向接收端发送关闭成功确认消息。
5.一种文件传输方法,其特征在于,应用于接收端,所述方法包括:
接收发送端发送的传输空间建立请求,所述传输空间建立请求至少携带有区块组装时间段和文件的大小;
基于所述传输空间建立请求,计算信息块的大小和信息块标识;
向所述发送端发送传输空间建立响应,所述传输空间建立响应至少携带所述信息块的大小和所述信息块标识;
通过至少两个并行接收线程接收所述发送端发送的所述信息块;
将所述信息块合成所述文件。
6.根据权利要求5所述的方法,其特征在于,所述信息块的大小等于区块组装时间段乘以所述接收端和所述发送端之间的数据传输速率。
7.根据权利要求5或6所述的方法,其特征在于,在所述通过至少两个并行线程接收所述发送端发送的信息块之前,还包括:
以所述信息块标识作为键值构建接收端主框架;
根据所述接收端主框架复制至少一个接收端副框架;所述接收端副框架的数量与发送端副框架的数量一致;
所述通过至少两个并行线程接收所述发送端发送的所述信息块,包括:
基于所述信息块标识将所述信息块填满所述接收端主框架;
当所述接收端主框架上与所述信息块标识对应的位置已被填充时,将后接收到的所述信息块填充到所述接收端副框架上与所述信息块标识对应的位置。
8.根据权利要求7所述的方法,其特征在于,在所述基于所述信息块标识将所述信息块填满所述接收端主框架之后,还包括:
向所述发送端发送传输空间关闭请求,所述传输空间关闭请求至少携带所述接收端主框架上的信息块信息,所述信息块信息用于指示所述发送端调整发送端主框架上所述信息块被分配的数据链路。
9.根据权利要求5或6所述的方法,其特征在于,所述方法还包括:
计算所述文件的数字指纹;
向所述发送端发送传输空间关闭请求,所述传输空间关闭请求至少携带有所述数字指纹;
接收所述发送端发送的传输空间关闭成功的消息;
更新传输日志并记录所有所述信息块;
清除所述并行线程和所述主框架和所述副框架。
10.一种文件传输装置,其特征在于,应用于发送端,所述装置包括:
传输空间建立请求模块,用于向接收端发送传输空间建立请求,所述传输空间建立请求至少携带有区块组装时间段和文件的大小;
传输空间建立响应接收模块,用于接收所述接收端发送的与所述传输空间建立请求对应的传输空间建立响应,所述传输空间建立响应至少携带有信息块大小和信息块标识,所述信息块大小和所述信息块标识是根据所述区块组装时间段和文件的大小生成的;
文件切分模块,用于根据所述信息块大小和所述文件的大小将所述文件切分成至少一个信息块;
信息块标识分配模块,用于将所述信息块标识分配给所述信息块,且每一个信息块对应一个信息块标识;
信息块发送模块,用于通过至少两个并行发送线程向所述接收端发送所述信息块。
11.一种文件传输装置,其特征在于,应用与接收端,所述装置包括:
传输空间建立请求接收模块,用于接收发送端发送的传输空间建立请求,所述传输空间建立请求至少携带有区块组装时间段和文件的大小;
信息块计算模块,用于基于所述传输空间建立请求,计算信息块的大小和信息块标识;
传输空间建立响应模块,用于向所述发送端发送传输空间建立响应,所述传输空间建立响应至少携带所述信息块的大小和所述信息块标识;
信息块接收模块,用于通过至少两个并行接收线程接收所述发送端发送的所述信息块;
信息块合成模块,用于将所述信息块合成所述文件。
12.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至9中任一项所述的方法的步骤。
13.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至9中任一项所述的方法的步骤。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2021108508661 | 2021-07-27 | ||
CN202110850866 | 2021-07-27 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115695408A true CN115695408A (zh) | 2023-02-03 |
Family
ID=85059968
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111176502.6A Pending CN115695408A (zh) | 2021-07-27 | 2021-10-09 | 文件传输方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115695408A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116033023A (zh) * | 2023-02-06 | 2023-04-28 | 网易(杭州)网络有限公司 | 基于区块链的数据通信方法、装置、电子设备及存储介质 |
CN116860300A (zh) * | 2023-09-01 | 2023-10-10 | 武汉理工大学 | 面向多子网多ecu的车载ota并行升级方法及系统 |
CN117251294A (zh) * | 2023-11-14 | 2023-12-19 | 广东仁达科技有限公司 | 基于数据库副本技术的数据实时分发多通道并行系统 |
-
2021
- 2021-10-09 CN CN202111176502.6A patent/CN115695408A/zh active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116033023A (zh) * | 2023-02-06 | 2023-04-28 | 网易(杭州)网络有限公司 | 基于区块链的数据通信方法、装置、电子设备及存储介质 |
CN116860300A (zh) * | 2023-09-01 | 2023-10-10 | 武汉理工大学 | 面向多子网多ecu的车载ota并行升级方法及系统 |
CN116860300B (zh) * | 2023-09-01 | 2023-11-28 | 武汉理工大学 | 面向多子网多ecu的车载ota并行升级方法及系统 |
CN117251294A (zh) * | 2023-11-14 | 2023-12-19 | 广东仁达科技有限公司 | 基于数据库副本技术的数据实时分发多通道并行系统 |
CN117251294B (zh) * | 2023-11-14 | 2024-03-08 | 广东仁达科技有限公司 | 一种基于数据库副本技术的数据实时分发多通道并行系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115695408A (zh) | 文件传输方法、装置、计算机设备和存储介质 | |
CN111104386B (zh) | 一种文件存储方法、终端及存储介质 | |
US7865575B2 (en) | Methods and apparatus to perform file transfers in distributed file systems | |
US10666778B1 (en) | System and method for ending view change protocol | |
WO2019075978A1 (zh) | 数据传输方法、装置、计算机设备和存储介质 | |
CN109472572B (zh) | 基于区块链主链加并行多子链的合约系统 | |
CN110753026B (zh) | 一种基于区块链的分片方法及装置 | |
CN111539726B (zh) | 区块链共识系统及方法 | |
US9047490B2 (en) | Method and a system for secure execution of workflow tasks in a distributed workflow management system within a decentralized network system | |
CN111934996B (zh) | 消息传输方法及装置 | |
US7899047B2 (en) | Virtual network with adaptive dispatcher | |
WO2018217804A1 (en) | Network for improved verification speed with tamper resistant data | |
US7051107B2 (en) | Distributed environment type computer system able to achieve high speed consecutive message communications by service layer | |
US10713133B2 (en) | Linear view-change BFT | |
CN113254272B (zh) | 区块链网络的数据处理方法、装置、计算机设备和介质 | |
CN108990002A (zh) | 一种区块链数据处理方法、装置、终端及存储介质 | |
CN109493052B (zh) | 一种基于主链加并行多子链的跨链合约系统 | |
CN110933022A (zh) | 区块处理方法、装置、计算机设备及存储介质 | |
CN109493051B (zh) | 可动态进行账户分配及迁移的主链加并行多子链系统架构 | |
CN111899019A (zh) | 一种黑名单多方交叉验证和共享的方法及系统 | |
CN112445570A (zh) | 一种云平台资源迁移方法及其装置、存储介质 | |
WO2021139467A1 (zh) | 联邦学习方法、系统、计算机设备和存储介质 | |
CN113256291A (zh) | 在区块链系统中创建账户及分配交易的方法及装置 | |
CN110008739B (zh) | 一种基于群组的区块链系统、群组管理方法及装置 | |
KR102309503B1 (ko) | 블록체인을 이용한 트랜잭션 방법, 노드 장치 및 컴퓨터 판독 가능한 기록 매체 |
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 |