一种基于Linux系统的文件多线程快速传输方法与流程
- 国知局
- 2024-08-02 14:46:30
本发明涉及一种文件传输方法,具体涉及一种基于linux系统的文件多线程快速传输方法。
背景技术:
1、在日常linux的使用中,传文件是我们经常使用的功能,在服务器上上传及下载文件有很多方式,如rz命令和ftp应该是使用最多的了。
2、但是,rz虽然操作简单,但是下载速度慢,使用场景有限制,ftp传输速度提升不是很明显,且限制多,操作繁琐;因此需要一种可以快速可靠的文件传输工具。
技术实现思路
1、本发明的主要目的是提供一种基于linux系统的文件多线程快速传输方法,将需要传输的数据均衡分发到多线程数据缓冲区,通过mtftp协议进行数据的快速传输。
2、为了完成上述目的,本发明提供了一种基于linux系统的文件多线程快速传输方法,包括以下步骤:
3、s100:根据服务器a的系统资源初始化多线程数据缓冲区,多线程数据缓冲区中包括多个内存数据缓冲区;
4、s200:服务器a读取要发送的文件,将文件按照拆分规则拆分成数据块,并将这些数据块负载均衡分发到对应的内存数据缓冲区中;
5、s300:服务器a和服务器b建立tcp连接,服务器a中构建数据接收发送模块,服务器b中构建数据接收发送模块;
6、s400:服务器a的数据接收发送模块将内存数据缓冲区中的数据块按照mtftp协议进行封装,然后发送到服务器b中的数据接收发送模块中;
7、s500:服务器b的数据接收发送模块接收数据后,对封装后的mtftp协议格式进行解析处理,并进行组装;
8、s600:服务器a中的数据接收发送模块接收到服务器b中的数据接收发送模块文件发送的组装成功的信息后,服务器a清除多线程数据缓冲区中的数据。
9、优选的,在步骤s200中,通过轮循算法或哈希算法或最少连接算法或响应速度算法或加权法等算法将数据负载均衡分发到对应的多线程数据缓冲区中。
10、优选的,在步骤s400中,封装后的mtftp协议的封装头的信息包括数据类型、数据块的序列号、数据块的长度、数据id、总长度。
11、进一步优选的,在步骤s500中,还包括以下步骤:
12、s510:服务器b的数据接收发送模块接收服务器a的数据接收发送模块发送的数据;
13、s520:服务器b的数据接收发送模块解析mtftp协议的封装头;
14、s530:将解析后的数据块的长度之和与原数据的总长度进行对比,
15、当解析后的数据块的长度之和与原数据的总长度相等,则判断文件接收并组装完成,服务器b的数据接收发送模块向服务器a的数据接收发送文件传输结束的标志;
16、s540:服务器b发送文件传输结束的标志后,数据接收发送模块通过识别解析后的数据id,按照数据块的序列号对数据块按照顺序进行拼装,并落地生成文件。
17、更进一步优选的,在步骤s540中,当服务器b接收到的数据块组装完毕后,如果服务器b发现缺失数据库的序列号,则服务器b的数据接收发送模块向服务器a的数据接收发送模块发送数据缺失消息,服务器a收到此缺失消息后,将重新发送缺失的数据库的序列号的数据到服务器b中。
18、本发明的有益效果为:
19、本发明通过将传输数据均衡分发到多线程数据缓冲区中的内存数据缓冲区,通过mtftp协议封装转发,提高了文件传输速度,且通过异常上报信息,可以实现断点续传,节省系统资源。
技术特征:1.一种基于linux系统的文件多线程快速传输方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的一种基于linux系统的文件多线程快速传输方法,其特征在于,在步骤s200中,通过轮循算法或哈希算法或最少连接算法或响应速度算法或加权法等算法将数据负载均衡分发到对应的多线程数据缓冲区中。
3.根据权利要求1所述的一种基于linux系统的文件多线程快速传输方法,其特征在于,在步骤s400中,封装后的mtftp协议的封装头的信息包括数据类型、数据块的序列号、数据块的长度、数据id、总长度。
4.根据权利要求3所述的一种基于linux系统的文件多线程快速传输方法,其特征在于,在步骤s500中,还包括以下步骤:
5.根据权利要求4所述的一种基于linux系统的文件多线程快速传输方法,其特征在于,在步骤s540中,当服务器b接收到的数据块组装完毕后,如果服务器b发现缺失数据库的序列号,则服务器b的数据接收发送模块向服务器a的数据接收发送模块发送数据缺失消息,服务器a收到此缺失消息后,将重新发送缺失的数据库的序列号的数据到服务器b中。
技术总结本发明涉及一种基于Linux系统的文件多线程快速传输方法,包括以下步骤:S100:根据服务器A的系统资源初始化多线程数据缓冲区,多线程数据缓冲区中包括多个内存数据缓冲区;S200:服务器A读取要发送的文件,将文件按照拆分规则拆分成数据块,并将这些数据块负载均衡分发到对应的内存数据缓冲区中;S300:服务器A和服务器B建立TCP连接;S400:服务器A的数据接收发送模块将内存数据缓冲区中的数据块按照MTFTP协议进行封装,然后发送到服务器B中的数据接收发送模块中;S500:服务器B的数据接收发送模块接收数据后,对封装后的MTFTP协议格式进行解析处理,并进行组装;S600:服务器A清除多线程数据缓冲区中的数据。技术研发人员:裴建康,窦龑,华亚东,侯红勋受保护的技术使用者:麒麟软件有限公司技术研发日:技术公布日:2024/7/29本文地址:https://www.jishuxx.com/zhuanli/20240801/243851.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。
下一篇
返回列表