专利名称:网络设备内部节点可靠组播的方法、系统及设备的制作方法
技术领域:
本发明涉及组播技术领域,尤其涉及网络设备内部节点可靠组播的方法、系统及设备。
背景技术:
随着全球网络的不断扩大,业务的不断丰富,对网络设备的功能、性能的要求也在不断地提高。网络设备内部各节点之间需要经常进行数据交互以进行更好地控制和管理,这种数据交互从传输形式上可分为点对点的单播方式和点对多点的组播方式。网络设备内部节点数据传输的效率、性能及可靠性是网络设备应用中比较重要的指标。但这几项指标很难同时达到最优,如当网络带宽利用效率过高时,数据传输效率反而下降。同样,为了提高数据传输的可靠性,必然会降低传输效率。因此,如何使这几项指标都达到很高的要求,实现起来具有一定的难度,尤其对于组播方式。
现有技术中普遍采用的组播方式是多节点单播集合的方式。这种方式可概括为当发送数据的SN(Source Node,源节点)请求组播发送时,该节点所要做的就是遍历组播组中的每一个DN(Destination Node,目的节点),数据的传输对于各个DN基本上是串行IPC(Inter-Process Communication,进程间通信)传输,通过这种方式来实现对所有组播组DN的数据传输,并且在SN有一个状态表来存放组播组中各DN对此传输的响应情况。
这个技术方案所采用的传输方式并不是真正意义上的可靠组播,因为对于某一时刻,只有一个节点能够接收到SN传输过来的数据,尽管最终通过遍历都能将数据传输到DN,但这样的传输方式效率很低,如果有大量的网络设备节点采用这种传输方式,其传输效率将无法满足要求。因此,该方案对整个网络设备节点的可扩展性支持不足。另外,对于每一个DN,数据的传输可靠性是由每一个单播来保证的。
为克服上述方案效率低下的问题,可采用如下可靠组播的方案SN通过广播方式将数据发送出去,那些属于组播组的节点将接收并处理这些数据,类似于UDP multicast(User Datagram Protocol multicast,用户数据报协议组播)方式。为了保证可靠传输,每一个接收到数据的DN将给SN回复确认信息ACK(ACKnowledgement,确认),如果经过一定的时间,SN没有收到来自所有DN的确认信息,则重传先前丢失的数据片段。
与上述组播方式为多节点单播方式集合的方案相比,由于无需通过遍历节点的方式实现组播,传输效率有了一定的提高。然而,由于组播组中的每个DN都需要回复确认信息给发送数据的SN,当DN的数量很多时,必定会导致大量的确认信息发送给SN,使SN在这一时刻处理负担过重,很有可能出现SN的处理性能不足而丢弃确认信息的情况,SN收不到确认信息时如果进行重传并确认则会进一步降低处理能力。可见,这种方法降低SN的系统可靠性及信息处理完备性。因此,与上述组播方式为多节点单播方式的集合的技术方案类似,此方案明显不能适应大量设备节点的情况,不利于网络设备节点的扩展。
可见,上述两个方案都存在可扩展性不足的问题,对于具有大量的网络设备节点的情况,无法实现可靠组播。
发明内容
本发明实施例要解决的技术问题是提供网络设备内部节点可靠组播的方法、系统及设备,以实现具有大量网络设备节点的可靠组播。
为解决上述技术问题,本发明实施例的目的是通过以下技术方案实现的首先,本发明实施例提供了一种网络设备内部节点可靠组播的方法,该方法包括源节点SN将数据分为数据片段并将各数据片段封装入对应数据片段标识后通过组播方式向所有的目的节点DN直接传送;DN接收到所述数据片段之后,向所属的中间节点MN回复携带了所述数据片段标识的确认信息;MN发现所属的DN都回复了确认信息时,发送携带了所述数据片段标识的统一确认信息给SN。
优选的,如果SN在预设的时间内未收到所有MN的所述携带了数据片段标识的确认信息,则通过组播方式重传所述数据片段。
其中,所述MN级数大于一级时,MN接收到DN或其下级MN的所述确认信息后,向其所属的直接上级MN或SN回复所述统一确认信息。
其中,所述数据片段标识为数据片段序列号。
可选的,在所述数据传送过程中,有新的节点通过所选取的MN向所述SN请求并加入组播组时,SN将当前数据片段序列号通知该DN及其所属的MN。
可选的,通过组播方式或单播方式向所述新的节点重传该节点加入前所传送的数据片段。
优选的,所述统一确认信息中还携带了用于限制SN连续发送组播数据片段的最小通告窗口。
优选的,当所述数据片段重传超过预设的重传次数时,则不再重传。
本发明实施例还提供了一种可靠组播系统,该系统包括源节点设备、目的节点设备和至少一级中间节点设备,其中源节点设备,将数据分为数据片段,将各数据片段封装入对应数据片段标识后通过组播方式向目的节点设备直接发送,接收中间节点设备回复的携带了所述数据片段标识的统一确认信息;中间节点设备,接收所属的目的节点设备发送的携带了所述数据片段标识的确认信息,判断是否所属的所有目的节点设备都回复了确认信息,并当所属的所有目的节点都回复了确认信息时,向源节点设备发送携带了所述数据片段标识的统一确认信息;目的节点设备,接收组播数据片段,并在接收到所述数据片段之后,向所属的中间节点设备回复携带了所述数据片段标识的确认信息。
优选的,所述的源节点设备还用于在预设的时间内未收到所述统一确认信息时,重传所述数据片段。
本发明实施例还提供了一种网络节点设备,该设备包括接收单元、发送单元、判断单元,其中接收单元,接收其它网络节点设备接收到数据片段后的携带了数据片段标识的确认信息;判断单元,判断是否所属的加入组播组的所有网络节点设备都回复了确认信息,并在都回复了确认信息时,触发发送单元发送携带了所述数据片段标识的统一确认信息;发送单元,发送携带了所述数据片段标识的统一确认信息到所述确定的网络节点设备。
从以上技术方案可以看出,由于通过所选取的MN进行分级确认,SN不会同时收到大量的确认信息,所以缓解了SN进行信息确认时的处理压力,因而不会由于大量的信息确认导致SN的处理能力不足而造成SN丢弃部分确认信息的情况,增强了SN的系统可靠性及信息处理完备性;由于这种分级确认的方式能够满足大量网络设备内部节点情况下进行数据组播的需要,因此,提高了整个网络设备节点的可扩展性,进而,提高了网络系统的处理效率,节约了系统资源。
另外,通过MN来对节点加入或退出组播组进行管理,缓解了SN的处理压力,从而进一步增强网络内部设备节点的可扩展性,提高了系统效率。
可见,通过分级方式对DN进行确认和管理,可以使得网络系统部署更灵活,性能更优越。
图1为本发明一实施例的可靠组播流程图;图2为本发明另一实施例的可靠组播流程图;
图3为本发明一实施例中的可靠组播发送和接收示意图;图4为本发明一实施例中的数据确认示意图;图5为本发明一实施例中的一种网络节点设备结构示意图。
具体实施例方式
为使本发明实施例的优点和特征更加清楚明白,下面参照附图作进一步描述。
首先,本发明实施例所提供的技术方案提供了一种网络设备内部节点可靠组播的方法,以下举实施例进行详细说明。
实施例一、首先以几台路由器之间的可靠组播为例进行说明。参照附图1、附图3和4,图1为本实施例的可靠组播流程图,图3为本实施例中的可靠组播发送和接收示意图,图4为本实施例中的数据确认示意图。
步骤11确定用来管理DN的MN,DN通过MN加入以SN为数据源节点的一个组播组;在一台路由器的主控板作为SN发送数据,其它路由器的业务板作为DN接收组播数据的情境下,可将这些业务板所在机框内的主控设备作为MN对本路由器内的业务板进行管理,SN、DN、MN分别如图3和图4中的31、32、33所示。
每个组播组都有一个唯一的组播地址,加入该组播组后,DN开始侦听来自该组播地址的数据,准备接收。
步骤12SN按照MTU(Maximum Transmission Unit,最大传输单元)大小将数据分片,将各数据片段打包后通过组播方式直接发送到DN;MTU是网络上可以传送的最大数据包,其单位是字节,为避免数据包过大而使传送过程中的丢包率增加,应按照MTU大小将数据分片传送。当然,如果所发送的数据包很小,就不需要分片,不分片可视为将所要发送的数据仅分为一片。
为了实现对等层通信,当数据需要通过网络从一个节点传送到另一节点前,必须在数据的头部(和尾部)加入特定的协议头(和协议尾)。这种增加数据头部(和尾部)的过程叫做数据打包或数据封装。同样,在数据到达接收节点的对等层后,接收方将识别、提取和处理发送方对等层增加的数据头部(和尾部)。接收方这种将增加的数据头部(和尾部)去除的过程叫做数据拆包或数据解封。
在数据包的头部封装该数据片段的数据片段序列号作为数据片段标识,起始数据片段的序列号可随机产生,后续数据片段的序列号依次增加。数据包的头部还可设置校验和等控制信息。
步骤13DN接收到SN发送的组播数据片段时,回复确认信息到所属的MN,确认信息中携带该数据片段的序列号。
DN接收到SN发送的数据片段后,可以直接将包含该数据片段序列号的确认信息发送到所述的MN。不过,数据的频繁确认会使网络负荷增加,尤其是数据包头部的控制信息,也会占用不必要的带宽,为了增加带宽利用效率,可以传送几个数据片段后发送一个总的确认信息,如,当DN收到数据片段序列号为1至5的5个数据片段后,确认信息中携带数据片段序列号为5就代表数据片段序列号从1至5的数据片段均收到。
步骤14当MN发现所属的DN都回复了确认信息时,向SN发送统一的确认信息,统一的确认信息中携带有数据片段序列号。
SN根据确认信息中携带的数据片段序列号,就可以确认该数据片段传送成功。
实施例二、为增强数据传送的可靠性,对上述实施例作进一步优化,具体为在上述实施例一的步骤14之后,采用如下方式如果SN在预设的时间内没有收到所有MN的统一确认信息,则认为有的DN未收到该数据片段,并采用组播方式重传该数据片段。
重传后,如果SN在预设的时间内收到了所有MN的统一确认信息,说明重传成功。如果在预设的时间内还没有收到所有MN的统一确认信息,可继续重传。
考虑到重传对传输效率的影响,可以预设重传次数,如果达到了预设的重传次数后,SN仍无法在预设的时间内收到所有MN的统一确认信息,也即,仍有DN无法接收到数据,则不再重传。
实施例三、在组播数据传送过程中,如果有新的节点请求加入组播组作为DN接收组播数据,可采用如下方式,参照图2所示流程图。
步骤21SN在组播数据发送的过程中,当接收到有新的节点加入该组播组的请求时,将所要发送的当前数据片段的序列号通知该DN及其所属的MN;SN在组播数据发送的过程中,接收到有新的节点通过该节点所对应的MN发送的加入该组播组的请求时,将当前数据片段的序列号通知该DN所属的MN,MN将SN当前发送的数据片段的序列号通知该DN,随后,以此序列号作为SN以及该节点所属的MN进行确认的起始序列号。
步骤22SN通过组播方式向组播组中的所有DN传送该数据片段;步骤23DN收到该数据片段后,向所属的MN回复携带了数据片段序列号的确认信息;步骤24MN发现所属的DN都回复了确认信息,回复携带了所述数据片段序列号的统一确认信息给SN。
其它的数据片段依次按照同样的方式发送、接收和确认。
针对实施例三中新加入的节点,由于之前有一部分数据片段没有接收,如果这一部分数据之后没有变化,为了保证可靠组播,则需要进行重传。由于仅仅是单个的节点没有接收到数据,因此,可以考虑用单播的方式重传先前没有接收的数据片段,即SN将先前没有传送的数据片段按照序列号顺序依次传送到该新加入的节点。
当然,如果在数据发送过程中,在不同的时刻有多个节点加入,可以以最后加入的节点所接收到的数据片段作为重传的最后一个数据片段,采用组播方式进行重传及确认,具体方式与上述几个实施例相似,不再详细描述。
还可采用滑动窗口的机制来对DN的流量进行控制。具体为DN可以根据本节点缓冲区的大小,通过确认信息中的最小通告窗口向MN通告还能接收数据的容量,MN根据DN返回的确认信息选择最小通告窗口值最小的一个通知SN,则SN根据MN返回的确认信息中的最小通告窗口大小,进行数据发送,从而使得SN在等待确认信息前可以依据最小通告窗口的大小连续发送多个数据片段,除非最小通告窗口值为0。由于SN不必每发送一个数据片段就停下来等待确认,因此可以加速数据的传输。
当遇到SN发送的快而DN接收的慢的情况时,最小通告窗口会很快被SN的数据填满,此时DN将最小通告窗口大小设置为0,并在确认信息中通知SN,则SN停止发送数据。直到DN中的应用程序取走数据后更新最小通告窗口大小,SN可以继续发送数据。
对于在数据传送过程中,有节点中途退出的情况,只需要由该节点将请求发送到所属的MN,MN上报到SN,SN将该节点退出组播组并做出响应,此后该节点不接收所述SN发送的数据,MN也不等待该节点确认信息的返回,除非该节点重新加入这个组播组,不再赘述。
需要注意的是,本发明实施例所提供的技术方案对MN的分级层次数没有限制。各级MN只管理属于自己的下级节点信息,并且各级MN只处理属于自己的下级节点发送的确认信息,各级中间节点接收到所属的所有下级节点的确认信息后,发送统一的确认信息给上一级节点或发送组播数据的SN。
以下为本发明实施例所提供的一种网络组播系统,参照图3和4,该系统包括源节点设备31、中间节点设备32和目的节点设备33,其中源节点设备31,将数据分为数据片段,并将各数据片段封装入相应的数据片段序列号后通过组播方式向目的节点设备33直接发送,接收中间节点设备32回复的携带了所述数据片段序列号的统一确认信息;中间节点设备32,接收所属的目的节点设备33发送的携带了所述数据片段序列号的确认信息,判断是否所属的所有目的节点设备33都回复了确认信息,并当所属的所有目的节点设备33都回复了确认信息时,向源节点设备31发送携带了所述数据片段序列号的统一确认信息;目的节点设备33,接收组播数据片段,并在接收到所述数据片段之后,向所属的中间节点设备32回复携带了所述数据片段序列号的确认信息。
为了增强组播系统的数据传输可靠性,在源节点设备31中可设置定时器,如果在预设的时间内未收到所述统一确认信息时,触发所述数据片段重传。
上述实施例为中间节点设备为一级的情况,中间节点设备根据组播系统的复杂度,可以有多级中间节点设备,中间节点设备用于接收所属的目的节点设备的确认信息或其直接下级中间节点设备的统一确认信息,并当其所属的所有目的节点设备或中间节点设备都回复了确认信息或统一确认信息时,向其直接所属的上级中间节点设备或源节点设备回复统一的确认信息。
以上各个节点设备均可为一具体的物理实体,也可以为某一物理实体中的一个组件,或某一物理实体中运行的进程,本领域技术人员可以根据不同的需要而应用于不同的场景。
以下为本发明实施例提供的一种网络节点设备,参照图5,该设备包括接收单元51、判断单元52、发送单元53,其中接收单元51,接收其它网络节点设备接收到数据片段后的携带了数据片段序列号的确认信息;判断单元52,根据接收到的确认信息判断是否所属的加入组播组的所有网络节点设备都回复了确认信息,并在都回复了确认信息时,触发发送单元53发送所述携带了数据片段序列号的统一确认信息;发送单元53,发送携带了所述数据片段序列号的统一确认信息到所述确定的网络节点设备。
该网络节点设备不一定就是一个具体的物理实体,也可以为某一物理实体中的一个组件,或某一物理实体中运行的进程,可以根据不同的需要将其应用于适当的场景。
从以上各实施例可以看出,通过分级确认避免了当有大量网络节点设备时大量确认信息回复造成源节点设备处理能力不足的问题,这种网络组播方式使得系统的可扩展性强,当有大量网络设备节点时仍能保持较高的系统可靠性以及传输效率。
通过重传进一步增强了组播系统数据传输的可靠性,提高了系统性能。
而设定重传次数以及最小通告窗口使得在保证系统传输可靠性的情况下进一步提高传输效率,节约了系统资源。
以上对本发明实施例所提供的一种网络设备内部节点可靠组播的方法、系统及设备进行了详细介绍,以上实施例的说明只是用于帮助理解本发明的方法及其思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式
及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
权利要求
1.一种网络设备内部节点可靠组播的方法,其特征在于,包括源节点SN将数据分为数据片段并将各数据片段封装入对应数据片段标识后通过组播方式向所有的目的节点DN直接传送;DN接收到所述数据片段之后,向所属的中间节点MN回复携带了所述数据片段标识的确认信息;MN发现所属的DN都回复了确认信息时,发送携带了所述数据片段标识的统一确认信息给SN。
2.如权利要求1所述的网络设备内部节点可靠组播的方法,其特征在于,进一步包括如果SN在预设的时间内未收到所有MN的所述携带了数据片段标识的确认信息,则通过组播方式重传所述数据片段。
3.如权利要求2所述的网络设备内部节点可靠组播的方法,其特征在于,所述MN级数大于一级时,MN接收到DN或其直接下级MN的所述确认信息后,向其所属的直接上级MN或SN回复所述统一确认信息。
4.如权利要求1、2或3所述的网络设备内部节点可靠组播的方法,其特征在于,所述数据片段标识为数据片段序列号。
5.如权利要求1、2或3所述的网络设备内部节点可靠组播的方法,其特征在于,进一步包括在所述数据传送过程中,有新的节点通过所选取的MN向所述SN请求并加入组播组时,SN将当前数据片段序列号通知该DN及其所属的MN。
6.如权利要求5所述的网络设备内部节点可靠组播的方法,其特征在于,进一步包括通过组播方式或单播方式向所述新的节点重传该节点加入前所传送的数据片段。
7.如权利要求1、2或3所述的网络设备内部节点可靠组播的方法,其特征在于,所述统一确认信息中还携带了用于限制SN连续发送组播数据片段的最小通告窗口。
8.如权利要求2或6所述的网络设备内部节点可靠组播的方法,其特征在于,当所述数据片段重传超过预设的重传次数时,则不再重传。
9.一种可靠组播系统,其特征在于,包括源节点设备、目的节点设备和至少一级中间节点设备,其中源节点设备,将数据分为数据片段,将各数据片段封装入对应数据片段标识后通过组播方式向目的节点设备直接发送,接收中间节点设备回复的携带了所述数据片段标识的统一确认信息;中间节点设备,接收所属的目的节点设备发送的携带了所述数据片段标识的确认信息,判断是否所属的所有目的节点设备都回复了确认信息,并当所属的所有目的节点都回复了确认信息时,向源节点设备发送携带了所述数据片段标识的统一确认信息;目的节点设备,接收组播数据片段,并在接收到所述数据片段之后,向所属的中间节点设备回复携带了所述数据片段标识的确认信息。
10.如权利要求9所述的可靠组播系统,其特征在于,所述的源节点设备还用于在预设的时间内未收到所述统一确认信息时,重传所述数据片段。
11.一种网络节点设备,其特征在于,包括接收单元、发送单元、判断单元,其中接收单元,接收其它网络节点设备接收到数据片段后的携带了数据片段标识的确认信息;判断单元,判断是否所属的加入组播组的所有网络节点设备都回复了确认信息,并在都回复了确认信息时,触发发送单元发送携带了所述数据片段标识的统一确认信息;发送单元,发送携带了所述数据片段标识的统一确认信息到所述确定的网络节点设备。
全文摘要
本发明属于组播技术领域,提供了一种网络设备内部节点可靠组播的方法、系统及设备,通过本发明实施例所提供的设备及系统,采用如下组播方法源节点SN将数据分为数据片段并将各数据片段封装入对应数据片段标识后通过组播方式向所有的目的节点DN直接传送;DN接收到所述数据片段之后,向所属的中间节点MN回复携带了所述数据片段标识的确认信息;MN发现所属的DN都回复了确认信息时,发送携带了所述数据片段标识的统一确认信息给SN。通过分级确认能够满足大量网络设备内部节点情况下进行数据组播的需要,提高了整个网络设备节点的可扩展性。
文档编号H04L1/18GK101026478SQ20071000327
公开日2007年8月29日 申请日期2007年2月2日 优先权日2007年2月2日
发明者吴小前, 孙达志, 宋超峰 申请人:华为技术有限公司