一种基于udp协议的数据传输方法和系统的制作方法

文档序号:7898109阅读:291来源:国知局
专利名称:一种基于udp协议的数据传输方法和系统的制作方法
技术领域
本发明涉及通讯技术领域,特别涉及一种基于UDP协议的数据传输方法和系统, 可以应用于云计算等大型分布式系统,以实现节点之间的数据高效可靠通讯。
背景技术
云计算(cloud computing)是一种基于分布式技术的超级计算模式,在远程的数 据中心里,成千上万台电脑和服务器连接成一片电脑云。因此,云计算可以通过大量成本较 低的电脑和服务器,实现每秒10万亿次数量级的运算能力。不仅对于云计算这种大规模分 布式协作,其他例如远程商业数据集可视化、基于商业数学分析的模拟运算领域中,节点之 间的数据通讯都非常重要。首先,网络技术不断发展将高带宽、长延时的网络应用的通信模 式正在从点到点通信向多点到点和多点到多点通信方式转变。其次,每个应用云应用都有 独特的,跨越多种传输特征的通信需求,如传输速率、延时、丢包率。
在实现本发明的过程中,发明人发现现有技术至少具有以下缺点
标准的数据传输协议如 TCP (transmission control protocol)禾口 UDP (user datagram protocol)已经无法满足需要。只是由于TCP协议会随着带宽和延时的增长产 生相反的作用,从而导致了高带宽长延时网络的低性能;而UDP不关心网络数据传输的一 系列状态,虽然可以获得较高的传输性能,支持海量并发连接,但基本上是一个没有保证的 最小传输协议。此外,每个云计算应用都有其独特的通信QoS需求,由于TCP和UDP被设计 为通用传输协议,它们不可能为每个云计算应用都提供最佳的通信服务。发明内容
为了解决现有技术中的数据传输协议无法满足当前数据传输的问题,本发明实施 例提出了一种基于UDP协议的数据传输方法和系统。所述技术方案如下
本发明实施例提出了一种基于UDP协议的数据传输方法,包括
发送端与接收端建立连接;
建立滑动窗口模型,并对每一数据包设置一标识位,所述标识位连续编号;发送端 与接收端通过滑动窗口进行消息的收发同步以及流量控制。
作为上述技术方案的优选,所述发送端与接收端建立连接包括
发送端向接收端发送第一同步序列编号标志,所述第一同步序列编号标志中至少 包括用于提示连接的检查序列编号X ;
接收端接收到所述第一同步序列编号标志后,返回第一响应标志,所述第一响应 标志中至少包括下一个预期的序列编号X+1 ;且所诉接收端返回第二同步序列编号标志, 所述第二同步序列编号标志中至少包括用于提示连接的检查序列编号Y ;
发送端接收到所述第二同步序列编号标志后,返回第二响应标志,所述第二响应 标志中至少包括下一个预期的序列编号Y+1。
作为上述技术方案的优选,所述建立滑动窗口模型,并对每一数据包设置一标识位,所述标识位连续编号;发送端与接收端通过滑动窗口进行消息的收发同步以及流量控 制包括
在发送端设置环形的发送端滑动窗口,所述发送端滑动窗口中包括发送窗口、发 送队列和重发队列,并通过三个标志箭头隔开;该三个标志箭头分别为已发送的最大消息 序号、可发送的最大消息序号、最大按序被应答序号;
在接收端设置环形的接收端滑动窗口,所述接收端滑动窗口中包括接收窗口、乱 序队列和按序队列,并通过三个标志箭头隔开;该三个标志箭头分别为已接收的最大消息 序号、可接收的最大消息序号、最大按序到达消息序号;
在每一数据包头添加一个标识位;以使发送端对发送的每一数据包进行顺序编 号;并以所述标识位作为连接所述发送端滑动窗口和所述接收端滑动窗口的环形,并将输 入的消息流作为推动模型运动的动力;接收端滑动窗口和发送端滑动窗口都按照顺时针方 向运动,当接收端的已发送的最大消息序号标志箭头与接收端的已接收的最大消息序号标 志箭头重合时,接收窗口停止转动,并使发送窗口停止转动。
作为上述技术方案的优选,所述方法还包括
发送端根据接收到的数据包的标识位,确定丢失的数据包并进行重传;具体为
接收端将接收到的乱序数据包存储到所述乱序队列中,并设置乱序计数器或乱序 定时器;
当该乱序计数器或乱序定时器溢出时,向发送方发送扩展确认信息;该扩展确认 信息中至少包括接收端已经收到的最大按序数据包的序号和收到的所有乱序数据包的序 号;
发送端接收到该扩展确认数据包后,将根据最大确认序号和接收端接收到的所有 乱序数据包的序号,确定丢失的数据包后进行重传。
作为上述技术方案的优选,所述方法还包括
发送端与接收端通信以关闭连接;具体为
当所述发送端与接收端通过临时链路进行连接时,当数据全部发送完成后,双方 通讯以关闭该临时链路;
当所述发送端与接收端通过永久性链路进行连接时,当发送端和/或接收端在出 现错误的情况下进行关闭操作;包括
发生错误的一方立即停止接收上层发送来的新数据,并将重传队列中的数据进行 快速重传,并向对方发送一个关闭请求数据包;然后启动一个超时定时器,定时器超时之后 立即关闭本端连接并释放连接资源;
另一方在收到主动关闭的一方发来的关闭请求后,立即停止接收上层发送来的新 数据,并将重传队列中的数据进行快速重传,并向对方发送一个关闭请求数据包;然后启动 一个超时定时器,定时器超时之后立即关闭本端连接并释放连接资源。
本发明实施例还提出了一种基于UDP协议的数据传输系统,包括
连接模块,用于为发送端与接收端建立连接;
数据传输模块,用于建立滑动窗口模型,并对每一数据包设置一标识位,所述标识 位连续编号;发送端与接收端通过滑动窗口进行消息的收发同步以及流量控制。
作为上述技术方案的优选,所述连接模块包括
发送端单元,用于发送端向接收端发送第一同步序列编号标志,所述第一同步序 列编号标志中至少包括用于提示连接的检查序列编号X ;
接收端单元,用于接收到所述第一同步序列编号标志后,返回第一响应标志,所述 第一响应标志中至少包括下一个预期的序列编号X+1 ;且所诉接收端返回第二同步序列编 号标志,所述第二同步序列编号标志中至少包括用于提示连接的检查序列编号Y ;
接收端单元还用于接收端发送端接收到所述第二同步序列编号标志后,返回第二 响应标志,所述第二响应标志中至少包括下一个预期的序列编号Y+1。
作为上述技术方案的优选,所述数据传输模块包括
发送端设置单元,用于在发送端设置环形的发送端滑动窗口,所述发送端滑动窗 口中包括发送窗口、发送队列和重发队列,并通过三个标志箭头隔开;该三个标志箭头分别 为已发送的最大消息序号、可发送的最大消息序号、最大按序被应答序号;
接收端设置单元,用于在接收端设置环形的接收端滑动窗口,所述接收端滑动窗 口中包括接收窗口、乱序队列和按序队列,并通过三个标志箭头隔开;该三个标志箭头分别 为已接收的最大消息序号、可接收的最大消息序号、最大按序到达消息序号;
标识单元,用于在每一数据包头添加一个标识位;以使发送端对发送的每一数据 包进行顺序编号;并以所述标识位作为连接所述发送端滑动窗口和所述接收端滑动窗口的 环形,并将输入的消息流作为推动模型运动的动力;
控制单元,用于控制接收端滑动窗口和发送端滑动窗口都按照顺时针方向运动, 当接收端的已发送的最大消息序号标志箭头与接收端的已接收的最大消息序号标志箭头 重合时,接收窗口停止转动,并使发送窗口停止转动。
作为上述技术方案的优选,所述系统还包括
重传模块,用于根据接收到的数据包的标识位,确定丢失的数据包并进行重传;
所述重传模块具体为
接收端存储单元,用于将接收到的乱序数据包存储到所述乱序队列中,并设置乱 序计数器或乱序定时器;
信息发送单元,用于当该乱序计数器或乱序定时器溢出时,向发送方发送扩展确 认信息;该扩展确认信息中至少包括接收端已经收到的最大按序数据包的序号和收到的所 有乱序数据包的序号;
重传单元、发送端接收到该扩展确认数据包后,将根据最大确认序号和接收端接 收到的所有乱序数据包的序号,确定丢失的数据包后进行重传。
作为上述技术方案的优选,所述系统还包括
连接关闭模块,用于使发送端与接收端通信以关闭连接;
所述连接关闭模块具体为
当所述发送端与接收端通过临时链路进行连接时,当数据全部发送完成后,所述 连接关闭模块使双方通讯以关闭该临时链路;
当所述发送端与接收端通过永久性链路进行连接时,当发送端和/或接收端在 出现错误的情况下进行关闭操作;所述连接关闭模块使双方通讯以关闭该永久性链路,包 括
发生错误的一方立即停止接收上层发送来的新数据,并将重传队列中的数据进行7快速重传,并向对方发送一个关闭请求数据包;然后启动一个超时定时器,定时器超时之后 立即关闭本端连接并释放连接资源;另一方在收到主动关闭的一方发来的关闭请求后,立 即停止接收上层发送来的新数据,并将重传队列中的数据进行快速重传,并向对方发送一 个关闭请求数据包;然后启动一个超时定时器,定时器超时之后立即关闭本端连接并释放 连接资源。
本发明实施例的有益效果是本发明实施例在现有的UDP协议的基础上进行扩 展,在保证高效数据传输的前提下,提高了 UDP的可靠性。同时本发明实施例不仅可以为各 种云计算应用提供传输服务,还能在不同云计算环境下保证高性能。


图1为本发明第一实施例的流程示意图2为本发明第二实施例的流程示意图3为建立连接的示意图4为滑动窗口模型的示意图5为本发明第三实施例的结构示意图6为本发明第四实施例的结构示意图7为举例说明的实现本发明实施例的软件结构图8为本发明实施例与其他传输协议应用在云计算系统中的远距离实时成像中 网络吞吐量比较;
图9为本发明实施例与其他传输协议应用在云计算系统中的RTT为60ms连接下 端到端消息延时比较;
图10为本发明实施例与其他传输协议应用在云计算系统中的RTT为Ims连接下 端到端消息延时比较。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方 式作进一步地详细描述。
对于云计算等大型分布式系统来说,对于数据的可靠传输是非常重要的。同时, 针对数据传输的性能要求也有区别一方面,基于密集波分复用(DWDM,dense wavelength division multiplexing)技术的LambdaGrid能将传统的分布式云计算资源与专用的动态 带宽技术结合起来,动态配置比传统网络架构高得多的网络性能和QoS。同时,广域云计算 中大规模计算与数据共享以及对等计算的出现,推动了通信模式由点到点连接向点到多点 和多点到多点的演变。这些因素使得不同的云计算应用具有不同的网络传输特性,以下是 3个典型的云计算应用实例,具有一定的普遍性(如表1所示)。发率息输输理 重速消传传处 包定认序择时 丢稳确按选超
权利要求
1.一种基于UDP协议的数据传输方法,其特征在于,包括 发送端与接收端建立连接;建立滑动窗口模型,并对每一数据包设置一标识位,所述标识位连续编号;发送端与接 收端通过滑动窗口进行消息的收发同步以及流量控制。
2.根据权利要求1所述的基于UDP协议的数据传输方法,其特征在于,所述发送端与接 收端建立连接包括发送端向接收端发送第一同步序列编号标志,所述第一同步序列编号标志中至少包括 用于提示连接的检查序列编号X ;接收端接收到所述第一同步序列编号标志后,返回第一响应标志,所述第一响应标志 中至少包括下一个预期的序列编号X+1 ;且所诉接收端返回第二同步序列编号标志,所述 第二同步序列编号标志中至少包括用于提示连接的检查序列编号Y ;发送端接收到所述第二同步序列编号标志后,返回第二响应标志,所述第二响应标志 中至少包括下一个预期的序列编号Y+1。
3.根据权利要求1所述的基于UDP协议的数据传输方法,其特征在于,所述建立滑动窗 口模型,并对每一数据包设置一标识位,所述标识位连续编号;发送端与接收端通过滑动窗 口进行消息的收发同步以及流量控制包括在发送端设置环形的发送端滑动窗口,所述发送端滑动窗口中包括发送窗口、发送队 列和重发队列,并通过三个标志箭头隔开;该三个标志箭头分别为已发送的最大消息序号、 可发送的最大消息序号、最大按序被应答序号;在接收端设置环形的接收端滑动窗口,所述接收端滑动窗口中包括接收窗口、乱序队 列和按序队列,并通过三个标志箭头隔开;该三个标志箭头分别为已接收的最大消息序号、 可接收的最大消息序号、最大按序到达消息序号;在每一数据包头添加一个标识位;以使发送端对发送的每一数据包进行顺序编号;并 以所述标识位作为连接所述发送端滑动窗口和所述接收端滑动窗口的环形,并将输入的消 息流作为推动模型运动的动力;接收端滑动窗口和发送端滑动窗口都按照顺时针方向运 动,当接收端的已发送的最大消息序号标志箭头与接收端的已接收的最大消息序号标志箭 头重合时,接收窗口停止转动,并使发送窗口停止转动。
4.根据权利要求1所述的基于UDP协议的数据传输方法,其特征在于,所述方法还包括发送端根据接收到的数据包的标识位,确定丢失的数据包并进行重传;具体为 接收端将接收到的乱序数据包存储到所述乱序队列中,并设置乱序计数器或乱序定时器;当该乱序计数器或乱序定时器溢出时,向发送方发送扩展确认信息;该扩展确认信息 中至少包括接收端已经收到的最大按序数据包的序号和收到的所有乱序数据包的序号;发送端接收到该扩展确认数据包后,将根据最大确认序号和接收端接收到的所有乱序 数据包的序号,确定丢失的数据包后进行重传。
5.根据权利要求1所述的基于UDP协议的数据传输方法,其特征在于,所述方法还包括发送端与接收端通信以关闭连接;具体为当所述发送端与接收端通过临时链路进行连接时,当数据全部发送完成后,双方通讯 以关闭该临时链路;当所述发送端与接收端通过永久性链路进行连接时,当发送端和/或接收端在出现错 误的情况下进行关闭操作;包括发生错误的一方立即停止接收上层发送来的新数据,并将重传队列中的数据进行快速 重传,并向对方发送一个关闭请求数据包;然后启动一个超时定时器,定时器超时之后立即 关闭本端连接并释放连接资源;另一方在收到主动关闭的一方发来的关闭请求后,立即停止接收上层发送来的新数 据,并将重传队列中的数据进行快速重传,并向对方发送一个关闭请求数据包;然后启动一 个超时定时器,定时器超时之后立即关闭本端连接并释放连接资源。
6.一种基于UDP协议的数据传输系统,其特征在于,包括 连接模块,用于为发送端与接收端建立连接;数据传输模块,用于建立滑动窗口模型,并对每一数据包设置一标识位,所述标识位连 续编号;发送端与接收端通过滑动窗口进行消息的收发同步以及流量控制。
7.根据权利要求6所述的基于UDP协议的数据传输系统,其特征在于,所述连接模块包括发送端单元,用于发送端向接收端发送第一同步序列编号标志,所述第一同步序列编 号标志中至少包括用于提示连接的检查序列编号X ;接收端单元,用于接收到所述第一同步序列编号标志后,返回第一响应标志,所述第一 响应标志中至少包括下一个预期的序列编号X+1 ;且所诉接收端返回第二同步序列编号标 志,所述第二同步序列编号标志中至少包括用于提示连接的检查序列编号Y ;接收端单元还用于接收端发送端接收到所述第二同步序列编号标志后,返回第二响应 标志,所述第二响应标志中至少包括下一个预期的序列编号Y+1。
8.根据权利要求6所述的基于UDP协议的数据传输系统,其特征在于,所述数据传输模 块包括发送端设置单元,用于在发送端设置环形的发送端滑动窗口,所述发送端滑动窗口中 包括发送窗口、发送队列和重发队列,并通过三个标志箭头隔开;该三个标志箭头分别为已 发送的最大消息序号、可发送的最大消息序号、最大按序被应答序号;接收端设置单元,用于在接收端设置环形的接收端滑动窗口,所述接收端滑动窗口中 包括接收窗口、乱序队列和按序队列,并通过三个标志箭头隔开;该三个标志箭头分别为已 接收的最大消息序号、可接收的最大消息序号、最大按序到达消息序号;标识单元,用于在每一数据包头添加一个标识位;以使发送端对发送的每一数据包进 行顺序编号;并以所述标识位作为连接所述发送端滑动窗口和所述接收端滑动窗口的环 形,并将输入的消息流作为推动模型运动的动力;控制单元,用于控制接收端滑动窗口和发送端滑动窗口都按照顺时针方向运动,当接 收端的已发送的最大消息序号标志箭头与接收端的已接收的最大消息序号标志箭头重合 时,接收窗口停止转动,并使发送窗口停止转动。
9.根据权利要求6所述的基于UDP协议的数据传输系统,其特征在于,所述系统还包括重传模块,用于根据接收到的数据包的标识位,确定丢失的数据包并进行重传; 所述重传模块具体为接收端存储单元,用于将接收到的乱序数据包存储到所述乱序队列中,并设置乱序计 数器或乱序定时器;信息发送单元,用于当该乱序计数器或乱序定时器溢出时,向发送方发送扩展确认信 息;该扩展确认信息中至少包括接收端已经收到的最大按序数据包的序号和收到的所有乱 序数据包的序号;重传单元、发送端接收到该扩展确认数据包后,将根据最大确认序号和接收端接收到 的所有乱序数据包的序号,确定丢失的数据包后进行重传。
10.根据权利要求6所述的基于UDP协议的数据传输系统,其特征在于,所述系统还包括连接关闭模块,用于使发送端与接收端通信以关闭连接; 所述连接关闭模块具体为当所述发送端与接收端通过临时链路进行连接时,当数据全部发送完成后,所述连接 关闭模块使双方通讯以关闭该临时链路;当所述发送端与接收端通过永久性链路进行连接时,当发送端和/或接收端在出现错 误的情况下进行关闭操作;所述连接关闭模块使双方通讯以关闭该永久性链路,包括发生错误的一方立即停止接收上层发送来的新数据,并将重传队列中的数据进行快速 重传,并向对方发送一个关闭请求数据包;然后启动一个超时定时器,定时器超时之后立即 关闭本端连接并释放连接资源;另一方在收到主动关闭的一方发来的关闭请求后,立即停 止接收上层发送来的新数据,并将重传队列中的数据进行快速重传,并向对方发送一个关 闭请求数据包;然后启动一个超时定时器,定时器超时之后立即关闭本端连接并释放连接 资源。
全文摘要
本发明提出了一种基于UDP协议的数据传输方法和系统,属于通讯技术领域。本发明的系统包括连接模块、数据传输模块;方法包括发送端与接收端建立连接;建立滑动窗口模型,并对每一数据包设置一标识位,所述标识位连续编号;发送端与接收端通过滑动窗口进行消息的收发同步以及流量控制。本发明实施例可以应用于云计算领域,在现有的UDP协议的基础上进行扩展,在保证高效数据传输的前提下,提高了UDP的可靠性。同时本发明实施例不仅可以为各种云计算应用提供传输服务,还能在不同云计算环境下保证高性能。
文档编号H04L29/06GK102045362SQ20101061517
公开日2011年5月4日 申请日期2010年12月21日 优先权日2010年12月21日
发明者金晨 申请人:北京高森明晨信息科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1