一种数据传输系统和方法技术方案

技术编号:17365986 阅读:44 留言:0更新日期:2018-02-28 17:47
本发明专利技术提供了一种数据传输系统,所述系统的协议栈的传输层采用UDP协议,且设置有滑动发送窗口和滑动接收窗口;其中,滑动发送窗口将已发送但尚未接收到确认信息的数据分组放入第一数据分组队列;将准备发送的数据分组放入第二数据分组队列;以及将需要重传的数据分组放入第三数据分组队列;滑动接收窗口用于检测接收到的数据分组的序列号并按次序进行排列,以及将形成顺序的数据分组移出,将失序到达的数据分组保留并进行重传处理,直到所述失序到达的数据分组形成顺序;所述数据分组由对应应用层为待发送数据划分;所述分组序列号为发送数据分组前为该数据分组分配。本发明专利技术还提供一种数据传输方法。本发明专利技术能够提高数据的传输效率和可靠性。

A data transmission system and method

【技术实现步骤摘要】
一种数据传输系统和方法
本专利技术属于数据传输领域,具体涉及一种数据传输系统和方法。
技术介绍
TCP是一种面向建立连接的传输协议,利用TCP协议传送数据,发送与接收双方必须建立数据传输的连接,通信过程只能在连接的基础上进行,接收方对于每收到的一个分组数据报,都需要向发送方反馈确认信息,通信过程完成后收发双方断开连接,同时TCP是以字节流的形式发送数据的,是面向数据字节流的传输协议。而对于TCP的其他的一些特性,流量控制,差错控制,拥塞控制等,都是在建立连接的基础上完成的,该也为可靠地传输性提供了保障机制。然而由于TCP的传输特点,导致TCP协议传输速率慢,占用系统开销,在多媒体通信中并不好用。UDP是一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务,最大的特点是不可靠,只能提供尽最大努力交付,因为UDP是面向无连接的网络协议,即发送方与接收方之间是没有连接的,这样在通信过程中双方都对彼此的状态不清楚,也就是说发送方只需要发送数据报,接收方是否处于接收状态,发送方一概不知,发送方发出数据包之后,接收方能否接到,也无法知道。还有双方对网络情况也不清楚。此外,UDP不关必网络通信环境,所以分组在传输过程中丢包也很难察觉。正是由于UDP不建立连接,所以节省了大量的开销,很大程度上加快了数据的传输速度,能够进行大规模数据的传送,极大地提高了网络的通信性能。因此,在保证UDP高效传输的基础上对它的可靠性进行一定的改造,是值得研究的课题。
技术实现思路
针对上述技术问题,本专利技术提供一种数据传输系统,能够提高采用UDP协议进行数据传输的可靠性。本专利技术采用的技术方案为:本专利技术的实施例提供一种数据传输系统,所述系统的协议栈的传输层采用UDP协议,且设置有滑动发送窗口和滑动接收窗口;其中,所述滑动发送窗口将已发送但尚未接收到确认信息的数据分组放入第一数据分组队列;将准备发送的数据分组放入第二数据分组队列;以及将需要重传的数据分组放入第三数据分组队列;所述滑动接收窗口用于检测接收到的数据分组的序列号并按次序进行排列,以及将形成顺序的数据分组移出,将失序到达的数据分组保留并进行重传处理,直到所述失序到达的数据分组形成顺序;所述数据分组由对应应用层为待发送数据划分;所述分组序列号为发送数据分组前为该数据分组分配。可选地,所述滑动发送窗口,还用于当所述第一数据分组队列接收到对应确认信息或者所述第三数据分组队列完成重传,所述滑动发送窗口向前滑动;所述滑动接收窗口,还用于在接收到数据分组时将自身窗口大小减小,直到接收到的分组数据对应的应用程序将该分组数据所属的完整数据队列处理完成,增大所述窗口大小。可选地,在传输层和网络层之间添加有数据报处理层;其中,所述数据报处理层用于针对从传输层接收到的发送数据,为该发送数据添加所述数据报处理层对应的报头,并将添加有数据报处理层对应的报头的数据包发送给网络层;以及针对从网络层接收到的接收数据,对该接收数据的数据报处理层对应的报头进行解析拆包,并将拆包后的数据发送给传输层;所述报头结构包括数据报的分组序列号。可选地,所述报头结构中还包括数据包类型;所述数据报类型包括:数据信息包、请求数据包、确认数据包、控制信息包、以及结束信息包;所述数据信息包,用于承载数据分组;所述请求数据包,用于承载在作为数据发送方开始发送数据分组之前向数据接收方发送的数据传输开始请求;所述确认数据包,用于在作为数据接收方接收到请求数据包或者接收到预设数量的数据分组之后向发送方发送的确认信息;所述控制信息包,用于承载作为数据接收方向数据发送方发送的表征数据接收方当前滑动接收窗口大小的控制消息,以便数据发送方根据接收到控制信息调整发送数据报的速率;或者用于承载作为数据接收方向数据发送方发送的表征需要重传丢失的数据包的控制信息;所述结束信息包,用于承载表征当前数据传输结束的通知信息;所述通知消息在作为数据接收方接收到最后一组分组数据报,并关闭接收滑动窗口后向数据发送方发送,以便数据发送方响应于接收到的所述通知消息关闭发送滑动窗口。可选地,所述数据信息包、所述请求数据包、所述确认数据包、以及所述结束信息包通过数据线程传输;所述控制信息包通过控制线程传输。可选地,当作为数据接收方在设定时间内未接收到数据发送方重传的数据包时,所述控制信息包,还用于承载表征要求数据发送方重传丢失的数据包的控制信息;以及当作为数据发送方在设定时间内未接收到针对已发送数据包的确认信息时,所述控制信息包,还用于承载表征要求数据接收方重传丢失的确认信息的控制信息。可选地,所述分组序列号取值范围为0~264之间的整数。本专利技术实施例还提供一种数据传输方法,所述方法包括:判断已发送数据是否接收到确认信息;若未接收到,则将该已发送数据放入滑动发送窗口的第一数据分组队列;将准备发送的数据分组放入所述滑动发送窗口的第二数据分组队列;将需要重传的数据分组放入所述滑动发送窗口的第三数据分组队列;以及检测通过滑动接收窗口接收到的数据分组的序列号并按次序进行排列;并将形成顺序的数据分组移出,将失序到达的数据分组保留并进行重传处理,直到所述失序到达的数据分组形成顺序;其中,协议栈的传输层采用UDP协议传输数据,且设置有滑动发送窗口和滑动接收窗口;所述数据分组由所述协议栈应用层为待发送数据划分;所述分组序列号为发送数据分组前为该数据分组分配。可选地,还包括:当所述第一数据分组队列接收到对应确认信息或者所述第三数据分组队列完成重传,所述滑动发送窗口向前滑动;在接收到数据分组时,所述滑动接收窗口将自身窗口大小减小,直到接收到的分组数据对应的应用程序将该分组数据所属的完整数据队列处理完成,增大所述窗口大小。可选地,在所述协议栈的传输层和网络层之间添加有数据报处理层;其中,所述数据报处理层用于针对从传输层接收到的发送数据,为该发送数据添加所述数据报处理层对应的报头,并将添加有数据报处理层对应的报头的数据包发送给网络层;以及针对从网络层接收到的接收数据,对该接收数据的数据报处理层对应的报头进行解析拆包,并将拆包后的数据发送给传输层;所述报头结构包括数据报的分组序列号。本专利技术实施例提供的数据传输系统和方法,对于采用UDP协议进行传输的数据,采用滑动发送窗口来进行发送数据分组和采用滑动接收窗口来进行接收数据分组,其中,滑动发送窗口将已发送但尚未接收到确认信息的数据分组、将准备发送的数据分组以及将需要重传的数据分组放入不同的分组队列,滑动接收窗口检测接收到的数据分组的序列号并按次序进行排列,以及将形成顺序的数据分组移出,将失序到达的数据分组保留并进行重传处理,直到所述失序到达的数据分组形成顺序,从而能够明确知道哪些数据分组已经被发送且被成功接收,哪些数据还未发送,哪些数据需要重新发送,使得数据传输更加有效和可靠。附图说明图1为本专利技术实施例提供的数据传输系统的结构示意图;图2为本专利技术实施例提供的数据传输系统的失序控制机制的原理图;图3为本专利技术另一实施例提供的数据传输系统的结构示意图;图4为本专利技术实施例提供的数据传输方法的流程示意图。具体实施方式为使本专利技术要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。图1为本专利技术实施例提供的数据传输系统的结构示意图。如本文档来自技高网...
一种数据传输系统和方法

【技术保护点】
一种数据传输系统,其特征在于,所述系统的协议栈的传输层采用UDP协议,且设置有滑动发送窗口和滑动接收窗口;其中,所述滑动发送窗口用于将已发送但尚未接收到确认信息的数据分组放入第一数据分组队列;将准备发送的数据分组放入第二数据分组队列;以及将需要重传的数据分组放入第三数据分组队列;所述滑动接收窗口用于检测接收到的数据分组的序列号并按次序进行排列,以及将形成顺序的数据分组移出,将失序到达的数据分组保留并进行重传处理,直到所述失序到达的数据分组形成顺序;所述数据分组由对应应用层为待发送数据划分;所述分组序列号为发送数据分组前为该数据分组分配。

【技术特征摘要】
1.一种数据传输系统,其特征在于,所述系统的协议栈的传输层采用UDP协议,且设置有滑动发送窗口和滑动接收窗口;其中,所述滑动发送窗口用于将已发送但尚未接收到确认信息的数据分组放入第一数据分组队列;将准备发送的数据分组放入第二数据分组队列;以及将需要重传的数据分组放入第三数据分组队列;所述滑动接收窗口用于检测接收到的数据分组的序列号并按次序进行排列,以及将形成顺序的数据分组移出,将失序到达的数据分组保留并进行重传处理,直到所述失序到达的数据分组形成顺序;所述数据分组由对应应用层为待发送数据划分;所述分组序列号为发送数据分组前为该数据分组分配。2.根据权利要求1所述的数据传输系统,其特征在于,所述滑动发送窗口,还用于当所述第一数据分组队列接收到对应确认信息或者所述第三数据分组队列完成重传,所述滑动发送窗口向前滑动;所述滑动接收窗口,还用于在接收到数据分组时将自身窗口大小减小,直到接收到的分组数据对应的应用程序将该分组数据所属的完整数据队列处理完成,增大所述窗口大小。3.根据权利要求1所述的数据传输系统,其特征在于,在传输层和网络层之间添加有数据报处理层;其中,所述数据报处理层用于针对从传输层接收到的发送数据,为该发送数据添加所述数据报处理层对应的报头,并将添加有数据报处理层对应的报头的数据包发送给网络层;以及针对从网络层接收到的接收数据,对该接收数据的数据报处理层对应的报头进行解析拆包,并将拆包后的数据发送给传输层;所述报头结构包括数据报的分组序列号。4.根据权利要求3所述的数据传输系统,其特征在于,所述报头结构中还包括数据包类型;所述数据报类型包括:数据信息包、请求数据包、确认数据包、控制信息包、以及结束信息包;所述数据信息包,用于承载数据分组;所述请求数据包,用于承载在作为数据发送方开始发送数据分组之前向数据接收方发送的数据传输开始请求;所述确认数据包,用于在作为数据接收方接收到请求数据包或者接收到预设数量的数据分组之后向发送方发送的确认信息;所述控制信息包,用于承载作为数据接收方向数据发送方发送的表征数据接收方当前滑动接收窗口大小的控制消息,以便数据发送方根据接收到控制信息调整发送数据报的速率;或者用于承载作为数据接收方向数据发送方发送的表征需要重传丢失的数据包的控制信息;所述结束信息包,用于承载表征当前数据传输结束的通知信息;所述通知消息在作为数据接收方接收到最后一组分组数据...

【专利技术属性】
技术研发人员:陈进宝吴钟秀唐妍
申请(专利权)人:国信优易数据有限公司
类型:发明
国别省市:北京,11

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

1