CN116996933A - 融合网关的控制方法、控制模块、融合网关以及存储介质 - Google Patents

融合网关的控制方法、控制模块、融合网关以及存储介质 Download PDF

Info

Publication number
CN116996933A
CN116996933A CN202310956048.9A CN202310956048A CN116996933A CN 116996933 A CN116996933 A CN 116996933A CN 202310956048 A CN202310956048 A CN 202310956048A CN 116996933 A CN116996933 A CN 116996933A
Authority
CN
China
Prior art keywords
message
protocol type
classification
packet
message packet
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
CN202310956048.9A
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.)
China Mobile Communications Group Co Ltd
China Mobile Information Technology Co Ltd
Original Assignee
China Mobile Communications Group Co Ltd
China Mobile Information Technology 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 China Mobile Communications Group Co Ltd, China Mobile Information Technology Co Ltd filed Critical China Mobile Communications Group Co Ltd
Priority to CN202310956048.9A priority Critical patent/CN116996933A/zh
Publication of CN116996933A publication Critical patent/CN116996933A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W28/00Network traffic management; Network resource management
    • H04W28/02Traffic management, e.g. flow control or congestion control
    • H04W28/06Optimizing the usage of the radio link, e.g. header compression, information sizing, discarding information
    • H04W28/065Optimizing the usage of the radio link, e.g. header compression, information sizing, discarding information using assembly or disassembly of packets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • 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/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/166IP fragmentation; TCP segmentation
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/24Accounting or billing

Abstract

本发明涉及通信技术领域,尤其涉及一种融合网关的控制方法、控制模块、融合网关以及存储介质。所述方法包括:在接收到的客户端发送的消息包时,根据所述消息包中的包头信息,确定所述消息包的协议类型;若所述协议类型为TCP协议类型,调用TCP协议消息分类组装策略对所述消息包执行消息分类组装操作;若所述协议类型为HTTP/2协议类型,调用HTTP/2协议消息分类组装策略对所述消息包执行消息分类组装操作;将执行完所述消息分类组装操作后的分类组装信息转发至服务端,其中,所述分类组装信息包括来自至少一种协议类型的消息包。旨在解决如何实现网关的网络链路复用的问题。

Description

融合网关的控制方法、控制模块、融合网关以及存储介质
技术领域
本发明涉及通信技术领域,尤其涉及一种融合网关的控制方法、控制模块、融合网关以及存储介质。
背景技术
在线通信计费系统主要分为4G(Fourth Generation,第四代移动通信系统)和5G(Fifth Generation,第五代移动通信系统)两大业务。4G计费业务基于TCP(TransmissionControl Protocol,传输控制协议)传输协议与网元设备完成四层通信传输,5G计费业务则基于HTTP/2(Hypertext Transfer Protocol Version2,第二代超文本传输协议)协议与网元设备完成七层通信传输。在开发在线通信计费系统时,通常是使用Netty框架(一种JAVA开源框架)作为4G和5G的底层通信开发框架。
相关技术方案中,在采用Netty框架创建Netty服务时,必须预先定义链路上要添加的Handler(一种用于处理异步消息的类),且所有的Handler在建立链路之后无法变更。当客户端发起消息请求时,客户端请求的消息必须经过链路上所有的Handler进行处理,如果客户端请求消息的协议类型不符合链路上预定义协议类型,Netty服务就无法正常处理该请求消息。
因此,由于4G和5G的数据通信协议不同,在Netty的类库中,TCP和HTTP/2的Handler都是各自独立的,两种协议无法在同一个连接通道上共享使用,存在网络链路复用困难的缺陷。
上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。
发明内容
本发明的主要目的在于提供一种融合网关的控制方法,旨在解决如何实现网关的网络链路复用的问题。
为实现上述目的,本发明提供的一种融合网关的控制方法,所述方法包括:
在接收到的客户端发送的消息包时,根据所述消息包中的包头信息,确定所述消息包的协议类型;
若所述协议类型为TCP协议类型,调用TCP协议消息分类组装策略对所述消息包执行消息分类组装操作;
若所述协议类型为HTTP/2协议类型,调用HTTP/2协议消息分类组装策略对所述消息包执行消息分类组装操作;
将执行完所述消息分类组装操作后的分类组装信息转发至服务端,其中,所述分类组装信息包括来自至少一种协议类型的消息包。
可选地,所述根据所述消息包中的包头信息,确定所述消息包的协议类型的步骤包括:
若所述包头信息中的body长度值为第一长度值,确定所述协议类型为所述TCP协议类型;
若所述包头信息中的所述body长度值为第二长度值,且所述包头信息中的流标识值为目标流标识值,确定所述协议类型为所述HTTP/2协议类型。
可选地,所述调用TCP协议消息分类组装策略对所述消息包执行消息分类组装操作的步骤包括:
读取所述包头信息中的字段长度,根据所述字段长度读取所述消息包中的数据实体,并在消息读取结束之后将所述数据实体的数据格式转换为目标格式,其中,所述数据实体的长度等于所述字段长度;
所述调用HTTP/2协议消息分类组装策略对所述消息包执行消息分类组装操作的步骤包括:
根据所述消息包中的流标识,确定所述消息包中的最末分帧消息是否已发送完毕,若发送完毕,根据所述流标识查找每一历史分帧消息,并在查找完成后将所有的分帧消息按照所述流标识中的顺序进行组装。
可选地,所述将执行完所述消息分类组装操作后的分类组装信息转发至服务端的步骤之前,还包括:
当消息传输过程中监测到网络状态置为异常状态时,根据所述协议类型,确定所述消息包对应的目标断点续传策略,所述目标断点续传策略包括TCP协议断点续传策略和HTTP/2协议断点续传策略;
在监测到所述网络状态置为正常状态时,基于所述目标断点续传策略,对所述消息包执行断点续传操作。
可选地,所述基于所述目标断点续传策略,对所述消息包执行断点续传操作的步骤包括:
若所述协议类型为所述TCP协议类型,获取第一MAP容器中记录的第一流标识,根据所述第一流标识的序号字段,确定所述消息包中未成功发送的目标分片信息,将所述目标分片信息继续发送至所述服务端;
若所述协议类型为所述HTTP/2协议类型,获取第二MAP容器中的第二流标识,根据所述第二流标识的序号字段,确定所述消息包中未成功发送的目标分帧消息,将所述目标分帧消息继续发送至服务端;
其中,所述第一流标识为消息包发送前,所述客户端在TCP消息结构体中预定义的流标识字段,所述第二流标识为所述消息包自带的流标识字段。
可选地,所述融合网关的控制方法还包括:
当接收到客户端发送的消息录制请求时,调用Pulsar生产者将所述消息包转发至Pulsar消息系统的第一Topic中,其中,所述Pulsar生产者从所述消息包中筛选出目标业务,并将所述目标业务对应的流量转发至所述客户端;
当接收到线下环境测试系统发送的待响应消息时,调用Pulsar消费者读取所述Pulsar消息系统的第二Topic中存储的消息包,根据所述消息包的所述协议类型,向所述协议类型对应的目标客户端转发所述待响应消息,并将所述待响应消息和所述消息包转发至所述Pulsar消息系统的第三Topic中。
可选地,所述将执行完所述消息分类组装操作后的分类组装信息转发至服务端的步骤之后,还包括:
将所述分类组装信息以Schema格式存储于内存中,以在接收到所述客户通过HTTP/1.1协议发送的查询请求时,通过Trino创建消息Connector查询所述Schema格式的所述分类组装信息。
此外,为实现上述目的,本发明还提供一种融合网关的控制模块,所述融合网关的控制模块包括:
消息协议类型确定单元,用于在接收到的客户端发送的消息包时,根据所述消息包中的包头信息,确定所述消息包的协议类型;
消息分类组装单元,用于在所述协议类型为TCP协议类型时,调用TCP协议消息分类组装策略对所述消息包执行消息分类组装操作;以及用于在所述协议类型为HTTP/2协议类型时,调用HTTP/2协议消息分类组装策略对所述消息包执行消息分类组装操作;
消息转发单元,用于将执行完所述消息分类组装操作后的分类组装信息转发至服务端,其中,所述分类组装信息包括来自至少一种协议类型的消息包。
此外,为实现上述目的,本发明还提供一种融合网关,所述融合网关包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的融合网关的控制程序,所述融合网关的控制程序被所述处理器执行时实现如上所述的融合网关的控制方法的步骤。
本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质上存储有融合网关的控制程序,所述融合网关的控制程序被处理器执行时实现如上所述的融合网关的控制方法的步骤。
附图说明
图1为本发明实施例涉及的融合网关的硬件运行环境的架构示意图;
图2为本发明融合网关的控制方法的第一实施例的流程示意图;
图3为本发明融合网关的控制方法的第二实施例的流程示意图;
图4为本发明融合网关的控制方法的第三实施例的流程示意图;
图5为本发明融合网关的控制方法的第四实施例的流程示意图;
图6为本发明融合网关的控制方法的第五实施例的流程示意图;
图7为本发明融合网关的控制模块的架构示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图作进一步说明。
具体实施方式
本申请提供一种融合网关,能够在同一链路上同时接收TCP协议和HTTP/2协议两种协议的消息包,并且能够分别对TCP协议的消息包和HTTP/2协议的消息包进行消息组装,并向服务端转发消息组装之后的消息。
相较于传统的必须设置两个支持不同协议的网关来进行消息的接收和转发,本申请在同一个融合网关中同时接收4G消息和5G消息,并能够将两种消息组装后进行转发,降低了在实际应用场景中网关的主机硬件资源投入的成本。并且,在目前全国正逐渐普及5G的趋势下,网关的多协议融合技术还将拓展应用在综合流量网关、能力运营中心等多协议流量聚合场景,借助该技术优化部署架构,实现占用资源的优化与降低系统流量通路的复杂性。
为了更好地理解上述技术方案,下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整地传达给本领域的技术人员。
作为一种实现方案,图1为本发明实施例方案涉及的融合网关的硬件运行环境的架构示意图。
如图1所示,该融合网关可以包括:处理器1001,例如CPU,存储器1005,用户接口1003,网络接口1004,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的融合网关架构并不构成对融合网关限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及融合网关的控制程序。其中,操作系统是管理和控制融合网关的硬件和软件资源的程序,融合网关的控制程序以及其他软件或程序的运行。
在图1所示的融合网关中,用户接口1003主要用于连接终端,与终端进行数据通信;网络接口1004主要用于后台服务器,与后台服务器进行数据通信;处理器1001可以用于调用存储器1005中存储的融合网关的控制程序。
在本实施例中,融合网关包括:存储器1005、处理器1001及存储在所述存储器上并可在所述处理器上运行的融合网关的控制程序,其中:
处理器1001调用存储器1005中存储的融合网关的控制程序时,执行以下操作:
在接收到的客户端发送的消息包时,根据所述消息包中的包头信息,确定所述消息包的协议类型;
若所述协议类型为TCP协议类型,调用TCP协议消息分类组装策略对所述消息包执行消息分类组装操作;
若所述协议类型为HTTP/2协议类型,调用HTTP/2协议消息分类组装策略对所述消息包执行消息分类组装操作;
将执行完所述消息分类组装操作后的分类组装信息转发至服务端,其中,所述分类组装信息包括来自至少一种协议类型的消息包。
处理器1001调用存储器1005中存储的融合网关的控制程序时,执行以下操作:
若所述包头信息中的body长度值为第一长度值,确定所述协议类型为所述TCP协议类型;
若所述包头信息中的所述body长度值为第二长度值,且所述包头信息中的流标识值为目标流标识值,确定所述协议类型为所述HTTP/2协议类型。
处理器1001调用存储器1005中存储的融合网关的控制程序时,执行以下操作:
读取所述包头信息中的字段长度,根据所述字段长度读取所述消息包中的数据实体,并在消息读取结束之后将所述数据实体的数据格式转换为目标格式,其中,所述数据实体的长度等于所述字段长度;
根据所述消息包中的流标识,确定所述消息包中的最末分帧消息是否已发送完毕,若发送完毕,根据所述流标识查找每一历史分帧消息,并在查找完成后将所有的分帧消息按照所述流标识中的顺序进行组装。
处理器1001调用存储器1005中存储的融合网关的控制程序时,执行以下操作:
当消息传输过程中监测到网络状态置为异常状态时,根据所述协议类型,确定所述消息包对应的目标断点续传策略,所述目标断点续传策略包括TCP协议断点续传策略和HTTP/2协议断点续传策略;
在监测到所述网络状态置为正常状态时,基于所述目标断点续传策略,对所述消息包执行断点续传操作。
处理器1001调用存储器1005中存储的融合网关的控制程序时,执行以下操作:
若所述协议类型为所述TCP协议类型,获取第一MAP容器中记录的第一流标识,根据所述第一流标识的序号字段,确定所述消息包中未成功发送的目标分片信息,将所述目标分片信息继续发送至所述服务端;
若所述协议类型为所述HTTP/2协议类型,获取第二MAP容器中的第二流标识,根据所述第二流标识的序号字段,确定所述消息包中未成功发送的目标分帧消息,将所述目标分帧消息继续发送至服务端;
其中,所述第一流标识为消息包发送前,所述客户端在TCP消息结构体中预定义的流标识字段,所述第二流标识为所述消息包自带的流标识字段。
处理器1001调用存储器1005中存储的融合网关的控制程序时,执行以下操作:
当接收到客户端发送的消息录制请求时,调用Pulsar生产者将所述消息包转发至Pulsar消息系统的第一Topic中,其中,所述Pulsar生产者从所述消息包中筛选出目标业务,并将所述目标业务对应的流量转发至所述客户端;
当接收到线下环境测试系统发送的待响应消息时,调用Pulsar消费者读取所述Pulsar消息系统的第二Topic中存储的消息包,根据所述消息包的所述协议类型,向所述协议类型对应的目标客户端转发所述待响应消息,并将所述待响应消息和所述消息包转发至所述Pulsar消息系统的第三Topic中。
处理器1001调用存储器1005中存储的融合网关的控制程序时,执行以下操作:
将所述分类组装信息以Schema格式存储于内存中,以在接收到所述客户通过HTTP/1.1协议发送的查询请求时,通过Trino创建消息Connector查询所述Schema格式的所述分类组装信息。
基于上述基于通信技术的融合网关的硬件架构,提出本发明融合网关的控制方法的实施例。
参照图2,在第一实施例中,所述融合网关的控制方法包括以下步骤:
步骤S10,在接收到的客户端发送的消息包时,根据所述消息包中的包头信息,确定所述消息包的协议类型;
在本实施例中,消息包上设置有一预设的包头信息,包头信息用于供融合网关识别该消息是哪种协议类型的消息。其中,协议类型包括TCP协议类型和HTTP/2协议类型,客户端通过TCP协议类型发送的消息为4G消息,通过HTTP/2协议类型发送的消息为5G消息。
可选地,对于如何编辑包头信息,在融合网关中预先分别定义TCP协议的proto文件(一种消息的协议文件),对proto文件进行Protobuf序列化,并在Protobuf序列化前,加上一个自定义的消息包头,通过消息包头中的信息去确定消息包的传输协议类型。
步骤S20,若所述协议类型为TCP协议类型,调用TCP协议消息分类组装策略对所述消息包执行消息分类组装操作;
步骤S30,若所述协议类型为HTTP/2协议类型,调用HTTP/2协议消息分类组装策略对所述消息包执行消息分类组装操作;
在本实施例中,融合网关中预设有针对两种不同协议类型对应的消息分类组装策略,其中,TCP协议类型对应TCP协议消息分类组装策略;HTTP/2协议类型对应HTTP/2协议消息分类组装策略,当确定出消息包的协议类型之后,调用协议类型对应的消息分类组装策略来进行消息分类组装。
需要说明的是,针对不同协议的分类组装策略,对应的消息分类组装操作也是不同的,其中具体的消息分类组装策略将在后续实施例中详述,此处不再赘述。
需要说明的是,由于消息包只能通过TCP协议类型和HTTP/2协议类型的其中一种协议类型进行传输,不会出现一个消息包同时包含两种协议类型的情况,因此融合网关在对同一个消息包执行消息分类组装操作时,只会调用一种策略进行组装。
步骤S40,将执行完所述消息分类组装操作后的分类组装信息转发至服务端,其中,所述分类组装信息包括来自至少一种协议类型的消息包。
在本实施例中,将消息组装完成之后得到的分类组装信息,转发给服务端。
需要说明的是,分类组装信息由至少两个消息包组装构成,且分类组装信息中包括来自至少一种协议类型的消息包,即,可以只包括来自TCP协议或HTTP/2协议的消息包,也可以同时包括来自TCP协议和HTTP/2协议两种不同协议的消息包。
可选地,服务端可以为流量计费系统、交换机等。
需要说明的是,本实施例中,服务端也需要具备对分类组装信息,基于不同的策略来进行识别的能力。
下面以Netty架构搭建的服务端为例进行示例性说明:
示例性地,假设分类组装信息同时包含来自TCP协议和HTTP/2协议两种不同协议的消息包。服务端具备4G接收模块和5G接收模块。
4G消息识别模块识别出分类组装信息中的4G消息的数据流,将数据流转换为对象方式得到解码后的Object,在响应给网元时,4G消息识别模块将Object编码序列化为数据流再返回给客户端。
5G接收模块识别出分类组装信息中的5G消息中的数据流,由于5G消息的发送是分帧发送的,因此5G接收模块接收到的5G消息是分帧接收的,在接收时将同一个StreamId标识的5G分帧消息进行组装完成之后才进行业务处理。
在本实施例提供的技术方案中,通过在同一个融合网关中同时接收4G消息和5G消息,并能够将两种消息组装后进行转发,降低了在实际应用场景中网关的主机硬件资源投入的成本,达到了优化占用资源的以及降低系统流量通路的复杂性的效果。
进一步的,在本实施例中,所述步骤S10包括:
步骤S11,若所述包头信息中的body长度值为第一长度值,确定所述协议类型为所述TCP协议类型;
步骤S12,若所述包头信息中的所述body长度值为第二长度值,且所述包头信息中的流标识值为目标流标识值,确定所述协议类型为所述HTTP/2协议类型。
可选地,在本实施例进一步给出包头信息的具体定义方式。消息包头可以包括序列化的长度信息和包头类型信息。长度信息用于判断消息包是否出现半包和/或粘包,包头类型则是用于定义消息包的Protobuf类型。
示例性地,包头信息可以为4字节包头,其格式可以参照下表:
在本实施例中,对TCP协议类型的判断,是根据包头信息中的body长度值去判断,当消息包中的包头信息中的body长度值,为表征为TCP协议对应的包头信息的长度值,即第一长度值时,则判断该消息包的传输协议类型为TCP协议类型。
在本实施例中,对HTTP/2协议类型的判断,则是根据包头信息中的body长度值和流标识值去判断,当消息包中的包头信息中的body长度值,为表征为HTTP/2协议对应的body长度值的第二长度值,且流标识值表征为HTTP/2协议对应的目标流标识值时,则判断该消息包的传输协议类型为HTTP/2协议类型。
示例性地,设TCP协议类型的消息包的proto文件的定义如下:
其中,第一长度值=2,消息类型msgType为1。
示例性地,设HTTP/2协议类型的消息包的proto文件的定义如下:
其中,第二长度值=3,目标标识值=2,消息类型msgType与TCP的相同,均为1。
在本实施例提供的技术方案中,通过body长度值和/或流标识值来判断消息包的协议类型,实现在同一个网关中对两种协议的消息包进行识别,从而达到网关链路复用的效果。
参照图3,基于任一实施例,在第二实施例中,所述步骤S20包括:
步骤S21,读取所述包头信息中的字段长度,根据所述字段长度读取所述消息包中的数据实体,并在消息读取结束之后将所述数据实体的数据格式转换为目标格式,其中,所述数据实体的长度等于所述字段长度;
作为一可选实施例,在本实施例中,TCP协议消息分类组装策略可以为:读取包头信息中的字段长度,持续读取满足该字段长度对应的消息体中的数据实体,直到读取数据的长度等于消息头中字段长度。
在消息读取结束之后,将数据格式转换为目标格式,其中,目标格式可以为字符串格式,原始的数据格式可以为二进制格式。
进一步的,在本实施例中,所述步骤S30包括:
步骤S31,根据所述消息包中的流标识,确定所述消息包中的最末分帧消息是否已发送完毕,若发送完毕,根据所述流标识查找每一历史分帧消息,并在查找完成后将所有的分帧消息按照所述流标识中的顺序进行组装。
在本实施例中,由于HTTP/2协议是将一个完整的5G消息分帧发送,一条5G消息会拆分成多个分帧消息在链路上传输,每个分帧由消息的分为Header帧和Data帧组成。因此HTTP/2协议消息分类组装策略是将同一个StreamId标识的分帧消息进行组装,从而组装成一条完整的消息。
首先,根据消息包中的流标识(StreamId),确定所述消息包中的最末分帧消息是否已发送完毕。具体的,在网关上预先定义一个存放HTTP/2消息的结构体,在这个结构体中包含了Header帧和Data帧、消息的唯一的流标识StreamId、URI、更新时间。由于5G消息较大,一个消息包会多个帧消息进行发送,每个分帧消息上设有一个唯一的流标识,并且各个流标识之间存在顺序,最后一个发送的流标识(即最末分帧消息)会包含流消息结束标识,融合网关根据该流消息结束标识判断该消息包的所有分帧已接收完毕。
然后,在发送完毕后,根据流标识查找每一历史分帧消息,并在查找完成后将所有的分帧消息按照所述流标识中的顺序进行组装。具体的,历史分帧消息为同一个消息包下历史时刻接收到的分帧消息,历史分帧消息的存储位置,可以通过在HashMap(一种基于哈希表的Map接口)进行查找。
当融合网关识别到当前接收到的分帧消息中包含有流消息结束标识,则意味最后一分帧消息已接收完毕,融合网关通过StreamId标识到HashMap中查找同一的父StreamId的所有的分帧消息,并与所有的分帧消息组装成一条完整的消息。
此外,可选地,5G消息在使用HTTP/2协议时请求的数据报文格式通常是JSON,在拼接得到一条完整的消息之后,融合网关通过消息管理器对拼接完的该5G消息作有效性验证,如果是该消息体的字符格式,验证为一个有效的JSON字符串,则继续进行业务处理,否则认定该消息是一条无效的消息,不作后续的处理。
在本实施例提供的技术方案中,提供了TCP协议消息分类组装策略和HTTP/2协议消息分类组装策略,两种不同组装策略的具体实现,实现在同一个网关中对两种协议的消息包进行识别后分别进行消息组装,从而达到网关链路复用的效果。
参照图4,基于任一实施例,在第三实施例中,所述步骤S40之前,还包括:
步骤S50,当消息传输过程中监测到网络状态置为异常状态时,根据所述协议类型,确定所述消息包对应的目标断点续传策略,所述目标断点续传策略包括TCP协议断点续传策略和HTTP/2协议断点续传策略;
步骤S60,在监测到所述网络状态置为正常状态时,基于所述目标断点续传策略,对所述消息包执行断点续传操作。
作为一可选实施例,使用TCP和HTTP/2协议传输数据时,可能会由于传输过程出现网络异常,而导致消息传输中断,出现最终接收到的消息不完整的情形,为了避免这种情形,常见的方案是在网络恢复正常后,将整条消息再次全量发送给服务端,但这样做必然会造成网关转发的流量大于客户端实际所用的流量,因此,为了提高资源的利用率,本实施例提供一种断点续传的方案。
在本实施例中,针对TCP协议和HTTP/2协议,分别设置TCP协议断点续传策略和HTTP/2协议断点续传策略。当监测到消息传输过程中监测到网络状态置为异常状态时,此时根据消息包的协议类型确定选用哪种类型的目标断点续传策略,在监测到所述网络状态置为正常状态时,基于目标断点续传策略,对所述消息包执行断点续传操作。
进一步的,在本实施例中,所述步骤S60包括:
步骤S61,若所述协议类型为所述TCP协议类型,获取第一MAP容器中记录的第一流标识,根据所述第一流标识的序号字段,确定所述消息包中未成功发送的目标分片信息,将所述目标分片信息继续发送至所述服务端;
在本实施例中,若协议类型为TCP协议类型,由于传统的TCP协议在传输4G消息过程中,并不会为4G消息包上设置流标识,因此,本实施例中,4G消息上的第一流标识为消息包发送前,客户端在TCP消息结构体中预定义的流标识字段。可选地,第一流标识的属性值可以由客户端随机生成UUID进行填充。
需要说明的是,MAP容器是一种关联容器,它存储一组键-值对(kEY-VALUEpairs),并根据键来进行快速的查找。Map中的键是唯一的,每个键对应一个值,且MAP容器中的元素是按照键的大小进行有序存储的。
在本实施例中,在数据传输过程中,融合网关为TCP协议的消息在内存中开辟一个MAP容器,作为第一MAP容器,其中KEY是第一流标识(StreamId1),VALUE是分片消息。服务端在接收到消息时,首先读取消息头中的长度字段。基于长度字段,设定分割消息分片的基数,在分割消息之后,给每个分片的添加一个序号,序号按照严格的顺序递增。
在做完前述的准备工作之后,如果在消息接收的过程中出现网络异常,同一个StreamId下的分片消息没有完全接收,在网络恢复之后,网关根据序号字段判断是否还有剩余的未成功发送的分片消息,若有,则将该序号字段的下一连续字段的分片消息,并将该分片消息继续发送至服务端。
步骤S62,若所述协议类型为所述HTTP/2协议类型,获取第二MAP容器中的第二流标识,根据所述第二流标识的序号字段,确定所述消息包中未成功发送的目标分帧消息,将所述目标分帧消息再次发送至服务端;
在本实施例中,第二流标识为消息包自带的流标识字段,HTTP/2协议会自动为消息包中的每一分帧消息分配一流标识字段,用于标记每个分帧属于哪个流,分帧之间是有严格顺序的。
在本实施例中,融合网关在内存中开辟一个MAP容器,作为第二MAP容器,其中KEY是StreamId,VALUE是分帧消息。如果同一个StreamId的分帧消息在传输的过程中出现网络异常,在客户端与网关重新建立连接之后,网关通知客户端将同一个StreamId剩下未成功发送的分帧消息再次发送给网关,由网关将分帧消息转发给服务端。
在本实施例提供的技术方案中,使用TCP和HTTP/2协议传输数据时,可能会由于传输过程出现网络异常,而导致消息传输中断,出现最终接收到的消息不完整的情形。为了避免这种情形,在实现网关链路复用的基础上提出一种断点续传方式,从而达到消息收发可靠的同时避免计算消息重复的效果。
参照图5,基于任一实施例,在第四实施例中,所述融合网关的控制方法还包括:
步骤S701,当接收到客户端发送的消息录制请求时,调用Pulsar生产者将所述消息包转发至Pulsar消息系统的第一Topic中,其中,所述Pulsar生产者从所述消息包中筛选出目标业务,并将所述目标业务对应的流量转发至所述客户端;
步骤S702,当接收到线下环境测试系统发送的待响应消息时,调用Pulsar消费者读取所述Pulsar消息系统的第二Topic中存储的消息包,根据所述消息包的所述协议类型,向所述协议类型对应的目标客户端转发所述待响应消息,并将所述待响应消息和所述消息包转发至所述Pulsar消息系统的第三Topic中。
作为一可选实施例,本实施例中还提供一种线上的真实流量复制到线下环境,以及复制线上流量的响应的方式。
Pulsar消息系统是一种分布式消息系统,以高吞吐量、低延迟和可靠性为特点,被广泛应用于处理大规模的实时数据流场景。Pulsar消息系统的核心组件之一为消息传递引擎,其负责管理和传递消息。消息传递引擎由多个组件组成,包括Pulsar生产者、Pulsar消费者和代理。Pulsar生产者负责将消息发送到Pulsar集群,Pulsar消费者负责从集群中接收和处理消息,代理则负责管理消息的路由和转发。
在本实施例中,对于如何将线上的真实流量复制到线下环境。具体的,将融合网关与Pulsar建立连接,创建Pulsar生产者,将消息包转发至第一Topic中存储。接着,在Pulsar生产者上添加流量过滤器,流量过滤器从收到的消息中筛选出目标业务的流量转发给发送消息录制请求的客户端,可选地,目标业务可以包括IMS(IP Multimedia Subsystem,IP多媒体子系统)业务和短视频业务。
在本实施例中,对于如何将复制线上流量的响应。具体的,需要预先将融合网关与Pulsar建立连接,创建Pulsar消费者,并与线下环境进行绑定,创建第二Topic来存储消息包,以使网关在接收到复制线上流量的响应请求时,从第二Topic中读取消息包来进行线上流量复制。
在预先准备操作完成后,调用Pulsar消费者读取所述Pulsar消息系统的第二Topic中存储的消息包,根据所述消息包的所述协议类型,向所述协议类型对应的目标客户端转发所述待响应消息,其中,TCP协议类型对应的客户端为支持4G消息的客户端,HTTP/2协议类型为支持5G消息的客户端。
需要说明的是,目标客户端可以同时支持4G消息和5G消息,但融合网关在进行复制线上流量响应的操作时只能同时对一种协议的消息进行复制。
最后,将所述待响应消息和所述消息包转发至所述Pulsar消息系统的第三Topic中,以使客户端读取第三Topic中存储的待响应消息和消息包进行后续的分析。
可选地,分析可以为验证融合网关的性能是否满足线上流量的要求。
在本实施例提供的技术方案中,通过在融合网关中加入线上流量复制和复制线上流量的响应功能,实现对消息包的录制回放,进一步将网关链路复用应用在各个场景中,提升了网关链路复用的适用性。
参照图6,基于任一实施例,在第五实施例中,所述步骤S40之后,还包括:
步骤S80,将所述分类组装信息以Schema格式存储于内存中,以在接收到所述客户通过HTTP/1.1协议发送的查询请求时,通过Trino引擎创建消息路由查询所述Schema格式的所述分类组装信息。
作为一可选实施例,本实施例还提供一种在融合网关中引入消息最终技术的方式,来实现观测在线消息内容。
在本实施例中,客户端请求的消息按照时间周期存储在融合网关的内存中,为了直观有效的观测到融合网关当前时间周期内接收到的消息详情,在融合网关端制定Schema格式的结构体,在Schema结构体中包含对消息实体快速检索的关键属性字段和接收消息的时间字段,根据关键属性字段和时间字段,查询指定区间范围的消息集合。
示例性地,Schema格式如下表所示:
字段名 说明
sourceType 数据源(4G/5G)
misdn 手机号码
orgText 原始数据
resText 新的数据
id 消息唯一标识
version 版本号
updateTime 更新时间
key1 关键字1
key2 关键字2
type 业务类型
将分类组装消息,按照上述Schema格式生成数据,存储在融合网关的内存中,网关提供HTTP/1.1协议访问Schema格式的数据,并通过Trino引擎创建消息路由查询数据,以按照Schema格式的字段进行多维统计查询分析、数据导出、以及消息追踪。
其中,Trino引擎为开源的分布式SQL查询引擎;消息路由用于不同地域之间消息的同步,保证地域之间的数据一致性和复制备份。
在本实施例提供的技术方案中,通过在融合网关中融入观测在线消息内容,将经过网关处理过的分类组装消息,以结构化的方式保留一个固定周期的数据集合内,支持通过OLAP在线分析引擎,以SQL查询数据,为融合网关提供了消息观测能力,提升了网关链路复用的适用性。
此外,参照图7,本实施例还提出一种融合网关的控制模块,所述融合网关的控制模块包括:
消息协议类型确定单元100,用于在接收到的客户端发送的消息包时,根据所述消息包中的包头信息,确定所述消息包的协议类型;
消息分类组装单元200,用于在所述协议类型为TCP协议类型时,调用TCP协议消息分类组装策略对所述消息包执行消息分类组装操作;以及用于在所述协议类型为HTTP/2协议类型时,调用HTTP/2协议消息分类组装策略对所述消息包执行消息分类组装操作;
消息转发单元300,用于将执行完所述消息分类组装操作后的分类组装信息转发至服务端,其中,所述分类组装信息包括来自至少一种协议类型的消息包。
此外,本领域普通技术人员可以理解的是实现上述实施例的方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成。该计算机程序包括程序指令,计算机程序可以存储于一存储介质中,该存储介质为计算机可读存储介质。该程序指令被融合网关中的至少一个处理器执行,以实现上述方法的实施例的流程步骤。
因此,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有融合网关的控制程序,所述融合网关的控制程序被处理器执行时实现如上实施例所述的融合网关的控制方法的各个步骤。
其中,所述计算机可读存储介质可以是U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、磁碟或者光盘等各种可以存储程序代码的计算机可读存储介质。
需要说明的是,由于本申请实施例提供的存储介质,为实施本申请实施例的方法所采用的存储介质,故而基于本申请实施例所介绍的方法,本领域所属人员能够了解该存储介质的具体结构及变形,故而在此不再赘述。凡是本申请实施例的方法所采用的存储介质都属于本申请所欲保护的范围。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
应当注意的是,在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的部件或步骤。位于部件之前的单词“一”或“一个”不排除存在多个这样的部件。本发明可以借助于包括有若干不同部件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (10)

1.一种融合网关的控制方法,其特征在于,应用于融合网关,所述融合网关的控制方法包括以下步骤:
在接收到的客户端发送的消息包时,根据所述消息包中的包头信息,确定所述消息包的协议类型;
若所述协议类型为TCP协议类型,调用TCP协议消息分类组装策略对所述消息包执行消息分类组装操作;
若所述协议类型为HTTP/2协议类型,调用HTTP/2协议消息分类组装策略对所述消息包执行消息分类组装操作;
将执行完所述消息分类组装操作后的分类组装信息转发至服务端,其中,所述分类组装信息包括来自至少一种协议类型的消息包。
2.如权利要求1所述的融合网关的控制方法,其特征在于,所述根据所述消息包中的包头信息,确定所述消息包的协议类型的步骤包括:
若所述包头信息中的body长度值为第一长度值,确定所述协议类型为所述TCP协议类型;
若所述包头信息中的所述body长度值为第二长度值,且所述包头信息中的流标识值为目标流标识值,确定所述协议类型为所述HTTP/2协议类型。
3.如权利要求1所述的融合网关的控制方法,其特征在于,所述调用TCP协议消息分类组装策略对所述消息包执行消息分类组装操作的步骤包括:
读取所述包头信息中的字段长度,根据所述字段长度读取所述消息包中的数据实体,并在消息读取结束之后将所述数据实体的数据格式转换为目标格式,其中,所述数据实体的长度等于所述字段长度;
所述调用HTTP/2协议消息分类组装策略对所述消息包执行消息分类组装操作的步骤包括:
根据所述消息包中的流标识,确定所述消息包中的最末分帧消息是否已发送完毕,若发送完毕,根据所述流标识查找每一历史分帧消息,并在查找完成后将所有的分帧消息按照所述流标识中的顺序进行组装。
4.如权利要求1至3任一项所述的融合网关的控制方法,其特征在于,所述将执行完所述消息分类组装操作后的分类组装信息转发至服务端的步骤之前,还包括:
当消息传输过程中监测到网络状态置为异常状态时,根据所述协议类型,确定所述消息包对应的目标断点续传策略,所述目标断点续传策略包括TCP协议断点续传策略和HTTP/2协议断点续传策略;
在监测到所述网络状态置为正常状态时,基于所述目标断点续传策略,对所述消息包执行断点续传操作。
5.如权利要求4所述的融合网关的控制方法,其特征在于,所述基于所述目标断点续传策略,对所述消息包执行断点续传操作的步骤包括:
若所述协议类型为所述TCP协议类型,获取第一MAP容器中记录的第一流标识,根据所述第一流标识的序号字段,确定所述消息包中未成功发送的目标分片信息,将所述目标分片信息继续发送至所述服务端;
若所述协议类型为所述HTTP/2协议类型,获取第二MAP容器中的第二流标识,根据所述第二流标识的序号字段,确定所述消息包中未成功发送的目标分帧消息,将所述目标分帧消息继续发送至服务端;
其中,所述第一流标识为消息包发送前,所述客户端在TCP消息结构体中预定义的流标识字段,所述第二流标识为所述消息包自带的流标识字段。
6.如权利要求1所述的融合网关的控制方法,其特征在于,所述融合网关的控制方法还包括:
当接收到客户端发送的消息录制请求时,调用Pulsar生产者将所述消息包转发至Pulsar消息系统的第一Topic中,其中,所述Pulsar生产者从所述消息包中筛选出目标业务,并将所述目标业务对应的流量转发至所述客户端;
当接收到线下环境测试系统发送的待响应消息时,调用Pulsar消费者读取所述Pulsar消息系统的第二Topic中存储的消息包,根据所述消息包的所述协议类型,向所述协议类型对应的目标客户端转发所述待响应消息,并将所述待响应消息和所述消息包转发至所述Pulsar消息系统的第三Topic中。
7.如权利要求1至3或5至6任一项所述的融合网关的控制方法,其特征在于,所述将执行完所述消息分类组装操作后的分类组装信息转发至服务端的步骤之后,还包括:
将所述分类组装信息以Schema格式存储于内存中,以在接收到所述客户通过HTTP/1.1协议发送的查询请求时,通过Trino创建消息Connector查询所述Schema格式的所述分类组装信息。
8.一种融合网关的控制模块,其特征在于,所述融合网关的控制模块包括:
消息协议类型确定单元,用于在接收到的客户端发送的消息包时,根据所述消息包中的包头信息,确定所述消息包的协议类型;
消息分类组装单元,用于在所述协议类型为TCP协议类型时,调用TCP协议消息分类组装策略对所述消息包执行消息分类组装操作;以及用于在所述协议类型为HTTP/2协议类型时,调用HTTP/2协议消息分类组装策略对所述消息包执行消息分类组装操作;
消息转发单元,用于将执行完所述消息分类组装操作后的分类组装信息转发至服务端,其中,所述分类组装信息包括来自至少一种协议类型的消息包。
9.一种融合网关,其特征在于,所述融合网关包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的融合网关的控制程序,所述融合网关的控制程序被所述处理器执行时实现如权利要求1至7中任一项所述的融合网关的控制方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有融合网关的控制程序,所述融合网关的控制程序被处理器执行时实现如权利要求1至7中任一项所述的融合网关的控制方法的步骤。
CN202310956048.9A 2023-07-31 2023-07-31 融合网关的控制方法、控制模块、融合网关以及存储介质 Pending CN116996933A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310956048.9A CN116996933A (zh) 2023-07-31 2023-07-31 融合网关的控制方法、控制模块、融合网关以及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310956048.9A CN116996933A (zh) 2023-07-31 2023-07-31 融合网关的控制方法、控制模块、融合网关以及存储介质

Publications (1)

Publication Number Publication Date
CN116996933A true CN116996933A (zh) 2023-11-03

Family

ID=88529580

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310956048.9A Pending CN116996933A (zh) 2023-07-31 2023-07-31 融合网关的控制方法、控制模块、融合网关以及存储介质

Country Status (1)

Country Link
CN (1) CN116996933A (zh)

Similar Documents

Publication Publication Date Title
US11411897B2 (en) Communication method and communication apparatus for message queue telemetry transport
US20150237113A1 (en) Method and system for file transmission
US7676516B2 (en) System and method for the optimization of database access in data base networks
US9717011B2 (en) Event management in telecommunications networks
US10764228B1 (en) Automated message recall from a sender's device
JP6686033B2 (ja) メッセージをプッシュするための方法および装置
EP2795849B1 (en) Method and apparatus for messaging in the cloud
US8812718B2 (en) System and method of streaming data over a distributed infrastructure
CN105681462A (zh) 一种基于消息路由的集群系统及数据通信中转方法
US20220209878A1 (en) Method, system and device for pushing information, and storage medium thereof
CN108540367B (zh) 一种消息处理方法及系统
US8984100B2 (en) Data downloading method, terminal, server, and system
CN113556359B (zh) 一种通讯协议转换方法、设备、系统及网关设备
CN114338769A (zh) 访问请求的处理方法及装置
CN112019604B (zh) 边缘数据传输方法和系统
CN111614726B (zh) 一种数据转发方法、集群系统及存储介质
CN116723154A (zh) 一种基于负载均衡的路由分发方法及系统
CN113612811B (zh) 一种在多通道中客户端挂载的方法、系统、设备及介质
CN115113821B (zh) 基于量子加密的5g大数据算力服务系统
CN116996933A (zh) 融合网关的控制方法、控制模块、融合网关以及存储介质
US20200341968A1 (en) Differential Update of Local Cache from Central Database
CN112291350A (zh) 一种文件传输方法、系统、设备以及介质
US10616109B1 (en) System and method for web service atomic transaction (WS-AT) affinity routing
CN113067765B (zh) 一种多媒体消息监控方法、装置及设备
CN110855785B (zh) 一种数据处理的方法及装置

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