CN101217543B - 在集群中的多个物理通道中按照优先级进行通信的方法 - Google Patents

在集群中的多个物理通道中按照优先级进行通信的方法 Download PDF

Info

Publication number
CN101217543B
CN101217543B CN2008100042282A CN200810004228A CN101217543B CN 101217543 B CN101217543 B CN 101217543B CN 2008100042282 A CN2008100042282 A CN 2008100042282A CN 200810004228 A CN200810004228 A CN 200810004228A CN 101217543 B CN101217543 B CN 101217543B
Authority
CN
China
Prior art keywords
physical channel
priority
data
communication link
transport layer
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.)
Expired - Fee Related
Application number
CN2008100042282A
Other languages
English (en)
Other versions
CN101217543A (zh
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.)
Caltta Technologies Co ltd
Original Assignee
ZTE Corp
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 ZTE Corp filed Critical ZTE Corp
Priority to CN2008100042282A priority Critical patent/CN101217543B/zh
Publication of CN101217543A publication Critical patent/CN101217543A/zh
Application granted granted Critical
Publication of CN101217543B publication Critical patent/CN101217543B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Communication Control (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种在集群中的多个物理通道中按照优先级进行通信的方法,包括以下步骤:步骤S102,确定集群中的多个物理通道的优先级;步骤S104,根据优先级在集群中的源节点和目的节点之间的物理通道中建立通信链路;步骤S106,在建立了通信链路后,在目的节点和源节点之间进行数据传输;步骤S108,当进行数据传输的物理通道故障时,按照多个物理通道的优先级将数据传输切换至优先级不高于发生故障的物理通道的优先级的多个物理通道中的一个中;以及步骤S110,检测发生故障的物理通道,在发生故障的物理通道恢复时,根据当前物理通道的优先级和故障恢复后的物理通道的优先级确定是否将数据传输主动切换至故障恢复后的物理通道。本发明使集群通信高效可靠。

Description

在集群中的多个物理通道中 按照优先级进行通信的方法 
技术领域
本发明涉及到集群通信,尤其涉及一种基于多个物理传输通道按消息等级传输的集群通信方法。 
背景技术
随着计算机技术以日新月异的速度发展,单台计算机的性能和可靠性越来越好,但还是有许多现实的要求是单台计算机难以达到的,在很多情况下,往往需要将多台计算机组织起来进行协同工作来模拟一台功能更强大的计算机来解决问题,这种技术称为集群技术。 
在集群系统中,各计算机的分工协作是通过彼此间的通信来维系的。因此,提供可靠的内部通信机制是集群系统高可用性,高性能和高扩展性的有力保证,也是集群系统设计中最重要的问题之一。在通常的设计中,一般将系统内控制消息和业务消息使用公用的物理通道和传输协议来传送,带来的问题是公共的物理传输通道有可能出现拥塞,大量的业务消息和控制消息在统一的传输层传送,可能导致控制消息的传输时延加大,甚至可能出现关键的控制消息没有在规定时间响应导致系统做出错误决策。特别的,如果要保证控制消息传输的可靠性,通常的做法是使控制消息和业务消息传输物理通道分离,使它们运行在不同的高速物理传输通道上,尽量使控制消息能够及时得到响应和处理,这样提高了控制消息传输的可靠 性,但同时也带来了新的问题,即业务消息的协议处理必须和控制消息协议处理分离,且控制消息处理优先级必须高于业务消息处理,软件流程更加复杂,出错的可能性增大,而且消息处理分离增加了性能的开销,同时增加高速物理传输通道也造成了资源浪费。 
因此,需要一种在集群中的多个物理通道中按照优先级进行通信的解决方案,能够解决上述相关技术中的问题。 
发明内容
本发明的目的是提供一种统一的可靠的集群通信方式,能够有效工作在不同物理传输通道之上,支持通信物理通道的切换,并支持消息优先级传送,提高集群系统的可用性。 
本发明的目的是提供一种通用的传输层协议(以下简称CTCP,Cluster Translation Control Protocol,集群传输控制协议),可以工作在不同物理通道之上,能够自动检测系统中集群节点之间最优的通信物理通道并在该链路上建立可靠的通信连接,在正常通信时支持消息按优先级传输,使关键的高优先级的控制消息能够得到最及时的响应和处理。在链路异常时,本协议可以主动发起向其它备用物理通信通道的建链流程,若建链成功,发起通道切换,可以保证传输层消息不丢失,为上层提供更高质量更可靠的通信服务。 
根据本发明提供了一种在集群中的多个物理通道中按照优先级进行通信的方法,包括以下步骤:步骤S102,确定集群中的多个物理通道的优先级;步骤S104,根据多个物理通道的优先级在集群中的源节点和目的节点之间的物理通道中建立通信链路;步骤S106,在物理通道中建立了通信链路后,在目的节点和源节点之间进行数据传输;步骤S108,当进行数据传输的物理通道故障时,按照多个物理通道的优先级将数据传输切换至优先级不高于发生故障的物理 通道的优先级的多个物理通道中的一个中;以及步骤S110,检测发生故障的物理通道,在发生故障的物理通道恢复时,根据进行数据传输的当前物理通道的优先级和故障恢复后的物理通道的优先级确定是否将数据传输主动切换至故障恢复后的物理通道。 
通信链路为传输层通信链路。 
传输层通信链路的传输控制层包括:目的节点的地址,该地址包括目的节点的区、群集和节点号;集群传输层控制协议;发送缓存队列,其为按优先级排列的待发送数据;接收缓存队列,其为按优先级排列的待上层接收或待派发的数据缓存队列;链路序列标识,用于在每次建立传输层通信链路需要唯一标明当前传输层通信链路号。 
集群传输层控制协议包括滑窗协议,滑窗协议包括发送窗口、重传窗口、和接收窗口。 
步骤S104包括以下步骤:步骤S104-2,建立传输层通信链路时,从当前可用的物理通道中的优先级最高的物理通道广播目的节点的地址,若源节点通过优先级最高的物理通道收到目的节点的回应,则在优先级最高的物理通道中建立传输层通信链路;步骤S104-4,若在优先级最高的物理通道中建立传输层通信链路超时,则按照通道优先级从其余可用的物理通道中选择优先级最高的物理通道,并重复步骤S104-2,直到建立了传输层通信链路;或步骤S104-6,当在所有可用的物理通道中建立传输层通信链路都失败后,确定源节点和目的节点之间的通信链路连接失败。 
步骤S106包括以下步骤:根据数据的优先级从高到低的顺序,按照滑窗协议将数据从源节点发送至目的节点。 
步骤S106还包括以下步骤:数据发送后,发送窗口保留数据,直到目的节点返回确认数据被正常接收的消息,才释放数据;或如果在规定时间内目的节点未返回确认数据被正常接收的消息,则重传发送窗口中保留的数据。 
步骤S106还包括以下步骤:目的节点按照数据的发送顺序接收数据,并按照数据的优先级将数据存入接收缓存区中。 
步骤S108包括以下步骤:当进行数据传输的高优先级物理通道故障时,保持故障物理通道的传输层通信链路,以及利用同等优先级的物理通道或较低优先级的物理通道发起重新建立传输层通信链路,若重新建立传输层通信链路成功,则切换至新的传输层通信链路进行数据传输;否则利用下一个可用的物理通道发起重新建立传输层通信链路,直到重新建立传输层通信链路成功,或者当所有物理通道重新建立传输层通信链路都失败后,断开故障物理通道的传输层通信链路。 
步骤S108还包括以下步骤:如果连接在进行数据传输的物理通道两端的节点中的一个节点关闭而另一个节点连接正常时,则关闭的节点向新的物理通道发起重新建立传输层通信链路的请求,并标识其为再次建立传输层通信链路,以提示连接正常的节点必须关闭前一物理通道再接收新的物理通道的建立传输层通信链路请求;以及连接正常的节点的数据到达连接关闭的节点时,通知连接正常的节点必须先关闭前一物理通道的传输层通信链路。 
步骤S110包括以下步骤:物理通道发生故障并且已经发生过物理通道切换后,定时检测发生故障的物理通道,当发生故障的物理通道故障恢复时,如果当前进行数据传输的物理通道的优先级与故障恢复后的物理通道的优先级相同,则继续利用当前进行数据传输的物理通道进行数据传输;或如果当前进行数据传输的物理通道 的优先级低于故障恢复后的物理通道的优先级,则主动将数据传输从当前进行数据传输的物理通道切换回故障恢复后的物理通道。 
本发明提供了一个集群通信的传输层协议,可以工作在不同物理通道之上,能够自动检测系统中集群节点之间最优的通信物理通道并在该链路上建立可靠的通信连接,在正常通信时支持消息按优先级传输,使关键的控制消息能够得到最及时的响应和处理。在链路异常时,本协议可以主动发起向其它备用物理通信通道的建链流程,若建链成功,发起通道切换,可以保证物理通道故障时传输层消息不丢失,为上层提供更高质量更可靠的通信服务,体现了集群通信的高效、可靠的特点。 
另外,本发明所提供的一种基于多物理通道按消息等级传输的集群通信方式,可以充分发挥多物理通道的备份作用,并减小集群节点间控制消息的通信时延,增强集群系统的安全性和实时性,提高集群系统的可用性。同时,该方法允许通信连接建立在不对等成本的高速物理通道和低速物理通道上,相比目前普遍采用的对等成本的物理传输通道备份,可以降低成本。 
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。 
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中: 
图1是示出根据本发明的在集群中的多个物理通道中按照优先级进行通信的方法的流程图; 
图2是示出根据本发明实施例的在集群中的多个物理通道中按照优先级进行通信的方法的流程图; 
图3是示出根据本发明第一实施例的在集群中的多个物理通道中按照优先级进行通信的方法的流程图; 
图4是示出根据本发明第二实施例的支持消息按等级的多物理通道集群通信初始化示意图; 
图5是示出根据本发明第二实施例的依据优先级策略建立集群节点通信连接示意图; 
图6是示出根据本发明第二实施例的CTCP连接维护示意图; 
图7是示出根据本发明第二实施例的CTCP正常通信数据发送示意图; 
图8是示出根据本发明第二实施例的CTCP正常通信数据接收示意图; 
图9是示出根据本发明第二实施例的当前通道故障时CTCP选择向备用物理通道切换示意图;以及 
图10是示出根据本发明第二实施例的高优先级通道检测并在通道恢复时通道切换示意图。 
具体实施方式
下面将结合附图来详细说明本发明的实施例。 
图1是示出根据本发明的在集群中的多个物理通道中按照优先级进行通信的方法的流程图。参照图1,根据本发明的在集群中的多个物理通道中按照优先级进行通信的方法包括以下步骤:步骤S102,确定集群中的多个物理通道的优先级;步骤S104,根据多个物理通道的优先级在集群中的源节点和目的节点之间的物理通道中建立通信链路;步骤S106,在物理通道中建立了通信链路后,在目的节点和源节点之间进行数据传输;步骤S108,当进行数据传输的物理通道故障时,按照多个物理通道的优先级将数据传输切换至优先级不高于发生故障的物理通道的优先级的多个物理通道中的一个中;以及步骤S110,检测发生故障的物理通道,在发生故障的物理通道恢复时,根据进行数据传输的当前物理通道的优先级和故障恢复后的物理通道的优先级确定是否将数据传输主动切换至故障恢复后的物理通道。 
通信链路为传输层通信链路。 
传输层通信链路的传输控制层包括:目的节点的地址,该地址包括目的节点的区、群集和节点号;集群传输层控制协议;发送缓存队列,其为按优先级排列的待发送数据;接收缓存队列,其为按优先级排列的待上层接收或待派发的数据缓存队列;链路序列标识,用于在每次建立传输层通信链路需要唯一标明当前传输层通信链路号。 
集群传输层控制协议包括滑窗协议,滑窗协议包括发送窗口、重传窗口、和接收窗口。 
步骤S104包括以下步骤:步骤S104-2,建立传输层通信链路时,从当前可用的物理通道中的优先级最高的物理通道广播目的节点的地址,若源节点通过优先级最高的物理通道收到目的节点的回应,则在优先级最高的物理通道中建立传输层通信链路;步骤 S104-4,若在优先级最高的物理通道中建立传输层通信链路超时,则按照通道优先级从其余可用的物理通道中选择优先级最高的物理通道,并重复步骤S104-2,直到建立了传输层通信链路;或步骤S104-6,当在所有可用的物理通道中建立传输层通信链路都失败后,确定源节点和目的节点之间的通信链路连接失败。 
步骤S106包括以下步骤:根据数据的优先级从高到低的顺序,按照滑窗协议将数据从源节点发送至目的节点。 
步骤S106还包括以下步骤:数据发送后,发送窗口保留数据,直到目的节点返回确认数据被正常接收的消息,才释放数据;或如果在规定时间内目的节点未返回确认数据被正常接收的消息,则重传发送窗口中保留的数据。 
步骤S106还包括以下步骤:目的节点按照数据的发送顺序接收数据,并按照数据的优先级将数据存入接收缓存区中。 
步骤S108包括以下步骤:当进行数据传输的高优先级物理通道故障时,保持故障物理通道的传输层通信链路,以及利用同等优先级的物理通道或较低优先级的物理通道发起重新建立传输层通信链路,若重新建立传输层通信链路成功,则切换至新的传输层通信链路进行数据传输;否则利用下一个可用的物理通道发起重新建立传输层通信链路,直到重新建立传输层通信链路成功,或者当所有物理通道重新建立传输层通信链路都失败后,断开故障物理通道的传输层通信链路。 
步骤S108还包括以下步骤:如果连接在进行数据传输的物理通道两端的节点中的一个节点关闭而另一个节点连接正常时,则关闭的节点向新的物理通道发起重新建立传输层通信链路的请求,并标识其为再次建立传输层通信链路,以提示连接正常的节点必须关 闭前一物理通道再接收新的物理通道的建立传输层通信链路请求;以及连接正常的节点的数据到达连接关闭的节点时,通知连接正常的节点必须先关闭前一物理通道的传输层通信链路。 
步骤S110包括以下步骤:物理通道发生故障并且已经发生过物理通道切换后,定时检测发生故障的物理通道,当发生故障的物理通道故障恢复时,如果当前进行数据传输的物理通道的优先级与故障恢复后的物理通道的优先级相同,则继续利用当前进行数据传输的物理通道进行数据传输;或如果当前进行数据传输的物理通道的优先级低于故障恢复后的物理通道的优先级,则主动将数据传输从当前进行数据传输的物理通道切换回故障恢复后的物理通道。 
下面结合图2来描述本发明的第一实施例。参照图2,该实施例提供了一种基于多个物理传输通道按消息等级传输的集群通信方法,包括以下步骤: 
步骤S202,支持消息按等级传输的多物理通道集群通信的初始化; 
步骤S204,依据优先级策略建立集群节点通信连接并提供相关的连接维护; 
步骤S206,支持消息等级的集群传输控制协议通信; 
步骤S208,当前通道故障时选择向备用物理通道的通信链路切换;以及 
步骤S210,支持向对发生过故障的高优先级物理通道检测,在高优先级通道恢复时主动发起向高优先级通道的链路切换。 
在步骤S202中,首先,系统启动时需要将所有本集群节点支持的物理通信通道进行初始化,集群节点内向其它集群节点通信的传输控制层必须包含以下内容: 
集群通信对端节点的通信地址,主要包括:集群的地址划分-区(zone),群集(cluster)和节点(node); 
集群传输层控制协议,例如采用滑窗协议,主要包括发送窗口,重传窗口,接收窗口等; 
发送缓存队列,按优先级排列的待发送消息; 
接收缓存队列,按优先级排列的待上层接收或待派发的消息缓存队列; 
链路序列标识,每次建链需要唯一标明的当前链路号。 
然后,在通道初始化过程中需要确定所有可用的物理通道优先级。如果不同物理通道可以提供基本相同或对等的通信带宽和传输性能,则可以设置为相同的优先级,如果不同物理通道的通信带宽和传输性能不同,则依据通信带宽和传输性能的高低,给物理通道划分不同的优先级,传输性能高的使用高优先级。默认两台主机间消息传输首选高优先级的物理通道,即采用最高通信质量的物理通道。 
在步骤S204中,通信建立链路过程是由上层消息发送请求触发的,建链时需要从首选物理通信通道广播请求通信目的端的节点地址,广播中携带了本机的通信节点地址等信息,若收到目的端的回应,确定底层采用的物理通信通道,并建立传输层的通信连接;若建链超时,则按通道优先级依次选取剩下的可用通信物理通道,然后从第二个物理通道发起通信建链请求,方法与前面相同,直到 在所有按优先级排列的可用物理通信通道列表中全部通道尝试建链失败后,才认为建立两集群节点的通信连接失败; 
CTCP端到端的通信传输层连接基于数据报的滑窗协议,连接建立后的通信维护依赖于保活和窗口探测机制,通信可靠性依赖于超时重发和快速重传等现有机制;以及 
CTCP的多播采用对多个节点的单播技术实现,提供集群内的组播功能。 
在步骤S206中,CTCP正常通信时的消息头结构主要包括目的集群节点通信地址,源集群节点通信地址,发送数据报序号,应答数据报序号,窗口大小,消息优先级和CTCP事件号等; 
CTCP消息传输按优先级,重要的控制消息使用高的优先级,在通信消息缓存中的高优先级队列中存放,在数据传输时优先保证进入CTCP窗口控制器中的发送窗口发送;低优先级的消息在通信消息缓存中的低优先级队列中存放,待前面的高优先级队列所有消息发送完后再进入CTCP窗口控制器的发送窗口。数据报进入CTCP窗口控制器后,按照滑窗协议处理,每个数据报按包序号传输,在数据发送后,发送窗口仍然保留数据,直到对端回应确认该数据包已经正常接收,才释放该数据包。如果在规定时间通信对端没有回应确认,则开启重传流程,通过超时重传保证数据传输的可靠性; 
接收方消息在CTCP窗口控制器的接收窗口中按数据报序号接收,但进入接收缓存区中需要按优先级排列,即保证高优先级消息先提交给上层也同时保证同一优先级发送的消息按顺序接收。 
在步骤S208中,连接断链后选择向备用物理通道的通信链路切换,保证上层无消息丢失。CTCP连接检测到通信故障后,即将断链时,不会立刻释放CTCP控制结构,需要先在通道设备表中搜 索同等优先级的物理通道或其它优先级的物理通道并发起重建链,若三次握手成功,则连接恢复,按正常方式通信,保证无消息丢失。如果建链失败,则在通道设备表中搜索下一个可用的物理通道并发起建链,如此继续,直到所有物理通道都尝试建链失败后,CTCP连接才真正断链;以及 
如果连接一端关闭,一端正常,连接关闭方可能发起向新物理通道重新连接,必须以不同的链路序列标识标识本方已经是再次建立连接,提示对端必须先关闭以前的通道再接受新物理通道的建链请求;若在该条件下连接正常的节点数据报到达连接关闭节点时,CTCP会发通知消息,告知对端必须先关闭该通道链路。 
在步骤S210中,高优先级的首选物理通道在遭遇到通信故障并且已经发生过通道切换后,需要主动定时检测,一旦该物理通道故障恢复,主动发起从当前物理通道向高优先级首选物理通道的切换,若当前物理通道与首选物理通道优先级相同,则无须主动发起物理通道切换; 
高优先级的物理通道可以为集群系统提供良好的通信带宽和高性能,所以在高优先级物理通道故障并且已经发生过通道切换时需要动态检测首选的高优先级物理通道是否已经恢复,本方法中的通道检测方式是集群节点主动定时通过首选通道向通信对端节点发起附加建链请求,若对方回应允许建链,则关闭低优先级物理通道,发起向高优先级的物理通道建立链路的动作。若当前物理通道与首选物理通道优先级相同,则保持现状,不发起高优先级物理通道检测。 
下面接合图3至图9来详细说明本发明的第二实施例。 
如图3所示,本实施例所提供的一种基于多物理通道按消息等级传输的集群通信方法,包括以下基本处理步骤: 
步骤S302,依据优先级策略建立集群节点通信连接; 
步骤S304,按消息等级传输的可靠传输层通信; 
步骤S306,当前通道故障时选择向其它备用物理通道的切换,并对出现故障的高优先级物理通道检测,在通道恢复时主动发起向原高优先级通道的切换。 
所述的步骤S302中,根据集群通信初始化时建立的全局物理通道表,CTCP可以依据通道优先级策略建立集群节点间通信连接。如果建立连接失败,则在全局通道表中搜索次高优先级通道并发起建立连接,如此反复直到建立连接成功。建立通信连接成功后,记录该连接集群节点间所有可用物理通道到CTCP控制块设备列表中,通过连接的保活检测和窗口检测维护链路通信状态。 
集群系统内节点对集群通信初始化,主要包括将所有本集群节点支持的物理通信通道进行初始化,根据传输性能建立区分优先级的全局物理通道表。集群节点间通信的传输控制层相关配置包括: 
集群通信对端节点的通信地址,主要包括:集群的地址划分,区(zone),群集(cluster)和节点(node); 
集群传输层控制协议,例如采用现有技术——滑窗协议,主要包括发送窗口,重传窗口,接收窗口等; 
发送缓存队列,按优先级排列的待发送消息; 
接收缓存队列,按优先级排列的待上层接收或待派发的消息缓存队列; 
链路序列标识,每次建链需要唯一标明的当前链路号。 
其主要相关数据结构表示如下: 
    struct 
    { 
        {zone;cluster;node;}/*集群节点地址*/ 
        WndCtl;               /*CTCP窗口控制器*/ 
        DgramDevList;         /*全局传输通道设备列表*/ 
        T_MSG_SndList;        /*需要在该连接上发送的消息队列*/ 
        T_MSGQueue;           /*该连接接收消息队列*/ 
        LinkNum;              /*链路序列标识*/ 
    }CTCPCtl; 
集群通信初始化,如图4所示。 
步骤S402,初始化集群控制传输控制协议的默认参数和数据结构; 
步骤S404,设置CTCP链路初始序列号; 
步骤S406,初始化所有传输通道物理设备; 
步骤S408,建立设备描述符表,为每个传输物理设备申请相关的设备描述符; 
步骤S410,按通道设备传输性能为每个设备设置优先级,传输性能高的使用高优先级。 
其中,通信建立链路过程是由上层消息发送请求触发的,建链时需要从首选物理通信通道广播请求通信目的端的节点地址,广播中携带了本机的通信节点地址等信息,若收到目的端的回应,确定底层采用的物理通信通道,并建立传输层的通信连接;若建链超时,则按通道优先级按通道优先级选取次佳的通信物理通道,从第二个物理通道发起通信建链请求,方法与前面相同,直到在所有按优先级排列的物理通信通道列表中全部尝试建链失败后,才认为建立两集群节点的通信连接失败。建立通信链路流程如图5所示。 
步骤S502,上层消息发送请求触发通信建链; 
步骤S504~S506,搜索全局通道表,选取最高优先级的可用物理通道,若没有可用的物理通道,则执行步骤S514; 
步骤S508,向该通道发起建链握手,建立连接,若建链成功执行步骤S512,否则执行步骤S510; 
步骤S510,若建链失败,设置该通道不可用,转向全局通道表中搜索下一个可用物理通道; 
步骤S512,若建链成功,记录所有可用物理通道到CTCP通道表中;以及 
步骤S514,进行异常处理,并完成处理。 
其中,CTCP端到端的通信传输层连接采用现有的基于数据报的滑窗协议,主要是采用定时查询和检测消息的方式实现。连接建立后的通信维护依赖于定时保活和窗口探测等消息检测机制,通信可靠性依赖于超时重发和快速重传等机制。连接维护及相关状态变迁,流程如图6所示。 
步骤S602,向对端发起通信建链请求,发送端CTCP进入等待连接同步状态(SYN-); 
步骤S604,接收端处理对端发送的建立CTCP连接请求(即连接同步消息SYN),进入接受连接同步状态(SYN+),并协商该连接中可用的通道设备表; 
步骤S606,处于等待连接同步状态(SYN-)的CTCP处理建链回应消息(SYN ACK),连接工作状态变为ESTABLISH; 
步骤S608,处于接受连接同步状态(SYN+)的CTCP处理建链回应消息(SYN ACK),连接工作状态变为ESTABLISH; 
步骤S610,处于工作状态的CTCP相互发起的连接保活检测和滑窗检测消息; 
步骤S612,处于工作状态的CTCP接收的连接保活检测应答和滑窗检测应答消息; 
处于工作状态的CTCP,在规定时间未收到连接保活检测应答或滑窗检测应答消息,并且超过一定次数后,发起连接预关闭。 
CTCP的多播采用对多个节点的单播技术实现,提供集群内的组播功能。 
所述的步骤S604中,CTCP正常业务通信时,采用滑窗协议实现按序收发和流控机制,业务消息需要按消息优先级进入滑窗发送器,在接收端,从滑窗接收器接收的按序消息也需要按优先级提交用户处理,保证同一优先级的消息按序接收。 
CTCP正常通信时的消息头结构主要包括目的集群节点通信地址,源集群节点通信地址,发送数据报序号,应答数据报序号,窗口大小,消息优先级和CTCP事件号。 
消息头结构定义如下: 
struct 
    struct{ 
                char   zone:3;/*目的集群节点地址,zone 3位,cluster 5位,node 8位*/ 
                char   cluster:5; 
                char   node; 
        }DestNode; 
            struct{ 
                char   zone:3;/*源集群节点地址,zone 3位,cluster 5位,node 8位*/ 
                char   cluster:5; 
                char   node; 
        }SrcNode; 
        unsigned short wPackNo;      /*发送数据报序号*/ 
        unsigned short wAckNo;       /*应答数据报序号*/ 
        char            twin:4;      /*4位窗口大小*/ 
        char            tPriority:4;/*4位优先级*/ 
        unsigned short wEvent;      /*16位的事件号*/ 
}T_CTCPHead; 
CTCP消息按优先级发送,重要的控制消息使用高的优先级,在通信消息缓存中的高优先级队列中存放,在数据传输时优先保证进入CTCP窗口控制器中的发送窗口发送;低优先级的消息在通信消息缓存中的低优先级队列中存放,待前面的高优先级队列消息发送完后再进入CTCP窗口控制器的发送窗口。数据报进入CTCP窗 口控制器后,按照滑窗协议,每个数据报按包序号传输,在数据发送后,发送窗口仍然保留数据,直到对端回应确认该数据包已经正常接收,才释放该数据包。如果在规定时间通信对端没有回应确认,则开启重传流程,通过超时重传保证数据传输的可靠性。如图7所示: 
步骤S702~S704,连接确定后,待发送消息按优先级放入消息缓存队列; 
步骤S706~S708,满足滑窗发送条件后,CTCP发送器按优先级从消息缓存队列中取消息到发送窗口; 
步骤S710,发送数据后,设置重传定时器,等待对端确认; 
步骤S712,若重传定时器先超时,则重新发送发送窗口中数据;若重传超过规定次数,则执行步骤S716,否则执行步骤S714; 
步骤S714,若收到对端确认,释放发送窗口中消息,完成发送。 
步骤S716,发起连接预关闭。 
接收消息是在CTCP窗口控制器的接收窗口中按数据报序号接收,但进入接收缓存区中需要按优先级排列,即保证高优先级消息先提交给上层也同时保证同一优先级发送的消息按顺序接收。如图8所示: 
步骤S802,接收数据按包序号放入接收窗口,如果接收数据包序号错乱,回应对端消息乱序确认; 
步骤S804~S806,按消息优先级将接收窗口中的按序接收数据包放入用户接收缓存队列中,并向对端回应确认; 
步骤S808~S810,用户接收数据后,回应按CTCP接收器的实际容量扩大CTCP接收窗口。 
如果CTCP发送端收到对端的消息乱序确认,则发起数据重传。 
所述的步骤S808~S810中,当前通道故障时,CTCP在检测到连接异常状态下,选择向全局通道表中其它可用的物理通道发起通信建链流程,并在重新连接成功时切换物理通道,从而保证CTCP连接正常。CTCP还向对发生过故障的高优先级物理通道定时发起检测,在高优先级通道恢复正常时,主动发起从当前通道向高优先级通道的链路切换流程。整个流程对上层业务基本不可见,可以做到消息不丢失。 
CTCP连接预关闭后,不会立刻释放CTCP控制结构,需要先在连接通道设备表中搜索同等优先级的物理通道或下一个优先级的可用物理通道并发起建链,若三次握手成功,则连接恢复,按正常方式通信,保证无消息丢失。如果建链失败,则在通道设备表中搜索下一个可用的物理通道并发起建链,如此继续,直到所有物理通道都尝试建链失败后,CTCP链路才真正断链。如图9所示: 
步骤S902~S904,连接故障时,按优先级查找CTCP通道表中的可用设备通道; 
步骤S906,向该设备通道发起通信建链; 
步骤S908,若建链成功,顺序执行步骤S910和S912,否则执行步骤S914; 
步骤S910~S912,发起通道切换,以新的通信通道替代原来的通道,恢复CTCP连接; 
步骤S914若建链不成功,设置该通道不可用,重复步骤S902-S908,直到CTCP通道设备表中所有通道建立通信链路失败,执行步骤S916;以及 
步骤S916,连接断链。 
特别的,如果连接一端关闭,一端正常,连接关闭方可能发起向新物理通道重新连接,必须以不同的链路标识LinkNum标识本方已经是再次建立连接,提示对端必须先关闭以前的通道再接受新物理通道的建链请求;若在该条件下连接正常的节点数据报到达连接关闭节点时,CTCP会发通知消息,告知对端必须关闭该通道。 
如图10所示,高优先级的首选物理通道在遭遇到通信故障并且已经发生过通道切换后,需要主动定时检测,一旦该物理通道故障恢复,主动发起从当前物理通道向高优先级首选物理通道的切换,若当前物理通道与首选物理通道优先级相同,则无须主动发起物理通道切换。 
高优先级的物理通道可以为集群系统提供良好的通信带宽和高性能,所以在高优先级物理通道故障并且已经发生过通道切换时需要动态检测首选的高优先级物理通道是否已经恢复,本方法中的通道检测方式是集群节点主动定时通过首选通道向通信对端节点发起附加建链请求,若对方回应允许建链,则关闭低优先级物理通道,发起向高优先级的物理通道建立链路的动作。若当前物理通道与首选物理通道优先级相同,则保持现状,不发起高优先级物理通道检测。 
本发明所提供的一种基于多物理通道按消息等级传输的集群传输层通信协议,能够自动检测系统中集群节点之间最优的通信物理通道并在该链路上建立可靠的通信连接,在正常通信时支持消息按 优先级传输,使关键的控制消息能够得到最及时的响应和处理。在链路异常时,本协议可以主动发起向其它备用物理通信通道的建链流程,通道切换时保证物理通道故障时传输层消息不丢失,为上层提供更高质量更可靠的通信服务。可以充分发挥多物理通道的备份作用,并减小集群节点间控制消息的通信时延,增强了集群系统的安全性和实时性,提高了集群系统的可用性,充分体现了集群通信的特点——高效,可靠。另外,该方法允许通信连接建立在不对等成本的高速物理通道和低速物理通道上并实现相互备份,相比目前普遍采用的对等成本的物理传输通道备份,可以降低成本。 
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。 

Claims (9)

1.一种在集群中的多个物理通道中按照优先级进行通信的方法,
其特征在于,包括以下步骤:
步骤S102,确定所述集群中的所述多个物理通道的优先级;
步骤S104,根据所述多个物理通道的优先级在所述集群中的源节点和目的节点之间的物理通道中建立通信链路;
步骤S106,在所述物理通道中建立了通信链路后,在所述目的节点和所述源节点之间进行数据传输;
步骤S108,当进行数据传输的物理通道故障时,按照所述多个物理通道的优先级将所述数据传输切换至优先级不高于发生故障的所述物理通道的优先级的所述多个物理通道中的一个中;以及
步骤S110,检测发生故障的所述物理通道,在发生故障的所述物理通道恢复时,根据进行所述数据传输的当前物理通道的优先级和故障恢复后的所述物理通道的优先级确定是否将所述数据传输主动切换至故障恢复后的所述物理通道;
其中,所述通信链路为传输层通信链路,以及所述传输层通信链路的传输控制层包括:
所述目的节点的地址,所述地址包括所述目的节点的区、群集和节点号;
集群传输层控制协议;
发送缓存队列,其为按优先级排列的待发送数据;
接收缓存队列,其为按优先级排列的待上层接收或待派发的数据缓存队列;
链路序列标识,用于在每次建立所述传输层通信链路需要唯一标明当前传输层通信链路号。
2.根据权利要求1所述的方法,其特征在于,所述集群传输层控制协议包括滑窗协议,所述滑窗协议包括发送窗口、重传窗口、和接收窗口。
3.根据权利要求2所述的方法,其特征在于,所述步骤S104包括以下步骤:
步骤S104-2,建立所述传输层通信链路时,从当前可用的物理通道中的优先级最高的物理通道广播目的节点的地址,若所述源节点通过所述优先级最高的物理通道收到所述目的节点的回应,则在所述优先级最高的物理通道中建立所述传输层通信链路;
步骤S104-4,若在所述优先级最高的物理通道中建立所述传输层通信链路超时,则按照所述通道优先级从其余可用的物理通道中选择优先级最高的物理通道,并重复所述步骤S104-2,直到建立了所述传输层通信链路;或
步骤S104-6,当在所有所述可用的物理通道中建立所述传输层通信链路都失败后,确定所述源节点和所述目的节点之间的通信链路连接失败。
4.根据权利要求3所述的方法,其特征在于,所述步骤S106包括以下步骤:
根据所述数据的优先级从高到低的顺序,按照所述滑窗协议将所述数据从所述源节点发送至所述目的节点。
5.根据权利要求4所述的方法,其特征在于,所述步骤S106还包括以下步骤:
所述数据发送后,发送窗口保留所述数据,直到所述目的节点返回确认所述数据被正常接收的消息,才释放所述数据;或
如果在规定时间内所述目的节点未返回确认所述数据被正常接收的消息,则重传所述发送窗口中保留的所述数据。
6.根据权利要求5所述的方法,其特征在于,所述步骤S106还包括以下步骤:
所述目的节点按照所述数据的发送顺序接收所述数据,并按照所述数据的优先级将所述数据存入接收缓存区中。
7.根据权利要求6所述的方法,其特征在于,所述步骤S108包括以下步骤:
当进行数据传输的高优先级物理通道故障时,保持故障物理通道的所述传输层通信链路,以及利用同等优先级的物理通道或较低优先级的物理通道发起重新建立传输层通信链路,若重新建立所述传输层通信链路成功,则切换至新的传输层通信链路进行数据传输;否则利用下一个可用的物理通道发起重新建立传输层通信链路,直到重新建立所述传输层通信链路成功,或者当所有物理通道重新建立所述传输层通信链路都失败后,断开所述故障物理通道的所述传输层通信链路。
8.根据权利要求7所述的方法,其特征在于,所述步骤S108还包括以下步骤:
如果连接在进行数据传输的所述物理通道两端的节点中的一个节点关闭而另一个节点连接正常时,则关闭的所述节点向新的物理通道发起重新建立传输层通信链路的请求,并标识其为再次建立传输层通信链路,以提示连接正常的所述节点必须关闭前一物理通道再接收新的物理通道的建立所述传输层通信链路请求;以及
连接正常的所述节点的数据到达所述连接关闭的节点时,通知连接正常的所述节点必须先关闭所述前一物理通道的传输层通信链路。
9.根据权利要求8所述的方法,其特征在于,所述步骤S110包括以下步骤:
所述物理通道发生故障并且已经发生过物理通道切换后,定时检测发生故障的所述物理通道,当发生故障的所述物理通道故障恢复时,如果当前进行所述数据传输的物理通道的优先级与故障恢复后的所述物理通道的优先级相同,则继续利用当前进行数据传输的所述物理通道进行数据传输;或
如果当前进行所述数据传输的所述物理通道的优先级低于故障恢复后的所述物理通道的优先级,则主动将所述数据传输从当前进行所述数据传输的所述物理通道切换回故障恢复后的所述物理通道。
CN2008100042282A 2008-01-21 2008-01-21 在集群中的多个物理通道中按照优先级进行通信的方法 Expired - Fee Related CN101217543B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2008100042282A CN101217543B (zh) 2008-01-21 2008-01-21 在集群中的多个物理通道中按照优先级进行通信的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2008100042282A CN101217543B (zh) 2008-01-21 2008-01-21 在集群中的多个物理通道中按照优先级进行通信的方法

Publications (2)

Publication Number Publication Date
CN101217543A CN101217543A (zh) 2008-07-09
CN101217543B true CN101217543B (zh) 2011-05-25

Family

ID=39623905

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008100042282A Expired - Fee Related CN101217543B (zh) 2008-01-21 2008-01-21 在集群中的多个物理通道中按照优先级进行通信的方法

Country Status (1)

Country Link
CN (1) CN101217543B (zh)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102263780A (zh) * 2010-05-25 2011-11-30 中兴通讯股份有限公司 组播通信的实现方法及节点
CN102904821B (zh) * 2012-09-28 2016-06-08 华为技术有限公司 一种数据传输方法、装置及系统
CN104519075A (zh) * 2013-09-26 2015-04-15 中兴通讯股份有限公司 一种数据传输方法及设备
CN105357577A (zh) * 2014-08-22 2016-02-24 中兴通讯股份有限公司 一种丢包重传方法及装置
CN105812100A (zh) * 2014-12-31 2016-07-27 同方威视技术股份有限公司 用于可编程逻辑控制器和个人计算机进行实时通信的方法
US10028304B2 (en) * 2016-10-07 2018-07-17 Qualcomm Incorporated Beam correspondence indication, UE calibration indication, and synchronization information for TDD RACH procedure
CN107959623B (zh) * 2016-10-18 2020-10-16 腾讯科技(深圳)有限公司 一种多通道容灾方法与装置
CN106658565B (zh) * 2016-12-06 2024-02-20 卡斯柯信号有限公司 用于轨道交通车地无线通信的多链路择优传输方法及装置
CN108900338B (zh) * 2018-06-29 2021-09-28 上海顺舟智能科技股份有限公司 一种通道备份通信系统及方法
CN109032976A (zh) * 2018-07-25 2018-12-18 郑州云海信息技术有限公司 一种物理通道的处理方法和装置
CN109347674B (zh) * 2018-10-30 2022-01-07 北京大米科技有限公司 一种数据传输的方法、装置及电子设备
CN110601799A (zh) * 2019-09-12 2019-12-20 无锡江南计算技术研究所 一种基于双滑动窗口的链路重传方法及装置
CN111064552B (zh) * 2019-11-22 2023-05-30 科大讯飞股份有限公司 智能设备控制方法、装置、电子设备和存储介质
CN111130714B (zh) * 2019-11-28 2023-04-07 网银在线(北京)科技有限公司 数据传输方法、装置、电子设备以及计算机可读介质
CN111590610A (zh) * 2020-04-30 2020-08-28 南京智音云数字科技有限公司 一种新型智能对话机器人控制系统及其方法
CN112087341B (zh) * 2020-09-21 2023-09-19 携程旅游网络技术(上海)有限公司 基于多通道补偿的通信方法、系统、电子设备及存储介质
CN114500404B (zh) * 2022-01-25 2024-02-20 银清科技有限公司 通讯报文传输隔离方法及装置
CN115842852A (zh) * 2022-09-15 2023-03-24 北京国基科技股份有限公司 一种节点间通信方法、系统、存储介质和电子设备
CN116545922B (zh) * 2023-07-05 2023-12-05 国网浙江省电力有限公司宁波供电公司 一种多通道通信方法与系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030170020A1 (en) * 1999-12-16 2003-09-11 At&T Corp. Method and apparatus for capacity-efficient restoration in an optical communication system
CN1620058A (zh) * 2003-11-19 2005-05-25 华为技术有限公司 异步传输模式反向复用协议中参考链路选择切换的方法
CN1852071A (zh) * 2006-05-09 2006-10-25 中兴通讯股份有限公司 一种光网络中的数据通信网系统及其实现方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030170020A1 (en) * 1999-12-16 2003-09-11 At&T Corp. Method and apparatus for capacity-efficient restoration in an optical communication system
CN1620058A (zh) * 2003-11-19 2005-05-25 华为技术有限公司 异步传输模式反向复用协议中参考链路选择切换的方法
CN1852071A (zh) * 2006-05-09 2006-10-25 中兴通讯股份有限公司 一种光网络中的数据通信网系统及其实现方法

Also Published As

Publication number Publication date
CN101217543A (zh) 2008-07-09

Similar Documents

Publication Publication Date Title
CN101217543B (zh) 在集群中的多个物理通道中按照优先级进行通信的方法
CN107347021B (zh) 一种基于sdn网络可靠传输方法
US9385941B2 (en) Data communication system and method for preventing packet proliferation in a multi-device link aggregation network
US7672223B2 (en) Method and apparatus for replicating a transport layer protocol stream
US6856593B2 (en) Communication system, relay apparatus, end system, and communicating method
CN101860491B (zh) 聚合类链路双向转发检测方法及其设备
CN100561977C (zh) 一种多个端口共享传输链路时的快速重路由方法
EP1379038A1 (en) Method for implementing router interface backup with virtual router redundancy protocol
CN106576108B (zh) 通信系统中的通信方法和设备及系统
EA010335B1 (ru) Способ выполнения хэндовера в системе мобильной связи с пакетной коммутацией
CN101141391A (zh) 一种实现故障切换的方法
WO2010037318A1 (zh) 数据传输系统及数据传输方法
EP1708445A1 (en) Communication device and logical link abnormality detection method
JP2013126244A (ja) パケット通信装置および方法
CN101060533B (zh) 一种提高vgmp协议可靠性的方法、系统及装置
CN105743614B (zh) 数据的传输方法和装置
CN101425942A (zh) 一种实现双向转发检测的方法、装置及系统
WO2014127629A1 (zh) 报文转发系统、方法及装置
CN101841432A (zh) 一种业务接入路由器的端口备份方法、装置和系统
CN110313138A (zh) 使用多个网元实现高可用性
CN102142978B (zh) 数据备份传输处理方法、装置及系统
CN101645810A (zh) Pw的检测方法和设备
WO2012062069A1 (zh) 双向转发检测报文的发送方法及设备
CN107241208A (zh) 一种报文转发方法、第一交换机及相关系统
JP2001186171A (ja) データパケット転送網とデータパケット転送方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20210311

Address after: 801-6, 8 / F, building 52, 2 Jingyuan North Street, Beijing Economic and Technological Development Zone, Daxing District, Beijing

Patentee after: CALTTA TECHNOLOGIES Co.,Ltd.

Address before: 518057 Zhongxing building, science and technology south road, Nanshan District hi tech Industrial Park, Guangdong, Shenzhen

Patentee before: ZTE Corp.

TR01 Transfer of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20110525

CF01 Termination of patent right due to non-payment of annual fee