具体实施方式
为了使本发明的目的、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
图1示例性示出了本发明实施例适用的一种数据分流系统架构示意图,数据分流系统包括核心网、本地服务器、网关和基站,基站和核心网通过网关建立链接,基站和本地服务器通过网关建立链接,网关管理多个基站,每个基站管理多个终端;如图1所示,该系统架构100包括互联网101、核心网102、本地服务器103、网关104、基站105、基站106和基站107,其中,一方面,网关104分别连接基站105、基站106和基站107;另一方面,网关104分别连接核心网102和本地服务器103;核心网102和本地服务器103连接互联网101。
本发明实施例中,网关104接收基站发送的第一数据包,可以发送至核心网102或本地服务器103;其中,若该第一数据包为VoLTE数据包,则网关104将该第一数据包发送至核心网102;若该第一数据包为非VoLTE数据包,则网关104将该第一数据包发送本地服务器103。
本发明实施例中,一方面,网关104接收本地服务器103发送的第二数据包,则将该第二数据包发送至基站,通过基站发送至该第二数据包中包括的终端标识对应的终端。另一方面,网关104接收核心网102发送的数据包,并将该数据包发送至基站。
本发明实施例中,终端通过安装与本地服务器内HTTPS服务相配套的应用软件控制网关的数据分流与链路选择;基站负责为终端提供覆盖并连接网关与本地服务器;网关负责数据分流具体操作与“是否全分流”的控制;本地服务器提供面向终端应用软件的HTTPS服务、消息交互控制,本地服务器与网关联合控制UE“是否全数据分流”,本地服务器承接终端直接访问交互以外,还提供NAT功能,为分流而至的数据报文提供NAT转化联网服务。
图2示例性示出了本发明实施例提供的一种数据分流方法流程示意图。
基于图1所示的系统架构,如图2所示,本发明实施例提供的一种数据分流方法,适用于包括基站、网关、核心网、本地服务器的长期演进LTE系统,基站和核心网通过网关建立链接,基站和本地服务器通过网关建立链接,该方法包括以下步骤:
步骤S201:网关接收基站发送的第一数据包;其中,第一数据包包括第一数据;
步骤S202:网关在确定第一数据包为非长期演进上的语音VoLTE数据包的情况下:将第一数据发送至本地服务器。
上述实施例中,步骤S201中,第一数据包为终端向基站发送的上行数据包,其中,第一数据包中包括的第一数据可以为VoLTE数据,也可以为非VoLTE数据。
上述实施例中,步骤S202中,确定第一数据包是否为VoLTE数据包的方法有多种,本发明实施例提供一种可选的方案:若收到第一数据包的承载通路的标度值(QoS ClassIdentifier,简称QCI)为1、2和5中的任一个值时,则第一数据包为VoLTE数据包;若QCI不为1、2和5中的任一个值时,则第一数据包为非VoLTE数据包。
本发明实施例中,由于网关接收基站发送的第一数据包;其中,第一数据包包括第一终端标识、第一数据;网关在确定第一数据包为非VoLTE数据包的情况下:将第一数据包中的第一数据发送至本地服务器;相对于现有技术中的将第一数据包中的第一数据发送至核心网,本发明实施例提供的方法实现了非VoLTE数据的分流,进而缓解了核心网压力。
基于上述实施例中的步骤S202,网关将第一数据发送至本地服务器包括两种情况:
第一种情况为:网关在确定第一数据包为非VoLTE数据包的情况下:将第一数据发送至本地服务器,包括:网关在确定第一数据包为非VoLTE数据包、且网关处于开启全数据本地分流状态的情况下,将第一数据发送至本地服务器。如此,网关处于开启全数据本地分流状态时,对接收到的所有非VoLTE数据包,强制分流至本地服务器;相对于现有技术中的仅仅对访问VPN服务器的部分数据流进行分流的方法,本发明实现对非VoLTE数据的全数据本地分流,也就是说,本发明实施例提供的方案相对于现有技术数据分流更彻底,大大的减轻了核心网的压力;
第二种情况为:第一数据包中还包括目的IP地址;网关在确定第一数据包为非VoLTE数据包的情况下:将第一数据发送至本地服务器,包括:网关在确定第一数据包为非VoLTE数据包,且网关在确定目的IP地址与本地服务器的IP地址匹配的情况下,将第一数据发送至本地服务器。如此,网关对访问本地服务器的非VoLTE数据分流,比如,本地服务器的IP地址为:192.168.26.100,第一数据包中的目的IP地址为192.168.26.100,则网关将第一数据包中的第一数据强制分流至本地服务器。如此,减少了需要经由核心网处理的数据包,减少了核心网的压力。
本发明实施例中,网关是否处于开启全数据本地分流状态,通过终端和本地服务器之间采用HTTPS加密方式的安全通信,确定是否开启全数据本地分流。
为了更清楚的说明如何开启全数据本地分流,图3示例性示出了本发明实施例提供的终端和本地服务器之间开启全数据本地分流交互的示意图。如图3所示,开启全数据本地分流的步骤如下:
步骤S301:终端向网关发送开启全数据分流消息;
步骤S302:网关向本地服务器转发开启全数据分流消息(Ping);
步骤S303:本地服务器向网关发送第一请求消息;其中,第一请求消息可以为本地服务器对某个终端执行Ping操作,以Ping操作的报文大小72字节为开启全数据本地分流的控制约定;
步骤S304:若网关接收到第一请求消息为72字节大小,则开启全数据本地分流;
步骤S305:网关开启全数据本地分流之后,向本地服务器发送第一应答消息;其中,第一应答消息为Ping操作的应答消息,若网关开启全数据本地分流,则网关向本地服务器发送的第一应答消息为72字节;
步骤S306:本地服务器接收到第一应答消息之后,若第一应答消息为72字节,则向网关发送全数据分流开启消息(Https);
步骤S307:网关向终端发送全数据分流开启消息;
上述步骤S301、S302中的开启全数据分流消息采用局域网通信的方式,步骤S306、S307中的全数据分流开启消息采用HTTPS加密的方式。
为了更清楚的说明如何关闭全数据本地分流,图3示例性示出了本发明实施例提供的终端和本地服务器之间关闭全数据本地分流交互的示意图。如图4所示,关闭全数据本地分流的步骤如下:
步骤S401:终端向网关发送关闭全数据分流消息;
步骤S402:网关向本地服务器转发关闭全数据分流消息(Ping);
步骤S403:本地服务器向网关发送第二请求消息;其中,第二请求消息可以为本地服务器对某个终端执行Ping操作,以Ping操作的报文大小2字节为关闭全分流的控制约定;
步骤S404:若网关接收到第二请求消息为2字节大小,则关闭全数据分流;
步骤S405:网关关闭全数据分流之后,向本地服务器发送第二应答消息;其中,第二应答消息为Ping操作的应答消息,若网关关闭全数据本地分流,则网关向本地服务器发送的第二应答消息为2字节;
步骤S406:本地服务器接收到第二应答消息,若第二应答消息为2字节,则向网关发送全数据分流关闭消息(Https);
步骤S407:网关向终端发送全数据分流关闭消息;
上述步骤S401、S402中的关闭全数据分流消息采用局域网通信的方式,步骤S406、S407中的全数据分流关闭消息采用HTTPS加密的方式。
需要说明的是,上述实施例中,网关与本地服务器关于分流控制采用局部直连通信的安全方式,若网关一旦发现本地服务器对某终端执行Ping操作,则代替此终端作回应、并执行相应的分流控制,其中,以72字节为开启全数据分流、2字节为关闭全数据分流的控制约定;而Ping操作的报文大小并不局限于以72字节为开启、2字节为关闭全数据分流的控制约定,比如,也可以为120字节为开启、36字节为关闭全数据分流的控制约定。
可选地,本发明实施例中实现终端和本地服务器的交互方式有多种,其中一种方式为:在终端上安装应用软件,用于实现和本地服务器的是否开启全数据分流;本发明实施例中,根据传统LTE系统,借助网关/本地服务器/终端联合控制,依靠网关灵活的分流控制技术,最终实现客户终端自主选择传统LTE联网方式或者网关本地分流的联网方式,同时将网关与本地服务器关于“是否全数据分流”的控制内部完全化,缓解核心网络压力的同时,也多元化运营商开放自身能力平台的方式,为运营商拓宽市场提供一种全新的网络传输支撑。
可选地,网关接收基站发送的第一数据包之后,还包括:网关在确定第一数据包满足预设条件中的任一项,将第一数据发送至核心网;其中,预设条件包括:
条件一,第一数据包为非VoLTE数据包、且目的IP地址与本地服务器的IP地址不匹配、且网关处于关闭全数据本地分流状态;
条件二,第一数据包为VoLTE数据包。
上述实施例中,若第一数据包为VoLTE数据包,即QCI为1、2和5中的任一个值时,也就是说,第一数据为语音数据,无论网关是否处于开启全数据本地分流状态,都将第一数据发送至核心网处理;若第一数据包为非VoLTE数据包、且其中的目的IP地址与本地服务器的IP地址不匹配、且网关处于关闭全数据本地分流状态,将第一数据发送至核心网;本发明实施例中,将第一数据发送至核心网包括:网关更新第一数据包中的以太网Ethernet头、隧道IP头,得到待发送数据包,并将待发送数据包发送至核心网。
可选地,第一数据包还包括IP头、UDP头、GTP-U头和第一终端标识;将第一数据发送至本地服务器之前,还包括:网关记录第一数据包中包括的隧道IP头、隧道UDP头和GTP-U头与第一终端标识的对应关系,并将对应关系加入第一集合;网关封装第一数据和第一终端标识,得到第一待发送数据包;网关将第一待发送数据包发送至本地服务器。
本发明实施例中,第一数据包包括Ethernet头、IP头、UDP头、GTP-U头、第一终端标识和第一数据,其中,IP头、UDP头、GTP-U头与第一终端标识一一对应;网关接收到第一数据包之后,存在两种情况:
情况一,网关确定第一数据包为VoLTE数据包,则将该VoLTE数据包接封装之后,得到第一数据和第一终端标识;然后将第一数据和第一终端标识封装新的Ethernet头、IP头、UDP头、GTP-U头,再发送至核心网。
情况二,网关确定第一数据包为非VoLTE数据包,则将该非VoLTE数据包接封装之后,得到第一终端标识和第一数据,记录第一数据包中的IP头、UDP头、GTP-U头与第一终端标识的对应关系;并将第一终端标识和第一数据封装上新的Ethernet头,发送至本地服务器。
本发明实施例中,网关接收基站发送的第一数据包,记录第一数据包中的IP头、UDP头、GTP-U头与第一终端标识的对应关系,以便于网关接收到本地服务器发送的第二数据包时,确定出第二数据包中的终端标识对应的IP头、UDP头、GTP-U头,进而发送至与本地服务器进行数据交互的终端,如此,从互联网获得的下行数据通过本地服务器发送至网关,减小了核心网的压力。
可选地,本发明实施例提供的数据分流的方法还包括:网关接收本地服务器发送的第二数据包;其中,第二数据包包括待查询终端标识和第二数据;网关在网关确定出第一集合中与待查询终端标识匹配的终端标识的情况下,确定出与待查询终端标识匹配的终端标识对应的隧道IP头、隧道UDP头和GTP-U头;网关根据与待查询终端标识匹配的终端标识对应的隧道IP头、隧道UDP头和GTP-U头,封装第二数据,得到第二待发送数据包;网关将第二待发送数据包发送至基站。
本发明实施例中,第二数据包中包括的数据为下行数据,待查询终端标识为第二数据需要到达的终端对应的标识;由于网关会收到多个终端发送的多个第一数据包,所以在网关接收到第二数据包之后,需要根据第二数据包中包括的待查询终端标识,以确定将第二数据发送至相应的终端。
举个例子,网关接收到基站发送的2个第一数据包,分别为:数据包一,终端标识为UE1;数据包二,终端标识为UE2;其中,UE1对应的隧道IP头、隧道UDP头、GTPU头分别为IP1、UDP1和GTPU1;UE2对应的隧道IP头、隧道UDP头、GTPU头分别为IP2、UDP2和GTPU2;网关接收到第二数据包,其中包括的待查询终端标识为UE2,则网关将该第二数据包中的第二数据封装上UE2对应的隧道IP头、隧道UDP头、GTPU头分别为IP2、UDP2和GTPU2,得到第二待发送数据包;并将封装后的第二待发送数据包发送至基站,通过基站发送至终端UE2。如此,本发明实施例将部分下行数据通过本地服务器发送至网关,进而减少了通过核心网的数据流量,减轻了核心网的压力。
为了更清楚的介绍基站、网关、核心网和本地服务器之间的数据包的格式,图5示例性示出了本发明实施例提供的上下行数据包封装格式示例。
本发明实施例中,LTE系统中的数据传输链路包括两个:链路一为基站、网关、核心网和互联网组成的链路,链路二为基站、网关、本地服务器和互联网组成的链路。
如图5所示,上行数据传输由基站向互联网方向,具体包括:
(1)由基站向网关发送上行数据包501,其封装格式为:Ethernet头、S1隧道IP头、S1隧道UDP头、GTP-U头、终端IP包,其中,上行数据包501即为上述实施例中的第一数据包,终端IP包中包括第一数据和第一终端标识;
(2)网关接收到上行数据包501之后,判断是向核心网或本地服务器发送数据;
若网关向核心网发送数据,则更新上行数据包501中的Ethernet头、S1隧道IP头,得到上行数据包502,其封装格式为:Ethernet头、S1隧道IP头、S1隧道UDP头、GTP-U头、终端IP包;并将上行数据包502发送至核心网;
若网关向本地服务器发送数据,则记录上行数据包501中的S1隧道IP头、S1隧道UDP头、GTP-U头与第一终端标识的对应关系,加入第一集合中;并将上行数据包501中的S1隧道IP头、S1隧道UDP头、GTP-U头拆除,更新其中的Ethernet头,得道上行数据包504,其封装格式为:Ethernet头、终端IP包;并将上行数据包504发送至本地服务器;
(3)核心网接收到上行数据包502之后,拆除其中的S1隧道IP头、S1隧道UDP头、GTP-U头,并更新其中的Ethernet头,得到上行数据包503,其封装格式为:Ethernet头、终端IP包;向互联网发送上行数据包503;
(4)本地服务器接收到上行数据包504之后,更新其中的Ethernet头,得到上行数据包505,其封装格式为:Ethernet头、终端IP包;向互联网发送上行数据包505。
相应地,如图5所示,下行数据传输由互联网向基站方向,具体包括:
(1)互联网向核心网或本地服务器发送下行数据包;若是向核心网方向,发送下行数据包506,其封装格式为:Ethernet头、终端IP包;若是向核心网方向,发送下行数据包508,其封装格式为:Ethernet头、终端IP包;
(2)核心网接收到下行数据包506,添加S1隧道IP头、S1隧道UDP头、GTP-U头,更新其中的Ethernet头,得到下行数据包507,其封装格式为:Ethernet头、S1隧道IP头、S1隧道UDP头、GTP-U头、终端IP包;向网关发送下行数据包507;
(3)本地服务器接收到下行数据包508,更新其中的Ethernet头,得到下行数据包509,其封装格式为:Ethernet头、终端IP包;向网关发送下行数据包509;
(4)网关接收到核心网发送的下行数据包507时,更新其中的Ethernet头、S1隧道IP头之后,得到下行数据包510;网关接收到本地服务器发送的下行数据包509时,根据终端IP包中包括的待查询终端标识,在第一集合中查找与待查询终端标识匹配的终端标识,并确定出与待查询终端标识匹配的终端标识对应的S1隧道IP头、S1隧道UDP头、GTP-U头,封装终端IP包得到下行数据包510,其封装格式为:Ethernet头、S1隧道IP头、S1隧道UDP头、GTP-U头、终端IP包;网关将下行数据包510发送至基站。
为了更清楚的介绍上述方法流程,本发明实施例提供以下示例。
图6示例性示出了本发明实施例提供的一种上行数据分流的方法流程示意图,基于图1所示的系统架构,如图6所示,本发明实施例提供的另一种数据分流的方法,适用于包括基站、网关、核心网、本地服务器的长期演进LTE系统,所述基站和所述核心网通过所述网关建立链接,所述基站和所述本地服务器通过所述网关建立链接,该方法包括以下步骤:
步骤S601:所述网关接收所述基站发送的第一数据包;其中,所述第一数据包包括第一终端标识、第一数据;
步骤S602:所述网关确定第一数据包是否为VoLTE数据包;若是,则执行步骤S608;若否,则执行步骤S603;
步骤S603:所述网关确定第一数据包中的目的IP地址是否与所述本地服务器的IP地址匹配;若是,则执行步骤S605;若否,则执行步骤S604;
步骤S604:网关是否处于开启全数据本地分流状态;若是,则执行步骤S605;若否,则执行步骤S608;
步骤S605:网关记录第一数据包中包括的隧道IP头、隧道UDP头和GTP-U头与第一终端标识的对应关系,并将对应关系加入第一集合;
步骤S606:网关拆除第一数据包中的隧道IP头、隧道UDP头和GTP-U头,封装第一数据和第一终端标识,得到第一待发送数据包;
步骤S607:网关将第一待发送数据包发送至本地服务器;
步骤S608:网关将第一数据发送至核心网。
图7示例性示出了本发明实施例提供的一种下行数据分流的方法流程示意图,基于图1所示的系统架构,如图7所示,本发明实施例提供的另一种数据分流的方法,适用于包括基站、网关、核心网、本地服务器的长期演进LTE系统,所述基站和所述核心网通过所述网关建立链接,所述基站和所述本地服务器通过所述网关建立链接,该方法包括以下步骤:
步骤S701:网关接收本地服务器发送的第二数据包;其中,第二数据包包括待查询终端标识和第二数据;
步骤S702:网关在第一集合中查询是否存在与待查询终端标识匹配的终端标识;若是,则执行步骤S703;若否,则执行步骤S706;
步骤S703:确定出与待查询终端标识匹配的终端标识对应的隧道IP头、隧道UDP头和GTP-U头;
步骤S704:网关根据与待查询终端标识匹配的终端标识对应的隧道IP头、隧道UDP头和GTP-U头,封装第二数据,得到第二待发送数据包;
步骤S705:网关将第二待发送数据包发送至基站;
步骤S706:丢弃该第二数据包。
从上述图6和图7的方法流程可以看出:网关在确定第一数据包为非VoLTE数据包的情况下:在网关处于开启全数据分流状态时,将第一数据发送至本地服务器。如此,实现了上行数据中非VoLTE数据的分流,进而缓解了核心网压力;而且,网关接收本地服务器发送的第二数据包,如此下行数据中的非VoLTE数据也不经由核心网,通过本地服务器发送至网关,减少了通过核心网的数据流量,缓解了核心网的压力;本发明实施例融合网关分流技术与本地服务器数据流承接及配套方案,将网关/本地服务器/终端融合一起,使终端通过LTE系统上网的链路变为终端可控化,缓解核心网压力、开放核心网侧的链路选择能力、丰富了既有服务模式;本发明灵活可控的分流系统及网关,为运营商拓宽市场提供一种全新的方案。
图8示例性示出了本发明实施例提供的一种用于数据分流的网关的结构示意图。
基于相同构思,本发明实施例提供的一种用于数据分流的网关,适用于包括基站、网关、核心网、本地服务器的长期演进LTE系统,所述基站和所述核心网通过所述网关建立链接,所述基站和所述本地服务器通过所述网关建立链接,用于数据分流的网关用于执行上述方法流程,如图8所示,该用于数据分流的网关800包括接收单元801、处理单元802和发送单元803;其中:
接收单元801,用于接收所述基站发送的第一数据包;其中,所述第一数据包包括第一数据;
处理单元802,用于确定所述第一数据包是否为非长期演进上的语音VoLTE数据包;
发送单元803,用于在确定所述第一数据包为非长期演进上的语音VoLTE数据包的情况下:将所述第一数据发送至所述本地服务器。
可选地,所述发送单元803,用于:在所述处理单元802确定所述第一数据包为非VoLTE数据包、且所述网关处于开启全数据本地分流状态的情况下,将所述第一数据发送至所述本地服务器。
可选地,所述第一数据包中还包括目的IP地址;所述发送单元803,用于:在所述处理单元802确定所述第一数据包为非VoLTE数据包、且所述目的IP地址与所述本地服务器的IP地址匹配的情况下,将所述第一数据发送至所述本地服务器。所述处理单元802,还用于:确定所述第一数据包是否满足预设条件中的任一项;所述发送单元803,还用于:在确定所述第一数据包满足预设条件中的任一项,将所述第一数据发送至所述核心网;其中,所述预设条件包括:第一数据包为非VoLTE数据包、且所述目的IP地址与所述本地服务器的IP地址不匹配、且所述网关处于关闭全数据本地分流状态;所述第一数据包为VoLTE数据包。
可选地,所述第一数据包还包括IP头、UDP头、GTP-U头和第一终端标识;所述处理单元802,还用于:记录所述第一数据包中包括的所述隧道IP头、所述隧道UDP头和所述GTP-U头与所述第一终端标识的对应关系,并将所述对应关系加入第一集合;封装所述第一数据和所述第一终端标识,得到第一待发送数据包;所述发送单元803,还用于:将所述第一待发送数据包发送至所述本地服务器。
可选地,所述接收单元801,还用于:接收所述本地服务器发送的第二数据包;其中,所述第二数据包包括待查询终端标识和第二数据;所述处理单元802,还用于:在确定出所述第一集合中与所述待查询终端标识匹配的终端标识的情况下,确定出与所述待查询终端标识匹配的终端标识对应的隧道IP头、隧道UDP头和GTP-U头;根据所述与所述待查询终端标识匹配的终端标识对应的隧道IP头、隧道UDP头和GTP-U头,封装所述第二数据,得到第二待发送数据包;所述发送单元803,还用于:将所述第二待发送数据包发送至所述基站。
从上述内容可以看出:本发明实施例中,由于网关接收基站发送的第一数据包;其中,第一数据包包括第一终端标识、第一数据;网关在确定第一数据包为非VoLTE数据包的情况下:将第一数据发送至本地服务器。如此,实现了非VoLTE数据的分流,进而缓解了核心网压力。
应理解,以上各个单元的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。
本领域内的技术人员应明白,本发明实施例可提供为方法、系统、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。