基于QUIC协议的汽车软件在线升级系统及方法与流程

文档序号:29249359发布日期:2022-03-16 00:24阅读:122来源:国知局
基于QUIC协议的汽车软件在线升级系统及方法与流程
基于quic协议的汽车软件在线升级系统及方法
技术领域
1.本发明涉及车联网技术领域,尤其涉及一种基于quic协议的汽车软件在线升级系统及方法。


背景技术:

2.目前,汽车大多通过ota(overtheairtechnology,空中下载技术)在线升级方式实现汽车控制系统软件的更新升级,在任何一个有网络的地方就可以实现汽车控制系统软件的更新升级,而不再需要用户将汽车开到4s店进行升级。
3.ota在线升级通常会将ota云端的升级差分包存放到cdn(content deliverynetwork,内容分发网络)服务器上进行加速。cdn是构建在网络之上的内容分发网络,依靠部署在各地的服务器并通过中心平台的负载均衡、内容分发调度等使用户就近获取所需内容,可以降低网络拥塞,提高用户访问响应速度和命中率等。由于传统cdn服务器是将tcp协议作为传输协议,在弱网环境下,tcp协议存在传输效率低、建链延迟性大、抗弱网性差、重传慢等缺点,导致ota在线升级的效率低。


技术实现要素:

4.本发明通过提供一种基于quic协议的汽车软件在线升级系统及方法,解决了传统汽车软件在线升级系统在弱网环境下ota在线升级效率低的技术问题。
5.一方面,本发明提供如下技术方案:
6.一种基于quic协议的汽车软件在线升级系统,包括ota云端、cdn服务器、quic代理服务器及客户端;
7.所述ota云端,用于在检测到汽车软件需要更新后,通过差分技术在云端制作相应的差分包,并将所述差分包推送给所述cdn服务器;
8.所述cdn服务器,用于接收到所述差分包后,将所述差分包同步推送给订阅所述cdn服务器的所述quic代理服务器;
9.所述quic代理服务器,用于订阅所述cdn服务器,同步所述cdn服务器推送的所述差分包;接收所述客户端发送的quic连接请求,与所述客户端建立quic连接,通过quic协议将所述差分包发送给所述客户端;
10.所述客户端,用于在当前网络环境为弱网的条件下,若接收到软件更新通知则向所述quic代理服务器发送所述quic连接请求,与所述quic代理服务器建立所述quic连接,接收所述quic代理服务器发送的所述差分包,根据所述差分包对需要更新的汽车软件进行升级。
11.优选的,所述quic代理服务器,包括:
12.中心调度模块,用于所述quic代理服务器的任务统一调度以及事件的监控;
13.数据同步模块,用于订阅所述cdn服务器,同步所述cdn服务器推送的所述差分包;
14.数据缓存模块,用于存储所述差分包并同步至mysql数据库;
15.quic协议栈模块,用于通过以udp协议为底层传输协议的quic协议栈降低网络延迟;
16.网络处理模块,用于与所述cdn服务器建立网络连接,与所述客户端建立所述quic连接,通过quic协议将所述差分包发送给所述客户端。
17.另一方面,本发明还提供如下技术方案:
18.一种基于quic协议的汽车软件在线升级方法,包括:
19.订阅cdn服务器;
20.接收并同步所述cdn服务器推送的差分包;
21.接收到客户端发送的quic连接请求后,与所述客户端建立quic连接;
22.通过quic协议将所述差分包发送给所述客户端。
23.优选的,所述接收客户端发送的quic连接请求后,与所述客户端建立quic连接,包括:
24.接收到所述客户端发送的所述quic连接请求后,生成质数组、所述质数组的原根及第一随机数,根据所述质数组、所述原根及所述第一随机数生成目标数,将所述目标数、所述质数组及所述原根置于serverconfig内,发送rejection消息至所述客户端,所述rejection消息包括serverconfig;
25.接收所述客户端发送的full client hello消息,根据serverconfig及full client hello消息中的客户端公开数生成第二初始秘钥,通过所述第二初始秘钥解密full client hello消息中的数据,所述第二初始秘钥与所述客户端生成的第一初始秘钥相同。
26.优选的,所述接收所述客户端发送的full client hello消息,根据serverconfig及full client hello消息中的客户端公开数生成第二初始秘钥,通过所述第二初始秘钥解密full client hello消息中的数据,所述第二初始秘钥与所述客户端生成的第一初始秘钥相同,之后还包括:
27.生成服务器公开数,将附带所述服务器公开数的server hello消息发送给所述客户端。
28.另一方面,本发明还提供如下技术方案:
29.一种基于quic协议的汽车软件在线升级方法,包括:
30.接收到软件更新通知后,判断当前网络环境是否为弱网;
31.若所述当前网络环境为弱网,则向quic代理服务器发送quic连接请求,与所述quic代理服务器建立quic连接;
32.接收所述quic代理服务器发送的差分包,根据所述差分包对需要更新的汽车软件进行升级。
33.优选的,所述接收到软件更新通知后,判断当前网络环境是否为弱网,包括:
34.接收到所述软件更新通知后,获取预设历史时长内网络请求的平均响应速度;
35.若所述平均响应速度低于预设速度阈值,则判断所述当前网络环境为弱网。
36.优选的,所述若所述当前网络环境为弱网,则向quic代理服务器发送quic连接请求,与所述quic代理服务器建立quic连接,包括:
37.若所述当前网络环境为弱网,则向所述quic代理服务器发送inchoate client hello消息;
38.接收到所述quic代理服务器发送的rejection消息后,生成第二随机数,根据rejection消息中的质数组、目标数及所述第二随机数计算出第一初始秘钥,向所述quic代理服务器发送full client hello消息,所述full client hello消息包括客户端公开数和经所述第一初始秘钥加密的数据;所述第一初始秘钥与所述quic代理服务器生成的第二初始秘钥相同;
39.接收到所述quic代理服务器发送的serverhello消息后,通过算法推导出与所述quic代理服务器之间的会话密钥,serverhello消息包括服务器公开数。
40.另一方面,本发明还提供如下技术方案:
41.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述任一基于quic协议的汽车软件在线升级方法。
42.另一方面,本发明还提供如下技术方案:
43.一种计算机可读存储介质,所述计算机可读存储介质被执行时实现上述任一基于quic协议的汽车软件在线升级方法。
44.本发明提供的一个或多个技术方案,至少具有如下技术效果或优点:
45.ota云端在检测到汽车软件需要更新后,会通过差分技术在云端制作相应的差分包,并将差分包推送给cdn服务器;quic代理服务器订阅了cdn服务器,cdn服务器在接收到差分包后,会将差分包同步推送给订阅了cdn服务器的quic代理服务器,quic代理服务器同步cdn服务器推送的差分包;客户端接收到软件更新通知后,判断当前网络环境是否为弱网,若当前网络环境为弱网,客户端会与quic代理服务器建立quic连接,quic代理服务器会通过quic协议将差分包发送给客户端进行软件升级,这样可在弱网环境下提高ota在线升级效率。
附图说明
46.为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
47.图1为本发明实施例中基于quic协议的汽车软件在线升级系统的结构示意图;
48.图2为本发明实施例中quic代理服务器的结构示意图;
49.图3为本发明实施例中基于quic协议的汽车软件在线升级方法的流程图;
50.图4为本发明实施例中基于quic协议的汽车软件在线升级方法的另一流程图;
51.图5为本发明实施例中quic协议的握手流程示意图。
具体实施方式
52.本发明实施例通过提供一种基于quic协议的汽车软件在线升级系统及方法,解决了传统汽车软件在线升级系统在弱网环境下ota在线升级效率低的技术问题。
53.为了更好的理解本发明的技术方案,下面将结合说明书附图以及具体的实施方式对本发明的技术方案进行详细的说明。
54.首先说明,本文中出现的术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
55.如图1所示,本实施例的基于quic协议的汽车软件在线升级系统包括ota云端、cdn服务器、quic代理服务器及客户端;
56.ota云端,用于在检测到汽车软件需要更新后,通过差分技术在云端制作相应的差分包,并将差分包推送给cdn服务器;
57.cdn服务器,用于接收到差分包后,将差分包同步推送给订阅cdn服务器的quic代理服务器;
58.quic代理服务器,用于订阅cdn服务器,同步cdn服务器推送的差分包;接收客户端发送的quic连接请求,与客户端建立quic连接,通过quic协议将差分包发送给客户端;
59.客户端,用于在当前网络环境为弱网的条件下,若接收到软件更新通知则向quic代理服务器发送quic连接请求,与quic代理服务器建立quic连接,接收quic代理服务器发送的差分包,根据差分包对需要更新的汽车软件进行升级。
60.其中,客户端为车载tbox,quic代理服务器和cdn服务器均可部署在云端,quic代理服务器和cdn服务器之间基于tcp协议进行交互,quic代理服务器和客户端之间基于udp协议进行交互。
61.具体的,如图2所示,本实施例的quic代理服务器包括:
62.中心调度模块,用于quic代理服务器的任务统一调度以及事件的监控;
63.数据同步模块,用于订阅cdn服务器,同步cdn服务器推送的差分包;
64.数据缓存模块,用于存储差分包并同步至mysql数据库;
65.quic协议栈模块,用于通过以udp协议为底层传输协议的quic协议栈降低网络延迟;
66.网络处理模块,用于与cdn服务器建立网络连接,与客户端建立quic连接,通过quic协议将差分包发送给客户端。
67.当quic代理服务器与客户端建立quic连接后,中心调度模块会检查数据缓存模块中是否有对应的差分包,校验以后通过quic协议将差分包发送给客户端。中心调度模块主要是监控网络处理模块,当有连接建立、断开或者数据的传输时执行相应的处理逻辑。中心调度模块包括reactor单元和管理调度单元。reactor单元用于事件驱动,有一个或多个并发输入源,有一个service handler和多个request handlers,service handler会对输入的事件进行多路复用,并同步地将它们分发给相应的request handler。reactor单元使用reactor模式,要求i/o处理单元负责监听建立的连接对应的套接字是否有事件发送,如果有则将响应的事件通知到对应的工作线程进行处理。管理调度单元用于协调其它各个模块之间的协调调用以及数据交互处理,通过调用网络处理模块执行网络连接的建立,当差分包从cdn服务器推送过来时调用数据同步模块进行数据的同步,同时调用数据缓存模块执行数据的存储。
68.数据同步模块在同步cdn服务器推送的差分包时还会将差分包转发给中心调度模块。数据同步模块用于订阅cdn服务器的数据以保证quic代理服务器与cdn服务器数据同步。
69.数据缓存模块主要由数据库redis以及mysql组成,redis作为消息队列使用,当有大量数据同步时,通过消息队列实现异步存储,避免对磁盘直接进行i/o读写,提高了数据的处理效率。redis支持pub/sub(发布/订阅),在消息a入消息队列的同时发布消息b到频道,此时已经订阅频道的worker就接收到了消息b,知道了消息队列中有消息a进入,即可循环lpop或rpop来消费消息队列中的消息。数据缓存模块通过mysql订阅到redis,这样worker充当了consumer和业务处理者角色。数据缓存模块工作时会创建pending队列和doing表,由pending队列出队后,workers分配一个线程(单个worker)去处理消息,给消息追加一个当前时间戳和当前线程名称,将其写入doing表,然后该worker去消费消息,完成后自行在doing表擦除信息。启用一个定时任务,每隔一段时间去扫描doing表,检查每个元素的时间戳,如果超时则由worker去检查线程是否存在,如果存在则取消当前任务执行,并把事务回滚;最后把该任务从doing队列中pop出,再重新push进pending队列。在worker的某线程中,如果处理业务失败,则主动回滚,并把任务从doing表中移除,重新push进pending队列。
70.quic协议栈模块整合了tcp协议的可靠性和udp协议的速度和效率,具有连接建立延时低、改进的拥塞控制、fec前向纠正拥塞控制、更安全的传输协议、改进的多路复用等优点。quic是quickudp internet connection的缩写,即快速用户数据报协议互联网连接,是谷歌制定的一种基于用户数据报协议(udp,user datagram protocol)的低时延的互联网传输层协议。其中传输层协议包括tcp和udp,与tcp相比,udp更为轻量,错误校验也要少得多,这意味着udp往往效率更高。quic融合了包括tcp、传输层安全性(tls,transport layer security)、超文本传输协议(http,hypertexttransferprotocol)/2等协议的特性,但基于udp传输。
71.网络处理模块通过quic协议实现quic代理服务器与客户端之间的网络监听、连接管理以及一系列数据传输,通过tcp协议实现quic代理服务器与cdn服务器之间的网络监听、连接管理以及一系列数据传输。网络处理块包括客户端处理单元和服务器端处理单元,客户端处理单元用于建立与cdn服务器之间的tcp连接处理逻辑,以及数据在网络中的传输;服务器端处理单元用于监听客户端发起的连接处理逻辑,以及通过quic协议栈发送差分包到客户端。
72.本实施例中,ota云端在检测到汽车软件需要更新后,会通过差分技术在云端制作相应的差分包,并将差分包推送给cdn服务器。quic代理服务器订阅了cdn服务器,cdn服务器在接收到差分包后,会将差分包同步推送给订阅了cdn服务器的quic代理服务器,quic代理服务器同步cdn服务器推送的差分包。客户端接收到软件更新通知后,判断当前网络环境是否为弱网,若当前网络环境非弱网,则客户端会与cdn服务器建立网络连接,cdn服务器通过tcp协议将差分包发送给客户端进行软件升级;若当前网络环境为弱网,客户端会与quic代理服务器建立quic连接,quic代理服务器会通过quic协议将差分包发送给客户端进行软件升级,这样可在弱网环境下提高ota在线升级效率。
73.另外,本实施例的quic代理服务器采用多流策略,某个流的队头阻塞不会引起另外一个流的数据阻塞,主要体现为:应用层的协议数据通过流交换信息,每个流内是有序序列的字节,而流之间没有顺序关系,流与流之间是相互隔离,相互独立的,如果某个流出现丢包或者传输不可达,不会影响连接中其他流的数据,这样可以避免tcp协议中的队头阻
塞。quic代理服务器会对一些优先级较高的包进行冗余发送,丢失的数据包可以通过冗余包计算,减少重传次数以提高传输效率。
74.如图3所示,本实施例还提供一种基于quic协议的汽车软件在线升级方法,包括:
75.步骤s10,订阅cdn服务器;
76.步骤s11,接收并同步cdn服务器推送的差分包;
77.步骤s12,接收到客户端发送的quic连接请求后,与客户端建立quic连接;
78.步骤s13,通过quic协议将差分包发送给客户端。
79.步骤s10~s13为quic代理服务器端的基于quic协议的汽车软件在线升级方法。
80.步骤s12中,当一个新的客户端向quic代理服务器发起连接时,此时quic代理服务器没有该客户端的任何信息,因此需要通过初次连接获取,客户端发送的quic连接请求为初次连接请求;若客户端之前已与quic代理服务器连接过,客户端发送的quic连接请求为再次连接请求。当为初次连接时,步骤s12包括:
81.接收到客户端发送的quic连接请求后,生成质数组、质数组的原根及第一随机数,根据质数组、原根及第一随机数生成目标数,将目标数、质数组及原根置于serverconfig内,发送rejection消息至客户端,rejection消息包括serverconfig;
82.接收客户端发送的full client hello消息,根据serverconfig及full client hello消息中的客户端公开数生成第二初始秘钥,通过第二初始秘钥解密full client hello消息中的数据,第二初始秘钥与客户端生成的第一初始秘钥相同。
83.其中,当quic代理服务器接收到客户端发送的full client hello消息时,代表quic连接成功。
84.进一步的,接收客户端发送的full client hello消息,根据serverconfig及full client hello消息中的客户端公开数生成第二初始秘钥,通过第二初始秘钥解密full client hello消息中的数据,第二初始秘钥与客户端生成的第一初始秘钥相同之后,步骤s12还包括:
85.生成服务器公开数,将附带服务器公开数的server hello消息发送给客户端。
86.客户端接收到服务器公开数后,quic代理服务器和客户端便更新了秘钥,通过sha-256等算法推导出会话密钥后就可以通过此会话秘钥进行通信,这样quic代理服务器可以更新自己的私钥,保证前向安全性。
87.如图4所示,本实施例还提供一种基于quic协议的汽车软件在线升级方法,包括:
88.步骤s20,接收到软件更新通知后,判断当前网络环境是否为弱网;
89.步骤s21,若当前网络环境为弱网,则向quic代理服务器发送quic连接请求,与quic代理服务器建立quic连接;
90.步骤s22,接收quic代理服务器发送的差分包,根据差分包对需要更新的汽车软件进行升级。
91.步骤s20~s22为客户端的基于quic协议的汽车软件在线升级方法。
92.步骤s20包括:
93.接收到软件更新通知后,获取预设历史时长内网络请求的平均响应速度;
94.若平均响应速度低于预设速度阈值,则判断当前网络环境为弱网。
95.步骤s20中,预设历史时长为设定的过去一段时间,可通过过去一段时间网络请求
的平均响应速度判断当前网络环境是否为弱网。
96.当客户端与quic代理服务器为初次连接时,步骤s21包括:
97.若当前网络环境为弱网,则向quic代理服务器发送inchoate client hello消息;
98.接收到quic代理服务器发送的rejection消息后,生成第二随机数,根据rejection消息中的质数组、目标数及第二随机数计算出第一初始秘钥,向quic代理服务器发送full client hello消息,full client hello消息包括客户端公开数和经第一初始秘钥加密的数据;第一初始秘钥与quic代理服务器生成的第二初始秘钥相同;
99.接收到quic代理服务器发送的server hello消息后,通过算法推导出与quic代理服务器之间的会话密钥,serverhello消息包括服务器公开数。
100.客户端接收到服务器公开数后,quic代理服务器和客户端便更新了秘钥,通过sha-256等算法推导出会话密钥后就可以通过此会话秘钥进行通信。
101.本实施例中,当客户端与quic代理服务器为再次连接时,如果客户端本地的serverconfig未过期(包含了目标数、质数组、原根和其它前次协商信息),直接可以计算出第一初始秘钥和第二初始秘钥并加密传输数据,实现0rtt握手。
102.如图5所示为quic协议的握手流程示意图,简化了握手流程到0/1rtt,https的握手需要3rtt的耗时,本实施例的quic建链最多只消耗1rtt,这样便提高了ota在线升级的效率。
103.基于与前文所述的基于quic协议的汽车软件在线升级方法同样的发明构思,本实施例还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现前文所述的基于quic协议的汽车软件在线升级方法的任一方法的步骤。
104.其中,总线架构(用总线来代表),总线可以包括任意数量的互联的总线和桥,总线将包括由处理器代表的一个或多个处理器和存储器代表的存储器的各种电路链接在一起。总线还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口在总线和接收器和发送器之间提供接口。接收器和发送器可以是同一个元件,即收发机,提供用于在传输介质上与各种其他装置通信的单元。处理器负责管理总线和通常的处理,而存储器可以被用于存储处理器在执行操作时所使用的数据。
105.由于本实施例所介绍的电子设备为实施本发明实施例中基于quic协议的汽车软件在线升级方法所采用的电子设备,故而基于本发明实施例中所介绍的基于quic协议的汽车软件在线升级方法,本领域所属技术人员能够了解本实施例的电子设备的具体实施方式以及其各种变化形式,所以在此对于该电子设备如何实现本发明实施例中的方法不再详细介绍。只要本领域所属技术人员实施本发明实施例中基于quic协议的汽车软件在线升级方法所采用的电子设备,都属于本发明所欲保护的范围。
106.基于与上述基于quic协议的汽车软件在线升级方法同样的发明构思,本发明还提供一种计算机可读存储介质,计算机可读存储介质被执行时实现上述任一基于quic协议的汽车软件在线升级方法。
107.本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实
施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
108.本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
109.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
110.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
111.尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
112.显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1