CN101184052B - 一种实现可靠udp传输的拥塞控制方法 - Google Patents
一种实现可靠udp传输的拥塞控制方法 Download PDFInfo
- Publication number
- CN101184052B CN101184052B CN2007103041268A CN200710304126A CN101184052B CN 101184052 B CN101184052 B CN 101184052B CN 2007103041268 A CN2007103041268 A CN 2007103041268A CN 200710304126 A CN200710304126 A CN 200710304126A CN 101184052 B CN101184052 B CN 101184052B
- Authority
- CN
- China
- Prior art keywords
- stp
- transmission
- strategy
- packet
- bag
- 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
Abstract
本发明涉及一种实现可靠UDP传输的拥塞控制方法,是一种端到端的控制机制,包括对接收端的控制策略和对发送端的控制策略来实现在UDP协议下的端到端拥塞控制;接收端每接收到4个数据包就发送1个确认包,确认包中包含体现网络流量状况的信息;根据确认包中包含的信息,发送端通过测量到的数据包往返时间的变化来调整数据包发送时间间隔,从而调整数据包的发送速率,使得存在拥塞的网络恢复畅通,并且充分利用传输双方之间的带宽,以达到有效节约资源的目的。
Description
技术领域
本发明涉及一种在网络上交换数据的传输方法,特别是关于一种实现可靠UDP传输的拥塞控制方法。
背景技术
近年来,随着互联网技术和应用的快速发展,IPv4的网络地址空间已经无法满足用户规模的快速扩张需求。为了摆脱这一困境,目前互联网上大多数局域网运营者采用了内部地址的方法来解决IP地址空间不足的问题:局域网内大多数计算机使用私有内部IP地址,并通过共享同一个公共外部IP地址来访问互联网;在局域网内计算机与互联网之间,需要设置一个网络地址转换网关(NAT)来进行私有内部IP地址与公共外部IP地址之间的地址转换。由于传输控制协议(TCP)无法让位于NAT之后不同局域网内的两台计算机之间直接建立TCP连接,因而需要通过用户数据报协议(UDP)穿透技术能够使得位于NAT之后的不同局域网内的两台计算机通过UDP协议直接传输数据,因此采用UDP协议进行的可靠流式数据传输方法近年来得到了迅速的发展。
不同于TCP,UDP是无连接的不可靠的传输层协议。UDP协议在由IP地址所标识的网络节点处提供最小的应用性多路复用,但其并不具有可靠的递送、流量控制和拥塞控制。UDP协议在本质上是非常简单的,来自应用层的数据向下传递到传输层并且封装在UDP数据报中。数据报被发送给主机,中间过程没有任何机制保证其安全地到达目的地的设备。如果期望其具有可靠性的话,任何可靠性检查都要被推回到应用层,从而增加应用层负担。UDP的简单性优点减少了使用该协议的开销,而且这些服务在很多情况下是足够的。例如,指定3G无线网络的IP多媒体系统(IMS)为交换媒体流使用实时传输协议(RTP),而RTP通常在UDP上运行。
如图1所示,在拥塞阶段,由于网络带宽的减少,使得传输数据包往返时间相应变长。随着UDP业务的增加,网络拥塞出现了新问题。网络拥塞指的是在包交换网络中由于传送的包数目太多,而存贮转发节点的资源有限而造成网络传输性能下降的情况。当网络发生拥塞时,UDP业务非公平的占有网络带宽,导致TCP业务性能下降。由于现有的UDP业务缺乏端到端的拥塞控制机制,因此对拥塞指示信号不发生反应,从而占据了链路上几乎所有的可用带宽,严重时可能导致网络崩溃。
发明内容
针对上述问题,本发明的目的是提供一种实现可靠UDP传输的拥塞控制方法。
为实现上述目的,本发明采取以下技术方案:一种实现可靠UDP传输的拥塞控制方法,它包括对接收端的控制策略和对发送端的控制策略来实现在UDP协议下的端到端拥塞控制;所述对接收端的控制策略如下:接收端每接收到4个包发送一个确认包ACK,如100毫秒内没有发送确认包则发送一个确认包。所述对发送端的控制策略是通过滑动窗口和数据包发送速率来控制数据包的发送,其控制数据包发送速率步骤包括:(1)发送端根据定期接收到的确认包来测量数据包往返时间RTT;(2)发送端根据定期接收到的确认包来测量丢包率;(3)触发发送速率的更新;(4)对发送速率进行更新;其特征在于:对所述发送速率进行更新的策略是通过调整数据包发送间隔STP来调整发送速率,所述发送速率的更新分为增速策略、减速策略和触发发送速率更新的时机选择:
(1)增速策略:
(i)快增速阶段:从连接建立开始进入快速启动阶段,该阶段结束后,进入平滑阶段,STP更新为
STP=(100*STP)/(100+STP);
(ii)慢增速阶段:系统一旦减速则进入慢增速阶段,STP更新为
STP=(1000*STP)/(1000+STP);
(2)减速策略:
(i)每次需要减速时,速度减低一半,设置STP=2*STP,一旦减速则设置STP增速阶段为慢增速阶段;
(ii)限定两次减速的时间间隔必须大于RTT*2的时间;
(3)触发发送速率更新的时机选择:
(i)RTT变化触发:如果RTT变长,则STP增倍,否则STP减少1/8;
(ii)丢包率变化触发:如果丢包率增大,则STP增倍,否则STP减少1/8。
所述接收端发送的确认包包含四个属性,当前接收端收到的数据包的序号sh_seq、希望对方发送的数据包序号sh_ack、确认包后接收的离散包信息、接收端的接收窗口大小。
所述发送端维护两个队列一个列表,即待发送数据包队列、丢失包队列、已发送待确认包列表。
所述RTT的是通过比较当前接收端收到的数据包的序号sh_seq的接收时间和发送时间来计算出RTT;对于重传过的包则忽略。
本发明由于采取以上技术方案,其具有以下优点:1、本发明通过发送端控制策略和接收端控制策略,能够动态适应网络带宽的波动。2、本发明通过调整数据包发送时间间隔来调整数据包的发送速率,不但可以嗅探出网络的瓶颈带宽,更能充分利用传输双方之间的带宽以节约网络资源。3、本发明由于使用以上技术,实现了端到端的拥塞控制机制,从而保证UDP传输的可靠性。
附图说明
图1是网络处于拥塞状态的示意图
图2是拥塞控制的原理流程图
具体实施方式
鉴于前述的技术背景,本发明提供了用于在使用UDP传输层网络中减少拥塞的控制方法。可靠的UDP数据传输的表现形式为:将待传输的流式数据切割成多个固定大小的数据包,并对数据包进行连续编号;其拥塞控制体现在通过部署类似TCP的控制算法,来实现数据包传输的可靠性,并控制和避免网络拥塞。
下面对本发明的拥塞控制方法进行详细的描述。
如图2所示,本发明主要包括对接收端的控制策略和对发送端的控制策略,来实现在UDP协议下的端到端拥塞控制。
接收端的控制策略如下:
(1)每接收到4个包发送一个确认包ACK信息。
(2)如果100毫秒内没有发送ACK信息,则发送一个ACK信息。
(3)在ACK包中,定义了以下四个属性:当前收到的包序号;希望对方发送的包编号(即这个包序号前面所有包都已经接收完毕);确认包后之后接收的离散包信息,该信息用位图来表示;接收端的接收窗口大小。
对发送端的控制策略是通过滑动窗口和数据包的发送速率来控制数据包的发送。滑动窗口表示接收端的接收能力,即接收端缓冲区空闲内存可接收数据包的数目大小;数据包的发送速率用来控制数据包的发送速度,通过发送一个数据包所需要等待的时间长度来控制。发送端维护有两个队列和一个列表,分别是待发送数据包队列、丢失包队列和已发送待确认包列表,其作用是对数据包的状态信息进行实时更新。控制策略步骤包括:
(1)发送端根据定期接收到的确认包来测量数据包往返时间RTT;
(2)发送端根据定期接收到的确认包来测量丢包率;
(3)触发发送速率的更新;
(4)对发送速率进行更新。
每一个ACK包中保护的两个数字:sh_seq和sh_ack,其中sh_seq表示当前接收的包的编号,sh_ack表示之前的包都已经接收成功。当发送端接收到一个ACK包后,通过比较包sh_seq的接收时间和发送时间来计算出包往返时间RTT。对于重传过的包则忽略。
本发明发送速率的更新策略是:通过调整数据包发送间隔STP(用毫秒表示)来调整发送速率,STP的变化则由RTT和丢包率的变化来触发。发送速率的更新分为增速策略、减速策略和触发发送速率更新的时机选择。
(1)增速策略
a)快增速阶段:从连接建立开始即进入快启动阶段,该阶段结束后,则进入平滑阶段。在快速增速阶段每次发送速度增加值为10KB/S。
STP=(100*STP)/(100+STP)
b)慢增速阶段:系统一旦减速则进入慢增速阶段,每次增加值减少至1KB/S。
STP=(1000*STP)/(1000+STP)
(2)减速策略:
a)每次需要减速时,速度减低一半,设置STP=2*STP。一旦减速则设置STP增速阶段为慢增速阶段。
b)限定两次减速的时间间隔必须大于RTT*2的时间。
(3)触发发送速率更新的时机选择:
a)RTT变化触发:如果RTT变长,则STP增倍,否则STP减少1/8;
b)丢包率变化触发:如果丢包率增大,则STP增倍,否则STP减少1/8。
Claims (5)
1.一种实现可靠UDP传输的拥塞控制方法,它包括对接收端的控制策略和对发送端的控制策略来实现在UDP协议下的端到端拥塞控制;所述对接收端的控制策略为接收端每接收到4个包发送一个确认包ACK,如100毫秒内没有发送确认包则发送一个确认包;所述对发送端的控制策略是通过滑动窗口和数据包发送速率来控制数据包的发送,其控制数据包发送速率步骤包括:(1)发送端根据定期接收到的确认包来测量数据包往返时间RTT;(2)发送端根据定期接收到的确认包来测量丢包率;(3)触发发送速率的更新;(4)对发送速率进行更新;其特征在于:对所述发送速率进行更新的策略是通过调整数据包发送间隔STP来调整发送速率,所述发送速率的更新分为增速策略、减速策略和触发发送速率更新的时机选择:
(1)增速策略:
(i)快增速阶段:从连接建立开始进入快速启动阶段,该阶段结束后,进入平滑阶段,STP更新为
STP=(100*STP)/(100+STP);
(ii)慢增速阶段:系统一旦减速则进入慢增速阶段,STP更新为
STP=(1000*STP)/(1000+STP);
(2)减速策略:
(i)每次需要减速时,速度减低一半,设置STP=2*STP,一旦减速则设置STP增速阶段为慢增速阶段;
(ii)限定两次减速的时间间隔必须大于RTT*2的时间;
(3)触发发送速率更新的时机选择:
(i)RTT变化触发:如果RTT变长,则STP增倍,否则STP减少1/8;
(ii)丢包率变化触发:如果丢包率增大,则STP增倍,否则STP减少1/8。
2.如权利要求1所述的一种实现可靠UDP传输的拥塞控制方法,其特征在于:所述接收端发送的确认包包含四个属性,当前接收端收到的数据包的序号sh_seq、希望对方发送的数据包序号sh_ack、确认包后接收的离散包信息、接收端的接收窗口大小。
3.如权利要求1所述的一种实现可靠UDP传输的拥塞控制方法,其特征在于:所述发送端维护两个队列一个列表,即待发送数据包队列、丢失包队列、已发送待确认包列表。
4.如权利要求2所述的一种实现可靠UDP传输的拥塞控制方法,其特征在于: 所述发送端维护两个队列一个列表,即待发送数据包队列、丢失包队列、已发送待确认包列表。
5.如权利要求1或2或3或4所述的一种实现可靠UDP传输的拥塞控制方法,其特征在于:所述RTT是通过比较当前接收端收到的数据包的序号sh_seq的接收时间和发送时间来计算出RTT;对于重传过的包则忽略。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2007103041268A CN101184052B (zh) | 2007-12-25 | 2007-12-25 | 一种实现可靠udp传输的拥塞控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2007103041268A CN101184052B (zh) | 2007-12-25 | 2007-12-25 | 一种实现可靠udp传输的拥塞控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101184052A CN101184052A (zh) | 2008-05-21 |
CN101184052B true CN101184052B (zh) | 2011-07-27 |
Family
ID=39449140
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007103041268A Expired - Fee Related CN101184052B (zh) | 2007-12-25 | 2007-12-25 | 一种实现可靠udp传输的拥塞控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101184052B (zh) |
Families Citing this family (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101848130A (zh) * | 2009-03-27 | 2010-09-29 | 北京大学深圳研究生院 | 一种基于应答驱动的p2p流媒体udp拥塞控制方法 |
CN101599965B (zh) * | 2009-07-02 | 2012-01-25 | 电子科技大学 | 基于测量的自适应高速信息传输方法 |
CN101888544B (zh) * | 2010-06-30 | 2012-05-30 | 杭州海康威视数字技术股份有限公司 | 一种低带宽的视频数据传输方法和硬盘录像机 |
CN102469088A (zh) * | 2010-11-17 | 2012-05-23 | 郑州威科姆科技股份有限公司 | 基于udp协议的大量数据传输方法 |
CN102571689B (zh) * | 2010-12-10 | 2014-12-31 | 中兴通讯股份有限公司 | 一种数据传输方法及装置 |
CN102045362B (zh) * | 2010-12-21 | 2014-01-15 | 北京高森明晨信息科技有限公司 | 一种基于udp协议的数据传输方法和系统 |
US9548936B2 (en) | 2011-06-30 | 2017-01-17 | The Chinese University Of Hong Kong | Method and system for improved TCP performance over mobile data networks |
CN102546832B (zh) * | 2012-02-29 | 2014-09-24 | 北京快网科技有限公司 | 基于tcp协议的报文发送方法 |
CN102638582B (zh) * | 2012-04-12 | 2015-07-08 | 华为技术有限公司 | 数据通信方法及通信端 |
CN103067301A (zh) * | 2013-01-17 | 2013-04-24 | 广东石油化工学院 | 基于用户数据报协议的快速可靠的拥塞控制改进算法 |
CN104243097A (zh) * | 2014-09-19 | 2014-12-24 | 东软集团股份有限公司 | 基于卫星网络的数据传输方法及系统 |
CN104618258B (zh) * | 2015-02-05 | 2017-12-01 | 成都金本华科技股份有限公司 | 一种数据传输速率的控制方法 |
CN104579582B (zh) * | 2015-02-05 | 2017-11-17 | 成都金本华科技股份有限公司 | 一种基于通信网络的高质量语音传输方法 |
US9762468B2 (en) * | 2015-03-09 | 2017-09-12 | Landis+Gyr Innovations, Inc. | Method for dynamically adjusting packet transmission timing |
CN104717108B (zh) * | 2015-03-30 | 2018-04-06 | 北京邮电大学 | 基于主动测量和包间隔模型的网络瓶颈带宽测量方法 |
CN106341738B (zh) * | 2015-07-08 | 2021-02-02 | 杭州海康威视数字技术股份有限公司 | 流媒体网络传输的带宽计算方法、服务器端和系统 |
CN107438187B (zh) * | 2015-09-28 | 2020-06-30 | 苏州踪视通信息技术有限公司 | 实时视频传输的带宽调整 |
CN106131043A (zh) * | 2016-08-03 | 2016-11-16 | 大连环宇移动科技有限公司 | 一种基于udp协议以提高数据传输可靠性的方法 |
CN106301714B (zh) * | 2016-08-16 | 2019-11-19 | 浙江大华技术股份有限公司 | 一种数据传输方法及装置 |
CN108616326A (zh) * | 2016-12-12 | 2018-10-02 | 中国航空工业集团公司西安航空计算技术研究所 | 基于udp的发动机大数据可靠传输方法 |
CN106685593B (zh) * | 2016-12-27 | 2019-09-27 | Oppo广东移动通信有限公司 | 一种数据上报的控制方法、装置及终端 |
CN107979542A (zh) * | 2017-12-14 | 2018-05-01 | 中央电视台 | 网络拥塞确定方法及本端网元 |
CN109379355A (zh) * | 2018-10-11 | 2019-02-22 | 无锡威孚力达催化净化器有限责任公司 | 基于udp协议的自适应可靠多窗口数据传输方法 |
CN109787859B (zh) * | 2019-01-11 | 2022-06-10 | 深圳市网心科技有限公司 | 基于网络拥塞探测的智能限速方法、装置及存储介质 |
CN110572333B (zh) * | 2019-10-25 | 2021-04-13 | 中南大学 | 一种带宽探测阶段的发送速率调整方法及拥塞控制算法的实现方法 |
CN112203328B (zh) * | 2020-09-30 | 2022-07-12 | 中南林业科技大学 | 一种基于dccp的拥塞控制方法、装置及电子设备 |
-
2007
- 2007-12-25 CN CN2007103041268A patent/CN101184052B/zh not_active Expired - Fee Related
Non-Patent Citations (4)
Title |
---|
万国府等.卫星网络中基于UDP的可靠数据传输协议.信息安全与通信保密 2007.6.2007,(2007.6),64-66. |
万国府等.卫星网络中基于UDP的可靠数据传输协议.信息安全与通信保密 2007.6.2007,(2007.6),64-66. * |
王继刚等.可靠UDP数据传输协议的研究与设计.计算机工程与应用 2006.15.2006,(2006.15),113-116. |
王继刚等.可靠UDP数据传输协议的研究与设计.计算机工程与应用 2006.15.2006,(2006.15),113-116. * |
Also Published As
Publication number | Publication date |
---|---|
CN101184052A (zh) | 2008-05-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101184052B (zh) | 一种实现可靠udp传输的拥塞控制方法 | |
US8310928B2 (en) | Flow control system architecture | |
US8553699B2 (en) | Wavefront detection and disambiguation of acknowledgements | |
US8462630B2 (en) | Early generation of acknowledgements for flow control | |
US8411560B2 (en) | TCP selection acknowledgements for communicating delivered and missing data packets | |
US7698453B2 (en) | Early generation of acknowledgements for flow control | |
US20110044338A1 (en) | Throughput in a lan by managing tcp acks | |
CN103490972B (zh) | 多链路隧道报文传输方法及系统 | |
US20050074007A1 (en) | Transaction boundary detection for reduction in timeout penalties | |
WO2003043285A2 (en) | Flow control between performance enhancing proxies over variable bandwidth split links | |
US20100054215A1 (en) | Adaptive time allocation in a tdma mac layer | |
KR20050085742A (ko) | 무선 네트워크에서의 실시간 데이터 보호 | |
JP2007527170A (ja) | 並列通信のためのシステムおよび方法 | |
JP2004520725A (ja) | サテライトを介するインターネット | |
CN101018195B (zh) | Manet信息分发订购平台中短猝报文的传送方法 | |
Noman et al. | Improvement Ivestigation of the TCP Algorithms With Avoiding Network Congestion Based on OPNET | |
EP1652087B1 (en) | Flow control architecture | |
Bisio et al. | Performance enhanced proxy solutions for satellite networks: state of the art, protocol stack and possible interfaces | |
JP2013013093A (ja) | Tcpackの管理によるlanにおけるスループット改善 | |
Yun et al. | New explicit loss notification for TCP in wireless networks | |
Weiqiang et al. | Optimization of tcp for haps network | |
KR101396785B1 (ko) | 네트워크 장치에서 tcp 기능을 수행하는 방법 | |
CN116131923A (zh) | 一种基于卫星通信的数据传输方法、装置及存储介质 | |
Series | Transmission control protocol (TCP) over satellite networks | |
Dutta et al. | Protocol Alchemy: Designing a TCP-Based Approach to Support Large-Scale Deployment of VoIP on the Internet |
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 | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20110727 Termination date: 20121225 |