具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1示出了本发明提供的方案所适用的系统示意图。如图1所示,本发明所适用的系统包括客户端100、计费系统101、VPN(虚拟专用网络,VirtualPrivate Network)服务器102和资源服务器103,在实际数据业务执行过程中,客户端100、计费系统101以及VPN服务器102之间建立有VPN通道104。其中,客户端100可以是智能手机、平板式电脑等具有移动联网服务的终端设备,本发明实施例中在客户端100内部创建有VPN服务,这里客户端100是VPN服务器的client端,即VPN client,本发明实施例中用于产生流量的数据包均经过VPN服务发送或接收。计费系统101隶属于运营商系统,用于对客户端100发送的上行数据包和接收的下行数据包进行流量计费,具体地,对于不同类型和不同传输量的数据业务采用不同的计费形式进行计费,以得到最终的账单。VPN服务器102是在服务器侧提供VPN服务的设备,它是VPN服务的server端,即VPN server。VPN server、VPN client以及两者之间建立的VPN通道相互配合实现在公用网络上建立虚拟专用网络,从而实现远程访问。资源服务器103是提供数据资源的服务器,可以提供资源下载的服务。
在图1所示的系统框架下,本发明提供了在移动终端设备上实现流量优化的方法的几个实施例,具体描述如下。
图2示出了本发明提供的在移动终端设备上实现流量优化的方法的实施例一的流程图。本实施例提供的方法针对的是上行数据传输过程,如图2所示,该方法包括如下步骤:
步骤S200,在客户端、计费系统以及VPN服务器之间建立VPN通道。
首先,在客户端内部创建VPN服务(VPN client)。在客户端要产生流量之前,根据用户的操作在客户端后台启动VPN client,进而在客户端、计费系统以及VPN服务器之间建立VPN通道,使得客户端的VPN client经由VPN通道能够连接到VPN服务器来安全地访问网络资源。
步骤S201,客户端将上行数据包进行压缩,得到上行压缩数据包。
这里的上行数据包可以为用于下载资源服务器提供的资源的HTTP请求数据包。在客户端要发送该HTTP请求数据包之前,首先对HTTP请求数据包进行压缩,经过压缩后的HTTP请求数据包(即上行压缩数据包)的数据量要小于压缩前的HTTP请求数据包,以达到减小数据传输量进而节省流量的目的。
步骤S202,客户端通过VPN通道将上行压缩数据包经由计费系统发送给VPN服务器。
客户端通过建立的VPN通道将上行压缩数据包发送给计费系统,计费系统统计上行压缩数据包的数据量,将该数据量换算为计费信息记入账单;然后,计费系统将上行压缩数据包转发给VPN服务器。在这里,数据包的传输不是发生在公用网络上,而是发生在虚拟专用网络上,能够避免数据遭到非授权用户的窃取,提高数据传输的安全性。
步骤S203,VPN服务器对上行压缩数据包进行解压缩得到上行数据包,经解压缩得到的上行数据包发送给资源服务器。
在VPN服务器接收到上行压缩数据包之后,对上行压缩数据包进行解压缩处理,然后发送给对应的资源服务器。在此次上行数据包传输过程中,计费系统已经对上行压缩数据包进行了计费处理,VPN服务器传递给资源服务器的上行数据包不涉及计费,因此VPN服务器对上行压缩数据包进行解压缩后发送给资源服务器,以请求相应的资源。
本实施例提供的上述方法针对的是上行数据传输过程,在该上行数据传输过程中,客户端将上行数据包进行压缩之后发送给计费系统,计费系统统计上行压缩数据包的数据量作为计费信息,而后将上行压缩数据包转发给VPN服务器,由VPN服务器解压缩后发送给资源服务器,完成资源请求过程。本实施例通过在客户端、计费系统和VPN服务器之间建立的VPN通道,利用VPN服务完成上行数据包的压缩和解压缩处理,使得计费系统统计的数据量要小于压缩之前的实际要传输的数据包的数据量,达到了节省流量的目的。而且,本实施例利用VPN服务高速且安全的特点,能够对包括静态网页、流媒体文件、各种应用程序以及较大的邮件附件等任何数据进行实时的压缩,与现有技术相比,节省的流量更多,节省流量的范围更广。
图3示出了本发明提供的在移动终端设备上实现流量优化的方法的实施例二的流程图。本实施例提供的方法针对的是上行数据传输过程,而且该上行数据传输过程是基于VPN服务来实现的。本实施例中,客户端内部创建有VPN client,在客户端要产生流量之前,根据用户的操作在客户端后台启动VPN client。
以一种应用场景为例,客户端中安装有用于实现本发明方案的独立的应用软件,在用户要使用移动互联网络下载资源之前,启动该应用软件,点击该应用软件的设置开关用于启动VPN client。在启动VPN client后,执行本实施例提供的方法。
如图3所示,本实施例提供的方法包括如下步骤:
步骤S300,客户端获取下载资源的HTTP请求,根据该HTTP请求得到HTTP请求数据包。
如果用户通过操作请求下载资源,客户端获取下载资源的HTTP请求,根据该HTTP请求得到HTTP请求数据包。本实施例中,用户所请求的资源可以是静态网页、流媒体、各类文件和/或各种应用程序。
HTTP请求数据包包括HTTP头信息、路由信息以及上行数据。其中,HTTP头信息一般包含GET信息、POST信息、Content-type(内容类型)信息、语言和编码信息、浏览器类型、操作系统信息等等,可选地,路由信息也可以包含在HTTP头信息内,例如,HTTP头信息中还包含所请求的主机和端口。上行数据一般包含在HTTP消息体中。
步骤S301,客户端、计费系统以及VPN服务器之间建立VPN通道。
在启动VPN client的前提下,在客户端获取下载资源的HTTP请求之后,客户端、计费系统以及VPN服务器之间建立VPN通道。通过这种方式建立的VPN服务是一种短连接实现的VPN服务,即在有数据包需要传输的时候,建立VPN连接,在无数据包需要传输的时候,中断VPN连接。通过短连接实现的VPN服务的优点是省电,无需过多的耗费客户端的电量。
步骤S302,判断HTTP请求数据包中的路由信息是否与预先下发的路由表中记录的信息相匹配,若是,执行步骤S303;否则,本方法流程结束。
本发明实施例预先下发了路由表,该路由表中记录了需要进行省流量处理的路由信息,如果HTTP请求数据包中的路由信息与该路由表中记录的信息相匹配,则执行后续方法流程。如果HTTP请求数据包中的路由信息与该路由表中记录的信息不相匹配,则表明此次HTTP请求数据包无需进行省流量处理,后续可按照现有技术的流程继续处理。
步骤S303,将HTTP请求数据包重定向至压缩进程。
步骤S304,调用压缩进程,将HTTP请求数据包进行压缩,得到上行压缩数据包。
客户端内部配置有压缩进程,在客户端要发送该HTTP请求数据包之前,调用压缩进程对HTTP请求数据包进行压缩,经过压缩后的HTTP请求数据包的数据量要小于压缩前的HTTP请求数据包,以达到减小数据传输量,从而节省流量的目的。
可选地,压缩进程包含对HTTP头信息进行压缩的压缩子进程和对上行数据进行压缩的压缩子进程。
具体地,在对HTTP头信息进行压缩之前,需要预先建立字符库。一般来说,目前有许多对数据进行压缩的算法,使得数据的压缩相对来说较为容易实施。但是对于HTTP头信息来说,由于HTTP头信息中包含的均为字母、单词等字符单元,而且HTTP头信息传输的都是较为重要的信息,这些字符不容易被压缩,而且一旦压缩算法出现折损,会导致信息传输出现错误,从而导致下载资源失败。鉴于这些问题,本发明提出了建立字符库对HTTP头信息进行压缩的方法,这种压缩方式出现折损的概率很低,且具有一定的压缩率。
具体地,字符库的建立过程为:选取常见的HTTP请求数据包,通过程序分析这些常见的HTTP请求数据包中的HTTP头信息,从中解析出常见的字符(包含字、词及其组合),按照这些字符出现的频率对这些字符进行排序,选取排序靠前的字符加入字符库中,例如选取排在前20位的字符。本发明中,字符库的建立过程不仅限于上述过程,旨在选取常见字符加入字符库的方法均属于本发明所要保护的范围。
在预先建立了字符库的前提下,对HTTP头信息进行压缩的压缩子进程将HTTP头信息所包含的字符与字符库内的字符进行比对,若比对一致,则将上行数据包中的HTTP头信息所包含的字符替换为该字符在字符库内的偏移值。以HTTP头信息中包含的GET信息“GET/simple.htm HTTP/1.1”为例,压缩子进程将其中的“GET”、“simple.htm”、“HTTP”和“1.1”等字符与字符库内的字符进行比对,发现“GET”、“HTTP”和“1.1”都分别与字符库内的某字符比对一致,则将这些字符替换为字符在字符库内的偏移值,如:将“GET”替换为“1”,“HTTP”替换为“3”,“1.1”替换为“5”,其中,“1”、“3”、“5”分别为相应字符在字符库内的偏移值,该偏移值可以为上述字符库内排序的序号,本发明对此不做限制。
对于上行数据包内的上行数据,考虑到上行数据传输量一般远小于下行数据传输量,因此本发明实施例在对上行数据进行压缩时优选使用较少系统资源但压缩率不一定很高的压缩算法,例如Gzip压缩算法或zlib压缩算法。采用这种压缩算法能够减少对客户端系统资源的占用率,避免了影响客户端的运行速度,同时也避免了过多的耗费客户端的电量。
通过上述方法,不仅能对上行数据进行压缩,还能对HTTP头信息也进行压缩,在一定程度上提高了压缩率。
步骤S305,客户端通过VPN通道将上行压缩数据包经由计费系统发送给VPN服务器。
客户端通过建立的VPN通道将上行压缩数据包发送给计费系统,计费系统统计上行压缩数据包的数据量,将该数据量换算为计费信息记入账单;然后,计费系统将上行压缩数据包转发给VPN服务器。在这里,数据包的传输不是发生在公用网络上,而是发生在虚拟专用网络上,能够避免数据遭到非授权用户的窃取,提高数据传输的安全性。
步骤S306,VPN服务器对上行压缩数据包进行解压缩得到上行数据包,经解压缩得到的上行数据包发送给资源服务器。
在VPN服务器接收到上行压缩数据包之后,对上行压缩数据包进行解压缩处理,然后发送给对应的资源服务器。其中,对上行压缩数据包进行解压缩的处理过程与上述压缩处理过程相对应,在此不再赘述。在此次上行数据包传输过程中,计费系统已经对上行压缩数据包进行了计费处理,VPN服务器传递给资源服务器的上行数据包不涉及计费,因此VPN服务器对上行压缩数据包进行解压缩后发送给资源服务器,以请求相应的资源。
本实施例提供的上述方法针对的是上行数据传输过程,在该上行数据传输过程中,客户端将上行数据包进行压缩之后发送给计费系统,计费系统统计上行压缩数据包的数据量作为计费信息,而后将上行压缩数据包转发给VPN服务器,由VPN服务器解压缩后发送给资源服务器,完成资源请求过程。本实施例通过以短连接方式建立的VPN通道,利用VPN服务完成上行数据包的压缩和解压缩处理,使得计费系统统计的数据量要小于压缩之前的实际要传输的数据包的数据量,达到了节省流量的目的。通过短连接实现的VPN服务的优点是省电,无需过多的耗费客户端的电量。而且,本实施例利用VPN服务高速且安全的特点,能够对包括静态网页、流媒体文件、各种应用程序以及较大的邮件附件等任何数据进行实时的压缩,与现有技术相比,节省的流量更多,节省流量的范围更广。进一步的,在上行数据传输过程中,考虑到上行数据传输量一般远小于下行数据传输量,并且需由客户端完成压缩处理过程,因此本实施例优选的是使用较少系统资源的压缩算法,这样能够减少对客户端系统资源的占用率,避免了影响客户端的运行速度,同时也避免了过多的耗费客户端的电量。本实施例提供的方法不仅能对上行数据进行压缩,还能对HTTP头信息也进行压缩,也在一定程度上提高了压缩率。
上述图3所示的实施例采用的是一种短连接实现的VPN服务,本发明不仅限于此。可选地,也可以采用长连接实现的VPN服务。具体地,客户端、计费系统以及VPN服务器之间建立VPN通道并非在客户端获取下载资源的HTTP请求之后建立,而是在客户端启动VPN client之后就建立。这样,在客户端获取HTTP请求之后,可以直接执行步骤S302。
图4示出了本发明提供的在移动终端设备上实现流量优化的方法的实施例三的流程图。本实施例提供的方法针对的是下行数据传输过程,如图4所示,该方法包括如下步骤:
步骤S400,VPN服务器接收资源服务器返回的下行数据包。
这里的下行数据包可以为包含资源服务器根据客户端发出的HTTP请求数据包所提供的资源的数据包。在上述上行数据传输过程中,资源服务器接收到上行数据包后,查找对应的资源,并将资源封装入下行数据包反馈给VPN服务器。
步骤S401,VPN服务器将下行数据包进行压缩,得到下行压缩数据包。
VPN服务器在反馈下行数据包之前,首先对下行数据包进行压缩,经过压缩后的下行数据包的数据量要小于压缩前的下行数据包的数据量,以达到减小数据传输量进而节省流量的目的。
步骤S402,VPN服务器通过VPN通道、经由计费系统将下行压缩数据包发送给客户端。
VPN服务器通过建立的VPN通道将下行压缩数据包发送给计费系统,计费系统统计下行压缩数据包的数据量,将该数据量换算为计费信息记入账单;然后,计费系统将下行压缩数据包转发给客户端。在这里,数据包的传输不是发生在公用网络上,而是发生在虚拟专用网络上,能够避免数据遭到非授权用户的窃取,提高数据传输的安全性。
步骤S403,客户端将下行压缩数据包进行解压缩,得到下行数据包。
在此次下行数据包传输过程中,计费系统对下行数据压缩包进行计费处理之后,由客户端对下行压缩数据包进行解压缩,得到下行数据包。下行压缩数据包的数据量要远小于下行数据包的数据量,因此计费系统所记录的流量远小于实际产生的流量。
本实施例提供的上述方法针对的是下行数据传输过程,在该下行数据传输过程中,VPN服务器接收资源服务器返回的下行数据包,将下行数据包进行压缩之后发送给计费系统,计费系统统计下行压缩数据包的数据量作为计费信息,而后将下行压缩数据包转发给客户端,由客户端解压缩后得到下行数据包,完成资源获取过程。本实施例通过在客户端、计费系统和VPN服务器之间建立的VPN通道,利用VPN服务完成下行数据包的压缩和解压缩处理,使得计费系统统计的数据量要小于压缩之前的实际要传输的数据包的数据量,达到了节省流量的目的。而且,本实施例利用VPN服务高速且安全的特点,能够对包括静态网页、流媒体文件、各种应用程序以及较大的邮件附件等任何数据进行实时的压缩,与现有技术相比,节省的流量更多,节省流量的范围更广。
图5示出了本发明提供的在移动终端设备上实现流量优化的方法的实施例四的流程图。本实施例提供的方法针对的是下行数据传输过程,而且该下行数据传输过程是基于VPN服务来实现的,其所基于的VPN通道也是在上行数据传输过程中已经建立的。
如图5所示,本实施例提供的方法包括如下步骤:
步骤S500,VPN服务器接收资源服务器返回的下行数据包。
这里的下行数据包具体为包含资源服务器根据客户端发出的HTTP请求数据包所提供的资源的数据包。本实施例中的资源可以是静态网页、流媒体、各类文件和/或各种应用程序。
具体地,下行数据包包括HTTP头信息和下行数据。其中,HTTP头信息一般包含协议信息、状态码、资源服务器相关信息、处理请求的时间、Content-type(内容类型)信息以及Content-Length(消息体的长度)信息。下行数据是与资源有关的数据,一般包含在HTTP消息体中。
步骤S501,VPN服务器将下行数据包进行压缩,得到下行压缩数据包。
VPN服务器内部配置有压缩进程,在接收到资源服务器返回的下行数据包之后,调用压缩进程对下行数据包进行压缩,经过压缩后的下行数据包的数据量要小于压缩前的下行数据包,以达到减小数据传输量,从而节省流量的目的。
可选地,压缩进程包含对HTTP头信息进行压缩的压缩子进程和对下行数据进行压缩的压缩子进程。
具体地,对HTTP头信息进行压缩的方法可以与上行数据传输过程中客户端对HTTP头信息的压缩方法相同,在此不再赘述。
对于下行数据包内的下行数据,采用zlib压缩算法进行压缩是一种可选的方式。但是,考虑到下行数据传输量一般远大于上行数据传输量,而且VPN服务器的系统资源要远远高于客户端,因此本发明实施例在对下行数据进行压缩时优选使用压缩率高但占用较多系统资源的压缩算法,例如LZMA压缩算法。这种压缩算法不会对VPN服务器产生过大影响,但压缩率很高,能够进一步的节省流量。
通过上述方法,不仅能对下行数据进行压缩,还能对HTTP头信息也进行压缩,在一定程度上提高了压缩率。
步骤S502,VPN服务器通过VPN通道、经由计费系统将下行压缩数据包发送给客户端。
VPN服务器通过建立的VPN通道将下行压缩数据包发送给计费系统,计费系统统计下行压缩数据包的数据量,将该数据量换算为计费信息记入账单;然后,计费系统将下行压缩数据包转发给客户端。在这里,数据包的传输不是发生在公用网络上,而是发生在虚拟专用网络上,能够避免数据遭到非授权用户的窃取,提高数据传输的安全性。
步骤S503,客户端将下行压缩数据包进行解压缩,得到下行数据包。
在此次下行数据包传输过程中,计费系统对下行数据压缩包进行计费处理之后,由客户端对下行压缩数据包进行解压缩,得到下行数据包。下行压缩数据包的数据量要远小于下行数据包的数据量,因此计费系统所记录的流量远小于实际产生的流量。
步骤S504,释放客户端、计费系统以及VPN服务器之间的VPN通道。
图5所示的实施例采用的是一种短连接实现的VPN服务,因此在一次HTTP请求完成之后,需要释放客户端、计费系统以及VPN服务器之间的VPN通道。通过短连接实现的VPN服务的优点是省电,无需过多的耗费客户端的电量。
可选地,本发明也可以采用长连接实现的VPN服务,在一次HTTP请求完成之后,无需释放客户端、计费系统以及VPN服务器之间的VPN通道。
本实施例提供的上述方法针对的是下行数据传输过程,在该下行数据传输过程中,VPN服务器接收资源服务器返回的下行数据包,将下行数据包进行压缩之后发送给计费系统,计费系统统计下行压缩数据包的数据量作为计费信息,而后将下行压缩数据包转发给客户端,由客户端解压缩后得到下行数据包,完成资源获取过程。本实施例通过以短连接方式建立的VPN通道,利用VPN服务完成下行数据包的压缩和解压缩处理,使得计费系统统计的数据量要小于压缩之前的实际要传输的数据包的数据量,达到了节省流量的目的。通过短连接实现的VPN服务的优点是省电,无需过多的耗费客户端的电量。而且,本实施例利用VPN服务高速且安全的特点,能够对包括静态网页、流媒体文件、各种应用程序以及较大的邮件附件等任何数据进行实时的压缩,与现有技术相比,节省的流量更多,节省流量的范围更广。进一步的,在下行数据传输过程中,考虑到下行数据传输量一般远大于上行数据传输量,而且VPN服务器的系统资源要远远高于客户端,因此本实施例优选使用压缩率高但占用较多系统资源的压缩算法,这种压缩算法不会对VPN服务器产生过大影响,但压缩率很高,能够进一步的节省流量。本实施例提供的方法不仅能对下行数据进行压缩,还能对HTTP头信息也进行压缩,也在一定程度上提高了压缩率。
图6示出了本发明提供的在移动终端设备上实现流量优化的方法的实施例五的流程图。本实施例从一个整体数据传输流程的角度对方法进行阐述。如图6所示,本实施例提供的方法包括如下步骤:
步骤S600,客户端获取下载资源的HTTP请求,根据该HTTP请求得到HTTP请求数据包。
步骤S601,客户端、计费系统以及VPN服务器之间建立VPN通道。
步骤S602,客户端判断HTTP请求数据包中的路由信息是否与预先下发的路由表中记录的信息相匹配,若是,执行步骤S603;否则,本方法流程结束。
步骤S603,客户端将HTTP请求数据包重定向至压缩进程。
上述步骤S600-步骤S603的具体执行过程可参见方法实施例一和实施例二中对应步骤的描述,在此不再赘述。
步骤S604,客户端调用压缩进程,将HTTP请求数据包进行压缩,得到上行压缩数据包。
本实施例中,对HTTP请求数据包中HTTP头信息的压缩可参见方法实施例二的描述。
对HTTP请求数据包中上行数据的压缩可以运行在Nginx平台,Nginx平台具有了若干个和Gzip相关的模块,比如Gzip,Gzip预压缩(Precompression),Gunzip等等,但它们都是和HTTP响应相关的模块,而这里需要的是和HTTP请求相关的模块。所以本实施例将上述HTTP响应相关的模块移植到HTTP请求模块中。而在HTTP响应相关的模块中,本实施例采用了与上行传输过程完全不同的压缩算法,后续将有说明。
可选地,本步骤也可以采用其他的压缩算法,例如zlib压缩算法。
进一步的,压缩请求可以为Gzip格式,发送Gzip格式的压缩请求可以缩减消息大小,加快传输速度;对应的,解析时在预处理阶段可以使用脚本语言或插件对接收到的上述压缩请求进行解析。上述脚本语言包括Lua语言和Perl语言等,具体地,可以使用脚本语言例如Lua调用数据压缩库(zlib)或者使用Lua调用外部函数接口(FFI)对接收到的压缩请求进行解析;当然也可以使用其他类型的脚本语言替代Lua。
因为Nginx平台自身有一个比较好的插件机制,所以在预处理阶段可以通过C语言或其他语言在VPN服务器中创建一个封装zlib的解压缩模块,通过该解压缩模块中的zlib来解压缩压缩请求中的Gzip数据。
步骤S605,客户端通过VPN通道将上行压缩数据包经由计费系统发送给VPN服务器。
步骤S606,VPN服务器对上行压缩数据包进行解压缩得到上行数据包,经解压缩得到的上行数据包发送给资源服务器。
上述步骤S605和步骤S606的具体执行过程可参见方法实施例一和实施例二中对应步骤的描述,在此不再赘述。
步骤S607,VPN服务器接收资源服务器返回的下行数据包。
步骤S608,VPN服务器将下行数据包进行压缩,得到下行压缩数据包。
本实施例中,对下行数据包中HTTP头信息的压缩可参见方法实施例四的描述。
与上行传输过程不同的是,在下行传输过程中所采用的压缩算法完全不同。下行传输过程采用的是LZMA压缩算法,这种压缩算法压缩率高但占用较多系统资源,不会对VPN服务器产生过大影响,但能够进一步的节省流量。
步骤S609,VPN服务器通过VPN通道、经由计费系统将下行压缩数据包发送给客户端。
步骤S610,客户端将下行压缩数据包进行解压缩,得到下行数据包。
步骤S611,释放客户端、计费系统以及VPN服务器之间的VPN通道。
上述步骤S607、步骤S609-步骤S611的具体执行过程可参见方法实施例三和实施例四中对应步骤的描述,在此不再赘述。
本实施例提供的方法在上述实施例的基础上进一步的改进点是,将原本用于压缩的与HTTP响应相关的模块移植到HTTP请求模块中,而在HTTP响应模块中采用了不同于原压缩算法的另一种压缩算法,即上行传输过程和下行传输过程使用完全不同的压缩算法,在考虑到实际运行环境特点的前提下,最大限度了提高了压缩率。
图7示出了本发明提供的客户端的一实施例的结构框图。如图7所示,客户端包括:VPN通道建立模块701、第一压缩模块702、发送模块703、接收模块704、第一解压缩模块705。
VPN通道建立模块701适于建立客户端、计费系统以及VPN服务器之间的VPN通道。首先,在客户端内部创建VPN client。在客户端要产生流量之前,根据用户的操作在客户端后台启动VPN client,进而在客户端、计费系统以及VPN服务器之间建立VPN通道,使得客户端的VPN client经由VPN通道能够连接到VPN服务器来安全地访问网络资源。
第一压缩模块702适于将上行数据包进行压缩,得到上行压缩数据包。其中,上行数据包具体为用于下载资源服务器提供的资源的HTTP请求数据包,上行数据包包括:HTTP头信息、路由信息以及上行数据;第一压缩模块702进一步适于:将上行数据包中的HTTP头信息所包含的字符与预先建立的字符库内的字符进行比对,若比对一致,则将上行数据包中的HTTP头信息所包含的字符替换为该字符在字符库内的偏移值。第一压缩模块702还进一步适于:采用zlib压缩算法对上行数据包中的上行数据进行压缩。
发送模块703适于通过VPN通道将上行压缩数据包经由计费系统发送给VPN服务器,以供VPN服务器对上行压缩数据包进行解压缩得到上行数据包,并将解压缩得到的上行数据包发送给资源服务器。
接收模块704适于接收VPN服务器通过VPN通道、经由计费系统发送的下行压缩数据包,下行压缩数据包是VPN服务器将资源服务器返回的下行数据包进行压缩得到的。下行数据包具体为包含资源服务器根据客户端发出的HTTP请求数据包所提供的资源的数据包,下行数据包包括:HTTP头信息和下行数据。其中,资源包括:静态网页、流媒体、文件、和/或应用。
第一解压缩模块705适于将下行压缩数据包进行解压缩,得到下行数据包。第一解压缩模块705进行解压缩的处理过程与VPN服务器进行压缩的处理过程相对应。
可选地,该客户端还包括:获取模块706、判断模块707和重定向模块708。
获取模块706适于获取下载资源的HTTP请求,根据HTTP请求得到所述上行数据包。
判断模块707适于判断上行数据包中的路由信息是否与预先下发的路由表中记录的信息相匹配。
重定向模块708适于若判断模块的判断结果为是,则将上行数据包重定向至第一压缩模块702。
具体地,预先下发的路由表中记录了需要进行省流量处理的路由信息,如果上行数据包中的路由信息与该路由表中记录的信息相匹配,则由重定向模块708将上行数据包重定向到第一压缩模块702中进行处理。
进一步的,该客户端还包括:VPN通道释放模块709,适于释放客户端、计费系统以及VPN服务器之间的VPN通道。
图8示出了本发明提供的VPN服务器的一实施例的结构框图。如图8所示,VPN服务器包括:第二解压缩模块801和第二压缩模块802。
第二解压缩模块801适于对客户端通过VPN通道、经由计费系统发送的上行压缩数据包进行解压缩得到上行数据包,并将将解压缩得到的上行数据包发送给资源服务器。第二解压缩模块801进行解压缩的处理过程与客户端进行压缩的处理过程相对应。
第二压缩模块802适于将资源服务器返回的下行数据包进行压缩得到下行压缩数据包,并通过VPN通道、经由计费系统将下行压缩数据包返回给客户端,以供客户端将下行压缩数据包进行解压缩,得到下行数据包。
其中,第二压缩模块802进一步适于:将下行数据包中的HTTP头信息所包含的字符与预先建立的字符库内的字符进行比对,若比对一致,则将下行数据包中的HTTP头信息所包含的字符替换为该字符在所述字符库内的偏移值。
可选地,第二压缩模块802还进一步适于:采用zlib压缩算法或LZMA压缩算法对下行数据包中的下行数据进行压缩。
图9示出了本发明提供的在移动终端设备上实现流量优化的系统的一实施例的结构框图。如图9所示,该系统包括:客户端901、VPN服务器902、计费系统903以及资源服务器904。
有关客户端901、VPN服务器902、计费系统903以及资源服务器904的具体描述可参见上述实施例,在此不再赘述。
本发明提供的上述处理系统、客户端和VPN服务器,在上行数据传输过程中,客户端将上行数据包进行压缩之后发送给计费系统,计费系统统计上行压缩数据包的数据量作为计费信息,而后将上行压缩数据包转发给VPN服务器,由VPN服务器解压缩后发送给资源服务器,完成资源请求过程;在下行数据传输过程中,VPN服务器接收资源服务器返回的下行数据包,将下行数据包进行压缩之后发送给计费系统,计费系统统计下行压缩数据包的数据量作为计费信息,而后将下行压缩数据包转发给客户端,由客户端解压缩后得到下行数据包,完成资源获取过程。本发明的处理系统利用VPN服务完成上行/下行数据包的压缩和解压缩处理,使得计费系统统计的数据量要小于压缩之前的实际要传输的数据包的数据量,达到了节省流量的目的。
本发明的处理系统可以通过短连接方式建立VPN通道,也可以通过长连接方式建立VPN通道。通过短连接实现的VPN服务的优点是省电,无需过多的耗费客户端的电量。
本发明的处理系统利用VPN服务高速且安全的特点,能够对包括静态网页、流媒体文件、各种应用程序以及较大的邮件附件等任何数据进行实时的压缩,与现有技术相比,节省的流量更多,节省流量的范围更广。
本发明的处理系统的上行数据传输过程和下行数据传输过程中采用的压缩算法可以是不同的。在上行数据传输过程中,优选的是使用较少系统资源的压缩算法,这样能够减少对客户端系统资源的占用率,避免了影响客户端的运行速度,同时也避免了过多的耗费客户端的电量。在下行数据传输过程中,优选使用压缩率高但占用较多系统资源的压缩算法,这种压缩算法不会对VPN服务器产生过大影响,但压缩率很高,能够进一步的节省流量。
本发明的处理系统不仅能对上行数据和下行数据进行压缩,还能对HTTP头信息也进行压缩,也在一定程度上提高了压缩率。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的在移动终端设备上实现流量优化的系统、客户端和VPN服务器中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
本发明公开了:
A1、一种在移动终端设备上实现流量优化的方法,所述方法基于客户端、计费系统以及VPN服务器之间建立的VPN通道而执行,所述方法包括:
将上行数据包进行压缩,得到上行压缩数据包;
通过所述VPN通道将所述上行压缩数据包经由所述计费系统发送给所述VPN服务器,以供所述VPN服务器对所述上行压缩数据包进行解压缩得到上行数据包,并将解压缩得到的上行数据包发送给资源服务器。
A2、根据A1所述的方法,其中,所述上行数据包具体为用于下载所述资源服务器提供的资源的HTTP请求数据包,所述上行数据包包括:HTTP头信息、路由信息以及上行数据。
A3、根据A2所述的方法,其中,在所述将上行数据包进行压缩,得到上行压缩数据包之前进一步包括:
获取下载所述资源的HTTP请求,根据所述HTTP请求得到所述上行数据包;
判断所述上行数据包中的路由信息是否与预先下发的路由表中记录的信息相匹配;
若判断结果为是,则将所述上行数据包重定向至压缩进程。
A4、根据A2或A3所述的方法,其中,所述将上行数据包进行压缩进一步包括:
将所述上行数据包中的HTTP头信息所包含的字符与预先建立的字符库内的字符进行比对,若比对一致,则将所述上行数据包中的HTTP头信息所包含的字符替换为该字符在所述字符库内的偏移值。
A5、根据A2或A3或A4所述的方法,其中,所述将上行数据包进行压缩进一步包括:采用zlib压缩算法对上行数据包中的上行数据进行压缩。
A6、根据A2-A5任一项所述的方法,其中,所述资源包括:静态网页、流媒体、文件、和/或应用。
A7、根据A3所述的方法,其中,所述VPN通道的建立是在所述获取下载资源的HTTP请求之后执行的。
本发明还公开了:
B8、一种在移动终端设备上实现流量优化的方法,所述方法基于客户端、计费系统以及VPN服务器之间建立的VPN通道而执行,所述方法包括:
接收所述VPN服务器通过所述VPN通道、经由所述计费系统发送的下行压缩数据包,所述下行压缩数据包是所述VPN服务器将资源服务器返回的下行数据包进行压缩得到的;
将所述下行压缩数据包进行解压缩,得到下行数据包。
B9、根据B8所述的方法,其中,所述下行数据包具体为包含所述资源服务器根据客户端发出的HTTP请求数据包所提供的资源的数据包,所述下行数据包包括:HTTP头信息和下行数据。
B10、根据B8所述的方法,其中,所述VPN服务器将资源服务器返回的下行数据包进行压缩进一步包括:
将所述下行数据包中的HTTP头信息所包含的字符与预先建立的字符库内的字符进行比对,若比对一致,则将所述下行数据包中的HTTP头信息所包含的字符替换为该字符在所述字符库内的偏移值。
B11、根据B8所述的方法,其中,所述VPN服务器将资源服务器返回的下行数据包进行压缩进一步包括:所述VPN服务器采用zlib压缩算法对下行数据包中的下行数据进行压缩。
B12、根据B8所述的方法,其中,所述VPN服务器将资源服务器返回的下行数据包进行压缩进一步包括:所述VPN服务器采用LZMA压缩算法对下行数据包中的下行数据进行压缩。
B13、根据B9-B12任一项所述的方法,其中,所述资源包括:静态网页、流媒体、文件、和/或应用。
B14、根据B8-B13任一项所述的方法,其中,在所述得到下行数据包之后进一步包括:释放所述客户端、计费系统以及VPN服务器之间的VPN通道。
本发明还公开了:
C15、一种客户端,其包括:
VPN通道建立模块,适于建立客户端、计费系统以及VPN服务器之间的VPN通道;
第一压缩模块,适于将上行数据包进行压缩,得到上行压缩数据包;
发送模块,适于通过所述VPN通道将所述上行压缩数据包经由所述计费系统发送给所述VPN服务器,以供所述VPN服务器对所述上行压缩数据包进行解压缩得到上行数据包,并将解压缩得到的上行数据包发送给资源服务器;
接收模块,适于接收所述VPN服务器通过所述VPN通道、经由所述计费系统发送的下行压缩数据包,所述下行压缩数据包是所述VPN服务器将资源服务器返回的下行数据包进行压缩得到的;
第一解压缩模块,适于将所述下行压缩数据包进行解压缩,得到下行数据包。
C16、根据C15所述的客户端,其中,所述上行数据包具体为用于下载所述资源服务器提供的资源的HTTP请求数据包,所述上行数据包包括:HTTP头信息、路由信息以及上行数据;所述下行数据包具体为包含所述资源服务器根据客户端发出的HTTP请求数据包所提供的资源的数据包,所述下行数据包包括:HTTP头信息和下行数据。
C17、根据C16所述的客户端,其中,还包括:
获取模块,适于获取下载所述资源的HTTP请求,根据所述HTTP请求得到所述上行数据包;
判断模块,适于判断所述上行数据包中的路由信息是否与预先下发的路由表中记录的信息相匹配;
重定向模块,适于若所述判断模块的判断结果为是,则将所述上行数据包重定向至所述第一压缩模块。
C18、根据C15-C17任一项所述的客户端,其中,所述第一压缩模块进一步适于:将所述上行数据包中的HTTP头信息所包含的字符与预先建立的字符库内的字符进行比对,若比对一致,则将所述上行数据包中的HTTP头信息所包含的字符替换为该字符在所述字符库内的偏移值。
C19、根据C15-C18任一项所述的客户端,其中,所述第一压缩模块进一步适于:采用zlib压缩算法对上行数据包中的上行数据进行压缩。
C20、根据C15-C19任一项所述的客户端,其中,所述资源包括:静态网页、流媒体、文件、和/或应用。
C21、根据C15所述的客户端,其中,还包括:VPN通道释放模块,适于释放所述客户端、计费系统以及VPN服务器之间的VPN通道。
本发明还公开了:
D22、一种VPN服务器,其包括:
第二解压缩模块,适于对客户端通过VPN通道、经由计费系统发送的上行压缩数据包进行解压缩得到上行数据包,并将将解压缩得到的上行数据包发送给资源服务器;
第二压缩模块,适于将资源服务器返回的下行数据包进行压缩得到下行压缩数据包,并通过所述VPN通道、经由所述计费系统将下行压缩数据包返回给客户端,以供客户端将所述下行压缩数据包进行解压缩,得到下行数据包。
D23、根据D22所述的VPN服务器,所述第二压缩模块进一步适于:将所述下行数据包中的HTTP头信息所包含的字符与预先建立的字符库内的字符进行比对,若比对一致,则将所述下行数据包中的HTTP头信息所包含的字符替换为该字符在所述字符库内的偏移值。
D24、根据D22或D23所述的VPN服务器,所述第二压缩模块进一步适于:采用zlib压缩算法对下行数据包中的下行数据进行压缩。
D25、根据D22或D23所述的VPN服务器,所述第二压缩模块进一步适于:采用LZMA压缩算法对下行数据包中的下行数据进行压缩。
本发明还公开了:
E26、一种在移动终端设备上实现流量优化的系统,包括:C15-C21任一项所述的客户端、D22-D25任一项所述的VPN服务器以及计费系统、资源服务器。