通信方法、系统和网络设备与流程

文档序号:23347272发布日期:2020-12-18 16:49阅读:93来源:国知局
通信方法、系统和网络设备与流程

本发明实施例涉及通信领域,特别涉及一种通信方法、系统和网络设备。



背景技术:

随着互联网云计算日益发达,面向服务的架构(service-orientedarchitecture,soa)被广泛应用于互联网应用的后台系统中。后台系统往往被拆分成不同功能的各种微服务,而每种微服务又被平衡扩展到多个服务器上,组成集群系统以提高服务的性能。目前服务间进行消息通信的机制主要是基于tcp协议的远程过程调用(remoteprocedurecall,rpc)机制。

基于tcp的rpc通信方式,发送一条消息,发送者与接收者之间需要建立连接的三次握手和结束连接的四次挥手,即完成一次请求应答需要9次以上的网络包同步传输。

然而,随着集群规模的逐渐变大,微服务拆分越来越细,服务间通信的流量大幅度增加。目前主流基于tcp的rpc通信方式存在延时高,系统开销大的缺点。



技术实现要素:

本发明实施方式的目的在于提供一种通信方法、系统和网络设备,使得通信过程延时低,开销少,传输效率高。

为解决上述技术问题,本发明的实施方式提供了一种通信方法,基于udp协议,包括:将待发送的消息按照预先定义的帧格式打包成数据帧,其中,所述数据帧中携带协议版本号,协议标识符,报文发送类型,源地址,目标地址和数据负载;根据所述源地址和所述目标地址,发送所述数据帧,其中,若所述源地址和所述目标地址处于同一网络,则通过明文方式发送所述数据帧至目标地址,若所述源地址和所述目标地址处于不同网络,则将所述数据帧发送至所述源地址所在网络的网关。

本发明的实施方式还提供了一种通信方法,基于udp协议,包括:接收已按照预先定义的帧格式打包的传输帧,其中,所述传输帧包括数据帧和控制帧,所述传输帧中携带协议版本号,协议标识符,报文发送类型,源地址,目标地址和数据负载;网关检查所述传输帧的报文发送类型和目标地址,并根据所述报文发送类型和所述目标地址执行相应的操作。

本发明的实施方式还提供了一种通信方法,基于udp协议,包括:接收已按照预先定义的帧格式打包的数据帧,其中,所述数据帧中携带协议版本号,协议标识符,报文发送类型,源地址,目标地址,序列号和数据负载;检查所述数据帧的序列号和源地址对,向所述源地址发送所述数据帧对应的ack控制帧。

本发明的实施方式还提供了一种通信系统,基于udp协议,包括:

发送端,用于将待发送的消息按照预先定义的帧格式打包成数据帧,其中,所述数据帧中携带协议版本号,协议标识符,报文发送类型,源地址,目标地址和数据负载,根据所述源地址和所述目标地址,发送所述数据帧,其中,若所述源地址和所述目标地址处于同一网络,则通过明文方式发送所述数据帧至位于目标地址的接收端,若所述源地址和所述目标地址处于不同网络,则将所述数据帧发送至所述源地址所在网络的网关;

网关,用于接收已按照预先定义的帧格式打包的传输帧,其中,所述传输帧包括数据帧和控制帧,所述传输帧中携带协议版本号,协议标识符,报文发送类型,源地址,目标地址和数据负载,网关检查所述传输帧的报文发送类型和目标地址;

接收端,用于接收已按照预先定义的帧格式打包的数据帧,其中,所述数据帧中携带协议版本号,协议标识符,报文发送类型,源地址,目标地址,序列号和数据负载,检查所述数据帧的序列号和源地址对,向所述源地址发送所述数据帧对应的ack控制帧。

本发明的实施方式还提供了一种网络设备,其特征在于,包括:

至少一个处理器;以及,

与所述至少一个处理器通信连接的存储器;其中,

所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行以上所述的通信方法。

本发明实施方式相对于现有技术而言,按照预先定义帧格式将消息进行打包发送,帧格式包括协议版本号,协议标识符,报文发送类型,源地址,目标地址和数据负载,整个过程基于udp协议,通信双方无需预先建立连接即可立即传输消息,延时低,开销少,传输效率高。

另外,本发明实施方式提供的通信方法,所述根据所述源地址和所述目标地址,发送所述数据帧之后,包括:将所述数据帧缓存到发送队列;启动发送超时定时器;检查发送超时定时器到期前是否收到根据所述数据帧返回的响应消息,其中,若所述发送超时定时器到期前未收到根据所述数据帧返回的响应消息,则重发所述缓存的数据帧,若所述发送超时定时器到期前已收到根据所述数据帧返回的响应消息,则清除所述缓存的数据帧和所述相应的发送超时定时器。利用发送超时定时器,根据到期前是否收到数据帧对应的响应消息判断数据帧是否发送成功,若超时未收到响应消息,则重传数据帧,保证通信过程高可靠。

另外,本发明实施方式提供的通信方法,所述网关检查所述传输帧的报文发送类型和目标地址,包括:若所述传输帧为数据帧且所述数据帧的目标地址和网关地址处于同一网络,则根据预先配置的密钥和算法对所述数据帧进行解密并验证处理;若所述传输帧为数据帧且所述数据帧的目标地址和网关地址处于不同网络,则根据预先配置的密钥和算法对所述数据帧进行签名和加密处理,并将所述加密后数据帧发送至所述目标地址所在网络的网关。网关隔离不同网络,数据帧在不同网络之间传输时,网关对数据帧进行加解密处理和验证处理,使得整个传输过程更加安全。

另外,本发明实施方式提供的通信方法,所述网关检查所述传输帧的报文发送类型和目标地址,根据所述目标地址将所述传输帧进行发送,包括:若所述传输帧为控制帧且所述控制帧的目标地址和网关地址处于同一网络,则直接将所述控制帧发送至所述目标地址;若所述传输帧为控制帧且所述控制帧的目标地址和网关地址处于不同网络,则将所述控制帧发送至所述目标地址所在网络的网关。网关隔离不同网络,使得整个传输过程更加安全。

另外,本发明实施方式提供的通信方法,所述根据预先配置的密钥和算法对所述数据帧进行解密并验证处理,包括:若验证所述数据帧的签名成功,则将解密后的数据帧转发至目标地址;若验证所述数据帧的签名失败,则丢弃所述数据帧。通过验证数据帧的签名,使得整个通信过程更加安全。

另外,本发明实施方式提供的通信方法,所述检查所述数据帧的序列号和源地址对,向源地址发送所述数据帧对应的ack控制帧,包括:若所述数据帧的序列号和源地址对没有在接收队列,则将所述数据帧中的数据负载提交上层应用进行处理,将所述序列号和源地址对放入接收队列,向源地址发送所述数据帧对应的ack控制帧;若所述数据帧的序列号和源地址已经在接收队列中,则只向源地址发送所述数据帧对应ack控制帧。通过把数据帧的序列号和源地址对放入接收队列,实现抗重放。

附图说明

一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。

图1是本发明的第一实施方式提供的通信方法的流程图;

图2是本发明的第二实施方式提供的通信方法的流程图;

图3是本发明的第三实施方式提供的通信方法的流程图;

图4是本发明的第四实施方式提供的通信方法的流程图;

图5是本发明的第五实施方式提供的通信系统的流程图;

图6是本发明的第一至第五实施方式采用的帧格式的结构示意图;

图7是本发明的第六实施方式提供的网络设备的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施方式进行详细的阐述。然而,本领域的普通技术人员可以理解,在本发明各实施方式中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请所要求保护的技术方案。以下各个实施例的划分是为了描述方便,不应对本发明的具体实现方式构成任何限定,各个实施例在不矛盾的前提下可以相互结合相互引用。

本发明的第一实施方式涉及一种通信方法,通信过程基于udp协议,具体流程如图1所示,包括:

步骤101,将待发送的消息按照预先定义的帧格式打包成数据帧,其中,数据帧中携带协议版本号,协议标识符,报文发送类型,源地址,目标地址和数据负载。

在本实施方式中,数据帧中的协议版本号字段和协议标识符字段用于标识协议类型,报文发送类型字段用于标识传输的报文类型,数据负载字段表示待发送的有效数据

步骤102,根据源地址和目标地址,发送数据帧,其中,若源地址和目标地址处于同一网络,则通过明文方式发送数据帧至目标地址,若源地址和目标地址处于不同网络,则将数据帧发送至源地址所在网络的网关。

在本实施方式中,通过明文方式发送数据帧至目标地址,则数据帧中的签名摘要字段设定为全零。

本发明实施方式相对于现有技术而言,按照预先定义帧格式将消息进行打包发送,帧格式包括协议版本号,协议标识符,报文发送类型,源地址,目标地址和数据负载,整个过程基于udp协议,通信双方无需预先建立连接即可立即传输消息,延时低,开销少,传输效率高。

本发明的第二实施方式涉及一种通信方法,通信过程基于udp协议,该方法与本发明的第一实施方式提供的通信方法基本相同,其区别在于,如图2所示,步骤102之后包括:

步骤201,将数据帧缓存到发送队列。

步骤202,启动发送超时定时器。

步骤203,检查发送超时定时器到期前是否收到根据数据帧返回的响应消息,其中,若发送超时定时器到期前未收到根据数据帧返回的响应消息,则重发缓存的数据帧,若发送超时定时器到期前已收到根据数据帧返回的响应消息,则清除缓存的数据帧和相应的发送超时定时器。

在本实施方式中,步骤203通过响应消息和数据帧中的序列号字段来判断响应消息是否为根据发送的数据帧返回的,即响应消息中的序列号字段和数据帧中的序列号字段相同,则数据帧和响应消息是匹配的。

本发明实施方式相对于现有技术而言,在实现第一实施方式带来的有益效果基础上,利用发送超时定时器,根据到期前是否收到数据帧对应的响应消息判断数据帧是否发送成功,若超时未收到响应消息,则重传数据帧,保证了通信过程高可靠。

需要说明的是,以上本发明的第一实施方式和第二实施方式涉及一种通信方法,具体应用在发送端,使得通信过程延时低,开销少,传输效率高。

本发明的第三实施方式涉及一种通信方法,通信过程基于udp协议,具体流程如图3所示,包括:

步骤301,接收已按照预先定义的帧格式打包的传输帧,其中,传输帧包括数据帧和控制帧,传输帧中携带协议版本号,协议标识符,报文发送类型,源地址,目标地址和数据负载。

步骤302,网关检查传输帧的报文发送类型和目标地址,并根据报文发送类型和目标地址执行相应的操作。

在本实施方式中,步骤302网关根据报文发送类型和目标地址执行相应的操作,具体包括:

若传输帧为数据帧且数据帧的目标地址和网关地址处于同一网络,则根据预先配置的密钥和算法对数据帧进行解密并验证处理;

具体地,在对数据帧中的签名摘要字段进行验证处理时,若验证数据帧的签名成功,则将解密后的数据帧转发至目标地址;若验证数据帧的签名失败,则丢弃数据帧。

若传输帧为数据帧且数据帧的目标地址和网关地址处于不同网络,则根据预先配置的密钥和算法对数据帧进行签名和加密处理,并将加密后数据帧发送至所述目标地址所在网络的网关。

需要说明的是,在本实施方式中,加密认证算法可以使用aes算法和hmac摘要算法,在签名加密过程中,将hmac摘要填入数据帧中的签名摘要字段,当然在实际使用过程中,也可以采用其他算法,此处不做一一赘述。

若所述传输帧为控制帧且所述控制帧的目标地址和网关地址处于同一网络,则直接将所述控制帧发送至所述目标地址;

若所述传输帧为控制帧且所述控制帧的目标地址和网关地址处于不同网络,则将所述控制帧发送至所述目标地址所在网络的网关。

本发明实施方式相对于现有技术而言,传输已按照预先定义的帧格式打包的传输帧,传输帧格式包括协议版本号,协议标识符,报文发送类型,源地址,目标地址和数据负载,整个过程基于udp协议,通信双方无需预先建立连接即可立即传输消息,延时低,开销少,传输效率高,进一步地,利用网关隔离了不同网络,数据帧在不同网络之间传输时,网关对数据帧进行加解密处理和验证处理,使得整个传输过程更加安全。

需要说明的是,本发明的第三实施方式涉及一种通信方法,具体应用在网关,保证通信过程的传输效率和安全性。

本发明的第四实施方式涉及一种通信方法,通信过程基于udp协议,具体流程如图4所示,包括:

步骤401,接收已按照预先定义的帧格式打包的数据帧,其中,数据帧中携带协议版本号,协议标识符,报文发送类型,源地址,目标地址,数据负载和序列号。

步骤402,检查数据帧的序列号和源地址对,向源地址发送数据帧对应的ack控制帧。

在本实施方式中,步骤402检查数据帧的序列号和源地址对,向源地址发送数据帧对应的ack控制帧,具体包括:

若数据帧的序列号和源地址对没有在接收队列,则将数据帧中的数据负载提交上层应用进行处理,将序列号和源地址对放入接收队列,向源地址发送数据帧对应的ack控制帧;

具体地,将数据帧中的数据负载提交上层应用进行处理,处理可以是显示消息内容,执行其他操作等,此处不做一一赘述。

需要说明的是,将序列号和源地址对放入接收队列中,接收队列会保存最近5分钟内的序列号和源地址对。

若数据帧的序列号和源地址已经在接收队列中,则只向源地址发送所述数据帧对应ack控制帧。

本发明实施方式相对于现有技术而言,接收已按照预先定义的帧格式打包的数据帧,数据帧格式包括协议版本号,协议标识符,报文发送类型,源地址,目标地址,数据负载和序列号,整个过程基于udp协议,通信双方无需预先建立连接即可立即传输消息,延时低,开销少,传输效率高,进一步地,在通信过程中采用将数据帧的序列号和源地址对放入接收队列中的方法,实现抗重放。

需要说明的是,本发明的第四实施方式涉及一种通信方法,应用在接收端,使得通信过程延时低,开销少,传输线效率高。

本发明的第五实施方式涉及一种通信系统,如图5所示,包括:

发送端501,用于将待发送的消息按照预先定义的帧格式打包成数据帧,其中,所述数据帧中携带协议版本号,协议标识符,报文发送类型,源地址,目标地址和数据负载,根据所述源地址和所述目标地址,发送所述数据帧,其中,若所述源地址和所述目标地址处于同一网络,则通过明文方式发送所述数据帧至位于目标地址的接收端503,若所述源地址和所述目标地址处于不同网络,则将所述数据帧发送至所述源地址所在网络的网关502;

网关502,用于接收已按照预先定义的帧格式打包的传输帧,其中,所述传输帧包括数据帧和控制帧,所述传输帧中携带协议版本号,协议标识符,报文发送类型,源地址,目标地址和数据负载,网关检查所述传输帧的报文发送类型和目标地址;

接收端503,用于接收已按照预先定义的帧格式打包的数据帧,其中,所述数据帧中携带协议版本号,协议标识符,报文发送类型,源地址,目标地址,序列号和数据负载,检查所述数据帧的序列号和源地址对,向所述源地址发送所述数据帧对应的ack控制帧。

需要说明的是,本发明第一至第四实施方式提供的通信方法和第五实施方式提供的通信系统中,采用的预先定义的帧格式如图6所示,包括:

协议标识符magicnumber,2字节长度,默认为0x4993。

协议版本号versionnumber,2字节长度。

目标ip地址destipaddr,4字节长度。

源ip地址srcipaddr,4字节长度。

目标udp端口号destport,2字节长度。

源主机的udp端口号srcport,2字节长度。

报文发送类型pt,4位长度,不同发送类型决定是否需要确认机制,以及是否阻塞等待,其中1表示非阻塞带确认,2表示非阻塞无确认,3表示阻塞带确认,4表示阻塞带回复。

f位:表示当前帧是否被分片。

p位:表示该帧是一个reply数据帧。

a位:表示该帧是ack控制帧。

r位:表示该帧是重传的数据帧。

帧的长度packetsize,从协议标识符到数据负载最后一个有效字节,不包括由于加密在数据负载后面添加的填充字节。

序列号sequencenumber,用于匹配ack帧与数据帧,有发送者按照顺序生成。

负载数据类型messagecode,由上层调用者指定。

签名摘要digest,针对payload数据的签名摘要,同时作为加密算法的初始向量输入,当该帧为明文时此字段为全零。

数据负载payload,当不需要进行加密验证处理时,该字段为明文。当需要进行加密验证时,明文负载先计算相应的签名摘要,然后使用全0填充字节补全到16字节倍数长度,再通过相应的加密算法进行加密处理,该字段为最后得到的密文。

本发明第六实施方式涉及一种网络设备,如图7所示,包括:

至少一个处理器701;以及,

与所述至少一个处理器701通信连接的存储器702;其中,

所述存储器702存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器701执行,以使所述至少一个处理器701能够执行本发明第一至第五实施方式所述的通信方法。

其中,存储器和处理器采用总线方式连接,总线可以包括任意数量的互联的总线和桥,总线将一个或多个处理器和存储器的各种电路连接在一起。总线还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路连接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口在总线和收发机之间提供接口。收发机可以是一个元件,也可以是多个元件,比如多个接收器和发送器,提供用于在传输介质上与各种其他装置通信的单元。经处理器处理的数据通过天线在无线介质上进行传输,进一步,天线还接收数据并将数据传送给处理器。

处理器负责管理总线和通常的处理,还可以提供各种功能,包括定时,外围接口,电压调节、电源管理以及其他控制功能。而存储器可以被用于存储处理器在执行操作时所使用的数据。

本领域的普通技术人员可以理解,上述各实施方式是实现本发明的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1