CN104796235B - 基于丢包率的卫星通信自适应拥塞控制方法 - Google Patents

基于丢包率的卫星通信自适应拥塞控制方法 Download PDF

Info

Publication number
CN104796235B
CN104796235B CN201510170652.4A CN201510170652A CN104796235B CN 104796235 B CN104796235 B CN 104796235B CN 201510170652 A CN201510170652 A CN 201510170652A CN 104796235 B CN104796235 B CN 104796235B
Authority
CN
China
Prior art keywords
data
data block
sending
packet loss
data segment
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.)
Active
Application number
CN201510170652.4A
Other languages
English (en)
Other versions
CN104796235A (zh
Inventor
严军荣
卢玉龙
章坚武
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Dianzi University
Original Assignee
Hangzhou Dianzi University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hangzhou Dianzi University filed Critical Hangzhou Dianzi University
Priority to CN201510170652.4A priority Critical patent/CN104796235B/zh
Publication of CN104796235A publication Critical patent/CN104796235A/zh
Application granted granted Critical
Publication of CN104796235B publication Critical patent/CN104796235B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了基于丢包率的卫星通信自适应拥塞控制方法:1、发送端生成结构为初始发送数据段的长度M1和由编号1到M1的数据包所组成的初始发送数据段的初始数据块并将其发送至接收端;2、接收端生成结构为丢包起始序号Si、数据接收指示序列及丢包数Ni确认数据块并将其发送至发送端;3、发送端接收到确认数据块后,按照步骤生成新的数据块,新数据块的结构为新发送数据段的长度Mi、编号1到Mi的新发数据段、编号为1到Ni的重传数据段;重传数据段用丢包起始序号Si进行标识以便接收端进行辨认;4、根据丢包率Xi的大小,通过公式Mi+1=αMi/Xi自适应地计算新发送数据段的长度Mi+1

Description

基于丢包率的卫星通信自适应拥塞控制方法
技术领域
本发明属于卫星通信技术领域,具体涉及一种基于丢包率的卫星通信自适应拥塞控制方法。
背景技术
常用的卫星通信模型由通信终端、地面站及地面端链路、卫星及卫星链路组成,如图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所示。
当然,本技术领域中的普通技术人员应当认识到,以上实施例仅是用来说明本发明的,而并非作为对本发明的限定,只要在本发明的范围内,对以上实施例的变化、变型都将落在本发明的保护范围。

Claims (2)

1.基于丢包率的卫星通信自适应拥塞控制方法,其按如下步骤进行:
步骤101、发送端生成结构为初始发送数据段的长度值M1和由编号1到M1的数据包所组成的初始发送数据段的初始数据块并将其发送至接收端:将发送端缓存中的最大窗口值M作为初始发送窗口值,记为Mi,i表示数据块发送次数,此时i=1;发送端生成数据块并将其发送至接收端;初始发送数据块的结构为初始发送数据段的长度值M1、由编号1到M1的数据包所组成的初始发送数据段;
步骤102、接收端生成结构为丢包起始序号Si、数据接收指示序列及丢包数Ni的确认数据块并将其发送至发送端:接收端收到数据块后,进行差错判断,形成一个由“0”和“1”组成的长度为Mi个比特的数据接收指示序列,正确接收的数据包置为“0”,未正确接收的数据包置为“1”;接收端生成确认数据块并将其发送至发送端;确认数据块的结构为丢包起始序号Si、数据接收指示序列及丢包数Ni
步骤103、发送端接收到确认数据块后,按照如下步骤生成第i+1次发送的数据块:
1)计算丢包率Xi
根据确认数据块中的丢包数Ni和发送数据段的长度值Mi进行计算,计算式如下:
<mrow> <msub> <mi>X</mi> <mi>i</mi> </msub> <mo>=</mo> <mfrac> <msub> <mi>N</mi> <mi>i</mi> </msub> <msub> <mi>M</mi> <mi>i</mi> </msub> </mfrac> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>1</mn> <mo>)</mo> </mrow> </mrow>
2)计算第i+1次发送数据段的长度值Mi+1,计算式如下:
<mrow> <msub> <mi>M</mi> <mrow> <mi>i</mi> <mo>+</mo> <mn>1</mn> </mrow> </msub> <mo>=</mo> <mfrac> <mrow> <mi>&amp;alpha;</mi> <mo>&amp;CenterDot;</mo> <msub> <mi>M</mi> <mi>i</mi> </msub> </mrow> <msub> <mi>X</mi> <mi>i</mi> </msub> </mfrac> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>2</mn> <mo>)</mo> </mrow> </mrow>
其中,α为预设的链路状况参考值,0<α<1,取值依据是卫星通信链路状况由正常开始变差的临界值,Mi+1值取整数;
3)通过数据接收指示序列与原数据段的比对提取所有未成功接收的数据包,并重新组合成为重传数据段,编号1到Ni
4)生成第i+1次发送数据块,其结构为第i+1次发送数据段的长度值Mi+1、编号1到Mi+1的第i+1次发送数据段、编号为1到Ni的重传数据段;其中,重传数据段用丢包起始序号Si进行标识以便接收端进行辨认;
步骤201、接收端接收到第i+1次的数据块后,令i=i+1,按照步骤102生成确认数据块并发送至发送端;发送端根据丢包率的大小,按照步骤103中计算第i+1次发送数据段的长度值,生成第i+1次发送的数据块;循环步骤201,从而实现自适应的拥塞控制。
2.如权利要求1所述的基于丢包率的卫星通信自适应拥塞控制方法,其特征在于:步骤201、如式(2),当Xi>α时,Mi+1值变小,当Xi<α时,Mi+1值变大,实现自适应地窗口调节。
CN201510170652.4A 2015-04-13 2015-04-13 基于丢包率的卫星通信自适应拥塞控制方法 Active CN104796235B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510170652.4A CN104796235B (zh) 2015-04-13 2015-04-13 基于丢包率的卫星通信自适应拥塞控制方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510170652.4A CN104796235B (zh) 2015-04-13 2015-04-13 基于丢包率的卫星通信自适应拥塞控制方法

Publications (2)

Publication Number Publication Date
CN104796235A CN104796235A (zh) 2015-07-22
CN104796235B true CN104796235B (zh) 2018-02-23

Family

ID=53560772

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510170652.4A Active CN104796235B (zh) 2015-04-13 2015-04-13 基于丢包率的卫星通信自适应拥塞控制方法

Country Status (1)

Country Link
CN (1) CN104796235B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105406915B (zh) * 2015-10-16 2018-10-26 中国人民解放军国防科学技术大学 一种面向星地链路的文件传输方法
CN108809489B (zh) * 2017-05-04 2020-01-31 维沃移动通信有限公司 状态报告的上报方法、终端及网络侧设备
CN116684315B (zh) * 2021-02-04 2024-06-18 华为技术有限公司 业务指示方法及装置
CN114710446B (zh) * 2022-03-23 2024-04-26 维沃移动通信有限公司 数据传输方法、装置、电子设备和存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101159520A (zh) * 2007-10-29 2008-04-09 中兴通讯股份有限公司 数据传输方法
CN101562615A (zh) * 2009-05-20 2009-10-21 宁波大学 基于mpeg-4编码的多媒体数据流自适应网络带宽的传输方法
WO2011000311A1 (zh) * 2009-06-30 2011-01-06 华为技术有限公司 网络拥塞控制的方法和装置
CN102420676A (zh) * 2011-11-30 2012-04-18 中国人民解放军西安通信学院 一种适用于深空星际卫星网络的高效交互传输方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101159520A (zh) * 2007-10-29 2008-04-09 中兴通讯股份有限公司 数据传输方法
CN101562615A (zh) * 2009-05-20 2009-10-21 宁波大学 基于mpeg-4编码的多媒体数据流自适应网络带宽的传输方法
WO2011000311A1 (zh) * 2009-06-30 2011-01-06 华为技术有限公司 网络拥塞控制的方法和装置
CN102420676A (zh) * 2011-11-30 2012-04-18 中国人民解放军西安通信学院 一种适用于深空星际卫星网络的高效交互传输方法

Also Published As

Publication number Publication date
CN104796235A (zh) 2015-07-22

Similar Documents

Publication Publication Date Title
US7609697B2 (en) Optimizing IEEE 802.11 for TCP/IP data transfer
US7965738B2 (en) System and method for adaptive frame size management in a wireless multihop network
CN104093170B (zh) 基于tcp的数据传输方法和tcp代理装置
US8306062B1 (en) Method and apparatus of adaptive large receive offload
US8102829B2 (en) Wireless transmission device, wireless transmission method, wireless communication system, and program
CN104796235B (zh) 基于丢包率的卫星通信自适应拥塞控制方法
CN107592185B (zh) 一种适用于网络编码传输控制协议的前向重传方法
CN105450357A (zh) 编码参数的调整、反馈信息的处理方法及装置
CN109981385B (zh) 一种实现丢包检测的方法、装置和系统
CN111614572B (zh) 一种基于rtt的tcp网络拥塞控制方法
US8811500B2 (en) Data transmission
US20060259845A1 (en) Method and apparatus for acknowledging a bitwise data chunk in wireline and wireless communication systems
CN105406915B (zh) 一种面向星地链路的文件传输方法
CN104184568B (zh) 通信系统的数据传输方法及系统
CN110943810A (zh) 面向深空通信的可变滑动窗口长度的回退n帧自动重传方法及系统
CN104821843B (zh) 一种基于丢包率的卫星通信分段式拥塞控制方法
CN111131179B (zh) 业务处理方法、装置、网络设备及存储介质
CN103825689A (zh) 具有本地缓存的延迟确定性报文重传方法
CN104980365A (zh) 一种基于连续丢包拥塞判断的tcp传输加速方法
CN103152278A (zh) 拥塞确定方法、装置和网络设备
CN108718226B (zh) 一种水下长延时传感器网络传输层数据传输方法
JP2017092692A (ja) データ伝送制御システム及び方法、並びに、データ伝送制御プログラム
EP3809748A1 (en) Data transmitting method and device, and data receiving method and device
JP2009081567A (ja) 再送制御システム、再送制御方法、送信機及び受信機
CN109005011B (zh) 一种用于水声网络的数据传输方法、系统及可读存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
EXSB Decision made by sipo to initiate substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant