法律状态公告日
法律状态信息
法律状态
2018-02-23
授权
授权
2015-08-19
实质审查的生效 IPC(主分类):H04L1/18 申请日:20150413
实质审查的生效
2015-07-22
公开
公开
技术领域
本发明属于卫星通信技术领域,具体涉及一种基于丢包率的卫星通信自适应拥塞控制方法。
背景技术
常用的卫星通信模型由通信终端、地面站及地面端链路、卫星及卫星链路组成,如图1所示。其中, 地面站与卫星之间的卫星链路在整个通信链路中占主体地位,地面端链路相对较短而忽略不计。卫星链路 由于受到天气等外界条件的影响极易出现突发性错误。
基于卫星链路的上述特征,传统TCP协议应用于卫星通信时数据传输的效率很低,其主要原因在于: (1)传统TCP协议将链路错误当作网络拥塞进行窗口减小的处理,这样不仅降低了传输效率,而且浪费 了信道的可用带宽;(2)传统TCP协议不能持续使用较大窗口进行传输,数据传输一旦失败,其窗口值会 立即减小,这样就导致带宽严重浪费,大大降低了数据的传输速率。
目前,用于卫星通信的TCP改进协议主要有TCP Vegas、TCP-peach、TCP-Westwood等。TCP Vegas 的主要思想是用传输速率来控制拥塞窗口。TCP-Peach的算法思想是针对长时延对传输效率的影响,通过 快速发送较多的虚报文段,来更快地获得确认ACK(Acknowledgment,确认数据包),从而加快TCP启动 和重传后的恢复速率。此处,虚报文段指的是由发送端产生的优先级较低的数据包。TCP-Westwood算法 的关键思想是一直在发送端对TCP链接的可用带宽进行估计(Bandwidth Estimate),估计的方法是观察返 回ACK的速度,一旦发生丢包就迅速把窗口恢复到带宽相应水平。上述三种方法虽然对于传统的TCP协 议有较大改动,但都要求对RTT进行较为精确的测量,这在卫星通信链路中实现非常困难。另外,上述方 案并没有针对卫星链路高突发错误率的特点进行优化,链路的利用率较低。
为此,本发明提出了一种由基于数据块发送的直接启动算法和基于丢包率判定的自适应拥塞避免算法 组成的卫星通信拥塞控制算法,以提高卫星通信的拥塞控制处理能力。
发明内容
本发明提出了一种基于丢包率的卫星通信自适应拥塞控制方法,包括基于数据块发送的直接启动算法 和基于丢包率判定的自适应拥塞避免算法。
本发明将发送单位定义为数据块,数据块由多个数据段组成,而每个数据段又由1个或多个数据包组 成,如图2所示。为简化卫星通信链路资源分配的复杂性,将发送窗口的大小定义为数据块中新发送数据 包的个数或者新发送数据段的长度,忽略发送端和接收端的数据处理时延。
本发明技术方案的主要思路是基于丢包率大小的判断从而实现自适应的拥塞控制。整个拥塞控制方法 包括基于数据块发送的直接启动算法和基于丢包率判定的自适应拥塞处理算法。基于数据块发送的直接启 动算法代替传统的慢开始算法,直接以历史最大窗口进行数据发送,并通过反馈调节的方式实现算法的正 常运行。基于丢包率判定的自适应拥塞处理算法是根据丢包率进行自适应的窗口调整。
本发明采取以下技术方案:
1、启动阶段
101、生成并发送初始数据块。
生成初始发送数据块时,将发送端(终端A)缓存中的最大窗口值M作为初始发送窗口值,记为M1。 发送端(终端A)生成数据块并将其发送至接收端(终端B)。初始发送数据块的结构如图2所示,包括初 始发送数据段的长度M1、由编号1到M1的数据包所组成的初始发送数据段。
102、生成并发送确认数据块。
接收端(终端B)收到数据块后,进行差错判断,形成一个由“0”和“1”组成的长度为Mi个比特 的接收指示序列(正确接收的数据包置为“0”,未正确接收的数据包置为“1”)。此处假设重传数据段中 的数据重传后不会再出现错误,因此不论是初始确认还是后续确认,该01序列均只进行1到Mi的排列。
接收端(终端B)生成确认数据块并将其发送至发送端(终端A)。确认数据块的结构如图3所示,包 括丢包起始序号Si、数据接收指示序列(长度为Mi个比特)及丢包数Ni。
103、确认返回数据块及生成新发送数据块。
发送端(终端A)接收到确认数据块后,按照下列步骤生成新的数据块:
1)计算丢包率Xi。根据确认数据块中的丢包数Ni和发送窗口Mi进行计算,计算式如下:
2)计算新发送数据段的长度Mi+1,计算式如下:
其中,α为预设的链路状况参考值(0<α<1),取值依据是卫星通信链路状况由正常开始变差的临界值。 Mi+1值取整数。当Xi>α时,Mi+1值变小;当Xi<α时,Mi+1值变大。
3)通过数据接收序列与原数据段的比对提取所有未成功接收的数据包,并重新组合成为重传数据段, 编号1到Ni。
4)生成新数据块。其结构为新发送数据段的长度Mi+1、编号1到Mi+1的新发数据段、编号为1到Ni的重传数据段。其中,重传数据段用丢包起始序号Si进行标识以便接收端(终端B)进行辨认,见图4。
2、拥塞处理阶段
201、自适应拥塞处理。
如式(2)所示,当Xi>α时,Mi+1值变小;当Xi<α时,Mi+1值变大。从而实现自适应的窗口调节。
整个算法的流程图如图5所示。
本发明方法具有如下优势:
(1)本发明采用数据块为发送单位,直接采用历史最大窗口值启动,并且将每次需要重传的数据加 入到下次发送数据块中,再通过算法的负反馈特性,使窗口快速逼近临界值,尽可能保持最大发送窗口。
(2)本发明通过对丢包率的计算进行自适应窗口调节,算法的复杂度大大降低,传输效率得到提高。
(3)确认数据块的结构体现了丢包的位置和顺序,发送端易于对下次需要重传的数据包进行识别和 重组,降低了算法的复杂度。
附图说明
图1是实例中采用的卫星通信常用模型。
图2是初始发送数据块的结构图。
图3是确认数据块的结构图。
图4是新发送数据块的结构图。
图5是本发明的流程图。
图6是初始发送数据块的实例图。
图7是确认数据块的实例图。
图8是新发送数据块的实例图。
具体实施方式
下面对本发明优选实施例作详细说明。
本实施例采用常用的卫星通信网络进行说明,该卫星网络如图1所示,是由通信终端、地面站和卫星 端三部分组成。其中,终端A为发送端,终端B为目的端,地面站由关口站和地面网络组成,卫星端组成 一个转发云网络。在本实施例中,只考虑TCP连接后数据传输的拥塞控制问题,不涉及TCP连接、地面 网络转发和卫星转发等问题。
1、启动阶段(基于数据块发送的直接启动算法)
101、生成并发送初始数据块。
将发送端(终端A)缓存中的最大窗口值M作为初始发送窗口,记为M1,此例中设置M1=M=100。 设置链路状况参考值α=0.1。发送端(终端A)生成数据块并将其发送至接收端(终端B)。初始发送数据 块的实例如图6所示,包括初始发送数据段长度100、由编号1到100的数据包所组成的初始发送数据段。
102、生成并发送确认数据块。
接收端(终端B)收到数据块后,进行差错检测,形成一个长度为100个比特的由“0”和“1”组成 的接收指示序列(正确接收的数据包置为“0”,未正确接收的数据包置为“1”)。因为假设重传数据段中 的数据重传后不会再出现错误,所以不论是初始确认还是后续确认,该01序列均只进行1到100的排列。
接收端(终端B)生成确认数据块并将其发送至发送端(终端A)。确认数据块的实例如图7所示,包 括丢包起始序号S1=30、数据接收序列及丢包数N1=8。
103、确认返回数据块及生成新发送数据块。
发送端(终端A)接收到确认数据块后,按照下列步骤生成新的数据块:
1)计算丢包率X1。根据公式(1)进行计算,若此处X1=8%。
2)根据公式(2)进行下一次发送新数据段的长度M2。M2=0.1*100/0.08=125(取整)。
3)通过数据接收序列与原数据段的比对提取出所有未成功接收的数据包,并重新组合成为重传数据 段,编号1到N1,此处为1到8。
4)生成新数据块。新发送数据块的实例如图8(仅绘出M2=125的情况,其他情况结构相同)所示, 包括新发送数据段的长度125、编号1到125的新发送数据段以及编号为1到8的重传数据段。其中,重 传数据段用丢包起始序号30进行标识以便接收端(终端B)进行辨认。
2、拥塞处理阶段(基于丢包率判定的自适应拥塞处理算法)
201、自适应拥塞处理。
在本例中,假设Mm=100。假设第m次确认数据块计算所得Xm=20%,则下一次新发送数据段的长度 Mm+1根据公式(2)计算得到,Mm+1=0.1*100/0.2=50,新发送数据段大小相比初次发送数据段大小缩小一 半。假设第m+1次确认数据块计算所得Xm+1=20%,则下一次新发送数据段的长度Mm+2根据公式(2)计 算得到,Mm+2=0.1*50/0.2=25,此时丢包率过大,新发送数据段大小缩小至25,达到了自适应的效果,其 他处理按照步骤103进行新发送数据块的生成。
本发明的流程图如图5所示。
当然,本技术领域中的普通技术人员应当认识到,以上实施例仅是用来说明本发明的,而并非作为对 本发明的限定,只要在本发明的范围内,对以上实施例的变化、变型都将落在本发明的保护范围。
机译: 基于丢包率的CODEC自适应方法和装置
机译: 基于丢包率的CODEC自适应方法和装置
机译: 基于丢包率的CODEC自适应方法和装置