加工定制

通信中间件与网络协议 光庭信息申请一种支持多通信协议的车载服务化通信中间件及通信方法专利,提升了通信协议在开发过程中的灵活性

小编 2024-10-05 加工定制 23 0

光庭信息申请一种支持多通信协议的车载服务化通信中间件及通信方法专利,提升了通信协议在开发过程中的灵活性

金融界2023年12月15日消息,据国家知识产权局公告,武汉光庭信息技术股份有限公司申请一项名为“一种支持多通信协议的车载服务化通信中间件及通信方法“,公开号CN117240939A,申请日期为2023年8月。

专利摘要显示,本发明提供一种支持多通信协议的车载服务化通信中间件及通信方法,包括:公共单元、配置单元、服务单元和协议存储单元;所述公共单元,用于获取第三方应用发送的通信请求,解析所述通信请求中的服务ID和版本号,并将所述服务ID和所述版本号发送至所述服务单元;所述服务单元,用于基于所述配置单元对预设配置文件解析,获取所述服务ID和所述版本号对应的协议信息,基于所述协议信息对所述协议存储单元中的通信协议进行实例化,并将实例化得到的实例ID通过所述公共单元返回至所述第三方应用。本发明通过在协议存储单元中存储多种通信协议,并在第三方应用访问时,对其需要使用的协议进行实例化,提升了通信协议在开发过程中的灵活性。

本文源自金融界

常见应用层通讯协议总结分析

各类协议的发展历程

HTTP/1.0 (1996年发布):

HTTP/1.0是HTTP协议的早期版本,它不支持持久连接(长连接),即每个请求完成后都会关闭TCP连接。这导致了网络效率低下,尤其是在Web页面包含多个资源时。

使用场景:主要用于基础的Web页面传输,但随着Web应用的复杂化和性能需求的提升,其局限性逐渐显现。

HTTP/1.1 (1997年发布):

HTTP/1.1引入了持久连接,默认开启Keep-Alive,允许在一个TCP连接上执行多个请求,从而减少了建立连接的开销。还增加了缓存控制、管道化(Pipelining)、分块传输编码等特性,提升了性能。

使用场景:现代Web应用广泛使用HTTP/1.1,尽管在高并发或大量资源加载的情况下,队头阻塞问题依然存在。

HTTP/2 (2015年正式发布):

HTTP/2最大的改进是多路复用,通过帧和流的概念,在单个TCP连接上并发处理多个请求和响应,解决了队头阻塞问题。引入了二进制分帧、头部压缩(HPACK)、服务器推送等功能,大大提高了数据传输效率。

使用场景:适用于需要快速响应和高性能传输的现代Web应用,特别是对于内容丰富的网站和移动应用程序。

HTTP/3 (仍在发展与普及中):

HTTP/3基于QUIC协议,改用了UDP作为底层传输层,并内置了TLS加密、拥塞控制和多路复用机制,进一步优化延迟和可靠性。

目标是在丢包严重的网络环境下提供更快更稳定的通信体验。

使用场景:适用于对实时性和连接稳定性要求高的服务,尤其在网络状况不佳时仍需保持高效通讯的应用。

WebSocket (RFC 6455,2011年发布):

WebSocket是一种独立于HTTP的双向通信协议,但它通过HTTP握手来建立连接。

支持全双工通信,客户端和服务端可以在任何时刻主动发送消息给对方,无需反复发起请求。

使用场景:适合实时交互性强的应用,如即时聊天、协同编辑、游戏、实时股票报价系统等。

gRPC

gRPC是Google开发的一种基于HTTP/2设计的高性能RPC框架。

它利用HTTP/2的多路复用和双向流特性,结合Protocol Buffers进行高效的数据序列化和反序列化。gRPC提供了严格的类型检查、负载均衡、健康检查、身份验证等多种高级功能。

使用场景:微服务架构、跨语言的服务间通信、分布式系统、API调用等场景,特别强调性能和可扩展性的场合。

他们之间对比分析

HTTP/1.x到HTTP/2再到HTTP/3,主要围绕解决HTTP协议在性能上的瓶颈,逐步提高传输效率和降低延迟。

传统的HTTP/1.x协议在性能上存在以下几个主要问题:

头部冗余:

HTTP/1.1中,每次请求和响应都需要发送完整的头部信息,这在大量并发请求时会导致带宽的浪费。特别是对于小资源,头部大小可能远大于实际数据量。

队头阻塞(Head-of-line Blocking):

在HTTP/1.1中,同一域名下的所有请求都必须按照顺序排队等待响应,即使请求之间是独立且无关的。这意味着,一个耗时的请求会阻塞后面所有请求的处理,导致整体页面加载速度变慢。

连接管理效率低:

为了解决队头阻塞问题,开发者不得不采用如并行连接、域名分片等技术手段,但这又带来了新的问题,比如连接开销增大、服务器压力增大以及DNS查询次数增加等问题。

短连接导致延迟:

每个HTTP请求都建立一个新的TCP连接,并在响应完成后关闭该连接。频繁地创建和销毁连接会产生额外的网络延迟,尤其是在移动网络环境下。

HTTP/2针对以上问题进行了改进:

引入了头部压缩机制(HPACK),减少重复头部的传输。使用多路复用技术在一个TCP连接上并发处理多个请求和响应,消除了队头阻塞的问题。允许服务端推送(Server Push),即在客户端请求一个资源后,服务器可以预测客户端接下来可能需要的其他资源,并提前推送给客户端,优化网页加载速度。默认支持长连接,减少建立连接的开销和时间。

这些改进使得HTTP/2相较于HTTP/1.x在非持续性数据交换方面能够提供更高的性能和更优的用户体验。

WebSocket则是为了满足Web应用中长期持续且双向的数据交换需求而诞生的,其设计目标在于实现真正的实时通信。

gRPC则针对远程过程调用进行了专门优化,结合HTTP/2的特性,提供了强类型、高效安全的企业级解决方案,更适合构建高性能的服务间通信架构。

WebSocket和HTTP/2都能实现长连接,他们的区别是什么?

通信模式

WebSocket:它是一种全双工协议,允许客户端和服务端之间进行双向实时通信。一旦建立连接后,双方都可以主动发送数据给对方,无需等待请求或响应。这意味着WebSocket可以用来实现实时推送、消息通知等场景。

HTTP/2:虽然HTTP/2支持长连接,并通过多路复用技术在一个TCP连接上处理多个请求和响应,但它的基本通信模式仍然是基于请求-响应模型的。也就是说,在HTTP/2中,通常是客户端发起请求,然后服务器返回响应。尽管HTTP/2引入了服务器推送(Server Push)功能,但它仍然与WebSocket的全双工通信有所差异。

应用场景

WebSocket:适用于需要持续性交互和低延迟通讯的应用,例如聊天应用、实时协作工具、在线游戏、股票交易系统等。

HTTP/2:适用于Web应用程序资源加载优化,提高网页加载速度,以及对传统HTTP请求响应模型的性能改进,对于非持续性的数据交换更为适合。

协议特性

WebSocket:设计初衷就是为了实时通信而生,它保持连接并以帧为单位传输数据,能够更有效地利用带宽,降低延迟。

HTTP/2:虽然在性能上有显著提升,但其设计目标是为了改进HTTP/1.x的问题,比如头部压缩、二进制分帧等,而不是为了替代WebSocket的实时通信能力。

连接管理

WebSocket:连接通常会一直保持到有一方明确关闭为止,除非网络故障或人为干预。

HTTP/2:虽然默认也是长连接,但连接可能因为多种原因被关闭,如超时、错误或资源释放策略等。

总结来说,虽然两者都支持长连接,但是它们的设计目的、使用场景以及具体实现方式有所不同。WebSocket更适合于需要持续双向实时通讯的应用,而HTTP/2则更多地关注改善传统HTTP应用的性能和效率。

grpc基于http/2,它继承了什么能力,自己又扩展了什么能力?

gRPC基于HTTP/2协议,它继承了HTTP/2的以下能力:

多路复用(Multiplexing) :在一个TCP连接上可以并发处理多个请求和响应,避免了HTTP/1.x中的队头阻塞问题。二进制分帧(Binary Framing) :将消息分割为多个独立的帧进行传输,从而能够并行发送多个消息,并且对头部信息进行了压缩,提高了带宽利用率。流式传输(Stream) :支持双向的数据流通信,客户端和服务端都可以发送或接收多个连续的消息。优先级与依赖管理(Priority and Dependency Management) :允许设置帧的优先级,以便更高效地处理网络资源。

同时,gRPC还扩展了HTTP/2协议的能力以满足高性能远程过程调用(RPC)的需求:

Protocol Buffers(protobuf)作为数据交换格式 :gRPC使用Google开发的Protocol Buffers作为默认的数据序列化方式。Protocol Buffers提供了一种结构化的、跨语言的数据表示方法,可以高效地编码和解码数据。服务定义和代码生成 :通过接口描述语言(IDL)定义服务接口及消息结构,然后由gRPC工具链自动生成对应的各种语言版本的客户端和服务端代码框架。强类型服务调用 :在gRPC中,客户端和服务端之间的每个调用都是类型安全的,确保了数据的正确性和完整性。多种调用模式 :gRPC提供了四种不同的调用模式:一元(Unary)、客户端流式(Client Streaming)、服务器流式(Server Streaming)以及双向流式(Bidirectional Streaming),可以根据业务需求选择合适的通信模型。中间件集成与插件机制 :gRPC具有良好的扩展性,可以方便地添加认证、日志记录、限流等中间件组件。

综上所述,gRPC不仅利用了HTTP/2的性能优势,还在此基础上构建了一个功能丰富、高效的RPC框架,使得不同环境和语言间的微服务交互更为便捷和可靠。

http/2是基于请求响应模型,那grpc任然是吗?

虽然HTTP/2本身是基于请求-响应模型,但gRPC利用了HTTP/2的多路复用和双向流特性,设计了一套更为灵活和高效的通信模型。在gRPC中,除了基本的一元(Unary)调用仍然遵循传统的请求-响应模式之外,还支持以下几种更复杂的交互模式:

客户端流式(Client Streaming) :客户端向服务端发送一系列消息,然后服务端接收到所有消息后返回一个响应。这是一种一到多的通信模式。服务器流式(Server Streaming) :客户端发送一个请求给服务端,然后服务端返回一个包含多个连续消息的响应流。这是一种多到一的通信模式。双向流式(Bidirectional Streaming) :客户端和服务端都可以同时发送多个消息,在同一连接上形成全双工的通信通道。这允许双方进行实时、长时的、双向的数据交换。

因此,尽管gRPC建立在HTTP/2之上,并且兼容请求-响应模型,但它通过引入流处理机制扩展了这一基础模型,以满足不同场景下的应用需求。

相关问答

nc 中间件 是什么意思_会计学堂

[回答]NC中间件是一种用于计算机网络的软件系统,其含义是“NetworkComputingMiddleware”。它提供网络和计算机资源的整合,允许不同的用户服务器和计算...

传感器如何与plc连接?

传感器可以通过不同的接口与PLC连接,如模拟输入、数字输入、串口通信等。在连接前需要确定传感器的类型和信号输出方式,以便选择合适的接口。在连接时需要确保...

合租房遇到过最不讲究的事情是什么?

2、实习工作期间遇到的奇葩室友当初学校是在泉州,实习工作期,也是选择在泉州市区随便找了一份工作,住的是公司的集体宿舍,宿舍条件简陋,我们几个新入住的员...

通信 标准CMIS什么意思?

是内容管理通用服务的英文缩写,2008年11月17日——国际开放标准联盟OASIS已成立新的工作组进行Web服务接口规范的标准化工作,将实现企业内容管理系统间的更...

什么是 通信 子网和资源网的桥梁?

传输层是资源子网与通信子网的接口和桥梁。传输层下面三层(属于通信子网)面向数据通信,上面三层(属于资源子网)面向数据处理。因此,传输层位于高层和低层中间,...

通信 主机是什么?

通信主机(Communicationhost)是指在网络通信中负责处理和管理通信流量、控制和传输数据的设备或软件系统。它是通信网络的核心组成部分之一,起着协调和中转数...

三次握手和http 协议 有什么关系吗?

TCP/IP是一种笼统的称呼,实际上是两种不同层次的协议。网络通信拓扑结构包含8层(由于个人疏忽,这句认真讲是错误的。更正为:OSI/RM参考模型为七层,因为过于复...

传输层和 网络层 又什么区别 - IwEzIkKt9J 的回答 - 懂得

传输层是端到端的服务,舆层在网络层之上,网络层可以进行路由在协议行的进,而网络层协议为不同主机提供逻辑通信。这个区别很微妙,但却非常重要。传...

域名和网址的关系?

简而言之,我们访问每一个网页(服务器)在网络层只需要一个IP地址就可以了,为什么还需要域名呢?域名就是要方便我们记忆和使用,我们能够记住www.qq.com,但...

网络 层与传输层有什么异同?

找的,很长,好好看:在协议栈中,传输层位于网络层之上,传输层协议为不同主机上运行的进程提供逻辑通信,而网络层协议为不同主机提供逻辑通信。这个区别很微妙,...

猜你喜欢