基于卫星网络下的可靠数据传输系统转让专利

申请号 : CN202210158110.5

文献号 : CN114598377B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 李东生杨培帧向仍湘张晓冰苑红晓彭博

申请人 : 北京富通亚讯网络信息技术有限公司

摘要 :

本发明涉及基于卫星网络下的可靠数据传输系统,主要涉及实时通信技术领域,包括数据发送终端和数据接收终端,其中,数据发送终端采用UDP协议向外发送第一数据信息,数据接收终端接收数据发送终端的第二数据信息,在接收数据信息的过程中,丢包管理模块确定丢包信息,并将数据接收模块产生的ACK消息携带丢包信息发送至数据发送终端;数据发送终端对丢包信息对应的数据信息发出请求重传;当拥塞控制模块监测到发生拥塞时,启动拥塞控制机制用以减小数据传输时延。本发明的有益效果:降低了数据传输的成本,提高了数据传输的完整性和数据传输质量,避免了数据传输过程中并发带宽占用过高,提高了数据传输速率并有效减小时延。

权利要求 :

1.基于卫星网络下的可靠数据传输系统,其特征在于,包括:

数据发送终端,用以采用UDP协议向外发送第一数据信息;

数据接收终端,用以接收所述数据发送终端的第二数据信息,在接收数据信息的过程中,若第二数据信息与所述第一数据信息的数据长度不同,启动设置在数据接收终端内的丢包管理模块,所述丢包管理模块确定丢包信息,并将所述丢包信息发送至数据发送终端;

所述丢包信息为所述第一数据信息和所述第二数据信息的差异信息对应的若干地址信息;

数据发送终端内设置有拥塞控制模块,所述拥塞控制模块在接收到若干地址信息后,对若干地址信息内对应的差异信息的数据量进行排序,形成数据量列表;

数据发送终端根据数据量列表的先后顺序依次传输地址信息内对应的差异信息;

所述数据发送终端内还设置有ACK采样模块和第一时钟模块,所述ACK采样模块与所述拥塞控制模块连接,用以接收所述数据接收终端发出的ACK消息,所述第一时钟模块内预先设置有重传超时时间周期,在所述数据发送终端接收到所述ACK消息后,确定所述ACK消息中包含的数据内容,根据所述数据内容以及重传超时时间周期确定响应策略;

所述拥塞控制模块分别与所述ACK采样模块和第一数据窗口连接,拥塞控制模块用以实时监测并控制所述ACK采样模块发出的所述丢包信息的数据量是否发生拥塞,当所述拥塞控制模块判断丢包数据传输发生拥塞时,则启动拥塞控制机制;

当所述拥塞控制模块在接收到若干地址信息后,拥塞控制模块对若干地址信息内对应的差异信息的数据量进行由小到大依次排序,形成数据量列表;

在所述拥塞控制模块内设置最大丢包信息数据量DQm,实际丢包信息数据量为DQi,当DQi≥DQm时,则所述拥塞控制模块判断丢包信息量大并启动拥塞控制机制对数据传输进行限流;

所述拥塞控制模块对ACK消息携带的丢包信息量进行由小到大排序,拥塞控制模块优先选择携带丢包信息数据量小的数据包进行请求重传;

当ACK消息携带的丢包信息量相同时,则所述拥塞控制模块优先选择时延长的数据包进行请求重传。

2.根据权利要求1所述的基于卫星网络下的可靠数据传输系统,其特征在于,所述根据所述数据内容以及重传超时时间周期确定响应策略包括:当所述数据发送终端向所述数据接收终端发出所述第一数据信息后,在预设的一个重传超时时间周期内,数据发送终端没有在对应的时间内收到数据接收终端发出的ACK消息,则数据发送终端对所述第一数据信息发出超时重传;

当所述数据发送终端向所述数据接收终端发出所述第一数据信息后,数据发送终端接收到所述数据接收终端发出的ACK消息和所述ACK消息携带的所述丢包信息,则数据发送终端对丢包信息对应的数据信息发出请求重传。

3.根据权利要求2所述的基于卫星网络下的可靠数据传输系统,其特征在于,在发送第一数据信息时,在所述数据发送终端内还设置有第一数据窗口和数据发送模块,所述第一数据窗口用以对所述第一数据信息进行数据划分,将所述第一数据信息划分为若干数据块,并为每个所述数据块分配地址信息;

在所述第一数据窗口内设置开始数据地址base0=m,则所述第一数据窗口为所述数据块分配地址并排序依次为base1=m+1,base2=m+2,base3=m+3,base4=m+4……,basei=m+i;

所述数据发送模块按照数据块的地址排序将所述第一数据信息传输至所述数据接收终端。

4.根据权利要求3所述的基于卫星网络下的可靠数据传输系统,其特征在于,在接收第二数据信息时,在所述数据接收终端内还设置有数据接收模块、数据缓存模块和第二数据窗口;其中,所述数据接收模块用以接收所述第二数据信息并生成第一ACK消息;所述数据接收模块与所述数据缓存模块连接,用以将接收到所述第二数据信息的数据发送至数据缓存模块;所述数据接收模块与所述第二数据窗口连接,用以将第一ACK消息和第二数据信息的地址信息发送给所述第二数据窗口;

所述第二数据窗口对所述第二数据信息的地址信息进行排序并判断数据传输的连续性,当所述第二数据窗口接收到的第二数据信息的地址信息base(i‑1)=null,basei=nul l,则第二数据窗口判定地址信息为base(i‑1)和basei为第一丢包信息;

所述第二数据窗口将所述第一ACK消息和所述第一丢包信息发送给所述丢包管理模块。

5.根据权利要求4所述的基于卫星网络下的可靠数据传输系统,其特征在于,确定第一ACK消息中包含的数据内容,若第一ACK消息中携带第一丢包信息时,所述丢包管理模块将第一ACK消息和第一丢包信息通过ACK协议回传至所述数据发送终端的ACK采样模块,ACK采样模块向所述第一数据窗口发出第一次请求重传;ACK采样模块将所述第一ACK消息和所述第一丢包信息发送给所述第一数据窗口,第一数据窗口对第一丢包信息的地址信息为base(i‑1)和basei进行填补其对应的数据信息并发送给所述数据发送模块,数据发送模块将所述第一丢包信息对应的数据信息传输给所述数据接收模块。

6.根据权利要求5所述的基于卫星网络下的可靠数据传输系统,其特征在于,在所述数据发送模块发出第一次请求重传的过程中,所述数据接收模块接收到所述第一丢包信息的到达数据信息后生成第二ACK消息,数据接收模块将所述第一丢包信息的到达数据信息发送至所述数据缓存模块并将所述第二ACK消息和第一丢包信息的到达数据信息对应的地址信息发送至所述第二数据窗口,所述第二数据窗口对第一丢包信息的到达数据信息对应的地址信息进行排序并判断数据传输的连续性,判定第二丢包信息并发送至所述丢包管理模块;

所述丢包管理模块将第二ACK消息和第二丢包信息通过ACK协议回传至所述数据发送终端的ACK采样模块;所述ACK采样模块确定第二ACK消息中包含的数据内容,若第二ACK消息中携带第二丢包信息时,ACK采样模块向所述第一数据窗口发出第二次请求重传;ACK采样模块将所述第二ACK消息和所述第二丢包信息发送给所述第一数据窗口,第一数据窗口读取第二丢包信息并填补其对应的数据信息并发送给所述数据发送模块,数据发送模块将所述第二丢包信息的数据信息传输给所述数据接收模块;

在所述数据发送模块发出第n‑1次请求重传的过程中,所述数据接收模块产生第n ACK消息;所述ACK采样模块确定第n ACK消息中包含的数据内容,若第n ACK消息中不携带所述丢包信息时,则所述数据发送终端判定所述第一数据信息向所述数据接收终端发送成功。

7.根据权利要求6所述的基于卫星网络下的可靠数据传输系统,其特征在于,所述第一时钟模块记录所述数据发送模块发出所述第一数据信息的时刻t1,所述数据接收终端内还设置有第二时钟模块,所述第二时钟模块记录所述数据接收模块接收所述第二数据信息并产生所述第一ACK消息的时刻t2,则所述第一数据信息的第一传输时间为Δt1=t2‑t1;

所述第二时钟模块记录所述第二ACK消息的时刻t3,则所述第一数据信息的第二传输时间为Δt2=t3‑t2;

所述第一数据信息的第n传输时间为Δtn=tn+1‑tn;

在所述第一时钟模块内设置标准超时重传时间为Tr0,设置每次实际数据传输间隔时间为Δti,

当0<Δti≤Tr0时,所述数据发送终端不进行超时重传;

当Δti>Tr0时,所述数据发送终端对第i丢包信息对应的数据信息进行超时重传。

8.根据权利要求7所述的基于卫星网络下的可靠数据传输系统,其特征在于,在所述第一时钟模块内设置所述数据发送终端向所述数据接收终端发送所述第一数据信息成功的标准时延为L0,实际时延为Li,则Li=ΣΔti,其中i=1,2,3……n;

当0<Li≤L0时,所述数据发送终端判断所述第一数据信息的数据传输时延正常,所述拥塞控制模块不开启所述拥塞控制机制;

当Li>L0时,所述数据发送终端判断所述第一数据信息的数据传输时延大,则开启所述拥塞控制机制并减小时延。

说明书 :

基于卫星网络下的可靠数据传输系统

技术领域

[0001] 本发明涉及实时通信技术领域,尤其涉及基于卫星网络下的可靠数据传输系统。

背景技术

[0002] 在实时通信领域存在一个三角平衡关系:成本,质量,时延三者的制约关系。也就是说投入的成本、获得的质量和通信的时延之间是一个三角制约(LEQ)关系,所以实时通信系统的设计者会在这三个制约条件下找到一个平衡点。TCP(Transmission Control Protocol,传输控制协议)属于是通过增大延迟和传输成本来保证质量的通信方式,UDP(User Datagram Protocol,数据报协议)是通过牺牲质量来保证时延和成本的通信方式。
[0003] 由于卫星网络属于低带宽网络,具有易丢包、易延迟的特点,研究人员提出了很多TCP的改进版本,如Westwood、Veno、BIC等,这些改进应用于卫星网络,会在一定程度上提高通信效率,但由于这些修改要保持现有TCP版本的兼容性,其灵活性会在一定程度上受到限制。并且,TCP传输存在以下问题:
[0004] 1、端对端连通性问题:一般终端直接和终端通信都会涉及到NAT穿越,TCP在NAT穿越实现非常困难,相对来说UDP穿越NAT却简单很多;
[0005] 2、弱网环境传输问题:在一些WIFI或者3G/4G移动网下,需要做低延迟可靠通信,如果用TCP通信延迟可能会非常大,这会影响用户体验;
[0006] 3、带宽竞争问题:有时候客户端数据上传需要突破本身TCP公平性的限制来达到高速低延时和稳定,也就是说要用特殊的流控算法来压榨客户端上传带宽;
[0007] 4、资源优化问题:某些场景需要避免TCP的三次握手和四次挥手的过程。
[0008] 基于UDP的应用层协议可以不受现有协议规定的限制,而被广泛应用于特定领域的数据传输。UDP协议是无连接的协议,有资源消耗小,处理速度快的优点,但是UDP协议的不可靠性很大,不能保证数据包的正确性,没有确认机制,数据包在网络中是无序传播,在网络状况不好的情况下容易丢包。UDP协议只是把应用程序传给IP层的数据包发送出去,并不保证数据包能够到达目的地,从而,在网络中用UDP发送数据无法确定数据是否到达或者数据是否正确无误。
[0009] 同时,网络提供的资源不足以满足用户的需求的情况下将导致拥塞发生,这些资源包括缓存空间、链路带宽容量和中间节点的处理能力。由于互联网的设计机制导致其缺乏“接纳控制”能力,会在网络资源不足时无法限制用户数量,而只能靠降低服务质量来继续为用户服务。
[0010] 中国专利公开号CN104243097A公开了基于卫星网络的数据传输方法及系统,在通过网络监控对传输数据的过程进行实时监控的过程中,通过获取丢包率的大小来调节执行流量,进而避免拥塞:C_loss丢包率被送到策略控制中进行判断,当丢包率不大于上切门限C_up(C_up=0,表示没有丢包),则执行流量提升策略,每秒提升K(K=10Kbps,固定长度缓慢增长);如果丢包率C_loss大于下切门限值C_down(C_down=5%),则执行减少流量策略,乘上一个>1的减速因子。如果丢包率越大,效果为1-C_Loss将越小,目标码率下降速度就越快,这样就越能有效避免拥塞的出现,更高的提高带宽高丢包率时带宽的使用率。然而,通过调节执行流量的方式并不能从根本上避免拥塞,不能有效解决数据传输过程中时延长的问题。
[0011] 基于以上特点,利用现有技术在高延迟和高丢包率的网络环境下进行数据传输,无法在成本,质量,时延三个制约条件下找到一个平衡点保证通信的时延和质量并尽量降低成本。

发明内容

[0012] 为此,本发明提供基于卫星网络下的可靠数据传输系统,用以克服现有技术中在卫星网络下数据传输成本高、质量低、时延长的技术问题。
[0013] 为实现上述目的,本发明提供基于卫星网络下的可靠数据传输系统,
[0014] 包括数据发送终端,用以采用UDP协议向外发送第一数据信息;
[0015] 数据接收终端,用以接收所述数据发送终端的第二数据信息,在接收数据信息的过程中,若第二数据信息与所述第一数据信息的数据长度不同,启动设置在数据接收终端内的丢包管理模块,所述丢包管理模块确定丢包信息,并将所述丢包信息发送至数据发送终端;
[0016] 所述丢包信息为所述第一数据信息和所述第二数据信息的差异信息对应的若干地址信息;
[0017] 数据发送终端内设置有拥塞控制模块,所述拥塞控制模块在接收到若干地址信息后,对若干地址信息内对应的差异信息的数据量进行排序,形成数据量列表;
[0018] 数据发送终端根据数据量列表的先后顺序依次传输地址信息内对应的差异信息。
[0019] 进一步地,所述数据发送终端内还设置有ACK采样模块和第一时钟模块,所述ACK采样模块与所述拥塞控制模块连接,用以接收所述数据接收终端发出的ACK消息,所述第一时钟模块内预先设置有重传超时时间周期,在所述数据发送终端接收到所述ACK消息后,确定所述ACK消息中包含的数据内容,根据所述数据内容以及重传超时时间周期确定响应策略。
[0020] 进一步地,所述根据所述数据内容以及重传超时时间周期确定响应策略包括:
[0021] 当所述数据发送终端向所述数据接收终端发出所述第一数据信息后,在预设的一个重传超时时间周期内,数据发送终端没有在对应的时间内收到数据接收终端发出的ACK消息,则数据发送终端对所述第一数据信息发出超时重传;
[0022] 当所述数据发送终端向所述数据接收终端发出所述第一数据信息后,数据发送终端接收到所述数据接收终端发出的ACK消息和所述ACK消息携带的所述丢包信息,则数据发送终端对丢包信息对应的数据信息发出请求重传。
[0023] 进一步地,在发送第一数据信息时,在所述数据发送终端内还设置有第一数据窗口和数据发送模块,所述第一数据窗口用以对所述第一数据信息进行数据划分,将所述第一数据信息划分为若干数据块,并为每个所述数据块分配地址信息;
[0024] 在所述第一数据窗口内设置开始数据地址base0=m,则所述第一数据窗口为所述数据块分配地址并排序依次为base1=m+1,base2=m+2,base3=m+3,base4=m+4……,basei=m+i;
[0025] 所述数据发送模块按照数据块的地址排序将所述第一数据信息传输至所述数据接收终端。
[0026] 进一步地,在接收第二数据信息时,在所述数据接收终端内还设置有数据接收模块、数据缓存模块和第二数据窗口;其中,
[0027] 所述数据接收模块用以接收所述第二数据信息并生成第一ACK消息;所述数据接收模块与所述数据缓存模块连接,用以将接收到所述第二数据信息的数据发送至数据缓存模块;所述数据接收模块与所述第二数据窗口连接,用以将第一ACK消息和第二数据信息的地址信息发送给所述第二数据窗口;
[0028] 所述第二数据窗口对所述第二数据信息的地址信息进行排序并判断数据传输的连续性,当所述第二数据窗口接收到的第二数据信息的地址信息base(i‑1)=null,basei=null,则第二数据窗口判定地址信息为base(i‑1)和basei为第一丢包信息;
[0029] 所述第二数据窗口将所述第一ACK消息和所述第一丢包信息发送给所述丢包管理模块。
[0030] 进一步地,确定第一ACK消息中包含的数据内容,若第一ACK消息中携带第一丢包信息时,所述丢包管理模块将第一ACK消息和第一丢包信息通过ACK协议回传至所述数据发送终端的ACK采样模块,ACK采样模块向所述第一数据窗口发出第一次请求重传;ACK采样模块将所述第一ACK消息和所述第一丢包信息发送给所述第一数据窗口,第一数据窗口对第一丢包信息的地址信息为base(i‑1)和basei进行填补其对应的数据信息并发送给所述数据发送模块,数据发送模块将所述第一丢包信息对应的数据信息传输给所述数据接收模块。
[0031] 进一步地,在所述数据发送模块发出第一次请求重传的过程中,所述数据接收模块接收到所述第一丢包信息的到达数据信息后生成第二ACK消息,数据接收模块将所述第一丢包信息的到达数据信息发送至所述数据缓存模块并将所述第二ACK消息和第一丢包信息的到达数据信息对应的地址信息发送至所述第二数据窗口,所述第二数据窗口对第一丢包信息的到达数据信息对应的地址信息进行排序并判断数据传输的连续性,判定第二丢包信息并发送至所述丢包管理模块;
[0032] 所述丢包管理模块将第二ACK消息和第二丢包信息通过ACK协议回传至所述数据发送终端的ACK采样模块;所述ACK采样模块确定第二ACK消息中包含的数据内容,若第二ACK消息中携带第二丢包信息时,ACK采样模块向所述第一数据窗口发出第二次请求重传;ACK采样模块将所述第二ACK消息和所述第二丢包信息发送给所述第一数据窗口,第一数据窗口读取第二丢包信息并填补其对应的数据信息并发送给所述数据发送模块,数据发送模块将所述第二丢包信息的数据信息传输给所述数据接收模块;
[0033] 在所述数据发送模块发出第n‑1次请求重传的过程中,所述数据接收模块产生第n ACK消息;所述ACK采样模块确定第n ACK消息中包含的数据内容,若第n ACK消息中不携带所述丢包信息时,则所述数据发送终端判定所述第一数据信息向所述数据接收终端发送成功。
[0034] 进一步地,所述拥塞控制模块分别与所述ACK采样模块和第一数据窗口连接,拥塞控制模块用以实时监测并控制所述ACK采样模块发出的所述丢包信息的数据量是否发生拥塞,当所述拥塞控制模块判断丢包数据传输发生拥塞时,则启动拥塞控制机制;
[0035] 当所述拥塞控制模块在接收到若干地址信息后,拥塞控制模块对若干地址信息内对应的差异信息的数据量进行由小到大依次排序,形成数据量列表;
[0036] 在所述拥塞控制模块内设置最大丢包信息数据量DQm,实际丢包信息数据量为DQi,当DQi≥DQm时,则所述拥塞控制模块判断丢包信息量大并启动拥塞控制机制对丢包信息数据传输进行限流;
[0037] 所述拥塞控制模块对ACK消息携带的丢包信息量进行由小到大排序,拥塞控制模块优先选择携带丢包信息数据量小的数据包进行请求重传;
[0038] 当ACK消息携带的丢包信息量相同时,则所述拥塞控制模块优先选择时延长的数据包进行请求重传。
[0039] 进一步地,所述第一时钟模块记录所述数据发送模块发出所述第一数据信息的时刻t1,所述数据接收终端内还设置有第二时钟模块,所述第二时钟模块记录所述数据接收模块接收所述第二数据信息并产生所述第一ACK消息的时刻t2,则所述第一数据信息的第一传输时间为Δt1=t2‑t1;
[0040] 所述第二时钟模块记录所述第二ACK消息的时刻t3,则所述第一数据信息的第二传输时间为Δt2=t3‑t2;
[0041] 所述第一数据信息的第n传输时间为Δtn=tn+1‑tn;
[0042] 在所述第一时钟模块内设置标准超时重传时间为Tr0,设置每次实际数据传输间隔时间为Δti,
[0043] 当0<Δti≤Tr0时,所述数据发送终端不进行超时重传;
[0044] 当Δti>Tr0时,所述数据发送终端对第i丢包信息对应的数据信息进行超时重传。
[0045] 进一步地,在所述第一时钟模块内设置所述数据发送终端向所述数据接收终端发送所述第一数据信息成功的标准时延为L0,实际时延为Li,则Li=ΣΔti,其中i=1,2,3……n;
[0046] 当0<Li≤L0时,所述数据发送终端判断所述第一数据信息的数据传输时延正常,所述拥塞控制模块不开启所述拥塞控制机制;
[0047] 当Li>L0时,所述数据发送终端判断所述第一数据信息的数据传输时延大,则开启所述拥塞控制机制并减小时延。
[0048] 与现有技术相比,本发明的有益效果在于,通过采用UDP协议向外发送数据信息,降低了数据传输的成本;通过丢包管理模块确定丢包信息并将丢包信息发送至数据发送终端,提高了数据传输的完整性和数据传输质量;通过拥塞控制模块对若干地址信息内对应的差异信息的数据量进行排序后数据发送终端根据数据量列表的先后顺序依次传输地址信息内对应的差异信息,避免了数据传输过程中并发带宽占用过高,提高了数据传输速率并有效减小时延。
[0049] 尤其,通过ACK采样模块接收的根据数据内容以及重传超时时间周期确定响应策略,提高了数据传输的效率。
[0050] 尤其,通过数据发送终端没有在对应的时间内收到数据接收终端发出的ACK消息后数据发送终端对第一数据信息发出超时重传,能够在较长时间没有收到响应的情况下重新数据传输,提高了数据传输的稳定性;通过数据发送终端在接收到的ACK消息和所述ACK消息携带的所述丢包信息后数据发送终端对丢包信息对应的数据信息发出请求重传,能够在数据传输丢包的情况下及时重新传输丢包信息对应的数据信息,提高了数据传输的可靠性。
[0051] 尤其,通过数据发送端的第一数据窗口对第一数据信息划分为数据块并为每个数据块分配地址信息,通过数据接收端的第二数据窗口对第二数据信息的地址信息进行排序并判断数据传输的连续性,能够确定数据传输的过程中丢包信息,提高了数据传输的准确性;
[0052] 尤其,通过ACK采样模块确定ACK消息中包含的数据内容,ACK消息中携带丢包信息时进行请求重传,ACK消息中不携带丢包信息时,数据发送终端判定第一数据信息向数据接收终端发送成功,使得数据传输更加精准性,提高了数据传输质量。
[0053] 尤其,通过拥塞控制模块实时监测ACK采样模块发出的丢包信息的数据量是否发生拥塞,对丢包信息的数据量进行由小到大依次排序并优先选择丢包信息数据量小的数据包进行请求重传,能够有效控制并缓解数据传输过程中发生的拥塞,减小数据传输时延。
[0054] 尤其,通过第一时钟模块记录数据发送模块发出第一数据信息的时刻,第二时钟模块记录数据接收模块接收第二数据信息并产生第一ACK消息的时刻,能够通过时间差判断数据传输是否超时并及时发出超时请求,提高了数据传输的稳定性。
[0055] 尤其,通过第一时钟模块计算数据传输时延,当数据发送终端判断第一数据信息的数据传输时延大时,开启拥塞控制机制减小时延,缩短了数据传输的等待时间、提升数据传输效率。

附图说明

[0056] 图1为本发明所述基于卫星网络下的可靠数据传输系统的结构示意图;
[0057] 图中:1、数据发送终端;2、数据接收终端;3、第一数据窗口;4、数据发送模块;5、ACK采样模块;6、拥塞控制模块;7、数据接收模块;8、数据缓存模块;9、第二数据窗口;10、丢包管理模块;11、第一时钟模块;12、第二时钟模块。

具体实施方式

[0058] 为了使本发明的目的和优点更加清楚明白,下面结合实施例对本发明作进一步描述;应当理解,此处所描述的具体实施例仅仅用于解释本发明,并不用于限定本发明。
[0059] 下面参照附图来描述本发明的优选实施方式。本领域技术人员应当理解的是,这些实施方式仅仅用于解释本发明的技术原理,并非在限制本发明的保护范围。
[0060] 需要说明的是,在本发明的描述中,术语“上”、“下”、“左”、“右”、“内”、“外”等指示的方向或位置关系的术语是基于附图所示的方向或位置关系,这仅仅是为了便于描述,而不是指示或暗示所述装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
[0061] 此外,还需要说明的是,在本发明的描述中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域技术人员而言,可根据具体情况理解上述术语在本发明中的具体含义。
[0062] 本发明实施例提供的基于卫星网络下的可靠数据传输系统,请参阅图1所示,可以按照如下方式予以实施:
[0063] 系统包括数据发送终端1和数据接收终端2,其中,
[0064] 数据发送终端1包括第一数据窗口3、数据发送模块4、ACK采样模块5、拥塞控制模块6和第一时钟模块11;
[0065] 数据接收终端2包括数据接收模块7、数据缓存模块8、第二数据窗口9、丢包管理模块10和第二时钟模块12。
[0066] 数据发送终端,用以采用UDP协议向外发送第一数据信息;
[0067] 数据接收终端,用以接收数据发送终端的第二数据信息,在接收数据信息的过程中,若第二数据信息与第一数据信息的数据长度不同,启动设置在数据接收终端内的丢包管理模块,丢包管理模块确定丢包信息,并将丢包信息发送至数据发送终端;
[0068] 其中,丢包信息为第一数据信息和第二数据信息的差异信息对应的若干地址信息;
[0069] 数据发送终端内设置的拥塞控制模块在接收到若干地址信息后,对若干地址信息内对应的差异信息的数据量进行排序,形成数据量列表;
[0070] 数据发送终端根据数据量列表的先后顺序依次传输地址信息内对应的差异信息。
[0071] 通过采用UDP协议向外发送数据信息,降低了数据传输的成本;通过丢包管理模块确定丢包信息并将丢包信息发送至数据发送终端,提高了数据传输的完整性和数据传输质量;通过拥塞控制模块对若干地址信息内对应的差异信息的数据量进行排序后数据发送终端根据数据量列表的先后顺序依次传输地址信息内对应的差异信息,避免了数据传输过程中并发带宽占用过高,提高了数据传输速率并有效减小时延。
[0072] 数据发送终端内设置的ACK采样模块与拥塞控制模块连接,用以接收数据接收终端发出的ACK消息,第一时钟模块内预先设置有重传超时时间周期,在数据发送终端接收到ACK消息后,确定ACK消息中包含的数据内容,根据数据内容以及重传超时时间周期确定响应策略。其中,数据内容有两种形式,一种形式是ACK消息不携带丢包信息,另一种形式是ACK消息携带丢包信息,即,在每次数据传输的过程中产生丢包信息的情况下,数据接收终端回传给数据发送终端内设置的ACK采样模块的数据内容为第一ACK消息携带第一丢包信息或第二ACK消息携带第二丢包信息,以此类推,第n ACK消息携带第n丢包信息。
[0073] 其中,响应策略包括:
[0074] 当数据发送终端向所述数据接收终端发出所述第一数据信息后,在预设的一个重传超时时间周期内,数据发送终端没有在对应的时间内收到数据接收终端发出的ACK消息,则数据发送终端对所述第一数据信息发出超时重传;
[0075] 当数据发送终端向数据接收终端发出第一数据信息后,数据发送终端接收到数据接收终端发出的ACK消息和所述ACK消息携带的丢包信息,则数据发送终端对丢包信息对应的数据信息发出请求重传。
[0076] 通过数据发送终端没有在对应的时间内收到数据接收终端发出的ACK消息后数据发送终端对第一数据信息发出超时重传,能够在较长时间没有收到响应的情况下重新数据传输,提高了数据传输的稳定性;通过数据发送终端在接收到的ACK消息和所述ACK消息携带的所述丢包信息后数据发送终端对丢包信息对应的数据信息发出请求重传,能够在数据传输丢包的情况下及时重新传输丢包信息对应的数据信息,提高了数据传输的可靠性。通过ACK采样模块接收的根据数据内容以及重传超时时间周期确定响应策略,提高了数据传输的效率。
[0077] 数据发送终端向数据接收终端发送第一数据信息并发送成功的数据传输过程具体实施方式如下:
[0078] 具体而言,在发送第一数据信息时,在数据发送终端内设置的第一数据窗口用以对第一数据信息进行数据划分,将第一数据信息划分为若干数据块,并为每个数据块分配地址信息;
[0079] 在第一数据窗口内设置开始数据地址base0=m,则第一数据窗口为数据块分配地址并排序依次为base1=m+1,base2=m+2,base3=m+3,base4=m+4……,basei=m+i;
[0080] 数据发送模块按照数据块的地址排序将第一数据信息传输至所述数据接收终端。
[0081] 具体而言,在接收第二数据信息时,在数据接收终端内设置的数据接收模块用以接收第二数据信息并生成第一ACK消息;数据接收模块与数据缓存模块连接,用以将接收到第二数据信息的数据发送至数据缓存模块;数据接收模块与第二数据窗口连接,用以将第一ACK消息和第二数据信息的地址信息发送给第二数据窗口;
[0082] 第二数据窗口对第二数据信息的地址信息进行排序并判断数据传输的连续性,当第二数据窗口接收到的第二数据信息的地址信息base(i‑1)=null,basei=null,则第二数据窗口判定地址信息为base(i‑1)和basei为第一丢包信息;
[0083] 第二数据窗口将所述第一ACK消息和第一丢包信息发送给丢包管理模块。
[0084] 确定第一ACK消息中包含的数据内容,若第一ACK消息中携带第一丢包信息时,丢包管理模块将第一ACK消息和第一丢包信息通过ACK协议回传至所述数据发送终端的ACK采样模块,ACK采样模块向第一数据窗口发出第一次请求重传;ACK采样模块将第一ACK消息和第一丢包信息发送给第一数据窗口,第一数据窗口对第一丢包信息的地址信息为base(i‑1)和basei进行填补其对应的数据信息并发送给数据发送模块,数据发送模块将第一丢包信息对应的数据信息传输给数据接收模块。
[0085] 具体而言,在数据发送模块发出第一次请求重传的过程中,数据接收模块接收到第一丢包信息的到达数据信息后生成第二ACK消息,数据接收模块将第一丢包信息的到达数据信息发送至数据缓存模块并将第二ACK消息和第一丢包信息的到达数据信息对应的地址信息发送至所述第二数据窗口,第二数据窗口对第一丢包信息的到达数据信息对应的地址信息进行排序并判断数据传输的连续性,判定第二丢包信息并发送至所述丢包管理模块;
[0086] 丢包管理模块将第二ACK消息和第二丢包信息通过ACK协议回传至所述数据发送终端的ACK采样模块;ACK采样模块确定第二ACK消息中包含的数据内容,若第二ACK消息中携带第二丢包信息时,ACK采样模块向所述第一数据窗口发出第二次请求重传;ACK采样模块将第二ACK消息和第二丢包信息发送给所述第一数据窗口,第一数据窗口读取第二丢包信息并填补其对应的数据信息并发送给数据发送模块,数据发送模块将第二丢包信息的数据信息传输给数据接收模块;
[0087] 在数据发送模块发出第n‑1次请求重传的过程中,数据接收模块产生第n ACK消息;ACK采样模块确定第n ACK消息中包含的数据内容,若第n ACK消息中不携带所述丢包信息时,则数据发送终端判定第一数据信息向数据接收终端发送成功。
[0088] 通过数据发送端的第一数据窗口对第一数据信息划分为数据块并为每个数据块分配地址信息,通过数据接收端的第二数据窗口对第二数据信息的地址信息进行排序并判断数据传输的连续性,能够确定数据传输的过程中丢包信息,提高了数据传输的准确性;
[0089] 通过ACK采样模块确定ACK消息中包含的数据内容,ACK消息中携带所述丢包信息时进行请求重传,ACK消息中不携带丢包信息时,数据发送终端判定第一数据信息向所述数据接收终端发送成功,使得数据传输更加精准性,提高了数据传输质量。
[0090] 数据发送终端内设置的拥塞控制模块分别与ACK采样模块和第一数据窗口连接,拥塞控制模块用以实时监测并控制所述ACK采样模块发出的所述丢包信息的数据量是否发生拥塞,当拥塞控制模块判断丢包数据传输发生拥塞时,则启动拥塞控制机制;
[0091] 当拥塞控制模块在接收到若干地址信息后,拥塞控制模块对若干地址信息内对应的差异信息的数据量进行由小到大依次排序,形成数据量列表;
[0092] 在拥塞控制模块内设置最大丢包信息数据量DQm,实际丢包信息数据量为DQi,当DQi≥DQm时,则所述拥塞控制模块判断丢包信息量大并启动拥塞控制机制对丢包信息数据传输进行限流;
[0093] 所述拥塞控制模块对ACK消息携带的丢包信息量进行由小到大排序,拥塞控制模块优先选择携带丢包信息数据量小的数据包进行请求重传;
[0094] 当ACK消息携带的丢包信息量相同时,则拥塞控制模块优先选择时延长的数据包进行请求重传。
[0095] 通过拥塞控制模块实时监测ACK采样模块发出的丢包信息的数据量是否发生拥塞,对丢包信息的数据量进行由小到大依次排序并优先选择丢包信息数据量小的数据包进行请求重传,能够有效控制并缓解数据传输过程中发生的拥塞,减小数据传输时延。
[0096] 具体而言,第一数据传输过程中数据发送终端进行超时重传的具体实施方式如下:
[0097] 数据发送终端内设置的第一时钟模块记录数据发送模块发出所述第一数据信息的时刻t1,数据接收终端内还设置有第二时钟模块,第二时钟模块记录数据接收模块接收第二数据信息并产生所述第一ACK消息的时刻t2,则第一数据信息的第一传输时间为Δt1=t2‑t1;
[0098] 第二时钟模块记录第二ACK消息的时刻t3,则第一数据信息的第二传输时间为Δt2=t3‑t2;
[0099] 第一数据信息的第n传输时间为Δtn=tn+1‑tn;
[0100] 在第一时钟模块内设置标准超时重传时间为Tr0,设置每次实际数据传输间隔时间为Δti,
[0101] 当0<Δti≤Tr0时,数据发送终端不进行超时重传;
[0102] 当Δti>Tr0时,数据发送终端对第i丢包信息对应的数据信息进行超时重传。
[0103] 通过第一时钟模块记录数据发送模块发出第一数据信息的时刻,第二时钟模块记录数据接收模块接收第二数据信息并产生第一ACK消息的时刻,能够通过时间差判断数据传输是否超时并及时发出超时请求,提高了数据传输的稳定性。
[0104] 具体而言,数据发送终端判断时延并进行时延的监测和控制具体实施方式如下:
[0105] 在第一时钟模块内设置数据发送终端向所述数据接收终端发送第一数据信息成功的标准时延为L0,实际时延为Li,则Li=ΣΔti,其中i=1,2,3……n;
[0106] 当0<Li≤L0时,数据发送终端判断第一数据信息的数据传输时延正常,拥塞控制模块不开启拥塞控制机制;
[0107] 当Li>L0时,数据发送终端判断第一数据信息的数据传输时延大,则开启拥塞控制机制并减小时延。
[0108] 通过第一时钟模块计算数据传输时延,当数据发送终端判断第一数据信息的数据传输时延大时,开启拥塞控制机制减小时延,缩短了数据传输的等待时间、提升数据传输效率。
[0109] 至此,已经结合附图所示的优选实施方式描述了本发明的技术方案,但是,本领域技术人员容易理解的是,本发明的保护范围显然不局限于这些具体实施方式。在不偏离本发明的原理的前提下,本领域技术人员可以对相关技术特征做出等同的更改或替换,这些更改或替换之后的技术方案都将落入本发明的保护范围之内。
[0110] 以上所述仅为本发明的优选实施例,并不用于限制本发明;对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。