CN109347674A - 一种数据传输的方法、装置及电子设备 - Google Patents
一种数据传输的方法、装置及电子设备 Download PDFInfo
- Publication number
- CN109347674A CN109347674A CN201811279711.1A CN201811279711A CN109347674A CN 109347674 A CN109347674 A CN 109347674A CN 201811279711 A CN201811279711 A CN 201811279711A CN 109347674 A CN109347674 A CN 109347674A
- Authority
- CN
- China
- Prior art keywords
- link
- data
- links
- terminal
- 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.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0654—Management of faults, events, alarms or notifications using network fault recovery
- H04L41/0663—Performing the actions predefined by failover planning, e.g. switching to standby network elements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/22—Arrangements for detecting or preventing errors in the information received using redundant apparatus to increase reliability
-
- 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/14—Session management
- H04L67/141—Setup of application sessions
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Communication Control (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本发明提供了一种数据传输的方法、装置及电子设备,用于解决现有技术中在保证实时通信网络低时延时,无法有效抵抗网络抖动,用户体验差的问题。包括:在应用层按照设定传输协议与第一终端建立至少两条链路;选择所述至少两条链路中的第一链路与所述第一终端进行数据传输,其中,所述第一链路为所述至少两条链路中的任一条链路;响应于链路切换指令,通过第二链路与所述第一终端进行数据传输,其中,所述链路切换指令用于指示从所述第一链路切换到所述第二链路,所述第二链路为所述至少两条链路中的任一条链路之外任一条链路,所述第一终端为生产端或订阅端。
Description
技术领域
本发明涉及一种通信技术领域,尤其涉及一种数据传输的方法、装置及电子设备。
背景技术
随着互联网应用的发展,在实时通信网络(Real-Time Networks,RTN)里,网络抖动导致端到端的音视频会话出现掉线或卡顿,导致通信体验变差,为了抵抗网络抖动,最直接的办法是增加收发缓冲区的长度,当网络发生抖动,暂时收不到数据时也不会影响用户的收看或收听,然而缓冲区的长度和延迟成正比,缓冲区的长度越长延迟越高,但是在音视频会话中要求延迟越来越低,最好达到秒级,因此抵抗网络抖动和低延迟互相矛盾。
在现有技术中,为了保证秒级延迟的交互通信,采取了以下三种方式:方式一、在物理层或链路层用专线,例如,物理光纤,虚拟专用网络、多协议标签交换(Multi-ProtocolLabel Switching,MPLS)专线等,来降低路由跳数以减小延迟并保证传输带宽的稳定;方式二、在传输层或应用层的传输过程中采用低延迟的传输协议,将数据收发缓冲区(jitterbuffer)的长度减少;方式三、为避免重传,采用少量丢包容忍和自动纠错等方式减小延迟。具体的,对方式二进行举例说明,其中的一种可用于低延迟的传输协议为零消息队列传输协议(Zero Message Queue Transport Protocol,ZMTP),当采用ZMTP时,虽然实时通信传输的延迟极低,但是依然无法避免难以预知的网络抖动情况,抵抗网络抖动的能力很弱,当传输网络的某一段发生突发的拥塞或者中断时,即使时间很短暂,也会导致通信的双方明显的感知到变化,影响通信体验,为解决上述问题,提出了多机热备和软件操作路由切换方案,例如,A端与B端进行通信的链路中断时,A端需要切换到新的路由器重新建立与B端进行通信的链路,上述方案不可避免的会导致服务暂时中断,并且重新建立链路需要的时间较长,导致延迟高,而且需要准备多个路由器,造成费用成本高。
综上所述,如何在保证在通信过程中低延迟的同时有效抵抗网络抖动是目前需要解决的问题。
发明内容
有鉴于此,本发明提供了一种数据传输的方法、装置及电子设备,用于解决现有技术中在保证实时通信网络低时延时,无法有效抵抗网络抖动,用户体验差的问题。
根据本发明实施例的第一个方面,提供了一种数据传输的方法,包括:在应用层按照设定传输协议与第一终端建立至少两条链路;选择所述至少两条链路中的第一链路与所述第一终端进行数据传输,其中,所述第一链路为所述至少两条链路中的任一条链路;响应于链路切换指令,通过第二链路与所述第一终端进行数据传输,其中,所述链路切换指令用于指示从所述第一链路切换到所述第二链路,所述第二链路为所述至少两条链路中的任一条链路之外任一条链路,所述第一终端为生产端或订阅端。
在一个实施例中,所述在应用层按照设定传输协议与第一终端建立至少两条链路之后,该方法还包括:通过所述设定传输协议对所述至少两条链路与所述第一终端之间进行握手通信。
在一个实施例中,所述设定传输协议为ZMTP协议。
在一个实施例中,所述第一终端为订阅端,所述选择所述至少两条链路中的第一链路与所述第一终端进行数据传输,具体包括:选择所述第一链路将第一数据发送给所述订阅端;所述响应于链路切换指令,通过所述第二链路与所述第一终端进行数据传输,具体包括:响应于所述链路切换指令,通过所述第二链路将所述第一数据发送给所述订阅端。
在一个实施例中,所述第一终端为生产端,所述选择所述至少两条链路中的第一链路与所述第一终端进行数据传输之前,该方法还包括:接收到所述生产端通过所述至少两条链路发送的第二数据;所述选择所述至少两条链路中的第一链路与所述第一终端进行数据传输,具体包括:通过所述至少两条链路中的第一链路接收所述生产端发送的所述第二数据。
在一个实施例中,所述通过所述至少两条链路中的第一链路接收所述生产端发送的所述第二数据之后,所述响应于链路切换指令,通过所述第二链路与所述第一终端进行数据传输,具体包括:响应于所述链路切换指令,接收到所述生产端通过所述第二链路发送的所述第二数据。
在一个实施例中,所述接收到所述生产端通过所述至少两条链路发送的第二数据之前,该方法还包括:向所述生产端发送第三数据,其中,所述第三数据用于指示所述生产端通过所述至少两条链路发送所述第二数据。
在一个实施例中,所述响应于所述链路切换指令,接收到所述生产端通过所述第二链路发送的所述第二数据之前,该方法还包括:预先存储设定个数的第一数据包,其中,所述第一数据包为通过第一链路传输的所述设定个数的最新第二数据。
在一个实施例中,所述响应于所述链路切换指令,接收到所述生产端通过所述第二链路发送的所述第二数据之后,该方法还包括:将通过第二链路接收到的第二数据包与所述第一数据包进行比较,确定通过所述第二链路传输的所述第二数据的起始位置,其中,所述第二数据包为通过第二链路传输所述第二数据时最开始传输的所述设定个数的最新第二数据。
根据本发明实施例的第二个方面,提供了一种数据传输的装置,包括:建立单元,用于在应用层按照设定传输协议与第一终端建立至少两条链路;通信单元,用于选择所述至少两条链路中的第一链路与所述第一终端进行数据传输,其中,所述第一链路为所述至少两条链路中的任一条链路;切换单元,用于响应于链路切换指令,通过第二链路与所述第一终端进行数据传输,其中,所述链路切换指令用于指示从所述第一链路切换到所述第二链路,所述第二链路为所述至少两条链路中的任一条链路之外任一条链路,所述第一终端为生产端或订阅端。
在一个实施例中,所述在应用层按照设定传输协议与第一终端建立至少两条链路之后,所述建立单元还用于:通过所述设定传输协议对所述至少两条链路与所述第一终端之间进行握手通信。
在一个实施例中,所述设定传输协议为ZMTP协议。
在一个实施例中,所述第一终端为订阅端,所述通信单元具体用于:选择所述第一链路将第一数据发送给所述订阅端;所述切换单元具体用于:接收到所述链路切换指令;响应于所述链路切换指令,通过所述第二链路将所述第一数据发送给所述订阅端。
在一个实施例中,所述第一终端为生产端,所述选择所述至少两条链路中的第一链路与所述第一终端进行数据传输之前,所述装置还包括接收单元:用于接收到所述生产端通过所述至少两条链路发送的第二数据;所述通信单元具体用于:通过所述至少两条链路中的第一链路接收所述生产端发送的所述第二数据。
在一个实施例中,所述通过所述至少两条链路中的第一链路接收所述生产端发送的所述第二数据之后,所述切换单元还用于:响应于所述链路切换指令,接收到所述生产端通过所述第二链路发送的所述第二数据。
在一个实施例中,所述接收到所述生产端通过所述至少两条链路发送的第二数据之前,所述通信单元还用于:向所述生产端发送第三数据,其中,所述第三数据用于指示所述生产端通过所述至少两条链路发送所述第二数据。
在一个实施例中,所述响应于所述链路切换指令,接收到所述生产端通过所述第二链路发送的所述第二数据之前,该装置还包括:存储单元,用于预先存储设定个数的第一数据包,其中,所述第一数据包为通过第一链路传输的所述设定个数的最新第二数据。
在一个实施例中,所述响应于所述链路切换指令,接收到所述生产端通过所述第二链路发送的所述第二数据之后,该装置还包括:比较单元,用于将通过第二链路接收到的第二数据包与所述第一数据包进行比较,确定通过所述第二链路传输的所述第二数据的起始位置,其中,所述第二数据包为通过第二链路传输所述第二数据时最开始传输的所述设定个数的最新第二数据。
根据本发明实施例的第三个方面,提供了一种电子设备,包括存储器和处理器,所述存储器用于存储一条或多条计算机程序指令,其中,所述一条或多条计算机程序指令被所述处理器执行以实现如第一方面或第一方面任一种可能所述的方法。
根据本发明实施例的第四个方面,提供了一种计算机可读存储介质,其上存储计算机程序指令,所述计算机程序指令在被处理器执行时实现如第一方面或第一方面任一种可能所述的方法。
本发明实施例的有益效果包括:在应用层按照设定传输协议与第一终端建立至少两条链路;选择所述至少两条链路中的第一链路与所述第一终端进行数据传输,其中,所述第一链路为所述至少两条链路中的任一条链路;响应于链路切换指令,通过第二链路与所述第一终端进行数据传输,其中,所述链路切换指令用于指示从所述第一链路切换到所述第二链路,所述第二链路为所述至少两条链路中的任一条链路之外任一条链路,所述第一终端为生产端或订阅端。当第一链路因网络抖动断开时,应用层可以直接切换到另一条第二链路进行数据传输,实现无缝切换,可以有效的抵抗网络抖动,并且应用层采用设定传输协议进行传输时可以保证通信的延迟低。
附图说明
通过以下参照附图对本发明实施例的描述,本发明的上述以及其它目的、特征和优点将更为清楚,在附图中:
图1(a)本发明实施例提供的现有技术中一种数据传输的结构示意图;
图1(b)本发明实施例提供的现有技术中一种数据传输的结构示意图;
图2是本发明实施例提供的一种数据传输的方法流程图;
图3是本发明实施例提供的另一种数据传输的结构示意图;
图4(a)是本发明实施例提供的一种数据传输的方法流程图;
图4(b)是本发明实施例提供的另一种数据传输的方法流程图;
图5是本发明实施例提供的另一种数据传输的结构示意图;
图6(a)是本发明实施例提供的一种数据传输的方法流程图;
图6(b)是本发明实施例提供的另一种数据传输的方法流程图;
图6(c)是本发明实施例提供的再一种数据传输的方法流程图;
图7是本发明实施例提供的一种数据传输的装置示意图;
图8是本发明实施例提供的一种电子设备结构示意图。
具体实施方式
以下基于实施例对本发明进行描述,但是本发明并不仅仅限于这些实施例。在下文对本发明的细节描述中,详尽描述了一些特定的细节部分。对本领域技术人员来说没有这些细节部分的描述也可以完全理解本申请。此外,本领域普通技术人员应当理解,在此提供的附图都是为了说明的目的。
除非上下文明确要求,否则整个说明书和权利要求书中的“包括”、“包含”等类似词语应当解释为包含的含义而不是排他或穷举的含义;也就是说,是“包括但不限于”的含义。
在本发明的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。
随着互联网应用的发展,在一对一课堂音视频教学场景中教师与学生通过网络进行实时教学,例如,教师所使用的服务器A与学生使用的服务器B进行实时通信,由于教师与学生之间是双向实时通信,所以服务器A既是生产(PUB)端,又是订阅(SUB)端,当服务器A为PUB端时,服务器B为SUB端,当服务器A为SUB端时,服务器B为PUB端,其中,PUB端发出的PUB消息是基于ZMTP,因此传输速度快,延迟低。本发明实施例适用于基于ZMTP构建的零消息队列(Zero Message Queue,ZMQ)是一个高性能的异步传输通信库,其中,所述ZMQ也可以称为是一个简单的传输层,或者是一个消息处理队列库,ZMQ使得套接字(socket)编程更加简单,可在多个线程、内核和主机盒之间弹性伸缩,适用于高性能网络。基于传输层的传输控制协议(Transmission Control Protocol,TCP)抽象出了自身的ZMQ socket,因此采用ZMQsocket的服务器都可以通过ZMTP进行通信。
以上述服务器A和服务器B为例,对现有技术中的实时通信进行详细说明,如图1所示,当服务器A为PUB端时,通过一条链路发送消息给服务器B,当服务器A为SUB端时,从另一条链路接收服务器B发送的消息,虽然采用ZMTP进行实时通信时延迟极低,但抵抗网络抖动的能力很弱,为了在保证低延迟的同时增加抵抗网络抖动的能力,本发明提出了一种数据传输的方法,具体如下。
在一个具体实施例中,本发明提供的一种数据传输的方法,在与第一终端进行实时通信的第二终端中建立代理网关,所述代理网关具体执行如下步骤,具体如图2所示,包括:
步骤S200、在应用层按照设定传输协议与第一终端建立至少两条链路。
具体的,所述设定传输协议包括ZMTP、路由表维护协议(Routing tablemaintenance protocol,RTMP)等,本发明在此只做示例性说明,而不局限与此。
举例说明,代理网关在应用层按照ZMTP与第一终端建立至少两条链路进行数据传输,这些链路可以基于专线建立,也可以基于公网建立,本发明对其不做限定。
步骤S201、选择所述至少两条链路中的第一链路与所述第一终端进行数据传输,其中,所述第一链路为所述至少两条链路中的任一条链路。
具体的,代理网关在所述至少两条链路中的第一链路与所述第一终端进行数据传输。
步骤S202、响应于链路切换指令,通过第二链路与所述第一终端进行数据传输,其中,所述链路切换指令用于指示从所述第一链路切换到所述第二链路,所述第二链路为所述至少两条链路中的任一条链路之外任一条链路,所述第一终端为生产端或订阅端。
具体的,当发生网络故障或者拥塞时,代理网关把通信数据从第一链路切换到正常工作的第二链路上,由于代理网关是基于ZMTP进行的,因此发生切换时,对进行实时通信的第一终端和第二终端是透明的,因此数据传输可以无缝的从一条链路转换到另一条链路。
举例说明,所述链路切换指令是网络故障或拥塞触发的,而网络故障或拥塞是由代理网关的上行ZMQ socket连接超时或其他错误触发的,所述上行是指代理网关与第一终端间的数据传输。
本发明实施例中,在应用层按照设定传输协议与第一终端建立至少两条链路;选择所述至少两条链路中的第一链路与所述第一终端进行数据传输,接收到链路切换指令,通过所述第二链路与所述第一终端进行数据传输,当第一链路因网络抖动断开时,应用层可以直接切换到另一条第二链路进行数据传输,实现无缝切换,可以有效的抵抗网络抖动,并且应用层采用设定传输协议进行传输时可以保证通信的延迟低。
可选的,在步骤S200之后,该方法还包括:通过所述设定传输协议对所述至少两条链路与所述第一终端之间进行握手通信。
本发明实施例中,代理网关与第一终端通之间的链路进行握手通信之后,可以直接进行数据传输,减少延迟。
下面通过两个具体实施例,对代理网关分别代理PUB端和SUB端是,PUB端和SUB端的实时通信进行详细说明。
具体实施例一、
假设第一终端为订阅SUB端,第二终端为生产PUB端,代理网关设置于第二终端(PUB端),当第二终端通过代理网关向第一终端发送数据时,具体流程如图3所示。
步骤S300、代理网关建立与第一终端进行通信的至少两条链路。
步骤S301、代理网关将第一数据通过第一链路发送给SUB端。
具体的,如图4(a)所示,实线为第一链路,代理网关将第一数据的数据包通过第一链路发送给SUB端,其中,所述第一数据的数据包编号为Pk1,Pk2,…Pkn。
步骤S302、接收到链路切换指令。
具体的,当发生网络抖动时,应用层感知网络抖动,代理网关接收到链路切换指令,自动切换到第二链路。
步骤S303、代理网关将所述第一数据通过所述第二链路发送给所述订阅端。
具体的,如图4(b)所示,实现为第二链路,代理网关将第一数据的数据包通过第二链路发送给SUB端,其中,所述第一数据的数据包编号为Pkn+1,Pkn+2…。
具体实施例二、
假设第一终端为生产PUB端,第二终端为订阅SUB端,代理网关设置于第二终端(SUB端),当第二终端通过代理网关接收第一终端发送的数据时,具体流程如图5所示。
步骤S500、代理网关接收到生产PUB端通过所述至少两条链路发送的第二数据。
步骤S501、代理网关选择接收所述至少两条链路中的第一链路发送的所述第二数据。
具体如图6(a)所示,第一链路和第二链路上都有数据传输,都为实线,选择接收第一链路发送的第二数据。
步骤S502、接收到所述链路切换指令。
具体的,当发生网络抖动时,第一链路不稳定,发生掉线,停止使用第一链路发送第二数据,切换到使用第二链路接收数据。
具体如图6(b)所示,第一链路发生掉线,选择接收第二链路发送的第二数据。
步骤S503、代理网关接收到所述第二链路发送的所述第二数据。
具体如图6(c)所示,选择接收第二链路发送的第二数据,即实线表示第二链路。
可选的,在步骤S500之前,该方法还包括:向所述生产端发送第三数据,其中,所述第三数据用于指示所述生产端通过所述至少两条链路发送所述第二数据。
具体的,订阅端要先向生产端发送第三数据,生产端收到消息后,才会将第二数据通过订阅端与生产端之间的链路,将第二数据发送给订阅端。
在步骤S500中,由于代理网关的两条链路同时接受生产端发送的第二数据,而两条链路接收的第二数据并不一定是同时的,若两条链路接收的第二数据并不一定是同时的,因此,网关设备针对每条链路,都会存储设定长度的特征队列,用于存储数据包,对于收到的数据包执行先进先出(First in First out,FIFO)的操作,只存储最新的设定长度的数据包,其中,所示设定长度可以为10个。对两条链路存储的数据包队列进行比较,确定切换后数据如何传输,具体的比较方式为,将两个队列的数据包分别提取出来,提取每个数据包前设定个数的字节,其中,所述设定个数的字节为100个字节,若数据包中的字节数小于100个,则全部提取,然后进行md5哈希(hash)操作,将结果作为队列元素的特征key,按照从队尾到队头的方向(即从最新数据到最旧数据)进行比对,按照新数据源和旧数据源的匹配情况,找出两个队列的相对先后顺序,一般会出现三种情况。
情况一、第一链路和第二链路接收到的第二数据相同,即根据第一链路接收到的旧数据源与第二链路接收到的新数据源确定的两个队列的队列元素的特征key相同,切换后不需要做额外处理,切换链路后可以直接继续通过第二链路传输数据。
情况二、第一链路传输的数据比第二链路传输的数据慢,即第二链路传输的新数据源比第一链路传输的旧数据源新,在从第一链路切换到
第二链路时可能会发生漏传,因此需要将网关设备为第一链路存储的旧数据源的队列与第二链路存储的新数据源的队列进行比较,将旧数据源中存储的数据发出后再在对应的元素开始发送新数据源,以防止数据漏传,具体新旧数据源的队列元素,如表1所示。
表1
旧数据源 | K(n+1) | K(n+2) | K(n+3) | K(n+4) |
新数据源 | K(n+3) | K(n+4) | K(n+5) | K(n+6) |
情况三、第一链路传输的数据比第二链路传输的数据快,即第二链路传输的新数据源比第一链路传输的旧数据源旧,在从第一链路切换到第二链路时可能会发生重传,因此需要将网关设备为第一链路存储的旧数据源的队列与第二链路存储的新数据源的队列进行比较,到达与旧数据源中存储的数据对应的元素后再开始发送新数据源,以防止数据重传,具体新旧数据源的队列元素,如表2所示。
表2
旧数据源 | K(n+1) | K(n+2) | K(n+3) | K(n+4) |
新数据源 | K(n-1) | K(n) | K(n+1) | K(n+2) |
图7是本发明实施例提供的一种数据传输的装置示意图。如图7所示,本实施例的数据传输的装置包括:建立单元71、通信单元72和切换单元73。
其中,所述建立单元71,用于在应用层按照设定传输协议与第一终端建立至少两条链路;通信单元72,用于选择所述至少两条链路中的第一链路与所述第一终端进行数据传输,其中,所述第一链路为所述至少两条链路中的任一条链路;切换单元73,用于响应于链路切换指令,通过第二链路与所述第一终端进行数据传输,其中,所述链路切换指令用于指示从所述第一链路切换到所述第二链路,所述第二链路为所述至少两条链路中的任一条链路之外任一条链路,所述第一终端为生产端或订阅端。
在一个实施例中,所述在应用层按照设定传输协议与第一终端建立至少两条链路之后,所述建立单元71还用于:通过所述设定传输协议对所述至少两条链路与所述第一终端之间进行握手通信。
在一个实施例中,所述设定传输协议为ZMTP。
在一个实施例中,所述第一终端为订阅端,所述通信单元具体用于:选择所述第一链路将第一数据发送给所述订阅端;所述切换单元具体用于:接收到所述链路切换指令;响应于所述链路切换指令,通过所述第二链路将所述第一数据发送给所述订阅端。
在一个实施例中,所述第一终端为生产端,所述选择所述至少两条链路中的第一链路与所述第一终端进行数据传输之前,所述装置还包括接收单元:用于接收到所述生产端通过所述至少两条链路发送的第二数据;所述通信单元具体用于:通过所述至少两条链路中的第一链路接收所述生产端发送的所述第二数据。
在一个实施例中,所述通过所述至少两条链路中的第一链路接收所述生产端发送的所述第二数据之后,所述切换单元还用于:响应于所述链路切换指令,接收到所述生产端通过所述第二链路发送的所述第二数据。
在一个实施例中,所述接收到所述生产端通过所述至少两条链路发送的第二数据之前,所述通信单元还用于:向所述生产端发送第三数据,其中,所述第三数据用于指示所述生产端通过所述至少两条链路发送所述第二数据。
在一个实施例中,所述响应于所述链路切换指令,接收到所述生产端通过所述第二链路发送的所述第二数据之前,该装置还包括:存储单元,用于预先存储设定个数的第一数据包,其中,所述第一数据包为通过第一链路传输的所述设定个数的最新第二数据。
在一个实施例中,所述响应于所述链路切换指令,接收到所述生产端通过所述第二链路发送的所述第二数据之后,该装置还包括:比较单元,用于将通过第二链路接收到的第二数据包与所述第一数据包进行比较,确定通过所述第二链路传输的所述第二数据的起始位置,其中,所述第二数据包为通过第二链路传输所述第二数据时最开始传输的所述设定个数的最新第二数据。
图8是本发明实施例的电子设备的示意图。图8所示的电子设备为通用数据传输装置,其包括通用的计算机硬件结构,其至少包括处理器81和存储器82。处理器81和存储器82通过总线83连接。存储器82适于存储处理器81可执行的指令或程序。处理器81可以是独立的微处理器,也可以是一个或者多个微处理器集合。由此,处理器81通过执行存储器82所存储的指令,从而执行如上所述的本发明实施例的方法流程实现对于数据的处理和对于其它装置的控制。总线83将上述多个组件连接在一起,同时将上述组件连接到显示控制器84和显示装置以及输入/输出(I/O)装置85。输入/输出(I/O)装置85可以是鼠标、键盘、调制解调器、网络接口、触控输入装置、体感输入装置、打印机以及本领域公知的其他装置。典型地,输入/输出装置85通过输入/输出(I/O)控制器86与***相连。
如本领域技术人员将意识到的,本发明实施例的各个方面可以被实现为***、方法或计算机程序产品。因此,本发明实施例的各个方面可以采取如下形式:完全硬件实施方式、完全软件实施方式(包括固件、常驻软件、微代码等)或者在本文中通常可以都称为“电路”、“模块”或“***”的将软件方面与硬件方面相结合的实施方式。此外,本发明实施例的各个方面可以采取如下形式:在一个或多个计算机可读介质中实现的计算机程序产品,计算机可读介质具有在其上实现的计算机可读程序代码。
可以利用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或计算机可读存储介质。计算机可读存储介质可以是如(但不限于)电子的、磁的、光学的、电磁的、红外的或半导体***、设备或装置,或者前述的任意适当的组合。计算机可读存储介质的更具体的示例(非穷尽列举)将包括以下各项:具有一根或多根电线的电气连接、便携式计算机软盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪速存储器)、光纤、便携式光盘只读存储器(CD-ROM)、光存储装置、磁存储装置或前述的任意适当的组合。在本发明实施例的上下文中,计算机可读存储介质可以为能够包含或存储由指令执行***、设备或装置使用的程序或结合指令执行***、设备或装置使用的程序的任意有形介质。
计算机可读信号介质可以包括传播的数据信号,所述传播的数据信号具有在其中如在基带中或作为载波的一部分实现的计算机可读程序代码。这样的传播的信号可以采用多种形式中的任何形式,包括但不限于:电磁的、光学的或其任何适当的组合。计算机可读信号介质可以是以下任意计算机可读介质:不是计算机可读存储介质,并且可以对由指令执行***、设备或装置使用的或结合指令执行***、设备或装置使用的程序进行通信、传播或传输。
可以使用包括但不限于无线、有线、光纤电缆、RF等或前述的任意适当组合的任意合适的介质来传送实现在计算机可读介质上的程序代码。
用于执行针对本发明实施例各方面的操作的计算机程序代码可以以一种或多种编程语言的任意组合来编写,所述编程语言包括:面向对象的编程语言如Java、Smalltalk、C++等;以及常规过程编程语言如“C”编程语言或类似的编程语言。程序代码可以作为独立软件包完全地在用户计算机上、部分地在用户计算机上执行;部分地在用户计算机上且部分地在远程计算机上执行;或者完全地在远程计算机或服务器上执行。在后一种情况下,可以将远程计算机通过包括局域网(LAN)或广域网(WAN)的任意类型的网络连接至用户计算机,或者可以与外部计算机进行连接(例如通过使用因特网服务供应商的因特网)。
上述根据本发明实施例的方法、设备(***)和计算机程序产品的流程图图例和/或框图描述了本发明实施例的各个方面。将要理解的是,流程图图例和/或框图的每个块以及流程图图例和/或框图中的块的组合可以由计算机程序指令来实现。这些计算机程序指令可以被提供至通用计算机、专用计算机或其它可编程数据处理设备的处理器,以产生机器,使得(经由计算机或其它可编程数据处理设备的处理器执行的)指令创建用于实现流程图和/或框图块或块中指定的功能/动作的装置。
还可以将这些计算机程序指令存储在可以指导计算机、其它可编程数据处理设备或其它装置以特定方式运行的计算机可读介质中,使得在计算机可读介质中存储的指令产生包括实现在流程图和/或框图块或块中指定的功能/动作的指令的制品。
计算机程序指令还可以被加载至计算机、其它可编程数据处理设备或其它装置上,以使在计算机、其它可编程设备或其它装置上执行一系列可操作步骤来产生计算机实现的过程,使得在计算机或其它可编程设备上执行的指令提供用于实现在流程图和/或框图块或块中指定的功能/动作的过程。
以上所述仅为本发明的优选实施例,并不用于限制本发明,对于本领域技术人员而言,本发明可以有各种改动和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (20)
1.一种数据传输的方法,其特征在于,包括:
在应用层按照设定传输协议与第一终端建立至少两条链路;
选择所述至少两条链路中的第一链路与所述第一终端进行数据传输,其中,所述第一链路为所述至少两条链路中的任一条链路;
响应于链路切换指令,通过第二链路与所述第一终端进行数据传输,其中,所述链路切换指令用于指示从所述第一链路切换到所述第二链路,所述第二链路为所述至少两条链路中的任一条链路之外任一条链路,所述第一终端为生产端或订阅端。
2.如权利要求1所述的方法,其特征在于,所述在应用层按照设定传输协议与第一终端建立至少两条链路之后,该方法还包括:
通过所述设定传输协议对所述至少两条链路与所述第一终端之间进行握手通信。
3.如权利要求1所述的方法,其特征在于,所述设定传输协议为ZMTP。
4.如权利要求1所述的方法,其特征在于,所述第一终端为订阅端,所述选择所述至少两条链路中的第一链路与所述第一终端进行数据传输,具体包括:
选择所述第一链路将第一数据发送给所述订阅端;
所述响应于链路切换指令,通过所述第二链路与所述第一终端进行数据传输,具体包括:
响应于所述链路切换指令,通过所述第二链路将所述第一数据发送给所述订阅端。
5.如权利要求1所述的方法,其特征在于,所述第一终端为生产端,所述选择所述至少两条链路中的第一链路与所述第一终端进行数据传输之前,该方法还包括:
接收到所述生产端通过所述至少两条链路发送的第二数据;
所述选择所述至少两条链路中的第一链路与所述第一终端进行数据传输,具体包括:
通过所述至少两条链路中的第一链路接收所述生产端发送的所述第二数据。
6.如权利要求5所述的方法,其特征在于,所述通过所述至少两条链路中的第一链路接收所述生产端发送的所述第二数据之后,所述响应于链路切换指令,通过所述第二链路与所述第一终端进行数据传输,具体包括:
响应于所述链路切换指令,接收到所述生产端通过所述第二链路发送的所述第二数据。
7.如权利要求5所述的方法,其特征在于,所述接收到所述生产端通过所述至少两条链路发送的第二数据之前,该方法还包括:
向所述生产端发送第三数据,其中,所述第三数据用于指示所述生产端通过所述至少两条链路发送所述第二数据。
8.如权利要求6所述的方法,其特征在于,所述响应于所述链路切换指令,接收到所述生产端通过所述第二链路发送的所述第二数据之前,该方法还包括:
预先存储设定个数的第一数据包,其中,所述第一数据包为通过第一链路传输的所述设定个数的最新第二数据。
9.如权利要求8所述的方法,其特征在于,所述响应于所述链路切换指令,接收到所述生产端通过所述第二链路发送的所述第二数据之后,该方法还包括:
将通过第二链路接收到的第二数据包与所述第一数据包进行比较,确定通过所述第二链路传输的所述第二数据的起始位置,其中,所述第二数据包为通过第二链路传输所述第二数据时最开始传输的所述设定个数的第二数据。
10.一种数据传输的装置,其特征在于,包括:
建立单元,用于在应用层按照设定传输协议与第一终端建立至少两条链路;
通信单元,用于选择所述至少两条链路中的第一链路与所述第一终端进行数据传输,其中,所述第一链路为所述至少两条链路中的任一条链路;
切换单元,用于响应于链路切换指令,通过第二链路与所述第一终端进行数据传输,其中,所述链路切换指令用于指示从所述第一链路切换到所述第二链路,所述第二链路为所述至少两条链路中的任一条链路之外任一条链路,所述第一终端为生产端或订阅端。
11.如权利要求10所述的装置,其特征在于,所述在应用层按照设定传输协议与第一终端建立至少两条链路之后,所述建立单元还用于:
通过所述设定传输协议对所述至少两条链路与所述第一终端之间进行握手通信。
12.如权利要求10所述的装置,其特征在于,所述设定传输协议为ZMTP。
13.如权利要求10所述的装置,其特征在于,所述第一终端为订阅端,所述通信单元具体用于:
选择所述第一链路将第一数据发送给所述订阅端;
所述切换单元具体用于:接收到所述链路切换指令;
响应于所述链路切换指令,通过所述第二链路将所述第一数据发送给所述订阅端。
14.如权利要求10所述的装置,其特征在于,所述第一终端为生产端,所述选择所述至少两条链路中的第一链路与所述第一终端进行数据传输之前,所述装置还包括接收单元:
用于接收到所述生产端通过所述至少两条链路发送的第二数据;
所述通信单元具体用于:通过所述至少两条链路中的第一链路接收所述生产端发送的所述第二数据。
15.如权利要求14所述的装置,其特征在于,所述通过所述至少两条链路中的第一链路接收所述生产端发送的所述第二数据之后,所述切换单元还用于:
响应于所述链路切换指令,接收到所述生产端通过所述第二链路发送的所述第二数据。
16.如权利要求14所述的装置,其特征在于,所述接收到所述生产端通过所述至少两条链路发送的第二数据之前,所述通信单元还用于:
向所述生产端发送第三数据,其中,所述第三数据用于指示所述生产端通过所述至少两条链路发送所述第二数据。
17.如权利要求15所述的装置,其特征在于,所述响应于所述链路切换指令,接收到所述生产端通过所述第二链路发送的所述第二数据之前,该装置还包括:
存储单元,用于预先存储设定个数的第一数据包,其中,所述第一数据包为通过第一链路传输的所述设定个数的最新第二数据。
18.如权利要求17所述的装置,其特征在于,所述响应于所述链路切换指令,接收到所述生产端通过所述第二链路发送的所述第二数据之后,该装置还包括:
比较单元,用于将通过第二链路接收到的第二数据包与所述第一数据包进行比较,确定通过所述第二链路传输的所述第二数据的起始位置,其中,所述第二数据包为通过第二链路传输所述第二数据时最开始传输的所述设定个数的最新第二数据。
19.一种电子设备,包括存储器和处理器,其特征在于,所述存储器用于存储一条或多条计算机程序指令,其中,所述一条或多条计算机程序指令被所述处理器执行以实现如权利要求1-9中任一项所述的方法。
20.一种计算机可读存储介质,其上存储计算机程序指令,其特征在于,所述计算机程序指令在被处理器执行时实现如权利要求1-9任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811279711.1A CN109347674B (zh) | 2018-10-30 | 2018-10-30 | 一种数据传输的方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811279711.1A CN109347674B (zh) | 2018-10-30 | 2018-10-30 | 一种数据传输的方法、装置及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109347674A true CN109347674A (zh) | 2019-02-15 |
CN109347674B CN109347674B (zh) | 2022-01-07 |
Family
ID=65312624
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811279711.1A Active CN109347674B (zh) | 2018-10-30 | 2018-10-30 | 一种数据传输的方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109347674B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111669797A (zh) * | 2020-05-28 | 2020-09-15 | 北京瑞华赢科技发展有限公司 | 移动网络平滑切换方法、装置及道路交通运输车辆 |
CN112653507A (zh) * | 2020-12-25 | 2021-04-13 | 东方红卫星移动通信有限公司 | 低轨通信卫星星座的移动切换方法及*** |
CN114745422A (zh) * | 2022-04-02 | 2022-07-12 | 阿里云计算有限公司 | 数据传输的线路切换方法、数据传输***、线路管理界面及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060198341A1 (en) * | 2005-03-07 | 2006-09-07 | Singh Ajoy K | Method and apparatus for improved link layer handoff |
CN101197772A (zh) * | 2007-12-26 | 2008-06-11 | 华为技术有限公司 | 实现媒体面多路径的方法、装置和*** |
CN101217543A (zh) * | 2008-01-21 | 2008-07-09 | 中兴通讯股份有限公司 | 在集群中的多个物理通道中按照优先级进行通信的方法 |
CN104243396A (zh) * | 2013-06-07 | 2014-12-24 | 阿尔卡特朗讯公司 | 在第一端点与第二端点之间建立关联的方法及相关端点 |
US20150020135A1 (en) * | 2013-07-11 | 2015-01-15 | Dejero Labs Inc. | Systems and methods for transmission of data streams |
-
2018
- 2018-10-30 CN CN201811279711.1A patent/CN109347674B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060198341A1 (en) * | 2005-03-07 | 2006-09-07 | Singh Ajoy K | Method and apparatus for improved link layer handoff |
CN101197772A (zh) * | 2007-12-26 | 2008-06-11 | 华为技术有限公司 | 实现媒体面多路径的方法、装置和*** |
CN101217543A (zh) * | 2008-01-21 | 2008-07-09 | 中兴通讯股份有限公司 | 在集群中的多个物理通道中按照优先级进行通信的方法 |
CN104243396A (zh) * | 2013-06-07 | 2014-12-24 | 阿尔卡特朗讯公司 | 在第一端点与第二端点之间建立关联的方法及相关端点 |
US20150020135A1 (en) * | 2013-07-11 | 2015-01-15 | Dejero Labs Inc. | Systems and methods for transmission of data streams |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111669797A (zh) * | 2020-05-28 | 2020-09-15 | 北京瑞华赢科技发展有限公司 | 移动网络平滑切换方法、装置及道路交通运输车辆 |
CN112653507A (zh) * | 2020-12-25 | 2021-04-13 | 东方红卫星移动通信有限公司 | 低轨通信卫星星座的移动切换方法及*** |
CN112653507B (zh) * | 2020-12-25 | 2022-07-26 | 东方红卫星移动通信有限公司 | 低轨通信卫星星座的移动切换方法及*** |
CN114745422A (zh) * | 2022-04-02 | 2022-07-12 | 阿里云计算有限公司 | 数据传输的线路切换方法、数据传输***、线路管理界面及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109347674B (zh) | 2022-01-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Lu et al. | {Multi-Path} transport for {RDMA} in datacenters | |
JP6571090B2 (ja) | 協働するネットワークコントローラに基づくマルチドメイン送信元ルート選択転送 | |
CN109347674A (zh) | 一种数据传输的方法、装置及电子设备 | |
JP5660211B2 (ja) | 通信経路制御システム、及び通信経路制御方法 | |
US9871878B2 (en) | Network traffic accelerator | |
CN104052684A (zh) | 动态适配计算机网络中的最大传输单元大小的方法和*** | |
WO2016033948A1 (zh) | 一种发送窗口流量控制方法和终端 | |
US10129722B2 (en) | Service processing method and network device | |
JPWO2008023656A1 (ja) | 通信装置 | |
CN103490931B (zh) | 一种不中断业务升级过程中协议不中断的方法和装置 | |
US20160087894A1 (en) | Method and system for changing path and controller thereof | |
US20180234289A1 (en) | High availability using multiple network elements | |
US9509450B2 (en) | Snoop virtual receiver time | |
CN109474365A (zh) | 一种帧同步udp网络同步方法 | |
CN109218222A (zh) | 一种实现发送端调速的方法、装置和*** | |
CN108432287A (zh) | 一种数据传输方法及网络侧设备 | |
CN104158683A (zh) | 一种跨设备聚合组快速收敛方法及装置 | |
US20160277943A1 (en) | Network system, control method of network system, communication device, and program | |
JP6129526B2 (ja) | 通信装置、通信方法およびプログラム | |
CN109586931B (zh) | 组播方法及终端设备 | |
EP1901497A1 (en) | Apparatus for low latency communications through an alternate path | |
WO2015107806A1 (ja) | 通信装置 | |
Cisco | Release 10.1(1) Caveats/Release 10.1(2) Modifications | |
CN109981463B (zh) | 信息处理方法、装置、网关及存储介质 | |
JP5913146B2 (ja) | 現用系ルータ装置、通信システム、経路制御方法、及びプログラム |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |