CN101184050B - 分布式节点组播方法、分布式节点组播组件和分布式系统 - Google Patents

分布式节点组播方法、分布式节点组播组件和分布式系统 Download PDF

Info

Publication number
CN101184050B
CN101184050B CN2007103017023A CN200710301702A CN101184050B CN 101184050 B CN101184050 B CN 101184050B CN 2007103017023 A CN2007103017023 A CN 2007103017023A CN 200710301702 A CN200710301702 A CN 200710301702A CN 101184050 B CN101184050 B CN 101184050B
Authority
CN
China
Prior art keywords
multicast
message
node
receiving
module
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.)
Active
Application number
CN2007103017023A
Other languages
English (en)
Other versions
CN101184050A (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.)
New H3C Information Technologies Co Ltd
Original Assignee
Hangzhou H3C Technologies Co Ltd
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 Hangzhou H3C Technologies Co Ltd filed Critical Hangzhou H3C Technologies Co Ltd
Priority to CN2007103017023A priority Critical patent/CN101184050B/zh
Publication of CN101184050A publication Critical patent/CN101184050A/zh
Application granted granted Critical
Publication of CN101184050B publication Critical patent/CN101184050B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种分布式节点组播方法和一种分布式节点组播组件。该方法包括:发送节点与组播组内的全部接收节点进行组播会话协商,建立会话并以组播的形式向接收节点发送报文,以及,缓冲所发送的报文;根据组播会话协商的结果,如果发送节点已发送的报文符合预设的确认条件,但超时未获一接收节点的确认标识时,发送节点调用所缓冲的相应报文并重新向该接收节点发送;其中,确认标识在任一接收节点已接收的报文符合预设的确认条件时,由所述接收节点向发送节点发送。本发明还公开了一种分布式系统。通过本发明,保证了节点间通信的可靠性。

Description

分布式节点组播方法、分布式节点组播组件和分布式系统
技术领域
本发明涉及通信技术领域,尤其涉及一种分布式节点组播方法和一种分布式节点组播组件,以及,一种分布式系统。
背景技术
对于具有多业务板的路由器、交换机等分布式设备构成的小型分布式系统,或者对于网间集群/设备堆叠所构成的较大规模的分布式系统而言,其节点之间需要进行控制层面上的通信,其中,该节点随着所应用分布式系统的不同,可以为业务板,或者,可以为进行集群/堆叠的设备,如交换机等。如图1所示,显示了分布式设备业务板之间的板间通信模型。
作为分布式系统的一项关键技术,节点间通信的可靠程度直接决定了分布式系统的可靠程度,节点间通信的性能直接决定了分布式系统所能达到的性能。在传统的实现方案中,分布式节点通信都采用软件轮询单播的方式,即对发送节点对各个接收节点都发一次单播报文。显然,由于采用了软件轮询机制,既需要对各个节点轮流发送,又必须有内存拷贝操作,其效率低下,且浪费了发送节点的处理资源。
针对上述分布式节点通信的缺陷,现有技术一般为通过硬件实现节点之间的组播通信来加以克服。例如公开号为CN1825804、发明名称为“实现分布式系统板间通信的系统和方法”的中国专利申请,就提供了一种分布式系统板间通信的方法,结合单播、组播、广播技术使板间通信一次完成。
但是,在现有的硬件组播方案中,往往是发送节点直接将报文发送给相关的组播组成员后就完成了该次的组播通信,无法了解组播组成员是否进行了正常接收,因此节点间通信的可靠性无法得到保证。
发明内容
本发明实施例的目的是为了克服上述现有技术中的缺陷,提供一种分布式节点组播方案,以可靠地实现分布式节点间的硬件组播。
为实现上述目的,本发明的实施例提供了一种分布式节点组播方法,适用于发送节点与接收节点分布式连接构成的系统,其中发送节点根据应用协议的指令建立组播组,该组播组成员包括至少一个接收节点;包括以下步骤:
发送节点与组播组内的全部接收节点进行组播会话协商,建立会话并以组播的形式向所述接收节点发送报文,以及,缓冲所发送的报文;
根据组播会话协商的结果,如果发送节点已发送的报文符合预设的确认条件,但超时未获一接收节点的确认标识时,发送节点调用所缓冲的相应报文并重新向该接收节点发送;
其中,该确认标识在任一接收节点已接收的报文符合预设的确认条件时,由该接收节点向发送节点发送。
本发明的实施例还提供了一种分布式节点组播组件,适用于发送节点与接收节点分布式连接构成的系统,其中发送节点根据应用协议的指令建立组播组,该组播组成员包括至少一个接收节点;其特征在于,包括运行于发送节点的组播发送单元和分别运行于每一接收节点的组播接收单元;
该组播发送单元分别与组播组内每一接收节点的组播接收单元建立连接,用于根据应用协议的指令建立组播组,与该组播接收单元进行会话协商并建立会话,向该组播接收单元组播发送报文并缓冲,以及调用所缓冲的、符合预设的确认条件但超时未获一组播接收单元确认标识的相应报文,并重新向所述组播接收单元发送;
该组播接收单元用于与该组播发送单元进行会话协商并建立会话,接收该组播发送单元组播发送的报文,以及根据组播会话协商的结果,对已接收到的、符合预设的确认条件的报文,向组播发送单元发送确认标识。
本发明的实施例还提供了一种分布式系统,包括分布式应用协议层、分布式节点层以及硬件转发层,该硬件转发层用于传输组播报文,该分布式节点层包括多个分布式连接的节点,该分布式应用协议层包括与该分布式节点层中各节点一一对应连接的应用协议,用于指令创建组播组和处理组播报文;其特征在于,还包括上述分布式节点组播组件,其中任一节点上设有所述分布式节点组播组件的组播发送单元和组播接收单元。
由上述技术方案可知,本发明通过发送节点和接收节点的会话协商,并采用发送节点的缓冲以及接收节点的重传请求机制,具有保证节点间通信可靠性的有益效果。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
图1为现有技术中分布式设备业务板之间的板间通信模型示意图;
图2为分布式节点组播方案的处理示意图;
图3为本发明所提供的分布式节点组播方法一实施例的流程图;
图4为本发明所提供的分布式节点组播方法中,会话协商实施例的流程图;
图5为本发明所提供的分布式节点组播方法中,引入提示机制的实施例的流程图;
图6为本发明所提供的分布式节点组播组件一实施例的框图;
图7为本发明所提供的分布式节点组播组件中,组播发送单元一实施例的框图;
图8为本发明所提供的分布式节点组播组件中,组播接收单元一实施例的框图;
图9为本发明所提供的分布式节点组播组件另一实施例的框图;
图10为本发明所提供的分布式系统一实施例的框图。
具体实施方式
为了克服现有技术中发送节点单纯进行报文组播发送所带来的缺陷,本发明提供了一种发送节点和接收节点在会话建立之初进行协商,由发送节点缓冲已发送报文,并根据接收节点的确认标识决定是否进行报文重新发送的技术方案,以保证报文组播的可靠性。
请参见图2,显示了一个组播节点的组播处理方案:组播管理根据应用协议的指令创建组播组,会话管理进行具体的会话建立并经收发管理通过硬件媒体进行报文的发送/接收。本发明所提供的分布式节点组播方法沿用该处理思想,但在此基础上进行了相应的处理改进。
请参见图3,为本发明所提供的分布式节点组播方法一实施例的流程图,该分布式节点组播方法适用于发送节点与接收节点分布式连接构成的系统,其中发送节点根据应用协议的指令建立组播组,并分配相应的组播组ID;组播组成员包括至少一个接收节点。本领域普通技术人员可以理解,当组播组成员仅包括一个接收节点时,相当于点对点的单播,由于无论是组播还是单播,都能够通过硬件媒体实现,因此都适用于本发明所提供的分布式节点组播方法。
具体的,该分布式节点组播方法包括以下步骤:
S101、发送节点与组播组内的全部接收节点进行会话协商,并建立会话;
本发明在在组播组创建完成后,就进入会话协商的阶段,这是与现有节点组播技术的区别点之一:现有技术是发送节点按照建立的组播组直接组播发送报文,并不会先行于接收节点进行协商,难以保证组播通信的可靠性。
具体的,如图4所示,会话协商可以包括:
发送节点与各接收节点协商配置组播报文序号编码规则,保证接收节点能够识别缺失的报文;例如,约定连续的报文序号或者符合一定算法的报文序号,并约定报文的初始序列号,以保证接收节点识别缺失报文;
发送节点与各接收节点协商配置确认条件,该确认条件为下述情况的任意组合:累计发送/接收到预设数目的连续报文;累计发送/接收连续报文达到预设时间;以及,发送/接收的报文超过预设的优先级;
该确认条件对于协商后的发送节点和接收节点是统一的,具体来说,当发送节点累计发送预设数目的连续报文满足确认条件时,相应的,接收节点接收到预设数目的连续报文也满足确认条件;当发送节点累计发送连续报文到达预设时间满足确认条件时,相应的,接收节点累计接收连续报文达到预设时间也满足确认条件;以及,当发送节点发送的报文超过预设的优先级满足确认条件时,相应的,接收节点累计接收的报文超过预设的优先级也满足确认条件。
发送节点和各接收节点协商配置确认标识格式,所述确认标识中携带组播组成员标识以及所确认的报文序号;当然,该报文序号可以使用区间值来表示,或者,当所确认的报文构成一个报文组时,可以采用该报文组的序号加以表示,视乎实际情况而定。
同时需要指出,一般为了提高组播效率,一个会话只是在开始阶段进行会话协商,在该会话结束时无需协商,将保持直至被下一次会话协商所取代。
S102、发送节点根据所建立的会话,以组播的形式向所述接收节点发送报文,并缓冲所发送的报文;
需要注意的是,发送节点发送的报文应携带有协商好的报文序号,以保证接收节点的后续识别。
至该会话结束,删除相应的组播组。
S103、发送节点根据组播会话协商的结果监控已发送的报文,如果已发送的报文符合预设的确认条件,但超时未获一接收节点的确认标识如ACK报文时,执行步骤S104;
其中,该确认标识在任一接收节点已接收的报文符合预设的确认条件时,由该接收节点向发送节点发送。
具体来说,由于发送节点和接收节点经历了共同协商的过程,具有统一的确认标准,因此,如果发送节点所发送的报文满足了确认条件,且接收节点加以正常接收,那么从接收节点的角度而言,其接收的报文无疑也满足了确认条件,并由此进行确认标识的发送;但如果发送节点所发送的报文满足了确认条件,而接收节点未曾实现正常接收,即中间有报文遗失,那么从接收节点的角度而言,其接收的报文就无法满足确认条件,不会进行确认标识的发送。
在上述两种情况下,从发送节点的角度而言,通过监控已发送报文是否获得了应有的确认标识,即可识别接收节点是否正常接收。考虑到发送节点和接收节点之间通信交互所需要的时间,可以为发送节点设置超时时限,如果超时为接收到确认标识,即可认为报文发送失败,执行步骤S104。
S104、发送节点调用所缓冲的相应报文并重新向所述接收节点发送。
一般来说,发送节点根据确认标识中的接收节点标识和报文序号就能够实现准确的定点发送,从而使组播组成员都能够获得组播报文,保证了组播传输的可靠性。
从上述步骤S101~S104可以看出,本发明实施例所提供的分布式节点组播方法,能够通过硬件组播,在进行一次发送时可以以组播形式同时向若干目标发送报文,具有组播高速性;同时,通过报文缓冲和确认标识的配合处理,能够保证组播可靠性。
在上述实施例中需要注意的是,随着确认条件的不同,本发明实施例所提供的分布式节点组播方法,其报文重传的粒度也有所不同。比如,如果设置确认条件为累计发送/接收到5个连续报文,那么超时设置必须预留有接收节点识别5个报文的时间,其粒度粗于每发送/接收到1个报文的确认条件;但反过来,每发送/接收到1个报文就执行确认,又会给网络造成很多不必要的开销。因此,具体确认条件的设置可以在实际应用中根据需要灵活掌握,以达到粒度和资源开销的较佳组合。
一般情况下,往往采用预设数目、预设时间和预设优先级的组合作为确认条件,即以定时和批量的方式回复确认标识(如ACK报文),减少ACK引起的发送、接收带宽开销,既避免了ACK报文过多,也不至于长期没有ACK确认;而对优先级较高报文的即时回复,能够保证对紧急报文的实时处理。
在上述实施例中还需要注意的是,由于大量的已发送报文长期保留在缓存中显然降低了资源的利用率,为了克服这一问题,可以采取针对某一个组播报文,如果收到了组播组中全部成员的ACK反馈,就可以将其从缓冲中删除的操作,以降低缓冲占用。其具体实现方式包括:
在步骤S103中,如果已发送的报文符合预设的确认条件,且在超时期限内获得一接收节点的确认标识如ACK报文时,执行步骤S105;
S105、监测是否已接收到组播组全部接收节点的确认标识,是则执行步骤S106,否则重新执行步骤S103;
S106、发送节点相应删除所缓冲的报文。
同时,在上述实施例中发送节点进行缓冲、重发和缓冲删除操作的同时,接收节点需要执行接收报文的处理。在现有技术中,为了避免处理过程中组播报文丢失,接收节点需要先行对接收到的组播报文进行缓冲,再对缓冲的报文加以回调处理。而在本发明的实施例中,由于组播报文的传输可靠性得到保证,即使发生报文丢失也能够重新获取,因此接收节点无需进行报文的缓冲回调,而是对符合预设的确认条件的已接收报文,接收节点以队列方式直接发送给应用协议进行处理,从而提高了组播处理的效率。
进一步的,上述实施例所描述的分布式节点组播方法通过接收节点的确认机制,为节点间组播的可靠性提供了保证。但也需要注意到,出于信道资源角度的考虑,确认条件的粒度往往不能过细,这就导致了可能存在中间只发生了一个或几个报文的丢失,但由于发送节点无法进一步识别,不得不重新发送一组报文的情况。为了克服这一问题,本发明在接收节点确认机制的基础上,还提供了相应的缺失提示机制。
由于节点确认机制的过程中,接收节点需要按照预前协商的结果进行报文的识别,从而判断是否可以发送确认标识,因此同时也能够识别出是否发色和能够了报文缺失。如果识别出报文缺失的接收节点仅针对所缺失的报文主动向发送节点进行提示,那么无疑发送节点可以有针对性地进行所缺失报文的补发。上述机制的具体实现方式如图5所示:
S201、根据组播会话协商的结果,接收节点对已接收报文的缺失情况加以识别;
具体的,步骤20 1可以通过以下操作实现:接收节点提取应接收报文的报文序号,该应接收报文的报文序号由组播报文序号编码规则和上一次接收到的报文确定;识别实际接收报文的序号;与应接收报文的报文序号一致,则未发生报文缺失;与所述应接收报文的报文序号不一致,则对应的报文缺失。
S202、当发生报文缺失时,接收节点向发送节点发出重传请求;
其中,该重传请求的报文格式是在会话协商的步骤中完成的,携带接收节点标识以保证发送节点能够确定重传的目的节点,携带有报文序号以保证发送节点能够确定需要重传的报文对象。
S203、接收到任一接收节点重传请求的发送节点调用所缓冲的相应报文并重新向该接收节点发送。
可以看出,通过上述步骤S201~S203,在ACK确认机制的基础上,又针对性的提供了对个别报文缺失情况的补充方案。举例来说,如果在一次组播过程中,一接收节点丢失了某一个报文之后的全部报文,则由于该接收节点无法根据后续报文识别到缺失情况,因此不会做出任何反应;此时,发送节点由于超时未接收到确认标识,因此主动重新发送。再比如说,在一次组播过程中,一接收节点丢失了某一个报文,则其根据后续接收的报文可以迅速判断中报文缺失情况,则通过及时反馈并重新获得该报文;如果获得该报文后满足了确认条件,那么发送节点甚至有可能在超时前获得相应的确认标识,无需重新发送整组的报文。总的来说,确认机制和提示机制相结合,不但有效的保证了节点间组播的可靠性,而且能够提高报文重发的粒度和效率。
在提示机制中,为了保证所缺失的报文能够按照协商的顺序正确编入队列,本发明的实施例也可以设置相应的缓冲,以便发生报文缺失时,接收节点对已接收到的报文进行缺失缓冲,等收到重传报文时,结合缓冲的报文一起以队列方式发送给应用协议进行处理。
即,步骤S202还包括接收节点对已接收到的、所缺失报文之后的组播报文进行缓冲,直至与重新发送的所缺失报文按照组播会话协商的结果组合后再发送给应用协议进行处理,以保证组播报文处理的顺序性。
虽然上述步骤也在接收节点进行了缓冲设置,但本领域技术人员可以了解,这种缓冲仅仅针对的是发生报文缺失的情况,而非对所有的报文都采用缓冲回调的方式,因此对缓冲的长度要求较小,也不会在未发生报文缺失时影响处理效率。
下面,通过一个具体的实施例对本发明所提供的分布式系统节点间的组播发送/接收方法进行描述,以应用协议指令节点A向节点B、C和D三个节点发送组播报文为例,包括以下步骤:
步骤一、节点A根据应用协议指令创建组播组a,包括申请资源,下发驱动,分配相应的组播组ID,以及添加组播组成员B、C和D;
步骤二、当应用协议指令发送第一个组播报文时,触发节点A的会话管理,进行组播会话协商创建,请求建立与节点B、C和D的直接联系;
步骤三、节点B、C、D的会话管理根据节点A的协商请求,建立与节点A的会话链接;
步骤四、节点A的会话管理封装应用协议的报文,经收发管理通过硬件媒体,向组播组内的接收节点B、C和D组播发送报文;
步骤五、节点A的会话管理对所发送的报文进行缓冲;;
步骤六、在节点B、C和D上,识别实际接收报文的序号,与应接收报文的报文序号一致,则执行步骤七,否则执行步骤十;
步骤七、以队列方式直接将所接收到的报文上送到对应的应用协议进行处理;
步骤八、检查是否满足ACK报文发送条件,是则执行步骤九,否则对该报文的处理结束;
步骤九、向节点A发送ACK报文;
步骤十、对应的报文缺失,向发送节点A发出重传请求,该请求中携带应接收报文的报文序号和接收节点标识;
步骤十一、节点A调用所缓冲的相应报文并重新向该接收节点发送。
此外,本实施例还包括节点A监控所缓冲的报文,调用超时未获任一接收节点ACK报文的报文,重新向该接收节点发送;以及发送节点A监控所缓冲的报文,如果收到组播组全部接收节点的确认标识,则相应删除所缓冲的报文。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,所述的程序可以存储于一计算机可读取存储介质中,适用于发送节点与接收节点分布式连接构成的系统,其中发送节点根据应用协议的指令建立组播组,所述组播组成员包括至少一个接收节点,该程序在执行时,包括如下步骤:
发送节点与组播组内的全部接收节点进行会话协商,建立会话并以组播的形式向所述接收节点发送报文,以及,缓冲所发送的报文;
根据组播会话协商的结果,如果发送节点已发送的报文符合预设的确认条件,但超时未获一接收节点的确认标识时,发送节点调用所缓冲的相应报文并重新向所述接收节点发送;
其中,所述确认标识在任一接收节点已接收的报文符合预设的确认条件时,由所述接收节点向发送节点发送。
所述的存储介质包括:ROM/RAM(Read Only Memory/Random-AccessMemory,只读存储器/随机访问内存)、磁碟或者光盘等。
本发明的实施例还提供了一种分布式节点组播组件10,如图6所示,适用于发送节点与接收节点分布式连接构成的系统,其中发送节点根据应用协议的指令建立组播组,该组播组成员包括至少一个接收节点。可以理解,发送节点和接收节点是根据应用协议建立邻居的需要动态变化的,每一个节点即可以作为发送节点也可以作为接收节点;但对于一个组播组而言,其发送节点和接收节点则是确定的。
该分布式节点组播组件10还包括运行于发送节点的组播发送单元100和分别运行于每一接收节点的组播接收单元200。
该组播发送单元100分别与组播组内每一接收节点的组播接收单元200建立连接,用于根据应用协议的指令建立组播组,与各组播接收单元200进行会话协商并建立会话,向组播接收单元200组播发送报文并缓冲,以及调用所缓冲的、符合预设的确认条件但超时未获一组播接收单元200确认标识的相应报文,并重新向该组播接收单元200发送;
该组播接收单元200用于与组播发送单元100进行会话协商并建立会话,接收组播发送单元100组播发送的报文,以及根据组播会话协商的结果,对已接收到的、符合预设的确认条件的报文,向组播发送单元100发送确认标识。
可以看出,上述分布式节点组播组件10能够实现发送节点对于组播报文的缓冲和重发,保证了组播的可靠性。
具体的,请参见图7,显示了组播发送单元100的一个实施例,包括:
一组播组管理模块101,用于根据应用协议的指令创建、更新和删除组播组。一般情况下,应用协议需要向多个邻居发送报文时,就向发送节点的组播组管理模块101申请创建组播组,由该组播组管理模块101执行具体的创建操作,包括申请资源,下发驱动,添加组播组成员等;当组播组成员发生变化,比如删除/添加某个或某些成员时,还需要进行相应的更新操作;当应用协议报文发送完成时,触发组播组管理模块101删除相应的组播组。
一会话管理模块102,与组播组管理模块101连接,用于根据应用协议的指令,与组播组成员建立直接的联系,并进行会话协商。该会话协商的具体内容可根据实际需要确定,但至少需要包括以下内容:
(1)配置组播报文序号编码规则;
(2)配置发送节点与各接收节点协商配置确认条件,该确认条件为下述情况的任意组合:累计发送/接收到预设数目的连续报文;累计发送/接收连续报文达到预设时间;例如:
当累计接收到X个报文时发送ACK报文;
当累计接收报文达Y时间时发送ACK报文,即距前一次发送ACK报文达Y时间时;
或者,当接收到一些优先级较高的报文时,即时发送ACK报文。
以及,发送/接收的报文超过预设的优先级;
这样,通过定时和批量的方式回复ACK,减少ACK引起的发送、接收带宽开销,既避免了ACK报文过多,也不至于长期没有ACK确认;而对优先级较高报文的即时回复,能够保证对紧急报文的实时处理。
(3)配置携带接收节点标识以及报文序号的确认标识格式,这样,才能够保证发送节点能够识别所确认的报文并对未确认的报文执行重新发送。
此外,会话管理模块102还用于封装应用协议下发的会话报文。
一第一报文收发模块103,与会话管理模块102和组播组管理模块101连接,用于向组播组成员以组播的形式发送报文,特别是,该报文收发模块103是通过硬件媒体直接发送报文,以充分利用硬件能力,提高发送效率,达到高速通信的目的。该报文收发模块103还用于接收组播组成员的确认标识。
一第一缓冲模块104,与第一报文收发模块103连接,用于对所发送的报文进行缓冲;
一缓冲监控模块105,监控第一缓冲模块104,并对于符合预设的确认条件但超时未获一组播接收单元200确认标识的报文,相应触发重传模块106;
一重传模块106,与第一缓冲模块104和第一报文收发模块103连接,用于根据缓冲监控模块105的触发,调用所缓冲的相应报文并通过第一报文收发模块103重新向该组播组成员发送。
可以看出,分布式系统节点间的组播发送单元100通过本地缓冲,并对未确认的报文执行重新发送,能够保证可靠完整的发送组播报文,因此不需要在本地进行发送情况的检测,如果发送失败,即使设置了相应的失败提示信息,组播发送单元100也无需进行任何处理,避免了因为额外的检测控制对处理资源的占用。
从上述描述可以看出,本发明实施例的一个改进之处在于由发送节点进行报文缓冲,该缓冲的报文用于重传以及进行ACK确认。但是,大量的已发送报文长期保留在缓存中显然降低了资源的利用率。作为改进的方案,为了避免缓冲报文过多对于发送节点的资源占用,该组播发送单元100还包括:
一缓冲清空模块107,与第一报文收发模块103和第一缓冲模块104连接,用于根据组播组全部接收节点上组播接收单元200的确认标识,相应删除所缓冲的报文。即当针对某一个组播报文,收到了组播组中全部成员的ACK反馈,就可以将其从缓冲中删除。
相应的,本发明还提供了组播接收单元200的具体实施例,参见图8,包括:
一会话协商模块201,用于与发送节点进行会话协商,建立与发送节点的会话链接;同样的,该会话协商的具体内容可根据实际需要确定,但至少需要协商组播报文序号编码规则、确认条件以及携带接收节点标识和报文序号的确认标识格式,以保证发送节点识别已被正确接收的报文。
一第二报文收发模块202,用于接收发送节点组播发送的报文,并通过中断直接发送给报文处理模块203,避免了任务切换引起的效率问题;
一报文处理模块203,与会话协商模块201和第二报文收发模块202连接,用于接收第二报文收发模块201发送的组播报文,根据会话协商结果,对已接收到的、符合预设的确认条件的报文相应触发确认标识发送模块204;;
一确认标识发送模块204,与所述第二报文收发模块202连接,用于根据报文处理模块203的触发,通过第二报文收发模块202向组播发送单元100发送相应的确认标识加以确认。
较佳的,组播接收单元200的报文处理模块203与上层应用协议连接,用于将接收到的、未发生缺失的报文,以队列方式直接发送给应用协议进行处理。从而,取代现有技术中的缓冲回调方式,通过队列顺序提交,避免了报文分发过程被打断和延误,提高了处理效率。
上述实施例的分布式节点组播组件提供了接收节点的确认机制。较佳的,本发明所提供的分布式节点组播组件还提供有接收节点提示机制,请参见图9。其中,组播接收单元200还包括:
一重传请求模块205,用于根据所述报文处理模块203的触发,通过第二报文收发模块202向组播发送单元发送重传请求;其中,所述报文处理模块203根据会话协商结果对所接收到报文的缺失情况加以识别,并在发生报文缺失的情况下相应触发重传请求模块205;
具体的,报文处理模块203对于缺失报文的识别方式可以根据预先的协商确定,举例来说,如果协商的结果为发送连续序号的报文,则当接收节点收到的报文序号大于期待的报文序号时,就可以识别具有所期待序号的报文缺失,进而发出重传请求。同时,该重传请求的格式也由协商确定。
同时,组播发送单元100中,重传模块106还接受第一报文收发模块103的触发,用于根据任一组播接收单元200的重传请求,调用所缓冲的相应报文并通过第一报文收发模块103重新向该组播接收单元200发送。
通过上述完成提示功能的组播接收单元200和组播发送单元100,可以看出,其在发现缺失报文的时候要求重传,保证了组播的可靠性和及时性
在上述缺失提示机制中,为了保证组播报文处理的顺序性,可以对缺失报文的相应部分进行缓冲,即组播接收单元200还包括第二缓冲模块206,与报文处理模块203连接,用于对已接收到的、所缺失报文之后的组播报文进行缓冲,并由报文处理模块203调用,与重新发送的所缺失报文按照组播会话协商的结果组合,以便后续顺序处理。
本发明的实施例还提供了一种分布式系统1,如图10所示,包括分布式应用协议层20、分布式节点层30以及硬件转发层40。
该硬件转发层40用于传输组播报文;
该分布式节点层30包括多个分布式连接的节点31;
该分布式应用协议层20包括与分布式节点层30中各节点31一一对应连接的应用协议21,用于指令创建组播组和处理组播报文;
其中,当某一应用协议21指令一节点31创建组播组时,该节点31就成为发送节点,而组播组的其他成员就成为接收节点;
还包括上述的分布式节点组播组件10,其中,该分布式节点组播系统10组播发送单元100设置在发送节点上,该组播接收单元200设置在接收节点上。
本领域普通技术人员可以理解,由于发送节点和接收节点是根据实际情况不断转变的,因此在实际应用中,每一个节点上都设有组播发送单元100和组播接收单元200,并根据所在节点的当前角色相应启动。
最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神和范围。

Claims (14)

1.一种分布式节点组播方法,适用于发送节点与接收节点分布式连接构成的系统,其中发送节点根据应用协议的指令建立组播组,所述组播组成员包括至少一个接收节点;其特征在于,包括以下步骤:
发送节点与组播组内的全部接收节点进行组播会话协商,建立会话并以硬件组播的形式向所述接收节点发送报文,以及,缓冲所发送的报文;所述进行会话协商的步骤包括:发送节点与各接收节点协商配置确认条件,该确认条件为下述情况的任意组合:累计发送/接收到预设数目的连续报文,累计发送/接收连续报文达到预设时间;
根据组播会话协商的结果,如果发送节点已发送的报文符合预设的确认条件,但超时未获一接收节点的确认标识时,发送节点调用所缓冲的相应报文并重新向该接收节点发送;
其中,所述确认标识在任一接收节点已接收的报文符合预设的确认条件时,由该接收节点向发送节点发送。
2.根据权利要求1所述的分布式节点组播方法,其特征在于,所述进行会话协商的步骤还包括:
发送节点与各接收节点协商配置组播报文序号编码规则;
发送节点和各接收节点协商配置确认标识格式,所述确认标识中携带组播组成员标识以及所确认的报文序号。
3.根据权利要求1所述的分布式节点组播方法,其特征在于,还包括:发送节点监控所缓冲的报文,根据组播组全部接收节点的确认标识,相应删除所缓冲的报文。
4.根据权利要求1所述的分布式节点组播方法,其特征在于,还包括:对于符合预设的确认条件的已接收报文,接收节点以队列方式直接发送给应用协议进行处理。
5.根据权利要求1-4任一所述的分布式节点组播方法,其特征在于,还包括:对于不符合预设的确认条件的已接收报文,接收节点对其缺失情况加以识别;对于所缺失的报文,接收节点向发送节点发出重传请求;接收到任一接收节点重传请求的发送节点调用所缓冲的相应报文并重新向该接收节点发送。
6.根据权利要求5所述的分布式节点组播方法,其特征在于,还包括:接收节点对已接收到的、所缺失报文之后的组播报文进行缓冲,直至与重新发送的所缺失报文按照组播会话协商的结果组合后再发送给应用协议进行处理。
7.根据权利要求5所述的分布式节点组播方法,其特征在于,所述对报文缺失情况加以识别的步骤包括:
接收节点提取应接收报文的报文序号,所述应接收报文的报文序号由组播报文序号编码规则和上一次接收到的报文确定;
识别实际接收报文的序号;
与所述应接收报文的报文序号一致,则未发生报文缺失;
与所述应接收报文的报文序号不一致,则对应的报文缺失。
8.一种分布式节点组播组件,适用于发送节点与接收节点分布式连接构成的系统,其中发送节点根据应用协议的指令建立组播组,所述组播组成员包括至少一个接收节点;其特征在于,包括运行于发送节点的组播发送单元和分别运行于每一接收节点的组播接收单元;
所述组播发送单元分别与组播组内每一接收节点的组播接收单元建立连接,用于根据应用协议的指令建立组播组,与所述组播接收单元进行会话协商并建立会话,通过硬件媒体向所述组播接收单元组播发送报文并缓冲,以及调用所缓冲的、符合预设的确认条件但超时未获一组播接收单元确认标识的相应报文,并重新向该组播接收单元发送;并且所述会话协商的内容包括:发送节点与各接收节点协商配置确认条件,该确认条件为下述情况的任意组合:累计发送/接收到预设数目的连续报文,累计发送/接收连续报文达到预设时间;
所述组播接收单元用于与所述组播发送单元进行会话协商并建立会话,接收所述组播发送单元组播发送的报文,以及根据组播会话协商的结果,对已接收到的、符合预设的确认条件的报文,向组播发送单元发送确认标识。
9.根据权利要求8所述的分布式节点组播组件,其特征在于,所述组播发送单元包括:
一组播组管理模块,用于根据应用协议的指令创建、更新和删除组播组;
一会话管理模块,与所述组播组管理模块连接,用于根据应用协议的指令,与所述接收节点的组播接收单元进行会话协商并建立会话,以及封装会话报文;
一第一报文收发模块,与所述会话管理模块和组播组管理模块连接,用于向组播接收单元组播发送报文,并接收组播接收单元的确认标识;
一第一缓冲模块,与所述第一报文收发模块连接,用于对所发送的报文进行缓冲;以及
一缓冲监控模块,监控所述第一缓冲模块,并对于符合预设的确认条件但超时未获一组播接收单元确认标识的报文,相应触发重传模块;
一重传模块,与所述第一缓冲模块和第一报文收发模块连接,用于根据所述缓冲监控模块的触发,调用所缓冲的相应报文并通过所述第一报文收发模块重新向所述一组播接收单元发送。
10.根据权利要求9所述的分布式节点组播组件,其特征在于,所述组播发送单元还包括:
一缓冲清空模块,与所述第一报文收发模块和第一缓冲模块连接,用于根据组播组全部接收节点上组播接收单元的确认标识,相应删除所缓冲的报文。
11.根据权利要求8所述的分布式节点组播组件,其特征在于,所述组播接收单元包括:
一会话协商模块,用于与组播发送单元进行会话协商并建立会话;
一第二报文收发模块,用于接收所述组播发送单元组播发送的报文,并通过中断直接发送给报文处理模块;
一报文处理模块,与所述会话协商模块和第二报文收发模块连接,用于接收所述第二报文收发模块发送的组播报文,并根据会话协商的结果,对已接收到的、符合预设的确认条件的报文相应触发确认标识发送模块;
一确认标识发送模块,与所述第二报文收发模块连接,用于根据报文处理模块的触发,通过第二报文收发模块向所述组播发送单元发送相应的确认标识加以确认。
12.根据权利要求11所述的分布式节点组播组件,其特征在于,所述组播接收单元的报文处理模块与上层应用协议连接,用于将接收到的、未发生缺失的报文,以队列方式直接发送给应用协议进行处理。
13.根据权利要求8-12任一所述的分布式节点组播组件,其特征在于,所述组播接收单元还包括:
一重传请求模块,用于根据所述报文处理模块的触发,通过第二报文收发模块向组播发送单元发送重传请求;其中,所述报文处理模块根据会话协商结果对所接收到报文的缺失情况加以识别,并在发生报文缺失的情况下相应触发所述重传请求模块;
所述组播发送单元中,所述重传模块还接受所述第一报文收发模块的触发,用于根据任一组播接收单元的重传请求,调用所缓冲的相应报文并通过所述第一报文收发模块重新向该组播接收单元发送。
14.根据权利要求13所述的分布式节点组播组件,其特征在于,所述组播接收单元还包括:
一第二缓冲模块,与所述报文处理模块连接,用于对已接收到的、所缺失报文之后的组播报文进行缓冲,并由所述报文处理模块调用,与重新发送的所缺失报文按照组播会话协商的结果组合。
CN2007103017023A 2007-12-24 2007-12-24 分布式节点组播方法、分布式节点组播组件和分布式系统 Active CN101184050B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2007103017023A CN101184050B (zh) 2007-12-24 2007-12-24 分布式节点组播方法、分布式节点组播组件和分布式系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2007103017023A CN101184050B (zh) 2007-12-24 2007-12-24 分布式节点组播方法、分布式节点组播组件和分布式系统

Publications (2)

Publication Number Publication Date
CN101184050A CN101184050A (zh) 2008-05-21
CN101184050B true CN101184050B (zh) 2011-04-13

Family

ID=39449138

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2007103017023A Active CN101184050B (zh) 2007-12-24 2007-12-24 分布式节点组播方法、分布式节点组播组件和分布式系统

Country Status (1)

Country Link
CN (1) CN101184050B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101272341B (zh) * 2008-05-27 2011-11-09 杭州华三通信技术有限公司 分布式架构下实现硬件组播的方法、装置、分布式系统和路由设备
CN103220091A (zh) * 2012-01-20 2013-07-24 华为技术有限公司 数据传输的方法及装置
CN104702530B (zh) * 2013-12-06 2018-02-13 北京东土科技股份有限公司 一种环网中Goose报文的发送方法及装置
CN108809840B (zh) * 2018-06-12 2021-04-13 天津卓越信通科技有限公司 一种用于控制和管理子网中组播组的方法
CN110022352B (zh) * 2019-02-28 2022-02-22 福建天泉教育科技有限公司 一种消息推送的应答方法及终端
CN110971512A (zh) * 2019-12-09 2020-04-07 北京仿真中心 通信方法、系统
CN112511994B (zh) * 2021-02-04 2021-04-27 杭州字节信息技术有限公司 一种基于LoRaWan的支持ACK机制的组播实现方法
CN114422626B (zh) * 2022-01-28 2022-11-08 北京秒如科技有限公司 协议传输的方法、装置及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1627725A (zh) * 2003-12-10 2005-06-15 联想(北京)有限公司 一种保证一点到多点传输数据可靠性的方法
WO2005057332A2 (en) * 2003-11-25 2005-06-23 Cisco Technology, Inc Reliable multicast communication
CN1645787A (zh) * 2005-03-01 2005-07-27 广东省电信有限公司研究院 在分布式对等流媒体服务系统中实现可靠组播的方法
CN1918862A (zh) * 2004-02-12 2007-02-21 皇家飞利浦电子股份有限公司 组播传输方法、系统和通信站

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005057332A2 (en) * 2003-11-25 2005-06-23 Cisco Technology, Inc Reliable multicast communication
CN1627725A (zh) * 2003-12-10 2005-06-15 联想(北京)有限公司 一种保证一点到多点传输数据可靠性的方法
CN1918862A (zh) * 2004-02-12 2007-02-21 皇家飞利浦电子股份有限公司 组播传输方法、系统和通信站
CN1645787A (zh) * 2005-03-01 2005-07-27 广东省电信有限公司研究院 在分布式对等流媒体服务系统中实现可靠组播的方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
王斌等.基于ACK和NAK的可靠组播传输协议的性能分析和比较.电子学报29 10.2001,29(10),1314-1318.
王斌等.基于ACK和NAK的可靠组播传输协议的性能分析和比较.电子学报29 10.2001,29(10),1314-1318. *

Also Published As

Publication number Publication date
CN101184050A (zh) 2008-05-21

Similar Documents

Publication Publication Date Title
CN101184050B (zh) 分布式节点组播方法、分布式节点组播组件和分布式系统
CN102075343B (zh) 一种实现带外管理的方法、系统和带外管理交换机
CN101340268B (zh) 节点间通信确认机制的实现方法和实现系统
US6505253B1 (en) Multiple ACK windows providing congestion control in reliable multicast protocol
CN102377685B (zh) 一种订阅消息的发送系统以及订阅消息的发送方法
US8295220B2 (en) Multicast service
CN101286867B (zh) 一种网络设备的软件升级方法与系统
Hofmann Enabling group communication in global networks
CN101159747B (zh) 一种基于tcp并发多链路的通信系统及其方法
WO2006107165A1 (en) File distribution method and apparatus in a mobile broadcast system
CN101610210A (zh) 具有冗余结构的组播传输系统及方法
KR20220123436A (ko) 멀티캐스트 서비스 세션 작업 방법, 장치 및 통신 기기
CN1852246A (zh) 一种组播流分发节点接收组播流的方法
JPH06326713A (ja) データ伝送制御方法
WO2013166899A1 (zh) 一种短消息传输的方法、装置及系统
CN111314229B (zh) 一种适用于窄带应急通信网络的通信方法
CN111757553B (zh) 一种提高冗余分组数据会话性能的方法和设备
CN101888343A (zh) 一种业务数据的发送方法及系统
EP1018248A1 (en) Congestion control in reliable multicast protocol
CN102904809B (zh) 标签转发路径的带宽资源管理方法、装置和系统
CN107623645A (zh) 一种基于数据流转发的电力系统实时数据交换系统
CN1925468B (zh) 一种互联网组管理协议报告抑制方法和通信网络系统
JP2014165924A (ja) 光リングにおいてマルチキャスト転送を行う方法及び装置
JP2003124875A (ja) 情報配信方法及びシステム、並びにマルチキャストサーバ、プログラム、及び記録媒体
KR101143510B1 (ko) 통신 인프라를 이용한 지연 허용 네트워크의 메시지 전송장치 및 방법

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
CP03 Change of name, title or address

Address after: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No.

Patentee after: NEW H3C TECHNOLOGIES Co.,Ltd.

Address before: 310053 Hangzhou hi tech Industrial Development Zone, Zhejiang province science and Technology Industrial Park, No. 310 and No. six road, HUAWEI, Hangzhou production base

Patentee before: HANGZHOU H3C TECHNOLOGIES Co.,Ltd.

CP03 Change of name, title or address
TR01 Transfer of patent right

Effective date of registration: 20230616

Address after: 310052 11th Floor, 466 Changhe Road, Binjiang District, Hangzhou City, Zhejiang Province

Patentee after: H3C INFORMATION TECHNOLOGY Co.,Ltd.

Address before: 310052 Changhe Road, Binjiang District, Hangzhou, Zhejiang Province, No. 466

Patentee before: NEW H3C TECHNOLOGIES Co.,Ltd.

TR01 Transfer of patent right