一种面向高并发文件传输的任务队列管理方法及系统
- 国知局
- 2024-09-11 14:39:27
本发明涉及网络传输,尤其涉及一种面向高并发文件传输的任务队列管理方法及系统。
背景技术:
1、quic(quick udp internet connections)是一种多路复用的网络传输层协议,旨在优化和改进基于tcp的传统端到端连接。quic自2012年首次推出以来,已得到快速发展和完善,并被ietf(internet engineering task force)标准化作为传输层协议。quic运行在udp协议之上,而udp作为一种无连接的协议,因其具备的较少握手次数和灵活的数据包处理特征,使得quic在建立连接时的耗时远远少于tcp。同时,quic内部集成了加密与安全功能,其安全性基于tls1.3,这意味着它本身就提供了完整的加密协议,不像tcp需要依赖额外的安全层(如tls/ssl)。此外,quic提供了错误更正机制,允许快速恢复丢失的数据包。因此,它可以对每个数据流分别处理丢包和确认,而不是像tcp那样统一处理。这个特性在网络不稳定时能更快地重新传输丢失的数据包,且不会阻塞其他数据流。
2、http/3是采用quic作为底层传输机制的新一代超文本传输协议。它是继http/2之后的又一次大规模更新,致力于解决http/2的诸多问题,如队头阻塞等等。http/2尽管已经实现了请求的多路复用,但它们仍共享同一个tcp连接。所以,一个慢请求可以延迟整个tcp队列。http/3通过使用quic解决了这个问题,它允许请求独立传输,从而即使某个请求变慢时也不会影响到其他请求。
3、综上所述,quic/http3协议用于文件传输有诸多优点。首先,quic通过优化握手过程,允许零rtt(往返时间)或最多一次rtt的连接建立,这远比传统的tcp连接更快速,握手时间更短。其次,quic的多路复用能力意味着单个流的延迟不会影响到其他流,从而避免了队头阻塞。再次,quic支持无缝的连接迁移功能,即使客户端在传输过程中改变其网络连接(如从wi-fi网络切换到移动数据网络),连接也可保持稳定。从次,quic还有着优秀的拥塞控制算法,使其能够平滑适应网络的波动,而不是在丢失事件发生时突然降低网速。最后,quic能够快速恢复丢失的数据包,而不必等待数据重传,进而显著降低了延迟。
4、尽管quic协议为文件传输带来了显著的性能提升,但是,在高并发文件传输场景下,单纯依靠quic自身的能力来实现,仍然面临诸多挑战。主要的挑战包含以下几点:
5、1.传输任务的高效管理:有效地处理包括数据包的接收、发送以及管理数量庞大的传输任务,这些是文件传输系统要面对的核心任务。
6、2.系统响应能力:面对大量文件传输任务时,如何快速且正确地处理任务是关键,对系统的响应速度有着直接影响。
7、3.多线程编程的复杂性:多线程间的通信和同步通常需要依赖于锁机制,这在高并发环境下容易成为性能瓶颈。锁的争用在负载增大时可能导致严重的性能退化,增加系统的操作复杂度并降低可扩展性。
技术实现思路
1、本发明的目的,在于解决现有多线程环境下的上述种种挑战,以及面向提升系统调度能力、降低响应延迟和优化传输效率的需求。
2、为实现上述目的,一方面,本发明提供了一种面向高并发文件传输的任务队列管理方法,该方法包括以下步骤:
3、步骤一、接收上传和下载任务,根据任务类型,传输数据大小的不同,创建多个类型、大小、优先级不同的单文件传输任务,并提交无锁任务队列;
4、步骤二、在唤醒时间到达后启动,从队列中取出任务,并根据文件的大小以及设置的分片阈值创建quic流,以及根据任务优先级设置流优先级;根据阻塞时间以及现存任务量,设置下一次唤醒时间;
5、步骤三、建立和对端的连接,读取创建好的quic流并且向其中填写http3协议封装标准的数据报文,解析收到的http3数据报文;以及根据网络状况反馈阻塞时间。
6、另一方面,本发明提供了一种面向高并发文件传输的任务队列管理系统,其特征在于,包括:任务接收和创建模块、任务队列管理模块和文件传输模块,其中
7、任务接收和创建模块,用于接收上传和下载任务,根据任务类型,传输数据大小的不同,创建多个类型、大小、优先级不同的单文件传输任务,并提交无锁任务队列;
8、任务队列管理模块,用于在唤醒时间到达后启动,从队列中取出任务,并根据文件的大小以及设置的分片阈值创建quic流,以及根据任务优先级设置流优先级;根据阻塞时间以及现存任务量,设置下一次唤醒时间;
9、文件传输模块,用于建立和对端的连接,读取创建好的quic流并且向其中填写http3协议封装标准的数据报文,解析收到的http3数据报文;以及根据网络状况反馈阻塞时间。
10、本发明无锁任务队列设计采用单生产者与单消费者模型,通过无锁编程框架,避免了线程间通信中的锁竞争问题,显著提升系统性能与响应速度,并有助于降低复杂性和线程间通信产生的开销。借助这种无锁任务队列管理方法,quic/http3文件传输系统能够在保持高安全性的同时,提升并行处理能力和稳定性,并为用户带来更为流畅的文件传输体验。
技术特征:1.一种面向高并发文件传输的任务队列管理方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的方法,其特征在于,所述步骤一包括:为每一个任务中要传输的文件创建任务结构体,并设置大小、类型、优先级;并将创建好的结构体提交无锁队列。
3.根据权利要求1所述的方法,其特征在于,所述步骤二包括:判断是否到达唤醒时间,如果已经到达则启动;判断当前的任务量是否小于上限,传输流数量是否小于上限,都小于则从任务队列中取出一个任务;根据任务中的文件的大小以及设置的分片阈值创建对应数量的quic流;直至到达设置的一次性读取任务的最大值;根据反馈的阻塞时间设置下一次读取任务的等待时间。
4.根据权利要求1所述的方法,其特征在于,所述步骤三包括:读取创建好的quic流,向任务队列管理模块反馈阻塞时间;组织http3报文,包括方法method、路径path、分片ranges以及文件内容形成数据报文放入quic流;将组织好的quic报文进行发送;接收quic数据包解析http3报文,将收到的文件内容进行存储。
5.根据权利要求1所述的方法,其特征在于,还包括:初始化quic协议栈,配置quic传输参数,创建无锁队列以及连接和流的上下文数据结构。
6.一种面向高并发文件传输的任务队列管理系统,其特征在于,包括:任务接收和创建模块、任务队列管理模块和文件传输模块,其中
7.根据权利要求6所述的系统,其特征在于,所述任务接收和创建模块,具体用于:为每一个任务中要传输的文件创建任务结构体,并设置大小、类型、优先级;并将创建好的结构体提交无锁队列。
8.根据权利要求6所述的系统,其特征在于,所述任务队列管理模块,具体用于:判断是否到达唤醒时间,如果已经到达则启动;判断当前的任务量是否小于上限,传输流数量是否小于上限,都小于则从任务队列中取出一个任务;根据任务中的文件的大小以及设置的分片阈值创建对应数量的quic流;直至到达设置的一次性读取任务的最大值;根据反馈的阻塞时间设置下一次读取任务的等待时间。
9.根据权利要求6所述的系统,其特征在于,所述文件传输模块,具体用于:读取创建好的quic流,向任务队列管理模块反馈阻塞时间;组织http3报文,包括方法method、路径path、分片ranges以及文件内容形成数据报文放入quic流;将组织好的quic报文进行发送;接收quic数据包解析http3报文,将收到的文件内容进行存储。
10.根据权利要求6所述的系统,其特征在于,还包括:初始化quic协议栈,配置quic传输参数,创建无锁队列以及连接和流的上下文数据结构。
技术总结本发明公开了一种面向高并发文件传输的任务队列管理方法及系统,其中,方法包括:接收上传和下载任务,然后根据任务类型,传输数据大小的不同,创建多个类型、大小、优先级不同的单文件传输任务,并提交无锁任务队列;在唤醒时间到达后启动,从队列中取出任务,并根据文件的大小以及设置的分片阈值创建一定量的QUIC流,以及根据任务优先级设置流优先级;根据阻塞时间以及现存任务量,设置下一次唤醒时间;建立和对端的连接,读取创建好的QUIC流并且向其中填写HTTP3协议封装标准的数据报文,解析收到的HTTP3数据报文;以及根据网络状况向任务队列管理模块反馈阻塞时间。系统包括:任务接收和创建模块、任务队列管理模块和文件传输模块。技术研发人员:王冬举,李焯坚,覃毅芳,周旭,范鹏飞,张心晴受保护的技术使用者:中国科学院计算机网络信息中心技术研发日:技术公布日:2024/9/9本文地址:https://www.jishuxx.com/zhuanli/20240911/291725.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。
下一篇
返回列表