CN107743057A - 一种数据传输系统和方法 - Google Patents
一种数据传输系统和方法 Download PDFInfo
- Publication number
- CN107743057A CN107743057A CN201710912222.4A CN201710912222A CN107743057A CN 107743057 A CN107743057 A CN 107743057A CN 201710912222 A CN201710912222 A CN 201710912222A CN 107743057 A CN107743057 A CN 107743057A
- Authority
- CN
- China
- Prior art keywords
- packet
- data
- window
- transmission
- sent
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/1607—Details of the supervisory signal
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/1607—Details of the supervisory signal
- H04L1/1657—Implicit acknowledgement of correct or incorrect reception, e.g. with a moving window
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1829—Arrangements specially adapted for the receiver end
- H04L1/1832—Details of sliding window management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1829—Arrangements specially adapted for the receiver end
- H04L1/1858—Transmission or retransmission of more than one copy of acknowledgement message
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1867—Arrangements specially adapted for the transmitter end
- H04L1/187—Details of sliding window management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1867—Arrangements specially adapted for the transmitter end
- H04L1/1874—Buffer management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1867—Arrangements specially adapted for the transmitter end
- H04L1/1887—Scheduling and prioritising arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/164—Adaptation or special uses of UDP protocol
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Communication Control (AREA)
Abstract
本发明提供了一种数据传输系统,所述系统的协议栈的传输层采用UDP协议,且设置有滑动发送窗口和滑动接收窗口;其中,滑动发送窗口将已发送但尚未接收到确认信息的数据分组放入第一数据分组队列;将准备发送的数据分组放入第二数据分组队列;以及将需要重传的数据分组放入第三数据分组队列;滑动接收窗口用于检测接收到的数据分组的序列号并按次序进行排列,以及将形成顺序的数据分组移出,将失序到达的数据分组保留并进行重传处理,直到所述失序到达的数据分组形成顺序;所述数据分组由对应应用层为待发送数据划分;所述分组序列号为发送数据分组前为该数据分组分配。本发明还提供一种数据传输方法。本发明能够提高数据的传输效率和可靠性。
Description
技术领域
本发明属于数据传输领域,具体涉及一种数据传输系统和方法。
背景技术
TCP是一种面向建立连接的传输协议,利用TCP协议传送数据,发送与接收双方必须建立数据传输的连接,通信过程只能在连接的基础上进行,接收方对于每收到的一个分组数据报,都需要向发送方反馈确认信息,通信过程完成后收发双方断开连接,同时TCP是以字节流的形式发送数据的,是面向数据字节流的传输协议。而对于TCP的其他的一些特性,流量控制,差错控制,拥塞控制等,都是在建立连接的基础上完成的,该也为可靠地传输性提供了保障机制。然而由于TCP的传输特点,导致TCP协议传输速率慢,占用系统开销,在多媒体通信中并不好用。
UDP是一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务,最大的特点是不可靠,只能提供尽最大努力交付,因为UDP是面向无连接的网络协议,即发送方与接收方之间是没有连接的,这样在通信过程中双方都对彼此的状态不清楚,也就是说发送方只需要发送数据报,接收方是否处于接收状态,发送方一概不知,发送方发出数据包之后,接收方能否接到,也无法知道。还有双方对网络情况也不清楚。此外,UDP不关必网络通信环境,所以分组在传输过程中丢包也很难察觉。正是由于UDP不建立连接,所以节省了大量的开销,很大程度上加快了数据的传输速度,能够进行大规模数据的传送,极大地提高了网络的通信性能。
因此,在保证UDP高效传输的基础上对它的可靠性进行一定的改造,是值得研究的课题。
发明内容
针对上述技术问题,本发明提供一种数据传输系统,能够提高采用UDP协议进行数据传输的可靠性。
本发明采用的技术方案为:
本发明的实施例提供一种数据传输系统,所述系统的协议栈的传输层采用UDP协议,且设置有滑动发送窗口和滑动接收窗口;其中,所述滑动发送窗口将已发送但尚未接收到确认信息的数据分组放入第一数据分组队列;将准备发送的数据分组放入第二数据分组队列;以及将需要重传的数据分组放入第三数据分组队列;所述滑动接收窗口用于检测接收到的数据分组的序列号并按次序进行排列,以及将形成顺序的数据分组移出,将失序到达的数据分组保留并进行重传处理,直到所述失序到达的数据分组形成顺序;所述数据分组由对应应用层为待发送数据划分;所述分组序列号为发送数据分组前为该数据分组分配。
可选地,所述滑动发送窗口,还用于当所述第一数据分组队列接收到对应确认信息或者所述第三数据分组队列完成重传,所述滑动发送窗口向前滑动;所述滑动接收窗口,还用于在接收到数据分组时将自身窗口大小减小,直到接收到的分组数据对应的应用程序将该分组数据所属的完整数据队列处理完成,增大所述窗口大小。
可选地,在传输层和网络层之间添加有数据报处理层;其中,所述数据报处理层用于针对从传输层接收到的发送数据,为该发送数据添加所述数据报处理层对应的报头,并将添加有数据报处理层对应的报头的数据包发送给网络层;以及针对从网络层接收到的接收数据,对该接收数据的数据报处理层对应的报头进行解析拆包,并将拆包后的数据发送给传输层;所述报头结构包括数据报的分组序列号。
可选地,所述报头结构中还包括数据包类型;所述数据报类型包括:数据信息包、请求数据包、确认数据包、控制信息包、以及结束信息包;所述数据信息包,用于承载数据分组;所述请求数据包,用于承载在作为数据发送方开始发送数据分组之前向数据接收方发送的数据传输开始请求;所述确认数据包,用于在作为数据接收方接收到请求数据包或者接收到预设数量的数据分组之后向发送方发送的确认信息;所述控制信息包,用于承载作为数据接收方向数据发送方发送的表征数据接收方当前滑动接收窗口大小的控制消息,以便数据发送方根据接收到控制信息调整发送数据报的速率;或者用于承载作为数据接收方向数据发送方发送的表征需要重传丢失的数据包的控制信息;所述结束信息包,用于承载表征当前数据传输结束的通知信息;所述通知消息在作为数据接收方接收到最后一组分组数据报,并关闭接收滑动窗口后向数据发送方发送,以便数据发送方响应于接收到的所述通知消息关闭发送滑动窗口。
可选地,所述数据信息包、所述请求数据包、所述确认数据包、以及所述结束信息包通过数据线程传输;所述控制信息包通过控制线程传输。
可选地,当作为数据接收方在设定时间内未接收到数据发送方重传的数据包时,所述控制信息包,还用于承载表征要求数据发送方重传丢失的数据包的控制信息;以及当作为数据发送方在设定时间内未接收到针对已发送数据包的确认信息时,所述控制信息包,还用于承载表征要求数据接收方重传丢失的确认信息的控制信息。
可选地,所述分组序列号取值范围为0~264之间的整数。
本发明实施例还提供一种数据传输方法,所述方法包括:
判断已发送数据是否接收到确认信息;若未接收到,则将该已发送数据放入滑动发送窗口的第一数据分组队列;
将准备发送的数据分组放入所述滑动发送窗口的第二数据分组队列;
将需要重传的数据分组放入所述滑动发送窗口的第三数据分组队列;以及
检测通过滑动接收窗口接收到的数据分组的序列号并按次序进行排列;并
将形成顺序的数据分组移出,将失序到达的数据分组保留并进行重传处理,直到所述失序到达的数据分组形成顺序;
其中,协议栈的传输层采用UDP协议传输数据,且设置有滑动发送窗口和滑动接收窗口;所述数据分组由所述协议栈应用层为待发送数据划分;所述分组序列号为发送数据分组前为该数据分组分配。
可选地,还包括:当所述第一数据分组队列接收到对应确认信息或者所述第三数据分组队列完成重传,所述滑动发送窗口向前滑动;在接收到数据分组时,所述滑动接收窗口将自身窗口大小减小,直到接收到的分组数据对应的应用程序将该分组数据所属的完整数据队列处理完成,增大所述窗口大小。
可选地,在所述协议栈的传输层和网络层之间添加有数据报处理层;其中,所述数据报处理层用于针对从传输层接收到的发送数据,为该发送数据添加所述数据报处理层对应的报头,并将添加有数据报处理层对应的报头的数据包发送给网络层;以及针对从网络层接收到的接收数据,对该接收数据的数据报处理层对应的报头进行解析拆包,并将拆包后的数据发送给传输层;所述报头结构包括数据报的分组序列号。
本发明实施例提供的数据传输系统和方法,对于采用UDP协议进行传输的数据,采用滑动发送窗口来进行发送数据分组和采用滑动接收窗口来进行接收数据分组,其中,滑动发送窗口将已发送但尚未接收到确认信息的数据分组、将准备发送的数据分组以及将需要重传的数据分组放入不同的分组队列,滑动接收窗口检测接收到的数据分组的序列号并按次序进行排列,以及将形成顺序的数据分组移出,将失序到达的数据分组保留并进行重传处理,直到所述失序到达的数据分组形成顺序,从而能够明确知道哪些数据分组已经被发送且被成功接收,哪些数据还未发送,哪些数据需要重新发送,使得数据传输更加有效和可靠。
附图说明
图1为本发明实施例提供的数据传输系统的结构示意图;
图2为本发明实施例提供的数据传输系统的失序控制机制的原理图;
图3为本发明另一实施例提供的数据传输系统的结构示意图;
图4为本发明实施例提供的数据传输方法的流程示意图。
具体实施方式
为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。
图1为本发明实施例提供的数据传输系统的结构示意图。如图1所示,本发明的实施例提供一种数据传输系统,所述系统的协议栈的传输层采用UDP协议,且设置有滑动发送窗口和滑动接收窗口;其中,所述滑动发送窗口将已发送但尚未接收到确认信息的数据分组放入第一数据分组队列;将准备发送的数据分组放入第二数据分组队列;以及将需要重传的数据分组放入第三数据分组队列;所述滑动接收窗口用于检测接收到的数据分组的序列号并按次序进行排列,以及将形成顺序的数据分组移出,将失序到达的数据分组保留并进行重传处理,直到所述失序到达的数据分组形成顺序;所述数据分组由对应应用层为待发送数据划分;所述分组序列号为发送数据分组前为该数据分组分配。
进一步地,数据发送方和数据接收方均采用本发明实施例提供的数据传输系统进行通信。
在本发明中,为了提高数据传输的效率,系统将数据发送方发送的数据报和数据接收方接收的数据报存放在缓冲区内,缓冲区是一个专门用于临时存放收到的数据包的区域,通常设置在数据接收方的套接口处,方便数据的接收和临时存储,具体地,利用滑动发送窗口发送数据报,根据数据发送状态分成不同的数据分组队列,利用滑动接收窗口接收数据报,如图1所示。系统将数据接收方接收到的失序的数据报暂时存放在缓存区中,形成失序的数据报队列,不能简单地丢弃。给需要传输的数据报定义了分组序列号,数据接收方处理接收到的数据报时,检测接收队列中的数据报的序号,并按照次序进行排列。形成顺序的分组数据报队列,这两组队列共同存放在设置的缓冲区内。设置缓冲区的目的在于处理失序到达的和需要重传的数据报,这是因为通信网络状况不稳定,而造成数据报未按预定时间到达而出现失序情况,或者数据报在传输过程中丢失而需要重传情况。处理失序到达的数据报,通常采用的方法是等待重传,即等待分组数据报传输完成后,如果失序的数据报的前面的数据报到达,则按照顺序排列后加入顺序的数据报队列中,如果尚未到达,则启动重传程序,向发送方发送重传所需数据报序号的反馈信息。
具体地,本发明实施例提供的数据传输系统在进行数据传输前,规定收发双方做好初始化准备工作,在发送数据包前,数据发送方和数据接收方没必要进行握手连接,数据发送方发送关于发送请求的信息,接收方一旦收到发送请求信息后,打开滑动接收窗口,准备接收数据报,同时回复相应的允许接收请求信息给数据发送方,这样就完成了初始化工作。本发明实施例中,不需要每个数据报到达接收方后,数据接收方都要回复确认信息,只要求接收方一旦收到一个完整的分组数据报队列后,检测序列号是否完整,完整给出确认信息,不完整,则请求重传。同时数据接收方也对收到的网络信道检测数据报进行确认,这样在传输过程中,系统与客户都能了解网络通信质量,补发丢失的数据报。传输结束后,接收方关闭接收窗口,同时向数据发送方发送传输结束的数据包,数据发送方一旦收到数据接收方发送的结束包后,滑动发送窗口停止转动并关闭。
数据接收方在缓存区内记录已收到的数据报及未收到的数据报的序列号。当接收到分组结束的数据报时,数据接收方逐一检索该数据分组内尚未收到的数据报。如果数据报全部收到,再进行下一个分组传送同时关闭定时器。否则查找丢失的数据报序号,并反馈给发送方,请求重发丢失的数据报,在定时器设定的时间内接收数据发送方重传的数据报,并将定时器归零,数据接收方再重新检索还没收到的数据包,并按上述的情况做出相应的反应,上述过程一直循环进行,直到完成分组数据报传输。如果超过定时器设定的时间内还未接收到发送方重传的数据报,则再次向数据发送方发送重传信息,并将重传次数加1。
在本实施例中,所述分组序列号取值范围为0~264之间的整数。因为在Internet开始使用时,网络线路大部分是56kbps,主机完成一轮序号0~232的发送需要1周左右,期间必须全速不停地发送,这样对于TCP来说,不用担心重复序号相同信息各异的数据报会同时出现在网络中,随着互联网技术的发展,序号回绕的时间越来越短,当使用1GbPS以太网发送数据时候,主机如果使用最大速率发送数据,则序列号0~232回绕时间大概是32秒,这时Internet上的数据报的存在时间将大于回绕时间,这时候导致再次循环使用序列号时候,老的数据包还没完全到达接收方,相同序号的数据报将同时出现在网络中,这时候就不适合采用TCP进行传输了,需要采用UDP传输。本实施例将序列号的取值范围设置为0~264,是为了延长回绕时间。本实施例的数据包序号长度为两字节。
本实施例提供的数据传输系统,对于采用UDP协议进行传输的数据,采用滑动发送窗口来进行发送数据分组和采用滑动接收窗口来进行接收数据分组,其中,滑动发送窗口将已发送但尚未接收到确认信息的数据分组、将准备发送的数据分组以及将需要重传的数据分组放入不同的分组队列,滑动接收窗口检测接收到的数据分组的序列号并按次序进行排列,以及将形成顺序的数据分组移出,将失序到达的数据分组保留并进行重传处理,直到所述失序到达的数据分组形成顺序,从而能够明确知道哪些数据分组已经被发送且被成功接收,哪些数据还未发送,哪些数据需要重新发送,使得数据传输更加有效和可靠。
进一步地,所述滑动发送窗口,还用于当所述第一数据分组队列接收到对应确认信息或者所述第三数据分组队列完成重传,所述滑动发送窗口向前滑动;所述滑动接收窗口,还用于在接收到数据分组时将自身窗口大小减小,直到接收到的分组数据对应的应用程序将该分组数据所属的完整数据队列处理完成,增大所述窗口大小。
在本实施例中,由于缓冲区不能永久存放数据,数据接收方的应用程序要尽快处理完成缓冲区内的数据报,同时缓冲区不能无限大,尽可能设置的大小不会占用太多的系统开销,这样的设计将导致当数据发送方发送的速率大于数据接收方处理数据的速率时,缓冲区因为受到容量的限制而无法接收更多的数据,即缓冲区的数据报溢出现象。出现这种现象时,数据发送方若不减小发送的速率或停止发送,导致数据报将会丢失,数据接收方则无法接收到完整的数据报,从而需要对系统设置流量控制机制。流量控制的原则是指,接收窗口由于处理缓存区内的数据而减小为零,发送流量变大的情况下,减小接收窗口,有利于缓存区的一部分数据被接收方于较短的时间内专门处理完成,这样处理完成的数据将传输到应用程序的其余部分,释放缓存区,这时候接收方増大接收窗口达到允许继续接收数据报的范围值,同时将这个范围值反馈给发送方。流量控制机制的最重要的意义在于对数据发送方的发送数据报的速率进行控制,从而避免了因为发送速率过快而造成网络流量过大,网络中数据报过多,负载太大而产生的拥塞现象。具体地,数据接收方接收到一队完整的分组数据报队列后,把滑动接收窗口的值的大小减少,滑动接收窗口只有在接收方的应用程序处理完成这队完整的分组数据报之后,才将滑动接收窗口増大,接收方増大和减少接收窗口时,需要将这些反馈信息传送给发送方,发送方根据这些反馈信息来调整发送速率,通过这样的方式来进行流量控制。
具体地,在本发明一个非限制性示例中,如图2所示,作为数据发送方的A采用滑动发送窗口发送数据,作为数据接收方的B采用滑动接收窗口来接收数据。其中,A发送序号为31~33的数据报,发送窗口包含有三个指针P1,P2,P3,指针指向数据报的序号,小于P1的是己发送且收到确认信息的数据分组,大于P3的是不允许发送的数据报部分。P1与P3之间的部分为有效发送的数据报。现假定A发送序号为31~33的数据报,但未收到来自B的确认信息,发送窗口位置并未改变,序号为34~36的数据报是允许发送但尚未发送的,即准备发送的数据分组。
B的接收窗口的长度设置为等于A的发送窗口的长度,序号为29~30的数据报己经发送过确认信息,并交付给主机,因此B不再保留这些数据,将这些数据从队列中移出,序号为31的数据报因为某些原因丢失或滞留在网络某处,B收到了序号为32、33的数据报,即两者为非按序到达的数据报,B只能对按序收到的数据报中的最高序号给予确认,因此B发送的确认信息中报文的确认号仍为31,即希望收到序号31的数据报,而不是32或33。于是数据发送方开始使用重传机制,将失序到达的数据分组保留并进行重传处理,直到所述失序到达的数据分组形成顺序。
假设B收到31的数据报,B的接收窗口向前滑动三位,并将收到序号为33为止的数据报交付给主机,释放缓存空间,同时给A发送确认信息。A在接收到确认信息后,A的发送窗口向前滑动3位。
在本发明的另一个实施例中,如图3所示,提供的数据传输系统在传输层和网络层之间添加有数据报处理层。其中,所述数据报处理层用于针对从传输层接收到的发送数据,为该发送数据添加所述数据报处理层对应的报头,并将添加有数据报处理层对应的报头的数据包发送给网络层;以及针对从网络层接收到的接收数据,对该接收数据的数据报处理层对应的报头进行解析拆包,并将拆包后的数据发送给传输层;所述报头结构包括数据报的分组序列号和数据包类型。
由于数据发送方发送的文件已经被分割成固定大小的数据包,在数据报的传送过程中,网络状况和数据链路的不稳定性,常常会使数据包在传输过程中丢失或失序到达,为数据包添加的分组序列号,是为了使数据发送方利用滑动发送窗口按序发送数据报,数据接收方处理接收到的数据报,使得接收到的数据报与发送的保持一致。本实施例中的分组序列号与前述实施例中的分组序列号一样,取值范围为0~264之间的整数。
所述数据报类型包括:数据信息包、请求数据包、确认数据包、控制信息包、以及结束信息包;所述数据信息包,用于承载数据分组;所述请求数据包,用于承载在作为数据发送方开始发送数据分组之前向数据接收方发送的数据传输开始请求;所述确认数据包,用于在作为数据接收方接收到请求数据包或者接收到预设数量的数据分组之后向发送方发送的确认信息;所述控制信息包,用于承载作为数据接收方向数据发送方发送的表征数据接收方当前滑动接收窗口大小的控制消息,以便数据发送方根据接收到控制信息调整发送数据报的速率;或者用于承载作为数据接收方向数据发送方发送的表征需要重传丢失的数据包的控制信息;所述结束信息包,用于承载表征当前数据传输结束的通知信息;所述通知消息在作为数据接收方接收到最后一组分组数据报,并关闭接收滑动窗口后向数据发送方发送,以便数据发送方响应于接收到的所述通知消息关闭发送滑动窗口。此外,当作为数据接收方在设定时间内未接收到数据发送方重传的数据包时,所述控制信息包,还用于承载表征要求数据发送方重传丢失的数据包的控制信息;以及当作为数据发送方在设定时间内未接收到针对已发送数据包的确认信息时,所述控制信息包,还用于承载表征要求数据接收方重传丢失的确认信息的控制信息。
在本实施例中,所述数据信息包、所述请求数据包、所述确认数据包、以及所述结束信息包通过数据线程传输;所述控制信息包通过控制线程传输。本发明由于设计了两个线程,数据线程和控制线程,数据发送方在数据线程上发送数据,在控制线程内传送确认等控制信息,从而提高了数据传输效率。
基于同一发明构思,本发明实施例还提供了一种数据传输方法,由于该方法所解决问题的原理与前述数据传输系统相似,因此该方法的实施可以参见前述平台的实施,重复之处不再赘述。
图4为本发明实施例提供的数据传输方法的流程示意图。如图4所示,本发明实施例提供的一种数据传输方法,所述方法包括以下步骤:
S101、判断已发送数据是否接收到确认信息;若未接收到,则将该已发送数据放入滑动发送窗口的第一数据分组队列;
S102、将准备发送的数据分组放入所述滑动发送窗口的第二数据分组队列;
S103、将需要重传的数据分组放入所述滑动发送窗口的第三数据分组队列;以及
S104、检测通过滑动接收窗口接收到的数据分组的序列号并按次序进行排列;并将形成顺序的数据分组移出,将失序到达的数据分组保留并进行重传处理,直到所述失序到达的数据分组形成顺序。
在本发明实施例提供的数据传输方法中,协议栈的传输层采用UDP协议传输数据,且设置有滑动发送窗口和滑动接收窗口;所述数据分组由所述协议栈应用层为待发送数据划分;所述分组序列号为发送数据分组前为该数据分组分配。
进一步地,在步骤S101或者步骤S103之后还包括如下步骤:当所述第一数据分组队列接收到对应确认信息或者所述第三数据分组队列完成重传,所述滑动发送窗口向前滑动;在步骤S104之后还包括如下步骤:在接收到数据分组时,所述滑动接收窗口将自身窗口大小减小,直到接收到的分组数据对应的应用程序将该分组数据所属的完整数据队列处理完成,增大所述窗口大小。
进一步地,在所述协议栈的传输层和网络层之间添加有数据报处理层;其中,所述数据报处理层用于针对从传输层接收到的发送数据,为该发送数据添加所述数据报处理层对应的报头,并将添加有数据报处理层对应的报头的数据包发送给网络层;以及针对从网络层接收到的接收数据,对该接收数据的数据报处理层对应的报头进行解析拆包,并将拆包后的数据发送给传输层;所述报头结构包括数据报的分组序列号。
进一步地,所述报头结构中还包括数据包类型;所述数据报类型包括:数据信息包、请求数据包、确认数据包、控制信息包、以及结束信息包;所述数据信息包,用于承载数据分组;所述请求数据包,用于承载在开始发送数据分组之前传输开始请求;所述确认数据包,用于在接收到请求数据包或者接收到预设数量的数据分组之后发送的确认信息;所述控制信息包,用于承载表征当前滑动接收窗口大小的控制消息,以便根据接收到控制信息调整发送数据报的速率;或者用于承载表征需要重传丢失的数据包的控制信息;所述结束信息包,用于承载表征当前数据传输结束的通知信息;所述通知消息在接收到最后一组分组数据报,并关闭接收滑动窗口后发送,以便响应于接收到的所述通知消息关闭发送滑动窗口。
进一步地,所述数据信息包、所述请求数据包、所述确认数据包、以及所述结束信息包通过数据线程传输;所述控制信息包通过控制线程传输。
进一步地,当在设定时间内未接收到数据发送方重传的数据包时,所述控制信息包,还用于承载表征要求重传丢失的数据包的控制信息;以及在设定时间内未接收到针对已发送数据包的确认信息时,所述控制信息包,还用于承载表征要求重传丢失的确认信息的控制信息。
进一步地,所述分组序列号取值范围为0~264之间的整数。
上述各步骤可通过前述的各系统的相应结构来实现,在此不再赘述。并且在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (10)
1.一种数据传输系统,其特征在于,所述系统的协议栈的传输层采用UDP协议,且设置有滑动发送窗口和滑动接收窗口;
其中,所述滑动发送窗口用于将已发送但尚未接收到确认信息的数据分组放入第一数据分组队列;将准备发送的数据分组放入第二数据分组队列;以及将需要重传的数据分组放入第三数据分组队列;
所述滑动接收窗口用于检测接收到的数据分组的序列号并按次序进行排列,以及将形成顺序的数据分组移出,将失序到达的数据分组保留并进行重传处理,直到所述失序到达的数据分组形成顺序;
所述数据分组由对应应用层为待发送数据划分;所述分组序列号为发送数据分组前为该数据分组分配。
2.根据权利要求1所述的数据传输系统,其特征在于,所述滑动发送窗口,还用于当所述第一数据分组队列接收到对应确认信息或者所述第三数据分组队列完成重传,所述滑动发送窗口向前滑动;
所述滑动接收窗口,还用于在接收到数据分组时将自身窗口大小减小,直到接收到的分组数据对应的应用程序将该分组数据所属的完整数据队列处理完成,增大所述窗口大小。
3.根据权利要求1所述的数据传输系统,其特征在于,在传输层和网络层之间添加有数据报处理层;
其中,所述数据报处理层用于针对从传输层接收到的发送数据,为该发送数据添加所述数据报处理层对应的报头,并将添加有数据报处理层对应的报头的数据包发送给网络层;以及针对从网络层接收到的接收数据,对该接收数据的数据报处理层对应的报头进行解析拆包,并将拆包后的数据发送给传输层;
所述报头结构包括数据报的分组序列号。
4.根据权利要求3所述的数据传输系统,其特征在于,所述报头结构中还包括数据包类型;所述数据报类型包括:数据信息包、请求数据包、确认数据包、控制信息包、以及结束信息包;
所述数据信息包,用于承载数据分组;
所述请求数据包,用于承载在作为数据发送方开始发送数据分组之前向数据接收方发送的数据传输开始请求;
所述确认数据包,用于在作为数据接收方接收到请求数据包或者接收到预设数量的数据分组之后向发送方发送的确认信息;
所述控制信息包,用于承载作为数据接收方向数据发送方发送的表征数据接收方当前滑动接收窗口大小的控制消息,以便数据发送方根据接收到控制信息调整发送数据报的速率;或者用于承载作为数据接收方向数据发送方发送的表征需要重传丢失的数据包的控制信息;
所述结束信息包,用于承载表征当前数据传输结束的通知信息;所述通知消息在作为数据接收方接收到最后一组分组数据报,并关闭接收滑动窗口后向数据发送方发送,以便数据发送方响应于接收到的所述通知消息关闭发送滑动窗口。
5.根据权利要求4所述的数据传输系统,其特征在于,所述数据信息包、所述请求数据包、所述确认数据包、以及所述结束信息包通过数据线程传输;
所述控制信息包通过控制线程传输。
6.根据权利要求4所述的数据传输系统,其特征在于,当作为数据接收方在设定时间内未接收到数据发送方重传的数据包时,所述控制信息包,还用于承载表征要求数据发送方重传丢失的数据包的控制信息;以及
当作为数据发送方在设定时间内未接收到针对已发送数据包的确认信息时,所述控制信息包,还用于承载表征要求数据接收方重传丢失的确认信息的控制信息。
7.根据权利要求1所述的数据传输系统,其特征在于,所述分组序列号取值范围为0~264之间的整数。
8.一种数据传输方法,其特征在于,所述方法包括:
判断已发送数据是否接收到确认信息;若未接收到,则将该已发送数据放入滑动发送窗口的第一数据分组队列;
将准备发送的数据分组放入所述滑动发送窗口的第二数据分组队列;
将需要重传的数据分组放入所述滑动发送窗口的第三数据分组队列;以及
检测通过滑动接收窗口接收到的数据分组的序列号并按次序进行排列;并
将形成顺序的数据分组移出,将失序到达的数据分组保留并进行重传处理,直到所述失序到达的数据分组形成顺序;
其中,协议栈的传输层采用UDP协议传输数据,且设置有滑动发送窗口和滑动接收窗口;所述数据分组由所述协议栈应用层为待发送数据划分;所述分组序列号为发送数据分组前为该数据分组分配。
9.根据权利要求8所述的数据传输方法,其特征在于,还包括:
当所述第一数据分组队列接收到对应确认信息或者所述第三数据分组队列完成重传,所述滑动发送窗口向前滑动;
在接收到数据分组时,所述滑动接收窗口将自身窗口大小减小,直到接收到的分组数据对应的应用程序将该分组数据所属的完整数据队列处理完成,增大所述窗口大小。
10.根据权利要求8所述的数据传输方法,其特征在于,在所述协议栈的传输层和网络层之间添加有数据报处理层;
其中,所述数据报处理层用于针对从传输层接收到的发送数据,为该发送数据添加所述数据报处理层对应的报头,并将添加有数据报处理层对应的报头的数据包发送给网络层;以及针对从网络层接收到的接收数据,对该接收数据的数据报处理层对应的报头进行解析拆包,并将拆包后的数据发送给传输层;
所述报头结构包括数据报的分组序列号。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710912222.4A CN107743057A (zh) | 2017-09-29 | 2017-09-29 | 一种数据传输系统和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710912222.4A CN107743057A (zh) | 2017-09-29 | 2017-09-29 | 一种数据传输系统和方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107743057A true CN107743057A (zh) | 2018-02-27 |
Family
ID=61236427
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710912222.4A Pending CN107743057A (zh) | 2017-09-29 | 2017-09-29 | 一种数据传输系统和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107743057A (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109714352A (zh) * | 2018-12-29 | 2019-05-03 | 北京金山安全软件有限公司 | 网络数据传输方法、装置及电子设备 |
CN110324258A (zh) * | 2018-03-31 | 2019-10-11 | 华为技术有限公司 | 一种控制数据传输的方法和装置 |
CN111404641A (zh) * | 2020-06-04 | 2020-07-10 | 湖南中车时代通信信号有限公司 | 数据重组方法、系统、装置及计算机可读存储介质 |
CN111835649A (zh) * | 2019-04-15 | 2020-10-27 | 深信服科技股份有限公司 | 一种数据发送方法、装置及相关组件 |
CN112911638A (zh) * | 2021-02-20 | 2021-06-04 | 上海吉盛网络技术有限公司 | 使用udp协议优化无线网络负载拥塞的可靠通信方法 |
WO2021238803A1 (zh) * | 2020-05-26 | 2021-12-02 | 华为技术有限公司 | 一种网络拥塞控制方法及网络设备 |
CN114449057A (zh) * | 2022-01-28 | 2022-05-06 | 北京威视锐科技有限公司 | 一种数据传输方法及装置 |
CN115250288A (zh) * | 2022-07-18 | 2022-10-28 | 国仪量子(合肥)技术有限公司 | 数据通信方法、下位机、上位机、数据传输系统和介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1734997A (zh) * | 2004-08-11 | 2006-02-15 | 华为技术有限公司 | 一种数据传输的方法 |
US7161978B2 (en) * | 2001-08-29 | 2007-01-09 | Texas Instruments Incorporated | Transmit and receive window synchronization |
CN102045362A (zh) * | 2010-12-21 | 2011-05-04 | 北京高森明晨信息科技有限公司 | 一种基于udp协议的数据传输方法和系统 |
CN104753803A (zh) * | 2013-12-30 | 2015-07-01 | 中国移动通信集团公司 | 一种数据传输方法、装置、设备及系统 |
-
2017
- 2017-09-29 CN CN201710912222.4A patent/CN107743057A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7161978B2 (en) * | 2001-08-29 | 2007-01-09 | Texas Instruments Incorporated | Transmit and receive window synchronization |
CN1734997A (zh) * | 2004-08-11 | 2006-02-15 | 华为技术有限公司 | 一种数据传输的方法 |
CN102045362A (zh) * | 2010-12-21 | 2011-05-04 | 北京高森明晨信息科技有限公司 | 一种基于udp协议的数据传输方法和系统 |
CN104753803A (zh) * | 2013-12-30 | 2015-07-01 | 中国移动通信集团公司 | 一种数据传输方法、装置、设备及系统 |
Non-Patent Citations (2)
Title |
---|
何润岸: "基于UDP进行大规模数据传输的可靠传输系统的设计与实现", 《中国优秀硕士学位论文全文数据库》 * |
陈圣国,王葆红: "Java程序设计", 《JAVA程序设计》 * |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110324258A (zh) * | 2018-03-31 | 2019-10-11 | 华为技术有限公司 | 一种控制数据传输的方法和装置 |
CN110324258B (zh) * | 2018-03-31 | 2021-02-09 | 华为技术有限公司 | 一种控制数据传输的方法和装置 |
CN109714352A (zh) * | 2018-12-29 | 2019-05-03 | 北京金山安全软件有限公司 | 网络数据传输方法、装置及电子设备 |
CN111835649A (zh) * | 2019-04-15 | 2020-10-27 | 深信服科技股份有限公司 | 一种数据发送方法、装置及相关组件 |
CN111835649B (zh) * | 2019-04-15 | 2023-11-07 | 深信服科技股份有限公司 | 一种数据发送方法、装置及相关组件 |
WO2021238803A1 (zh) * | 2020-05-26 | 2021-12-02 | 华为技术有限公司 | 一种网络拥塞控制方法及网络设备 |
CN111404641A (zh) * | 2020-06-04 | 2020-07-10 | 湖南中车时代通信信号有限公司 | 数据重组方法、系统、装置及计算机可读存储介质 |
CN111404641B (zh) * | 2020-06-04 | 2020-09-29 | 湖南中车时代通信信号有限公司 | 数据重组方法、系统、装置及计算机可读存储介质 |
CN112911638A (zh) * | 2021-02-20 | 2021-06-04 | 上海吉盛网络技术有限公司 | 使用udp协议优化无线网络负载拥塞的可靠通信方法 |
CN112911638B (zh) * | 2021-02-20 | 2022-07-08 | 上海吉盛网络技术有限公司 | 使用udp协议优化无线网络负载拥塞的可靠通信方法 |
CN114449057A (zh) * | 2022-01-28 | 2022-05-06 | 北京威视锐科技有限公司 | 一种数据传输方法及装置 |
CN115250288A (zh) * | 2022-07-18 | 2022-10-28 | 国仪量子(合肥)技术有限公司 | 数据通信方法、下位机、上位机、数据传输系统和介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107743057A (zh) | 一种数据传输系统和方法 | |
US6694471B1 (en) | System and method for periodic retransmission of messages | |
CN101635665B (zh) | 管理隧道的传输信道上的数据流的传送的方法及隧道端点 | |
EP1251661B1 (en) | Data flow control method | |
EP1183814B1 (en) | Limited automatic repeat request protocol for frame-based communication channels | |
US8064461B2 (en) | Method and apparatus for TCIP/IP data transfer over a wireless network | |
CN104202414B (zh) | 基于udp的可靠传输方法 | |
CN102006283B (zh) | 数据传输的方法和装置 | |
US6621799B1 (en) | Semi-reliable data transport | |
CN107204834A (zh) | 一种基于udt协议的高速网络可靠传输的控制方法 | |
EP2469750A1 (en) | Method and apparatus for downlink data transmission control in multi-hop relay communication system | |
US20110252152A1 (en) | Reliable messaging system and method | |
EP2144391B1 (en) | Method for transmitting retransmission request and receiving side device | |
EP2141890B1 (en) | Retransmission request transmitting method and receiving side device | |
CN100534069C (zh) | 非对称和多并发网络的加速方法 | |
CN103647625B (zh) | 一种基于链路的数据可靠传输方法 | |
CN101436978A (zh) | 使用udp协议进行可靠数据传输的方法 | |
WO1996017462A2 (en) | A reliable connectionless network protocol | |
CN105934907A (zh) | 无线资源调度方法及装置 | |
US20060133379A1 (en) | Method, system and article for improved TCP performance during retransmission in response to selective acknowledgement | |
SE513327C2 (sv) | System och metod för datakommunikation | |
US20070002864A1 (en) | Transmission system and method for radio link protocol | |
US9510242B2 (en) | Reducing superfluous traffic in a network | |
CN104580171B (zh) | Tcp协议的传输方法、装置和系统 | |
Maisuria et al. | Overview of techniques for improving QoS of TCP over wireless links |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: 100070, No. 101-8, building 1, 31, zone 188, South Fourth Ring Road, Beijing, Fengtai District Applicant after: Guoxin Youyi Data Co., Ltd Address before: 100070, No. 188, building 31, headquarters square, South Fourth Ring Road West, Fengtai District, Beijing Applicant before: SIC YOUE DATA Co.,Ltd. |
|
CB02 | Change of applicant information | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180227 |
|
RJ01 | Rejection of invention patent application after publication |