背景技术
当前,许多新兴移动数据应用利用移动宽带连接为用户提供各种类型的数据通信业务,对3G/LTE(Long Term Evolution,长期演进)通信网络带来挑战。应用开发商通常将其服务或解决方案置于移动网络的完整性之上,导致运营商网络面临着日益增加的数据流量的挑战。这些移动数据应用的数据传输从用户参与的角度来分可以分为两种:用户发起的数据传输请求和后台程序发起的数据传输请求。
一些“always on”(永远在线)移动数据业务,例如,即时消息,社交网络等,对移动通信网络带了新的挑战。通常情况下,这些移动数据应用会涉及到服务器和用户设备的交互通信。服务器和用户设备上的应用周期性的交互“心电图”式的数据信息,来保持应用的连接在线,以及避免NAT(Network Address Translation,网络地址转换)映射超时造成的IP会话中断。
除了周期性的保持在线消息外,应用客户端还会生成频繁的位置更新或/和状态更新消息来通知服务器相关的状态更新。一些典型的例子包括用户登录后位置信息的更新,用户的状态更新,用户的活动更新等。这些消息可能是MO(Mobile Original,表示短消息发送到服务器端,即上行)消息,也可能是MT(Mobile Terminated,表示短消息从服务器端发回到用户设备上,即下行)消息,例如,周期性的消息可能来自你的好友的位置改变的信息,也可能来自你自己的位置的改变。
通常用户会安装多个应用,每个应用都会自动的生成这些更新/在线消息。当在线消息和状态更新消息传输完成之后,在检测到用户处于不活动状态,用户设备可能会转移到一个低功率的状态,例如从连接态转移到空闲态,用于节电。因此,当状态更新和在线消息的传输频率高于用户的位置更新的频率时,用户设备需要周期性的经历:空闲态、收到寻呼(下行通信场景下)、重建连接、发送/接收更新消息、回到空闲态的过程。
图1描述了当用户设备经历如此频繁的idle-connected(空闲-连接)模式转换所导致的问题。在图1的最左边,当用户设备完成了数据传输之后,用户设备保持在connected模式一定的时间之后会转换到idle模式以节电。很快的,应用#1生成一个更新消息,用户设备被激活,通过控制面信令来建立连接进行数据传输。比起处于连接态不发送任何消息,用户设备发送信令消息可能会消耗更多的电量。在建立连接之后,用户设备发送更新消息,保持在连接态一段时间后又回到空闲态。当有其他的应用发送或接受更新消息时,这个过程一直重复(例如,应用#4的服务器推送的MT更新消息,应用#2/3生成的更新消息)。
从上面可以看出,用户设备频繁的在连接态和空闲态之间转换会导致两个问题产生:
(1)增加控制面信令:为了发送这些突发的、小量的更新消息,会产生大量的信令开销。为了发送/接受一个更新消息,需要完成一次从空闲到连接态的转化,这会产生巨大的信令开销,包括RAN(Radio Access Network,无线接入网)侧的多个RRC(Radio ResourceControl,无线资源控制)消息(如service request消息,radio bearer establishment/release消息,paging消息),和EPC(Evolved Packet Core,演进核心网)侧的信令消息(如service request消息,connection setup/release消息)
(2)减少用户设备的电池寿命:在最坏的情况下,用户设备刚刚进入空闲态,就有上行或下行的更新消息需要发送后者接收,频繁的在连接态和空闲态之间转换会导致用户设备的电量损耗会增加,这可能比用户设备一直保持在连接状态所耗的电量还要多。
由此可见,用户设备上的多样的移动数据应用的数据传输需求会导致用户设备的控制面信令增加,用户设备耗电增大。
具体实施方式
针对现有技术存在的上述问题,本发明实施例提供了一种上行数据传输的优化方案。在本发明实施例提供的上行数据传输方案中,用户设备在空闲态下时,缓存后台发起的数据传输请求,等到用户设备进入连接态后,再将缓存的数据传输请求进行传输。
为此,本发明实施例在用户设备上的NAS(非接入)层引入NAS层缓存功能模块。NAS层缓存功能模块是一个逻辑上的概念,该模块的主要功能是在用户设备空闲态下缓存后台发起的数据传输请求,在终端进入连接态时,NAS层缓存功能模块将缓存的数据传输请求透传到NAS层处理模块。
图2和图3示出了引入NAS层缓存功能模块前后,用户设备内部逻辑模块的变化情况。从图2和图3可以看出,引入的NAS层缓存功能模块对应用层和NAS层没有太大影响。
下面结合附图对本发明实施例进行详细描述。
参见图4,为本发明实施例提供的上行数据传输流程,当用户设备处于空闲态时,该流程可包括:
步骤401~402,该用户设备中的NAS层缓存功能模块接收到应用层中的应用程序模块(即应用程序)的数据传输请求后,判断该数据传输请求是否需要即时传输;如果是,则转入步骤404,否则转入步骤403。
应用层中的应用程序模块的数据传输请求需要向NAS层发送,此时,NAS层缓存功能模块将接收到该数据传输请求。NAS层缓存功能模块可基于以下原则判断数据传输请求是否需要即时传输:如果数据传输请求是用户发起的,则需要即时传输;如果数据传输请求是后台发起的,则可以无需即时传输。进一步,对于一些特定应用程序,如健康检测软件,其所发起的数据传输请求,无论是后台发起的还是用户发起的,均需要即时传输。这里的“后台发起”和“用户发起”是指以下情况:如果因用户对用户设备的操作,触发应用程序模块发送数据传输请求,则该数据传输请求是用户发起的,例如,用户通过在微博应用的应用程序界面上操作以请求数据更新,该应用程序模块会向NAS层缓存功能模块发送数据传输请求;如果因后台服务触发应用程序模块发送数据传输请求,则该数据传输请求是后台发起的,例如,某些应用中,用户设备需要向服务器发送位置更新请求。
具体的,NAS层缓存功能模块可根据如下判断标准之一或组合,判断数据传输请求是用户发起的还是后台发起的:
i.屏幕或/和键盘锁定是否激活;
ii.用户上次按键操作或是触摸屏幕操作之后的时间间隔;
iii.应用程序模块向低层(即NAS层)提供的指示信息;具体的,应用程序模块可以在向NAS层发送数据传输请求时,发送指示信息,以指示该数据传输请求是用户发起的,还是后台发起的。
iv.数据传输请求所请求的应用的类型。
例如,如果屏幕或/和键盘锁定激活,则可判断出数据传输请求是用户发起的;如果用户上次按键操作或触摸屏幕操作之后的时间间隔小于预设阈值,则可判断出数据请求是用户发起的;如果数据传输请求所请求的应用的类型为短消息,则可判断出数据请求是用户发起的。
步骤403,NAS层缓存功能模块缓存接收到的数据传输请求,并向NAS层处理模块指示有数据缓存。这里向NAS层处理模块指示的方式可以有多种,比如,可采用但不限于以下方式:
(1)原语通知,即通过原语的方式通知给NAS层处理模块;
(2)通过共享参数设置的方法实现,例如,设置一个共享参数pending_data,该参数的取值方式为布尔值,为1表示有数据缓存,为0表示没有数据缓存。NAS层缓存功能模块通过将参数pending_data的值设为1,来通知NAS层处理模块有数据缓存。
步骤404,用户设备发起RRC(Radio Resource Control,无线资源控制)连接建立和服务请求过程,NAS层缓存功能模块将接收到的数据传输请求发给NAS层处理模块,NAS层处理模块通过用户面连接进行数据传输。进一步的,若NAS层缓存功能模块中还缓存有其它数据传输请求,则NAS层缓存功能模块一并将其所缓存的数据传输请求发送给NAS层处理模块。
具体的,NAS层处理模块触发RRC连接建立过程和服务请求过程,以建立用户面连接,其RRC连接建立过程和服务请求过程可采用现有方式实现,如图5所示,在空闲态下,用户设备首先通过RRC connection establishment过程(即图5中的RRC ConnectionRequest消息和RRC Connection Setup消息交互过程)建立同eNB之间的SRB(SignallingRadio Bearer,信号无线承载)用以传输RRC信令,用户设备进入连接态。用户设备通过RRCconnection setup complete(RRC连接建立完成)消息中的NAS container(NAS容器)将NAS消息(即service request message,服务请求消息)发给网络设备,从而发起servicerequest(服务请求)过程。网络设备接收到用户设备的service request消息后,为用户设备建立用户面连接,用于数据传输。
步骤403之后,还包括步骤405:当用户设备进入连接态后,如果NAS层处理模块根据指示信息确定出有缓存的数据传输请求需要传输,则从NAS层缓存功能模块获取缓存的数据传输请求,发起服务请求过程,从而建立用户面连接(在用户面连接未建立的情况下),通过用户面连接将获取到的数据传输请求发送给网络设备。
以上流程中,在NAS层缓存功能模块通过共享参数pending_data的方式,指示是否缓存有数据传输请求的情况下,NAS层处理模块可通过读取该参数的方式确定是否有缓存的数据传输请求,若读取到pending_data值为1,则可得知缓存有数据传输请求,当数据传输完毕之后,NAS层处理模块还要将共享参数pending_data的值清零。
为了更清楚的说明本发明实施例,下面结合2种具体应用场景说明本发明实施例的具体实现过程。
场景一
如图6所示,应用程序模块APPa、APPb、APPc按照时间顺序先后发起数据传输请求,随后TAU(Tracking Area Update,跟踪区更新)过程被触发。其中,应用程序模块APPa、APPb、APPc所发起的数据传输请求均为后台请求。该场景下的上行数据传输过程为:
在用户设备处于空闲态时,APPa发送数据传输请求到NAS层缓存功能模块,NAS层缓存功能模块判断出APPa的数据传输请求是后台发起的,因此缓存APPa的数据传输请求,并向NAS层处理模块指示有数据缓存。此后,APPb、APPc先后发送了数据传输请求到NAS层缓存功能模块,NAS层缓存功能模块判断出数据传输请求都是后台发起的,因此缓存APPb、APPc的数据传输请求。当周期性TAU定时器超时而触发TAU过程,或者因用户移动而触发用户设备发起TAU过程时,用户设备进入连接态,NAS层缓存功能模块将缓存的数据传输请求发送给NAS层,并可在TAU过程中发送的用于触发网络设备进行TAU相应处理的TAU request(TAU请求)消息中携带active flag,以向网络设备指示出用户设备有缓存的数据需要发送。当用户面连接建立之后,用户设备通过用户面连接传输APPa、APPb、APPc的数据。上述流程中,如果NAS层缓存功能模块通过共享参数的方式来实现向NAS层处理模块通知有数据缓存,则在数据传输完毕之后,NAS层处理模块将共享参数的值清零(在该共享参数值等于1时表示有数据缓存的情况下)。
场景二:
如图7所示,应用程序模块APPa按照时间顺序先后发起数据传输请求,其中先发起的数据传输请求为后台请求,随后发起的数据传输请求为用户请求。该场景下的上行数据传输过程为:
在用户设备处于空闲态时,APPa发送数据传输请求到NAS层缓存功能模块,NAS层缓存功能模块判断出APPa的数据传输请求是后台发起的,因此缓存APPa的数据传输请求,并向NAS层处理模块指示有数据缓存。此后,APPa发送数据传输请求到NAS层缓存功能模块,NAS层缓存功能模块判断出APPa的数据传输请求是用户发起的,因此将本次接收到的数据传输请求和缓存的数据传输请求发送给NAS层处理模块,NAS层处理模块发起RRC连接建立和服务请求过程,用户设备进入连接态。当用户面连接建立之后,用户设备通过用户面连接传输APPa的数据。上述流程中,如果NAS层缓存功能模块通过共享参数的方式来实现向NAS层处理模块通知有数据缓存,则在数据传输完毕之后,NAS层处理模块要将共享参数的值清零(在该共享参数值等于1时表示有数据缓存的情况下)。
通过以上描述可以看出,本发明实施例通过对空闲态下接收到的应用层数据传输请求进行判断,对于无需即时传输给网络侧的数据传输请求进行缓存,当用户设备进入连接态时,再将缓存的数据传输请求发送给网络侧,从而与现有技术相比,减少了控制面信令开销,以及用户设备的功率损耗。
基于相同的技术构思,本发明实施例还提供了一种用户设备。
参见图8,为本发明实施例提供的用户设备的结构示意图,该用户设备包括应用程序模块801、NAS层缓存功能模块802和NAS层处理模块803,应用程序模块801处于应用层,NAS层缓存功能模块802和NAS层处理模块803处于NAS层。其中,应用程序模块801为与现有用户设备中的应用层应用程序模块功能相同,NAS层缓存功能模块802和NAS层处理模块803的功能分别如下所述:
NAS层缓存功能模块802,用于当用户设备处于空闲态时,接收到应用程序模块801发送的数据传输请求后,判断是否需要即时传输所述数据传输请求,若否,则缓存接收到的数据传输请求,并向NAS层处理模块803指示出有数据传输请求被缓存;
NAS层处理模块803,用于当用户设备进入连接态后,若根据指示信息确定有数据传输请求被缓存,则从所述NAS层缓存功能模块获取缓存的数据传输请求,并通过用户面连接将从NAS层缓存功能模块802接收到的数据传输请求发送给网络设备。
进一步的,NAS层缓存功能模块802还用于:在所述用户设备处于空闲态时,若判断为需要即时传输所述数据传输请求,则将接收到的数据传输请求发送给NAS层处理模块803;其中,若NAS层缓存功能模块802中还缓存有数据传输请求,则还将缓存的数据传输请求发送给NAS层处理模块803。相应的,NAS层处理模块803还用于:发起用户面连接建立过程,并通过建立的用户面连接将从NAS层缓存功能模块802接收到的数据传输请求发送给网络设备。
具体的,NAS层缓存功能模块802可通过以下方式判断是否需要即时传输所述数据传输请求:若所述数据传输请求是用户发起的,则需要即时传输所述数据传输请求,若所述数据传输请求是后台发起的,则无需即时传输所述数据传输请求;或者,若所述数据传输请求来自于预设的应用程序模块801,则需要即时传输所述数据传输请求,否则,若所述数据传输请求是用户发起的,则需要即时传输所述数据传输请求,若所述数据传输请求是后台发起的,则无需即时传输所述数据传输请求。
具体的,NAS层缓存功能模块802可根据以下判断标准之一或组合,判断数据传输请求是用户发起的还是后台发起的:
屏幕或/和键盘锁定是否激活;
用户上次按键操作或触摸屏幕操作之后的时间间隔;
应用程序模块提供的指示信息;
数据传输请求所请求的应用的类型。
具体的,NAS层缓存功能模块802可通过以下方式之一,向NAS层处理模块803指示出有数据传输请求被缓存:通过原语方式,向NAS层处理模块803指示出有数据传输请求被缓存;通过将共享参数设置为表示有数据传输请求被缓存的参数值的方式,向NAS层处理模块803指示出有数据传输请求被缓存。
进一步的,NAS层处理模块803还用于:当所述用户设备的TAU过程被触发后进入连接态,且所述NAS层处理模块根据指示信息确定有数据传输请求被缓存的情况下,所述NAS层处理模块在发送的TAU请求消息中携带用于表示用户设备有数据需要传输的标识信息。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台终端设备(可以是手机,个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。