QUIC业务控制方法及网络设备与流程

文档序号:17049148发布日期:2019-03-05 19:51阅读:282来源:国知局
QUIC业务控制方法及网络设备与流程

本发明实施例涉及通信领域,尤其涉及快速用户数据报(userdatagramprotocol,udp)网络连接(quickudpinternetconnection,quic)业务控制方法及网络设备。



背景技术:

quic协议是基于udp的一种传输协议,能够实现多路复用以及安全性保护。quic协议不仅集成了超文本传输协议(hypertexttransferprotocol,http)2.0、安全传输层协议(transportlayersecurity,tls)、传输控制协议(transmissioncontrolprotocol,tcp)的优点,还实现了减小接入时延、更便捷的流量拥塞控制、更好的纠错机制等。

图1为quic协议、http2.0协议、快速(speedy,spdy)协议的协议栈对比图。参照图1,基于安全的考虑,spdy规定建立在tls之上,由上到下的协议层次分别为:http、spdy、tls、tcp、网络协议(internetprotocol,ip)。普通的http/2.0的协议层次分别为:http、安全套接层协议(securitysocketlayer,ssl)/tls、tcp、ip,其中,tls协议层为可选的,http下面可以直接为tcp。quic的下层为udp,上层可以为spdy和http,也可以为其他的应用层协议。

图2为quic包头格式示意图,quic包头也称为quic通用(common)包头。参照图2,传输的所有quic包以一个大小介于1至51个字节之间的通用包头开始。通用包头的格式包括:公共标记(publicflags)、连接标识(connectionid)、quic版本(version)、包号(packetnumber)、私有标记(privateflag)、前向纠错码(forwarderrorcorrection,fec)。

图3为quic包头完整性保护和加密示意图。参照图3,quic包头全部经过完整性保护,包头的私有标记(privateflag)之后以及载荷(payload)部分经过加密。

随着quic流量越来越大,从而提出需要网络区分quic流量或者区分某一业务节点接口(servicenodeinterface,sni),并对其进行限流,以保证其他业务的通信不受影响。

在现有技术基于tcp的时候,通过部署tcp代理(proxy)控制服务器(server)发包速率。而quic因为其加密与完整性保护的特性,无法通过代理进行业务控制,因此无法进行传输优化。



技术实现要素:

本发明实施例提供了quic业务控制方法及网络设备,能够通过中间实体进行业务控制,从而进行传输优化。

第一方面,本发明实施例提供了一种quic业务控制方法。第一网络设备从中间实体接收所述中间实体的公钥;所述第一网络设备向所述中间实体发送用所述中间实体的公钥加密的交互帧,所述交互帧携带所述第一网络设备给所述中间实体的交互信息,所述交互信息用于指示所述中间实体根据所述交互信息进行quic业务控制,所述quic业务为所述第一网络设备与第二网络设备之间的经过所述中间实体的业务。其中,第一网络设备和第二网络设备的业务路径经过中间实体,中间实体可以为数据转发设备,例如,基站、网关等。

本发明实施例中,由于第一网络设备从中间实体接收了中间实体的公钥,并且所述第一网络设备向所述中间实体发送用所述中间实体的公钥加密的交互帧,所述交互帧用于携带所述第一网络设备给所述中间实体的交互信息,从而中间实体可以根据该中间实体的私钥解析该交互帧,相应地根据交互信息对所述第一网络设备与第二网络设备之间的经过所述中间实体的quic业务进行业务控制。

在一种可能的实施方式中,在所述第一网络设备与所述第二网络设备之间的quic连接建立阶段,所述第一网络设备从所述中间实体接收所述中间实体的公钥。根据该实施方式,在所述第一网络设备与所述第二网络设备之间的quic连接建立阶段,所述第一网络设备就从所述中间实体接收所述中间实体的公钥,便于quic连接建立初期就能够实现第一网络设备与中间实体的通信,从而在整个quic业务过程中进行quic业务控制。

在一种可能的实施方式中,所述交互帧属于交互流,所述交互帧具有预先设定的帧类型,所述交互流具有预先设定的流标识。根据该实施方式,提供了识别交互帧的一种方式,通过流标识和帧类型相结合来识别交互帧,从而获取交互帧中携带的交互信息,这种识别方式利用了现有的quic帧结构,简单快速。

在一种可能的实施方式中,所述交互帧属于交互流,所述交互帧的quic包头的前两位用于标识所述交互帧,所述交互流具有预先设定的流标识。根据该实施方式,提供了识别交互帧的另一种方式,通过流标识和quic包头的前两位相结合来识别交互帧,从而获取交互帧中携带的交互信息,这种识别方式利用了quic包头中通常未被使用的前两位,简单快速。

在一种可能的实施方式中,所述交互帧包括帧的类型、流标识、交互信息的发端和手段、交互信息的内容。根据该实施方式,提供了交互帧的一种帧格式,一方面帧的类型、流标识可以用于中间实体识别交互帧,另一方面交互信息的发端和手段、交互信息的内容可以用于中间实体进行quic业务控制。

在一种可能的实施方式中,所述第一网络设备向所述中间实体发送用所述中间实体的公钥加密的交互帧之后,所述第一网络设备从所述第二网络设备接收窗口更新帧。根据该实施方式,第一网络设备向中间实体发送交互帧后,中间实体还可以向第二网络设备发送更新后的交互帧,从而可以由第二网络设备根据交互帧中携带的交互信息对第一网络设备进行传输控制。

第二方面,提供了一种quic业务控制方法。中间实体向第一网络设备发送所述中间实体的公钥;所述中间实体从所述第一网络设备接收用所述中间实体的公钥加密的交互帧,所述交互帧携带所述第一网络设备给所述中间实体的交互信息;所述中间实体根据所述交互信息进行quic业务控制,所述quic业务为所述第一网络设备与第二网络设备之间的经过所述中间实体的业务。

本发明实施例中,由中间实体向第一网络设备发送了中间实体的公钥,并且接收了所述第一网络设备发送的用所述中间实体的公钥加密的交互帧,从而中间实体可以根据该中间实体的私钥解析该交互帧,相应地根据交互信息进行quic业务控制。

在一种可能的实施方式中,所述中间实体根据所述交互信息对quic业务进行网络传输调整,并暂留所述交互帧;在所述中间实体需要向所述第二网络设备发送quic业务控制消息时,对所述交互帧进行修改后用所述中间实体的私钥加密,将加密后的所述交互帧发送给所述第二网络设备。根据该实施方式,中间实体不仅根据所述交互信息对quic业务进行网络传输调整,而且暂留所述交互帧,以便后续中间实体需要向第二网络设备发送交互消息时,将交互消息携带于该交互帧中发送给第二网络设备,从而使得第二网络设备可以根据交互信息进行quic业务控制。

在一种可能的实施方式中,在所述第一网络设备与所述第二网络设备之间的quic连接建立阶段,所述中间实体向所述第一网络设备发送所述中间实体的公钥。根据该实施方式,在所述第一网络设备与所述第二网络设备之间的quic连接建立阶段,所述中间实体就向所述第一网络设备发送所述中间实体的公钥,便于quic连接建立初期就能够实现第一网络设备与中间实体的通信,从而在整个quic业务过程中进行quic业务控制。

可选地,在所述第一网络设备与所述第二网络设备之间的quic连接建立阶段,所述中间实体向所述第二网络设备发送所述中间实体的公钥。根据该实施方式,在所述第一网络设备与所述第二网络设备之间的quic连接建立阶段,所述中间实体就向所述第二网络设备发送所述中间实体的公钥,便于quic连接建立初期就能够实现第二网络设备与中间实体的通信,从而在整个quic业务过程中进行quic业务控制。

在一种可能的实施方式中,所述中间实体从所述第一网络设备接收交互流,所述交互流具有预先设定的流标识;所述中间实体用所述中间实体的私钥对用所述中间实体的公钥加密的交互帧进行解析,所述交互帧属于所述交互流,所述交互帧具有预先设定的帧类型。根据该实施方式,提供了识别交互帧的一种方式,通过流标识和帧类型相结合来识别交互帧,从而获取交互帧中携带的交互信息,这种识别方式利用了现有的quic帧结构,简单快速。

在一种可能的实施方式中,所述中间实体从所述第一网络设备接收交互流,所述交互流具有预先设定的流标识;所述中间实体用所述中间实体的私钥对用所述中间实体的公钥加密的交互帧进行解析,所述交互帧属于所述交互流,所述交互帧的quic包头的前两位用于标识所述交互帧。根据该实施方式,提供了识别交互帧的另一种方式,通过流标识和quic包头的前两位相结合来识别交互帧,从而获取交互帧中携带的交互信息,这种识别方式利用了quic包头中通常未被使用的前两位,简单快速。

在一种可能的实施方式中,所述交互帧包括帧的类型、流标识、交互信息的发端和手段、交互信息的内容。根据该实施方式,提供了交互帧的一种帧格式,一方面中间实体可以根据帧的类型、流标识识别交互帧,另一方面中间实体可以根据交互信息的发端和手段、交互信息的内容进行quic业务控制。

第三方面,提供了一种quic业务控制方法。第二网络设备从中间实体接收所述中间实体的公钥;所述第二网络设备从中间实体接收用所述中间实体的私钥加密的交互帧,所述交互帧携带所述中间实体给所述第二网络设备的交互信息;所述第二网络设备根据所述交互信息进行quic业务控制,所述quic业务为所述第二网络设备与第一网络设备之间的经过所述中间实体的业务。

本发明实施例中,由于第二网络设备从中间实体接收了中间实体的公钥,因此当所述第二网络设备从中间实体接收到用所述中间实体的私钥加密的交互帧时,所述第二网络设备能够用所述中间实体的公钥解析该交互帧,并根据所述交互帧中携带的交互信息进行quic业务控制。

在一种可能的实施方式中,所述交互信息指示下行链路堵塞,所述第二网络设备根据所述交互信息将传送率下调;或所述交互信息指示上行链路堵塞,所述第二网络设备根据所述交互信息向所述第一网络设备发送窗口更新帧。根据该实施方式,当所述交互信息指示下行链路堵塞时,所述第二网络设备可以根据所述交互信息将自身的传送率下调;或当所述交互信息指示上行链路堵塞时,所述第二网络设备可以根据所述交互信息向所述第一网络设备发送窗口更新帧,指示第一网络设备将自身的传送率下调,从而实现根据交互信息进行quic业务控制。

在一种可能的实施方式中,在所述第二网络设备与所述第一网络设备之间的quic连接建立阶段,所述第二网络设备从所述中间实体接收所述中间实体的公钥。根据该实施方式,在所述第一网络设备与所述第二网络设备之间的quic连接建立阶段,所述第二网络设备就从所述中间实体接收所述中间实体的公钥,便于quic连接建立初期就能够实现第二网络设备与中间实体的通信,从而在整个quic业务过程中进行quic业务控制。

在一种可能的实施方式中,所述交互帧属于交互流,所述交互帧具有预先设定的帧类型,所述交互流具有预先设定的流标识。

在一种可能的实施方式中,所述交互帧属于交互流,所述交互帧的quic包头的前两位用于标识所述交互帧,所述交互流具有预先设定的流标识。根据该实施方式,提供了识别交互帧的一种方式,通过流标识和帧类型相结合来识别交互帧,从而获取交互帧中携带的交互信息,这种识别方式利用了现有的quic帧结构,简单快速。

在一种可能的实施方式中,所述交互帧包括帧的类型、流标识、交互信息的发端和手段、交互信息的内容。根据该实施方式,提供了交互帧的一种帧格式,一方面帧的类型、流标识可以用于第二网络设备识别交互帧,另一方面交互信息的发端和手段、交互信息的内容可以用于第二网络设备进行quic业务控制。

又一方面,本发明实施例提供了一种网络设备,该网络设备作为第一网络设备,可以实现上述第一方面方法示例中第一网络设备所执行的功能,所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个上述功能相应的模块。

在一种可能的设计中,该第一网络设备的结构中包括处理器和通信接口,该处理器被配置为支持该第一网络设备执行上述方法中相应的功能。该通信接口用于支持该第一网络设备与中间实体或其他网元之间的通信。该第一网络设备还可以包括存储器,该存储器用于与处理器耦合,其保存该第一网络设备必要的程序指令和数据。

在一种可能的设计中,所述第一网络设备包括:存储器、处理器和通信接口;所述存储器,用于存储程序指令;所述处理器,用于根据所述存储器中存储的程序指令执行以下操作:通过所述通信接口从中间实体接收所述中间实体的公钥;通过所述通信接口向所述中间实体发送用所述中间实体的公钥加密的交互帧,所述交互帧携带所述第一网络设备给所述中间实体的交互信息,所述交互信息用于指示所述中间实体根据所述交互信息进行quic业务控制,所述quic业务为所述第一网络设备与第二网络设备之间的经过所述中间实体的业务。

在一种可能的设计中,所述处理器执行所述通过所述通信接口从中间实体接收所述中间实体的公钥的操作,包括:在所述第一网络设备与所述第二网络设备之间的quic连接建立阶段,通过所述通信接口从所述中间实体接收所述中间实体的公钥。

在一种可能的设计中,所述交互帧属于交互流,所述交互帧具有预先设定的帧类型,所述交互流具有预先设定的流标识。

在一种可能的设计中,所述交互帧属于交互流,所述交互帧的quic包头的前两位用于标识所述交互帧,所述交互流具有预先设定的流标识。

在一种可能的设计中,所述交互帧包括帧的类型、流标识、交互信息的发端和手段、交互信息的内容。

在一种可能的设计中,所述处理器在执行所述通过所述通信接口向所述中间实体发送用所述中间实体的公钥加密的交互帧之后,所述处理器还用于根据所述存储器中存储的程序指令执行以下操作:通过所述通信接口从所述第二网络设备接收窗口更新帧。

又一方面,本发明实施例提供了一种中间实体,该中间实体可以实现上述第二方面方法示例中中间实体所执行的功能,所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个上述功能相应的模块。

在一种可能的设计中,该中间实体的结构中包括处理器和通信接口,该处理器被配置为支持该中间实体执行上述方法中相应的功能。该通信接口用于支持该中间实体与第一网络设备或第二网络设备或其他网元之间的通信。该中间实体还可以包括存储器,该存储器用于与处理器耦合,其保存该中间实体必要的程序指令和数据。

在一种可能的设计中,所述中间实体包括:存储器、处理器和通信接口;所述存储器,用于存储程序指令;所述处理器,用于根据所述存储器中存储的程序指令执行以下操作:通过所述通信接口向第一网络设备发送所述中间实体的公钥;通过所述通信接口从所述第一网络设备接收用所述中间实体的公钥加密的交互帧,所述交互帧携带所述第一网络设备给所述中间实体的交互信息;根据所述交互信息进行quic业务控制,所述quic业务为所述第一网络设备与第二网络设备之间的经过所述中间实体的业务。

在一种可能的设计中,所述处理器执行所述根据所述交互信息进行quic业务控制的操作,包括:根据所述交互信息对quic业务进行网络传输调整,并暂留所述交互帧;在所述中间实体需要向所述第二网络设备发送quic业务控制消息时,对所述交互帧进行修改后用所述中间实体的私钥加密,将加密后的所述交互帧通过所述通信接口发送给所述第二网络设备。

在一种可能的设计中,所述处理器执行所述通过所述通信接口向第一网络设备发送所述中间实体的公钥的操作,包括:在所述第一网络设备与所述第二网络设备之间的quic连接建立阶段,通过所述通信接口向所述第一网络设备发送所述中间实体的公钥。

在一种可能的设计中,所述处理器执行所述通过所述通信接口从所述第一网络设备接收用所述中间实体的公钥加密的交互帧,包括:通过所述通信接口从所述第一网络设备接收交互流,所述交互流具有预先设定的流标识;用所述中间实体的私钥对用所述中间实体的公钥加密的交互帧进行解析,所述交互帧属于所述交互流,所述交互帧具有预先设定的帧类型。

在一种可能的设计中,所述处理器执行所述通过所述通信接口从所述第一网络设备接收用所述中间实体的公钥加密的交互帧,包括:通过所述通信接口从所述第一网络设备接收交互流,所述交互流具有预先设定的流标识;用所述中间实体的私钥对用所述中间实体的公钥加密的交互帧进行解析,所述交互帧属于所述交互流,所述交互帧的quic包头的前两位用于标识所述交互帧。

在一种可能的设计中,所述交互帧包括帧的类型、流标识、交互信息的发端和手段、交互信息的内容。

又一方面,本发明实施例提供了一种网络设备,该网络设备作为第二网络设备,可以实现上述第三方面方法示例中第二网络设备所执行的功能,所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个上述功能相应的模块。

在一种可能的设计中,该第二网络设备的结构中包括处理器和通信接口,该处理器被配置为支持该第二网络设备执行上述方法中相应的功能。该通信接口用于支持该第二网络设备与中间实体或其他网元之间的通信。该第二网络设备还可以包括存储器,该存储器用于与处理器耦合,其保存该第二网络设备必要的程序指令和数据。

在一种可能的设计中,所述第二网络设备包括:存储器、处理器和通信接口;所述存储器,用于存储程序指令;所述处理器,用于根据所述存储器中存储的程序指令执行以下操作:通过所述通信接口从中间实体接收所述中间实体的公钥;通过所述通信接口从中间实体接收用所述中间实体的私钥加密的交互帧,所述交互帧携带所述中间实体给所述第二网络设备的交互信息;根据所述交互信息进行quic业务控制,所述quic业务为所述第二网络设备与第一网络设备之间的经过所述中间实体的业务。

在一种可能的设计中,所述处理器执行所述根据所述交互信息进行quic业务控制的操作,包括:所述交互信息指示下行链路堵塞,根据所述交互信息将传送率下调;或所述交互信息指示上行链路堵塞,根据所述交互信息通过所述通信接口向所述第一网络设备发送窗口更新帧。

在一种可能的设计中,所述处理器执行所述通过所述通信接口从中间实体接收所述中间实体的公钥的操作,包括:在所述第二网络设备与所述第一网络设备之间的quic连接建立阶段,通过所述通信接口从所述中间实体接收所述中间实体的公钥。

在一种可能的设计中,所述交互帧属于交互流,所述交互帧具有预先设定的帧类型,所述交互流具有预先设定的流标识。

在一种可能的设计中,所述交互帧属于交互流,所述交互帧的quic包头的前两位用于标识所述交互帧,所述交互流具有预先设定的流标识。

在一种可能的设计中,所述交互帧包括帧的类型、流标识、交互信息的发端和手段、交互信息的内容。

又一方面,本发明实施例提供了一种通信系统,该系统包括上述方面所述的第一网络设备、第二网络设备和中间实体。

再一方面,本发明实施例提供了一种计算机存储介质,用于储存为上述第一网络设备所用的计算机软件指令,其包含用于执行上述第一方面所设计的程序。

再一方面,本发明实施例提供了一种计算机存储介质,用于储存为上述中间实体所用的计算机软件指令,其包含用于执行上述第二方面所设计的程序。

再一方面,本发明实施例提供了一种计算机存储介质,用于储存为上述第二网络设备所用的计算机软件指令,其包含用于执行上述第三方面所设计的程序。

再一方面,本发明实施例提供了一种计算机程序产品,其包含指令,当所述程序被计算机所执行时,该指令使得计算机执行上述第一方面方法设计中第一网络设备所执行的功能。

再一方面,本发明实施例提供了一种计算机程序产品,其包含指令,当所述程序被计算机所执行时,该指令使得计算机执行上述第二方面方法设计中中间实体所执行的功能。

再一方面,本发明实施例提供了一种计算机程序产品,其包含指令,当所述程序被计算机所执行时,该指令使得计算机执行上述第三方面方法设计中第二网络设备所执行的功能。

再一方面,本发明实施例提供了一种计算机程序产品,其包含指令,当所述程序被计算机所执行时,该指令使得计算机执行上述第一方面或第一方面的任意一种可能的设计中所述的方法。

再一方面,本发明实施例提供了一种计算机程序产品,其包含指令,当所述程序被计算机所执行时,该指令使得计算机执行上述第二方面或第二方面的任意一种可能的设计中所述的方法。

再一方面,本发明实施例提供了一种计算机程序产品,其包含指令,当所述程序被计算机所执行时,该指令使得计算机执行上述第三方面或第三方面的任意一种可能的设计中所述的方法。

附图说明

图1为quic协议、http2.0协议、快速(speedy,spdy)协议的协议栈对比图;

图2为quic通用包头格式示意图;

图3为quic包头完整性保护和加密示意图;

图4为本发明实施例提供的一种quic业务控制方法所基于的应用场景示意图;

图5为本发明实施例提供的一种quic业务控制方法通信示意图;

图6为本发明实施例提供的一种帧结构示意图;

图7为本发明实施例提供的一种带有交互帧指示信息的quic通用包头格式示意图;

图8为本发明实施例提供的另一种quic业务控制方法通信示意图;

图9为本发明实施例提供的一种quic交互帧扩展协商方法通信示意图;

图10为本发明实施例提供的一种第一网络设备的结构示意图;

图11为本发明实施例提供的另一种第一网络设备的结构示意图;

图12为本发明实施例提供的一种中间实体的结构示意图;

图13为本发明实施例提供的另一种中间实体的结构示意图;

图14为本发明实施例提供的一种第二网络设备的结构示意图;

图15为本发明实施例提供的另一种第二网络设备的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述。

本发明实施例中,可以通过扩展quic协议,在quic业务中,增加特定流来用于指示应用(application,app)和网络的交互,以达到传输优化的目的。在本发明实施例中,可以采用如下的一项或多项手段相结合:新增的流用于app和网络的消息协商;新增的流用特定的帧类型和流标识(如streamid=x);新增的流通过中间实体(carrier)的公钥进行加密;app预先配置中间实体的公钥信息。

图4为本发明实施例提供的一种quic业务控制方法所基于的应用场景示意图,该应用场景中主要涉及客户端(client)401、中间实体(carrier)402和服务器(server)403,其中客户端也可称为quic客户端,如浏览器,其可以设置于网络设备上,为方便描述,将客户端所在的网络设备称为第一网络设备;中间实体为合法中间实体,如运营商设备,服务器为quic服务器端,如网站服务器,为方便描述,将作为服务器的网络设备称为第二网络设备。其中,第一网络设备和第二网络设备的业务路径经过中间实体,中间实体可以为数据转发设备,例如,基站、网关等。

图5为本发明实施例提供的一种quic业务控制方法通信示意图。该方法可以基于图4所示的应用场景。该方法包括:

步骤501,中间实体向第一网络设备发送所述中间实体的公钥。

在一个示例中,在quic连接建立阶段,所述中间实体在所述第一网络设备与所述第二网络设备协商交互帧扩展特性的消息中增加所述中间实体的公钥。

相应地,第一网络设备从中间实体接收所述中间实体的公钥。例如,在quic连接建立阶段,所述第一网络设备与所述第二网络设备协商交互帧扩展特性并获取所述中间实体的公钥。

步骤502,所述第一网络设备向所述中间实体发送用所述中间实体的公钥加密的交互帧。

所述交互帧用于携带第一网络设备给中间实体的交互信息,交互信息用于指示中间实体根据该交互信息进行quic业务控制,所述quic业务为所述第一网络设备与第二网络设备之间的经过所述中间实体的业务。

需要说明的是,虽然交互帧可以用于携带第一网络设备给中间实体的交互信息,但是第一网络设备发送的交互帧可以携带上述交互信息,也可以不携带上述交互信息。

可选地,参照图6所示的帧结构示意图,所述交互帧具有特定的帧结构,例如交互帧包括帧的类型(type)、流标识(streamid)、交互信息的发端和手段(interactionindex)、交互信息的内容(interactioncontent)。其中,帧的类型,用于标识当前帧为交互帧(interactionframe),用于中间实体识别帧的类型;流标识,其具体取值可以表示为streamid=x,x可以为目前没有被用于特殊用途的流id,如流id=5、7、9等等;交互信息的发端和手段,如服务器到网络(servertonetwork),网络到客户端(networktoclient),网络到服务器(networktoserver)等;交互信息的内容,如网络到服务器(networktoserver)时的网络状态(networkstate),交互帧发送频率(interactionframesendingfriquency);又如服务器到网络(servertonetwork)时,比特率请求(bitraterequest),应用信息(applicationinfo)等。

本发明实施例中,可以通过帧类型来标识交互帧,和/或,可以通过quic通用包头的前两位来标识交互帧。

可选地,图7为带有交互帧指示信息的quic通用包头格式示意图,其中,公共标记字段的前两位当前未使用,本发明实施例中,使用这两位来作为交互帧指示信息。

在一个示例中,所述交互帧属于交互流,所述交互帧具有特定的帧类型,所述交互流具有特定的流标识。

在另一个示例中,所述交互帧属于交互流,所述交互帧的quic通用包头的前两位用于标识所述交互帧,所述交互流具有特定的流标识。

相应地,所述中间实体接收所述第一网络设备向所述第二网络设备发送的用所述中间实体的公钥加密的交互帧。

在一个示例中,所述中间实体从所述第一网络设备接收交互流,所述交互流具有特定的流标识;所述中间实体用所述中间实体的私钥对用所述中间实体的公钥加密的交互帧进行解析,所述交互帧属于所述交互流,所述交互帧具有特定的帧类型。

在另一个示例中,所述中间实体从所述第一网络设备接收交互流,所述交互流具有特定的流标识;所述中间实体用所述中间实体的私钥对用所述中间实体的公钥加密的交互帧进行解析,所述交互帧属于所述交互流,所述交互帧的quic通用包头的前两位用于标识所述交互帧。

步骤503,中间实体根据所述交互信息进行quic业务控制。

在一个示例中,步骤503进一步包括:

步骤5031,所述中间实体根据所述交互信息对quic业务进行网络传输调整,并暂留所述交互帧;

在一个示例中,中间实体根据所述交互信息对quic业务进行网络传输调整具体包括:提升或降低此quic业务流的传输速率,例如,对发送窗口的调整和/或传送率的调整。

步骤5032,在所述中间实体需要向所述第二网络设备发送quic业务控制消息时,对所述交互帧进行修改后用所述中间实体的私钥加密,将加密后的所述交互帧发送给所述第二网络设备。

也就是说,中间实体可以将交互信息添加到步骤503暂留的交互帧中,以便实现与第二网络设备的通信。

与步骤5032相对应,可选地,该方法还包括:

步骤504,中间实体向第二网络设备发送所述中间实体的公钥。

其中,本发明实施例对于步骤504与步骤501的执行顺序不做限定,可以先执行步骤501再执行步骤504,也可以先执行步骤504再执行步骤501,还可以同时执行步骤501和步骤504。

在一个示例中,在quic连接建立阶段,所述中间实体在所述第一网络设备与所述第二网络设备协商交互帧扩展特性的消息中增加所述中间实体的公钥。

相应地,第二网络设备从中间实体接收所述中间实体的公钥。例如,在quic连接建立阶段,所述第二网络设备与所述第一网络设备协商交互帧扩展特性并获取所述中间实体的公钥。

步骤505,所述第二网络设备从中间实体接收用所述中间实体的私钥加密的交互帧,所述交互帧携带所述中间实体给所述第二网络设备的交互信息。

步骤506,第二网络设备根据所述交互信息进行quic业务控制,所述quic业务为所述第二网络设备与第一网络设备之间的经过所述中间实体的业务。

在一个示例中,步骤506进一步包括:

步骤5061,所述交互信息指示下行链路堵塞,所述第二网络设备根据所述交互信息将传送率下调;或

步骤5062,所述交互信息指示上行链路堵塞,所述第二网络设备根据所述交互信息向所述第一网络设备发送窗口更新帧。

相应地,所述第一网络设备从所述第二网络设备接收窗口更新帧,根据窗口更新帧调整上行链路的发送窗口的数值,从而缓解上行链路堵塞的问题。

本发明实施例中,由于第一网络设备能够获得中间实体的公钥,并且所述第一网络设备向所述第二网络设备发送用所述中间实体的公钥加密的交互帧,从而使得中间实体可以利用中间实体的私钥对交互帧进行解析,从而获取交互帧中的交互信息,相应地,中间实体可以根据所述交互帧中的交互信息进行quic业务控制。可选地,第二网络设备也能够获得中间实体的公钥,所述第二网络设备从中间实体接收用所述中间实体的私钥加密的交互帧;第二网络设备用中间实体的公钥对交互帧进行解析,从而获得交互帧中的交互信息,相应地,所述第二网络设备根据所述交互信息进行quic业务控制。

图8为本发明实施例提供的另一种quic业务控制方法通信示意图。该方法可以基于图4所示的应用场景,本实施例中,第一阶段客户端为app发端,第二阶段服务器为app发端。该方法包括:

步骤801,在quic连接创建阶段,客户端与中间实体和服务器进行交互帧扩展协商,中间实体在协商消息中插入中间实体的公钥信息。

步骤802,客户端按照设定策略(如定时器(timer)1)向服务器发送用中间实体的公钥加密的交互帧1。

例如,交互帧1包括交互帧指示信息、连接id和流id。

步骤803,中间实体终止交互帧1的传输,直到中间实体需要发送交互内容给服务器。

在一个示例中,中间实体截获交互帧1后用私钥进行解析,如果交互帧1中携带app给网络的信息,中间实体根据交互帧1包括的信息进行网络传输调整。之后中间实体暂留交互帧1,在中间实体需要向app对端发送网络消息时,对交互帧1进行修改后用中间实体的私钥加密后发送。

步骤804,中间实体将用中间实体的私钥加密后的更新后的交互帧发送给服务器。

步骤805,服务器进行quic流控。

例如,如果交互内容指示下行链路堵塞,则减慢传送率。该步骤805为可选步骤。

步骤806,服务器向客户端发送窗口更新帧。

例如,如果交互内容指示上行链路堵塞,则发送窗口更新帧。该步骤806为可选步骤。

步骤807,服务器按照设定策略(如定时器(timer)2)向客户端发送用中间实体的公钥加密的交互帧2。

例如,交互帧2包括交互帧指示信息、连接id和流id。

步骤808,中间实体终止交互帧2的传输,直到中间实体需要发送交互内容给客户端。

在一个示例中,中间实体截获交互帧2后用私钥进行解析,如果交互帧2中携带app给网络的信息,中间实体根据交互帧2包括的信息进行网络传输调整。之后中间实体暂留交互帧2,在中间实体需要向app对端发送网络消息时,对交互帧2进行修改后用中间实体的私钥加密后发送。

步骤809,中间实体将用中间实体的私钥加密后的更新后的交互帧发送给客户端。

步骤810,客户端进行quic流控。

例如,如果交互内容指示上行链路堵塞,则减慢传送率。该步骤810为可选步骤。

步骤811,客户端向服务器发送窗口更新帧。

例如,如果交互内容指示下行链路堵塞,则发送窗口更新帧。该步骤811为可选步骤。

本发明实施例中,在完成交互帧扩展协商之后,app发端(客户端或服务器)按照设定策略(如定时器)向服务器发送用中间实体的公钥加密的交互帧。中间实体截获信息后用私钥进行解析,如果消息中携带app给网络的信息,中间实体根据交互帧的交互信息进行网络传输调整。之后中间实体暂留交互帧,在中间实体需要向app对端发送网络消息时,对交互帧进行修改后用中间实体的私钥加密后发送。app对端对于交互帧用中间实体的公钥解密。前后交互帧保持序列号不变。该实施方式能够实现quic业务的传输优化。

图9为本发明实施例提供的一种quic交互帧扩展协商方法通信示意图,该方法包括:

步骤901,客户端在客户端打招呼(clienthello)消息中增加交互帧扩展指示信息。

步骤902,中间实体截获clienthello消息后,在其中增加中间实体自己的信息,如数字证书信息,数字证书中有中间实体的公钥,再发送给服务器。

步骤903,服务器收到clienthello消息后,验证中间实体的合法性以及服务权限,如验证通过,则在服务器打招呼(serverhello)消息中携带增加扩展帧协商确认信息。此消息可以携带中间实体的数字证书信息。

步骤904,中间实体截获serverhello消息后,如果serverhello消息没有携带中间实体的数字证书信息,则在其中增加中间实体的数字证书信息,数字证书中有中间实体的公钥。

步骤905,客户端向服务器返回协商成功确认信息。

本发明实施例中,在quic连接创建阶段,客户端和服务器可以获得中间实体的公钥,从而后续客户端和服务器均可与中间实体进行通信,便于中间实体进行quic业务控制,进行传输优化。

上述主要从各个网元之间交互的角度对本发明实施例的方案进行了介绍。可以理解的是,各个网元,例如第一网络设备,中间实体,第二网络设备等为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本发明能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

本发明实施例可以根据上述方法示例对第一网络设备、中间实体和第二网络设备等进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本发明实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。

在采用集成的模块的情况下,图10示出了上述实施例中所涉及的第一网络设备的一种可能的结构示意图。第一网络设备1000包括:处理模块1002和通信模块1003。处理模块1002用于对第一网络设备的动作进行控制管理,例如,处理模块1002用于支持第一网络设备执行图5中的过程502,图8中的过程801、802、810和811,图9中的过程901和905,和/或用于本文所描述的技术的其它过程。通信模块1003用于支持第一网络设备与其他网络实体的通信,例如与中间实体之间的通信。第一网络设备还可以包括存储模块1001,用于存储第一网络设备的程序代码和数据。

其中,处理模块1002可以是处理器或控制器,例如可以是中央处理器(centralprocessingunit,cpu),通用处理器,数字信号处理器(digitalsignalprocessor,dsp),专用集成电路(application-specificintegratedcircuit,asic),现场可编程门阵列(fieldprogrammablegatearray,fpga)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本发明公开内容所描述的各种示例性的逻辑方框,模块和电路。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,dsp和微处理器的组合等等。通信模块1003可以是通信接口、收发器、收发电路等,其中,通信接口是统称,可以包括一个或多个接口。存储模块1001可以是存储器。

当处理模块1002为处理器,通信模块1003为通信接口,存储模块1001为存储器时,本发明实施例所涉及的第一网络设备可以为图11所示的第一网络设备。

参阅图11所示,该第一网络设备1100包括:处理器1102、通信接口1103、存储器1101。其中,通信接口1103、处理器1102以及存储器1101可以通过通信连接相互连接。

在采用集成的模块的情况下,图12示出了上述实施例中所涉及的中间实体的一种可能的结构示意图。中间实体1200包括:处理模块1202和通信模块1203。处理模块1202用于对中间实体的动作进行控制管理,例如,处理模块1202用于支持中间实体执行图5中的过程501、503和504,图8中的过程801、803、804、808和809,图9中的过程902和904,和/或用于本文所描述的技术的其它过程。通信模块1203用于支持中间实体与其他网络实体的通信,例如与第一网络设备或第二网络设备之间的通信。中间实体还可以包括存储模块1201,用于存储中间实体的程序代码和数据。

其中,处理模块1202可以是处理器或控制器,例如可以是中央处理器(centralprocessingunit,cpu),通用处理器,数字信号处理器(digitalsignalprocessor,dsp),专用集成电路(application-specificintegratedcircuit,asic),现场可编程门阵列(fieldprogrammablegatearray,fpga)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本发明公开内容所描述的各种示例性的逻辑方框,模块和电路。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,dsp和微处理器的组合等等。通信模块1203可以是通信接口、收发器、收发电路等,其中,通信接口是统称,可以包括一个或多个接口。存储模块1201可以是存储器。

当处理模块1202为处理器,通信模块1203为通信接口,存储模块1201为存储器时,本发明实施例所涉及的中间实体可以为图13所示的中间实体。

参阅图13所示,该中间实体1300包括:处理器1302、通信接口1303、存储器1301。其中,通信接口1303、处理器1302以及存储器1301可以通过通信连接相互连接。

在采用集成的模块的情况下,图14示出了上述实施例中所涉及的第二网络设备的一种可能的结构示意图。第二网络设备1400包括:处理模块1402和通信模块1403。处理模块1402用于对第二网络设备的动作进行控制管理,例如,处理模块1402用于支持第二网络设备执行图5中的过程505和506,图8中的过程801、805至807,图9中的过程903,和/或用于本文所描述的技术的其它过程。通信模块1403用于支持第二网络设备与其他网络实体的通信,例如与中间实体之间的通信。第二网络设备还可以包括存储模块1401,用于存储第二网络设备的程序代码和数据。

其中,处理模块1402可以是处理器或控制器,例如可以是中央处理器(centralprocessingunit,cpu),通用处理器,数字信号处理器(digitalsignalprocessor,dsp),专用集成电路(application-specificintegratedcircuit,asic),现场可编程门阵列(fieldprogrammablegatearray,fpga)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本发明公开内容所描述的各种示例性的逻辑方框,模块和电路。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,dsp和微处理器的组合等等。通信模块1403可以是通信接口、收发器、收发电路等,其中,通信接口是统称,可以包括一个或多个接口。存储模块1401可以是存储器。

当处理模块1402为处理器,通信模块1403为通信接口,存储模块1401为存储器时,本发明实施例所涉及的第二网络设备可以为图15所示的第二网络设备。

参阅图15所示,该第二网络设备1500包括:处理器1502、通信接口1503、存储器1501。其中,通信接口1503、处理器1502以及存储器1501可以通过通信连接相互连接。

结合本发明公开内容所描述的方法或者算法的步骤可以硬件的方式来实现,也可以是由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于随机存取存储器(randomaccessmemory,ram)、闪存、只读存储器(readonlymemory,rom)、可擦除可编程只读存储器(erasableprogrammablerom,eprom)、电可擦可编程只读存储器(electricallyeprom,eeprom)、寄存器、硬盘、移动硬盘、只读光盘(cd-rom)或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于asic中。另外,该asic可以位于核心网接口设备中。当然,处理器和存储介质也可以作为分立组件存在于核心网接口设备中。

本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。

以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1