CN116233243A - 一种弱网环境下的通信系统及方法 - Google Patents
一种弱网环境下的通信系统及方法 Download PDFInfo
- Publication number
- CN116233243A CN116233243A CN202310218704.5A CN202310218704A CN116233243A CN 116233243 A CN116233243 A CN 116233243A CN 202310218704 A CN202310218704 A CN 202310218704A CN 116233243 A CN116233243 A CN 116233243A
- Authority
- CN
- China
- Prior art keywords
- message
- server
- receiving
- transmission protocol
- transmission
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/08—Protocols for interworking; Protocol conversion
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请公开了一种弱网环境下的通信系统及方法,涉及计算机技术领域。该系统包括:消息发送端,用于通过第一传输协议向中转服务器发送第一消息;中转服务器,用于接收消息发送端发送的第一消息;对第一消息进行传输格式转换,得到与第二传输协议对应的第二消息;通过第二传输协议向分布式消息服务器发送第二消息;分布式消息服务器,用于接收中转服务器发送的第二消息;基于第二消息对应的第一消息主题,将第二消息发送至多个消息接收服务器中与第一消息主题对应的目标接收服务器;消息接收服务器,用于接收分布式消息服务器传递的与第二传输协议对应的消息。该系统可以在实现双向通信时保证弱网环境下的消息传输效率。
Description
技术领域
本申请涉及计算机技术领域,特别涉及一种弱网环境下的通信系统及方法。
背景技术
消息中间件能够利用高效可靠的消息传递机制进行数据传输,常见的消息中间件如Nats、NSQ等。由于消息中间件支持发布-订阅的消息范式,因此消息中间件可以实现双向通信,即,第一端主动向消息中间件发送消息,由消息中间件将消息转发至第二端,从而实现第一端向第二端的消息传输,第二端也可以主动将消息发送至消息中间件,由消息中间件将消息转发至第一端,从而实现第二端向第一端的消息传输。
由于消息中间件是利用可靠的消息传递机制实现的平台,即,消息中间件的数据传输是基于传输控制协议(Transmission Control Protocol,TCP)实现的,而TCP在弱网环境下存在数据传输时延高的问题,因而当消息中间件所在的消息传输场景中网络环境较差则存在消息传输效率低的问题。
发明内容
本申请实施例提供了一种弱网环境下的通信系统及方法,可以在实现双向通信时保证弱网环境下的消息传输效率。所述技术方案如下:
一方面,提供了一种在弱网环境下的通信系统,所述系统包括:
消息发送端,用于通过第一传输协议向中转服务器发送第一消息,所述第一消息对应第一消息主题;
所述中转服务器,用于接收所述消息发送端发送的所述第一消息;对所述第一消息进行传输格式转换,得到与第二传输协议对应的第二消息,所述第一消息和所述第二消息为表达相同消息含义的不同传输格式的消息;通过所述第二传输协议向分布式消息服务器发送所述第二消息;
所述分布式消息服务器,用于接收所述中转服务器发送的所述第二消息,所述分布式消息服务器支持对所述第二传输协议对应的消息进行处理以及双向通信;基于所述第二消息对应的所述第一消息主题,将所述第二消息发送至多个消息接收服务器中与所述第一消息主题对应的目标接收服务器;
所述消息接收服务器,用于接收所述分布式消息服务器传递的与所述第二传输协议对应的消息。
另一方面,提供了一种在弱网环境下的通信方法,所述方法由分布式消息服务器执行,所述分布式消息服务器支持对第二传输协议对应的消息进行处理以及双向通信,所述方法包括:
接收中转服务器通过所述第二传输协议发送的第二消息,所述第二消息对应第一消息主题,所述第二消息是所述中转服务器在接收到消息发送端通过第一传输协议发送的第一消息后,对所述第一消息进行传输格式转换得到的与所述第二传输协议对应的消息,所述第一消息和所述第二消息为表达相同消息含义的不同传输格式的消息;
基于所述第二消息对应的所述第一消息主题,将所述第二消息发送至多个消息接收服务器中与所述第一消息主题对应的目标接收服务器。
另一方面,提供了一种在弱网环境下的通信方法,所述方法由中转服务器执行,所述方法包括:
接收消息发送端通过第一传输协议传输的第一消息,所述第一消息对应第一消息主题;
对所述第一消息进行传输格式转换,得到与第二传输协议传输格式对应的第二消息,所述第一消息和所述第二消息为表达相同消息含义的不同传输格式的消息,所述第二传输协议为分布式消息服务器支持的传输协议;
通过所述第二传输协议向所述分布式消息服务器发送所述第二消息,所述分布式消息服务器用于基于所述第二消息对应的所述第一消息主题,将所述第二消息发送至多个消息接收服务器中与所述第一消息主题对应的目标接收服务器,所述分布式消息服务器支持双向通信。
另一方面,提供了一种在弱网环境下的通信装置,所述装置支持对第二传输协议对应的消息进行处理以及双向通信,所述装置包括:
第一接收模块,用于接收中转服务器通过所述第二传输协议发送的第二消息,所述第二消息对应第一消息主题,所述第二消息是所述中转服务器在接收到消息发送端通过第一传输协议发送的第一消息后,对所述第一消息进行传输格式转换得到的与所述第二传输协议对应的消息,所述第一消息和所述第二消息为表达相同消息含义的不同传输格式的消息;
第一发送模块,用于基于所述第二消息对应的所述第一消息主题,将所述第二消息发送至多个消息接收服务器中与所述第一消息主题对应的目标接收服务器。
另一方面,提供了一种在弱网环境下的通信装置,所述装置包括:
第二接收模块,用于接收消息发送端通过第一传输协议传输的第一消息,所述第一消息对应第一消息主题;
转换模块,用于对所述第一消息进行传输格式转换,得到与第二传输协议传输格式对应的第二消息,所述第一消息和所述第二消息为表达相同消息含义的不同传输格式的消息,所述第二传输协议为分布式消息服务器支持的传输协议;
第二发送模块,用于通过所述第二传输协议向所述分布式消息服务器发送所述第二消息,所述分布式消息服务器用于基于所述第二消息对应的所述第一消息主题,将所述第二消息发送至多个消息接收服务器中与所述第一消息主题对应的目标接收服务器,所述分布式消息服务器支持双向通信。
另一方面,提供一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条程序代码,所述程序代码由处理器加载并执行以实现本申请实施例中任一所述的基于传输层协议的通信方法。
另一方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述实施例中任一所述的基于传输层协议的通信方法。
本申请的提供的技术方案至少包括以下有益效果:
消息发送端和消息接收服务器之间进行消息通信时,消息发送端通过第一传输协议将消息发送至中转服务器,中转服务器将消息的传输协议从第一传输协议转换至分布式消息服务器所支持的第二传输协议传输,并通过第二传输协议将消息发送至分布式消息服务器,分布式消息服务器根据消息的消息主题将消息发送至多个消息接收服务器中与第一消息主题对应的目标接收服务器。该方法在通过分布式消息服务器实现消息发送端和消息接收服务器之间的双向通信时,即使消息发送端和消息接收服务器之间的网络环境较差因而使用了分布式消息服务器所不支持的第一传输协议,也可以通过中转服务器所提供的传输协议转换功能将第一传输协议转换至分布式消息服务器支持的第二传输协议,从而使得在通过分布式消息服务器实现消息发送端和消息接收服务器之间的双向通信时,在网络环境较差的传输场景中也能够保证消息的传输效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是相关技术中基于HTTP/3的传输架构的示意图;
图2是本申请一个示例性实施例提供的计算机系统的示意图;
图3是本申请一个示例性实施例提供的消息通信的示意图;
图4是本申请一个示例性实施例提供的在弱网环境下的通信方法的流程图;
图5是本申请一个示例性实施例提供的在弱网环境下的通信方法的流程图;
图6是本申请一个示例性实施例提供的在弱网环境下的通信方法的流程图;
图7是本申请一个示例性实施例提供的地面端和天空端之间通信架构的示意图;
图8是本申请一个示例性实施例提供的消息通信的流程图;
图9是本申请一个示例性实施例提供的在弱网环境下的通信装置结构框图;
图10是本申请一个示例性实施例提供的在弱网环境下的通信装置结构框图;
图11是本申请一个示例性实施例提供的在弱网环境下的通信装置结构框图;
图12是本申请一个示例性实施例提供的服务器的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
首先,对本申请涉及的相关名词进行示意性说明:
传输控制协议(Transmission Control Protocol,TCP):是一种面向连接的、可靠的、基于字节流的传输层通信协议。TCP旨在适应支持多网络应用的分层协议层次结构。连接到不同但互连的计算机通信网络的主计算机中的成对进程之间依靠TCP提供可靠的通信服务。TCP是因特网中的传输层协议,使用三次握手建立连接,使用四次握手终止连接,从而保证通信连接的可靠性。
用户数据报协议(User Datagram Protocol,UDP):是一种无连接的传输层协议,UDP为应用程序提供了一种无需建立连接就可以发送封装的网际互连协议(InternetProtocol,IP)数据包的方法,具有无连接、不可靠、快速传输等特点。
弱网环境:指网络通信质量差的网络环境,存在延迟高、丢包率高、误码率高等问题。
由于传输控制协议(Transmission Control Protocol,TCP)的可靠、面向连接、基于字节流等特点,目前互联网上大多数的网络应用基于此协议实现数据通信。TCP通过三次握手保证消息传输的可靠性,然而,TCP的可靠性也带来了延迟高的代价,尤其是在弱网环境下。
具体的,TCP在弱网环境下存在以下问题:
1、因需要通过三次握手建立通信连接而产生的通信时延;
在TCP的机制下,当消息发送端需要向消息接收端发送消息时,消息发送端和消息接收端先通过三次握手建立通信连接,然后再进行数据的发送和确认,由于弱网环境下的网络环境存在丢包率高的问题,因此,当三次握手的过程中存在握手数据丢失时,则需要重新执行通信连接的建立过程,因而消息发送端和消息接收端可能需要多次尝试建立通信连接后才能进行消息通信,导致消息通信存在较大时延。
2、因收发确认机制而产生的通信时延;
在TCP机制下,消息的顺序是固定的,即,消息发送端在向消息接收端发送第i个消息后,当消息发送端接收到消息接收端反馈的确认消息后,才会向消息接收端继续发送第i+1个消息。而弱网环境下因为丢包率高,即使消息接收端成功接收到了第i个消息,消息接收端向消息发送端反馈的确认消息在弱网环境下也存在较高的丢包概率,导致即使消息发送端成功接收到消息,却因消息发送端未接收到确认消息而进行消息重传,造成通信资源的浪费,也造成了后续消息的时延。
3、重传的退避机制而产生的通信时延;
在TCP实现的重传过程中,存在退避机制,以防止频繁发送丢失包,即,每次超时重传的时延与重传次数呈正相关关系,例如,消息发送端发完消息后,都会启动一个定时器,定时器的最短超时时间是200ms,在200毫秒后消息发送端没有收到返回的确认消息,客户端会重发上一个消息,并将重发的超时时间延长到400ms,如果重发的消息依然没有收到确认消息,则下一次重发的超时时间会延长到800ms,而在弱网环境下因丢包率高会产生连续多次丢包,多次丢包后就会产生非常大的重传时延。
4、连接迁移后需要重新建立通信连接而产生的通信时延;
当消息发送端和消息接收端之间发生连接迁移时,消息发送端和消息接收端之间需要重新通过三次握手建立通信连接,而通信连接建立过程本身在弱网环境下存在的时延问题,导致了设备间连接迁移时存在同样的时延问题。
消息中间件是在网络环境中为不同处理端提供可靠的消息传输的支撑性系统,利用高效可靠的消息传递机制进行与本身平台无关的数据交流,基于数据通信来进行分布式系统的集成,并支持双向通信,常见的消息中间件例如,Nats、Kafka等。由于消息中间件是利用可靠的消息传递机制,因此,消息中间件是基于TCP实现的,即,消息中间件是基于TCP来实现消息的收发。
然而,由于TCP在传输过程中的各种机制导致在弱网环境下进行消息通信存在很高的时延,因此TCP不适合在弱网环境下使用,因此,当消息中间件桥接的消息发送端和消息接收端之间的网络环境为弱网环境时,存在消息传输效率低的问题。
UDP作为一种无连接的网络传输层协议,提供面向事务的简单不可靠信息传送服务,由于消息发送端和消息接收端之间通过UDP进行消息传输时,无需建立通信连接,因此避免了丢包率高的环境下通信连接需要多次建立所产生的时延,在传递数据时非常快,是一种适用于弱网环境的传输协议。
Google制定的QUIC协议是一种基于UDP的低延迟互联网传输层协议,兼备了TCP的可靠性和UDP的低延迟特点,能够提供可靠的字节流。在弱网环境下采用QUIC协议是一种高效、可行的解决方案。
QUIC在减少了连接建立的时延的同时,还具有以下特点:
1、改进的拥塞控制;
TCP的拥塞控制实际上包含了四个算法:慢启动、拥塞避免、快速重传、快速恢复。QUIC协议在TCP的拥塞控制基础上进行了如下改进:可插拔、单调递增的包序号(PacketNumber)、基于数据流(stream)的连接(Connection)级别的流量控制等。
其中,基于数据流的连接级别的流量控制指示QUIC在连接级别和数据流级别上分别提供了两种流量控制手段,针对连接级别的流量控制窗口为连接中各数据流的可用窗口之和,针对数据流级别的流量控制窗口为最大窗口数减去接收到的最大偏移数,因此QUIC能够通过多级别的流量控制来控制传输速率,在弱网环境下也能够适应性地调整传输速率,避免数据传输过快而在弱网环境下持续丢包,造成传输资源的浪费。
2、避免队头阻塞的多路复用;
QUIC的多路复用和HTTP/2类似,在一条QUIC的通信连接上可以并发发送多个HTTP请求,从而形成数据流。同时,QUIC一个通信连接上的多个数据流之间没有依赖,即使其中一个数据流中丢失了一个UDP数据包,也只会影响该数据流的处理,不会影响该通信连接上其它数据流的处理。因而能很大程度上缓解队头阻塞的影响,从而降低通信时延。
3、在连接迁移时具有更低的时延;
由于上述TCP在连接迁移需要重新建立消息收发端之间的TCP连接,因此在连接迁移时存在时延较高的问题。而由于QUIC协议下,任何一条通信连接不再以IP及端口四元组标识,而是以一个64位的随机数作为ID来标识,这样就算IP或者端口发生变化时,只要ID不变,这条连接依然维持着,上层业务逻辑感知不到变化,不会中断,也就不需要重连。
4、前向冗余纠错;
由于QUIC支持前向纠错码技术(Forward Error Correction,FEC),因此,在重要的数据包发生丢失时,消息接收设备能够根据冗余信息(FEC数据包)还原出丢失的消息,不需要进行消息重传,在弱网环境下,FEC可以在不进行消息重传的情况下应对弱网环境下产生的丢包,减少数据通信的时延。
相关技术中,基于QUIC实现的弱网环境下的通信架构在常见的实现形式下需要借助HTTP/3,HTTP/3作为下一代的超文本应用层传输协议,是基于QUIC协议的一种应用层实现,可以使用HTTP/3可以用来实现不同设备之间的通信协议,进行可靠的数据传输。
如图1所示,其示出了相关技术中基于HTTP/3的传输架构的示意图,第一端110和第二端120之间的网络环境为弱网环境,第一端110中的客户端111和QUIC-HTTP代理端112之间通过HTTP/1和TCP协议进行消息传输,QUIC-HTTP代理端112用于兼容HTTP/1和HTTP/3之间的转换,QUIC-HTTP代理端112和第二端120中的网页服务器(Web Server)121之间通过HTTP/3、QUIC和UDP进行消息传输,网页服务器121判断接收到的消息所请求的服务,将消息转发至对应的服务进程122中进行处理,从而实现第一端110和第二端120之间在弱网环境下的通信。
然而,上述架构至少存在如下缺陷:
1、HTTP/1和HTTP/3存在额外的包头开销,导致传输额外的字节;
2、模块间耦合,网页服务器引入了很多不必要的业务逻辑,例如,需要对接收到的消息进行转发判断,导致代码膨胀;
3、由于HTTP/3尚不存在稳定可靠的双向通信组件,因此该架构缺乏双向通信的支持,在上述架构下若第一端需要获取第一端的新消息,则需要采用持续轮询的方式来获取第二端的最新消息,即,第二端无法主动向第一端发送消息,只能通过响应第一端请求的方式进行消息反馈。
在本申请实施例中,在通过消息中间件实现消息发送端和消息接收端之间的双向通信时,即使消息发送端和消息接收端之间为弱网环境因而使用了消息中间件所不支持的UDP,也可以通过中转服务器所提供的传输协议转换功能将UDP转换至消息中间件支持的TCP,从而使得在通过消息中间件实现消息发送端和消息接收端之间的双向通信时,在弱网环境的传输场景中也能够保证消息的传输效率。。
请参考图2,其示出了本申请一个示例性实施例提供的计算机系统的示意图。该计算机系统中包括:消息发送端210、中转服务器220、分布式消息服务器230、消息接收服务器240。
消息发送端210
在本申请实施例中,消息发送端210用于通过第一传输协议向中转服务器220发送第一消息,上述第一消息对应第一消息主题。
示意性的,上述第一传输协议为适应弱网环境的传输协议。由于在弱网环境下能使用的传输协议需要满足时延低的特点,在一些实施例中,第一传输协议的传输时延低于指定时延阈值。
在一些实施例中,上述弱网环境常见出现在地面端和天空端的通信场景中,即,由于地面端和天空端之间的距离以及传输介质,地面端和天空端之间的网络环境为弱网环境。
在另一些实施例中,上述弱网环境还出现在地面上的远距离通信场景中,如,消息发送端和消息接收服务器之间的通信距离达到指定距离阈值;或是地面上的环境复杂通信场景中,如,在消息发送端和消息接收服务器之间存在高山、多建筑物等对传输介质存在遮挡的场景。
可选地,上述指定时延阈值可以是预先设置的,也可以是根据传输需求动态调整的,例如,上述指定时延阈值与消息发送端中的待发送消息数量呈负相关关系,即,当待发送消息数量越多则指定时延阈值越低,需求传输协议进行数据通信时的时延越低。
示意性的,适合在弱网环境下使用的传输协议是具有低时延特点的传输协议,可选地,传输时延低于指定时延阈值的传输协议包括以下至少一种传输特点:
第一种:使用传输协议的收发设备之间无需建立通信连接;
示意性的,消息的收发设备在进行消息传输之前不需要通过三次握手建立通信连接而直接进行消息的传输,因而能够避免因通信连接建立过程中握手数据丢包而导致的时延。
第二种:数据包传输窗口大小与丢包率大小呈负相关关系;
示意性的,消息发送端210根据所使用的传输协议机制,会根据网络环境的丢包率适应性调整数据包的传输窗口大小,且数据包传输窗口大小与网络环境的丢包率呈负相关关系,即,当发现网络环境的丢包率变高时,减小数据包传输窗口,因而能够使得消息发送端210在丢包率高的网络下适应性地调整每次进行数据传输的数据传输量,从而减少在高丢包率环境下丢包的数据,以及在丢包后需要重传的数据量。
第三种:传输协议支持前向纠错码技术;
FEC是利用数据进行传输冗余信息的方法,当传输中出现错误,将允许消息接收设备再建数据。在一些传输协议的传输机制中,支持在发送的数据包中动态地增加FEC数据包,从而减少重传次数,提升数据传输效率,即,当消息发送端210发现目前的网络环境存在丢包率高或误码率高的问题时,在需要发送的数据包中增加FEC数据包,从而使得消息接收设备在接收到数据包后可以根据FEC数据包确定传输过程中的产生的错误,并对其进行纠正,而无需消息发送端210进行重传,减少数据重传次数。
在一些实施例中,上述消息发送端210确定网络环境存在丢包率或误码率高的问题的方式,可以实现为消息发送端210对网络环境的丢包率/误码率进行检测,响应于检测到的丢包率/误码率达到指定检测阈值,确定该网络环境存储丢包率/误码率高的问题,即,确定该网络环境为弱网环境。
在一些实施例中,第一传输协议包括UDP、QUIC、UDT、KCP、uTP、FASP、SCTP等。
可选地,消息发送端210可以实现为终端中的应用客户端,或者,消息发送端210还可以实现为代理服务器。上述代理服务器是应用客户端和后端的服务器建立消息通信的中介,在一些实施例中,当应用客户端未设计或不支持以第一传输协议进行消息通信时,为了满足弱网环境的传输需求,设置代理服务器为应用客户端的消息提供消息传输协议的转换功能。
示意性的,应用客户端用于通过第二传输协议向代理服务器发送第三消息,第三消息和第一消息为表达相同消息含义的不同传输格式的消息。代理服务器还用于接收应用客户端发送的第三消息;对第三消息进行传输格式转换,得到与第一传输协议对应的第一消息;通过第一传输协议向中转服务器220发送第一消息。
可选地,终端包括手机、平板电脑、台式电脑、便携式笔记本电脑、智能家电、车载终端、飞行器等多种形式的设备。
示意性的,消息主题(Topic)用于对消息进行分类,不同消息主题的消息需要不同的功能服务进行响应。
中转服务器220
在本申请实施例中,中转服务器220用于接收消息发送端210发送的第一消息;对第一消息进行传输格式转换,得到与第二传输协议对应的第二消息;通过第二传输协议向分布式消息服务器230发送第二消息。
示意性的,上述第一消息和第二消息为表达相同消息含义的不同传输格式的消息,即,第一消息和第二消息指示的是不同传输格式下的同一消息。
在本申请实施例中,中转服务器220用于提供消息的传输协议转换功能,即,中转服务器220能够将消息从第一传输协议转换至第二传输协议。在一些实施例中,中转服务器220还可以将消息从第二传输协议转换至第一传输协议。
示意性的,上述第二传输协议为分布式消息服务器230支持的协议格式,即,分布式消息服务器230是基于第二传输协议实现数据收发的。在一个示例中,上述第二传输协议包括TCP。
在一些实施例中,当消息发送端210实现为代理服务器时,中转服务器220还用于接收代理服务器发送的第一消息。
在一些实施例中,第一消息中包括用于指示传输协议的信令信息,当需要对第一消息的传输格式从第一传输协议传输格式转换为第二传输协议传输格式时,通过对第一消息中的信令信息进行修改,从而得到符合第二传输协议传输格式的第二消息,即,第一消息和第二消息之间的区别在于消息中携带的信令信息不同,第一消息的信令信息指示第一消息为通过第一传输协议完成传输的消息,第二消息的信令信息指示第二消息为通过第二传输协议完成传输的消息。
分布式消息服务器230
分布式消息服务器230用于接收中转服务器发送的第二消息;基于第二消息对应的第一消息主题,将第二消息发送至多个消息接收服务器240中与第一消息主题对应的目标接收服务器。
示意性的,分布式消息服务器230用于为消息发送端210和消息接收服务器240提供消息中转功能。上述分布式消息服务器230支持对第二传输协议对应的消息进行处理以及双向通信,即,分布式消息服务器230可以将来自消息发送端210的消息发送至消息接收服务器240,也可以将来自消息接收服务器240的消息发送至消息发送端210。
示意性的,分布式消息服务器230还用于获取多个消息接收服务器240对应的第一主题订阅信息,第一主题订阅信息用于指示多个消息接收服务器240分别对候选消息主题的订阅情况;基于第一主题订阅信息从多个消息接收服务器240中确定出订阅第一消息主题的目标接收服务器。
在本申请实施例中,分布式消息服务器230连接有多个消息接收服务器240,每个消息接收服务器240对应有第一主题订阅信息,该第一主题订阅信息用于指示消息接收服务器240对多个候选消息主题的订阅情况,分布式消息服务器230根据消息接收服务器240对应的第一主题订阅信息从多个消息接收服务器240中确定出至少一个目标接收服务器以实现第二消息的转发。
在一些实施例中,分布式消息服务器230可以实现为消息中间件,消息中间件是一种跨进程的通信机制,用于上下游的消息传递,在本申请实施例中,消息中间件用于传递消息发送端210和消息接收服务器240之间的消息。在一个示例中,消息中间件可以实现为Nats、Kafka等。
在一些实施例中,分布式消息服务器230中包括多个分区,不同分区与不同的消息主题对应,当分布式消息服务器230接收到来自中转服务器220的消息时,根据消息对应的消息主题将消息发送至不同的分区,不同分区的消息被转发至订阅该分区对应的消息主题的消息接收服务器240。
在一些实施例中,分布式消息服务器230的多个分区中,通过将消息发送至消息队列中以实现对消息进行缓存,示意性的,通过消息队列对第二消息进行消息缓存,响应于第二消息处于消息队列的队首位置,分布式消息服务器230通过第二传输协议向目标接收服务器发送第二消息。
在一些实施例中,在存在多个订阅第一消息主题的消息接收服务器240时,可选地,分布式消息服务器230向订阅上述第一消息主题的多个消息接收服务器240均发送第二消息,或者,分布式消息服务器230对订阅上述第一消息主题的多个消息接收服务器240进行筛选,向筛选得到的目标接收服务器发送第二消息。
在一些实施例中,对订阅上述第一消息主题的多个消息接收服务器240进行筛选以确定目标接收服务器时,可以根据订阅上述第一消息主题的多个消息接收服务器240的负载情况进行筛选,即,优先将第二消息发送至负载小的消息接收服务器240,以实现消息接收服务器240的负载均衡。
消息接收服务器240
在本申请实施例中,消息接收服务器240用于接收分布式消息服务器230传递的与第二传输协议对应的消息。
示意性的,消息接收服务器240用于对第二消息进行消息处理,在一些实施例中,消息接收服务器240为第二消息提供对应的功能服务。
在一些实施例中,当消息接收服务器240完成对第二消息的消息处理后,将第二消息对应的消息处理结果直接发送至消息发送端210,如图3所示,其示出了本申请一个示例性实施例提供的消息通信的示意图,消息发送端210通过中转服务器220将消息发送至分布式消息服务器230后,分布式消息服务器230根据消息主题将消息发送至订阅该消息主题的消息接收服务器240中,消息接收服务器240直接向消息发送端210反馈消息处理结果。
在另一些实施例中,消息接收服务器240通过分布式消息服务器230和中转服务器220对消息处理结果进行转发,示意性的,分布式消息服务器230接收消息接收服务器240通过第二传输协议传输的第一消息处理结果,消息处理结果与第二消息对应;中转服务器220对第一消息处理结果进行传输格式转换,得到符合第一传输协议传输格式的第二消息处理结果,通过第一传输协议向消息发送端210发送第二消息处理结果。
可选地,上述中转服务器220、分布式消息服务器230、消息接收服务器240可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云安全、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。
其中,云技术(Cloud Technology)是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。云技术基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾支撑,只能通过云计算来实现。
在一些实施例中,上述中转服务器220、分布式消息服务器230、消息接收服务器240还可以实现为区块链系统中的节点。区块链(Blockchain)是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。
在一些实施例中,由于分布式消息服务器230支持双向通信,因此,消息接收服务器240也能够通过分布式消息服务器230和中转服务器220向消息发送端210发送消息。
示意性的,消息接收服务器240还用于通过第二传输协议向分布式消息服务器230发送第四消息,第四消息对应第二消息主题。分布式消息服务器230还用于接收消息接收服务器240发送的第四消息;基于第四消息对应的第二消息主题,确定接收第四消息的目标消息接收端;向中转服务器220发送第四消息,并指示接收第四消息的目标消息发送端。中转服务器220还用于接收分布式消息服务器230发送的第四消息;对第四消息进行传输格式转换,得到与第一传输协议对应的第五消息,第四消息和第五消息为表达相同消息含义的不同传输格式的消息;通过第一传输协议向目标消息发送端发送第五消息。消息发送端210还用于接收中转服务器220传递的与第一传输协议对应的消息。
在一些实施例中,当消息接收服务器240向消息发送端210发送消息时,分布式消息服务器230还用于获取多个消息发送端210对应的第二主题订阅信息,第二主题订阅信息用于指示多个消息发送端210分别对候选消息主题的订阅情况,基于第二主题订阅信息从多个消息发送端210中确定出订阅第二消息主题的目标消息发送端。
在一些实施例中,当上述目标消息发送端实现为代理服务器时,该系统还包括应用客户端。示意性的,中转服务器还用于通过第一传输协议向代理服务器发送端发送第五消息。代理服务器用于接收中转服务器220发送的第五消息;对第五消息进行传输格式转换,得到与第二传输协议对应的第六消息,第五消息和第六消息为表达相同消息含义的不同传输格式的消息;通过第二传输协议向应用客户端发送第六消息。应用客户端用于接收代理服务器发送的第六消息。
综上所述,在本申请实施例提供的系统中,消息发送端和消息接收服务器之间进行消息通信时,消息发送端通过第一传输协议将消息发送至中转服务器,中转服务器将消息的传输协议从第一传输协议转换至分布式消息服务器所支持的第二传输协议传输,并通过第二传输协议将消息发送至分布式消息服务器,分布式消息服务器根据消息的消息主题将消息发送至多个消息接收服务器中与所述第一消息主题对应的目标接收服务器。该方法在通过分布式消息服务器实现消息发送端和消息接收服务器之间的双向通信时,即使消息发送端和消息接收服务器之间的网络环境较差因而使用了分布式消息服务器所不支持的第一传输协议,也可以通过中转服务器所提供的传输协议转换功能将第一传输协议转换至分布式消息服务器支持的第二传输协议,从而使得在通过分布式消息服务器实现消息发送端和消息接收服务器之间的双向通信时,在网络环境较差的传输场景中也能够保证消息的传输效率。
请参考图4,其示出了本申请一个实施例示出的在弱网环境下的通信方法的流程图,该方法由系统中的分布式消息服务器执行,分布式消息服务器支持对第二传输协议对应的消息进行处理以及双向通信。该方法包括:
步骤401,接收中转服务器通过第二传输协议发送的第二消息。
示意性的,上述第二消息对应第一消息主题。上述第二消息是中转服务器在接收到消息发送端通过第一传输协议发送的第一消息后,对第一消息进行传输格式转换得到的与第二传输协议对应的消息。其中,第一消息和第二消息为表达相同消息含义的不同传输格式的消息。
步骤402,基于第二消息对应的第一消息主题,将第二消息发送至多个消息接收服务器中与第一消息主题对应的目标接收服务器。
在一些实施例中,分布式消息服务器可以实现为消息中间件,消息中间件是一种跨进程的通信机制,用于上下游的消息传递,在本申请实施例中,消息中间件用于传递消息发送端和消息接收服务器之间的消息。在一个示例中,消息中间件可以实现为Nats、Kafka等。
在一个示例中,上述分布式消息服务器可以实现为Nats,由于Nats是一种基于TCP的应用层消息传输中间件,因此,在本申请实施例中,由中转服务器完成了消息的传输格式转换,使得消息能够在Nats中完成消息的发布订阅过程。
在本申请实施例中,Nats对于使用者(客户端)透明,使用者无需修改现有的Nats客户端库代码,从而便捷地使用Nats的订阅发布功能。
可选地,中转服务器和分布式消息服务器可以设置在同一进程中,从而节约部署成本;或者,中转服务器和分布式消息服务器可以设置在不同进程中。
在本申请实施例中,分布式消息服务器采用发布-订阅的消息范式,分布式消息服务器将消息发送至订阅对应消息主题的消息接收服务器。示意性的,获取多个消息接收服务器对应的第一主题订阅信息,第一主题订阅信息用于指示多个消息接收服务器分别对候选消息主题的订阅情况,基于第一主题订阅信息从多个消息接收服务器中确定出订阅第一消息主题的目标接收服务器,通过第二传输协议向目标接收服务器发送第二消息。
在一些实施例中,分布式消息服务器中包括多个分区,不同分区与不同的消息主题对应,当分布式消息服务器接收到来自中转服务器的消息时,根据消息对应的消息主题将消息发送至不同的分区,不同分区的消息被转发至订阅该分区对应的消息主题的消息接收服务器。
在一些实施例中,分布式消息服务器的多个分区中,通过将消息发送至消息队列中以实现对消息进行缓存。示意性的,通过消息队列对第二消息进行消息缓存,响应于第二消息处于消息队列的队首位置,通过第二传输协议向目标接收服务器发送第二消息。
在一些实施例中,在存在多个订阅第一消息主题的消息接收服务器时,可选地,分布式消息服务器向订阅上述第一消息主题的多个消息接收服务器均发送第二消息,或者,分布式消息服务器对订阅上述第一消息主题的多个消息接收服务器进行筛选,向筛选得到的目标接收服务器发送第二消息。
在一些实施例中,对订阅上述第一消息主题的多个消息接收服务器进行筛选以确定目标接收服务器时,可以根据订阅上述第一消息主题的多个消息接收服务器的负载情况进行筛选,即,优先将第二消息发送至负载小的消息接收服务器,以实现消息接收服务器的负载均衡。
综上所述,本申请实施例提供的在弱网环境下的通信方法,分布式消息服务器接收来自中转服务器通过第二传输协议发送的消息,分布式消息服务器根据消息的消息主题将消息发送至多个消息接收服务器中与第一消息主题对应的目标接收服务器,该方法在通过分布式消息服务器实现消息发送端和消息接收服务器之间的双向通信,且保证了消息发送端和消息接收端之间的网络环境为弱网环境时的消息传输效率。
请参考图5,其示出了本申请一个实施例示出的在弱网环境下的通信方法的流程图,在本申请实施例中,该方法由中转服务器执行,该方法包括:
步骤501,接收消息发送端通过第一传输协议传输的第一消息。
示意性的,上述第一消息对应第一消息主题。
示意性的,上述第一传输协议为适应弱网环境的传输协议。由于在弱网环境下能使用的传输协议需要满足时延低的特点,在一些实施例中,第一传输协议的传输时延低于指定时延阈值。
在本申请实施例中,消息发送端可以实现为应用客户端或者代理服务器。应用客户端为安装在终端为用户提供本地服务的程序。代理服务器与应用客户端连接,为应用客户端提供本地代理服务。
在本申请实施例中,代理服务器和应用客户端之间的网络环境良好,可以应用面向连接的传输协议。
在一些实施例中,当应用客户端存在待响应事件时,应用客户端生成该待响应事件对应的第三消息,该第三消息为信令信息指示通过第二传输协议对第三消息进行消息传输。应用客户端将第三消息发送至代理服务器,代理服务器对第三消息进行传输格式转换,得到与第一传输协议对应的第一消息;通过第一传输协议向中转服务器发送第一消息。
值得注意的是,应用客户端也可以不通过代理服务器而直接向中转服务器发送符合第一传输协议传输格式的第一消息,在一些实施例中,在应用客户端中包括支持语言库的场景下,应用客户端通过第一传输协议向中转服务器发送第一消息。
步骤502,对第一消息进行传输格式转换,得到与第二传输协议传输格式对应的第二消息。
其中,上述第一消息和第二消息为表达相同消息含义的不同传输格式的消息,即,第一消息和第二消息指示的是不同传输格式下的同一消息。
示意性的,上述第二传输协议为分布式消息服务器支持的传输协议,即,分布式消息服务器是基于第二传输协议实现数据收发的。在一个示例中,上述第二传输协议包括TCP。
在一些实施例中,第一消息中包括用于指示传输协议的信令信息,当需要对第一消息的传输格式从第一传输协议传输格式转换为第二传输协议传输格式时,通过对第一消息中的信令信息进行修改,从而得到符合第二传输协议传输格式的第二消息,即,第一消息和第二消息之间的区别在于消息中携带的信令信息不同,第一消息的信令信息指示第一消息为通过第一传输协议完成传输的消息,第二消息的信令信息指示第二消息为通过第二传输协议完成传输的消息。
在一些实施例中,中转服务器220还可以将消息从第二传输协议转换至第一传输协议。
步骤503,通过第二传输协议向分布式消息服务器发送第二消息。
示意性的,上述分布式消息服务器用于为消息发送端和消息接收服务器提供消息中转功能。上述分布式消息服务器支持对第二传输协议对应的消息进行处理以及双向通信,即,分布式消息服务器可以将来自消息发送端的消息发送至消息接收服务器,也可以将来自消息接收服务器的消息发送至消息发送端。
在本申请实施例中,中转服务器将第二消息发送至分布式消息服务器后,分布式消息服务器基于第二消息对应的第一消息主题,将第二消息发送至多个消息接收服务器中与第一消息主题对应的目标接收服务器。
综上所述,本申请实施例提供的在弱网环境下的通信方法,消息发送端通过第一传输协议将消息发送至中转服务器,中转服务器将消息的传输协议从第一传输协议转换至分布式消息服务器所支持的第二传输协议传输,可见,在通过分布式消息服务器实现消息发送端和消息接收服务器之间的双向通信时,即使消息发送端和消息接收服务器之间的网络环境较差因而使用了分布式消息服务器所不支持的第一传输协议,也可以通过中转服务器所提供的传输协议转换功能将第一传输协议转换至分布式消息服务器支持的第二传输协议,从而使得在通过分布式消息服务器实现消息发送端和消息接收服务器之间的双向通信时,在网络环境较差的传输场景中也能够保证消息的传输效率。
请参考图6,其示出了本申请一个实施例示出的在弱网环境下的通信方法的流程图,在本申请实施例中,对系统中各设备之间的交互过程进行示意性说明,该交互流程包括:
步骤601,消息发送端通过第一传输协议向中转服务器发送第一消息。
其中,第一消息对应第一消息主题。上述第一传输协议为适应弱网环境的传输协议。由于在弱网环境下能使用的传输协议需要满足时延低的特点,在一些实施例中,第一传输协议的传输时延低于指定时延阈值。
在一个示例中,上述第一传输协议包括UDP、QUIC、UDT、KCP、uTP、FASP、SCTP等。
步骤602,中转服务器对第一消息进行传输格式转换,得到与第二传输协议对应的第二消息。
其中,上述第一消息和第二消息为表达相同消息含义的不同传输格式的消息,即,第一消息和第二消息指示的是不同传输格式下的同一消息。
在本申请实施例中,中转服务器用于提供消息的传输协议转换功能,即,中转服务器能够将消息从第一传输协议转换至第二传输协议,中转服务器还可以将消息从第二传输协议转换至第一传输协议。
示意性的,上述第二传输协议为分布式消息服务器支持的协议格式,即,分布式消息服务器是基于第二传输协议实现数据收发的。在一个示例中,上述第二传输协议包括TCP。
在一些实施例中,第一消息中包括用于指示传输协议的信令信息,当需要对第一消息的传输格式从第一传输协议传输格式转换为第二传输协议传输格式时,通过对第一消息中的信令信息进行修改,从而得到符合第二传输协议传输格式的第二消息,即,第一消息和第二消息之间的区别在于消息中携带的信令信息不同,第一消息的信令信息指示第一消息为通过第一传输协议完成传输的消息,第二消息的信令信息指示第二消息为通过第二传输协议完成传输的消息。
步骤603,中转服务器通过第二传输协议向分布式消息服务器发送第二消息。
示意性的,上述分布式消息服务器支持对第二传输协议对应的消息进行处理以及双向通信,即,分布式消息服务器可以将来自消息发送端的消息发送至消息接收服务器,也可以将来自消息接收服务器的消息发送至消息发送端。
步骤604,分布式消息服务器基于第二消息对应的第一消息主题,将第二消息发送至多个消息接收服务器中与第一消息主题对应的目标接收服务器。
示意性的,分布式消息服务器获取多个消息接收服务器对应的第一主题订阅信息,第一主题订阅信息用于指示多个消息接收服务器分别对候选消息主题的订阅情况,基于第一主题订阅信息从多个消息接收服务器中确定出订阅第一消息主题的目标接收服务器。
示意性的,消息接收服务器用于对第二消息进行消息处理,在一些实施例中,消息接收服务器为第二消息提供对应的功能服务。
步骤605,消息接收服务器通过第二传输协议向分布式消息服务器发送第四消息。
在本申请实施例中,消息接收服务器也可以向消息发送端发送消息。其中,第四消息对应第二消息主题。
步骤606,分布式消息服务器基于第四消息对应的第二消息主题,确定接收第四消息的目标消息接收端。
示意性的,分布式消息服务器获取多个消息发送端对应的第二主题订阅信息,第二主题订阅信息用于指示多个消息发送端分别对候选消息主题的订阅情况,基于第二主题订阅信息从多个消息发送端中确定出订阅第二消息主题的目标消息发送端。
步骤607,分布式消息服务器向中转服务器发送第四消息,并指示接收第四消息的目标消息发送端。
在一些实施例中,当分布式消息服务器确定接收第四消息的目标消息接收端后,将目标消息接收端的设备标识携带在向中转服务器发送的第四消息中,从而向中转服务器指示接收第四消息的消息发送端,其中,上述设备标识用于唯一标识目标消息接收端。
步骤608,中转服务器对第四消息进行传输格式转换,得到与第一传输协议对应的第五消息。
其中,第四消息和第五消息为表达相同消息含义的不同传输格式的消息。
在一些实施例中,第四消息中包括用于指示传输协议的信令信息,当需要对第四消息的传输格式从第二传输协议传输格式转换为第一传输协议传输格式时,通过对第四消息中的信令信息进行修改,从而得到符合第一传输协议传输格式的第五消息,即,第四消息和第五消息之间的区别在于消息中携带的信令信息不同,第四消息的信令信息指示第四消息为通过第二传输协议完成传输的消息,第五消息的信令信息指示第五消息为通过第一传输协议完成传输的消息。
在一些实施例中,中转服务器在接收到消息时,根据消息的发送端确定传输格式的转换方式,即,当中转服务器接收来自消息发送端的消息时,将消息的传输格式从第一传输协议转换至第二传输协议,当中转服务器接收来自分布式消息服务器的消息时,将消息的传输格式从第二传输协议转换至第一传输协议。
步骤609,中转服务器通过第一传输协议向目标消息发送端发送第五消息。
示意性的,中转服务器根据分布式消息服务器所指示的目标消息发送端确定第五消息的接收设备,并向目标消息发送端发送上述第五消息。其中,上述中转服务器和目标消息发送端之间的网络环境为弱网环境。
值得注意的是,步骤601~步骤604和步骤605~步骤609的执行顺序可以相反,即,可以先执行步骤601~步骤604再执行步骤605~步骤609,或者,先执行步骤605~步骤609再执行步骤601~步骤604,在此不进行限定。
综上所述,消息发送端和消息接收服务器之间进行消息通信时,消息发送端通过第一传输协议将消息发送至中转服务器,中转服务器将消息的传输协议从第一传输协议转换至分布式消息服务器所支持的第二传输协议传输,并通过第二传输协议将消息发送至分布式消息服务器,分布式消息服务器根据消息的消息主题将消息发送至多个消息接收服务器中与第一消息主题对应的目标接收服务器。该方法在通过分布式消息服务器实现消息发送端和消息接收服务器之间的双向通信时,即使消息发送端和消息接收服务器之间的网络环境较差因而使用了分布式消息服务器所不支持的第一传输协议,也可以通过中转服务器所提供的传输协议转换功能将第一传输协议转换至分布式消息服务器支持的第二传输协议,从而使得在通过分布式消息服务器实现消息发送端和消息接收服务器之间的双向通信时,在网络环境较差的传输场景中也能够保证消息的传输效率。
在一个示例中,以弱网环境实现为地面端和天空端的通信为例,对本申请实施例提供的在弱网环境下的通信方法进行举例说明,其中,上述天空端可以实现为空间站、卫星等,地面端为位于地球上的计算设备,即,由于地面端和天空端之间的距离以及传输介质,地面端和天空端之间的网络环境为弱网环境。
示意性的,如图7所示,其示出了本申请一个示例性实施例提供的地面端710和天空端720之间通信架构的示意图,地面端710包括客户端711以及本地代理服务器712。其中,客户端711为安装在用户终端上的客户端程序,能够提供与天空端的数据交互功能,本地代理服务器712为设置在地球上的代理服务器,用于建立与天空端720的通信连接。天空端720包括中转服务器721、Nats服务器722以及多个消息接收服务器723,其中,上述中转服务器721和Nats服务器722可以共享进程,在该场景下,上述消息接收服务器723可以实现为彩虹客户端(Rainbow Client)、Webrtc Server、网页服务器等。
本地代理服务器712和中转服务器721之间的网络环境为弱网环境,通过QUIC或UDP形成桥接层(Nats Bridge)。
当客户端711向消息接收服务器723发送消息时,客户端711向本地代理服务器712发送TCP消息,本地代理服务器712对TCP消息进行转换,得到UDP消息,将UDP消息从本地代理服务器712发送至中转服务器721,中转服务器721对UDP消息进行转换,得到TCP消息,将TCP消息发送至Nats服务器722,Nats服务器722将TCP消息发送至订阅该TCP消息的消息接收服务器723中。
具体的,请参考图8,其示出了本申请一个示例性实施例提供的在弱网环境下的通信方法的流程图,该方法包括如下步骤:
步骤801,客户端向本地代理服务器发送第一TCP消息。
客户端和本地代理服务器之间的网络环境良好,较少出现丢包的情况,可以应用面向连接的传输协议,因此,客户端和本地代理服务器之间使用TCP协议进行消息通信,上述第一TCP消息为符合TCP传输格式的消息,且该第一TCP消息为客户端主动向服务端发送的消息。上述第一TCP消息为第一消息主题的消息。
步骤802,本地代理服务器对第一TCP消息进行传输格式转换,得到第一UDP消息。
本地代理服务器、中转服务器和Nats服务器用于建立地面端与天空端之间的数据通信,地面端和天空端之间的通信网络为弱网环境下的通信网络,存在时延高、丢包率高、误码率高等问题。
本地代理服务器在接收到客户端发送的第一TCP消息后,对第一TCP消息进行传输格式转换,从而得到符合UDP传输格式的第一UDP消息,其中,第一TCP消息和第一UDP消息为使用不同传输层协议实现数据传输的同一消息。
步骤803,本地代理服务器将第一UDP消息发送至中转服务器。
本地代理服务器通过UDP协议向中转服务器发送第一UDP消息。
步骤804,中转服务器对第一UDP消息进行传输格式转换,得到第一TCP消息。
在天空端中,由于Nats服务器中的Nats是一种基于TCP协议通信的中间件,因此,中转服务器需要对第一UDP消息的传输格式进行转换,得到符合TCP传输格式的第一TCP消息。
步骤805,中转服务器将第一TCP消息发送至Nats服务器。
中转服务器通过TCP协议将第一TCP消息发送至Nats服务器。
步骤806,Nats服务器向订阅第一消息主题的消息接收服务器发送第一TCP消息。
Nats服务器中的Nats是一种消息中间件,能够实现消息的转发。在本申请实施例中,Nats能够完成以发布-订阅范式实现的消息传输过程。Nats确定第一TCP消息对应的第一消息主题,并从多个候选的消息接收服务器中确定出至少一个订阅第一消息主题的消息接收服务器,并向订阅第一消息主题的消息接收服务器发送上述第一TCP消息。
步骤807,消息接收服务器对第一TCP消息进行消息处理。
消息接收服务器在接收到第一TCP消息后,对第一TCP消息进行解码并响应对应的消息处理需求。
在一个示例中,如图9所示,其示出了本申请一个示例性实施例提供的消息通信的流程图,当客户端节点910将消息发布至由中转服务器和Nats服务器组成的消息中转端920,消息中转端920将消息转发至订阅该消息的消息接收服务器n930。
步骤808,消息接收服务器向Nats服务器发送第二TCP消息。
上述第二TCP消息为消息接收服务器主动向客户端发出的消息,该第TCP消息定位第二消息主题的消息。
步骤809,Nats服务器向中转服务器指示订阅第二消息主题的客户端,并向中转服务器发送第二TCP消息。
Nats服务器中提供有作为消息中间件的Nats,在本申请实施例中,Nats能够完成以发布-订阅范式实现的消息传输过程,Nats在接收到消息接收服务器发布的第二TCP消息后,根据第二TCP消息对应的第二消息主题确定出订阅第二消息主题的客户端,向中转服务器发送第二TCP消息,同时指示中转服务器接收该第二TCP消息的客户端。
步骤810,中转服务器对第二TCP消息进行传输格式转换,得到第二UDP消息。
中转服务器将第二TCP消息转换为符合UDP传输格式的第二UDP消息。
步骤811,中转服务器确定订阅第二消息主题的客户端对应的本地代理服务器,并向本地代理服务器发送第二UDP消息。
中转服务器在根据Nats服务器指示的接收第二TCP消息的客户端后,根据该客户端确定能够向该客户端转发消息的本地代理服务器,通过UDP协议向本地代理服务器发送第二UDP消息。
步骤812,本地代理服务器对第二UDP消息进行传输格式转换,得到第二TCP消息。
本地代理服务器将第二UDP消息转换为符合UDP传输格式的第二TCP消息。
步骤813,本地代理服务器向订阅第二消息主题的客户端发送第二TCP消息。
在一些实施例中,当本地代理服务器连接多个客户端时,中转服务器在向本地代理服务器发送第二UDP消息时,还向本地代理服务器指示了接收消息的客户端,本地代理服务器向上述客户端发送转换后的第二TCP消息。
步骤814,客户端对第二TCP消息进行消息处理。
客户端在接收到第二TCP消息后,对第二TCP消息进行解码并响应对应的消息处理需求。
值得注意的是,步骤801~807以及步骤808~813之间的执行顺序也可以相反,即,先执行步骤808~813再执行步骤801~807,从而实现先由天空端向地面端发送消息再由地面端向天空端发送消息的过程。
综上所述,本申请实施例提供的在弱网环境下的通信方法,当地面端和天空端之间的网络环境为弱网环境时,通过本地代理服务器、中转服务器以及Nats服务器建立在弱网环境下实现的消息中转的桥阶层,从而在代理服务器和中转服务器之间使用UDP这一能够在弱网环境下实现低时延传输的传输协议,并由Nats服务器实现消息在地面端和天空端之间的双向通信。
在另一些实施例中,地面端可以包括消息接收服务器、中转服务器和分布式消息服务器,天空端包括客户端,从而形成地面端和天空端之间的通信架构。具体场景如航天员在空间站使用空间站中的计算机设备,计算机设备中安装有客户端,当航天员需要将相关数据发送至地面端的消息接收服务器时,客户端将相关数据打包为消息,将消息以第一通信协议发送至地面端的中转服务器,中转服务器将消息从第一通信协议转换至第二通信协议,中转服务器将符合第二通信协议的消息发送至分布式消息服务器,分布式消息服务器再把消息发送至订阅该消息的分布式消息服务器。
请参考图10,其示出了本申请一个示例性的实施例提供的在弱网环境下的通信装置结构框图,该装置支持对第二传输协议对应的消息进行处理以及双向通信,该装置包括如下模块:
第一接收模块1010,用于接收中转服务器通过第二传输协议发送的第二消息,第二消息对应第一消息主题,第二消息是中转服务器在接收到消息发送端通过第一传输协议发送的第一消息后,对第一消息进行传输格式转换得到的与第二传输协议对应的消息,第一消息和第二消息为表达相同消息含义的不同传输格式的消息;
第一发送模块1020,用于基于第二消息对应的第一消息主题,将第二消息发送至多个消息接收服务器中与第一消息主题对应的目标接收服务器。
在一些可选的实施例中,该装置还包括:
获取模块(图中未示出),用于获取多个消息接收服务器对应的第一主题订阅信息,所述第一主题订阅信息用于指示所述多个消息接收服务器分别对候选消息主题的订阅情况;
确定模块(图中未示出),用于基于所述第一主题订阅信息从所述多个消息接收服务器中确定出订阅所述第一消息主题的所述目标接收服务器;
第一发送模块1020,还用于通过所述第二传输协议向所述目标接收服务器发送所述第二消息。
在一些可选的实施例中,该装置还包括:
缓存模块(图中未示出),通过消息队列对所述第二消息进行消息缓存;
第一发送模块1020,还用于响应于所述第二消息处于所述消息队列的队首位置,通过所述第二传输协议向所述目标接收服务器发送所述第二消息。
请参考图11,其示出了本申请一个示例性的实施例提供的在弱网环境下的通信装置结构框图,该装置包括如下模块:
第二接收模块1110,用于接收消息发送端通过第一传输协议传输的第一消息,所述第一消息对应第一消息主题;
转换模块1120,用于对所述第一消息进行传输格式转换,得到与第二传输协议传输格式对应的第二消息,所述第一消息和所述第二消息为表达相同消息含义的不同传输格式的消息,所述第二传输协议为分布式消息服务器支持的传输协议;
第二发送模块1130,用于通过所述第二传输协议向所述分布式消息服务器发送所述第二消息,所述分布式消息服务器用于基于所述第二消息对应的所述第一消息主题,将所述第二消息发送至多个消息接收服务器中与所述第一消息主题对应的目标接收服务器,所述分布式消息服务器支持双向通信。
需要说明的是:上述实施例提供的在弱网环境下的通信装置,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的在弱网环境下的通信装置与在弱网环境下的通信方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图12示出了本申请一个示例性实施例提供的服务器的结构示意图。具体来讲包括如下结构。
服务器1200包括中央处理单元(Central Processing Unit,CPU)1201、包括随机存取存储器(Random Access Memory,RAM)1202和只读存储器(Read Only Memory,ROM)1203的系统存储器1204,以及连接系统存储器1204和中央处理单元1201的系统总线1205。服务器1200还包括用于存储操作系统1213、应用程序1214和其他程序模块1215的大容量存储设备1206。
大容量存储设备1206通过连接到系统总线1205的大容量存储控制器(未示出)连接到中央处理单元1201。大容量存储设备1206及其相关联的计算机可读介质为服务器1200提供非易失性存储。也就是说,大容量存储设备1206可以包括诸如硬盘或者紧凑型光盘只读存储器(Compact Disc Read Only Memory,CD-ROM)驱动器之类的计算机可读介质(未示出)。
不失一般性,计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括RAM、ROM、可擦除可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、带电可擦可编程只读存储器(Electrically Erasable Programmable Read Only Memory,EEPROM)、闪存或其他固态存储器技术,CD-ROM、数字通用光盘(Digital Versatile Disc,DVD)或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知计算机存储介质不局限于上述几种。上述的系统存储器1204和大容量存储设备1206可以统称为存储器。
根据本申请的各种实施例,服务器1200还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即服务器1200可以通过连接在系统总线1205上的网络接口单元1211连接到网络1212,或者说,也可以使用网络接口单元1211来连接到其他类型的网络或远程计算机系统(未示出)。
上述存储器还包括一个或者一个以上的程序,一个或者一个以上程序存储于存储器中,被配置由CPU执行。
本申请的实施例还提供了一种计算机设备,该计算机设备包括处理器和存储器,该存储器中存储有至少一条指令、至少一段程序、代码集或指令集,至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行以实现上述各方法实施例提供的在弱网环境下的通信方法。可选地,该计算机设备可以是终端,也可以是服务器。
本申请的实施例还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有至少一条指令、至少一段程序、代码集或指令集,至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行,以实现上述各方法实施例提供的在弱网环境下的通信方法。
本申请的实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述实施例中任一所述的在弱网环境下的通信方法。
可选地,该计算机可读存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、固态硬盘(SSD,Solid State Drives)或光盘等。其中,随机存取记忆体可以包括电阻式随机存取记忆体(ReRAM,Resistance RandomAccess Memory)和动态随机存取存储器(DRAM,Dynamic Random Access Memory)。上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (11)
1.一种在弱网环境下的通信系统,其特征在于,所述系统包括:
消息发送端,用于通过第一传输协议向中转服务器发送第一消息,所述第一消息对应第一消息主题;
所述中转服务器,用于接收所述消息发送端发送的所述第一消息;对所述第一消息进行传输格式转换,得到与第二传输协议对应的第二消息,所述第一消息和所述第二消息为表达相同消息含义的不同传输格式的消息;通过所述第二传输协议向分布式消息服务器发送所述第二消息;
所述分布式消息服务器,用于接收所述中转服务器发送的所述第二消息,所述分布式消息服务器支持对所述第二传输协议对应的消息进行处理以及双向通信;基于所述第二消息对应的所述第一消息主题,将所述第二消息发送至多个消息接收服务器中与所述第一消息主题对应的目标接收服务器;
所述消息接收服务器,用于接收所述分布式消息服务器传递的与所述第二传输协议对应的消息。
2.根据权利要求1所述的系统,其特征在于,
所述分布式消息服务器,还用于获取多个消息接收服务器对应的第一主题订阅信息,所述第一主题订阅信息用于指示所述多个消息接收服务器分别对候选消息主题的订阅情况;基于所述第一主题订阅信息从所述多个消息接收服务器中确定出订阅所述第一消息主题的所述目标接收服务器。
3.根据权利要求1所述的系统,其特征在于,所述消息发送端实现为代理服务器,所述系统还包括应用客户端;
所述应用客户端,用于通过所述第二传输协议向所述代理服务器发送第三消息,所述第三消息和所述第一消息为表达相同消息含义的不同传输格式的消息;
所述代理服务器,还用于接收所述应用客户端发送的所述第三消息;对所述第三消息进行传输格式转换,得到与所述第一传输协议对应的所述第一消息;通过所述第一传输协议向所述中转服务器发送所述第一消息;
所述中转服务器,还用于接收所述代理服务器发送的所述第一消息。
4.根据权利要求1至3任一所述的系统,其特征在于,
所述消息接收服务器,还用于通过所述第二传输协议向所述分布式消息服务器发送第四消息,所述第四消息对应第二消息主题;
所述分布式消息服务器,还用于接收所述消息接收服务器发送的所述第四消息;基于所述第四消息对应的所述第二消息主题,确定接收所述第四消息的目标消息接收端;向所述中转服务器发送所述第四消息,并指示接收所述第四消息的目标消息发送端;
所述中转服务器,还用于接收所述分布式消息服务器发送的所述第四消息;对所述第四消息进行传输格式转换,得到与所述第一传输协议对应的第五消息,所述第四消息和所述第五消息为表达相同消息含义的不同传输格式的消息;通过所述第一传输协议向所述目标消息发送端发送所述第五消息;
所述消息发送端,还用于接收所述中转服务器传递的与所述第一传输协议对应的消息。
5.根据权利要求4所述的系统,其特征在于,
所述分布式消息服务器,还用于获取多个消息发送端对应的第二主题订阅信息,所述第二主题订阅信息用于指示所述多个消息发送端分别对候选消息主题的订阅情况;基于所述第二主题订阅信息从所述多个消息发送端中确定出订阅所述第二消息主题的所述目标消息发送端。
6.根据权利要求4所述的系统,其特征在于,所述目标消息发送端实现为代理服务器,所述系统还包括应用客户端;
所述中转服务器,还用于通过所述第一传输协议向所述代理服务器发送端发送所述第五消息;
所述代理服务器,用于接收所述中转服务器发送的所述第五消息;对所述第五消息进行传输格式转换,得到与所述第二传输协议对应的所述第六消息,所述第五消息和所述第六消息为表达相同消息含义的不同传输格式的消息;通过所述第二传输协议向所述应用客户端发送所述第六消息;
所示应用客户端,用于接收所述代理服务器发送的所述第六消息。
7.根据权利要求1至3任一所述的方法,其特征在于,所述第一传输协议包括用户数据报协议UDP,所述第二传输协议包括传输控制协议TCP。
8.一种在弱网环境下的通信方法,其特征在于,所述方法由分布式消息服务器执行,所述分布式消息服务器支持对第二传输协议对应的消息进行处理以及双向通信,所述方法包括:
接收中转服务器通过所述第二传输协议发送的第二消息,所述第二消息对应第一消息主题,所述第二消息是所述中转服务器在接收到消息发送端通过第一传输协议发送的第一消息后,对所述第一消息进行传输格式转换得到的与所述第二传输协议对应的消息,所述第一消息和所述第二消息为表达相同消息含义的不同传输格式的消息;
基于所述第二消息对应的所述第一消息主题,将所述第二消息发送至多个消息接收服务器中与所述第一消息主题对应的目标接收服务器。
9.根据权利要求8所述的方法,其特征在于,所述基于所述第二消息对应的所述第一消息主题,将所述第二消息发送至多个消息接收服务器中与所述第一消息主题对应的目标接收服务器,包括:
获取多个消息接收服务器对应的第一主题订阅信息,所述第一主题订阅信息用于指示所述多个消息接收服务器分别对候选消息主题的订阅情况;
基于所述第一主题订阅信息从所述多个消息接收服务器中确定出订阅所述第一消息主题的所述目标接收服务器;
通过所述第二传输协议向所述目标接收服务器发送所述第二消息。
10.根据权利要求9所述的方法,其特征在于,所通过所述第二传输协议向所述目标接收服务器发送所述第二消息,包括:
通过消息队列对所述第二消息进行消息缓存;
响应于所述第二消息处于所述消息队列的队首位置,通过所述第二传输协议向所述目标接收服务器发送所述第二消息。
11.一种在弱网环境下的通信方法,其特征在于,所述方法由中转服务器执行,所述方法包括:
接收消息发送端通过第一传输协议传输的第一消息,所述第一消息对应第一消息主题;
对所述第一消息进行传输格式转换,得到与第二传输协议传输格式对应的第二消息,所述第一消息和所述第二消息为表达相同消息含义的不同传输格式的消息,所述第二传输协议为分布式消息服务器支持的传输协议;
通过所述第二传输协议向所述分布式消息服务器发送所述第二消息,所述分布式消息服务器用于基于所述第二消息对应的所述第一消息主题,将所述第二消息发送至多个消息接收服务器中与所述第一消息主题对应的目标接收服务器,所述分布式消息服务器支持双向通信。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310218704.5A CN116233243A (zh) | 2023-03-02 | 2023-03-02 | 一种弱网环境下的通信系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310218704.5A CN116233243A (zh) | 2023-03-02 | 2023-03-02 | 一种弱网环境下的通信系统及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116233243A true CN116233243A (zh) | 2023-06-06 |
Family
ID=86590799
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310218704.5A Pending CN116233243A (zh) | 2023-03-02 | 2023-03-02 | 一种弱网环境下的通信系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116233243A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117319243A (zh) * | 2023-08-11 | 2023-12-29 | 深圳市时代华盛网络科技有限公司 | 一种提升接口请求成功率的方法及系统 |
-
2023
- 2023-03-02 CN CN202310218704.5A patent/CN116233243A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117319243A (zh) * | 2023-08-11 | 2023-12-29 | 深圳市时代华盛网络科技有限公司 | 一种提升接口请求成功率的方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101143172B1 (ko) | 웹 서비스를 위한 신뢰성 있는 메시징 프로토콜을 이용한메시지의 효율적인 전송 | |
US10462707B2 (en) | Data transmission method and apparatus | |
US8478890B2 (en) | System and method for reliable virtual bi-directional data stream communications with single socket point-to-multipoint capability | |
KR101032512B1 (ko) | 멀티캐스트 컨퍼런스 세션 참가 방법 및 컴퓨터 판독 가능 기록 매체 | |
JP4857262B2 (ja) | エンド・ツー・エンドの信頼性のあるグループ通信のための方法および装置 | |
JP2006178961A (ja) | 要求−応答トランスポートプロトコルによる高信頼一方向メッセージング | |
CN103141050B (zh) | 快速通道互联系统中数据包重传方法、节点 | |
JP5550198B2 (ja) | マルチキャスト・ネットワークにおけるsctpのためのプロトコル・ブースタ | |
CN101567769A (zh) | 数据重传方法、系统及对等节点 | |
JP2014534760A (ja) | 複数の受信機にメッセージを伝送する装置および方法 | |
CN116233243A (zh) | 一种弱网环境下的通信系统及方法 | |
EP2445162B1 (en) | Method For Adaptive Streaming | |
US8769137B2 (en) | Systems and methods for negotiated accelerated block option for trivial file transfer protocol (TFTP) | |
JPH11177621A (ja) | データ送信装置及びデータ通信システム | |
CN114143382A (zh) | 一种双边加速数据传输方法及系统 | |
JP5331897B2 (ja) | 通信方法、情報処理装置及びプログラム | |
US8276158B2 (en) | HTTP based bounding storage space protocol | |
US9172774B2 (en) | Technique for managing communications at a router | |
JPH11249978A (ja) | データ転送方法および装置 | |
GB2551174A (en) | File distribution by multicast | |
WO2023222235A1 (en) | Switch controller, sending controller and methods for use in switch controller and sending controller in reliable multicast communication | |
JP2021129201A (ja) | 通信装置、通信方法およびプログラム | |
CN116633996A (zh) | 网络连接优化方法、装置、设备及可读存储介质 | |
CN117914817A (zh) | 实时通信方法、客户端、服务端、存储介质以及电子设备 | |
CN118381839A (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 |