基于UDP的数据传输方法及系统技术方案

技术编号:19101928 阅读:46 留言:0更新日期:2018-10-03 03:53
本发明专利技术提供一种基于UDP的数据传输方法及系统,所述方法包括:基于UDP接收客户端发送的数据包,所述数据包中至少包含计算任务;将所述计算任务分解成多个子任务,并将每个子任务发送给不同的计算单元进行计算;接收每个子任务的计算结果,并将每个子任务的计算结果合并成最终结果;将所述最终结果发送给所述客户端。本发明专利技术提供的基于UDP的数据传输方法及系统,通过在UDP的基础上制定可靠的应用层协议,实现了数据传输的可靠性和容错性,并且通过上层的分布式计算层实现数据的分布式计算,具有很强的适应性,可以根据网络的情况来调整重传机制的参数,此外,应用层协议和分布式计算层的实现完全独立,大大加强了系统的可扩展性和可移植性。

【技术实现步骤摘要】
基于UDP的数据传输方法及系统
本专利技术涉及计算机
,尤其涉及一种基于UDP的数据传输方法及系统。
技术介绍
分布式计算是当前大数据环境下非常普遍的计算方式,它集成了多计算机的资源优势,将大型的计算任务进行切割并分配给不同的子计算单元完成相应的子计算任务,最后将各个子计算结果进行合并得到最终的结果。分布式计算中一个非常重要的特性就是可靠性和容错性,即当某个计算单元失效时(不论是计算单元宕机还是网络不通),分布式计算系统的协调管理服务器需要准确地检测到各个计算单元是否失效,若某个计算单元失效,则重新分配相应的子计算任务给其他的空闲且存活的计算单元。可靠性和容错性主要是通过可靠的网络协议的心跳数据包检测对端是否存活。现有技术中,通常采用传输控制协议(TransmissionControlProtocol,TCP)实现协调管理服务器和客户端之间的数据传输,以及协调管理服务器和计算单元之间的数据传输。而用户数据报协议(UserDataProtocol,UDP)是非连接的协议,传输数据之前源端和终端不建立连接,UDP使用尽最大努力交付,即不保证可靠交付,因此主机不需要维持复杂的链接状态表,因此,分布式计算系统中通常不采用UDP进行数据传输。但是由于TCP在传输的可靠性、流量控制和拥塞控制上面做了大量的工作,导致其过于复杂,且TCP及其参数往往集成在操作系统中,普通的用户难以根据不同的业务场景进行定制和修改。而且TCP的超时重传的特性,在大部分的操作系统中初始的重传间隔为1.5秒,采用的是指数退避算法,每次重传之后超时的时间增加一倍,一直到75秒,尝试9次后断开连接,即除非一方主动断开,否则因网络的问题导致的连接问题需要大约12分钟才能被真正检测到,这在网络环境相对较差的环境下会导致大量的带宽浪费。
技术实现思路
本专利技术的目的是提供一种基于UDP的数据传输方法及系统,解决了现有的分布式计算系统中集成的TCP过于复杂,并且难以针对不同的应用进行定制,以及数据传输时延大、效率低和带宽浪费严重的技术问题。为了解决上述技术问题,一方面,本专利技术提供一种基于UDP的数据传输方法,包括:基于UDP接收客户端发送的数据包,所述数据包中至少包含计算任务;将所述计算任务分解成多个子任务,并将每个子任务发送给不同的计算单元进行计算;接收每个子任务的计算结果,并将每个子任务的计算结果合并成最终结果;将所述最终结果发送给所述客户端。进一步地,所述基于UDP接收客户端发送的数据包,具体为:基于UDP接收客户端发送的数据包,并获取所述客户端的地址;相应地,所述将所述最终结果发送给所述客户端,具体为:根据所述客户端的地址,将所述最终结果发送给所述客户端。进一步地,所述基于UDP接收客户端发送的数据包之前,还包括:向所述客户端发送初始化信息,所述初始化信息中至少包含为所述客户端分配的连接编号,以及与所述连接编号一一映射的所述客户端的地址,以使得所述客户端在发送所述数据包时,发送所述地址,所述地址用于识别所述客户端。进一步地,所述基于UDP接收客户端发送的数据包之后,还包括:根据发送序号,向所述客户端发送ACK信息,所述ACK信息用于指示确认收到所述数据包,并指示所述客户端将其发送窗口中的所述数据包移除,其中,所述发送序号包含于所述数据包中,所述发送序号用于识别所述数据包。进一步地,所述基于UDP接收客户端发送的数据包之后,还包括:若判断所述数据包损坏,则丢弃所述数据包,并等待所述客户端重新发送所述数据包。进一步地,所述方法还包括:接收所述客户端按照第一预设周期发送的第一心跳信息,所述第一心跳信息用于指示所述客户端处于正常状态;若判断获知在预设的第一最大无心跳周期内未接收到所述客户端发送的任何数据,则断开与所述客户端的连接。进一步地,所述方法还包括:接收所述计算单元按照第二预设周期发送的第二心跳信息,所述第二心跳信息用于指示所述计算单元处于正常状态;若判断获知在预设的第二最大无心跳周期内未接收到所述计算单元发送的任何数据,则断开与所述计算单元的连接。另一方面,本专利技术提供一种基于UDP的数据传输系统,包括:第一接收模块,用于基于UDP接收客户端发送的数据包,所述数据包中至少包含计算请求信息和计算任务;第一发送模块,用于根据所述计算请求信息,将所述计算任务分解成多个子任务,并将每个子任务发送给不同的计算单元进行计算;第二接收模块,用于接收每个子任务的计算结果,并将每个子任务的计算结果合并成最终结果;第二发送模块,用于将所述最终结果发送给所述客户端。再一方面,本专利技术提供一种用于基于UDP的数据传输方法的电子设备,包括:存储器和处理器,所述处理器和所述存储器通过总线完成相互间的通信;所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行上述的方法。又一方面,本专利技术提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,使所述计算机执行上述的方法。又一方面,本专利技术提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述的方法。本专利技术提供的基于UDP的数据传输方法及系统,通过在UDP的基础上制定可靠的应用层协议,实现了数据传输的可靠性和容错性,并且通过上层的分布式计算层实现数据的分布式计算,具有很强的适应性,可以根据网络的情况来调整重传机制的参数,此外,应用层协议和分布式计算层的实现完全独立,即上层的分布式计算层改变时,只需要修改对应的计算逻辑,完全不影响应用层协议的实现,大大加强了系统的可扩展性和可移植性。附图说明图1为依照本专利技术实施例的基于UDP的数据传输方法的示意图;图2为依照本专利技术实施例的分布式计算实现层的流程图;图3为依照本专利技术实施例的Server和Client进行初始化的流程图;图4为依照本专利技术实施例的协议层发送消息和发送窗口移动过程示意图;图5为依照本专利技术实施例的协议层接收消息和接收窗口移动过程示意图;图6为依照本专利技术实施例的协议层epoch重发未Ack的消息以及心跳消息的流程图;图7为依照本专利技术实施例的协议层epoch重发未Ack的消息以及心跳消息的流程图;图8为依照本专利技术实施例的基于UDP的数据传输系统的示意图;图9为本专利技术实施例提供的用于基于UDP的数据传输方法的电子设备的结构示意图。具体实施方式为了使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。图1为依照本专利技术实施例的基于UDP的数据传输方法的示意图,如图1所示,本专利技术实施例提供一种基于UDP的数据传输方法,包括:步骤S10、基于UDP接收客户端发送的数据包,所述数据包中至少包含计算任务;步骤S20、将所述计算任务分解成多个子任务,并将每个子任务发送给不同的计算单元进行计算;步骤S30、接收每个子任务的计算结果,并将每个子任务的计算结果合并成最终结果;步骤S40、将所述最终结果发本文档来自技高网
...

【技术保护点】
1.一种基于UDP的数据传输方法,其特征在于,包括:基于UDP接收客户端发送的数据包,所述数据包中至少包含计算任务;将所述计算任务分解成多个子任务,并将每个子任务发送给不同的计算单元进行计算;接收每个子任务的计算结果,并将每个子任务的计算结果合并成最终结果;将所述最终结果发送给所述客户端。

【技术特征摘要】
1.一种基于UDP的数据传输方法,其特征在于,包括:基于UDP接收客户端发送的数据包,所述数据包中至少包含计算任务;将所述计算任务分解成多个子任务,并将每个子任务发送给不同的计算单元进行计算;接收每个子任务的计算结果,并将每个子任务的计算结果合并成最终结果;将所述最终结果发送给所述客户端。2.根据权利要求1所述的方法,其特征在于,所述基于UDP接收客户端发送的数据包,具体为:基于UDP接收客户端发送的数据包,并获取所述客户端的地址;相应地,所述将所述最终结果发送给所述客户端,具体为:根据所述客户端的地址,将所述最终结果发送给所述客户端。3.根据权利要求2所述的方法,其特征在于,所述基于UDP接收客户端发送的数据包之前,还包括:向所述客户端发送初始化信息,所述初始化信息中至少包含为所述客户端分配的连接编号,以及与所述连接编号一一映射的所述客户端的地址,以使得所述客户端在发送所述数据包时,发送所述地址,所述地址用于识别所述客户端。4.根据权利要求1所述的方法,其特征在于,所述基于UDP接收客户端发送的数据包之后,还包括:根据发送序号,向所述客户端发送ACK信息,所述ACK信息用于指示确认收到所述数据包,并指示所述客户端将其发送窗口中的所述数据包移除,其中,所述发送序号包含于所述数据包中,所述发送序号用于识别所述数据包。5.根据权利要求1所述的方法,其特征在于,所述基于UDP接收客户端发送的数据包之后,还包括:若判断所述数据包损坏,则丢弃所述数据包,并等待所述客户端重新...

【专利技术属性】
技术研发人员:双锴张祎姚云腾苏森
申请(专利权)人:北京邮电大学
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1