CN104283605A - 基于udp协议的卫星网络数据传输方法及装置 - Google Patents
基于udp协议的卫星网络数据传输方法及装置 Download PDFInfo
- Publication number
- CN104283605A CN104283605A CN201410503878.7A CN201410503878A CN104283605A CN 104283605 A CN104283605 A CN 104283605A CN 201410503878 A CN201410503878 A CN 201410503878A CN 104283605 A CN104283605 A CN 104283605A
- Authority
- CN
- China
- Prior art keywords
- period
- sending
- data
- transmission
- packet
- 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.)
- Granted
Links
- 230000005540 biological transmission Effects 0.000 title claims abstract description 160
- 238000000034 method Methods 0.000 title claims abstract description 43
- 230000008569 process Effects 0.000 claims abstract description 12
- 238000012544 monitoring process Methods 0.000 claims description 11
- 238000012163 sequencing technique Methods 0.000 claims description 4
- 230000006854 communication Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 238000012545 processing Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000012790 confirmation Methods 0.000 description 3
- 230000009467 reduction Effects 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 239000000872 buffer Substances 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000000737 periodic effect Effects 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000006185 dispersion Substances 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04B—TRANSMISSION
- H04B7/00—Radio transmission systems, i.e. using radiation field
- H04B7/14—Relay systems
- H04B7/15—Active relay systems
- H04B7/185—Space-based or airborne stations; Stations for satellite systems
- H04B7/18578—Satellite systems for providing broadband data service to individual earth stations
- H04B7/18582—Arrangements for data linking, i.e. for data framing, for error recovery, for multiple access
-
- 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/169—Special adaptations of TCP, UDP or IP for interworking of IP based networks with other networks
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Astronomy & Astrophysics (AREA)
- Aviation & Aerospace Engineering (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Radio Relay Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种基于UDP协议的卫星网络数据传输方法及装置,其中的方法包括,在当前发送周期,获取上一个发送周期的数据包的丢包率;根据所获取的上一个发送周期的数据包的丢包率确定当前发送周期的数据包的增加数量;根据所确定的当前发送周期的数据包的增加数量更新当前发送周期;其中,在更新当前发送周期时,调整与当前发送周期发送的数据包对应的窗口;根据更新的当前发送周期和与更新的当前发送周期对应的窗口进行当前发送周期的数据传输。利用上述根据本发明提供的基于UDP协议的卫星网络数据传输方法及装置,能够有效解决卫星网络数据传输延时高的问题。
Description
技术领域
本发明涉及卫星数据传输技术领域,更为具体地,涉及一种基于UDP协议的卫星网络数据传输方法及装置。
背景技术
在地球同步轨道卫星通信中,卫星网络带宽时延乘积大,往返时延大,导致带宽时延乘积也较大。此外,由于卫星信道上没有介质的保护,在电磁干扰、天气状况等因素的影响下,导致误码率比较高。在地面网络中广泛使用的TCP传输控制协议应用于卫星网络时,网络的吞吐率受到严重的制约。针对上述大的带宽时延乘积环境或高误码环境,研究人员提出了很多TCP的改进版本,如Westwood、Veno、BIC等,这些改进应用于卫星网络时在一定程度上可以提高通信效率,但由于这些修改要保持现有TCP版本的兼容性,其灵活性在一定程度上受到了限制。
TCP协议是面向连接,端到端的传输层协议,它提供了一种可靠的传输方式。在高延迟,高丢包率的卫星宽带使用TCP时,随着网络时延的增加TCP减少了拥塞窗口,但是不能恢复可用带宽,TCP协议的效率由此变低。另外,TCP拥塞控制的不公平的进行RTT(Round-Trip Time,往返时延)也成为严重问题,拥有不同往返时延的并发TCP流将不公平地分享带宽。
拥塞发生的主要原因在于网络能够提供的资源不足以满足用户的需求,这些资源包括缓存空间、链路带宽容量和中间节点的处理能力。由于互联网的设计机制导致其缺乏“接纳控制”能力,因此在网络资源不足时不能限制用户数量,而只能靠降低服务质量来继续为用户服务。
因此,需要一种全新的技术方案,解决卫星网络数据传输过程中延时高的问题。
发明内容
鉴于上述问题,本发明的目的是提供一种基于UDP协议的卫星网络数据传输方法及装置,以解决卫星网络数据传输过程中延时高的问题。
本发明提供的基于UDP协议的卫星网络数据传输方法,在UDP数据报头的基础上增加一个与发送端的数据包发送周期相对应的窗口,该窗口用于调整发送端在对应发送周期内发送的数据包的数量,其中,在数据包传输过程中,
在当前发送周期,获取上一个发送周期的数据包的丢包率;
根据所获取的上一个发送周期的数据包的丢包率确定当前发送周期的数据包的增加数量;
根据所确定的当前发送周期的数据包的增加数量更新当前发送周期;其中,在更新当前发送周期时,调整与当前发送周期发送的数据包对应的窗口;
根据更新的当前发送周期和与更新的当前发送周期对应的窗口进行当前发送周期的数据传输。
本发明提供的基于UDP协议的卫星网络数据传输装置,在UDP数据报头的基础上增加一个与发送端的数据包发送周期相对应的窗口,该窗口用于调整发送端在对应发送周期内发送的数据包的数量,其中,该装置包括:
丢包率获取单元,用于在当前发送周期,获取上一个发送周期的数据包的丢包率;
数据包增加单元,用于根据所获取的上一个发送周期的数据包的丢包率确定当前发送周期的数据包的增加数量;
发送周期更新单元,用于根据所确定的当前发送周期的数据包的增加数量更新当前发送周期;
窗口调整单元,用于在更新当前发送周期时,调整与当前发送周期发送的数据包对应的窗口;
数据传输单元,用于根据更新的当前发送周期和与更新的当前发送周期对应的窗口进行当前发送周期的数据传输。
利用上述根据本发明提供的基于UDP协议的卫星网络数据传输方法及装置,通过设置一个定时器根据网络情况调整数据包的发送周期,再通过增加一个窗口来调整每个发送周期待发送的数据包的数量,从两方面来解决卫星网络数据传输高延时的问题。
为了实现上述以及相关目的,本发明的一个或多个方面包括后面将详细说明并在权利要求中特别指出的特征。下面的说明以及附图详细说明了本发明的某些示例性方面。然而,这些方面指示的仅仅是可使用本发明的原理的各种方式中的一些方式。此外,本发明旨在包括所有这些方面以及它们的等同物。
附图说明
通过参考以下结合附图的说明及权利要求书的内容,并且随着对本发明的更全面理解,本发明的其它目的及结果将更加明白及易于理解。在附图中:
图1为根据本发明实施例的基于UDP协议的卫星网络数据传输方法的流程示意图;
图2为根据本发明实施例的队列管理的流程交互图;
图3为根据本发明实施例的基于UDP协议的卫星网络数据传输装置的逻辑结构示意图;
图4为根据本发明实施例的基于UDP协议的卫星网络数据传输装置的一个具体实施方式的逻辑结构示意图。
在所有附图中相同的标号指示相似或相应的特征或功能。
具体实施方式
在下面的描述中,出于说明的目的,为了提供对一个或多个实施例的全面理解,阐述了许多具体细节。然而,很明显,也可以在没有这些具体细节的情况下实现这些实施例。在其它例子中,为了便于描述一个或多个实施例,公知的结构和设备以方框图的形式示出。
针对现有的TCP协议和UDP协议不适用卫星网络数据传输的问题,本发明采用改进的UDP协议来实现卫星网络数据的传输,改进的UDP协议是在现有的UDP协议的基础上,在UDP数据报头增加四个字段,字段依次为:标志位,序号,确认位,窗口大小:
标志位:起到区分确认控制包与应用数据包的作用;标志位占用1位,0代表为应用数据包,1代表确认控制包;其中,应用数据包指的是包含待发送的应用数据的包,确认控制包是指控制数据传输过程或为了适应网络状态尽可能的提高网络带宽使用率的包,例如ACK包、NAK包等都属于确认控制包。
序号:占用4个字节,起到标记数据包唯一标识的作用,其目的为了数据包在到达目的地时可以排序,并知道数据包是否丢失,确保数据的完整正确。
确认号:占用4个字节,表示如果当前包为ACK包,那么确认号表示是答应哪个包的序号,主要用来确认发送应用数据包后接收端是否接收到。
窗口:用来传递调节滑动窗口大小,调节滑动窗口适应网络环境,滑动窗口用于调整每个发送周期的数据包的数量。
上述改进的UDP协议为实现本发明的基础,也就是说本发明是在改进的UDP协议的基础上进行的。
本发明从控制数据包的发送周期和每个发送周期待发送的数据包的数量这两个方面对来解决卫星网络数据传输延时高的问题,如同交通疏导和调控,通过调整车辆放行时间和调整车辆放行的量,来解决车辆在道路上的拥堵和由于拥堵造成在道路上时延。
以下将结合附图对本发明的具体实施例进行详细描述。
图1示出了根据本发明实施例的基于UDP协议的卫星网络数据传输方法的流程。
如图1所示,本发明实施例提供的基于UDP协议的卫星网络数据传输方法,首先,在当前发送周期,获取上一个发送周期的数据包的丢包率(步骤S110);其次,根据所获取的上一个发送周期的数据包的丢包率确定当前发送周期的数据包的增加数量(步骤S120);然后,根据所确定的当前发送周期的数据包的增加数量更新当前发送周期;其中,在更新当前发送周期时,调整与当前发送周期发送的数据包对应的窗口(步骤S130);最后,根据更新的当前发送周期和与更新的当前发送周期对应的窗口进行当前发送周期的数据传输(步骤S140)。
为了更详细地说明本发明实施例提供的基于UDP协议的卫星网络数据传输方法,下面将对上述方法的流程做详细的说明。
本发明采用窗口控制和速率控制结合起来的方法减缓卫星网络数据传输的高延时,窗口控制用于限制最大的位的被答应的数据包,而速率控制负责调整数据包的发送周期
一、速率控制
把速率控制处理分为三个阶段,分别是快速启动阶段、RC定时器定时时间到点阶段和收到NAK包阶段,其中,为了防止数据拥塞导致网络延迟,本发明在RC定时器定时时间到点阶段做了周期性的处理。
快速启动阶段:快速启动阶段发送在开始连接的时候,当收到一个ACK包并且数据包里携带的估计带宽大于零时,快速启动阶段就停止。然后根据RC定时器或NAK包进入其他两个阶段;其中,包的发送周期被设置为1/W,W是ACK携带的流量窗口的大小,STP被初始为最小的时间精度(1个CPU周期或1毫秒),STP为数据包的发送周期。
计算带宽估计的方法过程为:以每20个数据包为一组,记录每组中第一个数据包和最后一个数据包到达接收端的时间,用最后一个数据包到达接收端的时间减去第一个数据包到达接收端的时间算出20个数据包的传输耗时时间,再用20个数据包的总大小除以耗时时间得出本次带宽参考值,再用上次计算带宽与本次带宽参考值取平均值就是当前估计带宽。若上次带宽为0则当前估计带宽为本次带宽参考值。
RC定时器定时时间到点阶段:本发明用一个RC定时器触发周期性速率控制,RC定时器的周期为0.02秒,在此阶段包括如下流程:
(1)如果接收端在RC定时器的上一个发送周期内没有收到任何ACK包,停止发送端发送数据包,即可认为网络不通,已断网。
停止发送端发送数据包的目的是用于调整数据包的数量后再发送,这样可以缓解数据包在传输过程中的拥堵状况,拥堵越轻延时越短。
(2)计算RC定时器的上一个发送周期内的丢包率,计算公式为:
(发送的数据包的总数量)/(接收端收到的NAK包中反馈的丢包数量);
其中,确定接收端收到的NAK包中反馈的丢包数量的方法为:在一定周期内接收端每收到不能确认的包的时候累积NAK的丢包数量,不能确认包一般是指包内数据错误或校验失败无法处理的包。
如果丢包率大于20%(目前卫星网络可接受丢包率),停止发送端发送数据包。
计算RC定时器的上一个发送周期的丢包数量就是在计算上一次数据传输的网络状况,根据上次的数据传输状况调整本次的数据传输的发送周期的时间和发送的数据包的数量。
(3)计算当前RC周期需要发送的包的增加数量(snd_inc),算法如下:
IF A>B,snd_inc=1/MSS
ELSE snd_inc=MAX(1/MSS,10^(ceil(log10(A-B)*8*MSS)))*C/MSS)
A是连接容量的估计,B是当前发送数据包的速度,A和B单位都为每秒多少个包,C为常量系数,取值范围在0.0000001~0.000002之间,MSS是网络数据传输最大值,以字节为单位。
(4)更新发送周期STP:STP=(STP*RC周期时间)/(STP*snd_inc+RC周期时间)。
(5)计算最终执行的数据发送周期RSP。
RSP从SND PKT历史窗口中得到,SND PKT历史窗口是一个记录数据包发送时间的循环数组。
(6)IF(0.5*RSP>STP)THEN STP=0.5*RSP ELSE IF(STP<1.0)STP=1.0。
如果0.5*RSP>STP,那么STP=0.5*RSP,否则如果STP<1.0,那么STP=1.0。
在计算出STP值后再参考RSP值进一步计算STP值,使STP值更精确。
收到NAK包阶段:如果在NAK包中丢失包最大序列号大于LSN(从上一次降低速率后发送的最大序号)则有以下几个步骤:
(1)更新STP:STP=STP*(1+1/4)。
(2)更新从上一次降低速率后到当前NAK包序号的平均数(ANAK):ANAK=(3*ANAK+nNAK)/4;其中,nNAK为从上一次降低速率后NAK包的数量。
(3)更新AR(从1到ANAK之间取随机平均数)。
(4)重置nNAK为0,并更新LSN。
如果在NAK包中丢失包最大序列号小于等于LSN,则nNAK=nNAK+1;如果nNAK%AR=0,则STP=STP*(1+1/4)。
二、窗口控制
本发明采用流量控制方法对窗口大小进行控制,整个流量控制都是围绕着窗口大小(W)进行调整的,窗口大小初始值设为16,其过程为:首先,设个一个ACK定时器,ACK定时器的周期与RC定时器的周期相同,当ACK定时器到达定时时间的时候,流量控制快速启动:
(1)如果在上个发送周期内,接收端没有产生NAK包或者发送端接收的ACK包中没有窗口或者上一个发送周期内数据包的数量超过窗口,并且ACK包到达发送端的速度大于零,将窗口更新为上一个发送周期内到达发送端的ACK包的总数。
(2)如果在上个发送周期内,发送端收到NAK包或者发送端接收的ACK包中包括窗口或者上一个发送周期内数据包的数量未超过窗口,并且ACK包到达发送端的速度大于零,将窗口更新为:
W=ceil(PAS*(RTT+ATP)*0.125+W*0.875);其中,
RTT为数据包往返的延时时间,表示从发送端发送数据开始,到发送端收到来自接收端的确认(接收端收到数据后便立即发送确认),总共经历的时延。发送数据包前记录一次时间,接收到对应ACK包时记录一次时间,后者的时间对前者的时间做减法处理获得RTT。
ATP为ACK定时器的周期;
PAS为数据包到达接收端时的速度;
PAS为ACK包到达发送端时的速度;
W为窗口。
上述两方面的内容详细描述了速率控制和窗口控制,根据速率控制和窗口控制根据传输中的网络状况实时调整发送端发送数据包的周期和将要发送的数据包的数量,从而缓解卫星网络数据传输的高延时。
本发明还可以利用网络监视动态修改网络参数的方式缓解卫星网络数据传输的高延时:通过监视网络的延迟和传输速率,捕获网络的实时状态。
网络监控程序实时监控数据传输过程中的网络状况,当网络监控程序识别出当前网络状况发生变化时,修改网络参数;其中,网络参数包括两类:一类为网络延迟,具体包括发送超时、重连超时、发送次数、重传次数;另一类为传输速率,通过已传输的数据包的信息,分析出实时的网络传输速率。
在进行网络控制的过程中,通过对网络的延迟和传输速率的分析,判断出断网,网络恢复,网络状态改变和网络状态保持四种网络状态。对网络参数的控制包括缓冲区、连接超时时间、重连次数、重连间隔等。
其中,网络恢复:当网络从断网异常中恢复时,网络控制模块会开放网络参数的获取,使网络传输继续进行。
网络状态改变:当网络条件改变,延迟或速率的改变超过一个可变的阈值时,网络控制模块会修改网络的参数,使网络传输以最快的速度进行。
网络状态:网络状态通过网络确认核心算法获得;具体包括:首先,记录N次网络状态,计算网络状态的平均值/中位值;然后,将当前平均值/中位值与历史平均值/中位值比较,如果比值超过阈值(比值<阈值<1或1<阈值<比值),则认为网络状态改变,否则(阈值<比值<1或1<比值<阈值)则认为网络状态未改变。
本发明还可以将每个发送周期作为一次发送任务,形成任务队列;对所述任务队列中的任务进行排序,根据所述任务队列中的任务顺序执行任务。
图2示出了根据本发明实施例的队列管理的交互流程,如图2所示,上级模块用于创建队列、添加任务和在不再需要队列时删除队列。队列管理模块用于根据任务的优先级,将任务排序;其中,队列管理模块首先按照从高到底的优先级,然后按照先进先出的原则,提取任务执行;根据任务的不同操作,使用不同的任务处理模块处理任务;如果任务执行过程中发生异常,队列管理模块会调整任务的优先级,然后将任务重新插入任务队列。
为了进一步说明卫星网络通讯环境下UDP协议相对于TCP协议的传输效果,下面以基于UDP协议开发的IFEP协议为例和TCP协议的传输效果做比较。在实验室环境中分别进行的三组模拟实验数据来证明,在以下的模拟实验中,分别模拟卫星网络,一组限速上行带宽200KB/s,下行带宽200KB/s,发送25MB内容,分别应用IFEP协议和TCP协议在上述实验环境中传输数据的结果如下:
IFEP协议发送数据的速度是26KB/S,用时:923s
TCP协议发送数据的速度是24KS/S,用时:1028s
另一组是一组限速上行带宽2000KB/s,下行带宽2000KB/s情况下,发送412MB数据,测试结果如下:
IFEP协议发送数据的速度是255KB/s,用时:1582s
TCP协议发送数据的速度是242KB/s,用时:1664s
另一组是无限速情况下,发送412MB数据,测试结果如下:
IFEP协议发送数据的速度是4.7MB/s,用时:83s
TCP协议发送数据的速度是3.6MB/s,用时:107s
通过测试,IFEP协议在卫星网络通讯环境下优于TCP协议,本协议在卫星通讯环境下相比TCP可以大幅提升文件传输效率,充分利用在高丢包率环境下高效使用的网络带宽,保证数据的完整、可靠。因此,在本发明中,利用了UDP更加适合现有的卫星网络通讯环境的特性,同时为了规避UDP协议存在的问题,添加控制内容和相关算法,同时在UDP上层添加了网络监控和队列管理内容,进而从不同的方面和维度解决目前卫星网络通讯过程中存在的无序、丢包、拥塞等问题。
与上述方法相对应,本发明还提供一种基于UDP协议的卫星网络数据传输装置。图3示出了根据本发明实施例的基于UDP协议的卫星网络数据传输装置的逻辑结构。
如图3所示,本发明提供的本发明实施例提供的基于UDP协议的卫星网络数据传输装置在UDP数据报头的基础上增加一个与发送端的数据包发送周期相对应的窗口,所述窗口用于调整所述发送端在对应发送周期内发送的数据包的数量;其中,该装置包括丢包率获取单元310、数据包增加单元320、发送周期更新单元330、窗口调整单元340、数据传输单元350。
其中,丢包率获取单元310用于在当前发送周期,获取上一个发送周期的数据包的丢包率。
数据包增加单元320用于根据所获取的上一个发送周期的数据包的丢包率确定当前发送周期的数据包的增加数量。
发送周期更新单元330用于根据所确定的当前发送周期的数据包的增加数量更新当前发送周期。
窗口调整单元340用于在更新当前发送周期时,调整与当前发送周期发送的数据包对应的窗口。
数据传输单元350用于根据更新的当前发送周期和与更新的当前发送周期对应的窗口进行当前发送周期的数据传输。
图4示出了根据本发明实施例的基于UDP协议的卫星网络数据传输装置的一个具体实施方式的逻辑结构。
如图4所示,数据传输单元350包括网络监控模块351,用于实时监控传输过程中的网络状况;当网络监控模块识别出当前网络状况发生变化时,修改网络参数;其中,
网络参数包括网络延迟和传输速率:
网络延迟包括发送超时、重连超时、发送次数、重传次数;
传输速率,通过已传输的数据包的信息分析出实时的网络传输速率。
另外,基于UDP协议的卫星网络数据传输装置还包括任务队列形成单元360、任务排序单元370和任务执行单元380。
其中,任务队列形成单元360用于将每个发送周期作为一次发送任务,形成任务队列;任务排序单元370用于根据任务的优先级对任务队列中的任务进行排序;任务执行单元380用于根据排序执行所述任务队列中的任务。
再者,丢包率获取单元310在当前发送周期,获取上一个发送周期的数据包的丢包率的过程包括:根据上一个发送周期发送的数据包的总数量与接收端接收到的NAK包中的丢包数量的商,获得上一个发送周期的数据包的丢包率。
其中,数据包增加单元320在根据上一个发送周期的数据包的丢包率获取当前发送周期的当前发送周期的数据包的增加数量的过程包括:
IF A>B,snd_inc=1/MSS
ELSE snd_inc=MAX(1/MSS,10^(ceil(log10(A-B)*8*MSS)))*C/MSS);其中,
A为连接容量的估计;
B为当前周期发送数据包的速度;
C为常量系数,取值范围在0.0000001~0.000002之间;
MSS为网络数据传输最大值;
snd_inc为当前发送周期的数据包的增加数量。
另外,在发送周期更新单元330根据数据包的增加数量更新当前发送周期的过程中,
STP=(STP初始值*定时器周期)/(STP初始值*snd_inc+定时器周期);
其中,STP表示当前发送周期;STP初始值表示发送周期的初始值;
IF(0.5*RSP>STP)THEN STP=0.5*RSP,ELSE IF(STP<1.0)STP=1.0;其中,RSP表示上一次数据包发送后在历史窗口中得到的发送周期。
再者,在窗口调整单元340调整与每个发送周期对应的窗口的过程中,
在上一个发送周期内,如果接收端没有产生NAK包或者发送端接收的ACK包中没有窗口或者上一个发送周期内数据包的数量超过窗口,并且ACK包到达发送端的速度大于零,将窗口更新为上一个发送周期内到达发送端的ACK包的总数;
如果发送端收到NAK包或者发送端接收的ACK包中包括窗口或者上一个发送周期内数据包的数量未超过窗口,并且ACK包到达发送端的速度大于零,将窗口更新为:
W=ceil(PAS*(RTT+ATP)*0.125+W*0.875);其中,
RTT为数据包往返的延时时间;
ATP为ACK定时器的周期。
PAS为ACK包到达发送端时的速度;
W为窗口。
以上内容详细描述了本发明提供的基于UDP协议的卫星网络数据传输方法及装置,利用上述根据本发明提供的基于UDP协议的卫星网络数据传输方法及装置,通过设置一个定时器根据网络情况调整数据包的发送周期,再通过增加一个窗口来调整每个发送周期待发送的数据包的数量,从两方面来缓解卫星网络数据传输高延时的问题。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (12)
1.一种基于UDP协议的卫星网络数据传输方法,在UDP数据报头的基础上增加一个与发送端的数据包发送周期相对应的窗口,所述窗口用于调整所述发送端在对应发送周期内发送的数据包的数量;其中,在数据包传输过程中,
在当前发送周期,获取上一个发送周期的数据包的丢包率;
根据所获取的上一个发送周期的数据包的丢包率确定当前发送周期的数据包的增加数量;
根据所确定的当前发送周期的数据包的增加数量更新当前发送周期;其中,在更新当前发送周期时,调整与当前发送周期发送的数据包对应的窗口;
根据更新的当前发送周期和与更新的当前发送周期对应的窗口进行当前发送周期的数据传输。
2.如权利要求1所述的基于UDP协议的卫星网络数据传输方法,其中,获取当前发送周期的数据包的增加数量的过程包括:
IF A>B,snd_inc=1/MSS
ELSE snd_inc=MAX(1/MSS,10^(ceil(log10(A-B)*8*MSS)))*C/MSS);其中,
A为连接容量的估计;
B为当前周期发送数据包的速度;
C为常量系数,取值范围为0.0000001~0.000002;
MSS为网络数据传输最大值;
snd_inc为当前发送周期的数据包的增加数量。
3.如权利要求2所述的基于UDP协议的卫星网络数据传输方法,其中,在根据数据包的增加数量更新当前发送周期的过程中,
STP=(STP*RC定时器的周期)/(STP*snd_inc+RC定时器的周期);
其中,STP表示当前发送周期;
IF(0.5*RSP>STP)THEN STP=0.5*RSP,ELSE IF(STP<1.0)STP=1.0;其中,RSP表示上一次数据包发送后在历史窗口中得到的发送周期。
4.如权利要求1所述的基于UDP协议的卫星网络数据传输方法,其中,在调整与当前发送周期发送的数据包对应的窗口的过程中,
在上一个发送周期内,如果接收端没有产生NAK包或者所述发送端接收的ACK包中没有窗口或者上一个发送周期内数据包的数量超过窗口,并且ACK包到达所述发送端的速度大于零,将所述窗口更新为上一个发送周期内到达发送端的ACK包的总数;
如果所述发送端收到NAK包或者所述发送端接收的ACK包中包括窗口或者上一个发送周期内数据包的数量未超过窗口,并且ACK包到达所述发送端的速度大于零,将所述窗口更新为:
W=ceil(PAS*(RTT+ATP)*0.125+W*0.875);其中,
RTT为数据包往返的延时时间;
ATP为ACK定时器的周期。
PAS为ACK包到达发送端时的速度;
W为窗口。
5.如权利要求1所述的基于UDP协议的卫星网络数据传输方法,其中,在传输数据的过程中,
网络监控实时监控传输过程中的网络状况,当所述监控识别出当前网络状况发生变化时,修改网络参数;其中,
所述网络参数包括网络延迟和传输速率;
所述网络延迟包括发送超时、重连超时、发送次数、重传次数;
所述传输速率,通过已传输的数据包的信息分析出实时的网络传输速率。
6.如权利要求1所述的基于UDP协议的卫星网络数据传输方法,
分别将每个发送周期作为一次发送任务,形成任务队列;
根据任务的优先级对所述任务队列中的任务进行排序;
根据所述排序执行所述任务队列中的任务。
7.一种基于UDP协议的卫星网络数据传输装置,在UDP数据报头的基础上增加一个与发送端的数据包发送周期相对应的窗口,所述窗口用于调整所述发送端在对应发送周期内发送的数据包的数量;其中,所述装置包括:
丢包率获取单元,用于在当前发送周期,获取上一个发送周期的数据包的丢包率;
数据包增加单元,用于根据所获取的上一个发送周期的数据包的丢包率确定当前发送周期的数据包的增加数量;
发送周期更新单元,用于根据所确定的当前发送周期的数据包的增加数量更新当前发送周期;
窗口调整单元,用于在更新当前发送周期时,调整与当前发送周期发送的数据包对应的窗口;
数据传输单元,用于根据更新的当前发送周期和与更新的当前发送周期对应的窗口进行当前发送周期的数据传输。
8.如权利要求7所述的基于UDP协议的卫星网络数据传输装置,其中,
所述数据包增加单元在根据上一个发送周期的数据包的丢包率获取当前发送周期的数据包的增加数量的过程包括:
IF A>B,snd_inc=1/MSS
ELSE snd_inc=MAX(1/MSS,10^(ceil(log10(A-B)*8*MSS)))*C/MSS);其中,
A为连接容量的估计;
B为当前周期发送数据包的速度;
C为常量系数,取值范围为0.0000001~0.000002
MSS为网络数据传输最大值;
snd_inc为当前发送周期的数据包的增加数量。
9.如权利要求8所述的基于UDP协议的卫星网络数据传输装置,其中,
在所述发送周期更新单元根据数据包的增加数量更新当前发送周期的过程中,
STP=(STP初始值*定时器周期)/(STP初始值*snd_inc+定时器周期);
其中,STP表示当前发送周期;STP初始值表示发送周期的初始值;
IF(0.5*RSP>STP)THEN STP=0.5*RSP,ELSE IF(STP<1.0)STP=1.0;其中,RSP表示上一次数据包发送后在历史窗口中得到的发送周期。
10.如权利要求7所述的基于UDP协议的卫星网络数据传输装置,其中,
在所述窗口调整单元调整与当前发送周期发送的数据包对应的窗口的过程中,
在上一个发送周期内,如果接收端没有产生NAK包或者所述发送端接收的ACK包中没有窗口或者上一个发送周期内数据包的数量超过窗口,并且ACK包到达所述发送端的速度大于零,将所述窗口更新为上一个发送周期内到达发送端的ACK包的总数;
如果所述发送端收到NAK包或者所述发送端接收的ACK包中包括窗口或者上一个发送周期内数据包的数量未超过窗口,并且ACK包到达所述发送端的速度大于零,将所述窗口更新为:
W=ceil(PAS*(RTT+ATP)*0.125+W*0.875);其中,
RTT为数据包往返的延时时间;
ATP为ACK定时器的周期。
PAS为ACK包到达发送端时的速度;
W为窗口。
11.如权利要求7所述的基于UDP协议的卫星网络数据传输装置,其中,
所述数据传输单元包括网络监控模块,用于实时监控传输过程中的网络状况;当所述网络监控模块识别出当前网络状况发生变化时,修改网络参数;其中,
所述网络参数包括网络延迟和传输速率:
所述网络延迟包括发送超时、重连超时、发送次数、重传次数;
所述传输速率,通过已传输的数据包的信息分析出实时的网络传输速率。
12.如权利要求7所述的基于UDP协议的卫星网络数据传输装置,还包括:
任务队列形成单元,用于将每个发送周期作为一次发送任务,形成任务队列;
任务排序单元,用于根据任务的优先级对所述任务队列中的任务进行排序;
任务执行单元,用于根据所述排序执行所述任务队列中的任务。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410503878.7A CN104283605B (zh) | 2014-09-26 | 2014-09-26 | 基于udp协议的卫星网络数据传输方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410503878.7A CN104283605B (zh) | 2014-09-26 | 2014-09-26 | 基于udp协议的卫星网络数据传输方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104283605A true CN104283605A (zh) | 2015-01-14 |
CN104283605B CN104283605B (zh) | 2018-04-06 |
Family
ID=52258134
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410503878.7A Active CN104283605B (zh) | 2014-09-26 | 2014-09-26 | 基于udp协议的卫星网络数据传输方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104283605B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104767591A (zh) * | 2015-04-29 | 2015-07-08 | 北京奇艺世纪科技有限公司 | 一种数据发送方法及装置 |
WO2017005055A1 (zh) * | 2015-07-08 | 2017-01-12 | 杭州海康威视数字技术股份有限公司 | 流媒体网络传输的带宽计算方法、服务器端和系统 |
WO2017132996A1 (zh) * | 2016-02-05 | 2017-08-10 | 广东欧珀移动通信有限公司 | 业务传输方法和通信设备 |
CN110380825A (zh) * | 2019-07-29 | 2019-10-25 | 网宿科技股份有限公司 | 一种传输速率的控制方法和装置 |
CN113839840A (zh) * | 2021-11-24 | 2021-12-24 | 北京航空航天大学 | 一种卫星网络瓶颈链路的带宽自适应估计方法和系统 |
CN114268416A (zh) * | 2021-12-16 | 2022-04-01 | 无锡联云世纪科技股份有限公司 | 数据传输方法、装置及电子设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060120282A1 (en) * | 2000-05-19 | 2006-06-08 | Carlson William S | Apparatus and methods for incorporating bandwidth forecasting and dynamic bandwidth allocation into a broadband communication system |
CN101990243A (zh) * | 2009-07-29 | 2011-03-23 | 索尼公司 | 发送速率控制方法和通信设备 |
CN102811370A (zh) * | 2011-05-31 | 2012-12-05 | 美国博通公司 | 用于流媒体的动态无线信道选择和协议控制 |
CN102811465A (zh) * | 2012-07-11 | 2012-12-05 | 北京邮电大学 | 异构网络下基于反馈信息的业务分流系统及方法 |
CN103067791A (zh) * | 2012-12-11 | 2013-04-24 | 深圳市梦网科技发展有限公司 | 一种网络动态适应监控视频传输方法 |
US20140269326A1 (en) * | 2013-03-15 | 2014-09-18 | Google Inc. | Dynamic congestion control |
-
2014
- 2014-09-26 CN CN201410503878.7A patent/CN104283605B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060120282A1 (en) * | 2000-05-19 | 2006-06-08 | Carlson William S | Apparatus and methods for incorporating bandwidth forecasting and dynamic bandwidth allocation into a broadband communication system |
CN101990243A (zh) * | 2009-07-29 | 2011-03-23 | 索尼公司 | 发送速率控制方法和通信设备 |
CN102811370A (zh) * | 2011-05-31 | 2012-12-05 | 美国博通公司 | 用于流媒体的动态无线信道选择和协议控制 |
CN102811465A (zh) * | 2012-07-11 | 2012-12-05 | 北京邮电大学 | 异构网络下基于反馈信息的业务分流系统及方法 |
CN103067791A (zh) * | 2012-12-11 | 2013-04-24 | 深圳市梦网科技发展有限公司 | 一种网络动态适应监控视频传输方法 |
US20140269326A1 (en) * | 2013-03-15 | 2014-09-18 | Google Inc. | Dynamic congestion control |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104767591B (zh) * | 2015-04-29 | 2018-09-28 | 北京奇艺世纪科技有限公司 | 一种数据发送方法及装置 |
CN104767591A (zh) * | 2015-04-29 | 2015-07-08 | 北京奇艺世纪科技有限公司 | 一种数据发送方法及装置 |
WO2017005055A1 (zh) * | 2015-07-08 | 2017-01-12 | 杭州海康威视数字技术股份有限公司 | 流媒体网络传输的带宽计算方法、服务器端和系统 |
US10542064B2 (en) | 2015-07-08 | 2020-01-21 | Hangzhou Hikvision Digital Technology Co., Ltd. | Method, server side and system for computing bandwidth of network transmission of streaming media |
CN108293255A (zh) * | 2016-02-05 | 2018-07-17 | Oppo广东移动通信有限公司 | 业务传输方法和通信设备 |
WO2017132996A1 (zh) * | 2016-02-05 | 2017-08-10 | 广东欧珀移动通信有限公司 | 业务传输方法和通信设备 |
CN108293255B (zh) * | 2016-02-05 | 2022-03-25 | Oppo广东移动通信有限公司 | 业务传输方法和通信设备 |
CN110380825A (zh) * | 2019-07-29 | 2019-10-25 | 网宿科技股份有限公司 | 一种传输速率的控制方法和装置 |
CN110380825B (zh) * | 2019-07-29 | 2022-05-10 | 网宿科技股份有限公司 | 一种传输速率的控制方法和装置 |
CN113839840A (zh) * | 2021-11-24 | 2021-12-24 | 北京航空航天大学 | 一种卫星网络瓶颈链路的带宽自适应估计方法和系统 |
CN113839840B (zh) * | 2021-11-24 | 2022-02-18 | 北京航空航天大学 | 一种卫星网络瓶颈链路的带宽自适应估计方法和系统 |
CN114268416A (zh) * | 2021-12-16 | 2022-04-01 | 无锡联云世纪科技股份有限公司 | 数据传输方法、装置及电子设备 |
CN114268416B (zh) * | 2021-12-16 | 2023-10-24 | 无锡联云世纪科技股份有限公司 | 数据传输方法、装置及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN104283605B (zh) | 2018-04-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104283605B (zh) | 基于udp协议的卫星网络数据传输方法及装置 | |
CN102739515B (zh) | 异构网络的tcp拥塞控制 | |
CN101635665B (zh) | 管理隧道的传输信道上的数据流的传送的方法及隧道端点 | |
CN104243097A (zh) | 基于卫星网络的数据传输方法及系统 | |
US8462624B2 (en) | Congestion management over lossy network connections | |
JP4587053B2 (ja) | 通信装置、通信システム、パケット欠落検出方法、およびパケット欠落検出プログラム | |
EP2903192B1 (en) | Packet handling method and forwarding device | |
US8811419B2 (en) | Communication device | |
US20070014246A1 (en) | Method and system for transparent TCP offload with per flow estimation of a far end transmit window | |
US20060165029A1 (en) | Protecting real-time data in wireless networks | |
US20070165531A1 (en) | System and Method for Transmission Control Protocol (TCP) Transmission Rate Control | |
CN100534069C (zh) | 非对称和多并发网络的加速方法 | |
Singh et al. | Enhancing fairness and congestion control in multipath TCP | |
JP4924285B2 (ja) | 通信装置、通信システム、転送効率向上方法及び転送効率向上プログラム | |
JP6613742B2 (ja) | 負荷変動およびパケット伝送損失があるlfn伝送路で高信頼通信を行うためのデータ通信制御方法 | |
Volodina et al. | Flow control in the context of the multiplexed transport protocol quic | |
KR102176176B1 (ko) | 전송 제어 프로토콜을 이용하는 무선 네트워크에서 혼잡 제어 방법 및 장치 | |
EP3332522A1 (en) | Data packet network | |
Dayma et al. | Improved TCP Hybla: A TCP enhancement for link with high RTT and error rate | |
Saputri et al. | Learning Method of Performance-oriented Congestion Control (PCC) for Video Streaming Analysis | |
JP2010074855A (ja) | 通信装置、通信システム、パケット欠落検出方法、およびパケット欠落検出プログラム | |
JP2004140596A (ja) | Tcp上のデータ転送における品質を推定する方法およびシステム | |
Gharegozi | The study of ECN application effect at the performance improvement of RED | |
Schier et al. | Content-aware selective reliability for DCCP video streaming | |
Zhang et al. | An optimized BBR for multipath real time video streaming |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |