公开/公告号CN101184052A
专利类型发明专利
公开/公告日2008-05-21
原文格式PDF
申请/专利权人 北京广视通达网络技术有限公司;
申请/专利号CN200710304126.8
发明设计人 李永华;
申请日2007-12-25
分类号H04L12/56(20060101);H04L29/06(20060101);
代理机构11245 北京纪凯知识产权代理有限公司;
代理人徐宁;关畅
地址 100081 北京市海淀区中关村南大街3号海淀科技大厦903室
入库时间 2023-12-17 20:11:07
法律状态公告日
法律状态信息
法律状态
2014-02-19
未缴年费专利权终止 IPC(主分类):H04L12/56 授权公告日:20110727 终止日期:20121225 申请日:20071225
专利权的终止
2011-07-27
授权
授权
2008-07-16
实质审查的生效
实质审查的生效
2008-05-21
公开
公开
技术领域
本发明涉及一种在网络上交换数据的传输方法,特别是关于一种实现可靠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)对发送速率进行更新。
上述发明的技术方案中,所述接收端发送的确认包包含四个属性,当前接收端收到的数据包的序号sh_seq、希望对方发送的数据包序号sh_ack、确认包后接收的离散包信息、接收端的接收窗口大小。
上述发明的技术方案中,所述发送端维护两个队列一个列表,即带发送数据包队列、丢失包队列、已发送待确认包列表。
上述发明的技术方案中,所述RTT的是通过比较当前接收的包sh_seq的接收时间和发送时间来计算出RTT;对于重传过的包则忽略。
上述发明的技术方案中,对所述发送速率进行更新策略是通过调整数据包发送间隔STP来调整发送速率;
增速策略
(i)快增速阶段:从连接建立开始进入快速启动阶段,该阶段结束后,进入平滑阶段;在块启动阶段每次发送速度增加10KB/S;STP更新为
STP=(100*STP)/(100+STP)
(ii)慢增速阶段:系统一旦减速则进入慢增速阶段,每次增加1KB/S;STP更新为
STP=(1000*STP)/(1000+STP)
减速策略
(a)每次需要减速时,速度减低一半,设置STP=2*STP,一旦减速则设置STP增速阶段为慢增速阶段;(b)限定两次减速的时间间隔必须大于RTT*2的时间。
上述发明的技术方案中,所述触发发送速率时机选择通过(u)RTT变化触发:如果RTT变长,则STP增倍,否则STP减少1/8;(v)丢包率变化触发:如果丢包率增大,则STP增倍,否则STP减少1/8。
本发明由于采取以上技术方案,其具有以下优点: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。
机译: 可靠的数据包传输以减少拥塞的方法,系统和打包的可靠传输以减少计算机程序代码(拥塞)
机译: 以及可靠的数据包传输以减少拥塞的方法,系统(可靠的传输数据包重试引擎以减少拥塞)计算机程序代码
机译: 基于可靠的UDP和航空临时网络的喷泉码的可靠数据传输方法