CN101854297B - 一种卫星网络中传输控制协议跨层的设计方法 - Google Patents
一种卫星网络中传输控制协议跨层的设计方法 Download PDFInfo
- Publication number
- CN101854297B CN101854297B CN2010101797107A CN201010179710A CN101854297B CN 101854297 B CN101854297 B CN 101854297B CN 2010101797107 A CN2010101797107 A CN 2010101797107A CN 201010179710 A CN201010179710 A CN 201010179710A CN 101854297 B CN101854297 B CN 101854297B
- Authority
- CN
- China
- Prior art keywords
- congestion
- tcp
- layer
- respond packet
- probability
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
卫星网络中tcp跨层设计的方法是一种卫星网络中使用跨层设计增强tcp性能的解决方案。主要用于解决因卫星网络的高误码环境对tcp的影响,使得tcp能够正确判断网络拥塞和误码造成的数据包丢失,属于卫星网络的拥塞控制领域。它应具有如下特征:本发明是使tcp层与链路层实现跨层交互,使得链路层中的队列状态能够传递给tcp层,使得tcp层能够根据队列的状态来判断链路的拥塞状况,从而使得tcp能够正确判断网络拥塞和误码造成的数据包丢失,最终达到提高tcp性能的效果。
Description
技术领域
本发明是一种面向卫星网络中传输层协议的性能解决方案。主要用于提高TCP协议在卫星网络中的性能,属于卫星网络传输层拥塞控制的技术领域。
背景技术
随着通信网络技术的迅速发展,Internet得到了迅速的发展和普及。与此同时,各种新的业务需求如远程教育、电视会议、远程医疗的产生对网络带宽又提出了新的要求,现有的地面网络已不能完全满足用户的需求。交互的、高速的、和因特网结合的新一代卫星通信网络很好的解决了这些问题。卫星通信的覆盖面积广、通信费用与距离无关、不受地面自然灾害影响等固有的优点,很好的适应了当前迅猛发展的Internet业务的需要,同时也使得对卫星网络协议的研究成为当前的研究热点。
但是将卫星直接接入Internet仍然存在着许多急需解决的问题。这些问题的起因就在于卫星无线信道与陆地有线信道具有很大的差异,而大多数Internet协议都是基于地面网络设计的,TCP/IP协议的设计都是基于一些固有假定的,如假定包丢失是网络拥塞的结果、往返时间(Round Trip Time)具有一定程度的稳定性、带宽是恒定的、并且会话延时是由初始的TCP握手开销造成的等。但这些假定在卫星信道中并不满足,造成协议性能大大降低,这些影响可以归咎于卫星无线信道以下几个特点:传播时延大、带宽不对称、链路的高误码和链路瓶颈。因此,卫星无线信道所具有的高误码率、大传播时延、带宽不对称等特性,使得地面传统的传输层协议很难在卫星网络中体现出其优势。
通常在无线通信中,特别是在卫星无线通信中,由于信道衰减、反向多径传播信道或干扰噪声等原因,会造成错误比特的产生,从而导致无线链路的误码率会明显高于有线。在一定程度上,前向纠错可以减小无线链路的误码情况,但是仍不能达到地面有线网络误码率。传统网络里传输误码率是很低的,可将数据包的丢失认为是网络拥塞引起的,从而执行拥塞控制机制。但是,在卫星网络中的误码率很高,当TCP检测到有包丢失时,会要求重传丢失的数据包,但是TCP认为数据包丢失的原因是拥塞控制引起的,导致了TCP拥塞窗口不必要的减少,进而影响到链路的传输速率。而且,如果ACK分组发生丢失,使得接收方的确认信息无法抵达发送方,同样会降低吞吐率。如果没有一种显示通知机制正确判断网络拥塞和误码造成的数据包丢失,错误地执行拥塞控制机制将对卫星链路TCP性能产生很大的影响。可见,TCP对由于误码所引起的不恰当的反应严重影响了网络的性能,减小了网络吞吐量。
综上所述,传统的基于地面网络的TCP协议不能正确判断网络拥塞和误码造成的数据丢失,所以传统的TCP协议不能直接应用在高误码的卫星网络环境中,需要一种改进的TCP协议能够正确判断网络拥塞和误码造成的数据包丢失,从而使其应用在卫星网络中。
发明内容
技术问题:本发明的目的是提供一种卫星网络中传输控制协议跨层的设计方法,解决卫星网络中TCP不能判断网络拥塞和误码造成的数据包丢失,从而提高卫星网络中TCP协议的性能。
技术方案:本发明是一种策略性的方法,基于卫星网络的环境,通过跨层设计的方法和策略,改进TCP的拥塞控制算法,使其减少因链路传输出错丢包而导致TCP发送窗口缩减、吞吐量降低。
目前的协议栈机制是某一层协议通过下面层所提供的服务,转而向更高层提供服务,但这种方式存在很多的缺点。在TCP层,无线信道中的信息拥塞所产生的错误将导致IP包的丢失,致使比特率降低。在丢失事件发生后将花费很长的时间去修复,尤其是大量信息丢失后可能导致TCP的中断。此时系统将耗费几个往返时间(RTT)才能恢复到中断事件发生前的水平。为了解决这些问题,提出了一种TCP层跨层设计的方法,使其与链路层之间传递特定的信息,从而与卫星通信环境相适应,从而使系统能够满足各种业务的需求。
本方法实现的是链路层与TCP层的跨层设计,链路层中使用早期检测算法RED的队列管理方法,将实时的队列状态传递给TCP层,TCP层通过接收的信息调整拥塞控制策略。
步骤1.当传输层收到一个新包时,对回复响应包ack类型进行判断,如果不是回复响应包ack则退出,
步骤2.判断收到的新包是否是上次连接的尸体包,如果是尸体分组,释放该分组内存并退出,
步骤3.收到的如果是回复响应包ack,将回复响应包ack数加1,并记录对端发此回复响应包ack时的时间,
步骤4.如果本回复响应包ack的序号大于上次记录的回复响应包ack序号,表示是新的回复响应包ack,调整拥塞窗口,
步骤5.如果收到一个或俩个重复的回复响应包ack,只采用重传策略,
步骤6.当收到三个以上重复回复响应包ack,如果链路层传来的拥塞标志显示为链路拥塞,则调用快速重传策略,如果链路层传来的拥塞标志没有显示链路拥塞,则只采用重传策略,
链路层中使用随机早期检测算法RED,实现跨层设计的步骤如下:
步骤7.在收到包的时候,判断平均队列长度Qavg的值,当小于随机早期检测算法RED预先设定的门限Qmin的时候,将分组放入队列,并将拥塞标志设置为非拥塞,
步骤8.当Qavg的值大于等于Qmin,并小于Qmax时,调用函数计算概率P,以概率P丢弃分组,并以概率1-P将分组放入队列,然后将拥塞标志设置为非拥塞,
步骤9.当Qavg的值大于等于随机早期检测算法RED预先设定的门限Qmax的时候,调用函数计算概率P,以概率P丢弃分组,并以概率1-P将分组放入队列,然后拥塞标志位设置为拥塞。
有益效果:本方法基于跨层设计,将链路层的队列状态信息传递给TCP层,使得TCP层在收到重复ack的时候能够根据链路层的队列状态信息判断出链路的拥塞状况,使得TCP能够正确判断出网络拥塞和误码造成的数据包丢失,提高了通信链路的吞吐率和带宽利用率。
附图说明
图1是RED的丢包概率曲线图,是RED在不同阶段丢包概率的示意图。
图2是链路层RED收包后的流程示意图。
图3是TCP层收包后的流程示意图。
具体实施方式
方法流程:
1.链路层的跨层设计方案
传统的队列管理采用尾丢弃算法,容易造成全局同步和缓冲区易被填满等问题。RED拥塞控制机制的基本思想是通过监控路由器输出端口队列的平均长度来探测拥塞,一旦发现拥塞逼近,就随机地选择连接来通知拥塞,使他们在队列溢出导致丢包之前减小拥塞窗口,降低发送数据速度,从而缓解网络拥塞。由于RED是基于FIFO队列调度策略的,并且只是丢弃正进入路由器的数据包,因此其实施起来也较为简单。
RED主要试图达到以下目标:
1.最小化包丢头率和排队延迟
2.避免全局同步现象
3.避免对突发业务的偏见网络中含有大量的突发数据,而传统的“去尾”算法对突发业务有很大的偏见。在采用“去尾”算法的路由器中,如果某个流的突发性越高,则当该流的包进入队列时越容易造成队列溢出,从而导致连续的丢弃大量的该流的包。
为了达成以上目标,RED采用了基于时间的平均队列长度,并且随机的选择正进入路由器的包进行丢弃。
首先是计算平均队列长度,以此作为对拥塞程度的估计。另一个就是计算丢弃包的概率。RED有三个预先设定的门限,Pmax最大丢弃概率,Qmin队列长度的最小阀值和Qmax队列长度的最大阀值。通常算法对每一个分组到达执行以下的步骤
if Qavg<Qmin
将分组放入队列
elseif Qmin≤Qavg<Qmax
计算概率P,以概率P丢弃分组
以概率1-P将分组放入队列
elseif Qavg≥Qmax
丢弃分组
由于Internet数据的突发性,如果一个队列很多时候是空的,然后迅速被充满,又很快被取空,这时就不能说路由器发生拥塞而需要向源端发生拥塞指示。因此,RED在计算平均队长Qavg时,采用了类似低通滤波器带权值的方法:
Qavg=(1-Wq)Qavg+Wq×q
其中q为实际队列长度,Wq为计算队列的权重。这样由于Internet数据的突发本质活者短暂拥塞导致的实际队列长度暂时的增长将不会使得平均队长有明显的变化,从而过滤掉短期的队长变化,尽量反应长期的拥塞变化。计算平均队长的目的就是为了反映拥塞状况,根据拥塞的程度来计算丢弃包的概率,从而有效地控制平均队列长度。
丢包概率曲线如图1,计算临时丢弃概率Pb和丢弃概率Pa的公式如下:
注意到Pa不仅和Qavg有关,而且还和从上一次丢包开始到现在进入队列的包的数量count有关。随着count的增加,Pa也缓慢增加,因此随着上次丢弃发生以来时间的增加,下一个包被丢弃的可能性也在缓慢增加。
本方法是通过RED监控队列的平均长度来探测链路的拥塞状况,然后将链路的拥塞状况传递给TCP层,从而使得TCP层在丢包产生时判断是由误码还是拥塞引起的,进而提高TCP的吞吐率。基于跨层设计的链路层RED队列控制包括以下步骤:
步骤1.在收到包的时候,判断平均队列长度Qavg的值,当小于RED预先设定的门限Qmin的时候,将分组放入队列,并将拥塞标志设置为非拥塞。
步骤2.当Qavg的值大于等于Qmin,并小于Qmax时,调用函数计算概率P,以概率P丢弃分组,并以概率1-P将分组放入队列,然后将拥塞标志设置为非拥塞。
步骤3.当Qavg的值大于等于RED预先设定的门限Qmax的时候,调用函数计算概率P,以概率P丢弃分组,并以概率1-P将分组放入队列,然后拥塞标志位设置为拥塞。
2.TCP层的跨层设计方案
TCP拥有几个阶段,拥塞避免算法、快速重传和快速恢复算法。拥塞避免算法需要对每个连接维持两个变量:一个拥塞窗口cwnd和一个慢启动阀值ssthresh。拥塞避免算法步骤如下:
(1)对一个给定的连接,初始化cwnd为1个报文段,ssthresh为65535个字节。
(2)TCP的输出不能超过cwnd和接收通告窗口的大小。拥塞避免时发送方使用的流量控制。
(3)当拥塞发生时,ssthresh被设置为当前窗口大小的一半。此外,如果是超时重传,则cwnd被设置为1个报文段。
(4)当新的数据被对方确认时,就增加cwnd,但增加的方法依赖于是否正在进行慢启动或拥塞避免。如果cwnd小于或等于ssthresh,则正在进行慢启动,否则正在进行拥塞避免。
如果连续收到3个或以上的重复ack,就重传丢失的数据包文段,而无需等待超时定时器溢出。步骤如下:
(1)当收到第3个重复的ack时,将ssthresh设置为当前拥塞窗口cwnd的一半,重传丢失的报文段。
(2)每次收到另一个重复的ack时,cwnd增加1个报文段大小并发送一个1个分组。
(3)当下一个确认新数据的ack到达时,设置cwnd为ssthresh,这个ack应该是在进行重传后的一个往返时间内对步骤1中重传的确认。另外,这个ack也应该是对丢失的分组和收到的第一个重复的ack之间的所有中间报文段的确认。
从上面可以看出,传统的TCP设计在收到三个重复ack的时候,不能正确判断出丢包是由误码还是拥塞引起的,因此直接降低拥塞窗口,使得整体的链路利用率降低,下面是通过跨层设计的TCP拥塞控制方法,包括以下步骤:
步骤1.当传输层收到一个新包时,对ack包类型进行判断,如果不是ack包则退出。
步骤2.判断收到的新包是否是上次连接的尸体包,如果是尸体分组,释放该分组内存并退出。
步骤3.收到的如果是ack包,将ack包数加1,并记录对端发此ack包时的时间。
步骤4.如果本ack包的序号大于上次记录的ack序号,表示是新的ack,调整拥塞窗口。
步骤5.如果收到一个或俩个重复的ack,只采用重传策略。
步骤6.当收到三个以上重复ack,如果链路层传来的拥塞标志显示为链路拥塞,则调用快速重传策略,如果链路层传来的拥塞标志没有显示链路拥塞,则只采用重传策略。
本方法提出的tcp跨层设计具体实施的时候分为两个部分:一部分是链路层中RED的设计实现,另一部分是TCP层的设计实现。
实例:
一.链路层中RED的设计实现
主要的实现流程:
步骤1.在收到包的时候,判断平均队列长度Qavg的值,当小于RED预先设定的门限Qmin的时候,将分组放入队列,并将拥塞标志设置为非拥塞。
步骤2.当Qavg的值大于等于Qmin,并小于Qmax时,调用函数计算概率P,以概率P丢弃分组,并以概率1-P将分组放入队列,然后将拥塞标志设置为非拥塞。
步骤3.当Qavg的值大于等于RED预先设定的门限Qmax的时候,调用函数计算概率P,以概率P丢弃分组,并以概率1-P将分组放入队列,然后拥塞标志位设置为拥塞。
二.TCP层的设计实现
为实现TCP的跨层设计,首先引入变量qu_state,函数qu_state_()和set_qu_state_()。变量qu_state用于标识链路的拥塞状态。函数qu_state_()用于返回链路的拥塞状况,函数set_qu_state_()用于根据队列的实时状况设置链路的拥塞状态。
主要的实现流程:
步骤1.当传输层收到一个新包时,对ack包类型进行判断,如果不是ack包则退出。
步骤2.判断收到的新包是否是上次连接的尸体包,如果是尸体分组,释放该分组内存并退出。
步骤3.收到的如果是ack包,将ack包数加1,并记录对端发此ack包时的时间。
步骤4.如果本ack包的序号大于上次记录的ack序号,表示是新的ack,调整拥塞窗口。
步骤5.如果收到一个或俩个重复的ack,只采用重传策略。
步骤6.当收到三个以上重复ack,如果链路层传来的拥塞标志显示为链路拥塞,则调用快速重传策略,如果链路层传来的拥塞标志没有显示链路拥塞,则只采用重传策略。
Claims (1)
1.一种卫星网络中传输控制协议跨层的设计方法,其特征在于该方法包括步骤如下:
步骤1.当传输层收到一个新包时,对回复响应包ack进行判断,如果不是回复响应包ack则退出,
步骤2.判断收到的新包是否是上次连接时网络丢弃的数据分组,如果是,则释放该分组内存并退出,
步骤3.收到的如果是回复响应包ack,将回复响应包ack数加1,并记录对端发此回复响应包ack时的时间,
步骤4.如果本回复响应包ack的序号大于上次记录的回复响应包ack序号,表示是新的回复响应包ack,调整拥塞窗口,
步骤5.如果收到一个或两个重复的回复响应包ack,只采用重传策略,
步骤6.当收到三个以上重复回复响应包ack,如果链路层传来的拥塞标志显示为链路拥塞,则调用快速重传策略,如果链路层传来的拥塞标志没有显示链路拥塞,则只采用重传策略,
链路层中使用随机早期检测算法RED,实现跨层设计的步骤如下:
步骤7.在收到包的时候,判断平均队列长度Qavg的值,当小于随机早期检测算法RED预先设定的门限Qmin的时候,将分组放入队列,并将拥塞标志设置为非拥塞,
步骤8.当Qavg的值大于等于Qmin,并小于预先设定的门限Qmax时,调用函数计算概率P,以概率P丢弃分组,并以概率1-P将分组放入队列,然后将拥塞标志设置为非拥塞,
步骤9.当Qavg的值大于等于随机早期检测算法RED预先设定的门限Qmax的时候,调用函数计算概率P,以概率P丢弃分组,并以概率1-P将分组放入队列,然后拥塞标志位设置为拥塞。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010101797107A CN101854297B (zh) | 2010-05-21 | 2010-05-21 | 一种卫星网络中传输控制协议跨层的设计方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010101797107A CN101854297B (zh) | 2010-05-21 | 2010-05-21 | 一种卫星网络中传输控制协议跨层的设计方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101854297A CN101854297A (zh) | 2010-10-06 |
CN101854297B true CN101854297B (zh) | 2013-01-02 |
Family
ID=42805573
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010101797107A Expired - Fee Related CN101854297B (zh) | 2010-05-21 | 2010-05-21 | 一种卫星网络中传输控制协议跨层的设计方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101854297B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102739510B (zh) * | 2011-04-15 | 2016-07-27 | 中兴通讯股份有限公司 | 一种流控方法和装置 |
CN102291389A (zh) * | 2011-07-14 | 2011-12-21 | 南京邮电大学 | 一种卫星网络中跨层拥塞控制方法 |
CN102325082B (zh) * | 2011-07-19 | 2014-04-02 | 天津理工大学 | 一种面向游牧应用的网络拥塞控制方法 |
CN102523604B (zh) * | 2011-12-14 | 2014-05-28 | 大连大学 | 一种应用于卫星网络的跨层实现优化卫星信道资源的方法 |
WO2016105419A1 (en) * | 2014-12-24 | 2016-06-30 | Intel Corporation | Apparatus and method for routing data in a switch |
CN105897665B (zh) * | 2015-01-26 | 2020-01-14 | 中兴通讯股份有限公司 | 一种卫星网络环境下实现tcp传输的方法及相应的网关 |
CN108093385B (zh) * | 2017-12-26 | 2021-06-01 | 海信视像科技股份有限公司 | 蓝牙控制器处理广播包的方法、蓝牙控制器和蓝牙设备 |
CN109861740B (zh) * | 2019-01-28 | 2020-08-04 | 北京航空航天大学 | 卫星网络通信方法、设备及计算机可读存储介质 |
CN110266366B (zh) * | 2019-05-23 | 2021-06-04 | 军事科学院系统工程研究院网络信息研究所 | 一种卫星导航系统数据传输跨层交换方法 |
CN110650491B (zh) * | 2019-09-18 | 2022-08-12 | 南通大学 | 一种用于车载自组网通信的前向纠错fec参数分析方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1819553A (zh) * | 2005-02-11 | 2006-08-16 | 三星电子株式会社 | 使用多个传输控制协议确认的传输控制协议拥塞控制 |
CN1946078A (zh) * | 2006-10-27 | 2007-04-11 | 清华大学 | 一种适用于卫星网络的高效交互传输方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101242414B (zh) * | 2008-03-19 | 2011-05-25 | 哈尔滨工业大学 | 基于卫星网络mac协议的跨层协议通信方法 |
-
2010
- 2010-05-21 CN CN2010101797107A patent/CN101854297B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1819553A (zh) * | 2005-02-11 | 2006-08-16 | 三星电子株式会社 | 使用多个传输控制协议确认的传输控制协议拥塞控制 |
CN1946078A (zh) * | 2006-10-27 | 2007-04-11 | 清华大学 | 一种适用于卫星网络的高效交互传输方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101854297A (zh) | 2010-10-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101854297B (zh) | 一种卫星网络中传输控制协议跨层的设计方法 | |
CN112165355B (zh) | 一种面向卫星网络的基于udp的可靠数据传输方法 | |
CN102291389A (zh) | 一种卫星网络中跨层拥塞控制方法 | |
Waghmare et al. | Comparative Analysis of different TCP variants in a wireless environment | |
Francis et al. | Techniques for enhancing TCP performance in wireless networks | |
CN103957121A (zh) | 一种面向空天信息网络的跨层tcp优化方法 | |
CN105406915B (zh) | 一种面向星地链路的文件传输方法 | |
CN102546436B (zh) | 卫星网络中友好的速率控制协议改进方法 | |
Sisalem et al. | Towards TCP-friendly adaptive multimedia applications based on RTP | |
CN107395325A (zh) | 一种服务于战术级通信网的自适应估计传输方法 | |
CN112689268B (zh) | 编队无人机组网提高多路由数据传输效率的方法及系统 | |
CN101969432A (zh) | 基于随机回退的tcp拥塞窗口的控制方法 | |
Sreenivas et al. | L2DB-TCP: An adaptive congestion control technique for MANET based on link layer measurements | |
CN104580171B (zh) | Tcp协议的传输方法、装置和系统 | |
Yadav et al. | A review of congestion control mechanisms for wireless networks | |
US20130188511A1 (en) | Method and system for controlling transmission rate of datagrams in a packet-switched network | |
Altahir et al. | Performance evaluation of TCP congestion control mechanisms using NS-2 | |
Park et al. | TCP Hybla+: making TCP more robust against packet loss in satellite networks | |
Omueti et al. | TCP with adaptive delay and loss response for heterogeneous networks | |
Giambene et al. | Internet access in hybrid terrestrial and satellite mobile communication systems | |
Lee | Least object transfer latency in the IoT with small congestion window | |
CN102082735B (zh) | N次弃头的被动队列管理的方法 | |
Fu et al. | BIPR: a new TCP variant over satellite networks | |
Chen et al. | An enhanced TCP for satellite network with intermittent connectivity and random losses | |
Ahmed et al. | Analysis of SR ARQ delays using data-bundling over Markov channels |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20130102 Termination date: 20150521 |
|
EXPY | Termination of patent right or utility model |