速率控制的制作方法_4

文档序号:9732407阅读:来源:国知局
控制器模块406的实现,但是速率控制器模块406可 W实现为通信客户端206的功能性的部分。在运些实施例中,通过速率控制算法的执行所确 定的缓冲器大小和速率限制信息可W从通信客户端206供应到代理,其具有使得代理能够 接收适当的缓冲器大小和速率限制信息并且相应地设定适当的缓冲器大小和速率限制的 速率限制能力。
[0063] 对于在不具有对TCP套接口的访问的应用层307上操作的应用过程402而言,要求 HTTP/HTWS代理或TCP代理的使用。例如,如上文所述,应用层过程402可W是由通信客户端 206托管的嵌入式浏览器,嵌入式浏览器不具有对TCP套接口的访问,因此要求代理W使得 能够访问较低协议层。
[0064] 图4示出代理404的使用,然而本文公开的实施例不限于运样的代理的使用。例如, 应用层过程402可W具有直接打开TCP套接口 W便下载或上载TCP内容的能力。在运样的实 施例中,不使用代理并且将速率控制器模块406实现为通信客户端206的功能性的部分。将 领会到,具有访问TCP套接口的能力的应用层过程402可W仍使用代理404W便下载或上载 TCP内容(尽管不要求使用代理)。
[006引现有商用web浏览器产品(例如Google Qirome?和Mozilla Firefox ? )可W支持 通过Google所提供的WebRTC标准的web呼叫服务。也就是说,可W在两个端点之间实现实时 通信,其中实时通信穿过相应的WebRTC兼容浏览器。然而,web呼叫质量可能由于其它并发 web浏览交叉业务量而严重降级。速率控制机制可W构建到兼容WebRTC浏览器中W使浏览 器web呼叫是友好的。要求将实时输运协议(RTP)实现为用于WebRTC的媒体输运协议。RTP本 身包括两个部分:RTP数据传输协议和RTP控制协议(RTCP)。端对端队列延迟和分组丢失可 W由通过其进行实时通信的WebRTC浏览器来测量,并且被反馈到具有构建到其中的速率控 制机制的另一 WebRTC浏览器(通过其进行实时通信)。使用RTCP协议反馈端对端队列延迟和 分组丢失。具有内置的速率控制机制的WebRTC浏览器然后可W依照W上描述的实施例施行 速率控制。在该情况下,不要求代理,因为web浏览器本身处置HTTP/HTTPS过程。如将清楚 的,在该实现中,通信客户端206不处置实时通信。
[0066] W上描述的速率控制算法被配置成在第一和第二模式中操作。速率控制算法如上 文描述的那样在第一模式中操作W便通过有意地对可用带宽利用不足来降低端对端队列 延迟和分组丢失。在第二模式中,将套接口读取速度tcp_rate_limit设定成预确定的值,其 足够高W便让底层TCP协议确定实际发送速率,其被确保是TCP友好的。因而在第二模式中, 速率控制算法没有控制网络106中的路由器溢出。因此可W看到,当在第一模式中时,算法 具有处置TCP交叉业务量的保守方案,并且当在第二模式中时,算法具有处置TCP交叉业务 量的更加进取的方案。
[0067] 速率控制算法被配置成在操作在第一和第二模式中之间切换,现在参照图5中所 示的切换过程500描述运一点。
[0068] 在步骤S502处,速率控制算法开始操作在第一模式中并且启动计时器,自启动计 时器开始逝去的时间通过ttimer表示(运在下文更详细地描述)。在步骤S504处,针对预确定 的时间段的预确定的比例确定所测量的端对端队列延迟和/或分组丢失是否超出相应阔值 (步骤S504处的确定不基于端对端队列延迟和/或分组丢失的单个观察)。如果在步骤S504 处确定针对预确定的时间段的预确定的比例所测量的端对端队列延迟和/或分组丢失没有 超出相应阔值(即测量没有持续高于相应阔值),则过程500行进回到步骤S502,其中速率控 制算法继续在第一模式中操作。步骤S504处的端对端队列延迟阔值可W设定为例如100ms 并且步骤S504处的分组丢失阔值可W例如在3-5%的区中。将领会到,运些值仅仅是示例并 且可W根据网络类型和观察而改变。
[0069] 如果在步骤S504处确定针对预确定的时间段的预确定的比例所测量的端对端队 列延迟和/或分组丢失超出相应阔值(即测量持续高于相应阔值),则运指示存在由于运行 于用户设备104上的其它应用所致的另外TCP交叉业务量(例如视频可能由用户经由web浏 览器观看)并且过程500行进到步骤S505,其中将ttimer的值与tswitch_interval比较, tswitch_interval表示在准许速率控制算法的操作模式中的改变之前必须逝去的时间W防止第 一和第二操作模式之间的振荡。tswitch_interval的值可W例如设定为至少10-15秒。如果时间 段tswitch_interval在步骤S505处尚未逝去,则过程500行进回到S504,其中速率控制算法再次 检查条件仍成立,W避免对短期丢失/延迟尖峰做出反应。当时间段tswitch_interval已经逝去 时,过程500行进到步骤S506,其中速率控制算法切换成在第二模式中操作。
[0070] 当速率控制算法切换成在第二模式中操作时,重置ttimer的值并且重启计时器。
[0071] 当速率控制算法在第二模式中操作时,针对预确定的时间段的预确定的比例确定 (在步骤S508处)所测量的端对端队列延迟是否降至阔值(例如60ms ) W下(即端对端队列延 迟持续低于延迟阔值)和/或分组丢失是否在预确定的时间段届满之后降至零(步骤S508处 的确定不基于端对端队列延迟和/或分组丢失的单个观察)。如果在步骤S508处确定针对预 确定的时间段的预确定的比例所测量的端对端队列延迟没有降至相应阔值W下和/或分组 丢失在预确定的时间段届满之后没有降至零,则速率控制算法继续在第二模式中操作并且 过程500行进到步骤S509。
[0072] 在步骤S509处,速率控制算法等待直到自进入第二模式起的时间段(ttemp_switch)已 经在行进到步骤S510之前逝去,其中速率控制算法临时地切换回成在第一模式中操作。由 ttemp_switch表示的时间段可W例如为20秒。如果时间段ttemp_switch在S509处尚未逝去,则过程 500行进回到S508,其中速率控制算法检查网络条件是否改变。
[0073] 在临时切换回到在第一模式中操作之后,速率控制算法然后在步骤S512处确定端 对端队列延迟和/或分组丢失是否降至步骤S504处所使用的相应阔值W下。实现回到在第 一模式中操作的临时切换,因为当速率控制算法在第二模式中操作时,丢失/延迟中的下降 可能不必然被观察到,即使交叉业务量消失,因为速率控制算法将在操作在第二模式中时 像TCP那样工作并且因此引入丢失和延迟。
[0074] 如果端对端队列延迟和/或分组丢失尚未降至用于在步骤S504处所使用的端对端 队列延迟和/或分组丢失的相应阔值W下,则过程行进到步骤S514,其中速率控制算法返回 至在第二模式中操作。
[0075] 如果端对端队列延迟和/或分组丢失降至用于在步骤S504处所使用的端对端队列 延迟和/或分组丢失的相应阔值w下,则速率控制算法保持在第一操作模式中操作。运通过 过程500行进回到步骤S512来表示。
[0076]将清楚的是,该另外的TCP交叉业务量可能在某个点处消失(即用户停止经由web 浏览器观看视频)并且因此存在对于使速率控制算法具有切换回到在第一模式中操作的能 力的需要。否则,如果算法保持在第二模式中,即使另外的TCP交叉业务量消失,底层TCP协 议也将保持引入延迟和丢失,其将比如果切换回到第一模式的情况更高。
[OOW]参照回步骤S508,如果在步骤S508处确定针对预确定的时间段的预确定的比例所 测量的端对端队列延迟降至相应阔值W下和/或然后分组丢失在预确定的时间段届满之后 降至零,则然后运指示网络106的带宽利用不足(即用户停止经由web浏览器观看视频),然 后过程500行进到步骤S515,其中将ttimer的值与tswitch_interva化较。当自进入第二模式起已 经逝去时间段tswitch_interval时,过程500行进到步骤S516,其中速率控制算法切换回到在第 一模式中操作。
[0078] 当速率控制算法切换到在第一模式中操作时,重置ttimer的值并且重启计时器。
[0079] 一旦速率控制算法在步骤S516处切换回到在第一模式中操作,将参数max_ bandwidth设定成用于第一模式和之前的第二模式中的max_bandwidth的值的平均。
[0080] 在步骤S518处,将在速率控制算法操作于第二模式中时所测量的延迟和/或丢失 与在速率控制算法操作于第一模式中时所测量的延迟和/或丢失相比较。如果第二和第一 模式之间的延迟和/或丢失中的差异超出预确定的延迟和/或丢失量,则过程500行进到步 骤S502,其中速率控制算法继续在第一模式中操作。
[0081] 如果延迟和/或丢失通过切换回到第一模式而变得明显更低,则速率控制算法应 当停留在第一模式中。运通过过程500行进回到步骤S502来表示(不重置ttimer的值并且不再 次重启计时器,因为运在步骤S516处完成)。
[0082] 如果延迟和丢失保持类似,即在步骤S518处确定第二和第一模式之间的延迟和/ 或丢失中的差异没有超出预确定的延迟和/或丢失量,则过程500行进到步骤S519,其中将 ttimer的值与tswitch_interval比较。如果在步骤S519处时间段tswitch_interval尚未逝去,则过程500 行进回到S518,其中速率控制算法检查网络条件是否改变。一旦自进入第一模式起已经逝 去时间段tswitch_interval,过程500行进到步骤S506,其中速率控制算法切换回到在第二模式 中操作,其中参数max_bandwidth被设定为用于第一模式中的max_bandwidth的值和之前的 第二模式中的所记录值的平均。
[0083] 如果丢失和延迟中的差异是小的但是所观察到的接收速率(avg_re
当前第4页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1