掌桥专利:专业的专利平台
掌桥专利
首页

基于QUIC协议的云端访问边缘服务的方法和系统

文献发布时间:2023-06-19 11:11:32


基于QUIC协议的云端访问边缘服务的方法和系统

技术领域

本发明属于云计算和边缘计算领域,具体涉及一种基于QUIC协议的云端访问边缘服务的方法和系统。

背景技术

随着容器、kubernetes、物联网等技术发展,网络边缘产生的数据在快速增长,但是将海量的数据传输到云中心,对于网络的带宽和时延都是考验,而且会无法保证用户数据的私密性,为了解决这些问题发展出边缘计算。边缘计算多数部署和应用场景需要边缘侧与中心云的协同,云边协同,包括资源协同,应用协同,数据协同,智能协同等多种协同。

随着云计算和微服务的发展,微服务的可扩展性,可升级性,易维护性等给开发和测试,运行带来了显而易见的好处。而云边端的服务必定存在下沉在边缘侧的情况,由于云原生里的CNI插件无法(很难)在边缘侧运行,因此Kubernetes解决服务发现的方案并不能迁移到云边端协同的边缘侧中使用,从而使得通过云端访问边缘的服务成为云边端协同中十分重要的研究课题,对于如何打通云端向边缘的服务访问的通道具有重要的现实意义。当前,kubeedge,OpenYurt等目前的云边协同架构中的边缘侧网络方案中,只实现了边与边的数据流通信和云端和边缘的控制流通信。目前的云边端一体化平台因为由于云与边缘不是在同一个网络平面上,所以用户在云端发起服务访问的请求会失败。并且,目前云边端一体化云与端的通信仅仅通过websocket协议实现了控制流的部分。

目前云边端系统内,边缘网关若处于内网环境且只能单向访问公网,这种场景下,用户无法在云端访问部署在边缘侧的服务,本发明目的是解决云边端系统内,云端向边缘用户服务访问的通信问题,通过在云端设置EdgeGateway,支持用户自定义Loadbalance策略,基于QUIC协议通信提高云与端通信的速度以及在弱网环境下的表现。

发明内容

技术目的:针对上述不足,本发明公开了一种基于QUIC协议的云端访问边缘服务的方法和系统,其基于QUIC协议实现云端访问边缘服务的功能,由于边缘节点的网络环境往往不是很稳定,QUIC协议在弱网环境有相比websocket更好的表现,避免队头阻塞的多路复用方法有比websocket更高的速度。

技术方案:为实现上述技术目的,本发明采用了如下技术方案:

一种基于QUIC协议的云端访问边缘服务的方法,用于系统通信,所述系统包括云端、边缘侧和一个以上的用户端,边缘侧包括一个以上的边缘节点,各个边缘节点以kubernetes集群的形式管理多个pod,其特征在于:各边缘节点设有服务流组件servicestream,在云端设置边缘网关EdgeGateway和隧道服务器tunnel server;

在云端和各边缘节点之间建立QUIC连接,步骤如下:

云端启动EdgeGateway和tunnel server,监听来自边缘节点和用户端的请求;

每个边缘节点启动时,启动对应的service stream,创建一个QUIC连接,QUIC连接用于在云端和边缘节点之间建立数据传输通道;

云端的tunnel server监听到所述QUIC连接,使用所述边缘节点的主机IP 和主机名hostname作为key保存所述QUIC连接。

优选地,云端访问边缘服务的步骤包括:

S1、在云端和边缘侧的各边缘节点之间建立QUIC连接;

S2、EdgeGateway 接收用户端发起的连接请求,连接请求中包含所述用户端要访问的服务信息;

S3、EdgeGateway执行反向代理过程,为当前连接请求生成一个会话Id;执行负载均衡策略,得到连接请求对应的边缘节点的真实的主机IP和pod对应的端口;

S4、EdgeGateway根据主机IP,在tunnel server处查询到对应的QUIC连接,并把用户端发起的连接请求连接写入到QUIC连接中;

S5、边缘侧的service stream持续监听所述QUIC连接;service stream通过QUIC连接收到用户端发起的连接请求后,转发到此请求对应的pod上;

S6、边缘侧的service stream把访问pod请求结果写回到对应的QUIC连接中,发送给云端;

S7、云端的tunnel server向EdgeGateway发送响应消息,响应消息包含对步骤S3中连接请求响应的结果。

优选地,所述service stream,用于在边缘节点启动时,创建一个QUIC连接,所述QUIC连接作为云端访问所述边缘节点的边缘服务的数据通道;service stream通过QUIC连接接收云端转发的用户端发起的连接请求并转发到连接请求对应的pod上、接受pod的响应消息并通过QUIC连接返回给云端的tunnel server;

tunnel server,用于储存边缘节点建立的QUIC连接、将边缘节点返回的pod的响应消息发送给EdgeGateway;

EdgeGateway,支持用户自定义负载均衡策略以及QUIC协议,接收和解析用户端发送的连接请求,根据解析出的信息在tunnel server处查询到对应的QUIC连接,并将用户端发送的连接请求写入QUIC连接中后发送给对应的边缘节点。

优选地,所述QUIC连接中带有一个数据头header,header中携带对应的边缘节点的主机名hostname和主机IP, tunnel server中使用边缘节点的主机IP 和hostname作为key保存对应的QUIC连接。

优选地,步骤S3中,用户端发起的连接请求为http请求。

优选地,步骤S4中,EdgeGateway通过解析http连接请求对应的统一资源定位符url,查询kubernetes,解析出具体的主机IP。

优选地,同一个边缘节点和云端之间仅建立一个QUIC连接,所述QUIC连接作为云端访问所述边缘节点的边缘服务的可复用数据通道。

一种系统,包括云端、边缘侧和一个以上的用户端,其特征在于:云端设置边缘网关EdgeGateway和隧道服务器tunnel server,边缘侧包括一个以上的边缘节点,各边缘节点设有服务流组件service stream,各个边缘节点以kubernetes集群的形式管理多个pod;其中,

service stream,用于在边缘节点启动时,创建一个QUIC连接,所述QUIC连接作为云端访问所述边缘节点的边缘服务的数据通道;service stream通过QUIC连接接收云端转发的用户端发起的连接请求并转发到连接请求对应的pod上、接受pod的响应消息并通过QUIC连接返回给云端的tunnel server;

tunnel server,用于储存边缘节点建立的QUIC连接、将边缘节点返回的pod的响应消息发送给EdgeGateway;

EdgeGateway,支持用户自定义负载均衡策略以及QUIC协议,接收和解析用户端发送的连接请求,根据解析出的信息在tunnel server处查询到对应的QUIC连接,并将用户端发送的连接请求写入QUIC连接中后发送给对应的边缘节点。

优选地,所述QUIC连接中带有一个数据头header,header中携带对应的边缘节点的主机名称hostname和主机IP;

所述EdgeGateway对接收到的用户端发送的连接请求,执行反向代理和负载均衡,解析出具体主机IP,根据主机IP在tunnel server处查询对应的QUIC连接。

一种云服务中心,用于通信连接系统中的边缘节点,其特征在于:包括边缘网关EdgeGateway和隧道服务器tunnel server,所述tunnel server中储存所有由边缘节点建立的QUIC连接,并将边缘节点返回的响应消息发送给EdgeGateway;

EdgeGateway支持用户自定义负载均衡策略以及QUIC协议,监听来自边缘节点和用户端的连接请求,且EdgeGateway能够根据解析出的用户端的请求信息从tunnel server中查找对应的QUIC连接并将用户端发送的连接请求写入QUIC连接中。

有益效果:由于采用了上述技术方案,本发明具有如下技术效果:

本发明实现了云边端环境下,处于公网下的用户可以通过云端访问内网里的边缘服务,补齐了云边端的功能缺陷,提升了云边端一体化系统用户体验;服务基于QUIC协议设计,在边缘侧弱网环境中依然有良好表现,能有效提高加载服务性能,提高稳定性。

附图说明

图1为本发明的基于QUIC协议的云端访问边缘服务的系统中各组件的部署拓扑示意图;

图2为本发明的基于QUIC协议的云端访问边缘服务的方法流程图;

图3为本发明的基于QUIC协议的云端访问边缘服务的系统在当前互联网环境下的位置示意图。

具体实施方式

下面结合附图对本发明的实施例作更进一步的说明。

本发明是一种基于QUIC协议实现云端访问边缘服务的设计,由于边缘节点的网络环境往往不是很稳定,QUIC协议在弱网环境有相比websocket更好的表现以及避免队头阻塞的多路复用有比websocket更高的速度。本发明设计中的结构组成包括:

tunnel server:保存着与边缘节点的IP和hostname以及与IP和hostname相对应的边缘节点通信的QUIC连接实体。

EdgeGateway: 接收用户发送的数据请求,并生成SessionID,负责执行反向代理,做负载均衡,从Ready 状态的Endpoits中解析出具体的主机IP(内网IP),将请求转发给与相应node的QUIC连接中。

service stream:负责Forward云端tunnel server发送的请求以及转发请求到端侧的特定pod内,并把pod返回的结果发送回云端tunnel server,tunnel server会根据消息体中的SessionID找到原始请求的返回体。

如图1所示,本发明中,云端即云节点需要使用kubernetes 管理,具备Kubernetes的服务发现能力,边缘节点需要借助边缘计算框架(kubeedge)纳管起来。系统组件在实际部署时,分成两部分,第一个组件包含了Edgegateway 和TunnelServer,一主多活的方式部署在云端,增加了公网暴露的接口。第二个组件包含了ServiceStream,部署在每一个边缘节点上。两个组件的启动顺序也有要求,云端的组件应先于边缘节点的组件启动。

如图2所示,本发明的基于QUIC协议的云端访问边缘服务的具体流程如下:

1. 云端启动EdgeGateway 和 tunnel server,监听请求,包括边缘侧的节点注册QUIC客户端请求,和来自云端的用户请求。

2. 每个边缘节点启动时,会启动一个service stream组件,创建一个QUIC连接,云端的tunnel server监听到此QUIC连接,会把hostIP和hostname为key保存这个连接。service stream会持续监听该连接,并根据接收到的message,转发该连接。

3. EdgeGateway 接收用户发起的http请求。

4. EdgeGateway 执行反向代理过程,为当前请求生成一个id,解析url,查询kubernetes,执行负载均衡策略,拿到真实的hostIP和端口。

5. EdgeGateway根据hostIP,在tunnel server处查询到QUIC连接,并把这个消息连接写入到QUIC连接中。即将http连接请求做转换和提取等处理,转换成一个可以序列化的“message”对象,写入到QUIC连接中。

6. edge侧的service stream收到这个请求后,转发到此请求对应的pod上。

7. 把访问pod请求结果写回到对应的QUIC连接中,发送给云端。

8. tunnel server把请求的结果写回到http连接的响应。QUIC 连接,是一个隧道,一个边缘节点和云端之间只有一个。QUIC连接建立以后,所有的用户http 连接请求,都会复用这个通道。

本发明QUIC的建立连接的请求中,带有一个header,header中需要携带边缘节点的主机名和主机IP,用来唯一的标示这个边缘节点,以与其他边缘节点相区分。

本发明的服务基于QUIC协议设计, QUIC协议基于UDP协议,不需要稳定的TCP连接和多次握手,能够在边缘侧弱网环境中依然有良好表现。

图3为本发明的基于QUIC协议的云端访问边缘服务的系统在当前互联网环境下的应用的示意图,在核心云和汽车数据传输设备之间建立了QUIC连接,即提供了一条云端向边缘服务访问的QUIC隧道,解决了云端向边缘服务访问的数据流通信问题,并通过QUIC协议提升了数据访问性能。

本发明中部分涉及到的字符表示的含义如下:

QUIC:Quick UDP Internet Connection,基于UDP的低时延的互联网传输层协议。

EdgeGateway:边缘网关。tunnel server:隧道服务器。service stream:服务流组件。

http:Hyper Text Transfer Protocol 超文件传输协定。header:数据头。Key:关键词。

SessionID:会话ID。url:统一资源定位符。

CNI:Container Network Interface,容器网络接口。

kubernetes:简写为K8s,是Google开源的容器集群管理系统。

Pod :是 kubernetes 系统的基础单元,是 kubernetes 系统上运行容器化应用的资源对象。

LB策略:Loadbalance策略,即负载均衡策略。

以上所述仅是本发明的优选实施方式,应当指出:对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

相关技术
  • 基于QUIC协议的云端访问边缘服务的方法和系统
  • 基于QUIC协议的云端访问边缘服务的方法和系统
技术分类

06120112832810