CN104396215B - 用于带宽分配和估计的方法和装置 - Google Patents
用于带宽分配和估计的方法和装置 Download PDFInfo
- Publication number
- CN104396215B CN104396215B CN201380034733.0A CN201380034733A CN104396215B CN 104396215 B CN104396215 B CN 104396215B CN 201380034733 A CN201380034733 A CN 201380034733A CN 104396215 B CN104396215 B CN 104396215B
- Authority
- CN
- China
- Prior art keywords
- data rate
- network data
- network
- bandwidth
- communication
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0876—Network utilisation, e.g. volume of load or congestion level
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/80—Responding to QoS
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
- H04L47/76—Admission control; Resource allocation using dynamic resource allocation, e.g. in-call renegotiation requested by the user or requested by the network in response to changing network conditions
- H04L47/765—Admission control; Resource allocation using dynamic resource allocation, e.g. in-call renegotiation requested by the user or requested by the network in response to changing network conditions triggered by the end-points
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
- H04L47/78—Architectures of resource allocation
- H04L47/781—Centralised allocation of resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/40—Support for services or applications
- H04L65/402—Support for services or applications wherein the services involve a main real-time session and one or more additional parallel non-real time sessions, e.g. downloading a file in a parallel FTP session, initiating an email or combinational services
- H04L65/4025—Support for services or applications wherein the services involve a main real-time session and one or more additional parallel non-real time sessions, e.g. downloading a file in a parallel FTP session, initiating an email or combinational services where none of the additional parallel sessions is real time or time sensitive, e.g. downloading a file in a parallel FTP session, initiating an email or combinational services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/40—Support for services or applications
- H04L65/403—Arrangements for multi-party communication, e.g. for conferences
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
- H04L47/82—Miscellaneous aspects
- H04L47/822—Collecting or measuring resource availability data
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Environmental & Geological Engineering (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
公开了用于带宽分配和估计的系统和方法。计算机经由多个活动流进行通信,每个活动流具有类型。计算机确定是启用还是禁用带宽管理。当确定启用带宽管理时,计算机估计总可用带宽,针对每个流确定所请求的带宽,并在活动流之间动态地分配总可用带宽的一部分。当确定禁用带宽管理时,计算机放弃在流之间动态地分配带宽。
Description
相关申请的交叉引用
本申请根据35U.S.C.§119(e)要求于2012年5月1日递交的题为“Method andApparatus for Bandwidth Allocation and Estimation”的美国临时申请No.61/641,196的优先权,其全部内容通过引用而在此加入。
背景技术
电话会议、视频会议和桌面共享会话可用来实现在处于不同地理位置的多方之间的通信。
发明内容
在一些方面中,题述技术涉及一种用于管理通信流的带宽利用的方法。所述方法包括:在计算设备处经由通信应用中的多个活动流进行通信,其中多个活动流中的每一个具有类型。所述方法包括:基于所述多个活动流中的至少一个的类型来确定是启用还是禁用通信应用内的带宽管理。所述方法包括:当确定启用通信应用内的带宽管理时,估计计算设备处的总可用带宽,基于所述多个活动流中的每一个的类型为所述多个活动流中的每一个确定请求带宽,以及基于请求带宽在计算设备处在所述多个活动流之间经由通信应用动态地分配总可用带宽的至少一部分。所述方法包括:当确定禁用通信应用内的带宽管理时,放弃在计算设备处在多个活动流之间经由通信应用动态地分配带宽。
在一些方面中,题述技术涉及一种用于管理带宽利用的非瞬时机器可读介质。所述机器可读介质存储用于经由在连接到网络的计算机器处执行的通信应用监控一个或多个网络度量的指令,其中通信应用被配置为在正常操作模式或紧急操作模式中运行。所述机器可读介质存储用于基于所监控的一个或多个网络度量来估计计算机器处的总可用带宽的指令。所述机器可读介质存储用于以第一网络数据速率在正常操作模式中运行通信应用的指令。所述机器可读介质存储用于基于所监控的一个或多个网络度量进入紧急操作模式的指令。所述机器可读介质存储用于基于所监控的一个或多个网络度量的改变来确定通信应用能够针对第一方向上的通信返回正常操作模式的指令。所述机器可读介质存储用于针对第一方向上的通信进入正常操作模式的指令。所述机器可读介质存储用于以第一网络数据速率运行第一网络数据速率测试的指令。所述机器可读介质存储用于进行以下操作的指令:如果第一网络数据速率测试成功,则将第一方向上的当前网络数据速率设置为第一网络数据速率。所述机器可读介质存储用于进行以下操作的指令:如果第一网络数据速率测试失败,则测量在第一网络数据速率测试期间的有效吞吐量(goodput)速率,以及以所述有效吞吐量速率运行第二网络数据速率测试。所述机器可读介质存储用于进行以下操作的指令:如果第二网络数据速率测试成功,则将当前网络数据速率调整为有效吞吐量速率。所述机器可读介质存储用于进行以下操作的指令:如果第二网络数据速率测试失败,则从在紧急操作模式期间实现的网络数据速率开始逐渐增加当前网络数据速率。
在一些方面中,题述技术涉及一种用于管理带宽利用的系统。系统包括一个或多个处理器、用于连接到网络的网络接口和存储指令的存储器。所述存储器存储用于经由通过一个或多个处理器执行的通信应用来监控一个或多个网络度量的指令,其中通信应用被配置为在正常操作模式或紧急操作模式中运行。所述存储器存储用于基于所监控的一个或多个网络度量来估计网络中的总可用带宽的指令。所述存储器存储用于以第一网络数据速率在正常操作模式中运行通信应用的指令。所述存储器存储用于基于所监控的一个或多个网络度量进入紧急操作模式的指令。所述存储器存储用于基于所监控的一个或多个网络度量的改变来确定通信应用能够针对第一方向上的通信返回正常操作模式的指令。所述存储器存储用于针对第一方向上的通信进入正常操作模式的指令。所述存储器存储用于以第一网络数据速率运行第一网络数据速率测试的指令。所述存储器存储用于进行以下操作的指令:如果第一网络数据速率测试成功,则将第一方向上的当前网络数据速率设置为第一网络数据速率。所述存储器存储用于进行以下操作的指令:如果第一网络数据速率测试失败,则测量在第一网络数据速率测试期间的有效吞吐量速率,以及以所述有效吞吐量速率运行第二网络数据速率测试。所述存储器存储用于进行以下操作的指令:如果第二网络数据速率测试成功,则将当前网络数据速率调整为有效吞吐量速率。所述存储器存储用于进行以下操作的指令:如果第二网络数据速率测试失败,则从在紧急操作模式期间实现的网络数据速率开始逐渐增加当前网络数据速率。
附图说明
图1A是示例通信系统的框图;
图1B是示例通信系统的框图;
图2是示例通信设备的框图;
图3是示例带宽管理系统的框图;
图4示出了用于带宽分配和估计的示例系统;
图5示出了图4的客户端计算设备的示例;
图6示出了用于管理通信流的带宽利用的示例过程;
图7A-7B示出了用于管理带宽利用的示例过程
图8概念性地示出了实现了题述技术的一些实现的示例电子系统。
具体实施方式
图1A是可用于这里公开的实施例的通信系统100的框图。通信系统100包括多个通信设备120A、120B,它们经由通信网络110参与会议会话。在一些实施例中,通信设备120A、120B可参与彼此之间的会议会话。虽然示出了两个通信设备,但任意数量的通信设备120A、120B可参与会议会话。会议会话可以允许在通信设备120A、120B之间共享桌面屏幕内容128A、视频145A和音频147A。在一些实施例中,会议会话允许在通信设备120A、120B之间同时进行双向数据、音频和视频信号传输。
通信设备120A、120B可以是移动(例如无线)或非移动(例如桌面)通信设备(具有视频/音频和桌面屏幕共享能力)。在一些实施例中,可以使用能够支持实时对等通信以及支持提供桌面屏幕共享会话和用户交互的应用的任意通信设备。可用于这里公开的实施例的通信设备120A、120B的示例包括但不限于移动电话、个人数字助理、便携式电视、膝上型计算机、数字视频/音频录制机等。
在一些实施例中,一个通信设备120A、120B可充当主机通信设备,而系统中剩余的通信设备可充当客户端通信设备。在一些实施例中,主机通信设备可以是会议会话中的主持人通信设备,而剩余的通信设备可以是会议会话中的观众设备。
每个通信设备120A、120B包括显示器128A、128B,其用于显示共享桌面屏幕内容135A、135B、共享视频内容145A、145B、和/或共享音频内容147A、147B。在某些实施例中,显示器128A、128B可以是内置显示器。在一些实施例中,显示器128A、128B可以是与通信设备120A、120B耦合(例如无线地或通过诸如网络连接等的物理连接)的分离单元。通信设备120A、120B的视频/音频能力可由内置于通信设备120A、120B中的模块提供。在某些实施例中,向通信设备120A、120B提供视频/音频能力的模块可以是与通信设备120A、120B耦合的独立单元。
通信设备120A、120B可以直接地或通过中间通信设备(未示出)进行通信。例如,在一些实施例中,通信服务器(示于图1B中)可以便于通信设备120A、120B之间的通信。在一些实施例中,通信设备120A、120B可以通过安全和/或加密通信链路进行通信。
通信网络110可以是高带宽和/或带宽受限的通信网络。在一些实施例中,通信网络110可以是无线通信网络。在某些实施例中,通信网络110可以是局域网(LAN)、城域网(MAN)或广域网(WAN)(比如因特网)。在一些实施例中,网络110可包括一个或多个通用网络(例如因特网、LAN等)和/或其他网络(例如互联网协议(IP)网络)的一个或多个部分。
根据所使用的通信设备120A、120B的类型(例如移动或桌面),通信设备120A、120B通过适当的通信链路125A、125B(例如无线和/或有线通信链路)以及通过适当的通信网络110参与会议会话。
在一些实施例中,可确定在会议会话期间任意给定时刻的可用带宽量。在某些实施例中,带宽估计器(随后参照图3示出)可用来估计可用带宽量。
带宽估计器可位于参与会议会话的通信设备120A、120B内、位于通信网络110的下游或通信网络110内。在某些实施例中,带宽估计器可与监控组件(随后参照图3示出)耦合,该监控组件观测多个网络度量(例如延迟、分组丢失等)并确定带宽估计器进行操作应该采用的设置(即模式)。监控组件可位于带宽估计器的内部或位于带宽估计器的外部,例如位于网络内和/或位于通信设备内。
在一些实施例中,带宽估计器可运行于正常设置(即正常模式),其指示网络110处于其典型/正常操作状况。备选地,在某些实施例中,带宽估计器可运行于紧急设置(例如非正常模式),其指示因素(比如大量交叉业务(cross traffic))可能正改变网络的正常操作状况。
在一些实施例中,带宽分配器(随后参照图3示出)可用来在活动业务流之间分割对于会议会话可用的估计带宽。活动的业务流可包括在通信设备120A、120B之间共享的桌面屏幕数据内容135A、135B、视频145A、145B、或音频147A、147B。在一些实施例中,每个业务流在被激活时向带宽分配器进行登记。在一些实施例中,当向带宽分配器进行登记之后,业务流可规定最小带宽需要。带宽分配器在确保满足每个流所需的最小带宽的同时向每个流分配带宽。业务流所需的所有最小带宽级别之和指示用于执行会议会话的最小带宽需要。
图1B是可用于这里公开的实施例的通信系统的框图。在一些实施例中,通信设备120A、120B可使用一个或多个通信服务器来促进彼此的通信。例如,如图1B所示,在一些实施例中,通信设备120A、120B可连接到促进数据业务149(包括通信设备之间的共享桌面屏幕内容135A)的传输的通信服务器150。在某些实施例中,音频服务器160(音频桥160)可用来促进参与会议会话的通信设备120A、120B之间的音频业务159的传输。此外,在一些实施例中,视频服务器170可用来促进通信设备120A、120B之间的共享视频业务169的传输。
通信服务器150、音频桥160和视频服务器170可位于网络110内或位于网络110的下游。
图2是可用于这里公开的实施例的通信设备120A、120B的框图。
设备120A、120B可包括处理器230(例如中央处理单元或CPU),其执行设备的操作,执行各种指令以及操纵来自主存储器220的数据结构。
处理器230可经由输入/输出(I/O)设备接口240耦合到多个接口。I/O设备接口240可包括用来与多个输入和/或输出设备(比如键盘或鼠标)以及与处理器230对接的逻辑,并允许在处理器230和其他组件之间传输信号。此外,接口设备(比如扬声器210、麦克风207、外围设备203和显示器128)可用来传输去往/来自处理器230和主存储器220的信号。在一些实施例中,输入/输出接口240可包括USB端口(未示出)。
在一些实施例中,通信设备120A、120B可包括网络设备接口250,其向设备提供对通信网络110的接入。在一些实施例中,输入/输出网络接口240可用来发送和接收用于根据这里描述的实施例估计和分配带宽的信号。
主存储器220可以是计算机可读存储器,并且可包括非易失性存储器设备的组合。主存储器220还可包括操作系统270,其实现多种传统操作系统功能,包括:对多个设备(比如数据库存储设备260)的存储器管理和受控访问以及任务和处理调度。数据存储设备260可包括用于这里公开的实施例的内容,比如图像、文本、视频、音频和计算机应用。主存储器220可被配置为保存多种软件265和计算机可执行指令以及包括计算机可执行指令的数据结构和实现这里描述的技术的方面的数据结构。
例如,在一些实施例中,软件265可实现用于估计针对会议会话的可用带宽量的过程。在一些实施例中,软件270还可实现用于分配估计带宽和在活动业务流之间分割针对会议会话的可用估计带宽的过程。
如前所述,备选地,在一些实施例中,位于网络110(示于图1)中的应用程序(未示出)或模块(未示出)可估计针对会议会话的可用带宽量和/或在活动业务流之间分割对于会议会话可用的估计带宽。
图3是根据这里公开的某些实施例的带宽管理系统300的框图。带宽管理系统可包括带宽估计器310和带宽分配器330。带宽估计器310确定针对引导进/出通信设备120A、120B的业务流301的可用带宽量。带宽分配器使用估计的可用带宽340来在业务流301之间分隔可用带宽并向每个业务流分配适当的带宽350。
在某些实施例中,带宽估计器310、带宽分配器330或监控组件320中的至少一个可位于通信设备120A、120B内。在一些实施例中,带宽估计器310、带宽分配器330或监控组件320中的至少一个或一个的一部分可位于通信网络110、通信服务器150、音频桥160或视频服务器170中的至少一个内。
在一些实施例中,带宽估计器310可操作于正常设置。正常设置可指示网络处于正常操作状态(例如具有期望的且典型的延迟或业务)。在一些实施例中,带宽估计器320可操作于紧急设置。紧急设置可指示网络处于非正常状态。例如,紧急状态可指示大量交叉业务。在某些实施例中,监控组件320可监控网络度量319(比如通信网络110中的延迟和分组丢失)以及确定带宽估计器310在任意给定时刻进行操作应采用的设置(即操作模式322)。
在某些实施例中,带宽估计器310可通过周期性地监控和测试护送(convoy)进/出通信设备120A、120B的数据速率来估计可用带宽量。在一些实施例中,在每个数据速率测试期间,增加(例如使用带宽分配器330)数据速率并监控(例如使用监控组件320)任何由此得到的网络度量的改变,以确定数据速率增加是否成功。
在某些实施例中,当转变到紧急设置时,数据速率可减少预定因子(例如使用带宽分配器330),以便为交叉业务留出空间。在某些实施例中,预定因子可以是一半。一旦数据速率降低,就不再对数据速率进行任何改变,除非观测到网络度量发生重大改变(例如大量分组丢失)。在一些实施例中,在观测到网络度量319发生重大改变(例如大量分组丢失)的情况下,可进一步降低数据速率。
在某些实施例中,监控组件320可确定紧急设置不再有效。监控组件320可响应于网络度量319返回到它们的正常状况来确定这一从紧急设置的转出。例如,在一些实施例中,监控组件320可响应于观测到网络度量319(比如延迟和分组丢失)已经返回到它们的正常期望值来确定这一从紧急设置的转出。
在一些实施例中,可进行从紧急设置的“快速恢复”。在一些实施例中,如上所述,可通过尝试紧急模式前速率测试(例如以在进入紧急模式之前存在的网络数据速率)来完成从紧急设置的恢复,由此减少恢复时间。在一些实施例中,在快速恢复数据速率测试失败(这可能意味着网络110尚未返回到其紧急状态之前的状态)的情况下,带宽估计器110可通过“慢提升(slow ramp-up)”发现新的可用带宽。当使用慢提升确定可用带宽时,带宽估计器110可进行多次数据速率测试,在每次数据速率测试期间,增加(例如使用带宽分配器330)数据速率并监控(例如使用监控组件320)任何由此得到的网络度量的改变,以确定数据速率增加是否成功。
在某些实施例中,在快速恢复速率测试失败的情况下,可以执行第二数据速率测试,而不是直接回退到慢提升。在一些实施例中,第二数据速率测试可以以在失败的快速恢复测试期间获得的有效吞吐量速率评估网络100的性能。在一些实施例中,有效吞吐量速率可指示应用级别吞吐量或由网络110向/从通信设备120A、120B递送的有用信息的量。这涉及网络110已经恢复到某一程度但尚未恢复到紧急模式前级别的情况下的快速恢复。
在一些实施例中,当在通信设备120A、120B之间没有共享视频内容且所共享的业务流是音频(语音)内容和/或屏幕内容135A、135B时,可以进行活动带宽管理。在没有共享视频内容的情况下,管理音频(语音)内容和/或屏幕内容135A、135B会话涉及受控屏幕共享突发并且移除可由音频流引起的任何干扰。
备选地,在某些实施例中,当除了共享的桌面会话和/或任何共享音频之外在通信设备120A、120B之间还共享了视频内容时,可进行活动带宽管理。
某些实施例可涉及低带宽连接上的改善的屏幕共享性能。具体地,在某些实施例中,当屏幕共享是活动的时,可增加总体带宽利用。例如,在一种实施例中,当屏幕共享是活动的时,总体带宽利用可从80%增加到95%。在一些实施例中,在持续的突发的情况下,可增加分配给屏幕共享会话的带宽。例如,在一个实施例中,分配给屏幕共享会话的带宽可从50%增加到85%。
在一些实施例中,针对非常低带宽的连接,可向屏幕共享分配施加下限,以向屏幕共享会话135A、135B许可比可用的带宽更多的带宽,并且让传输控制协议(TCP)使用分配给屏幕共享会话135A、135B的附加带宽提供拥塞控制,从而得到最佳可能的屏幕共享性能。在视频内容共享会话是活动的情况下,当屏幕共享突发是活动的时,向屏幕共享会话许可附加带宽可导致共享视频内容145A、145B的质量下降。
如上所述,带宽估计器310可操作于两个设置/模式,即正常模式和紧急模式。在数据传输的一个方向(下游或上游)处于紧急模式的情况下,某些实施例可阻止在另一方向上进行数据速率测试。然而,在某些实施例中,即使一个方向处于紧急模式,也可将提升能力添加到传输的另一方向。
如上所述,带宽分配器330可在活动业务流301(音频共享、视频共享145A、145B和/或屏幕共享135A、135B)之间分割可用带宽(按照带宽估计器310所报告的)。
在一些实施例中,当被激活时,每个业务流301可以向带宽分配器330进行登记。作为其登记简档的一部分,每个业务流301可规定最小带宽需要。在一些实施例中,保证满足最小带宽需要。所有最小需要之和是用于进行会议会话的最小带宽需要。
在某些实施例中,每个业务流301(在其寿命期间)可向带宽分配器330表达当前带宽需求。例如,在一个实施例中,互联网协议语音(VoIP)音频流可具有可以等于其最小需要的静态当前需求。在一些实施例中,针对视频145A、145B和屏幕共享145A、145B流,需求可响应于每个流301中的活动级别发生改变。
在一些实施例中,带宽分配器330可通过向每个活动流301初始许可其最小需要来进行操作。当处理VoIP流时,由于需求不会增加到超过最小需要,所以不需要对带宽分配进行进一步的修改。
如果在已经满足最小带宽需要之后还剩余任何带宽,则在屏幕共享和视频流之间按比例分配剩余带宽。具体地,如果不存在当前屏幕共享活动135A、135B,则可将所有多余带宽分配给共享视频流145A、145B。然而,如果屏幕共享流135A、135B具有正在进行的活动,则其被给予多于带宽的一部分,假定其对此具有充分的需求。在一个实施例中,多余带宽的所分配的部分可达到多余带宽的50%。剩余带宽分配给视频流145A、145B。
在一些实施例中,视频流可在每次屏幕共享变得活动时暂时地适应更低带宽许可。在一些实施例中,为了将该暂时带宽减少与更持久的带宽减少(比如当连接带宽自身下降时)相区分,可基于短期或长期来完成带宽分配。长期分配可表示当屏幕共享135A、135B是非活动的时共享视频内容145A、145B可获得的带宽量。在一些实施例中,视频流可使用长期带宽分配来配置其编解码器等。在某些实施例中,当短期分配发生改变时(例如当屏幕共享是活动的时),视频流可以不执行任何显著的重配置并且假定屏幕共享活动是短暂的。
在一些实施例中,短期/长期许可可用来在屏幕共享活动期间最优化视频性能。
由于在屏幕共享和视频流之间对多余带宽的均等分割可导致屏幕共享性能下降(尤其是在低带宽连接上),所以某些实施例可增加分配给屏幕共享会话135A、135B的多余带宽。例如,在一个实施例中,在持续活动(例如活动持续超过2秒)的情况下,分配给屏幕共享会话135A、135B的多余带宽可从50%增加到85%。
在一些实施例中,为了获得最佳可能屏幕共享性能,当存在活动时可向屏幕共享分配施加下限度量,由此向屏幕共享会话分配与可用带宽相比更多的带宽,以及让TCP使用分配给屏幕共享会话的附加带宽来提供拥塞控制。这可导致在屏幕共享会话是活动的时视频质量下降。
在一些实施例中,当屏幕共享会话135A、135B是活动的时可应用预定等待时间,以便在屏幕共享是活动的时降低高许可和低许可之间的反复。
图4示出了用于带宽分配和估计的示例系统400。如图所示,系统400包括经由网络接入点420连接到网络430的客户端计算设备410。网络430包括与音频通信服务器440、视频通信服务器450和屏幕共享服务器460(它们都被配置为经由网络430与客户端计算设备410进行通信)的连接。
客户端计算设备410可以是膝上型计算机、台式计算机、平板计算机、移动电话、个人数字助理(PDA)、电子音乐播放器等。客户端计算设备410可存储用于进行通信会话(例如在线会议、使用屏幕共享的语音呼叫、视频呼叫等)的通信应用。通信会话是结合服务器440、450和460中的一个或多个在网络430上进行的。在一些实现中,客户端计算设备410与服务器440、450或460的通信受带宽的限制。通常,带宽限制是由于客户端计算设备410和网络接入点420之间的连接415或网络接入点420和网络430之间的连接425中的受限带宽导致的。在一些示例中,服务器440、450和460和网络430之间的连接444、455和465是具有比连接415或425更高的带宽限制的高带宽连接。因此,客户端计算设备410可假定客户端计算设备410和服务器440、450和460中的每一个之间存在相同的或近似相同的带宽。例如,客户端计算设备410和服务器440之间的带宽等于客户端计算设备410和服务器450之间的带宽,其还等于客户端计算设备410和服务器460之间的带宽。下面结合图5对客户端计算设备410进行更为详细的描述。
网络接入点420可包括用来将客户端计算设备410连接到网络430的一个或多个调制解调器、路由器或蜂窝接入点。网络430可以是因特网、局域网、广域网、蜂窝网络、内联网、虚拟私有网络等。
音频通信服务器440被配置为通过在客户端计算设备410和远程计算设备之间提供音频流来支持客户端计算设备410和远程计算设备之间的音频通信。视频通信服务器450被配置为通过在客户端计算设备410和远程计算设备之间提供视频流来支持客户端计算设备410和远程计算设备之间的视频通信。屏幕共享服务器460被配置为通过在客户端计算设备410和远程计算设备之间提供屏幕共享流来支持客户端计算设备410和远程计算设备之间的音频通信。如图所示,音频通信服务器440、视频通信服务器450和屏幕共享服务器460实现于三个不同的机器上。然而,在一些示例中,服务器440、450和460中的两个或更多个可实现于相同的机器上。在一些示例中,系统400可缺少服务器440、450和460中的一个或多个并且题述技术可在没有服务器440、450和460中的一个或多个的情况下实现。在一些示例中,作为服务器440、450和460中的一个或多个的补充或替换,可结合题述技术使用其他通信服务器,比如文件下载服务器或文件上传服务器。
图5示出了图4的客户端计算设备410的示例。如图所示,客户端计算设备410包括中央处理单元(CPU)502、网络接口504和存储器506。CPU502包括一个或多个处理器。CPU502被配置为执行存储于计算机可读介质(例如存储器506)中的指令。网络接口504被配置为允许客户端计算设备410在网络(例如网络430)中发送和接收数据。网络接口504可包括一个或多个网络接口卡(IC)。存储器506存储数据和/或指令。存储器506可以是缓存单元、存储单元、内部存储器单元或外部存储器单元中的一个或多个。如图所示,存储器206包括通信应用508。
通信应用508被配置为经由客户端计算设备410与连接到网络430的一个或多个远程计算设备进行通信会话。通信会话可包括在线会议、语音呼叫、视频呼叫、屏幕共享会话等。通信会话可结合服务器440、450和460中的一个或多个进行。如图所示,通信应用508包括音频流510、视频流512、屏幕共享流514和带宽管理模块516。
音频流510可包括客户端计算设备410和通信会话中所涉及的远程计算单元之间的结合音频通信服务器440发送的音频传输(例如语音传输)。视频流512可包括客户端计算设备410和通信会话中所涉及的远程计算单元之间的结合视频通信服务器450发送的视频传输(例如经由客户端计算设备410或远程计算设备的相机拍摄的视频)。屏幕共享流514可包括客户端计算设备410和通信会话中所涉及的远程计算单元之间的结合屏幕共享服务器460发送的屏幕共享传输。在一些实现中,除了以上所列的流之外,通信应用508还可具有其他流,或者可以缺少以上所列的流510、512或514中的一个或多个。
带宽管理模块516被配置为管理通信应用508的带宽利用,例如流510、512或514的带宽利用。如图所示,带宽管理模块包括带宽管理启用模块518、带宽估计模块520、带宽分配模块522和操作模式控制模块524。
带宽管理启用模块518被配置为基于至少一个活动流(例如具有音频类型的音频流510、具有视频类型的视频流512或具有屏幕共享类型的屏幕共享流514)的类型确定是启用还是禁用带宽管理。在一些示例中,如果视频流512是活动的,则启用带宽管理。在一些示例中,如果视频流512是非活动的,则禁用带宽管理。在一些示例中,音频流510是活动的,屏幕共享流514是活动的,且视频流512是非活动的,带宽管理被禁用。在一些示例中,所有三个流510、512或514都是活动的,带宽管理被启用。
带宽估计模块520被配置为估计客户端计算设备410处的总可用带宽。假定由客户端计算设备410到网络接入点420的连接415和/或由网络接入点420到网络430的连接425限制总可用带宽。因此,客户端计算设备和服务器440、450和460中的每一个之间的总可用带宽是等同的,且可能只需要服务器440、450和460中的仅一个服务器或不同的服务器能够辅助客户端计算设备410经由带宽估计模块520估计可用带宽。
带宽分配模块522被配置为(在由带宽管理启用模块518启用带宽管理的情况下)针对多个活动流510、512或514中的每一个确定最小请求带宽和对附加带宽的期望。可由服务器440、450或460将该信息提供给客户端计算设备410。带宽分配模块522被配置为基于最小请求带宽和对附加带宽的期望在计算设备处在多个活动流510、512或514之间动态地分配总可用带宽的至少一部分(例如在80%与95%或100%之间)。
根据一些示例,由于音频是以大体恒定的速率和质量发送的,所以音频流510具有最小请求带宽并且不具有对附加带宽的期望。由于较大的带宽可改善视频质量,所以视频流512具有最小请求带宽以及对附加带宽的较大(大体恒定)期望。由于屏幕共享流514可在被共享的屏幕显示发生改变时发送大量数据且在其他时刻发送相对较少的数据,因此屏幕共享流514具有最小请求带宽和对附加带宽的可变期望。
在由带宽管理启用模块518禁用带宽管理的情况下,客户端计算设备410可放弃在客户端计算设备410处的多个活动流510、512或514之间动态地分配带宽。
操作模式控制模块524被配置为在正常操作模式(按照操作模式控制模块524中的正常操作模式模块528的定义)和紧急模式(按照操作模式控制模块524中的紧急操作模式模块526的定义)之间交替。操作模式控制模块524被配置为监控网络430中的分组丢失率和/或分组延迟率。如果分组丢失率高于分组丢失阈值或分组延迟率高于分组延迟阈值,则操作模式控制模块524可通过调用紧急操作模式模块526进入紧急模式。否则,操作模式控制模块526可通过调用正常操作模式模块528进入或保持在正常模式。
紧急操作模式模块526当被调用时将客户端计算设备410的通信应用508置于紧急操作模式。紧急操作模式模块526将网络数据速率设置为对应于紧急操作模式的网络数据速率。紧急操作模式模块526使得客户端计算设备410的通信应用508忽略传输中的分组延迟。紧急操作模式模块526使得客户端计算设备410的通信应用508在检测到分组丢失率高于预定分组丢失量时进一步将操作网络数据速率从对应于紧急操作模式的网络数据速率降低。
正常操作模式模块528当被调用时将客户端计算设备410的通信应用508置于正常操作模式。正常操作模式模块528以超出当前操作网络数据速率的网络数据速率运行网络数据速率测试。如果以超出当前操作网络数据速率的网络数据速率的网络数据速率测试是成功的,则正常操作模式模块528增加当前操作网络数据速率。
图6示出了用于管理通信流的带宽利用的示例过程600。
过程600开始于步骤610,在步骤610,计算设备(例如客户端计算设备410经由通信应用508的操作)经由多个活动流(例如流510、512或514)进行通信(例如发送或接收数据)。多个活动流中的每一个具有类型(例如音频、视频、屏幕共享、文件下载、文件上传等)。多个活动流中的每一个的类型的特性为以下中的一个或多个:(i)固定或可变带宽需求;(ii)优先级级别;(iii)突发(busty)或平滑的业务;以及(iv)最大请求带宽值。例如,音频类型流具有固定的带宽需求、高优先级级别、平滑业务和低最大请求带宽值。视频类型流具有可变带宽需求、低优先级级别(可能不如音频或屏幕共享重要)、突发业务和高最大请求带宽值。屏幕共享类型流具有可变带宽需求、高优先级级别、突发业务和高最大请求带宽值。
在步骤620中,计算设备基于多个活动流中的至少一个的类型确定是启用还是禁用通信应用内的带宽管理。例如,如果视频流(或具有可变带宽需求和高最大请求带宽值的另一流)是活动的,则计算设备可确定启用通信应用内的带宽管理,否则,禁用通信应用内的带宽管理。如果在通信应用中禁用带宽管理,则仍然可以在通信应用之外管理带宽,例如经由计算设备的操作系统或经由网络。如果确定启用带宽管理,则过程600继续到步骤630。如果确定禁用带宽管理,则过程600继续到步骤625。
在步骤625中,当确定禁用通信应用内的带宽管理时,计算设备放弃在计算设备处在多个活动流之间经由通信应用动态地分配带宽。在步骤625之后,过程600结束。
在步骤630中,当确定启用通信应用内的带宽管理时,计算设备估计计算设备处的总可用带宽。在一些示例中,计算设备基于计算设备和第一服务器(例如服务器440、450或460之一)之间的数据传输来计算计算设备和第一服务器之间的上游和下游带宽。计算设备基于计算设备和第一服务器之间计算出的上游或下游带宽来估计计算设备和第二服务器(例如服务器440、450或460中的另一个)之间的上游和下游带宽。计算设备和第一服务器之间的上游和下游带宽可以等于计算设备和第二服务器之间的上游和下游带宽。
在步骤640中,计算设备基于多个活动流中的每一个的类型为多个活动流中的每一个确定最小请求带宽和对附加带宽的期望。在一些情况下,流与服务器相关联,并且服务器提供最小请求带宽和对附加带宽的期望。例如,音频流510与音频通信服务器440相关联;视频流512与视频通信服务器450相关联;以及屏幕共享流与屏幕共享服务器460相关联。在一些情况下,通信应用(例如通信应用508)存储由通信应用使用的每个流的最小请求带宽和对附加带宽的期望。
在步骤650中,计算设备基于最小请求带宽和对附加带宽的期望在计算设备处在多个活动流之间经由通信应用动态地分配总可用带宽(在步骤630中估计的)的至少一部分。根据一些示例,计算设备向多个活动流中的每一个至少指派最小请求带宽。计算设备基于总可用带宽的所述部分和针对多个活动流的最小请求带宽之和之间的差别确定剩余带宽。计算设备基于对附加带宽的期望和基于多个活动流中的至少一个的类型的用户体验优化对剩余带宽进行分配。在一些示例中,活动流包括音频流、视频流和屏幕共享流。剩余带宽在视频流和屏幕共享流之间动态地分配,且没有任何剩余带宽指派给音频流,音频流只使用音频流的最小请求带宽。例如,50%的剩余带宽指派给视频流,50%的剩余带宽指派给屏幕共享流。在一些示例中,如果计算设备确定屏幕共享活动持续阈值时段(例如两秒钟),则计算设备响应于屏幕共享活动持续阈值时段而增加向活动屏幕共享流的剩余带宽分配,并减少向活动视频流的剩余带宽分配。例如,可向屏幕共享流指派剩余带宽的85%,可向视频流指派剩余带宽的15%。在步骤650之后,过程600结束。
图7A-7B示出了用于管理带宽利用的示例过程700。
如图7A所示,过程700开始于步骤710,在步骤710中,计算设备(例如客户端计算设备410)在以第一网络数据速率在正常操作模式(例如使用正常操作模式模块528)中运行通信应用(例如通信应用508)的同时监控分组丢失率或分组延迟率。
在步骤720中,计算设备响应于检测到分组丢失超过分组丢失的阈值量或分组延迟超过分组延迟的阈值量而进入紧急操作模式(例如使用紧急操作模式模块526)。
在步骤725中,计算设备基于分组丢失率或分组延迟率的改变确定返回到正常操作模式。计算设备然后返回到正常操作模式(例如使用正常操作模式模块528)。
在步骤730中,计算设备(例如使用操作模式控制模块524)以第一网络数据速率运行第一网络数据速率测试。
在步骤740中,计算设备确定第一网络数据速率测试是否成功。如果是的话,则过程700继续步骤745。如果否的话,则过程700继续图7B的步骤750。
在步骤745中,如果第一网络数据速率测试是成功的,则计算设备将操作网络数据速率调整为第一网络数据速率。在步骤745之后,过程700结束。
如图7B所示,在步骤750中,如果第一网络数据速率测试失败,则计算设备测量第一网络数据速率测试期间的有效吞吐量速率。
在步骤760中,计算设备以有效吞吐量速率运行第二网络数据速率测试。
在步骤770中,计算设备确定第二网络数据速率测试是否成功。如果是的话,则过程700继续步骤775。如果否的话,则过程700继续步骤780。
在步骤775中,如果第二网络数据速率测试是成功的,则计算设备将操作网络数据速率调整为有效吞吐量速率。在步骤775之后,过程700结束。
在步骤780中,如果第二网络数据速率测试失败,则计算设备从在紧急操作模式期间实现的网络数据速率开始逐渐增加操作网络数据速率。在一些示例中,在正常操作模式期间实现的一个网络数据速率至少是在紧急操作模式期间实现的一个网络数据速率的两倍。
在一些示例中,计算设备基于网络度量确定计算设备能够在网络业务的第一方向(例如进入计算设备)上而不是网络业务的第二方向(例如离开计算设备)上从紧急操作模式返回到正常操作模式。在这些情况下,计算设备能够针对第一方向上的业务返回正常操作模式,而针对第二方向上的业务仍维持紧急模式。在这些情况中,计算设备可以跳过过程700中的步骤730-775并且从在紧急操作模式期间实现的网络数据速率开始逐渐增加第一方向上的操作网络数据速率。可跳过第一网络数据速率测试(例如步骤730)和第二网络数据速率测试(例如步骤760)。
在一些示例中,计算设备放弃向位于计算设备外部的服务器(服务器440、450或460)发送对计算设备的操作模式(例如紧急操作模式)的指示。然而,计算设备可以向服务器发送对从服务器发送到计算设备的数据(例如在与服务器相关联的流中从服务器发送到计算设备的数据)的操作网络数据速率(这是在计算设备处确定的)的指示。从服务器发送到计算设备的数据的操作网络数据速率然后可以在服务器处或计算设备处被执行。在步骤780之后,过程700结束。
根据一些示例,带宽管理系统包括两个主要组件:估计(例如在任意给定时刻确定多少带宽是可用的)和分配(例如确定如何在活动媒体流之间分割可用带宽)。
在客户端计算设备处或端点处执行带宽算法。端点作出针对上游和下游方向的所有涉及带宽的决定并从而指示各个服务器。在一些情况下,为了带宽管理的目的,在服务器之间不存在直接通信或协调。
端点可以估计其到一个服务器的上游和下游带宽并假定该估计对所有服务器都成立。由于端点通常运行于有限容量用户网络,所以当服务器典型地位于高容量数据中心中时,带宽瓶颈典型地接近端点并且在到所有服务器的路径之间是同样的。因此,在大多数情况下,估计到任意一个服务器的带宽就足够了。这一技术的一个附带好处在于只有一个服务器需要向端点提供带宽管理支持。
带宽估计的一个目标是确定在任意给定时刻多少带宽是可用的。
估计过程可包括短初始估计步骤,其提供对网络带宽的快速粗略估计。
在初始估计步骤之后,估计算法可操作于以下两种模式之一:“正常”(指示网络处于其正常状态)和“紧急”(指示网络处于“异常”状态,比如存在大量交叉业务时)。可基于网络度量(分组丢失和延迟)的观测值来选择任意给定时刻的操作模式。
在正常模式中,算法允许周期性“速率测试”以测试可用带宽。在每个速率测试中,算法稍微增加线上的数据速率并观测度量,以确定速率增加是否成功。
当转变到紧急模式时,算法将线上的数据速率减半,以便为交叉业务留出空间。在此之后,在一些情况下,算法不再对其数据速率进行进一步的改变,除非其观测到大量的分组丢失。在一些情况下,算法不再对这一模式中的延迟加以关注,这有助于处理基于传输控制协议(TCP)的交叉业务。
带宽分配的一个目标是在活动业务流(例如音频、视频或屏幕共享)之间分割可用带宽(如估计算法所报告的)。分配器通常只利用估计带宽的一部分(例如80%)并且留出一些未使用的带宽(例如20%),以便承担瞬时交叉业务。
当被激活时,每个流可向带宽分配器进行登记。作为其登记简档的一部分,流规定最小带宽需要。最小带宽需要可一直被满足。所有最小需要之和可以对应于供通信应用进行操作的最小带宽需要。
在一些情况下,流简档指示流的带宽消耗通常是突发的、可变比特率还是恒定比特率以及还指示流可以消耗的最大带宽。
在其寿命期间,每个流向分配器表达当前带宽需求。在一些情况下,当前带宽大于或等于最小带宽并且小于或等于简档中规定的最大带宽。对于音频流(例如互联网协议语音流),当前需求是静态的并且等于最小需要。对于视频和屏幕共享流,需求随流上的活动改变。
在一些示例中,分配算法按如下进行操作。分配算法向每个活动流许可其最小需要,由于在一些情况中音频流的需求不会高于音频流的最小需要,所以其满足音频流。如果在已经满足最小值之后还剩余任何带宽,则在屏幕共享和视频流之间按比例分配剩余带宽。如果当前不存在任何屏幕共享活动,则可向视频流指派多余带宽。如果屏幕共享流有正在进行的活动,则可按照其需求给予屏幕共享流一部分多余带宽。可将剩余带宽分配给视频流。
在一些示例中,题述技术涉及智能地确定何时启用、部分地启用或禁用带宽管理。在一些情况下,带宽是不管活动流设置而一直显式地被管理的,以便确保可用网络容量处的最优体验。然而,在一些情况下,带宽估计算法可能有时错误地估计容量,导致负面的性能影响,尤其是在网络容量被严重低估且业务流被人为限制于低估计带宽的情况下。这对带宽管理既有好处又有坏处。究竟是好处大于坏处还是坏处大于好处取决于活动的流的属性。
在一些示例中,这里公开的带宽管理算法考虑到这一点并巧妙地启用、禁用或部分启用自身。随着各个流在会话中变得活动或非活动,带宽管理的状态可发生改变。
例如,当视频流是活动的时,显式管理带宽的好处要大于坏处。视频流通常具有大的操作带宽范围。为了获得最佳体验,可能期望向流提供尽可能多的带宽而不使网络拥塞。因此,当视频流是活动的时,可以使用带宽管理。
当只有音频流和屏幕共享流是活动的时,可能存在显式管理带宽的好处,这是因为屏幕共享突发的带宽消耗是更可控的并且不对音频流引起任何干扰。然而,如果带宽被低估,则可引起对屏幕共享响应性(responsiveness)的严重负面影响,导致较差的用户体验,尤其是在高容量网络中更是如此。从而,可能期望在这些场景中禁用带宽管理,从而以可能的简短音频中断换取快速屏幕共享。可选地,在一些情况下,当只有音频和屏幕共享是活动的时,题述技术不启用带宽管理系统。
当视频、音频和屏幕共享在低容量网络上都是活动的时,在一些情况下,题述技术可管理带宽,同时进行特定修改以改善屏幕共享性能。例如,分配器可以使用更高比例(例如95%而不是80%)的可用带宽。在一些情况下,首先,屏幕共享流被许可50%的多余带宽(在满足了所有流的最小需要之后),而剩余的50%则给予视频。然而,如果屏幕共享活动持续超过阈值时段(例如2秒),则许可增加到多余带宽的85%,只有15%给予视频。以上的百分比是示例且可以被其他阈值替代。
在一些情况下,可不管可用带宽向对屏幕共享流的许可指定“下限”(例如每秒350千比特)。这潜在地向屏幕共享流许可多于可用带宽的带宽并且迫使TCP处理网络内的拥塞控制。然而,因此当屏幕共享突发是活动的时,视频质量可能下降。这一权衡(更快的屏幕共享针对下降的视频质量)可导致低容量网络上的最佳总体用户体验。可针对屏幕共享流部分地禁止带宽管理。
在紧急模式期间,带宽估计算法使数据速率减少一部分(例如一半或更多)。当度量指示网络状态已经返回到正常时,算法可切换回到正常模式。此时,算法首先以紧急模式前速率进行速率测试。如果该测试成功,则完成到紧急模式前性能的快速返回。如果速率测试失败,则算法测量失败的测试期间的有效吞吐量(其可低于所尝试的速率)。算法然后以有效吞吐量速率尝试另一速率测试。如果该测试成功,则可导致更快地趋于网络的新状态。如果有效吞吐量速率测试也失败,则算法回退到“慢提升”策略,其中从紧急速率开始逐渐增加速率。
如果另一方向(对于下游估计来讲是上游,反之亦然)仍处于紧急模式,则算法可根据一些实现跳过快速恢复并且直接尝试慢提升。根据一些示例,由于度量传递可被相反方向上的紧急状况不利地影响,所以需要倍加小心。
图8概念性地示出了实现了题述技术的一些实现的电子系统800。例如,可使用电子系统800的布置实现以下中的一个或多个:通信设备120A和120B、通信服务器150、音频桥160、视频服务器170、客户端计算设备410、音频通信服务器440、视频通信服务器450或屏幕共享服务器460。电子系统800可以是计算机(例如移动电话、PDA)或任意其他类型的电子设备。这种电子系统包括各种类型的计算机可读介质和用于各种其他类型的计算机可读介质的接口。电子系统800包括总线805、处理单元810、系统存储器815、只读存储器820、永久存储设备825、输入设备接口830、输出设备接口835和网络接口840。
总线805统一表示通信地连接电子系统800的多个内部设备的所有系统、外设和芯片组总线。例如,总线805通信地将处理单元810与只读存储器820、系统存储器850和永久存储设备825连接在一起。
处理单元810从这些多个存储器单元获取要执行的指令和要处理的数据,以便执行题述技术的过程。处理单元在不同实现中可以是单个处理器或多核处理器。
只读存储器(ROM)820存储处理单元810和电子系统的其他模块所需的静态数据和指令。另一方面,永久存储设备825是读写存储器设备。该设备是非易失存储单元,其即使在电子系统800关闭时也存储指令和数据。题述技术的一些实现使用大容量存储设备(例如磁或光盘及其相应的盘驱动器)作为永久存储设备825。
其他实现使用可移除存储设备(例如软盘、闪存驱动器及其相应磁盘驱动器)作为永久存储设备825。像永久存储设备825一样,系统存储器815是读写存储器设备。然而,与存储设备825不同的是,系统存储器815是易失性的读写存储器,比如随机存取存储器。系统存储器815存储处理器在运行时间需要的一些指令和数据。在一些实现中,将题述技术的过程存储在系统存储器815、永久存储设备825或只读存储器820中。例如,各个存储器单元包括根据一些实现用于带宽分配和估计的指令。处理单元810从这些多个存储器单元获取要执行的指令和要处理的数据,以便执行一些实现的过程。
总线805还连接到输入和输出设备接口830和835。输入设备接口830使用户能够向电子系统传送信息并选择命令。与输入设备接口830一起使用的输入设备包括例如字母数字键盘和定点设备(也称为“光标控制设备”)。输出设备接口835使得能够例如显示由电子系统800生成的图像。与输出设备接口835一起使用的输出设备包括例如打印机和显示设备,例如阴极射线管(CRT)或液晶显示器(LCD)。一些实现包括诸如触摸屏等的设备,其既充当输入设备又充当输出设备。
最后,如图8所示,总线805还通过网络接口840将电子系统800耦合到网络(未示出)。通过这种方式,电子系统800可以是计算机网络(例如局域网(LAN)、广域网(WAN)或内联网)或网络网络(例如因特网)的一部分。电子系统800的任何或全部组件可结合题述技术使用。
上述特征和应用可被实现为软件过程,其被规定为记录在计算机可读存储介质(也被称为就计算机可读介质)上的指令集合。当由一个或多个处理单元(例如一个或多个处理器、处理器的内核或其他处理单元)执行这些指令时,它们使处理单元执行指令中指示的动作。计算机可读介质的示例包括但不限于CD-ROM、闪存驱动器、RAM芯片、硬盘驱动器、EPROM等。计算机可读介质不包括无线地或通过有线连接传递的载波和电子信号。
在本说明书中,术语“软件”旨在包括位于只读存储器中的固件或存储在磁存储设备或闪存存储设备(例如固态驱动器)中的应用,其可被读取到存储器中供处理器处理。此外,在一些实现中,多个软件技术在保持不同软件技术的同时可被实现为较大程序的子部分。在一些实现中,多个软件技术也可被实现为分离的程序。最后,一起实现这里描述的软件技术的分离程序的任何组合在题述技术的范围内。在一些实现中,软件程序(当在一个或多个电子系统上被安装以便进行操作时)限定实施和执行软件程序的操作的一个或多个具体的机器实现。
计算机程序(也称为程序、软件、软件应用、脚本或代码)可用任意形式的编程语言来编写,包括汇编或解释语言、说明或过程语言,并且其可被部署为任意的形式,包括独立程序或模块、组件、子例程、对象或适于在计算环境中使用的其他单元。计算机程序可以但不必对应于文件系统中的文件。程序可存储在保存其他程序或数据(例如存储在标记语言文档中的一个或多个脚本)的文件的一部分中、在专用于所考虑的程序的单一文件中或在多个协调文件(例如存储一个或多个模块、子程序或部分代码的文件)中。计算机程序可被部署为在一个计算机上或在位于一个站点或分布在多个站点且由通信网络互连的多个计算机上执行。
以上描述的这些功能可被实现在数字电子电路、计算机软件、固件或硬件中。可使用一个或多个计算机程序产品实现技术。可编程处理器和计算机可被包括在移动设备中或封装为移动设备。可由一个或多个可编程处理器和由一个或多个可编程逻辑电路来执行过程和逻辑流。可通过通信网络互连通用和专用计算设备和存储设备。
一些实现包括电子组件,例如微处理器、在机器可读或计算机可读介质(备选地,被称为计算机可读存储介质、机器可读介质或机器可读存储介质)中存储计算机程序指令的存储设备和存储器。这种计算机可读介质的一些示例包括RAM、ROM、只读压缩光盘(CD-ROM)、可记录压缩光盘(CD-R)、可重写压缩光盘(CD-RW)、只读数字多功能光盘(例如DVD-ROM、双层DVD-ROM)、多种可记录/可重写DVD(例如DVD-RAM、DVD-RW、DVD+RW等)、闪存存储器(例如SD卡、微型SD卡、微SD卡等)、磁或固态硬盘驱动器、只读和可记录光盘、超高密度光盘、任意其他光或磁介质和软盘。计算机可读介质可存储可由至少一个处理单元执行的包括用于执行多个操作的指令集合的计算机程序。计算机程序或计算机代码的示例包括机器代码(例如由编译器制作)和文件(包括由计算机、电子组件或微处理器使用解译器执行的高级别代码)。
虽然上述讨论主要涉及执行软件的微处理器和多核处理器,但是一些实现是由一个或多个集成电路执行的,例如专用集成电路(ASIC)或现场可编程门阵列(FPGA)。在一些实现中,这种集成电路执行存储在电路本身上的指令。
说明书和本申请中的任意权利要求中使用的术语“计算机”、“服务器”、“处理器”和“存储器”都指代电子设备或其他技术设备。这些术语不包括人或人群。为了本说明书的目的,术语显示或正在显示意思是在电子设备上显示。说明书和本申请中的任意权利要求中使用的术语“计算机可读介质”整体限于有形的物理对象,其存储可由计算机读取的形式的信息。这些术语不包括任意无线信号、有线下载信号、和任意其他短暂信号。
为了提供与用户的交互,对本说明书中所述的主题的实现可以实现于计算机上,该计算机具有显示设备(例如,CRT(阴极射线管)或LCD(液晶显示器)监控器)(以用于向用户显示信息)以及键盘和定点设备(例如鼠标或轨迹球)(用户可通过其向计算机提供输入)。也可使用其他类型的设备来提供与用户的交互,例如向用户提供的反馈可以是任意形式的感觉反馈,例如,视觉反馈、听觉反馈或触觉反馈;以及可采用任何形式从用户接收输入,包括声学、语言或触觉输入。此外,计算机可通过向由用户使用的设备发送文档或从其接收文档来与用户进行交互;例如,通过响应于从用户的客户端设备上的网络浏览器接收的请求向网络浏览器发送网页。
本说明书中所述的主题可实现于计算系统中,该计算系统包括后端组件(例如数据服务器)、或包括中间件组件(例如应用服务器)、或包括前端组件(例如客户端计算机,该客户端计算机具有用户可用来与本说明书中所述的主题的实现进行交互的图形用户界面或网络浏览器)、或一个或多个这种后端、中间件或前端组件的任意组合。系统组件可被任意形式或介质的数字数据通信(例如通信网络)互连。通信网络的示例包括局域网(LAN)和广域网(WAN)、互连网络(例如因特网)和对等网络(例如专用对等网络)。
计算系统可包括客户端和服务器。客户端和服务器一般彼此远离且通常通过通信网络交互。客户端和服务器之间的关系源于运行于相应计算机上的并且彼此具有客户端-服务器关系的计算机程序。在所公开的主题的一些方面中,服务器(例如为了向与客户端设备交互的用户显示数据并且从其接收用户输入)向客户端设备发送数据(例如HTML页面)。可在服务器处从客户端设备接收在客户端设备处生成的数据(例如用户交互的结果)。
应该理解的是,所公开的过程中的步骤的具体顺序或层级是示例方法的示出。基于设计偏好,应该理解的是,可以对过程中的步骤的具体顺序或层级重新进行安排,或执行所有示出的步骤。一些步骤可同时执行。例如,在一些情况下,多任务并行处理可以是有利的。此外,上文示出的各个系统组件的分离不应被理解为需要这一分离,应该理解的是,所描述的程序组件和系统一般可被集成在单个软件产品中或封装成多个软件产品。
对这些方面的各种修改是明显的,且这里所限定的一般原理可适用于其他方面。从而,权利要求不限于这里示出的方面,而是符合与书面权利要求相一致的的完整范围,其中除非特别表明,否则对单数形式的元素的提及并不意味着“一个且仅是一个”,而是“一个或多个”。除非另外表明,否则术语“一些”指一个或多个。男性代词(例如他的)包括女性和中性(例如她的和它的),反之亦然。标题和小标题(如果有的话)只是为了方便而使用的而并不限制题述技术。
例如,短语“方面”并不意味着所述方面对题述技术是必不可少的或所述方面适用于题述技术的所有配置。涉及一个方面的公开可以适用于所有配置或一个或多个配置。例如,短语方面可指一个或多个方面,反之亦然。例如,短语“配置”并不意味着这一配置对题述技术是必不可少的或所述配置适用于题述技术的所有配置。涉及一个配置的公开可以适用于所有配置或一个或多个配置。例如,短语配置可指一个或多个配置,反之亦然。
这里使用的词语“示例性”意思是“充当示例或说明”。这里描述为“示例性”的任意方面或设计不必被理解为比其他方面或设计更优选或更有利。
Claims (14)
1.一种用于管理带宽利用的方法,所述方法包括:
经由在连接到网络的计算机器处执行的通信应用来监控一个或多个网络度量,其中所述通信应用被配置为在正常操作模式或紧急操作模式中运行;
基于所监控的一个或多个网络度量来估计所述计算机器处的总可用带宽;
以第一网络数据速率在所述正常操作模式中运行所述通信应用;
基于所监控的一个或多个网络度量进入紧急操作模式;
基于所监控的一个或多个网络度量的改变来确定所述通信应用能够针对第一方向上的通信返回所述正常操作模式;
针对所述第一方向上的通信进入所述正常操作模式;
以所述第一网络数据速率运行第一网络数据速率测试;
如果所述第一网络数据速率测试成功,则将所述第一方向上的当前网络数据速率设置为所述第一网络数据速率;以及
如果所述第一网络数据速率测试失败,则:
测量在所述第一网络数据速率测试期间的有效吞吐量速率;
以所述有效吞吐量速率运行第二网络数据速率测试;
如果所述第二网络数据速率测试成功,则将所述当前网络数据速率调整为所述有效吞吐量速率;以及
如果所述第二网络数据速率测试失败,则从在所述紧急操作模式期间实现的网络数据速率开始逐渐增加所述当前网络数据速率。
2.根据权利要求1所述的方法,其中,估计所述计算机器处的总可用带宽包括:
基于所述计算机器与针对第一活动流的第一服务器之间的数据传输,计算所述计算机器与所述第一服务器之间的上游和下游带宽;以及
估计所述计算机器与针对第二活动流的第二服务器之间的上游和下游带宽与所计算的所述计算机器与所述第一服务器之间的上游或下游带宽相对应。
3.根据权利要求1所述的方法,其中,进入紧急操作模式包括:
将操作网络数据速率设置为与所述紧急操作模式相对应的网络数据速率;
忽略分组延迟;以及
当检测到分组丢失率高于分组丢失的第二阈值量时,进一步减小所述操作网络数据速率。
4.根据权利要求1所述的方法,其中,进入所述正常操作模式包括:
以超出所述当前网络数据速率的网络数据速率运行网络数据速率测试;以及
如果以超出所述当前网络数据速率的所述网络数据速率运行的所述网络数据速率测试成功,则增加所述当前网络数据速率。
5.根据权利要求1所述的方法,还包括:
基于所估计的总可用带宽或所监控的一个或多个网络度量,确定所述通信应用不能针对第二方向上的通信返回所述正常操作模式,其中所述第一方向是进入所述计算机器或离开所述计算机器中的第一个,所述第二方向是进入所述计算机器或离开所述计算机器中不同的第二个;
针对所述第二方向上的通信,维持所述紧急操作模式;以及
针对所述第一方向上的通信,从在所述紧急操作模式期间实现的网络数据速率开始逐渐增加所述当前网络数据速率,同时针对所述第二方向上的通信,将所述当前网络数据速率维持在在所述紧急操作模式期间实现的所述网络数据速率。
6.根据权利要求1所述的方法,还包括:
放弃向所述计算机器外部的与活动流相关联的服务器发送对所述通信应用的操作模式的指示;以及
向与所述活动流相关联的所述服务器发送对从所述服务器到所述计算机器的活动流中的数据传输的当前网络数据速率的指示。
7.根据权利要求1所述的方法,其中,所监控的一个或多个网络度量包括以下各项中的一个或多个:分组丢失率、分组延迟率、或网络有效吞吐量速率。
8.一种用于管理带宽利用的系统,所述系统包括:
一个或多个处理器;
网络接口,用于连接到网络;以及
存储器,所述存储器存储用于执行以下操作的指令:
经由通过所述一个或多个处理器执行的通信应用来监控一个或多个网络度量,其中所述通信应用被配置为在正常操作模式或紧急操作模式中运行;
基于所监控的一个或多个网络度量来估计所述网络中的总可用带宽;
以第一网络数据速率在所述正常操作模式中运行所述通信应用;
基于所监控的一个或多个网络度量进入紧急操作模式;
基于所监控的一个或多个网络度量的改变,确定所述通信应用能够针对第一方向上的通信返回所述正常操作模式;
针对所述第一方向上的通信进入所述正常操作模式;
以所述第一网络数据速率运行第一网络数据速率测试;
如果所述第一网络数据速率测试成功,则将所述第一方向上的当前网络数据速率设置为所述第一网络数据速率;以及
如果所述第一网络数据速率测试失败,则:
测量在所述第一网络数据速率测试期间的有效吞吐量速率;
以所述有效吞吐量速率运行第二网络数据速率测试;
如果所述第二网络数据速率测试成功,则将所述当前网络数据速率调整为所述有效吞吐量速率;以及
如果所述第二网络数据速率测试失败,则从在所述紧急操作模式期间实现的网络数据速率开始逐渐增加所述当前网络数据速率。
9.根据权利要求8所述的系统,其中,用于估计所述网络中的总可用带宽的指令包括用于执行以下操作的指令:
基于所述网络接口与第一服务器之间的数据传输,计算所述网络接口与所述第一服务器之间的上游和下游带宽;以及
估计所述网络接口与针对第二活动流的第二服务器之间的上游和下游带宽与所计算的所述网络接口与所述第一服务器之间的上游或下游带宽相对应。
10.根据权利要求8所述的系统,其中,用于进入紧急操作模式的指令包括用于执行以下操作的指令:
将操作网络数据速率设置为与所述紧急操作模式相对应的网络数据速率;
忽略分组延迟;以及
当检测到分组丢失率高于分组丢失的第二阈值量时,进一步减小所述操作网络数据速率。
11.根据权利要求8所述的系统,其中,用于进入所述正常操作模式的指令包括用于执行以下操作的指令:
以超出所述当前网络数据速率的网络数据速率运行网络数据速率测试;以及
如果以超出所述当前网络数据速率的所述网络数据速率运行的所述网络数据速率测试成功,则增加所述当前网络数据速率。
12.根据权利要求8所述的系统,所述存储器还存储用于执行以下操作的指令:
基于所估计的总可用带宽或所监控的一个或多个网络度量,确定所述通信应用不能针对第二方向上的通信返回所述正常操作模式,其中所述第一方向是进入所述网络接口或离开所述网络接口中的第一个,所述第二方向是进入所述网络接口或离开所述网络接口中不同的第二个;
针对所述第二方向上的通信,维持所述紧急操作模式;以及
针对所述第一方向上的通信,从在所述紧急操作模式期间实现的网络数据速率开始逐渐增加所述当前网络数据速率,同时针对所述第二方向上的通信,将所述当前网络数据速率维持在在所述紧急操作模式期间实现的所述网络数据速率。
13.根据权利要求8所述的系统,所述存储器还存储用于执行以下操作的指令:
放弃向与活动流相关联的服务器发送对所述通信应用的操作模式的指示;以及
向与所述活动流相关联的所述服务器发送对从所述服务器到所述网络接口的活动流中的数据传输的当前网络数据速率的指示。
14.根据权利要求8所述的系统,其中,所监控的一个或多个网络度量包括以下各项中的一个或多个:分组丢失率、分组延迟率、或网络有效吞吐量速率。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201261641196P | 2012-05-01 | 2012-05-01 | |
US61/641,196 | 2012-05-01 | ||
PCT/US2013/038509 WO2013165855A2 (en) | 2012-05-01 | 2013-04-26 | Method and apparatus for bandwidth allocation and estimation |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104396215A CN104396215A (zh) | 2015-03-04 |
CN104396215B true CN104396215B (zh) | 2017-08-22 |
Family
ID=48289728
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380034733.0A Expired - Fee Related CN104396215B (zh) | 2012-05-01 | 2013-04-26 | 用于带宽分配和估计的方法和装置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US9565088B2 (zh) |
EP (1) | EP2856730B1 (zh) |
CN (1) | CN104396215B (zh) |
IN (1) | IN2014DN09999A (zh) |
WO (1) | WO2013165855A2 (zh) |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014090387A (ja) * | 2012-10-31 | 2014-05-15 | Ricoh Co Ltd | 情報処理装置、会議システムおよびプログラム |
KR102158733B1 (ko) * | 2013-10-16 | 2020-09-22 | 삼성전자 주식회사 | 자원 제어 장치 및 방법 |
US9179355B2 (en) * | 2014-01-09 | 2015-11-03 | Apple Inc. | Cell utilization estimation by a wireless device |
CN105634991B (zh) * | 2014-11-04 | 2020-01-07 | 中兴通讯股份有限公司 | 一种实现业务带宽分配的方法及装置 |
US10313243B2 (en) * | 2015-02-24 | 2019-06-04 | Commvault Systems, Inc. | Intelligent local management of data stream throttling in secondary-copy operations |
US10270834B2 (en) * | 2015-08-20 | 2019-04-23 | Huawei Technologies Co., Ltd. | System and method for online multimedia streaming services |
US10419815B2 (en) * | 2015-09-23 | 2019-09-17 | Comcast Cable Communications, Llc | Bandwidth limited dynamic frame rate video trick play |
US10484288B2 (en) * | 2016-02-23 | 2019-11-19 | Level 3 Communications, Llc | Network flow control |
CN107623638B (zh) * | 2016-07-15 | 2020-09-25 | 中国电信股份有限公司 | 负载均衡路径的故障处理方法及装置 |
CN106357558B (zh) * | 2016-09-05 | 2019-10-01 | 北京小米移动软件有限公司 | 带宽分配方法及装置 |
US9712570B1 (en) | 2016-09-28 | 2017-07-18 | Atlassian Pty Ltd | Dynamic adaptation to increased SFU load by disabling video streams |
CN106911581B (zh) * | 2017-02-28 | 2020-06-23 | 联想(北京)有限公司 | 一种传输方法、装置及终端 |
WO2019068224A1 (en) * | 2017-10-06 | 2019-04-11 | Nokia Shanghai Bell Co., Ltd. | COMMUNICATION METHOD, APPARATUS AND COMPUTER PROGRAM |
CN112236968B (zh) * | 2018-05-09 | 2024-04-23 | 联想(新加坡)私人有限公司 | 用于多个活动带宽部分的过程 |
KR20200054565A (ko) * | 2018-11-12 | 2020-05-20 | 삼성전자주식회사 | 전자 장치 및 그 제어 방법 |
CN111679813B (zh) * | 2020-08-11 | 2020-11-06 | 南京云联数科科技有限公司 | 用于信息处理的方法、电子设备和存储介质 |
US20220283767A1 (en) * | 2021-03-05 | 2022-09-08 | Synaptics Incorporated | Managing display data |
JP2022157417A (ja) * | 2021-03-31 | 2022-10-14 | 本田技研工業株式会社 | 情報処理装置、車両、プログラム、及び情報処理方法 |
US11979892B2 (en) * | 2021-04-30 | 2024-05-07 | T-Mobile Usa, Inc. | Systems and methods for optimizing cellular spectrum utilization |
CN113660173B (zh) * | 2021-08-16 | 2024-04-26 | 抖音视界有限公司 | 一种流量控制方法、装置、计算机设备及存储介质 |
CN114430373A (zh) * | 2021-12-22 | 2022-05-03 | 天翼云科技有限公司 | 一种动态调整带宽的方法及装置 |
CN114866474B (zh) * | 2022-04-29 | 2023-07-25 | 鹏城实验室 | 一种端网协同流量调度方法、装置、系统及存储介质 |
CN115277654B (zh) * | 2022-07-19 | 2024-02-27 | 宁波菊风系统软件有限公司 | 一种rtc系统的带宽资源分配系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6876668B1 (en) * | 1999-05-24 | 2005-04-05 | Cisco Technology, Inc. | Apparatus and methods for dynamic bandwidth allocation |
US6937566B1 (en) * | 1997-07-25 | 2005-08-30 | Telefonaktiebolaget Lm Ericsson (Publ) | Dynamic quality of service reservation in a mobile communications network |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6680930B2 (en) * | 2001-01-16 | 2004-01-20 | Motorola, Inc. | Method and apparatus for determining and reserving bandwidth for transmitting delay-sensitive streaming data over a radio frequency channel |
US6931011B2 (en) * | 2001-01-31 | 2005-08-16 | Telcordia Technologies, Inc. | Method and systems for bandwidth management in packet data networks |
TW546931B (en) * | 2002-04-03 | 2003-08-11 | Via Tech Inc | Method and relevant device for reducing power consumption of network connecting system |
US7277392B2 (en) * | 2002-10-01 | 2007-10-02 | Motorola, Inc. | Method and apparatus for managing the usage of data link resources |
US20040257994A1 (en) | 2003-06-17 | 2004-12-23 | Cymphonix Corporation | System and method for network communications management |
US7742406B1 (en) * | 2004-12-20 | 2010-06-22 | Packeteer, Inc. | Coordinated environment for classification and control of network traffic |
US7925756B1 (en) * | 2005-09-30 | 2011-04-12 | Packeteer, Inc. | Partition configuration and creation mechanisms for network traffic management devices |
US20080192773A1 (en) * | 2007-02-13 | 2008-08-14 | Canhui Ou | Methods and apparatus to manage bandwidth utilization in an access network |
US8520683B2 (en) * | 2007-12-18 | 2013-08-27 | Qualcomm Incorporated | Managing communications over a shared medium |
US8576728B2 (en) * | 2009-09-30 | 2013-11-05 | Verizon Patent And Licensing Inc. | Resource management in dynamic network environments |
US8010677B2 (en) * | 2009-12-02 | 2011-08-30 | Avaya Inc. | Alternative bandwidth management algorithm |
-
2013
- 2013-04-26 WO PCT/US2013/038509 patent/WO2013165855A2/en active Application Filing
- 2013-04-26 IN IN9999DEN2014 patent/IN2014DN09999A/en unknown
- 2013-04-26 EP EP13720738.7A patent/EP2856730B1/en active Active
- 2013-04-26 US US13/871,696 patent/US9565088B2/en active Active
- 2013-04-26 CN CN201380034733.0A patent/CN104396215B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6937566B1 (en) * | 1997-07-25 | 2005-08-30 | Telefonaktiebolaget Lm Ericsson (Publ) | Dynamic quality of service reservation in a mobile communications network |
US6876668B1 (en) * | 1999-05-24 | 2005-04-05 | Cisco Technology, Inc. | Apparatus and methods for dynamic bandwidth allocation |
Also Published As
Publication number | Publication date |
---|---|
EP2856730A2 (en) | 2015-04-08 |
IN2014DN09999A (zh) | 2015-08-14 |
US9565088B2 (en) | 2017-02-07 |
CN104396215A (zh) | 2015-03-04 |
WO2013165855A2 (en) | 2013-11-07 |
WO2013165855A3 (en) | 2014-01-23 |
US20130297819A1 (en) | 2013-11-07 |
EP2856730B1 (en) | 2016-05-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104396215B (zh) | 用于带宽分配和估计的方法和装置 | |
US11405310B2 (en) | Method and apparatus for selecting processing paths in a software defined network | |
US10972344B2 (en) | Automated adjustment of subscriber policies | |
US10673751B2 (en) | Method and apparatus for enhancing services in a software defined network | |
Dutta et al. | QoE-aware elasticity support in cloud-native 5G systems | |
Scoca et al. | Scheduling latency-sensitive applications in edge computing | |
CN107689925A (zh) | 基于云监控的负载均衡优化方法及装置 | |
US20120173709A1 (en) | Seamless scaling of enterprise applications | |
KR20140144295A (ko) | 유체 보안 계층을 제공하기 위한 장치 및 방법 | |
US10284434B1 (en) | Virtual network function (VNF) relocation in a software defined network (SDN) | |
CN104796449B (zh) | 内容分发方法、装置及设备 | |
CN103581042B (zh) | 一种数据包发送的方法和设备 | |
US8971282B2 (en) | Allocating a pool of shared bandwidth | |
CN106254259B (zh) | 一种流量控制的方法及装置 | |
CN107239347B (zh) | 一种虚拟化场景下的设备资源分配方法和装置 | |
Amiri et al. | SDN-based game-aware network management for cloud gaming | |
CN108616553A (zh) | 云计算资源池进行资源调度的方法及装置 | |
CN106656807A (zh) | 一种报文转发方法及sdn交换机 | |
Krishnaswamy et al. | An open NFV and cloud architectural framework for managing application virality behaviour | |
CN106791679A (zh) | 一种视频传输路径的确定方法及装置 | |
CN107995199A (zh) | 网络设备的端口限速方法及装置 | |
CN107547446A (zh) | 一种带宽调整方法、装置及网络设备 | |
CN110381159A (zh) | 任务处理方法及系统 | |
Carrega et al. | Coupling energy efficiency and quality for consolidation of cloud workloads | |
US10367857B2 (en) | Managing conference-calls |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20170330 Address after: American Florida Applicant after: Geiger company Address before: American Florida Applicant before: Citrix System Co., Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20170822 Termination date: 20180426 |