一种数据分发方法及装置制造方法
【专利摘要】本发明公开了一种数据分发方法及装置,方法包括:解析来自用户终端的GTPU报文,得到用于请求资源的HTTP请求报文,并判断其数据请求方式是否为HTTP压缩方式;当判断结果是HTTP压缩方式时,将所述报文直接发送至服务器,否则,将其报文请求方式设置为HTTP压缩方式,并发送至服务器;将服务器回应的HTTP应答报的数据格式设置为与所述HTTP请求报文的数据请求方式相适应的数据格式,并发送至用户终端。本发明可以显著减少Backhaul的带宽消耗和空口的带宽消耗。
【专利说明】一种数据分发方法及装置
【技术领域】
[0001]本发明涉及一种基于HTTP压缩的数据分发方法及装置。
【背景技术】
[0002]随着移动互联网和智能手机的快速发展,手机上网浏览已经成为一种日益普遍的方式,随之带来的问题是对于基站的流量是成倍的正常。多UE(User Equipment下指智能手机)同时接入基站浏览网页时对于空口带宽的消耗很大。
[0003]现有的商业互联网中,客户端和服务器之间采用HTTP协议进行通讯。如图1所示,为了减轻网络中流量的压力,采用了 HTTP中压缩技术。浏览器在请求资源时,会将支持的压缩格式通过HTTP头中的属性字段提交给服务器,服务器用浏览器支持的压缩算法对内容进行压缩后再传送给浏览器,浏览器解压后展示内容给用户。当然,服务器中大量的压缩计算必然会消耗CPU从而影响效率,可以通过中间服务器的方式来解决此问题,在此不再赘述。
[0004]在现有的基站系统中,UE请求资源通过空口到达基站时,基站只是负责透传该请求到核心网,从核心网中获取数据再透传给UE。在这个过程中,基站对于UE的请求没有做任何处理,UE的请求方式可以是压缩方式也可以是非压缩方式,核心网返回的数据可以是压缩的也可以是非压缩的。对于非压缩方式的请求方式和返回的数据,对于空口带宽和Backhaul带宽的消耗是比较大的。
【发明内容】
[0005]本发明的目的在于提供一种数据分发方法及装置,能更好地解决UE以非压缩方式请求数据时空口带宽和Backhaul带宽的消耗过大问题。
[0006]根据本发明的一个方面,提供了一种数据分发方法,包括:
[0007]解析来自用户终端的GPRS隧道协议用户面报文,得到用于请求资源的HTTP请求报文,并判断其数据请求方式是否为HTTP压缩方式;
[0008]当判断结果是HTTP压缩方式时,将所述报文直接发送至服务器,反之,将其报文请求方式设置为HTTP压缩方式,并发送至服务器;
[0009]将服务器回应的HTTP应答报文的数据格式设置为与所述HTTP请求报文的数据请求方式相适应的数据格式,并发送至用户终端。
[0010]优选地,根据通过解析所述HTTP请求报文所得到的数据请求方式,判断所述报文的请求方式是否为HTTP压缩方式。
[0011 ] 优选地,当判断所述HTTP请求报文的数据请求方式不是HTTP压缩方式时,在所述报文的报文头中添加压缩属性,并经由核心网发送至服务器。
[0012]优选地,若服务器回应的HTTP应答报文的数据格式为HTTP非压缩方式,而所述HTTP请求报文的数据请求方式为HTTP压缩方式,则提取所述HTTP应答报文中的应答数据,并将所述数据压缩后添加到新的HTTP应答报文中发送至用户终端。[0013]优选地,若服务器回应的HTTP应答报文的数据格式为HTTP压缩方式,而所述HTTP请求报文的数据请求方式为HTTP非压缩方式,则提取所述HTTP应答报文中的应答数据,并将所述数据解压后添加到新的HTTP应答报文中发送至用户终端。
[0014]优选地,若服务器回应的HTTP应答报文的数据格式为HTTP压缩方式,而所述HTTP请求报文的数据请求方式为HTTP压缩方式,则将所述HTTP应答报文直接发送至用户终端。
[0015]优选地,若服务器回应的HTTP应答报文的数据格式为HTTP非压缩方式,而所述HTTP请求报文的数据请求方式为HTTP非压缩方式,则将所述HTTP应答报文直接发送至用户终端。
[0016]根据本发明的另一方面,提供了一种数据分发装置,包括:
[0017]上行数据解析模块,用于接收来自用户终端的用于请求资源的HTTP请求报文;
[0018]代理请求模块,用于判断所述报文的数据请求方式是否为HTTP压缩方式,并当判断所述报文的数据请求方式是HTTP压缩方式时,将所述报文直接发送至服务器,否则,将所述报文的数据请求方式修改为HTTP压缩方式,经由核心网发送至服务器;
[0019]下行数据解析模块,用于接收服务器响应所述HTTP请求报文的HTTP应答报文;
[0020]代理回应模块,用于将所述HTTP应答报文的数据格式设置为与所述HTTP请求报文的数据请求方式相适应的数据格式,
[0021]优选地,所述代理回应模块用于在所述HTTP请求报文的数据请求方式为HTTP压缩方式,所述HTTP应答报文的数据格式为HTTP非压缩方式时,提取所述HTTP应答报文中的应答数据,并将所述数据压缩后添加到新的HTTP应答报文中发送至用户终端。
[0022]优选地,所述代理回应模块用于在所述HTTP请求报文的数据请求方式为HTTP非压缩方式,所述HTTP应答报文的数据格式为HTTP压缩方式时,提取所述HTTP应答报文中的应答数据,并将所述数据解压后添加到新的HTTP应答报文中发送至用户终端。
[0023]与现有技术相比较,本发明的有益效果在于:
[0024]1、UE的数据请求方式为HTTP非压缩方式时,基站或基站控制器将其强制处理为HTTP压缩方式,服务器返回的也是压缩数据,从而显著减少了 Backhaul的带宽消耗;
[0025]2、UE的数据请求方式为HTTP压缩方式,服务器返回的数据是非压缩数据时,基站或基站控制器将数据压缩处理后发送至UE,从而显著减少空口的带宽消耗。
【专利附图】
【附图说明】
[0026]图1是现有技术提供的商业互联网中的数据请求方式示意图;
[0027]图2是本发明实施例提供的基于HTTP压缩的数据分发方法流程图;
[0028]图3是本发明实施例提供的3G制式下基于HTTP压缩的数据分发装置示意图;
[0029]图4是本发明实施例提供的4G制式下基于HTTP压缩的数据分发系统示意图;
[0030]图5是本发明实施例提供的代理请求数据分发流程图;
[0031]图6是本发明实施例提供的代理回应数据分发请求的流程图。
【具体实施方式】
[0032]以下结合附图对本发明的优选实施例进行详细说明,应当理解,以下所说明的优选实施例仅用于说明和解释本发明,并不用于限定本发明。[0033]图2是本发明实施例提供的基于HTTP压缩的数据分发方法流程图,如图2所示,包括:
[0034]基站或基站控制器解析来自用户终端的GPRS隧道协议用户面报文(即GTPU报文),得到用于请求资源的HTTP请求报文,解析所述HTTP请求报文,根据解析得到的数据请求方式,判断所述报文的请求方式是否为HTTP压缩方式。
[0035]当判断结果是HTTP压缩方式时,将所述报文直接发送至服务器,否则,将其报文请求方式设置为HTTP压缩方式,即在所述报文的报文头中添加压缩属性后发送至服务器。
[0036]对于服务器响应的HTTP应答报文,基站或基站控制器将所述HTTP应答报文的数据格式设置为与所述HTTP请求报文的数据请求方式相适应的数据格式,并发送至用户终端。具体地说,基站或基站控制器收到服务器响应的HTTP应答报文后,若所述HTTP请求报文的数据请求方式为HTTP压缩方式,所述HTTP应答报文的数据格式为HTTP非压缩方式,则提取所述HTTP应答报文中的应答数据,并将所述数据压缩后添加到新的HTTP应答报文中发送至用户终端;若所述HTTP请求报文的数据请求方式为HTTP非压缩方式,所述HTTP应答报文的数据格式为HTTP压缩方式,则提取所述HTTP应答报文中的应答数据,并将所述数据解压后添加到新的HTTP应答报文中发送至用户终端;若所述HTTP请求报文的数据请求方式为HTTP压缩方式,所述HTTP应答报文的数据格式为HTTP压缩方式,则将所述HTTP应答报文直接发送至用户终端;若所述HTTP请求报文的数据请求方式为HTTP非压缩方式,所述HTTP应答报文的数据格式为HTTP非压缩方式,则将所述HTTP应答报文直接发送至用户终端。
[0037]图3是本发明实施例提供的3G制式下基于HTTP压缩的数据分发装置示意图,如图3所示,包括位于基站或基站控制器侧的以下部分:
[0038]上行数据解析模块,用于接收来自用户终端的用于请求资源的HTTP请求报文。具体地说,上行数据解析模块获取GTPU中的数据包,去掉其相关的GTPU包头之后,提取其中的HTTP请求报文。
[0039]代理请求模块,用于判断所述报文的数据请求方式是否为HTTP压缩方式,并当判断所述报文的数据请求方式是HTTP压缩方式时,将所述报文直接发送至服务器,否则,将所述报文的数据请求方式修改为HTTP压缩方式,经由核心网发送至服务器。也就是说,代理请求模块解析提取的HTTP请求报文,解析在请求报文中是否需要支持压缩格式,若支持压缩格式,则直接将请求报文发送给服务器;若不支持压缩格式,则采用TCP透明代理修改HTTP请求报文,在请求报文中强制添加压缩属性,发送给服务器。
[0040]下行数据解析模块,用于接收服务器响应所述HTTP请求报文的HTTP应答报文。也就是说,下行数据解析模块主要是截获服务器回应的数据,提取其中的HTTP应答报文。
[0041]代理回应模块,用于将所述HTTP应答报文的数据格式设置为与所述HTTP请求报文的数据请求方式相适应的数据格式,并发送至用户终端。进一步说,所述代理回应模块在所述HTTP请求报文的数据请求方式为HTTP压缩方式,所述HTTP应答报文的数据格式为HTTP非压缩方式时,提取所述HTTP应答报文中的应答数据,并将所述数据压缩后添加到新的HTTP应答报文中发送至用户终端;所述代理回应模块在所述HTTP请求报文的数据请求方式为HTTP非压缩方式,所述HTTP应答报文的数据格式为HTTP压缩方式时,提取所述HTTP应答报文中的应答数据,并将所述数据解压后添加到新的HTTP应答报文中发送至用户终端。也就是说,代理回应模块提取HTTP应答报文中的数据格式是否是压缩的,并参照HTTP请求的是否是需要压缩的数据,分为四种情况来分别处理。I)若请求为压缩方式,应答数据的也为压缩方式,则直接将下行报文发送至发送队列中;2)若请求为压缩方式,应答为非压缩方式,则提取报文中的数据至缓冲区中,将数据压缩,采用TCP透明代理修改HTTP应答报文,将压缩后的数据添加到新的应答报文中,发送至发送队列中;3)若请求为非压缩方式,应答为压缩方式,则提取报文中的数据至缓冲区中,将数据解压,采用TCP透明代理修改HTTP应答报文,将解压后的数据添加到新的应答报文中,发送至发送队列中;4)若请求为非压缩方式,应答数据也为非压缩方式,则直接将下行报文发送至发送队列中。
[0042]图4是本发明实施例提供的4G制式下基于HTTP压缩的数据分发系统示意图,如图4所示,UE和eNodeB之间采用空口进行通信,本发明通过在基站侧增加的上行数据解析模块截取UE给eNodeB的数据,提取出GTPU报文,解析后提取HTTP请求报文;代理请求模块解析HTTP请求报文中是否支持压缩方式并作相关的后续处理;下行数据解析模块主要是获取服务器发送过来的数据包,提取其中的HTTP应答报文;代理回应模块主要是依据HTTP中应答报文是否是压缩格式以及原始的HTTP请求时是否支持压缩格式来做不同的处理。
[0043]图5是本发明实施例提供的代理请求数据分发流程图,如图5所示,包括:
[0044]步骤5.1:提取用户HTTP请求中的URL,解析用户的HTTP请求报文,若请求报文中包含“Accept-Encoding”属性字段或者是“Content-Encoding”属性字段,将属性值存放至全局变量QryCompressFormat中,转至步骤5.2,否则,转至步骤5.3 ;
[0045]步骤5.2:依据URL解析出请求对应的服务器IP地址,直接给服务器发送资源请求,流程结束。
[0046]步骤5.3:采用TCP透明代理构造新的HTTP请求报文,在报文头中强制添加压缩属性:“Accept-Encoding = gzip, deflate”,采用gzip压缩格式向服务器请求数据,流程结束。
[0047]图6是本发明实施例提供的代理回应数据分发请求的流程图,如图6所示,包括:
[0048]步骤6.1:从全局变量QryCompressFormat中提取用户请求HTTP方式;
[0049]步骤6.2:提取资源的格式,通过解析服务器回应的HTTP应答报文,若“Accept-Encoding”属性字段或者是“Content-Encoding”属性字段,则说明回应的数据格式是压缩方式,保存该属性字段后面的值到变量AskCompressFormat中,即为回应数据压缩算法;否则,则说明回应的数据格式是不支持压缩的;
[0050]步骤6.3:判断当前用户的数据请求方式,若为HTTP压缩方式,转至步骤6.4;否则,转至步骤6.5;
[0051]步骤6.4:判断当前资源格式,若为HTTP压缩方式,转至步骤6.6 ;否则,转至步骤
6.7 ;
[0052]步骤6.5:判断当前资源格式,若为压缩,转至步骤5.10 ;否则,转至步骤6.13 ;
[0053]步骤6.6:将下行数据输出到发送队列,流程结束。
[0054]步骤6.7:获取下行的HTTP应答报文中的数据部分,存放至缓冲区,采用压缩算法QryCompressFormat对数据进行压缩;
[0055]步骤6.8:采用TCP透明代理构造新的HTTP回应报文;
[0056]步骤6.9:在新报文中添加压缩后的数据,输出到发送队列,流程结束。[0057]举例说明:UE1通过压缩方式来请求Server中的数据,但是Server中回应的是非压缩的数据。如果不用此发明中的方法在基站侧将Server中回应的数据按照UEl请求的方式进行压缩,则将该数据发送到UEl时就会消耗更多的空口带宽。
[0058]步骤6.10:获取下行的HTTP应答报文中的数据部分,存放至缓冲区,采用压缩算法AskCompressFormat对数据进行解压;
[0059]步骤6.11:采用TCP透明代理构造新的HTTP回应报文;
[0060]步骤6.12:在新的回应报文中添加解压后的数据,输出到发送队列,流程结束。
[0061]举例说明:UE2通过非压缩方式来请求Server中的数据。如果不用此发明中的方法在基站侧将请求方式强制变成压缩方式,则Server回应请求时的数据是非压缩的,在核心网传送到基站时就会消耗更多的Backhaul带宽。
[0062]步骤6.13:将下行数据输出到发送队列,流程结束。
[0063]尽管上文对本发明进行了详细说明,但是本发明不限于此,本【技术领域】技术人员可以根据本发明的原理进行各种修改。因此,凡按照本发明原理所作的修改,都应当理解为落入本发明的保护范围。
【权利要求】
1.一种数据分发方法,其特征在于,包括: 解析来自用户终端的GPRS隧道协议-用户面报文,得到用于请求资源的HTTP请求报文,并判断其数据请求方式是否为HTTP压缩方式; 当判断结果是HTTP压缩方式时,将所述报文直接发送至服务器,反之,则将其报文请求方式设置为HTTP压缩方式后发送至服务器; 将服务器同应的HTTP应答报文的数据格式设置为与所述HTTP请求报文的数据请求方式相适应的数据格式,并发送至用户终端。
2.根据权利要求1所述的方法,其特征在于,根据通过解析所述HTTP请求报文所得到的数据请求方式,判断所述报文的请求方式是否为HTTP压缩方式。
3.根据权利要求2所述的方法,其特征在于,当判断所述HTTP请求报文的数据请求方式不是HTTP压缩方式时,在所述报文的报文头中添加压缩属性,并经由核心网发送至服务器。
4.根据权利要求3所述的方法,其特征在于,若服务器回应的HTTP应答报文的数据格式为HTTP非压缩方式,而所述HTTP请求报文的数据请求方式为HTTP压缩方式,则提取所述HTTP应答报文中的应答数据,并将所述数据压缩后添加到新的HTTP应答报文中发送至用户终端。
5.根据权利要求3所述的方法,其特征在于,若服务器回应的HTTP应答报文的数据格式为HTTP压缩方式,而所述HTTP请求报文的数据请求方式为HTTP非压缩方式,则提取所述HTTP应答报文中的应答数据,并将所述数据解压后添加到新的HTTP应答报文中发送至用户终端。
6.根据权利要求3所述的方法,其特征在于,若服务器回应的HTTP应答报文的数据格式为HTTP压缩方式,而所述HTTP请求报文的数据请求方式为HTTP压缩方式,则将所述HTTP应答报文直接发送至用户终端。
7.根据权利要求3所述的方法,其特征在于,若服务器回应的HTTP应答报文的数据格式为HTTP非压缩方式,而所述HTTP请求报文的数据请求方式为HTTP非压缩方式,则将所述HTTP应答报文直接发送至用户终端。
8.一种数据分发装置,其特征在于,包括: 上行数据解析模块,用于接收来自用户终端的用于请求资源的HTTP请求报文; 代理请求模块,用于判断所述报文的数据请求方式是否为HTTP压缩方式,并当判断所述报文的数据请求方式是HTTP压缩方式时,将所述报文直接发送至服务器,否则,将所述报文的数据请求方式修改为HTTP压缩方式,经由核心网发送至服务器; 下行数据解析模块,用于接收服务器响应所述HTTP请求报文的HTTP应答报文; 代理回应模块,用于将所述HTTP应答报文的数据格式设置为与所述HTTP请求报文的数据请求方式相适应的数据格式,并发送至用户终端。
9.根据权利要求8所述的装置,其特征在于,所述代理回应模块用于在所述HTTP请求报文的数据请求方式为HTTP压缩方式,所述HTTP应答报文的数据格式为HTTP非压缩方式时,提取所述HTTP应答报文中的应答数据,并将所述数据压缩后添加到新的HTTP应答报文中发送至用户终端。
10.根据权利要求8所述的装置,其特征在于,所述代理回应模块用于在所述HTTP请求报文的数据请求方式为HTTP非压缩方式,所述HTTP应答报文的数据格式为HTTP压缩方式时,提取所述HTTP应答报文中的应答数据,并将所述数据解压后添加到新的HTTP应答报文中发送 至用户终端。
【文档编号】H04L29/08GK103582012SQ201210278753
【公开日】2014年2月12日 申请日期:2012年8月7日 优先权日:2012年8月7日
【发明者】华学勤, 黄钧, 周志雄, 崔卓 申请人:中兴通讯股份有限公司