基于tcp通信自定义协议的配置方法

文档序号:195763 发布日期:2021-11-02 浏览:20次 >En<

阅读说明:本技术 基于tcp通信自定义协议的配置方法 (Configuration method based on TCP communication custom protocol ) 是由 龚徐建 徐赟 吴剑锋 徐宏 王家良 于 2021-06-25 设计创作,主要内容包括:本发明公开了基于TCP通信自定义协议的配置方法,通过客户端连接服务端成功建立TCP通信;之后客户端或服务端通过心跳机制维持TCP长连接,心跳消息传输采用步骤三消息格式;再之后客户端或服务端通过TCP长连接进行数据传输,数据传输协议采用自定义协议数据;之后客户端或服务端对数据按照上述自定义协议格式进行解析,根据消息体签名验证消息体数据是否完整,若根据预设规则校验通过,则执行步骤五,否则终止处理流程,响应客户端或服务端;最后客户端或服务端对已正常解析消息体数据进行SM4解密,按照指令类型执行相应处理,处理完成,响应客户端或服务端。实现通信协议的友好配置,也能对相关消息进行合理加密,防止窥视。(The invention discloses a configuration method based on a TCP communication custom protocol, which is characterized in that a client is connected with a server to successfully establish TCP communication; then the client or the server maintains TCP long connection through a heartbeat mechanism, and the heartbeat message transmission adopts a message format of the third step; then the client or the server transmits data through TCP long connection, and the data transmission protocol adopts custom protocol data; then the client or the server analyzes the data according to the self-defined protocol format, verifies whether the message body data is complete according to the message body signature, if the message body data passes the verification according to a preset rule, executes the step five, otherwise, terminates the processing flow and responds to the client or the server; and finally, the client or the server decrypts the SM4 on the normally analyzed message body data, executes corresponding processing according to the instruction type, completes the processing and responds to the client or the server. And friendly configuration of a communication protocol is realized, and related messages can be reasonably encrypted to prevent peeking.)

基于TCP通信自定义协议的配置方法

技术领域

本发明属于协议配置领域,涉及TCP通信技术,具体是基于TCP通信自定义协议的配置方法。

背景技术

众所周知,当前是个信息时代,信息的价值在于能够传输和交换,不管是日常事务还是计算机本身,如果没有数据的交互这将使得互联网变得毫无价值。信息的传递必然伴随着传递方式的约定,而且对于不同的场景约定也会有所不同,虽然当前已经存在了诸多协议来解决各种场景的数据传输问题,但是众口难调,无法一规以蔽之。于是日益增长的网络传输需要和落后的现实之间的矛盾油然而生。于是面对不同的场景不同的需求,协议“定制”就显得灵活和必要。

公开号为CN103428839A的专利公开了一种TCP命令字的处理方法及装置,用以保障发送端的工作性能,进而保障系统的整体性能。该方法为:发送端向接收端不连续发送数据,以及接收接收端返回的TCP命令字,其中,发送端针对接收端在无数据发送的初始时刻开始的第M个子帧之后的连续L+1个子帧上发送的TCP命令字不进行响应,以及发送端针对接收端发送的其他TCP命令字进行响应,其中,M为接收端针对TCP命令字的反馈时延,L为发送端相对于接收端无数据发送的子帧数目。这样,既可以保证链路性能,又能够最大程度地避免发送功率出现过高、过低或者波动现象,进而有效保障了发送端的工作性能,以及保障了系统的整体性能。

但是,该系列专利中,缺乏自定义协议格式,且该自定义协议格式对部分内容缺乏合理的加密处理;基于此,现提供一种解决方案。

发明内容

本发明的目的在于提供基于TCP通信自定义协议的配置方法。

本发明的目的可以通过以下技术方案实现:

基于TCP通信自定义协议的配置方法,包括如下步骤:

步骤一:Websocket客户端连接服务端成功建立TCP通信;

步骤二:客户端或服务端通过心跳机制维持TCP长连接,心跳消息传输采用步骤三消息格式;

步骤三:客户端或服务端通过TCP长连接进行数据传输,数据传输协议采用自定义协议数据;自定义协议数据包括消息头和消息体;

消息头由指令类型、消息体长度、消息体签名、消息体依次拼接;指令类型使用十六进制表示,字节数为两个字节;消息体长度描述消息体加密后的数据长度,字节数为四个字节;消息体签名描述消息体信息摘要,采用挑选性加密算法加密;消息体描述真实数据,采用国密SM4对称加密算法加密,字节数不定;

消息体为服务之间交互所发送或接受的加密数据,数据格式为json字符串,加密方式为SM4算法加密;

自定义协议数据由指令类型、消息体长度、消息体签名、消息体依次拼接,验证时需要依据上述格式依次解析校验;

步骤四:客户端或服务端对数据按照上述自定义协议格式进行解析,根据消息体签名验证消息体数据是否完整,若根据预设规则校验通过,则执行步骤五,否则终止处理流程,响应客户端或服务端;

步骤五:客户端或服务端对已正常解析消息体数据进行SM4解密,按照指令类型执行相应处理,处理完成,响应客户端或服务端。

进一步地,步骤三中,对消息体签名进行挑选性加密算法加密的具体过程为:

S1:获取到消息体签名,将其所有字符标记为Fi,i=1...n;其中Fi表示为消息体签名的第i个字符;

S2:之后获取到所有的标准参照表,标准参照表为所有作为消息体签名的内容的组成字符,所有字符采取无序的方式随机排列,每一个都具备有指定的序列号;

S3:之后获取到Fi,将Fi与标准参照表进行比对,得到对应的序列号,将对应序列号标记为Fi的列序值;

S4:对列序值进行从大到小的方式进行排序之后,按照该顺序给Fi进行重组,将得到的内容标记为核验签名,将核验签名和Fi融合。

进一步地,步骤三中,对消息体签名进行挑选性加密算法加密的具体过程为:

SS1:获取到消息体签名,将其所有字符标记为Fi,i=1...n;其中Fi表示为消息体签名的第i个字符;

SS2:之后获取到消息体签名Fi的时间戳,以月日时分的格式获取,将各个位置上的数值按照顺序依次标记为时间数字组T1-T8;

SS3:之后利用公式对时间数字组进行计算,得到剔除值Ct,具体计算公式为:

式中,QGZ表示为对括号内的数值取个位上的数值;

SS4:当Ct小于等于n时,获取到剔除值Ct;将消息体签名Fi按照次序排列,之后从i=1开始进行计数;

SS5:当i=Ct时,或者等于Ct的整数倍的对应值挑选出来,将对应的消息体签名Fi标记为剔除签名;

此处当Ct大于n时,则不采用上述方式,此时会自动对Ct进行重新赋值,具体赋值方式为:

将剔除值重新认定为:取余{Ct/n};得到新的剔除值,重新借助步骤S5的原理获取到所有的剔除签名;

SS6:去除掉对应的剔除签名,将剩余的标记为核验签名,将核验签名和Fi融合。

进一步地,步骤三中,对消息体签名进行挑选性加密算法加密的具体过程为:

S001:获取到消息体签名,将其所有字符标记为Fi,i=1...n;其中Fi表示为消息体签名的第i个字符;

S002:之后获取到消息体签名Fi的时间戳,以月日时分的格式获取,将各个位置上的数值按照顺序依次标记为时间数字组T1-T8;

S003:之后利用公式对时间数字组进行计算,得到剔除值Ct,具体计算公式为:

式中,QGZ表示为对括号内的数值取个位上的数值;

S004:获取到所有的标准参照表,标准参照表为所有作为消息体签名的内容的组成字符,所有字符采取无序的方式随机排列,每一个都具备有指定的序列号;

S005:将i+Ct,之后对应将i的消息体签名转换为对应标准参照表内序列号,对应的字符,得到新的字符构成的,得到新的内容标记为核验签名。

进一步地,步骤三中的,对消息体签名进行挑选性加密算法加密的具体过程为:

S01:将权利要求2到权利要求4的三种对消息体签名加密为核验签名的方式,依次标记为方式一、方式二和方式三;

S02:获取到消息体签名Fi的时间戳,以月日时分的格式获取,将各个位置上的数值按照顺序依次标记为时间数字组T1-T8;

S03:之后利用公式对时间数字组进行计算,得到剔除值Ct,具体计算公式为:

式中,QGZ表示为对括号内的数值取个位上的数值;

S04:当剔除值Ct为奇数时,选择方式一进行处理,得到核验签名;

当剔除值Ct为偶数时,选择方式二进行处理,得到核验签名;

当剔除值Ct为零时,选择方式三进行处理,得到核验签名。

进一步地,步骤四中的预设规则即为:

在检测到对应的核验签名和消息体签名的时候,自动借助挑选性加密算法再次对消息体签名进行相同处理,得到的内容标记为握手签名,只有在握手签名和核验签名一致时,才会验证消息体签名的可靠性。

本发明的有益效果:

本发明基于TCP通信自定义协议的配置方法,通过首先借助Websocket客户端连接服务端成功建立TCP通信;之后客户端或服务端通过心跳机制维持TCP长连接,心跳消息传输采用步骤三消息格式;再之后客户端或服务端通过TCP长连接进行数据传输,数据传输协议采用自定义协议数据;之后客户端或服务端对数据按照上述自定义协议格式进行解析,根据消息体签名验证消息体数据是否完整,若根据预设规则校验通过,则执行步骤五,否则终止处理流程,响应客户端或服务端;

最后客户端或服务端对已正常解析消息体数据进行SM4解密,按照指令类型执行相应处理,处理完成,响应客户端或服务端。实现通信协议的友好配置,也能对相关消息进行合理加密,防止窥视。

附图说明

为了便于本领域技术人员理解,下面结合附图对本发明作进一步的说明。

图1为本发明的数据处理流程图。

具体实施方式

如图1所示的数据处理流程,针对websocket全双工通信协议提供一种TCP自定义数据传输协议方法。

实施例一:该方法具体包括下述步骤:

步骤一:Websocket客户端连接服务端成功建立TCP通信。

步骤二:客户端或服务端通过心跳机制维持TCP长连接,心跳消息传输采用步骤三消息格式;

步骤三:客户端或服务端通过TCP长连接进行数据传输,数据传输协议如下述表一所示,由指令类型、消息体长度、消息体签名、消息体依次拼接;指令类型使用十六进制表示,字节数为两个字节;消息体长度描述消息体加密后的数据长度,字节数为4个字节;消息体签名描述消息体信息摘要,采用挑选性加密算法加密;消息体描述真实数据,采用国密SM4对称加密算法加密,字节数不定;

协议自定义格式:

表1

上述表1协议格式分为两部分:

第一,消息头:

(1)指令类型:用于描述执行不同操作,使用十六进制表示。

(2)消息体长度:用于描述消息体加密后的数据长度。

(3)消息体签名:消息体进行挑选性加密算法进行加密,用于验证消息体是否完整。

第二,消息体:服务之间交互所发送或接受的加密数据,数据格式为json字符串,加密方式为SM4算法加密;

自定义协议数据由指令类型、消息体长度、消息体签名、消息体依次拼接,验证时需要依据上述格式依次解析校验;

步骤四:客户端或服务端对数据按照上述自定义协议格式进行解析,根据消息体签名验证消息体数据是否完整,若根据预设规则校验通过,则执行步骤五,否则终止处理流程,响应客户端或服务端;

步骤五:客户端或服务端对已正常解析消息体数据进行SM4解密,按照指令类型执行相应处理,处理完成,响应客户端或服务端;

通过上述数据处理流程方法,本方法满足了针对websocket通信中对TCP数据传输协议的定制,使TCP数据传输稳定性和安全性得到保证。

步骤三中,对消息体签名进行挑选性加密算法加密的具体过程为:

S1:获取到消息体签名,将其所有字符标记为Fi,i=1...n;其中Fi表示为消息体签名的第i个字符;

S2:之后获取到所有的标准参照表,标准参照表为所有作为消息体签名的内容的组成字符,所有字符采取无序的方式随机排列,每一个都具备有指定的序列号;

S3:之后获取到Fi,将Fi与标准参照表进行比对,得到对应的序列号,将对应序列号标记为Fi的列序值;

S4:对列序值进行从大到小的方式进行排序之后,按照该顺序给Fi进行重组,将得到的内容标记为核验签名,将核验签名和Fi融合;

步骤四中的预设规则即为:

在检测到对应的核验签名和消息体签名的时候,自动借助挑选性加密算法再次对消息体签名进行相同处理,得到的内容标记为握手签名,只有在握手签名和核验签名一致时,才会验证消息体签名的可靠性;

实施例二,本发明在实施时,

在实施例一的步骤三中,对消息体签名进行挑选性加密算法加密的具体过程还可以为:

S1:获取到消息体签名,将其所有字符标记为Fi,i=1...n;其中Fi表示为消息体签名的第i个字符;

S2:之后获取到消息体签名Fi的时间戳,以月日时分的格式获取,将各个位置上的数值按照顺序依次标记为时间数字组T1-T8;

S3:之后利用公式对时间数字组进行计算,得到剔除值Ct,具体计算公式为:

式中,QGZ表示为对括号内的数值取个位上的数值;

S4:当Ct小于等于n时,获取到剔除值Ct;将消息体签名Fi按照次序排列,之后从i=1开始进行计数;

S5:当i=Ct时,或者等于Ct的整数倍的对应值挑选出来,将对应的消息体签名Fi标记为剔除签名;

此处当Ct大于n时,则不采用上述方式,此时会自动对Ct进行重新赋值,具体赋值方式为:

将剔除值重新认定为:取余{Ct/n};得到新的剔除值,重新借助步骤S5的原理获取到所有的剔除签名;

S6:去除掉对应的剔除签名,将剩余的标记为核验签名,将核验签名和Fi融合;

步骤四中的预设规则即为:

在检测到对应的核验签名和消息体签名的时候,自动借助挑选性加密算法再次对消息体签名进行相同处理,得到的内容标记为握手签名,只有在握手签名和核验签名一致时,才会验证消息体签名的可靠性;

实施例三,本发明在实施时,

在实施例一的步骤三中,对消息体签名进行挑选性加密算法加密的具体过程还可以为:

S1:获取到消息体签名,将其所有字符标记为Fi,i=1...n;其中Fi表示为消息体签名的第i个字符;

S2:之后获取到消息体签名Fi的时间戳,以月日时分的格式获取,将各个位置上的数值按照顺序依次标记为时间数字组T1-T8;

S3:之后利用公式对时间数字组进行计算,得到剔除值Ct,具体计算公式为:

式中,QGZ表示为对括号内的数值取个位上的数值;

S4:获取到所有的标准参照表,标准参照表为所有作为消息体签名的内容的组成字符,所有字符采取无序的方式随机排列,每一个都具备有指定的序列号;

S5:将i+Ct,之后对应将i的消息体签名转换为对应标准参照表内序列号,对应的字符,得到新的字符构成的,得到新的内容标记为核验签名;

步骤四中的预设规则即为:

在检测到对应的核验签名和消息体签名的时候,自动借助挑选性加密算法再次对消息体签名进行相同处理,得到的内容标记为握手签名,只有在握手签名和核验签名一致时,才会验证消息体签名的可靠性;

实施例四,本发明在实施时,具体为:

S01:将实施例一到实施例三的三种对消息体签名加密为核验签名的方式,依次标记为方式一、方式二和方式三;

S02:获取到消息体签名Fi的时间戳,以月日时分的格式获取,将各个位置上的数值按照顺序依次标记为时间数字组T1-T8;

S03:之后利用公式对时间数字组进行计算,得到剔除值Ct,具体计算公式为:

式中,QGZ表示为对括号内的数值取个位上的数值;

S04:当剔除值Ct为奇数时,选择方式一进行处理,得到核验签名;

当剔除值Ct为偶数时,选择方式二进行处理,得到核验签名;

当剔除值Ct为零时,选择方式三进行处理,得到核验签名;

步骤四中的预设规则即为:

在检测到对应的核验签名和消息体签名的时候,自动借助挑选性加密算法再次对消息体签名进行相同处理,得到的内容标记为握手签名,只有在握手签名和核验签名一致时,才会验证消息体签名的可靠性。

以上内容仅仅是对本发明结构所作的举例和说明,所属本技术领域的技术人员对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,只要不偏离发明的结构或者超越本权利要求书所定义的范围,均应属于本发明的保护范围。

11页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:上传文件威胁检测方法及装置、计算机可读存储介质

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类