一种文件传输方法、系统、装置及介质
- 国知局
- 2024-08-08 16:59:06
本发明涉及网络,尤其涉及一种文件传输方法、系统、装置及介质。
背景技术:
1、在当今信息化时代,局域网内高效传输大量文件的需求正日益增长[1]。这种需求在多种场景下显得尤为重要,尤其是在无法连接外网、连接外网受限、流量费用昂贵或传输文件涉及隐私的情况下。例如,在某些企业或政府机构中,由于安全和保密的要求,它们通常需要在内网环境下处理和传输大量敏感数据。在这些特定环境下,传统的文件传输方法表现出明显的局限性。
2、现有的文件传输方法,如通过电子邮件附件、使用便携式存储设备或利用云存储服务,在上述情况下往往效率不高[2]。以电子邮件为例,它虽然方便,但当文件体积较大时,不仅传输速度慢,而且容易受到邮箱容量和网络稳定性的限制。使用便携式存储设备,如usb闪存盘,虽然在一定程度上提供了便利,但这种方法在传输大量文件时效率低下,且存在数据安全风险。至于云存储服务,虽然在连接外网的情况下表现良好,但在没有外网连接或外网连接受限的环境中,其效能大打折扣。
技术实现思路
1、有鉴于此,本发明实施例的目的是提供一种文件传输方法、系统、装置及介质,以解决现有技术中所存在的一个或多个技术问题,至少提供一种有益的选择或创造条件。
2、一方面,本发明实施例提供了一种文件传输方法,所述方法包括以下步骤:
3、读取待传输的文件,获取该文件的大小;
4、基于所述文件的大小将待传输的文件分割成多个相同大小的数据块,并记录每个数据块的数据块信息;其中,所述数据块信息包括序列号和包体长度信息;
5、基于所述数据块信息在数据块的首部添加首部信息,将所述数据块和添加的首部信息作为一个整体通过tcp协议发送到接收端;其中,所述首部信息包括第一crc校验码、包体长度信息、序列号和文件名,所述文件名包括文件的存储路径;
6、接收端在接收到数据块后,对该数据块计算得到第二crc校验码,并将所述第二crc校验码与该数据块的首部信息中的第一校验码进行比较,将一致的数据块作为基准数据块;
7、将基准数据块的首部信息中包含的包体长度信息作为基准长度信息,确定后续接收到的数据块的首部信息中包含的包体长度信息是否与所述基准长度信息一致,将一致的数据块作为正确长度的数据块;
8、将基准数据块和正确长度的数据块储存为本地数据块,基于本地数据块的首部信息中的序列号和文件名对本地数据块进行重组和排序,以还原出与原始文件对应的重建文件,并根据文件名中的文件路径信息,确定重建文件的原始目录结构。
9、可选地,所述将待传输的文件分割成多个相同大小的数据块,并记录每个数据块的数据块信息,包括:
10、基于mtu、tcp协议的首部大小和ip协议的首部大小确定最大包体长度;
11、基于最大包体长度、网络带宽和预期的传输效率确定数据块的包体长度信息,基于所述文件的大小和数据块的包体长度信息将待传输的文件分割成多个相同大小的数据块;
12、创建一个数据块列表,在所述数据块列表中记录每个数据块对应的序列号和包体长度信息。
13、可选地,所述最大包体长度通过以下公式计算得到:
14、最大包体长度=mtu的大小-tcp协议的首部大小-ip协议的首部大小。
15、可选地,所述首部信息中的第一crc校验码通过以下公式计算得到:
16、第一crc校验码=数据块modcrc生成多项式。
17、可选地,所述接收端通过以下公式计算得到第二crc校验码:
18、第二crc校验码=数据块modcrc生成多项式。
19、可选地,所述数据块首部采用下列公式表示:
20、数据块的首部信息=固定字段长度信息+包体长度信息;
21、其中,所述固定字段长度信息包括第一crc校验码、包体长度信息和序列号。
22、可选地,所述基于本地数据块的首部信息中的序列号和文件名对本地数据块进行重组和排序,以还原出与原始文件对应的重建文件,包括:
23、基于本地数据块的首部信息中的序列号对本地数据块排序,基于所述本地数据块的包体长度信息解析每个数据块的开始和结束位置;
24、将本地数据块的首部信息中的文件名作为重建文件的文件名。
25、另一方面,本发明实施例提供了一种文件传输系统,包括:
26、第一模块,用于读取待传输的文件,获取该文件的大小;
27、第二模块,用于基于所述文件的大小将待传输的文件分割成多个相同大小的数据块,并记录每个数据块的数据块信息;其中,所述数据块信息包括序列号和包体长度信息;
28、第三模块,用于基于所述数据块信息在数据块的首部添加首部信息,将所述数据块和添加的首部信息作为一个整体通过tcp协议发送到接收端;其中,所述首部信息包括第一crc校验码、包体长度信息、序列号和文件名,所述文件名包括文件的存储路径;
29、第四模块,用于接收端在接收到数据块后,对该数据块计算得到第二crc校验码,并将所述第二crc校验码与该数据块的首部信息中的第一校验码进行比较,将一致的数据块作为基准数据块;
30、第五模块,用于将基准数据块的首部信息中包含的包体长度信息作为基准长度信息,确定后续接收到的数据块的首部信息中包含的包体长度信息是否与所述基准长度信息一致,将一致的数据块作为正确长度的数据块;
31、第六模块,用于将基准数据块和正确长度的数据块储存为本地数据块,基于本地数据块的首部信息中的序列号和文件名对本地数据块进行重组和排序,以还原出与原始文件对应的重建文件,并根据文件名中的文件路径信息,确定重建文件的原始目录结构。
32、另一方面,本发明实施例提供了一种文件传输装置,包括:
33、至少一个处理器;
34、至少一个存储器,用于存储至少一个程序;
35、当所述至少一个程序被所述至少一个处理器执行,使得所述至少一个处理器实现上述的方法。
36、另一方面,本发明实施例提供了一种计算机可读存储介质,其中存储有处理器可执行的程序,所述处理器可执行的程序在由处理器执行时用于执行上述的方法。
37、本发明实施例包括以下有益效果:本实施例基于文件的大小将待传输的文件分割成多个相同大小的数据块,并记录每个数据块的数据块信息;基于数据块信息在数据块的首部添加首部信息,将数据块和添加的首部信息作为一个整体通过tcp协议发送到接收端;通过文件分块策略,显著提高了文件传输的速度和效率。接收端在接收到数据块后,对该数据块计算得到第二crc校验码,将一致的数据块作为基准数据块;确定后续接收到的数据块的首部信息中包含的包体长度信息是否与基准长度信息一致,将一致的数据块作为正确长度的数据块;还原与原始文件对应的重建文件,并确定重建文件的原始目录结构;通过循环冗余校验来确保数据在传输过程中的完整性和准确性。用户无需进行复杂的打包和拆包操作,直接发送文件分块,简化了用户操作,提高了便捷性。本发明不仅提高了文件传输的速度和效率,还确保了数据的完整性和准确性,优化了内存使用效率,并显著提升了用户使用的便捷性。
本文地址:https://www.jishuxx.com/zhuanli/20240808/271632.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。
下一篇
返回列表