一种在组播业务中实现差错恢复的方法

文档序号:7647246阅读:122来源:国知局

专利名称::一种在组播业务中实现差错恢复的方法
技术领域
:本发明涉及组播技术,特别是涉及一种在组播业务中实现差错恢复的方法。
背景技术
:在组播业务中,发送方需要将同一份业务数据发送给不同的接收方,即发送给组播组内所有的成员。在发送的过程中,由于链路等方面的原因,发送的业务数据可能存在丢失现象,即分组丢失。在这种情况下,接收方就无法正确接收业务数据,将严重影响组播业务的实现。为了控制分组丢失现象对组播业务的影响,可以采用自动重传请求(ARQ,AutomaticRepeatRequest)的方法进4亍差4普恢复。ARQ差错恢复技术可以分为全局性差错恢复方法和基于本地恢复组的差错恢复方法。其中,全局性差错恢复方法的大致思想是当某接收方发生分组丢失时,先将丢失情况通知给发送方,发送方再将该丢失的数据通过组播的方式重新下发给该接收方,直到接收方正确接收到该丢失的数据。全局性差错恢复方法主要存在以下缺点的所有接收方都会向接收方反馈自身的接收情况。如果接收方比较多,发送方会接收到大量的反馈信息。进一步地,如果多个接收方发生分组丟失现象,并且丢失不同的数据,那么,发送方将釆用组播的方式将每一个丢失的数据下发给多个接收方。这样,所有的接收方就会针对每一个下发的数据向发送方反馈信息,可能造成反馈风暴,淹没组播组。2)由于发送方采用组播的方式下发丟失的数据,该组播组内其他已经正确接收的接收方将不可避免地再次接收该数据,即重复恢复,不但浪费网络和接收方的资源,还容易导致网络阻塞情况的发生。3)由于发送方每次只能下发一个丢失的数据,该组播组内的某些接收方可能无法快速获得丟失的数据,即无法快速恢复差错,从而影响组播业务的实现。
发明内容有鉴于此,本发明的主要目的在于提供一种在组播业务中实现差错恢复的方法,可以提高接收方差错恢复的效率,节约网络资源,以及避免反馈风暴。为了达到上述目的,本发明提出的技术方案为一种在组播业务中实现差错恢复的方法,其特征在于,该方法包括以下步骤a、发送方先将组播数据包划分为数据块,再将数据块依次下发给组播组内的接收方,并接收返回的携带有丢失信息的响应消息;b、发送方根据接收到丢失信息确定丢失的数据块,再根据丟失的数据块确定差错恢复数据块,并将差错恢复数据块下发给组播组内的接收方;c、组播组内丟失数据块的接收方根据差错恢复数据块获得丢失的数据块,实现差错恢复。上述方案中,步骤a所述发送方将数据块下发给接收方时,该方法进一步包括发送方将数据块对应的数据块标识一并发送给接收方;步骤a所述组播组内的接收方向发送方返回响应消息的方法为接收方根据自身接收到的数据块所对应的数据块标识生成丢失信息,并将丟失信息携带于响应消息中返回给发送方。上述方案中,预先在组播组内的接收方设置用于记录每一个数据块接收状态的接收状态列表,并设置反馈周期,所述接收方生成丢失信息的方法为在反^"周期中,当所述接收方接收到下发的数据块时,按照数据块对应的标识将已接收状态信息记录在所述接收状态列表中,并在反馈周期结束时,所述接收方根据接收状态列表生成丟失信息。上述方案中,预先在发送方设置重发周期,步骤b所述发送方根据丢失信息确疋丟大的#:揚块的方法为在重发周期中,所述发送方接收并记录组播组内所有接收方返回的响应消息中的丟失信息,并在重发周期结束时,根据所有接收方最近发送的响应消息中的丢失信息确定丢失的数据块。上述方案中,步骤b所述确定差错恢复数据块的方法为发送方根据网络编码算法将确定丢失的数据块进行组合,生成复合数据块,并将生成的复合数据块作为差错恢复凄t据块。上述方案中,所述网络编码算法为线性网络编码算法。上述方案中,所述差错恢复数据块中包括进行组合的数据块的识别信息,步骤c所述获得丟失的数据块的方法为接收方根据所述识别信息判断所述差错恢复数据块中是否包括自身丢失的数据块,如果包括,则根据网络编码算法的逆运算将自身丢失的数据块从所述差错恢复数据块中译出。上述方案中,所述接收方将自身丢失的数据块从差错恢复数据块中译出之前,该方法进一步包括接收方根据所述识别信息判断在用于组合差错恢复数据块的数据块中,自身是否只丢失一个数据块,如果是,则继续执行。上述方案中,当发送方确定丢失的数据块之后,该方法进一步包括发送方根据预先设置的组合策略判断在丢失的数据块中,是否存在无需组合的数据块,如果存在,则直接将所述无需组合的数据块下发给接收方。综上所述,本发明提出的一种在组播业务中实现差错恢复的方法,由于发送方可以将各个接收方丢失的不同的数据块采用网络编码算法组合起来,生成一个统一的差错恢复数据块,各接收方再分别从所述差错恢复数据块中获得自身丟失的数据块,不但可以提高接收方差错恢复的效率,减少发送方和接收方交互的次数,节约网络资源,还可以抑制重发,避免反馈风暴。图1是本发明的流程图;图2是本发明实施例中接收方丢失数据块的示意图;图3是本发明实施例的流程图。具体实施方式为使本发明的目的、技术方案和优点更加清楚,下面将结合附图及具体实施例对本发明作进一步地详细描述。本发明的基本思想是发送方根据组播组内接收方丢失的数据块确定差错恢复数据块,并将所述差错恢复数据块发送给接收方,丟失数据块的接收方则可以根据差错恢复数据块获得丢失的数据块,从而实现差错恢复。图l是本发明的流程图。如图1所示,本发明实现在组播业务中进行差错恢复的方法包括以下步骤步骤101:发送方先将组播数据包划分为数据块,再将数据块依次下发给组播组内的接收方,并接收返回的携带有丢失信息的响应消息。本步骤中,为了接收方能够更好地判断出自身丢失了哪个数据块,发送方可以在划分数据包时,将划分的每一个数据块分配一个对应的数据块标识,并在下发数据块时,将所述的数据块标识一起发送给接收方。这样,接收方就可以根据接收到的数据块所对应的数据块标识生成丟失信息。这里所述的丢失信息可以为接收方丟失的数据块所对应的数据块标识,也可以为其它信息,只要可以将自身丢失数据块的信息通知给发送方即可。比如数据包一共划分为5个数据块,如果接收方丢失了第二个和第三个数据块,可以直接将"2、3"发送给发送方,也可以将"10011"发送给发送方。如果将"10011"发送给发送方,其中值为"0"的第二位、第三位则可以表示丢失了第二个和第三个数据块。实际应用中,如果发送方和接收方可以确定发送数据块的时间、顺序等因素,也可用不为划分的数据块分配对应的数据块标识,只要接收方可以判断出自身丢失哪个数据块即可。步骤102:发送方根据接收到丟失信息确定丟失的数据块,再根据丢失的数据块确定差错恢复数据块,并将差错恢复数据块下发给组播组内的接收方。本步骤所述确定差错恢复数据块的方法可以为发送方根据网络编码算法将确定丢失的数据块进行组合,生成复合数据块,并将生成的复合数据块作为差错恢复数据块。这里所述网络编码算法可以为线性网络编码算法,比如XOR算法等。当然,实际应用中,也可以不采用网络编码算法,只要接收方可以从编码后的差错恢复数据块中译出自身丢失的数据块即可。步骤103:组播组内丢失数据块的接收方根据差错恢复数据块获得丢失的数据块,实现差错恢复。这里,不管之前发送方采用哪种方法确定差错恢复数据块,当接收方需要从所述差错恢复数据块中获得自身丢失的数据块时,还需要知道所述差错恢复数据块由哪些丢失的数据块组合,即所述差错恢复数据块中包括进行组合的数据块的识别信息。这样,接收方就可以根据所述识别信息判断所述差错恢复数据块中是否包括自身丢失的数据块,如果包括,则根据网络编码算法的逆运算将自身丢失的数据块从所述差错恢复数据块中译出;否则,丟弃所述差错恢复数据块。这里所述识别信息用于识别进行组合的数据块,可以为数据块所对应的^:据块标识,也可以为其它信息。比如识别信息为"10110",如果"1"表示参加组合的数据块,则"10110"可以表示第一个、第三个和第四个数据块进行了组合。当然,实际应用中,也可以采用其它的方法来表示,只要接收方可以标识哪些数据块参加了组合即可。另外,实际应用中,如果发送给组播组内各接收方的数据块丢失得比较多,下发一次差错恢复数据块可能无法使所有的接收方恢复差错。在这种情况下,可以采用多次下发差错恢复数据块的方法。当然,这里每一次下发的差错恢复数据块可能是不同的,而是根据接收方返回的最新的响应消息重新确定丢失的数据块,并根据重新确定丢失的数据块生成新的差错恢复数据块。为了更好地说明本发明方案,下面用具体的实施例进行详细描述。本实施例中,有5个接收方,即接收方1接收方5。预先在组播組内的发送方设置重发周期,在每一个接收方设置反馈周期,所述重发周期和反馈周期的设置与数据传输速率、传输时延等信息相关,可以根据实际情况确定。本实施例中,发送方将需要传输给接收方的组播数据包划分为5个数据块,依次表示为D1D5,并为每一个数据块分配一个对应的数据块标识。相应地,本实施例中,为了记录接收数据块的情况,接收方预先设置了用于记录每一个数据块接收状态的接收状态列表,如表一所示<table>tableseeoriginaldocumentpage9</column></row><table>表一在接收方的每一个反馈周期,当所述接收方接收到下发的数据块时,按照数据块对应的标识将已接收状态信息记录在所述接收状态列表中。这里,接收方可以先将接收状态列表中的每一项初始为"未接收",当接收到某数据块时,则将其更改为"已接收",所述"已接收"就是已接收状态信息。当然,实际应用中,也可以用"0"、'T,等信息表示是否已经接收到对应的数据块,此处不再赘述。图2是本实施例接收方丢失数据块的示意图。如图2所示,本实施例中,接收方中每一个阴影表示丢失的数据块,即接收方1丢失D5,接收方2丢失D3,接收方3丢失D2,接收方4丟失D4,接收方5丢失D1。图3是本实施例的流程图。如图3所示,本实施例在组播业务中实现差错恢复的方法包括以下步骤步骤301:发送方将划分的数据块DWD5依次下发给组播组内的接收方1~接收方5。步骤302:在反馈周期中,当接收方1~接收方5接收到下发的数据块时,按照数据块对应的标识将已接收状态信息记录在自身接收状态列表中。步骤303:在反馈周期结束时,接收方1~接收方5根据自身的接收状态列表生成丢失信息。本步骤中,如杲接收方接收到某数据块,就将对应的接收状态一项记录为'T,,则接收方1的接收状态列表中的值为"11110",表示未接收到D5。这里所述"11110"就是丢失信息。步骤304:接收方1~接收方5将丢失信息携带于响应消息NACK中返回给发送方。实际应用中,如果某接收方接收到了全部的数据块,可以向发送方返回不包括丟失信息的ACK响应消息t步骤305:发送方接收并记录接收方1~接收方5返回的NACK响应消息中的丢失信息。重发周期中,如果接收方向发送方返回了多条响应消息,接收方可以只记录最新的响应消息。当重发周期结束时,发送方将根据所有接收方最近发送的响应消息中的丢失信息确定丢失的数据块。至于重发周期之后达到的响应消息,则作为下一次确定丢失数据块的依据。这种方法可以称为尽力而为策略,也可以作为重发抑制策略。其原因在于发送方虽然在某一个重发周期未接收到某接收方的NACK响应消息,但该接收方可能在该重发周期结束接收到差错恢复数据块,并根据差错恢复数据块获得全部或部分丢失的数据块。那么,下一次发送给发送方的NACK响应消息可能与前一次的NACK响应消息不同,此时,发送方就不必参考前一次的NACK响应消息了。步骤306:重发周期结束时,发送方根据接收方1~接收方5最近发送的响应消息中的丟失信息确定丢失的数据块。本实施例中,假设接收方1接收方5在第一个重发周期就将丢失信息发送给了发送方,即接收方1丢失D5,接收方2丟失D3,接收方3丢失D2,接收方4丟失D4,接收方5丢失D1。步骤307:发送方根据线性网络编码算法将确定丟失的数据块进行组合,生成复合数揚块,开将生成的复合数椐块作为差错恢复数据块。本步骤中,表示根据线性网络编码算法对数据块进行组合的方法可以由以下公式一表示D=Dtxk,+D2xk2+......+Dnxkn(公式一)其中,D,为发送方用于组合差错恢复数据块,Ki为线性网络编码算法中的编码因子,而D则为组合后生成的差错恢复数据块。这里,所述的编码因子&与具体的线性网络编码算法相关。比如如果线性网络编码算法采用XOR编码算法,则编码因子K,为"0"或'T'。下面以XOR编码算法为例对差错恢复数据块进行组合的方法说明如果发送方共发送5个数据块,并确定接收方丢失的数据块为Dl、D3、D5,则组合差错恢复数据块的公式应该为D=D!x1+D2x0+D3x1+D4x0+D5x1=D1+D3+D5(公式二)当然,实际应用中,也可以不采用XOR编码算法,而是采用其它的线性网络编码算法。此时,编码因子就不是全部为"0"或'T,。进一步地,为了增加传输的可靠性,还可以根据信号功率确定编码因子。比如如果丟失数据块D1的接收方比较多,则可以将编码因子设置得比较大;反之,则设置得比较小。例如在5个接收方中有4个接收方丢失了数据块1,有3个接收方丢失了数据块3,有1个接收方丢失了数据块5。那么,编码因子k,、k3和ks之间的关系就可以为kr>k3>k5,至于具体的值则可以根据实际情况确定。另外,所述差错恢复数据块中还可以包含进行组合的数据块的识别信息,以便于接收方确定该差错恢复数据块由哪些数据块组合。这里所述识别信息可以为参加组合的数据块对应的数据块标识,也可以为其它信息。比如仍然以Dl、D3和D5组合差错恢复数据块为例,所述识别信息就可以为"10101",接收方根据值为"1"的位置就可以确定哪些数据块进行了组合。步骤308:发送方将携带有数据块识别信息的差错恢复数据块发送给接4文方1~净妾4文方5。本步骤中,发送方是将一个差错恢复数据块分别发送给5个不同的接收方,即采用组播的方式下发。步骤309~步骤311:接收方1~接收方5分别根据识别信息判断差错恢复数据块中是否包含自身丢失的数据块,如果有,则根据网络编码算法的译码算法将自身丢失的数据块从差错恢复数据块中译出;否则,丢弃所述差错恢复数据块。本步骤中,接收方是采用网络编码算法的译码算法将自身丢失的数据块从差错恢复数据块中译出的。比如发送方采用的网络编码算法为XOR编码算法,进行组合的Dl=0010,D3=1110,D5=1010,那么,组合之后的D=0110。此时,如果接收方1已经接收到Dl和D3,那么,将D、Dl和D3进行译码运算,就可以获得1010,即接收方从差错恢复数据块中译出D5,从而实现差错恢复。与接收方l相似,其它的接收方也可以译出自身丢失的数据块本实施例是以每个接收方只丢失一个数据块为例说明本发明方案的,实际应用中,如果接收方丟失了组合差错恢复数据块中的一个以上的数据块,就无法一次直接从组合差错恢复数据块中译出自身丢失的数据块。比如发送方采用的网络编码算法为XOR编码算法,进行组合的Dl=0010,D3=1110,D5-1010,组合后的D-0110。如果接收方1之前只接收到Dl,那么,接收方1就无法直接根据D和Dl译出D3和D5。在上述这种情况下,在接收方将自身丢失的数据块从差错恢复数据块中译出之前,该方法进一步包括接收方根据所述识别信息判断在用于组合差错恢复数据块的数据块中,自身是否只丢失一个数据块,如果是,继续执行。当然,如果接收方根据所述识别信息判断出在用于组合差错恢复数据块的数据块中,自身丢失了一个以上的数据块,此时,接收方还需要保存所述差错恢复数据块。没有直接译出自身丟失的数据块的接收方还需要向发送方返回下一条NACK响应消息。发送又将重新根据新接收到的NACK响应消息确定丟失的数据块,并生成新的差错恢复数据块,即重复执行步骤304~步骤311。此时,之前没有直接译出自身丢失的数据块的接收方就可以根据事先保存的差错恢复数据块和新接收到的差错恢复数据块译出自身丢失的数据块。当然,如果仍然没有译出自身丢失的全部数据块,则还需要重复执行步骤304~步骤311,直到发送方不再接收到NACK消息,即所有的接收方全部实现了差错恢复。实际应用中,不同的数据块丢失的情况可能不同,发送方还可以预先设置的组合策略,以确定是否进行组合。也就是说,当发送方确定丢失的数据块之后,该方法进一步包括发送方根据预先设置的组合策略,判断在丟失的数据块中是否存在无需组合的数据块如果存在,则直接将所述无需组合的数据块下发给接收方。这里所述预先设置的组合策略可以是与数据块丢失概率相关的策略。比如所有的接收方都没有接收到Dl,那么,Dl丢失的概率为100%。如果预先设置的数据块丢失概率为80%,那么,所述组合策略就可以为当某数据块丢失概率大于预先设置的数据块丢失概率时,将进行组合;否则,无需进行组合。如果判断出某教据块无需进行组合,就可以直接将该数据块下发给组播组内的所有接收方实际应用中,还可以按照数据块丢失的情况进行分类,并将确定无需组合的数据块设置较高优先级,将需要进行组合的数据块设置较低的优先级,并先将优先级高的数据块下发给接收方,再将优先级低的数据块组合后下发给接收方。但实际应用中,至于是否进行分类,是否设置优先级别等则可以有应用本发明方案的用户自行确定,此处不再赘述。另外,本发明方案可以适用于有线、无线、包含中继节点的网络。应用本发明方案,发送方可以将各个接收方丢失的不同的数据块采用网络编码算法组合起来,生成一个统一的差错恢复数据块,各接收方再分别从所述差错恢复数据块中获得自身丟失的数据块,不但可以提高接收方差错恢复的效率,减少发送方和接收方交互的次数,节约网络资源,还可以抑制重发,避免反馈风暴。综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。权利要求1.一种在组播业务中实现差错恢复的方法,其特征在于,该方法包括以下步骤a、发送方先将组播数据包划分为数据块,再将数据块依次下发给组播组内的接收方,并接收返回的携带有丢失信息的响应消息;b、发送方根据接收到丢失信息确定丢失的数据块,再根据丢失的数据块确定差错恢复数据块,并将差错恢复数据块下发给组播组内的接收方;c、组播组内丢失数据块的接收方根据差错恢复数据块获得丢失的数据块,实现差错恢复。2、根据权利要求1所述的方法,其特征在于,步骤a所述发送方将数据块下发给接收方时,该方法进一步包括发送方将数据块对应的数据块标识一并发送给4妄收方;步骤a所述组播组内的接收方向发送方返回响应消息的方法为接收方根据自身接收到的数据块所对应的数据块标识生成丢失信息,并将丢失信息携带于响应消息中返回给发送方。3、根据权利要求2所述的方法,其特征在于,预先在组播组内的接收方设置用于记录每一个数据块接收状态的接收状态列表,并设置反馈周期,所述接收方生成丟失信息的方法为在反馈周期中,当所述接收方接收到下发的数据块时,按照数据块对应的标识将已接收状态信息记录在所述接收状态列表中,并在反馈周期结束时,所述接收方根据接收状态列表生成丢失信息。4、根据权利要求1所述的方法,其特征在于,预先在发送方设置重发周期,步骤b所述发送方根据丟失信息确定丢失的数据块的方法为在重发周期中,所述发送方接收并记录組播组内所有接收方返回的响应消息中的丢失信息,并在重发周期结束时,根据所有接收方最近发送的响应消息中的丟失信息确定丟失的数据块。5、根据权利要求l所述的方法,其特征在于,步骤b所述确定差错恢复数据块的方法为发送方根据网络编码算法将确定丢失的lt据块进行组合,生成复合数据块,并将生成的复合数据块作为差错恢复数据块。6、根据权利要求5所述的方法,其特征在于,所述网络编码算法为线性网络编码算法。7、根据权利要求5所述的方法,其特征在于,所述差错恢复数据块中包括进行组合的数据块的识别信息,步骤c所述获得丟失的数据块的方法为接收方根据所述识别信息判断所述差错恢复数据块中是否包括自身丢失的数据块,如果包括,则根据网络编码算法的译码算法将自身丟失的数据块从所述差错恢复数据块中译出。8、根据权利要求7所述的方法,其特征在于,所述接收方将自身丢失的数据块从差错恢复数据块中译出之前,该方法进一步包括接收方根据所述识别信息判断在用于组合差错恢复数据块的数据块中,自身是否只丢失一个数据块,如果是,则继续执行。9、根据权利要求5所迷的方法,其特征在于,当发送方确定丟失的数据块之后,该方法进一步包括发送方根据预先设置的组合策略判断在丢失的数据块中,是否存在无需组合的数据块,如果存在,则直接将所述无需組合的数据块下发给接收方。全文摘要本发明提供一种在组播业务中实现差错恢复的方法,具体为发送方先将组播数据包划分为数据块,再将数据块依次下发给组播组内的接收方,并接收返回的携带有丢失信息的响应消息;发送方根据接收到丢失信息确定丢失的数据块,再根据丢失的数据块确定差错恢复数据块,并将差错恢复数据块下发给组播组内的接收方;组播组内丢失数据块的接收方根据差错恢复数据块获得丢失的数据块,实现差错恢复。应用本发明方案,不但可以提高接收方差错恢复的效率,减少发送方和接收方交互的次数,节约网络资源,还可以抑制重发,避免反馈风暴。文档编号H04L1/16GK101222302SQ200710063400公开日2008年7月16日申请日期2007年1月11日优先权日2007年1月11日发明者吴伟陵,谱宋,林家儒,林雪红,凯牛,贺志强申请人:北京邮电大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1