CN116192950A - 基于grpc通信协议进行通信的方法、装置和电子设备 - Google Patents

基于grpc通信协议进行通信的方法、装置和电子设备 Download PDF

Info

Publication number
CN116192950A
CN116192950A CN202310153797.8A CN202310153797A CN116192950A CN 116192950 A CN116192950 A CN 116192950A CN 202310153797 A CN202310153797 A CN 202310153797A CN 116192950 A CN116192950 A CN 116192950A
Authority
CN
China
Prior art keywords
server
communication protocol
grpc
communication
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202310153797.8A
Other languages
English (en)
Inventor
孙晓骏
张佳荟
覃梓兴
张苏洵
刘铠文
张春广
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Rongma Technology Beijing Co ltd
Original Assignee
Rongma Technology Beijing Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Rongma Technology Beijing Co ltd filed Critical Rongma Technology Beijing Co ltd
Priority to CN202310153797.8A priority Critical patent/CN116192950A/zh
Publication of CN116192950A publication Critical patent/CN116192950A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/06Notations for structuring of protocol data, e.g. abstract syntax notation one [ASN.1]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/70Reducing energy consumption in communication networks in wireless communication networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Communication Control (AREA)

Abstract

本申请提供了一种基于GRPC通信协议进行通信的方法、装置和电子设备,其中,该方法包括:在内核层中与服务器建立连接后,向服务器发送通信数据要求;将GRPC通信协议的调用方法所需参数发送给服务器,参数用于限定与服务器基于GRPC通信协议通信时使用调用方法所传递的参数;接收服务器反馈的基于调用方法的返回值,对返回值进行解析,得到GRPC通信协议的调用方法的返回数据结构信息,其中,返回数据结构信息用于指示与服务器基于GRPC通信协议通信时从服务器接收到的数据结构标准;其中,在与服务器进行基于GRPC通信协议通信时,按照调用方法所传递的参数配置传递数据,按照通信数据要求设置传递数据的格式。

Description

基于GRPC通信协议进行通信的方法、装置和电子设备
技术领域
本申请涉及通信技术领域,具体而言,涉及一种基于GRPC通信协议进行通信的方法、装置和电子设备。
背景技术
目前,在客户端与服务端进行通信的时候,有很多种协议可以选择,例如,传统的超文本传输协议(Hyper Text Transfer Protocol,简称:HTTP),现阶段服务端对于基于GRPC通信协议的方式较为普遍,也便于开发。但是目前的基于GRPC通信协议的方式容易受到恶意软件的破坏。
发明内容
有鉴于此,本申请实施例的目的在于提供一种基于GRPC通信协议进行通信的方法、装置和电子设备,以改善基于GRPC通信协议的方式容易受到恶意软件的破坏的问题。
第一方面,本申请实施例提供了一种基于GRPC通信协议进行通信的方法,包括:
在内核层中与服务器建立连接后,向所述服务器发送通信数据要求;
将GRPC通信协议的调用方法所需参数发送给所述服务器,其中,所述参数用于限定与所述服务器基于GRPC通信协议通信时使用调用方法所传递的参数;
接收所述服务器反馈的基于所述调用方法的返回值,对所述返回值进行解析,得到GRPC通信协议的调用方法的返回数据结构信息,其中,所述返回数据结构信息用于指示与所述服务器基于GRPC通信协议通信时从所述服务器接收到的数据结构标准;
其中,在与所述服务器进行基于所述GRPC通信协议通信时,按照所述调用方法所传递的参数配置传递数据,按照所述通信数据要求设置所述传递数据的格式。
在上述实现方式中,通过在内核层实现基于GRPC通信协议通信的规则的约定,可以实现更快捷与服务器实现对接,还能够降低被其他恶意程序破坏及监听的情况,提高了与服务器通信的安全性以及通信效率。
在一可选的实施方式中,所述通信数据要求包括通信协议要求;
所述向所述服务器发送通信数据要求,包括:构造满足所述通信协议要求的幻数据包,并向所述服务器发送所述幻数据包,所述幻数据包用于指示所采用的通信协议。
在上述实施方式中,可以预先与服务器约定使用的协议标准,从而提高与服务器基于GRPC通信协议实现的通信的有效性。
在一可选的实施方式中,所述通信数据要求包括帧尺寸要求;向所述服务器发送通信数据要求,包括:构造包含所述帧尺寸要求的帧设置包,并向所述服务器发送所述帧设置包,所述帧设置包用于指示基于GRPC通信协议通信过程中传输的数据的帧大小及帧窗口大小。
在上述实施方式中,可以预先与服务器约定帧大小及帧窗口大小,从而提高与服务器基于GRPC通信协议实现的通信的准确性。
在一可选的实施方式中,所述通信数据要求包括流所需大小;
所述向所述服务器发送通信数据要求,包括:构造包含所述数据流大小的更新窗口包,并向所述服务器发送所述更新窗口包,以供所述服务器根据所述更新窗口包更新当前连接的数据流大小。
在上述实施方式中,可以预先与通知服务器更新当前连接的流所需的大小,从而提高与服务器基于GRPC通信协议实现的通信的成功率。
在一可选的实施方式中,所述与服务器建立连接后之后,所述方法还包括:接收所述服务器发送的加密密钥,所述加密密钥用于对通信过程中的数据进行加密;
所述将GRPC通信协议的调用方法所需参数发送给所述服务器,包括:使用所述加密密钥,对所述GRPC通信协议的调用方法所需参数进行加密,得到加密参数;将所述加密参数发送给所述服务器。
在一可选的实施方式中,所述返回值为密态返回值;所述对所述返回值进行解析,包括:使用所述加密密钥对所述密态返回值进行解密处理,得到GRPC通信协议的调用方法的返回数据结构信息。
在上述实施方式中,在传输序列化的数据之前先对其进行加密,可以提高数据传输的安全性。
在一可选的实施方式中,所述将GRPC通信协议的调用方法所需参数发送给所述服务器,包括:将GRPC通信协议的调用方法所需参数和接口地址发送给所述服务器,其中,所述接口地址用于指示基于所述基于GRPC通信协议通信时与所述服务器的通信接口。
在一可选的实施方式中,所述将GRPC通信协议的调用方法所需参数和接口地址发送给所述服务器,包括:将GRPC通信协议的调用方法所需参数和接口地址进行序列化处理,得到序列化参数,并将所述序列化参数发送给所述服务器;
所述接收所述服务器发送的基于所述调用方法的返回值,对所述返回值进行解析,得到GRPC通信协议的调用方法的返回数据结构信息,包括:对所述返回值进行反序列化处理,以得到GRPC通信协议的调用方法的返回数据结构信息。
在一可选的实施方式中,所述方法还包括:获取数据流标识;基于所述数据流标识构建顺序数列,其中,所述顺序数列用于记录与所述服务器通信的数据流的位序。
第二方面,本申请实施例还提供一种基于GRPC通信协议进行通信的装置,包括:
第一发送模块,用于在内核层中与服务器建立连接后,向所述服务器发送通信数据要求;
第二发送模块,用于将GRPC通信协议的调用方法所需参数发送给所述服务器,其中,所述参数用于限定与所述服务器基于GRPC通信协议通信时使用调用方法所传递的参数;
解析模块,用于接收所述服务器反馈的基于所述调用方法的返回值,对所述返回值进行解析,得到GRPC通信协议的调用方法的返回数据结构信息,其中,所述返回数据结构信息用于指示与所述服务器基于GRPC通信协议通信时从所述服务器接收到的数据结构标准;其中,在与所述服务器进行基于所述GRPC通信协议通信时,按照所述调用方法所传递的参数配置传递数据,按照所述通信数据要求设置所述传递数据的格式。
第三方面,本申请实施例还提供一种电子设备,包括:处理器、存储器,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述机器可读指令被所述处理器执行时执行上述的方法的步骤。
第四方面,本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述的方法的步骤。
为使本申请的上述目的、特征和优点能更明显易懂,下文特举实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的服务器与客户终端进行交互的示意图;
图2为本申请实施例提供的电子设备的方框示意图;
图3为本申请实施例提供的基于GRPC通信协议进行通信的方法的流程图;
图4为本申请实施例提供的基于GRPC通信协议进行通信的装置的功能模块示意图。
具体实施方式
下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行描述。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
目前服务端对于基于GRPC通信协议的通信方式相对比较普遍,且便于开发。
但是经本申请的发明人研究了解到,基于GRPC通信协议的通信方式虽然有上述优点,但是也存在容易受到恶意软件的破坏的问题。而容易受到恶意软件的破坏的主要原因是由于客户端使用GRPC通信协议时只能使用用户层的支持库来进行连接及通信,但是在用户层的实现就容易受到恶意软件的破坏,甚至获取及篡改通信内容。进一步地,现有通过GRPC通信协议进行网络通信的程序都运行在用户层,很容易受到恶意程序的破坏及修改,导致通信的安全性大大降低。
基于上述研究,本申请提供了一种基于GRPC通信协议进行通信的方法,此方法通过从底层实现HTTP2及GRPC的相关协议内容来达到在Windows内核层基于GRPC进行通信的功能,从而提高通信速度,也大大提高了通信的安全性。
下面在介绍本申请提供的基于GRPC通信协议进行通信的方法先对本申请所涉及的概念进行介绍:
GRPC:全称为:google Remote Procedure Call,是由google开发的一个高性能、通用的开源远程过程调用框架,主要基于HTTP2协议标准而设计;
HTTP2:超文本传输协议2.0版本,指定了客户端与服务器之间的传输的消息的格式;
内核层:拥有执行的最高权限,与系统内核的代码在同一层,但是系统提供的API(Application Program Interface)及类型有一定的限制;
用户层:用户应用程序所在层,系统提供了丰富的接口以及类型,出现问题也不会影响到系统的运行。
为便于对本实施例进行理解,首先对执行本申请实施例所公开的一种基于GRPC通信协议进行通信的方法的运行环境进行详细介绍。
如图1所示,是本申请实施例提供的服务器110与客户终端120进行交互的示意图。该服务器110通过网络与一个或多个客户终端120进行通信连接,以进行数据通信或交互。服务器110可以是网络服务器、数据库服务器等。客户终端120可以是个人电脑(personalcomputer,PC)、平板电脑、智能手机、个人数字助理(personal digital assistant,PDA)等。
本实施例中,该客户终端120中可以运行有客户端。
服务器110中可以运行有服务端,该服务端可以用于接收客户端的数据,与客户端构建GRPC通信协议,以实现基于GRPC通信协议进行通信。
如图2所示,是电子设备的方框示意图。电子设备200可以包括存储器211、处理器213。本领域普通技术人员可以理解,图2所示的结构仅为示意,其并不对电子设备200的结构造成限定。例如,电子设备200还可包括比图2中所示更多或者更少的组件,或者具有与图2所示不同的配置。
示例性地,图1所示的服务器110和客户终端120可以包括图2所示的电子设备200的组件,当然,如果存在更多的功能需求,该服务器110和客户终端120还可以包括比图2所示的电子设备200更多的组件。
上述的存储器211与处理器213相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通信总线或信号线实现电性连接。上述的处理器213用于执行存储器中存储的可执行模块。
其中,存储器211可以是,但不限于,随机存取存储器(Random Access Memory,简称RAM),只读存储器(Read Only Memory,简称ROM),可编程只读存储器(ProgrammableRead-Only Memory,简称PROM),可擦除只读存储器(Erasable Programmable Read-OnlyMemory,简称EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-OnlyMemory,简称EEPROM)等。其中,存储器211用于存储程序,所述处理器213在接收到执行指令后,执行所述程序,本申请实施例任一实施例揭示的过程定义的电子设备200所执行的方法可以应用于处理器213中,或者由处理器213实现。
上述的处理器213可能是一种集成电路芯片,具有信号的处理能力。上述的处理器213可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(digital signalprocessor,简称DSP)、专用集成电路(Application Specific Integrated Circuit,简称ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
本实施例中的电子设备200可以用于执行本申请实施例提供的各个方法中的各个步骤。下面通过几个实施例详细描述基于GRPC通信协议进行通信的方法的实现过程。
请参阅图3,是本申请实施例提供的基于GRPC通信协议进行通信的方法的流程图。本实施例提供的基于GRPC通信协议进行通信的方法可以应用于上述图1所示的客户终端中,具体地,该客户终端运行有客户端,可以通过该客户端来执行本实施例提供基于GRPC通信协议进行通信的方法中的步骤。下面将对图3所示的具体流程进行详细阐述。
步骤310,在内核层中与服务器建立连接后,向该服务器发送通信数据要求。
本实施例中,可以在内核层中与服务器构建HTTPS连接,并与该服务器进行握手。
在内核层中与服务器建立连接之后,可以接收该服务器发送的加密密钥。加密密钥用于对与服务器通信过程中的数据进行加密。
本实施例中,在与服务器构建HTTPS连接时,客户端还可以指定服务器接口地址,该服务器接口地址用于接收后续客户端与服务器基于GRPC通信协议的通信过程中的数据。
示例性地,与该服务器进行握手可以用于实现基于HTTPS的完整握手阶段。
例如,该客户终端使用的操作系统可以是Windows,则该客户端可以在Windows内核层中与服务器构建HTTPS连接,并与该服务器进行握手。
可选地,可以以资料数据包的方式向服务器传输通信数据要求。基于此,在执行步骤310之前,还可以构造包含通信数据要求的资料数据包。
服务器在接收到该资料数据包后,可以通过对该资料数据包的解析获得通信数据要求。
示例性地,该通信数据要求可以包括对通信数据帧的大小的要求、通信协议标准的要求等。
针对每一项通信数据要求可以均构建一个资料数据包,将将该资料数据包发送给服务器;也可以将所有的通信数据要求进行统一打包成整体资源数据包,以将整体资源数据包发送给服务器。
通过该资源数据包可以实现通知服务器此次构建的GRPC通信协议要求。
步骤320,将GRPC通信协议的调用方法所需参数发送给该服务器。
该调用方法所需参数可以在构建与服务器的GRPC通信协议之前,用户按需设置的。可以理解的是,不同的使用场景客户端所需从服务器中调用的调用方法不同,基于所需调用方法的不同,该所需参数的内容也不同。其中,该调用方法所需参数为预先定义的参数。
本实施例中,还可以将GRPC通信协议的调用方法所需参数和接口地址发送给该服务器。其中,该接口地址用于指示基于该基于GRPC通信协议通信时与该服务器的通信接口。
步骤330,接收该服务器反馈的基于该调用方法的返回值,对该返回值进行解析,得到GRPC通信协议的调用方法的返回数据结构信息。
其中,该调用方法的返回值可以表示基于GPRC通信协议通信时调用服务器的调用方法所产生的返回信息。该返回值的具体内容可以由使用者在约定基于该GPRC通信协议调用服务器中的调用方法时服务器返回的参数。具体地,可以根据实际需求来约定该返回值的内容。可以知道的是,该GRPC通信协议的使用环境的不同,调用的方法不同约定的返回值也可能不同。
通过对返回值的解析可以得到的返回数据结构信息。该返回数据结构信息用于指示与该服务器基于GRPC通信协议通信时从该服务器接收到的数据结构标准。
在后续客户端与服务器基于该GRPC通信协议通信时,客户端调用服务器的调用方法后,该服务器给予返回的数据格式为上述返回数据结构信息约定的格式。
通过上述步骤310至步骤330,可以实现基于GRPC通信协议的通信方法的约定。
在上述的步骤310至步骤330,完成的基于GRPC通信协议的通信方法的约定后,可以根据需要保持当前数据流不关闭,在该当前数据流不关闭的情况下,客户端可以监听到服务器发来的推送,客户端也可以用当前数据流继续调用所需的远程调用方法。
在上述步骤310至步骤330可以在内核层实现GRPC通信协议的约定,可以实现更快捷与服务器实现对接,还能够降低被其他恶意程序破坏及监听的情况,提高了与服务器通信的安全性以及通信效率。
针对实际需求,上述步骤310所涉及的通信数据要求可以至少包括以下几种情况。
在一种实施方式中,该通信数据要求包括通信协议要求,该资料数据包则可以包括:幻数据包。该幻数据包为满足该通信协议要求的幻数据包。上述的步骤310可以包括:构造满足该通信协议要求的幻数据包,并向该服务器发送该幻数据包,该幻数据包用于指示所采用的通信协议。
该幻数据包用于指示所采用的通信协议。示例性地,幻数据包用于通知该服务器当前客户端使用HTTP协议标准。
本实施例中,该幻数据包也可以表示为Magic数据包。
示例性地,该当前客户端使用HTTP协议标准可以为HTTP2协议标准。
在另一种实施方式中,该通信数据要求包括帧尺寸要求,该资料数据包可以包括:帧设置包;上述的步骤320可以包括:构造包含该帧尺寸要求的帧设置包,并向该服务器发送该帧设置包。
该帧设置包用于指示基于GRPC通信协议通信过程中传输的数据的帧大小及帧窗口大小。
示例性地,该帧设置包所限定的帧大小及帧窗口大小可以是客户端当前通信中所使用的帧大小及帧窗口大小。
在另一种实施方式中,该通信数据要求包括数据流所需大小,该资料数据包可以包括:更新窗口包。上述的步骤310可以包括:构造包含该数据流大小的更新窗口包,并向该服务器发送该更新窗口包,以供该服务器根据该更新窗口包更新当前连接的数据流大小。
通过上述方式,可以通过与服务器交互的方式告知服务器GRPC通信协议数据传输的相关限制,适应性约定数据传输的相关限制,可以使本实施例提供的基于GRPC通信协议进行通信的方法可以适应更多的使用场景需求,提高基于GRPC通信协议进行通信的方法的适用性。
为了提高基于GRPC通信协议进行通信的方法在协议的约定过程的安全性,还可以将传输的参数进行加密。基于此,在步骤320之前,还可以包括:接收该服务器发送的加密密钥,该加密密钥用于对通信过程中的数据进行加密。
步骤320可以包括:使用该加密密钥,对该GRPC通信协议的调用方法所需参数进行加密,得到加密参数,将该加密参数发送给该服务器。
示例性地,上述的加密密钥可以是对称加密密钥,该服务器接收到加密参数后,可以使用该密钥对该加密参数进行解密,然后将解密得到的数据进行反序列化,可以得到基于GRPC通信协议通信时所调用的调用方法所需参数。
示例性地,从服务器获得的返回值可以是密态返回值。上述的步骤330可以包括:使用该加密密钥对该密态返回值进行解密处理,得到GRPC通信协议的调用方法的返回数据结构信息。
为了使与服务器能够更成功地获知客户端所约定的调用方法所需参数。还可以将传输给服务器的GRPC通信协议的调用方法所需参数与接口地址先进行序列化处理后再发送给服务器。基于此,步骤320可以包括,可以将调用方法所需参数的数据结构和服务器接口地址进行序列化处理,得到序列化参数,并将该序列化参数发送给该服务器。
其中,序列化(Serialization)是将需要传输给服务器的参数转换为可以存储或传输的形式的过程。经过序列化处理后的参数可以为二进制数据。
本实施例中,通过与服务器构建的HTTPS连接,向该服务器发送序列化参数。
本实施例中,服务器在获得该序列化参数后,可以进行反序列化处理,可以得到客户端所约定的调用方法所需参数。
可选地,在经过序列化处理后,还可以使用上述加密密钥对序列化参数进行加密处理,并将密态序列化参数发送给该服务器。
本实施例中,服务器在获得该密态的序列化参数后,可以先进行解密处理,然后再进行反序列化处理,可以得到客户端所约定的调用方法所需参数。
本实施例中,若步骤320中发送给服务器的数据为经过序列化处理的数据,则该服务器反馈给客户端的返回值也可以是经过序列化处理的返回值。基于此,步骤330可以包括:对该返回值进行反序列化处理,以得到GRPC通信协议的调用方法的返回数据结构信息。
可选地,该返回值也可以是服务器先经过序列化处理,然后进行加密处理得到的返回值。基于此,客户端在获得该返回值时,可以先经过解密处理,然后再经过反序列化处理,可以得到客户端所约定的调用方法所需参数。
本实施例中,为了基于GRPC通信协议与服务器的通信过程能够更好地被追踪记录,基于GRPC通信协议进行通信的方法还可以包括:构建数据流标识。
本实施例中,可以基于该数据流标识构建顺序数列,其中,该顺序数列用于记录与该服务器通信的数据流的位序。
示例性地,该顺序数列的初始值可以为零,在客户端每次与服务器GRPC通信协议的通信,则该顺序数列可以加一。
本实施例提供基于GRPC通信协议进行通信的方法,可以在内核层直接进行基于GRPC通信协议的通信,从而可以在更高效地与服务端对接的同时,又能降低被其他恶意程序破坏及监听,大大提高了通信的安全性。
基于同一申请构思,本申请实施例中还提供了与基于GRPC通信协议进行通信的方法对应的基于GRPC通信协议进行通信的装置,由于本申请实施例中的装置解决问题的原理与前述的基于GRPC通信协议进行通信的方法实施例相似,因此本实施例中的装置的实施可以参见上述方法的实施例中的描述,重复之处不再赘述。
请参阅图4,是本申请实施例提供的基于GRPC通信协议进行通信的装置的功能模块示意图。本实施例中的基于GRPC通信协议进行通信的装置中的各个模块用于执行上述方法实施例中的各个步骤。基于GRPC通信协议进行通信的装置包括:第一发送模块410、第二发送模块420、以及解析模块430;其中各个模块的内容如下所示:
第一发送模块410,用于在内核层中与服务器建立连接后,向该服务器发送通信数据要求;
第二发送模块420,用于将GRPC通信协议的调用方法所需参数发送给该服务器,其中,该参数用于限定与该服务器基于GRPC通信协议通信时使用调用方法所传递的参数;
解析模块430,用于接收该服务器反馈的基于该调用方法的返回值,对该返回值进行解析,得到GRPC通信协议的调用方法的返回数据结构信息,其中,该返回数据结构信息用于指示与该服务器基于GRPC通信协议通信时从该服务器接收到的数据结构标准;其中,在与该服务器进行基于该GRPC通信协议通信时,按照该调用方法所传递的参数配置传递数据,按照该通信数据要求设置该传递数据的格式。
一种可能的实施方式中,该通信数据要求包括通信协议要求;
第一发送模块410,用于构造满足该通信协议要求的幻数据包,并向该服务器发送该幻数据包,该幻数据包用于指示所采用的通信协议。
一种可能的实施方式中,该通信数据要求包括帧尺寸要求;
第一发送模块410,用于构造包含该帧尺寸要求的帧设置包,并向该服务器发送该帧设置包,该帧设置包用于指示基于GRPC通信协议通信过程中传输的数据的帧大小及帧窗口大小。
一种可能的实施方式中,该通信数据要求包括数据流大小;
第一发送模块410,用于构造包含该数据流大小的更新窗口包,并向该服务器发送该更新窗口包,以供该服务器根据该更新窗口包更新当前连接的数据流大小。
一种可能的实施方式中,基于GRPC通信协议进行通信的装置还可以包括:接收模块,用于接收该服务器发送的加密密钥,该加密密钥用于对通信过程中的数据进行加密;
第二发送模块420,用于使用该加密密钥,对该GRPC通信协议的调用方法所需参数进行加密,得到加密参数;将该加密参数发送给该服务器。
一种可能的实施方式中,该返回值为密态返回值;
解析模块,还用于使用该加密密钥对该密态返回值进行解密处理,得到GRPC通信协议的调用方法的返回数据结构信息。
一种可能的实施方式中,第二发送模块420,用于将GRPC通信协议的调用方法所需参数和接口地址发送给该服务器,其中,该接口地址用于指示基于该基于GRPC通信协议通信时与该服务器的通信接口。
一种可能的实施方式中,第二发送模块420,用于将GRPC通信协议的调用方法所需参数和接口地址进行序列化处理,得到序列化参数,并将该序列化参数发送给该服务器;
解析模块430,用于对该返回值进行反序列化处理,以得到GRPC通信协议的调用方法的返回数据结构信息。
一种可能的实施方式中,基于GRPC通信协议进行通信的装置还可以包括:构建模块,用于获取数据流标识;基于该数据流标识构建顺序数列,其中,该顺序数列用于记录与该服务器通信的数据流的位序。
此外,本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法实施例中所述的基于GRPC通信协议进行通信的方法的步骤。
本申请实施例所提供的基于GRPC通信协议进行通信的方法的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行上述方法实施例中所述的基于GRPC通信协议进行通信的方法的步骤,具体可参见上述方法实施例,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。

Claims (12)

1.一种基于GRPC通信协议进行通信的方法,其特征在于,包括:
在内核层中与服务器建立连接后,向所述服务器发送通信数据要求;
将GRPC通信协议的调用方法所需参数发送给所述服务器,其中,所述参数用于限定与所述服务器基于GRPC通信协议通信时使用调用方法所传递的参数;
接收所述服务器反馈的基于所述调用方法的返回值,对所述返回值进行解析,得到GRPC通信协议的调用方法的返回数据结构信息,其中,所述返回数据结构信息用于指示与所述服务器基于GRPC通信协议通信时从所述服务器接收到的数据结构标准;
其中,在与所述服务器进行基于所述GRPC通信协议通信时,按照所述调用方法所传递的参数配置传递数据,按照所述通信数据要求设置所述传递数据的格式。
2.根据权利要求1所述的方法,其特征在于,所述通信数据要求包括通信协议要求;
所述向所述服务器发送通信数据要求,包括:
构造满足所述通信协议要求的幻数据包,并向所述服务器发送所述幻数据包,所述幻数据包用于指示所采用的通信协议。
3.根据权利要求1所述的方法,其特征在于,所述通信数据要求包括帧尺寸要求;
所述向所述服务器发送通信数据要求,包括:
构造包含所述帧尺寸要求的帧设置包,并向所述服务器发送所述帧设置包,所述帧设置包用于指示基于GRPC通信协议通信过程中传输的数据的帧大小及帧窗口大小。
4.根据权利要求1所述的方法,其特征在于,所述通信数据要求包括数据流大小;
所述向所述服务器发送通信数据要求,包括:
构造包含所述数据流大小的更新窗口包,并向所述服务器发送所述更新窗口包,以供所述服务器根据所述更新窗口包更新当前连接的数据流大小。
5.根据权利要求1所述的方法,其特征在于,所述与服务器建立连接后之后,所述方法还包括:
接收所述服务器发送的加密密钥,所述加密密钥用于对通信过程中的数据进行加密;
所述将GRPC通信协议的调用方法所需参数发送给所述服务器,包括:
使用所述加密密钥,对所述GRPC通信协议的调用方法所需参数进行加密,得到加密参数;
将所述加密参数发送给所述服务器。
6.根据权利要求5所述的方法,其特征在于,所述返回值为密态返回值;
所述对所述返回值进行解析,包括:
使用所述加密密钥对所述密态返回值进行解密处理,得到GRPC通信协议的调用方法的返回数据结构信息。
7.根据权利要求1-6任意一项所述的方法,其特征在于,所述将GRPC通信协议的调用方法所需参数发送给所述服务器,包括:
将GRPC通信协议的调用方法所需参数和接口地址发送给所述服务器,其中,所述接口地址用于指示基于所述基于GRPC通信协议通信时与所述服务器的通信接口。
8.根据权利要求7所述的方法,其特征在于,所述将GRPC通信协议的调用方法所需参数和接口地址发送给所述服务器,包括:
将GRPC通信协议的调用方法所需参数和接口地址进行序列化处理,得到序列化参数,并将所述序列化参数发送给所述服务器;
所述接收所述服务器发送的基于所述调用方法的返回值,对所述返回值进行解析,得到GRPC通信协议的调用方法的返回数据结构信息,包括:对所述返回值进行反序列化处理,以得到GRPC通信协议的调用方法的返回数据结构信息。
9.根据权利要求1-6任意一项所述的方法,其特征在于,所述方法还包括:
获取数据流标识;
基于所述数据流标识构建顺序数列,其中,所述顺序数列用于记录与所述服务器通信的数据流的位序。
10.一种基于GRPC通信协议进行通信的装置,其特征在于,包括:
第一发送模块,用于在内核层中与服务器建立连接后,向所述服务器发送通信数据要求;
第二发送模块,用于将GRPC通信协议的调用方法所需参数发送给所述服务器,其中,所述参数用于限定与所述服务器基于GRPC通信协议通信时使用调用方法所传递的参数;
解析模块,用于接收所述服务器反馈的基于所述调用方法的返回值,对所述返回值进行解析,得到GRPC通信协议的调用方法的返回数据结构信息,其中,所述返回数据结构信息用于指示与所述服务器基于GRPC通信协议通信时从所述服务器接收到的数据结构标准;其中,在与所述服务器进行基于所述GRPC通信协议通信时,按照所述调用方法所传递的参数配置传递数据,按照所述通信数据要求设置所述传递数据的格式。
11.一种电子设备,其特征在于,包括:处理器、存储器,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述机器可读指令被所述处理器执行时执行如权利要求1至9任意一项所述的方法的步骤。
12.一种计算机可读存储介质,其特征在于,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如权利要求1至9任意一项所述的方法的步骤。
CN202310153797.8A 2023-02-17 2023-02-17 基于grpc通信协议进行通信的方法、装置和电子设备 Pending CN116192950A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310153797.8A CN116192950A (zh) 2023-02-17 2023-02-17 基于grpc通信协议进行通信的方法、装置和电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310153797.8A CN116192950A (zh) 2023-02-17 2023-02-17 基于grpc通信协议进行通信的方法、装置和电子设备

Publications (1)

Publication Number Publication Date
CN116192950A true CN116192950A (zh) 2023-05-30

Family

ID=86436249

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310153797.8A Pending CN116192950A (zh) 2023-02-17 2023-02-17 基于grpc通信协议进行通信的方法、装置和电子设备

Country Status (1)

Country Link
CN (1) CN116192950A (zh)

Similar Documents

Publication Publication Date Title
US20220083326A1 (en) Upgrading method and system, server, and terminal device
CN107786331B (zh) 数据处理方法、装置、系统及计算机可读存储介质
CN110839004A (zh) 访问认证的方法和装置
CN110795741B (zh) 对数据进行安全性处理的方法和装置
CN112153015A (zh) 多重加密的接口认证方法、装置、设备和可读存储介质
CN111030827A (zh) 信息交互方法、装置、电子设备、及存储介质
CN111756751A (zh) 报文传输方法、装置及电子设备
CN113114646B (zh) 一种风险参数确定方法、装置、电子设备及存储介质
CN107682335B (zh) 数据传输方法、服务端以及计算机可读存储介质
CN113761566A (zh) 一种数据处理方法和装置
CN112613933A (zh) 发票数据处理方法、装置、存储介质及电子设备
CN116112172B (zh) Android客户端gRPC接口安全校验的方法和装置
CN107343001B (zh) 数据处理方法及装置
CN109995534B (zh) 一种对应用程序进行安全认证的方法和装置
CN116192950A (zh) 基于grpc通信协议进行通信的方法、装置和电子设备
CN113472785B (zh) 数据处理方法、装置、电子设备及可读存储介质
CN115694873A (zh) 一种在容器中获取https明文数据的方法、装置、设备
CN113037760B (zh) 报文发送方法和装置
CN115001828A (zh) 交易数据的安全访问方法、系统、电子设备及介质
CN114978769A (zh) 单向导入装置、方法、介质、设备
CN114285890A (zh) 云平台连接方法、装置、设备及存储介质
CN113992734A (zh) 会话连接方法及装置、设备
CN113347019B (zh) 一种隔离集群的报警消息处理方法、系统和计算机设备
US11777997B2 (en) Method, apparatus, device and storage medium of data acquisition
CN113676482B (zh) 数据传输系统和方法与基于双层ssl的数据传输系统和方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination