具体实施方式
将意识到,为了示意简洁清楚,在适当的情况下,在附图中可以重复使用参考标记来指示对应或类似的元件。此外,阐述了许多具体细节,以提供对此处描述的实施例的透彻理解。然而,本领域技术人员将意识到,没有这些具体细节也可以实现此处描述的实施例。在其他实例中,未具体描述公知方法、过程和组件,以免使此处描述的实施例含混不清。此外,以下描述不应被理解为对此处描述的实施例范围的限制。
此处公开的不同实施例意识并考虑到若干不同的考虑因素。例如,所公开的实施例意识并考虑到:当前通信系统规范未描述当分组被标记为指示观测到正经历拥塞时如何降低发送方的比特流。例如,考虑使用用于IP多媒体子系统的多媒体电话服务的自适应多速率语音编解码器以及缺省自适应多速率模式集合(对应于12.2kbps、7.4kbps、5.9kbps和4.75kbps的比特率)的情形。如果发送方当前使用12.2kbps比特率,并且观测到标记为“经历拥塞”的分组,当前规范未指定发送方应如何响应。在该情况下,响应选项包括:立即径直跳至4.75kbps;或者降低至模式集合中下一最低速率,并且如果继续观测到标记为“经历拥塞”的分组,再次降低。所公开的实施例意识并考虑到:当前规范未指定如果拥塞减轻应如何适配比特率。此外,所公开的实施例意识并考虑到:当前规范未指定在响应于显式拥塞通知适配比特率的系统或方法的上下文中应如何处理用户优先级和紧急呼叫。
所公开的实施例意识并考虑到:显式拥塞通知仅使用拥塞的开/关或二进制指示的当前情形。数据分组被标记为指示经历拥塞或未经历拥塞。所公开的实施例意识并考虑到:在将二进制“经历拥塞”标记用于显式拥塞通知的通信系统中,需要一种编解码器选择和适配机制。
所公开的实施例意识并考虑到UTRAN或EUTRAN网络中的互联网协议业务可能是极为动态的。拥塞检测以及基于该检测对数据分组的二进制“经历拥塞”标记可能噪声极大,并可能易于摆动。这可能导致使用显式拥塞通知的基于极不稳定的编解码器适配的网络拥塞控制。频繁和不必要的适配可能对用户感知的质量具有负面影响。
此处公开的实施例提供了:用于在接收终端接收到标记为“经历拥塞”的数据分组或未标记数据分组时在通信系统中进行速率适配的系统和方法。根据所公开的实施例,通过标记分组的传输,指示检测到拥塞,并且通过未标记分组的传输,指示拥塞清除。基于检测到标记或未标记分组,数据分组的接收方基于网络提供的或在接收方配置的序列,来确定速率降低或增加。如果确定需要速率适配,接收方可以向发送方发送编解码器速率改变请求以及所确定的速率。
此处公开的实施例特别适于:使用UMTS陆地无线接入网(UTRAN)或演进UTRAN(E-UTRAN)中的二进制“经历拥塞”标记的基于显式拥塞通知的编解码器适配机制。对于长期演进(LTE),关于编解码器速率适配的相关规范是3GPP TS 26.114,其指定了基于IP多媒体子系统的多媒体电话服务(MTSI)。说明性实施例还适用于其他通信系统以及无线或固定网络。
首先转向图1,根据说明性实施例描述了无线通信系统。无线通信系统100包括无线网络102。无线网络102可以包括形成多个网络之一的单个网络或多个网络。无线网络102经由在用户设备104、106和108以及无线网络102之间建立的无线通信信道110、112和114提供用户设备104、106和108的无线通信。如以下将更详细地讨论的,用户设备104、106和108的示例包括移动无线通信设备,所述移动无线通信设备包括寻呼机、蜂窝电话、蜂窝智能电话、无线组织器、个人数字助理、计算机、膝上电脑、手持无线通信设备、具有无线能力的笔记本计算机等。虽然图1中的示例仅示出了三个用户设备104、106和108,无线网络102可以支持使用更多数目的各种不同类型的用户设备。
在用户设备104、106和108以及无线网络102的各个节点116、118和120之间动态建立无线通信信道110、112和114。例如,可以在向用户设备104、106和108之一或从用户设备104、106和108之一发起呼叫时建立信道110、112和114。在呼叫设立时建立通信信道110、112和114的特定特性。例如,这样的特性可以包括:通信信道110、112或114在呼叫期间所要使用的编解码器。例如,可以基于诸如呼叫设置时用户设备104、106和108以及网络102的节点116、118或120中对应节点之间的信号强度或信号质量等因素,来选择所要使用的编解码器。虽然图1中的示例仅示出了三个节点116、118和120,无线网络102可以包括更多这样的节点。
网络102进行操作,以使用网络节点116、118和120在用户设备104、106和108间传输数据分组。网络102还可以进行操作,以在用户设备104、106和108以及其他网络(如,传输的公共电话交换网(PSTN)122、或者其他公共或私有网络124(如,互联网))间传输数据分组。这样向其他网络122和124以及从其他网络122和124传输数据分组还使用网络节点116、118和120。随着通过节点116、118和120中一个或多个节点的数据分组业务的增加,可能超出网络102处理并及时向用户设备104、106和108以及从用户设备104、106和108传输分组的能力。在该情况下,称网络102或者一个或多个网络节点116、118或120拥塞。此处公开的实施例提供了用于在发生这样的网络拥塞时智能并更有效地进行响应的改进的系统和方法。
下面参照图2,示出了可以实现说明性实施例的无线网络102的实现的框图。无线网络102可以是例如通用移动电信系统(UMTS)陆地无线接入网(UTRAN)。然而,可以在其他类似或不同的通信网络(如,使用长期演进(LTE)技术的无线网络)中实现说明性实施例。还可以在根据通用分组无线服务(GPRS)和全球移动系统(GSM)技术配置的无线网络中实现说明性实施例。
无线网络102包括节点202。在该示例中,节点202是图1的节点116、118或120之一的示例。如上所述,实践中,无线网络包括:一个或多个节点202。例如,节点202可以作为UMTS陆地无线接入网中的节点B或作为长期演进网络中的演进节点B(eNodeB)来实现。
节点202可称为基站收发机站。节点202包括耦接至一个或多个天线207的射频发射机204和接收机206。发射机204和接收机206由节点202用于经由无线通信信道110与移动设备(如,用户设备104)直接通信。节点202为特定覆盖区域(通称“小区”)提供无线网络覆盖。节点202还包括:一个或多个处理系统208(如,计算机数据处理系统),用于实现节点202提供的功能。
节点202耦接至无线网络控制器210,并由无线网络控制器210控制。根据说明性实施例,多个节点202可以耦接至无线网络控制器210。无线网络控制器210负责控制与其连接的所有节点202。无线网络控制器210执行无线资源管理,如,对无线信道的管理以及某些移动性管理功能。无线网络控制器210可以是:在向用户设备104发送用户数据和从用户设备104发送用户数据前进行加密的点。
无线网络控制器210连接至核心网212。多个无线网络控制器210可以耦接至核心网212。核心网212的主要功能是:提供数据分组在网络102上的用户设备之间以及在网络102上的用户设备和其他网络(如,公共电话交换网122以及其他公共或私有网络(如,互联网))上的用户之间的路由。可以由媒体网关和服务通用分组无线服务(GPRS)支持节点(SGSN)实现UMTS网络中核心网212所提供的功能。媒体网关是在全异电信网络间转换数字媒体流的转换设备或服务。媒体网关使基于多个传输协议(如,异步转移模式(ATM)和互联网协议(IP))的跨网络多媒体通信成为可能。SGSN负责在其地理服务区内从移动用户设备和向移动用户设备传送数据分组。其任务可以包括:分组路由和传输、移动性管理、逻辑链路管理、以及认证和计费功能。在长期演进(LTE)网络中,可由例如移动性管理实体(MME)、服务网关(SGW)和分组数据网络(PDN)网关(PGW)在核心网212中提供类似的功能。
参照图2给出的组件列表并非意味着无线网络组件的穷尽列表,而是在通过无线网络102的通信中常用的组件的列表。
用户设备104是具有高级数据通信能力的双向通信设备,包括如上所述通过收发机站或节点的网络与其他用户设备或计算机系统通信的能力。用户设备104也可以具有允许语音通信的能力。根据用户设备104提供的功能,可以将其称为数据消息收发设备、双向寻呼机、具有数据消息收发能力的蜂窝电话、无线互联网设备或者数据通信设备(具有或不具有电话功能)。
图3所示的是用户设备300的说明性实施例的框图。在该示例中,用户设备300是图1和图2中用户设备102的示例。用户设备300包括若干组件,如控制用户设备300总体操作的主处理器302。通信功能(包括数据和语音通信)通过通信子系统304来执行。如上所述,通信子系统304从无线网络102接收消息,并向无线网络102发送消息。在用户设备300的该说明性实施例中,可以根据使用UMTS陆地无线接入网(UTRAN)的通用移动电信系统(UMTS)技术或使用演进UTRAN(E-UTRAN)的长期演进(LTE)技术来配置通信子系统304。可选地,可以根据全球移动通信系统(GSM)或通用分组无线服务(GPRS)标准来配置通信子系统304。新的标准仍在制定中,但是相信它们将与此处描述的网络行为具有相似性,本领域技术人员还将理解,此处描述的实施例预期使用将来开发的任何其他合适的标准。
连接通信子系统304与无线网络102的无线链路表示根据针对所采用的特定通信技术而指定的定义协议来操作的一个或多个不同的射频(RF)信道。采用更新的网络协议,这些信道能够支持电路交换语音通信和分组交换数据通信。
在各种实现中,其他无线网络也可与用户设备300相关联。例如,可以采用的不同类型的无线网络包括:以数据为中心的无线网络、以语音为中心的无线网络、以及能够通过相同物理基站支持语音和数据通信的双模网络。组合的双模网络包括但不限于:码分多址(CDMA)或CDMA2000网络、上述GSM/GPRS网络、第三代(3G)网络(如EDGE和UMTS)、以及长期演进(LTE)网络。以数据为中心的网络的一些其他示例包括:WiFi802.11、Mobitex(TM)和数据TAC(TM)网络通信系统。其他以语音为中心的数据网络的示例包括:个人通信系统(PCS)网络,如,GSM和时分多址(TDMA)系统。
主处理器302还与附加子系统交互,如随机存取存储器(RAM)306、闪存308、显示器310、辅助输入/输出(I/O)子系统312、数据端口314、键盘316、扬声器318、麦克风320、短程通信系统322和其他设备子系统324。
用户设备300的一些子系统执行与通信相关的功能,而其他子系统可以提供“驻留”或设备上的功能。例如,显示器310和键盘316可以用于通信相关的功能(如,输入文本消息以通过网络102发送)和设备驻留功能(如,计算器或任务列表)。
在已完成所需网络注册或激活过程后,用户设备300通过无线网络102来发送和接收通信信号。网络接入与用户设备300的订户或用户相关联。为了识别订户,用户设备300需要订户身份模块(SIM)或可移除用户身份模块(RUIM)卡326,所述可移除用户身份模块(RUIM)卡326要插入SIM/RUIM接口328以与网络通信。SIM或RUIM卡326是能够用于识别用户设备300的订户并用于使用户设备300个人化等的一种传统“智能卡”。SIM或RUIM卡326包括处理器和用于存储信息的存储器。
在没有卡326的情况下,用户设备300不能完全操作用于与无线网络102通信。通过将SIM或RUIM 326插入SIM/RUIM接口328,订户能够访问所有订制服务。服务可以包括:web浏览和消息收发(如,电子邮件、语音邮件、短消息服务(SMS)、以及多媒体消息收发服务(SMS))。更高级的服务可以包括:销售点、现场服务、以及销售队伍自动化。一旦将SIM或RUIM326插入SIM/RUIM接口328,SIM或RUIM 326将耦合至主处理器302。为了识别订户,SIM或RUIM卡326可以包括用户参数,如,国际移动订户身份(IMSI)。使用SIM或RUIM卡326的优势在于:订户不必受任何单个物理用户设备的束缚。SIM或RUIM卡326可以还存储用户设备的附加订户信息,包括:记事簿或日历信息、最近呼叫信息。可选地,用户标识信息可以被编入闪存308。
用户设备300是电池供电的设备,并包括用于接纳一个或多个可充电电池330的电池接口332。在至少一些实施例中,电池330可以是具有嵌入式微处理器的智能电池。电池接口332耦合至调节器(未示出),该调节器辅助电池330向移动设备100供电V+。尽管当前技术利用电池330,但是未来的技术(如微燃料电池)也可以向用户设备300供电。
用户设备300还包括操作系统334和其他程序336。以下将更详细对程序336进行描述。操作系统334和程序336可以被实现为由主处理器302运行的软件组件。操作系统334和程序336典型地被存储为处理器(如,主处理器302)可读的介质上的程序代码。这样的可读存储介质可以包括永久性存储器设备(如,闪存308),永久性存储器设备可选地可以是只读存储器(ROM)或类似的存储元件。本领域技术人员将意识到,操作系统334的部分和程序336(如指定设备应用)或其部分可以临时加载至易失性存储器(如RAM 306的)中。如本领域技术人员公知的,还可以包括其他软件组件。
控制基本设备操作的程序336(包括数据和语音通信应用)通常将在用户设备300的制造期间被安装在用户设备300。其他程序336包括消息应用338。消息应用338可以是任何合适的软件程序,允许用户设备300的用户发送和接收电子消息。如本领域技术人员公知的,对于消息应用338,存在各种替代方案。用户已发送或接收的消息典型地存储在用户设备300的闪存308或者用户设备300中某些其他合适的存储元件中。在至少一些实施例中,发送和接收消息中的一些消息可以远离用户设备300存储,如,存储在用户设备300与之通信的相关主机系统的数据存储器中。
程序336还可以包括:设备状态模块340、设备状态模块140、个人信息管理器(PIM)342、以及其他适当的模块。设备状态模块340提供永久性,即设备状态模块340确保将重要设备数据存储在永久存储器(如闪存308)中,使得当用户设备300关闭或掉电时,数据不发生丢失。
PIM 342包括用于组织和管理用户感兴趣的数据项的功能,数据项例如但不限于:电子邮件、文本消息、联系人、日历事件、语音邮件、约会、以及任务项。PIM应用具有经由无线网络102发送和接收数据项的能力。PIM数据项目可以经由无线网络102与主机计算机系统存储的或与主机计算机系统相关联的、用户设备订户的相应数据项目无缝地集成、同步和更新。该功能在用户设备300上关于上述项目创建镜像主机。当主机计算机系统是用户设备订户的办公室计算机系统时,该方法可能特别有优势。
用户设备300还包括连接模块344和IT策略模块346。连接模块344实现用户设备300与该用户设备300被授权接口连接的无线基础设施和任何主机系统(如,企业系统)进行通信所需的通信协议。
连接模块344包括API的集合,可以将API的集合与用户设备300集成,以允许用户设备300使用与企业系统相关联的任意数量的服务。连接模块344允许用户设备300与主机系统建立端到端安全的、经认证的通信管道。可以使用应用的子集将IT策略命令从主机系统传递至用户设备300,对该应用子集的访问由连接模块344提供。IT策略命令的传递可以以无线或有线方式进行。然后,可以将这些指令传递到IT策略模块346,以修改用户设备300的配置。在某些情形下,备选地,IT策略更新也可以通过有线连接进行。
IT策略模块346接收对IT策略进行编码的IT策略数据。然后,IT策略模块346确保用户设备300对IT策略数据进行认证。然后,可以将IT策略数据以其原生(native)形式存储在闪存306中。在存储IT策略数据后,IT策略模块346能够向驻留在用户设备300上的所有应用发送全局通知。然后,IT策略可适用于的应用通过读取IT策略数据来寻找可应用的IT策略规则,进行响应。在已对可应用应用或配置文件应用了IT策略规则后,IT策略模块346向主机系统发回确认,以指示接收到并成功应用了IT策略数据。
根据所公开的实施例,如将于以下更详细地描述的那样,拥塞响应模块348可以被提供为:响应于接收到标记为“经历拥塞”的分组或未标记分组,使用网络102提供的或在用户设备300上配置的一个或多个速率适配序列,来适配用户设备300的比特率。拥塞响应模块348可以包括一个或多个独立模块,或者可以被整体或部分地实现为另一模块(如,连接模块344)的一部分。
也可以在用户设备300上安装其它类型的程序或软件应用。这些软件应用可以是在用户设备300制造完成后添加的第三方应用。第三方应用的示例包括:游戏、计算器、实用工具等。
可以通过无线网络102、辅助I/O子系统312、数据端口314、短程通信子系统322或任何其他合适的设备子系统324将附加应用加载到用户设备300上。应用安装的这种灵活性增加了用户设备300的功能,并且可以提供增强型在设备上功能、通信相关功能或同时提供两种功能。例如,安全通信应用可以使得能够使用用户设备300来执行电子商业功能和其他这样的金融交易。
数据端口314使订户能够通过外部设备或软件应用设置偏好,并在不通过无线通信网络的情况下,通过向用户设备300提供信息或软件下载来扩展用户设备300的能力。例如,可以使用备选的下载路径,通过直接从而可靠和可信的连接将加密密钥加载到用户设备300上,以提供安全的设备通信。
数据端口314可以是使用户设备300和另一计算设备能够进行数据通信的任意合适的端口。数据端口314可以是串口或并口。在一些实例中,数据端口314可以是USB端口,包括用于数据传输的数据线,以及可以提供充电电流以对用户设备300的电池330充电的电源线。
短程通信子系统322在不使用无线网络102的情况下提供用户设备300与不同系统或设备之间的通信。例如,子系统322可以包括用于短程通信的红外设备以及相关联的电路和组件。短程通信标准的示例包括:红外数据协会(IrDA)所开发的标准、蓝牙、以及IEEE所开发的802.11系列标准。例如,短程通信可以包括但不限于2.4GHz频段或5.8GHz频段内的射频信号。
在使用中,接收到的信号(如,文本消息、电子邮件消息或网页下载)将由通信子系统304处理并输入到主处理器302。然后,主处理器302将处理接收到的信号以输出到显示器310,或备选地输出到辅助I/O子系统312。订户也可以对数据项目(如,电子邮件消息)进行编辑,例如,使用键盘316结合显示器310以及可能的辅助I/O子系统312来进行编辑。辅助子系统312可以包括如下设备:触摸屏、鼠标、轨迹球、红外指纹检测器、或具有动态按键能力的滚动轮等。优选地,键盘316是字母数字键盘或电话型键区。然而,也可以使用其它类型的键盘。可以通过无线网络102经由通信子系统304来传输编辑后的项目。
对于语音通信,除了将接收到的信号输出到扬声器318,以及用麦克风320产生用于发送的信号外,用户设备300的总体操作实质上是类似的。还可以在用户设备300上实现备选的语音或音频I/O子系统(如,语音消息记录子系统)。虽然语音或音频信号输出主要通过扬声器318实现,也可以使用显示器310来提供附加信息,如,主叫方的身份、语音呼叫的持续时间、或其它与语音呼叫有关的信息。
下面参照图4,示出了图3的用户设备300的通信子系统组件304的框图。通信子系统304包括:接收机450和发射机452及相关组件(如,一个或多个嵌入或内置的天线元件454和456、本地振荡器(LO)458);以及处理模块(如,数字信号处理器(DSP)460)。通信子系统304的具体设计和实现取决于用户设备300与其一起操作的通信网络102。因此,应理解图4中所示的设计仅仅充当一个示例。
将天线454通过无线网络102接收到的信号输入到接收机450,接收机450可执行如信号放大、下变频、滤波、信道选择和模数(A/D)转换等常见的接收机功能。对接收信号的A/D转换允许在DSP 460中执行更复杂的通信功能,如,解调和解码。以相似的方式,DSP 460对要发送的信号进行处理,例如包括调制和编码。这些DSP处理后的信号被输入发射机452以进行数模(D/A)转换、上变频、滤波、放大并经由天线456在无线网络102上发送。DSP 460不仅处理通信信号,还提供接收机和发射机控制。例如,通过在DSP 460中实现的自动增益控制算法,可以对施加到接收机450和发射机452中的通信信号的增益进行自适应控制。
用户设备300和无线网络102间的无线链路可以包含一个或多个不同的信道(典型地,不同的RF信道),以及在用户设备300和无线网络102间使用的相关协议。RF信道是必须节约的有限的资源,通常这是由于总带宽的限制和用户设备300的有限的电池功率。
当用户设备300完全操作时,通常仅当发射机452向无线网络102发送时才激活或开启发射机452,否则关闭发射机452以节约资源。类似地,周期性地关闭接收机450以节约功率,直至需要在指定时段期间接收信号或信息为止。
所公开的实施例中的一个或多个适用于以上关于图1-4描述的通信类型和标准以外的通信类型和标准。例如,非限制性地,可以使用先进LTE来实现不同的说明性实施例。此外,所示的无线网络可以采取4G网络的形式或包括4G网络。
下面转向图5,根据说明性实施例示出了数据处理系统500的图。在该示例中,数据处理系统500是图2中节点202中处理系统208的实现示例。数据处理系统500或其部分还可用于实现如图3所示的用户设备300的一个或多个功能。在该说明性示例中,数据处理系统500包括:通信结构502,在处理器单元504、存储器506、永久性存储器508、通信单元510、输入/输出(I/0单元512和显示器514间提供通信。
处理器单元504服务用于执行可以加载至存储器506中的软件的指令。根据具体实现,处理器单元504可以是一个或多个处理器的集合,或者可以是多处理器核。此外,可以使用一个或多个异类处理器系统来实现处理器单元504,其中,主处理器与辅处理器一起存在于单个芯片上。作为另一说明性示例,处理器单元504可以是包含多个相同类型处理器的对称多处理器系统。
存储器506和永久性存储器508是存储设备516的示例。存储设备是能够临时和/或永久地存储信息(例如,非限制性地,数据、函数形式的程序代码、和/或其他适当信息)的任意硬件。这这些示例中存储器506可以是例如随机存取存储器、或者任何其他适当的易失性或非易失性存储设备.根据具体实现,永久性存储器508可以采取各种形式。例如,永久性存储器508可以包含一个或多个组件或设备。例如,永久性存储器508可以是硬盘驱动器、闪存、可重写光盘、可重写磁带、或以上的某种组合。永久性存储器508所使用的介质可以是可移除的。例如,可以将可移除硬盘用于永久性存储器508。
在这些示例中,通信单元510提供与其他数据处理系统或设备的通信。在这些示例中,通信单元510是网络接口卡。通信单元510可以通过使用物理和无线通信链路之一或两者来提供通信。
输入/输出单元512允许从可连接数据处理系统500的其他设备输入数据以及向其他设备输入数据。例如,输入/输出单元512可以为通过键盘、鼠标和/或某些其他适当的输入设备的用户输入提供连接。此外,输入/输出单元512可以向打印机发送输出。显示器514提供向用户显示信息的机制。
操作系统、应用和/或程序的指令可以位于存储设备516中,存储设备516通过通信结构502与处理器单元504通信。在这些说明性示例中,指令以函数形式位于永久性存储器508上。这些指令可以加载至存储器506中,以被处理器单元504运行。处理器单元504可以使用计算机执行的指令来执行不同实施例的处理,所述计算机执行的指令可以位于存储器(如,存储器506)中。
这些指令被称为程序代码、计算机可用程序代码、或计算机可读程序代码,可由处理器单元504中的处理器读取并运行。在不同的实施例中,程序代码可以实现在不同的物理或计算机可读存储介质(如,存储器506或永久性存储器508)上。
程序代码518以函数形式位于选择性地可移除的计算机可读介质520中,并且可以被加载在数据处理系统500或传输至数据处理系统500以被处理器单元504运行。程序代码518和计算机可读介质520形成计算机程序产品522。在一个示例中,计算机可读介质520可以是计算机可读存储介质524或计算机可读信号介质526。例如,计算机可读存储介质524可以包括:插入或放入驱动器中的光盘或磁盘;或者用于在存储设备上传输的、作为永久性存储器508的一部分的其他设备(如,作为永久性存储器508的一部分的硬盘驱动器)。计算机可读存储介质524还可以采取永久性存储器(如,连接至数据处理系统500的硬盘驱动器、指状储存器或闪存)的形式。在某些实例中,计算机可读存储介质524也许不能从数据处理系统500移除。
可选地,可以使用计算机可读信号介质526将程序代码518传输至数据处理系统500。计算机可读信号介质526可以是例如包含程序代码518的传播数据信号。例如,计算机可读信号介质526可以是电磁信号、光信号、和/或任何其他适当类型的信号。这些信号可通过通信链路(如,无线通信链路、光纤电缆、同轴电缆、有线和/或其他适当类型的通信链路)发送。换言之,在说明性示例中,通信链路和/或连接可以是物理的或无线的。
在一些说明性实施例中,程序代码518可以通过网络从另一设备或数据处理系统经由计算机可读信号介质526下载至永久性存储器508,以在数据处理系统500中使用。例如,存储在服务器数据处理系统中的计算机可读存储介质中的程序代码可以通过网络从服务器下载至数据处理系统500。提供程序代码518的数据处理系统可以是服务器计算机、客户端计算机、或者能够存储并发送程序代码518的某些其他设备。
针对数据处理系统500示出的不同组件并非意在提供对可以实现不同实施例的方式的架构限制。除了或者取代针对数据处理系统500示出的组件,不同的说明性实施例还可以在包括其他组件在内的数据处理系统中实现。图5中示出的其他组件可以不同于所示的说明性示例。可以使用能够执行程序代码的任何硬件设备或系统来实现不同的实施例。作为一个示例,数据处理系统500可以包括与无机组件集成的有机组件和/或可以整个由不包括人的有机组件组成。例如,存储设备可由有机半导体组成。
作为另一示例,数据处理系统500中的存储设备是可以存储数据的任何硬件装置。存储器506、永久性存储器508和计算机可读介质520是有形形式的存储设备的示例。
在另一示例中,总线系统可用于实现通信结构502,并且总线系统可由一个或多个总线(如,系统总线或输入/输出总线)组成。当然,可以使用在附接至总线系统的不同组件或设备间提供数据传输的任何适当类型的架构来实现总线系统。此外,通信单元510可以包括用于发送和接收数据的一个或多个设备,如,调制解调器或网络适配器。此外,存储器可以是例如存储器506或者诸如在可能存在于通信结构502中的接口和存储器控制器找到的高速缓存。
图1-5中硬件组件的示意并非意在暗示对可以实现不同说明性实施例的方式的物理或架构限制。除了或取代所示组件,还可以使用其他组件。在某些说明性实施例中,某些组件可能是非必要的。此外,框被呈现为示意一些功能组件。当在不同的说明性实施例中实现时,这些框中的一个或多个可以被组合或者被划分为不同的框。
下面转向图6,根据说明性实施例描述示出了通信环境600的框图。图1的通信网络100是图6的通信环境600的一个实现的示例。通信环境600包括与用户设备604相关联的一个或多个网络602。图1中的无线网络102是图6中的网络602的一个实现的示例。图1中的用户设备104和图3中的用户设备300是图6中用户设备604的示例。如以上讨论的,用户设备604可以包括各种设备,如,包括寻呼机、蜂窝电话、蜂窝智能电话、无线组织器、个人数字助理、计算机、膝上电脑、手持无线通信设备、具有无线能力的笔记本计算机等的移动无线通信设备。在操作中,用户设备604按上述方式经由无线通信信道605与网络602通信。因此,网络602和用户设备604经由无线信道605交换数据分组。
网络602包括一个或多个网络节点606。图2的无线网络节点202是图6的节点606的一个示例。如上所述,节点606可以包括基站收发机站。一般地,节点606可以包括任何装置、设备、设备组或者当数据分组通过网络602时发送、接收或以其他方式处理数据分组的功能。因此,如上所述,节点606可以自身包括用户设备,用户设备是网络602的一部分或与网络602通信。
根据说明性实施例,节点606包括用于执行拥塞检测608功能的模块。可以使用目前已知的或变为已知的任何用于检测网络602上的拥塞的系统或方法来实现该功能。优选地,拥塞检测608可以包括:不断估计节点606处或网络602中可能影响网络602对要运送至用户设备604或从用户设备604接收的数据分组的处理的任意其他位置处的拥塞等级。当拥塞的当前等级大于所选阈值时,可以认为检测到拥塞。当拥塞的当前等级小于所选阈值时,未检测到拥塞。
节点606或另一网络单元内的拥塞估计可以是以多种不同测量(信号功率、干扰的无线相关测量或其他无线相关测量中的一个或多个;以及诸如要在节点606中处理的排队数据的量、排队延迟或其他测量等其他测量)作为输入的组合测度。可以使用对拥塞估计或对确定是否认为检测到拥塞的修改。这样的修改可以包括对拥塞估计进行滤波、对拥塞阈值应用迟滞或其他修改中的一个或多个。拥塞估计方法以及针对拥塞检测608采用的所选阈值可以根据执行拥塞检测608或要确定拥塞的具体网络节点606或其他单元而变化。
根据说明性实施例,网络节点606包括用于执行数据分组标记610功能的模块。数据分组标记610包括标记要发送至用户设备604的数据分组。如果认为检测到拥塞,就以指示“经历拥塞”的标记来标记数据分组。如果未检测到拥塞,不标记数据分组。
指示“经历拥塞”的分组标记可以包括:使用当前使用的或针对显式拥塞通知提出的标记。这样的标记包括:将分组的互联网协议(IP)首部中的两个比特标记为‘11’。根据要发送的数据和分组的类型,根据说明性实施例的将分组标记为“经历拥塞”可以采用其他标记机制,并且可以包括:在首部和/或数据分组的其他部分进行标记。
节点606包括用于以常规方式经由无线通信信道605向用户设备604发送数据分组612(包括标记的和未标记的分组)的结构和功能。类似地,用户设备604包括:以常规方式接收从网络602发送的数据分组618的结构和功能。
根据说明性实施例,可以以一个或多个可适配编解码器速率620在网络602和用户设备604间传输数据分组。根据说明性实施例,发送方(如,节点606)和接收方(如,用户设备604)被构造或适配和配置为:支持多个编解码器速率620。多个编解码器速率620还可称为模式集合。多个编解码器速率620的示例包括:4.75kbps、7.4kbps、12.2kbps等自适应多速率编解码器速率。
根据说明性实施例,用户设备604包括拥塞响应模块622。可以用软件、固件等(如,运行在主处理器或用户设备604中提供的另一处理器上的软件)实现拥塞响应模块622的功能。拥塞响应模块622的功能包括:检测用户设备604接收的标记的数据分组624的功能;以及响应于检测到的用户设备604接收的标记的和未标记的数据分组来执行编解码器速率适配序列626的功能。如将于以下更详细地讨论的,编解码器速率适配序列626可以包括:编解码器速率降低序列628和编解码器速率增加序列630。
根据说明性实施例,当不存在拥塞时,并且没有任何与显式拥塞通知无关的约束,假设发送方使用在发送方和接收方之间建立的模式集合中的最高编解码器速率。当接收方(如,用户设备604)接收到标记为“经历拥塞”(指示网络602中的拥塞)的分组时,接收方决定适配为模式集合中的哪个较低速率编解码器。该响应于拥塞的速率适配由编解码器速率降低序列628限定。当拥塞清除时,接收机将接收并检测到未标记的数据分组。如果一个或多个较高编解码器速率可用,接收机决定适配为哪个较高速率编解码器或保持在当前编解码器速率。该响应于清除拥塞的速率适配由编解码器速率增加序列630限定。
编解码器速率适配序列626(包括编解码器速率降低序列628和编解码器速率增加序列630)可以包括由网络602提供的系统级配置参数。网络提供的编解码器速率适配序列626可以是静态的或动态的。例如,编解码器速率适配序列626参数可以静态地存储在作为网络602的一部分的家庭订户系统(HSS)中。可选地,可以例如根据预期的拥塞和处理要求和能力,在网络602上的分组数据网络(PDN)网关(PGW)处动态确定编解码器速率适配序列626参数。来自网络602的编解码器速率适配序列626可以存储在网络发送方和接收方端点(如,用户设备604)中,作为给定用户设备604的已知参数。编解码器速率适配序列626可以在附接或跟踪区域更新(TAU)/路由区域更新(RAU)/位置区域更新(LAU)响应上被发送至端点。对于静态的编解码器速率适配序列626,针对一个呼叫或多个呼叫,可以仅向端点发送一次序列参数。编解码器速率适配序列626参数可以经由系统消息从网络602传送至接收终端(如,用户设备604)。例如,可以使用用户设备附接、用户设备服务请求和切换过程将编解码器速率适配序列626参数传送至用户设备604。
作为网络602提供的速率适配序列626的备选或者除了网络602提供的速率适配序列626,还可以为端点发送方和接收方(如,用户设备604)配置优选编解码器速率适配序列626。在该情况下,端点可以按照此处描述的方式根据配置来适配编解码器速率。如果配置了编解码器速率适配序列626的接收方(如,用户设备604)还从网络602接收到编解码器速率适配序列626,可以进行操作确定,以确定来自网络602或在接收方604配置的两个编解码器速率适配序列626中的哪一个将取得优先。在该情况下,网络602可以向接收方604通知该优先,或者可以在接收方604配置该优先。在接收方604配置的编解码器速率适配序列626中的一个或多个或者优先信息可由开放移动联盟(OMA)设备管理(DM)对象根据操作策略提供。
如果编解码器速率适配序列626(如,编解码器速率降低序列628或编解码器速率增加序列630)未被网络602指定或未在用户设备604上配置,可以使用缺省的编解码器速率适配序列626。缺省的编解码器速率适配序列626可以遵循呼叫设立时在用户设备604和网络602协商的编解码器集合中编解码器速率的顺序。例如,如果协商的编解码器速率集合是(4.75kbps、7.4kbps、12.2kbps),则缺省的编解码器速率降低序列628可以是(12.2kbp、7.4kbps、4.75kbps),并且缺省的编解码器速率增加序列630可以是(4.75kbps、7.4kbps、12.2kbps)。
编解码器速率适配序列626的编解码器速率参数值可以被指示为标量值。例如,编解码器速率适配序列626速率参数值1、2和3可以分别指示对应的模式集合比特率4.75kbps、7.4kbps和12.2kbps。可选地,编解码器速率适配序列626可以直接指示用于适配的实际编解码器速率。
编解码器速率降低序列628和编解码器速率增加序列630对于各自的速率适配序列可以使用相同的但反向或反序的速率集合。例如,如果编解码器速率增加序列630使用序列(4.75kbps、7.4kbps、12.2kbps)来响应于拥塞清除增加编解码器速率,则编解码器速率降低序列628可以使用序列(12.2kbps、7.4kbps、4.75kbps)来响应于拥塞检测降低编解码器速率。
可选地,针对编解码器速率降低序列628和编解码器速率增加序列630可以配置两个不同的速率集合,一个速率集合用于响应于检测到拥塞降低编解码器速率,另一个编解码器速率的集合用于响应于拥塞清除增加编解码器速率。例如,编解码器速率降低序列628可以是(12.2kbps、4.75kbps),编解码器速率增加序列630为(4.75kbps、7.4kbps、12.2kbps)。在该示例中,当检测到拥塞时,速率在一步中从12.2kbps降低至4.75kbps。然而,当拥塞清除时,编解码器速率在两步中从4.75kbps增加至7.4kbps并从7.5kbps增加至12.2kbps。
根据说明性实施例,如果接收终端(如,用户设备604)接收到标记为“经历拥塞”的数据分组,则编解码器速率在协商或指定的编解码器速率的集合内降低一步,或者根据编解码器速率降低序列628降低一步。编解码器速率降低可由用户设备604通过产生并向节点606发送适当的编解码器速率改变请求648来实现。此时,启动在用户设备604中提供的编解码器速率降低抑制定时器632。当编解码器速率降低抑制定时器632正在运行时,将不会进一步降低编解码器速率,即使在此期间接收到另一标记的数据分组也是如此。
此处,编解码器速率降低抑制定时器632启动后运行的时间长度被称为编解码器速率降低抑制时间634。优选地,编解码器速率降低抑制时间634应被设置为比两个通信端点间(如,节点606和用户设备604间)的往返时间加上某一附加观测时间长的值。因此,速率降低抑制时间634的设置应允许足够的时间,以便接收方从发送方请求降低的编解码器速率,发送方切换至降低的速率,以及接着经历拥塞并将数据分组标记为“经历拥塞”的网络单元(如,节点606)观测到拥塞已被清除并停止标记分组。根据说明性实施例,可以将任何适当或期望的时间长度用于编解码器速率降低抑制时间634。根据说明性实施例,编解码器速率降低抑制时间634可以是可配置的636或固定的638。编解码器速率降低抑制时间634可由网络602(如,经由非接入层(NAS)或呼叫设立消息)动态提供。
如果速率降低未缓解网络602上的拥塞,节点606可以继续标记数据分组,以触发编解码器速率的进一步降低。如果接收终端在编解码器速率降低抑制定时器632超时后接收到标记为“经历拥塞”的数据分组,如果当前编解码器速率不是模式集合中最低的编解码器速率,接收终端可以诸如根据编解码器速率降低序列628,发起次低的速率编解码器适配。
如果网络602上的拥塞情形在网络602(通过将数据分组标记为“经历拥塞”以向接收机指示发起编解码器速率降低以进行拥塞控制)触发了编解码器速率降低一段时间后尚未改善,则网络602可以确定必须向接收方通知需要继续的编解码器速率降低。网络602可以通过向接收方发送与编解码器速率适配继续有关的特定通知,向接收方(如,用户设备604)通知需要继续的编解码器速率降低。因此,根据说明性实施例,节点606可以包括提供编解码器速率适配继续通知614的模块或功能。
当接收到编解码器速率适配继续通知时,如果当前编解码器速率不是最低的编解码器速率,接收方(如,用户设备604)可以适配至次低的速率编解码器速率。在某些特殊情形下(如,当网络602严重拥塞时),编解码器速率适配继续通知可以向接收方通知立即发起最低的编解码器速率。因此,网络602(如,节点606)例如经由广播或到网络端点(如,用户设备604)的特定消息发送的编解码器速率适配继续通知消息可以包括编解码器速率适配继续通知型指示符,该指示符可以取两值之一,以指示编解码器速率适配至次低的编解码器速率还是编解码器速率适配至最低的编解码器速率。
除了向接收方(如,用户设备604)发送编解码器速率适配继续通知以使接收方向发送方(如,节点606)发起继续的编解码器速率降低之外,网络602可以直接向发送方(如,节点606)发送编解码器速率适配继续通知。如此,可以直接向发送方通知降低发送编解码器速率,而无需从接收方发起。在某些情况下,这可以使拥塞控制加速。
根据说明性实施例,使用编解码器速率适配继续通知来减轻拥塞可以与如上所述的使用对数据分组的“经历拥塞”标记的用于拥塞减轻的编解码器速率适配兼用或专用。在根据说明性实施例的继续的编解码器速率适配不足以清除拥塞情形的情况下,网络602可以采用其他类型的拥塞控制机制,如,丢弃分组或服务。
根据说明性实施例,当编解码器速率响应于用户设备604接收到标记为“经历拥塞”的数据分组而降低时,可以启动在用户设备604中提供的编解码器速率增加定时器640。编解码器速率增加定时器640适于对编解码器速率增加时间642计时。编解码器速率增加时间642典型地可以远长于编解码器速率降低抑制时间634。例如,编解码器速率增加时间642可以被选为10秒或更多。根据说明性实施例,可以将任何其他适当或期望的时间长度用于编解码器速率增加抑制时间642。对编解码器速率增加时间642使用较长时段是优选的,这是由于在拥塞清除后增加编解码器速率不如及时的编解码器速率降低以进行拥塞控制关键。使用较长的编解码器速率增加时间642还能够降低编解码器适配在编解码器速率降低和增加之间摆动的可能。编解码器速率增加时间642的至少一部分可以是随机的644。在编解码器速率增加时间642中使用随机元素也有助于避免在编解码器速率降低和增加之间摆动,如果网络节点支持的许多用户设备在各自的编解码器速率增加时间同时期满时同时请求编解码器速率增加,可能导致编解码器速率降低和增加之间的摆动。
根据说明性实施例,当编解码器速率增加定时器640期满时,编解码器速率可以在协商的编解码器速率的集合内增加一步或根据编解码器速率增加序列630更加一步。编解码器速率增加可由用户设备604通过产生并向节点606发送适当的编解码器速率改变请求648来实现。当编解码器速率增加定时器640运行时接收到被标记为“经历拥塞”的数据分组时,则接收方(如,用户设备604)将以上述方式降低编解码器速率,并且编解码器速率增加定时器640将重新启动646。此外,当编解码器速率增加定时器640期满时,编解码器速率增加定时器640将重新启动646,以允许编解码器速率在编解码器速率增加定时器640期满时再次增加。如此,说明性实施例提供了一种机制,通过该机制,如果不存在任何其他约束,编解码器速率能够逐步回升至其最高值。
根据说明性实施例,编解码器速率降低抑制定时器632和编解码器速率增加定时器640可以独立操作。可选地,当编解码器速率降低抑制定时器632运行时可以不重置646编解码器速率增加定时器640。然而,由于编解码器速率降低抑制时间634与编解码器速率增加时间642相比可能极短,两种选项间可能存在极小的性能差异。
根据备选的说明性实施例,为了在编解码器速率增加定时器640运行时重新启动解码器速率增加定时器640的目的可以忽略用户设备604接收到的标记为“经历拥塞”的数据分组。在该情况下,当编解码器速率增加定时器640运行时接收到标记分组时,不重新启动编解码器速率增加定时器640。在该备选实施例中,当编解码器速率增加定时器640期满时,用户设备604检查编解码器速率增加定时器640运行时是否接收到标记分组。如果在编解码器速率增加定时器640运行时未接收到标记分组,则可以增加编解码器速率,并且可以重新启动编解码器速率增加定时器640。然而,如果在编解码器速率增加定时器640运行时接收到标记分组,则在不增加编解码器速率的情况下重新启动编解码器速率增加定时器640。在该情况下,可能增加编解码器速率的下一可能时间是编解码器速率增加定时器640下次期满时。与上述无论何时在编解码器速率增加定时器640运行时接收到标记分组都重新启动编解码器速率增加定时器640的方式相比,该备选方式可能更简单。然而,在刚启动编解码器速率增加定时器640就接收到标记分组且在编解码器速率增加定时器640运行时未接收到其他标记分组的情况下,该方式具有使增加编解码器速率的时间几乎加倍的效果,这是由于用户设备604在增加编解码器速率前必须等待几乎两个完整的编解码器速率增加时段。
除了在灾难情形下,此处公开的基于显式拥塞通知的用于拥塞控制的编解码器适配对于优先用户或者优先或紧急服务可能是不期望的。因此,根据说明性实施例,用户设备604可以包括提供优先/紧急处理650的适当功能。
紧急服务通常通过紧急承载(如,以紧急附接或紧急公共数据网络(PDN)连接建立建立的连接)执行。因此,网络602可以不使此处描述的显式拥塞通知用于紧急承载,并且用户设备604的优先/紧急处理650可以包括:知晓不在紧急承载上应用此处描述的编解码器速率适配。
根据说明性实施例,在正常操作下,优先/紧急处理650规定:将不对优先用户和优先/紧急服务应用此处描述的编解码器速率适配。然而,如果灾难情形发生,可以对系统做出大量同时的服务请求,如,紧急呼叫。根据说明性实施例,如果这样的紧急呼叫的数目超过特定阈值数目或紧急呼叫占所有呼叫的百分比超过阈值百分比,优先/紧急处理650可以提供:对这样的紧急呼叫应用此处描述的编解码器速率适配。可以通过网络602在灾难情形发生时在针对紧急服务的分组传送中将数据分组标记为“经历拥塞”并在其他情况下不标记这样的分组,来实现当这样的灾难情形发生时对紧急呼叫的处理。
根据说明性实施例,优先/紧急处理650可以规定:极特殊用户的极高优先级用户设备604无需按照本地公共陆地移动网络(HPLMN)运营商的策略控制规则和/或授权执行此处描述的编解码器速率降低。可以不允许极高优先级的用户设备忽略访问公共陆地移动网络(VPLMN)运营商的编解码器速率降低。
图6的示意并非意在暗示对可以实现不同实施例的方式的物理或架构限制。除了和/或取代所示组件,还可以使用其他组件。在某些实施例中,某些组件可能是非必要的。此外,框被呈现为示意一些功能组件。当在不同的有利实施例中实现时,这些框中的一个或多个可以被组合和/或被划分为不同的框。
图7示出了根据说明性实施例的编解码器速率降低的示例。图7中给出的示例示出了当在网络节点内检测到在从网络到用户设备的下行链路方向上的拥塞时根据说明性实施例的编解码器速率降低。起初,以12.2kbps的速率经由网络804和网络节点706(如,eNodeB网络节点)向用户设备(UE)708中的MTSI客户端传送来自发送方对等的IP多媒体子系统的多媒体电话服务(MTSI)客户端702的数据分组。起初未经历拥塞,因此节点706不将数据分组标记为“经历拥塞”(CE)。某些时刻,在节点710中检测到拥塞。响应于检测到拥塞,节点706开始将数据分组标记为“经历拥塞”。用户设备708接收到这样的标记分组。响应于接收到标记分组,用户设备708将编解码器速率降低一步712。用户设备708的编解码器速率降低包括:经由节点706和网络704向客户端702发回带有编解码器模式请求(CMR)的分组714,请求速率改变为7.4kbps。在请求速率改变的同时,用户设备708使编解码器速率降低抑制时间716和编解码器速率增加时间718开始进行。
当在节点706中继续检测到拥塞时,继续标记数据分组。然而,只要编解码器速率降低抑制时间716正在进行,用户设备708接收的标记分组将不导致进一步的速率降低。最终,客户端720接收到请求的速率改变,并且速率根据用户设备708的请求降低至7.4kbps。继续由节点706标记分组,直至最终降低的编解码器速率导致将节点706中的拥塞清除。节点706检测到该拥塞缓解722,并且因此此时停止标记分组。在编解码器速率抑制时间716期望721时,拥塞已被清除,分组未被节点706标记,并且因此用户设备708不发起进一步的编解码器速率降低。
图8中示出了根据说明性实施例的编解码器速率增加的示例。图8中给出的示例示出了当未在网络节点内检测到拥塞时在从网络到用户设备的下行链路方向上根据说明性实施例的编解码器速率增加。起初,以5.9kbps的速率经由网络804和网络节点806(如,eNodeB网络节点)向用户设备(UE)808中的MTSI客户端传送来自发送方对等的IP多媒体子系统的多媒体电话服务(MTSI)客户端802的数据分组。未在节点812中检测到拥塞,因此节点806不将数据分组标记为“经历拥塞”(CE)。由于之前的速率降低,编解码器速率增加定时器正在运行814。只要编解码器速率增加定时器正在运行,客户端808就不尝试增加编解码器速率,即使客户端808接收到的数据分组未被标记(指示不存在拥塞)也是如此。
最终,编解码器速率增加定时器期满816。响应于编解码器速率增加定时器期满,用户设备808将编解码器速率增加一步818。用户设备808的编解码器速率增加包括:经由节点806和网络804向客户端802发回带有编解码器模式请求(CMR)的分组820,请求速率增加至7.4kbps。在请求速率增加的同时,用户设备808重新启动编解码器速率增加定时器822。最终,客户端802接收来自用户设备808的速率增加请求,并且客户端802根据请求将传输速率增加至7.4kbps 824。进一步增加的编解码器速率不导致拥塞,从而继续不标记数据分组。
最终,重新启动的编解码器速率增加定时器期满826。响应于编解码器速率增加定时器再次期满,用户设备808将编解码器速率增加一步828。用户设备808的该编解码器速率增加包括:经由节点806和网络804向客户端802发回带有编解码器模式请求(CMR)的分组830,请求速率增加至12.2kbps。在请求速率增加的同时,用户设备808重新启动编解码器速率增加定时器832。最终,客户端802接收来自用户设备808的速率增加请求,并且客户端802根据请求将传输速率增加至12.2kbps 834。进一步增加的编解码器速率不导致拥塞,从而继续不标记数据分组。
图9的流程图示出了根据说明性实施例的编解码器速率降低的示例方法900。方法900可以例如在用户设备(如,图3的用户设备300)中实现。优选地连续检查接收到的数据分组,以确定何时检测到标记为“经历拥塞”的分组(步骤902)。将检测到标记分组时,如果可能,降低速率(步骤904)。例如,步骤904可以包括:将编解码器速率在协商或指定的编解码器速率的集合内降低一步;或者根据编解码器速率降低序列降低一步。如果编解码器速率已处于最低速率,不可能降低编解码器速率。步骤904可以包括:产生并从用户设备向网络发送适当的编解码器速率改变请求。优选地,与步骤904基本同时或同时启动编解码器速率降低抑制定时器(步骤906)。可以按任意顺序执行步骤904和906。直到编解码器速率降低抑制定时器期满为止,不采取进一步措施来降低速率,即使在此期间接收到另一已标记数据分组也是如此。当确定编解码器速率降低抑制定时器已经期满时(步骤908),方法返回步骤902,以查找指示需要进一步速率降低的已标记数据分组。
图10的流程图示出了根据说明性实施例的编解码器速率增加的示例方法100。方法1000可以例如在用户设备(如,图3的用户设备300)中实现。方法1000起始于启动编解码器速率增加定时器(步骤1002)。确定在编解码器速率增加定时器运行期间是否接收到标记为“经历拥塞”的分组(步骤1004)。如果在编解码器速率增加定时器运行期间接收到标记分组,通过返回步骤1002重新启动编解码器速率增加定时器。确定编解码器速率增加定时器何时期满(步骤1006)。当编解码器速率增加时间期满时,确定当前速率是否为最高速率(步骤1008)。如果确定当前速率是最高速率,则进一步的速率增加是不可能的,并且通过返回步骤1002重新启动编解码器速率增加定时器。如果确定当前速率不是最高速率,则增加编解码器速率(步骤1012)。步骤1012可以包括:将编解码器速率在协商的编解码器速率的集合中增加一步;或者根据编解码器速率增加序列增加一步。步骤1012可以包括:产生并从用户设备发送适当的编解码器速率改变请求。在增加速率后通过返回步骤1002重新启动编解码器速率增加定时器。
图11的流程图示出了根据说明性实施例的编解码器速率增加的另一方法1100的示例。方法1100可以例如在用户设备(如,图3的用户设备300)中实现。方法1100起始于启动编解码器速率增加定时器(步骤1102)。确定编解码器速率增加定时器何时期满(步骤1104)。当确定编解码器速率增加定时器已经期满时,确定在编解码器速率增加定时器计时的速率增加时间期间是否接收到标记为“经历拥塞”的分组(步骤1106)。如果在速率增加时间期间接收到标记分组,通过返回步骤1102重新启动编解码器速率增加定时器。如果在速率增加时间期间未接收到标记分组,确定当前速率是否为最高速率(步骤1108)。如果当前速率是最高速率,速率增加是不可能的,并且通过返回步骤1102重新启动编解码器速率增加定时器。如果当前速率不是最高速率,增加编解码器速率(步骤1112)。步骤1112可以包括:将编解码器速率在协商的编解码器速率的集合中增加一步;或者根据编解码器速率增加序列增加一步。步骤1112可以包括:产生并从用户设备发送适当的编解码器速率改变请求。在增加速率后通过返回步骤1002重新启动编解码器速率增加定时器。
图12的流程图示出了根据说明性实施例的速率适配方法1200的另一示例。根据方法1200,使用显式拥塞通知(ECN)对编解码器速率的适配由编码速率降低抑制时间和编码速率增加时间两个参数控制。可以基于运营商策略例如使用开放移动联盟设备管理(0MA-DM)将这些参数配置于IP多媒体子系统的多媒体电话服务(MTSI)客户端中。如果未配置参数,则可以分别使用200ms和10秒的缺省值。
确定支持并已协商了ECN的终端中的接收MTSI客户端是否在接收到的互联网协议/用户数据报协议/实时传输协议(IP/UDP/RTP)分组中检测到ECN“经历拥塞”(CE)标记(步骤1202)。如果接收到标记分组,确定接收MTSI客户端是否已操作于最低的编解码器速率(步骤1204)。如果MTSI客户端尚未操作于最低的编解码器速率,终端中的接收MTSI客户端将编解码器速率在协商的编解码器速率的集合内降低一个编解码器速率(步骤1206)。终端中的接收MTSI客户端经由RTP有效载荷中的编解码器模式请求(CMR)比特(如果编解码器支持)并且经由临时最大媒体流比特率请求(TMMBR)消息(如果编解码器的RTP有效载荷不支持CMR字段)向发送方通知新的编码速率(步骤1208)。终端中的MTSI客户端以编解码器速率降低抑制时间的值启动编解码器速率降低抑制定时器(步骤1210)。终端中的MTSI客户端以编解码器速率增加时间的值启动编解码器速率增加定时器或者(如果已经定时器开始运行)以编解码器速率增加时间的值重新启动编解码器速率增加定时器(步骤1216)。
确定编解码器速率降低抑制定时器是否正在运行(步骤1212)。如果编解码器速率降低抑制定时器正在运行,终端中的接收MTSI客户端将不按接收到的IP/UDP/RTP分组的ECN标记动作0步骤1214)。如果编解码器速率降低抑制定时器期满,终端中的接收MTSI客户端将再次按接收到的IP/UDP/RTP分组的ECN标记动作。
确定编解码器速率增加定时器是否期满(步骤1218)。确定在该时段期间是否未接收到ECN-CE标记的IP/UDP/RTP分组(步骤1220)。确定速率是否已处于最高的编解码器速率(步骤1222)。如果编解码器速率定时器期满并且在该时段期间未接收到ECN-CE标记的IP/UDP/RTP分组并且速率尚未处于最高的编解码器速率,终端中的MTSI客户端将编解码器速率在协商的编解码器速率的集合内增加一个编解码器速率(步骤1224)。终端中的接收MTSI客户端经由RTP有效载荷中的CMR比特(如果编解码器支持)并且经由TMMBR消息(如果编解码器的RTP有效载荷不支持CMR字段)向发送方通知新的编解码器速率(步骤1226)。接着,终端中的接收MTSI客户端以编解码器速率增加时间的值启动编解码器速率增加定时器。
不同的图示实施例中的流程图和框图示出了不同说明性实施例中的装置和方法的某些可能实现的架构、功能和操作。就此而言,流程图或框图中的每个框可以表示模块、段、功能、或者操作或步骤的一部分。在一些备选实现中,框中的功能可以不按图中所示的顺序发生。例如,在一些情况下,根据所涉及的功能,可以实质上同时执行连续示出的框,或者有时可以按相反顺序来执行框。
不同说明性实施例的描述是为了说明和描述的目的而给出的,而非意在穷举或将实施例限制于所公开的形式。对于本领域技术人员而言,多种修改和变形将是显而易见的。在说明性示例中,关于移动电话对用户设备进行了描述。除了或者取代所描述的平台,不同的说明性实施例还可以适用于其他类型的平台,如,移动平台、固定平台、陆基结构、水基结构、空基结构、智能电话、个人数字助理、台式计算机、服务器计算机、机顶盒、游戏控制台、工作站以及任何其他合适的平台。组件可以多种不同方式包括在平台中。例如,组件可以位于平台内,平台外,形成为平台的一部分,机械固定至平台,或以其他方式与平台相关联。
为了最佳地解释实施例的原理、实际应用,以及为了使本领域其它技术人员能够理解进行各种修改(适于所想到的具体使用)的各种实施例的公开,选择和描述了所选择的实施例。例如,可以将各种元件或组件组合或集成在另一系统中,或者可以忽略或不实现特定的特征。