处理传输分组的制作方法

文档序号:7849619阅读:157来源:国知局
专利名称:处理传输分组的制作方法
处理传输分组发明领域本发明涉及对传输分组的处理。特别地,本发明涉及在中继节点上处理运送(i)形成数据流的数据流单元以及(ii)与数据流单元相关的校正数据单元的传输分组。
背景技术
当在两个节点之间传送由数据流单元形成的数据流时,所述数据流可作为多个传输分组来传送。在传输分组中可以包含冗余的校正数据,以使目的地节点校正在传送所述传输分组的过程中出现的差错。例如,前向纠错(FEC)数据可以与数据单元一起包含在传输分组中。所述FEC数据是允许在一定程度上恢复丢失的传输分组中的数据单元的冗余数据。FEC数据可以在单独的传输分组中传送,其中所述单独的传输分组被交织在数据流中或是添加至包含数据单元本身的传输分组净荷之中。与媒体无关的FEC是通过在两个或更多净荷的比特中添加冗余度来发挥作用的。它的一个示例是仅仅通过对数据流中的多个数据单元执行异或(XOR)运算来创建冗余信息。如果在向目的地的传送过程中丢失了净荷,那么 可以在目的地节点上一起使用经过异或的信息(即FEC数据)以及其他传输分组的净荷(即未丢失的传输分组)来重新创建丢失的净荷。在因特网之类的公众网络上,数据传输的广度正在快速增长。由此,为了确保可靠的数据传送,纠错机制变得越发重要。本发明试图改善用于在传送节点与目的地节点之间的数据传送的纠错。

发明内容
根据本发明的第一个方面,提供了一种用于处理传输分组的方法,其中该传输分组运送(i)形成数据流的数据流单元以及(ii)与数据流单元相关的校正数据单元,每一个传输分组都包含用于识别传输分组中的单元的内容的信息,所述方法包括在中继节点上接收传输分组,其中在中继节点上接收的传输分组中的数据流单元不足以构成数据流;使用接收到的传输分组中的校正数据单元以及数据流单元中的至少一些来产生替换数据流单元,以便在中继节点上基本恢复数据流;在中继节点上,将已被基本恢复的数据流中的数据流单元与校正数据单元一起分组化,以便形成从中继节点传送的输出传输分组;以及从中继节点传送所述输出传输分组。根据本发明的第二个方面,提供了一种用于处理传输分组的中继节点,其中该传输分组运送(i)形成数据流的数据流单元以及(ii)与数据流单元相关的校正数据单元,每一个传输分组都包含用于识别传输分组中的单元的内容的信息,所述中继节点包括接收装置,用于接收传输分组,其中在中继节点上接收的传输分组中的数据流单元不足以构成数据流;生成装置,用于使用接收到的传输分组中的校正数据单元和数据流单元中的至少一些来产生替换数据流单元,以便在中继节点上基本恢复所述数据流;分组化装置,用于在中继节点上将已被基本恢复的数据流中的数据流单元与校正数据单元一起分组化,以便形成从中继节点传送的输出传输分组;以及传送装置,用于从中继节点传送所述输出传输分组。根据本发明的第三个方面,提供了一种计算机程序产品,包括可供中继节点上的计算机处理装置运行以处理传输分组的计算机可读指令,其中该传输分组运送(i)形成数据流的数据流单元以及(ii )与数据流单元相关的校正数据单元,每一个传输分组都包含用于识别传输分组中的单元的内容的信息,所述指令包括用于实施以下处理的指令在中继节点上接收传输分组,其中在中继节点上接收的传输分组中的数据流单元不足以构成数据流;使用接收到的传输分组中的校正数据单元以及数据流单元中的至少一些来产生替换数据流单元,以便在中继节点上基本恢复数据流;在中继节点上,将已被基本恢复的数据流中的数据流单元与校正数据单元一起分组化,以便形成从中继节点传送的输出传输分组;以及从中继节点传送所述输出传输分组。·在优选实施例中,数据流单元是加密的数据流单元。此外,在优选实施例中,中继节点不对所接收的传输分组的单元执行任何解密。优选地,校正数据单元是前向纠错(FEC)数据单元。所述FEC数据单元优选是与媒体无关的FEC数据单元。出于众多原因,加密那些在两个节点之间的传输分组中发送的数据单元,以使所述数据只能被一个或多个预定目的地节点重现(retrieve),那么将会是非常有利的。举例来说,这可能是因为所述数据是敏感数据和/或因为所述数据是在两个节点之间的不安全网络上传送的。在现有技术的系统中,在两个节点之间发送传输分组之前,所述传输分组的净荷可被加密。对于数据传送领域的技术人员而言,加密机制是已知的。正如本领域已知的那样,在目的地节点上将会使用与传送节点上用以加密净荷的加密机制相对应的解密机制来解密传输分组净荷。由此,在这些现有技术的系统中,为了使用FEC数据来实现纠错,在目的地节点上将会解密传输分组净荷,以便重现加密的数据以及FEC数据。如果在传送节点与目的地节点之间传送传输分组的过程中丢失了传输分组,那么目的地节点可以使用FEC数据来实现纠错,以便恢复传输分组中的丢失数据。在目的地节点上可以组合使用FEC数据以及所接收的至少一个传输分组中的数据,以便恢复丢失数据分组中的数据单元。发明人认识到,传送节点与目的地节点之间的数据传送路由也行不是直接的。通常,有必要经由一个或多个中继节点来传送数据。从这个意义上讲,数据传送可以包括网络中的多“跳”。每一跳都有可能在数据流中引入差错。然而,在现有技术的系统中,FEC仅仅是在目的地节点上实现(举例来说,其原因在于传输分组的净荷是经过加密的,由此使得所述FEC数据在执行了传输分组的解密之后才可用)。发明人认识到,以这种方式加密传输分组净荷意味着必须解密传输分组净荷,以便使用FEC数据来恢复包含数据流的数据单元的任何丢失传输分组。传送节点和目的地节点必须能够解密传输分组净荷。然而,中继节点可能不能解密传输分组的净荷,其原因在于这需要中继节点上具有解密机制的开销,而这有可能被认为是过度的。此外,中继节点操作的一个重要目标是减少可能在数据传送中引入的任何延迟,因此,可能不希望中继节点对传输分组执行任何解密操作。中继节点可能不能解密传输分组的另一个原因在于中继节点通常是不受信任的。因此,在现有技术的系统中,中继节点不会解密传输分组来重现FEC数据。这样一来,在现有技术的系统中,中继节点不会实现任何纠错。发明人认识到,由于传输分组可能会在每一跳的数据传送中丢失(例如在传送节点-中继节点这一跳;在中继节点-中继节点这一跳;或者在中继节点-目的地节点这一跳),因此,在数据传送的中继节点上实现纠错可能是有利的。这可以成为在目的地节点上实现的纠错的补充。对于传输分组中的数据流单元来说,保持加密来确保数据在数据传送过程中的安全可能是非常重要的。然而,发明人认识到,为了使中继节点执行纠错,可以使用传输分组中的校正数据单元来恢复丢失的数据流单元,而不用在中继节点上执行任何解LU O
非常有利的是,根据本发明的实施例,丢失数据流单元的恢复在中继节点上执行, 而不仅仅是在数据传送的目的地节点上执行。由此,在经由网络进行的数据传送的每一跳之后,丢失的数据流单元都可以得以恢复。这样一来,所述恢复只需要恢复那些在前一跳中丢失的传输分组。这样做会导致多跳数据传送中丢失传输分组的比率降低。这与现有技术形成了对比,在现有技术中,仅仅在目的地节点上执行恢复,并且所述目的地节点尝试恢复那些在经由网络的多跳中的任一跳上丢失的传输分组。与现有技术的系统相比,本发明的实施例能够恢复更多的丢失传输分组。例如,在第一跳(例如传送节点-中继节点这一跳) 丢失的传输分组可以在中继节点上得到恢复,并且被恢复的这些传输分组可以用于在第二跳(例如中继节点-目的地节点这一跳)之后恢复在第二跳上丢失的传输分组。如果没有在中继节点上恢复第一跳丢失的传输分组,那么在目的地节点上可能将无法恢复第二跳丢失的诸多传输分组。


为了更好地理解本发明以及显示如何实施本发明,现在将通过举例的方式参考以下附图,其中图I是根据优选实施例的数据传送系统的示意图;图2是表示根据优选实施例的传送节点的框图;图3是根据优选实施例的数据分组的示意表示;图4是表示根据优选实施例的中继节点的框图; 图5显示了根据优选实施例来处理数据流的数据分组的过程的流程图;以及图6是表示根据优选实施例的目的地节点的框图。
具体实施方式
首先参考图1,该图示出了通信系统100。通信系统100可以是对等(P2P)通信系统。作为替换,其他类型的通信系统也是可以使用的,例如非P2P系统。通信系统100包括传送节点102、中继节点108以及目的地节点114。传送节点102可以将数据传送至中继节点108,例如经由因特网之类的网络来传送。中继节点108可以例如经由因特网之类的网络来将数据传送到目的地节点114。由此,传送节点102可以经由中继节点108来将数据传送至目的地节点114。应该指出的是,虽然图I只显示了一个中继节点108,但在其他实施例中也可以存在一个以上的中继节点,并且传送节点102可以经由一个以上的中继节点来将数据传送至目的地节点114。例如,传送节点102、中继节点108和目的地节点114中的每一个可以是移动电话、个人数字助理(“PDA”)、个人计算机(“PC”)(例如包括WindoWSTM、Mac OS 以及Linux PC)、游戏设备或是其他那些能与系统100中的其他节点通信的嵌入式设备。
传送节点102包括本领域已知的用于处理数据的中央处理单元(“CPU”)104以及用于传送和接收往来于网络的数据的网络接口 106,例如将数据传送至中继节点108。中继节点108包括本领域已知的用于处理数据的CPU 110以及用于传送和接收往来于网络的数据的网络接口 112,例如将数据传送至目的地节点114以及接收来自传送节点102的数据。 目的地节点114包括本领域已知的用于处理数据的CPU 116以及用于传送和接收往来于网络的数据的网络接口 118,例如接收来自中继节点108的数据。
图2显示了传送节点102内部的部件。如图2所示,传送节点102包括编码器202、 加密部件204、数据流分组化器206、FEC部件208以及传输分组化器210。编码器202的输出耦合至加密部件204的输入。加密部件204的输出耦合至数据流分组化器206的输入。 数据流分组化器206的输出耦合至FEC部件208的输入。FEC部件208的输出以及数据流分组化器的输出耦合至传输分组化器210的输入。图2所示的部件202-210可以通过软件实现并由传送节点102的CPU 104运行。作为替换,图2所示的部件202-210可以被实现为传送节点102上的硬件部件。
在操作中,传送节点102有数据要经由中继节点108传送至目的地节点114。如图 2所示,所述数据被输入编码器202。正如本领域已知的那样,编码器202对数据(例如采样的音频数据)执行编码。不同类型的数据可以用不同方式编码。例如,当所要传送的数据是语音数据时,在编码器202中可以使用特定的语音编码算法。同样,如果所要传送的数据是视频数据,那么编码器202可以用特定的视频编码算法来编码视频数据。在编码器202中实现的确切编码机制在本领域是已知的,并且对本发明而言并不重要。编码器202的输出是经过编码的比特流(或“数据流”),并且所述比特流将被输入至加密部件204。
在加密部件204中,数据流被加密。正如本领域已知的那样,在加密部件204中可以实现多种不同加密机制之一来加密数据。一旦将加密数据传送至目的地节点114,则目的地节点114能够解密所述加密数据。为此目的,加密部件204可以使用一种约定用于在传送节点102与目的地节点114之间传送数据的加密机制。一种可以在加密部件204上使用的可能加密机制是共享私钥(对称)加密,其中加密数据只能用正确密钥解密。公钥 密码术可用于将共享密钥传送至目的地节点。优选地,只有目的地节点114可以访问用于解密数据的正确密钥。这样一来,只有在预定的目的地节点114上才能恢复数据。当在传送节点102 与目的地节点114之间传送数据时,这样做可以确保数据是安全的。即使有人拦截了数据传送,他们也不能在不能访问正确密钥的情况下解密那些经过加密的数据。应该指出的是, 如果数据传送是多播数据传送(也就是有一个以上的目的地节点),那么每一个目的地节点 114均可访问用于解密数据的适当密钥。
经过加密的数据流从加密部件204输出并输入至数据流分组化器206。数据流分组化器206将经过加密的数据流拆分成数据流单元。所述数据流单元则构成了数据流。数据流单元在数据流中具有序列号,由此可以通过依照数据流单元的序列号来组织所述数据流单元,从而用数据流单元来形成数据流。
数据流单元从数据流分组化器206输出并输入至FEC部件208。FEC部件208产生用于数据流单元的FEC数据单元。一种用于产生FEC数据单元的方法是对接收自数据流分组化器206的加密数据流单元执行异或(XOR)运算,从而创建冗余的FEC数据。所述FEC数据单元则会从FEC部件208输出。
从数据流分组化器206输出的数据流单元以及从FEC部件208输出的FEC数据单元将被输入至传输分组化器210。传输分组化器210将数据流单元和FEC数据单元分组化成传输分组,以便将其传送至中继节点108。这些单元可以用多种方式排列到传输分组中。 例如,传输分组化器210可以排列这些单元,以使每一个传输分组都包括一个数据流单元和一个FEC数据单元。作为替换,传输分组化器210可以对这些单元进行排列,以使一些传输分组包括数据流单元,同时其他单独的传输分组包括FEC数据单元。传输分组化器210可以对这些单元进行排列,以使一些传输分组包含多个数据流单元。传输分组化器210还可以对这些单元进行排列,以使一些传输分组包含多个FEC数据单元。所述单元在传输分组中的确切排列并不重要。然而,每一个传输分组都包括用于识别该传输分组中的单元的内容的信息。中继节点108可以使用该信息来确定在每一个传输分组中存在哪些单元。例如, 该信息可以包含在传输分组的报头部分中,而所述单元则包含在传输分组的净荷部分中。
如图2所示,传输分组从传输分组化器210输出,然后可以经由网络接口 106传送至中继节点108。有利的是,FEC数据单元是在加密了数据流之后产生的,因此,FEC数据是基于经过加密的数据的。由此,不需要执行解密来使用FEC数据,以便恢复加密的数据流单元。发明人认识到,由于FEC数据单元与经过加密的数据流单元相关,因此,以这种方式使用FEC数据是不存在安全风险的。举例来说,如果FEC数据单元是对两个加密数据流单元执行异或运算的结果,那么,倘若非授权人员拦截了 FEC数据单元,则他们只能恢复与FEC 数据单元相关的加密数据流单元,由此,数据流单元仍旧是加密的,并且数据传送的安全性不会受到损害。
图3显不了从传送节点102传送时的传输分组300的不意表不。传输分组300包括报头302和净荷304。报头302包括 指示306,并且净荷包括数据流单元308以及FEC数据单元310。图3的例示传输分组包括数据流单元308,所述数据流单元是经过加密的数据流单元B以及FEC数据单元310,其中所述FEC数据单元是对加密数据流单元A和B执行 XOR运算的结果。XOR运算被认为是一个多自变量函数(它是单个自变量的恒等函数,例如 XOR(A) =A)ο在本示例中,FEC数据单元310是对数据流单元A和B执行XOR运算的结果。 数据流单元A可以在与图3所示的传输分组不同的传输分组中传送。应该指出的是,由于 FEC数据单元310是由FEC部件208产生的,因此将FEC数据单元310认为是FEC数据单元。指示306指示净荷304包含数据流单元B 308以及FEC数据单元XOR (A,B) 310。这样一来,所述指示306指示与FEC数据单元310相关的数据流中的数据流单元(A和B)。所述指示306是以未加密的形式传送的。如图3所示,所述指示306是在数据分组的未加密报头302中传送的。作为替换,指不306可以在净荷304的未加密部分中传送。
图4显示了中继节点108内的部件。如图4所示,中继节点108包括缓存器402、 替换数据单元生成装置404、FEC部件406以及传输分组化器408。替换数据单元生成装置 404与缓存器402耦合。缓存器402的输出以及替换数据单元生成装置404的输出与FEC 部件406的输入相耦合,并且与传输分组化器408的输入耦合。FEC部件406的输出耦合至传输分组化器408的输入。图4所示的部件402-408可以用软件实现并由中继节点108 的CPU 110运行。作为替换,图4所示的部件402到408可以被实现为中继节点108上的硬件部件。
中继节点108的操作被参考图4以及图5所示的流程图来描述。在步骤S502,在中继节点108上接收从传送节点102传送的传输分组。所述传输分组是经由网络接口 112 而在缓存器402上接收的。接收到的传输分组被存储在缓存器402中。
在步骤S504,中继节点确定有哪些单元在接收到的传输分组中。这可以通过使用传输分组300中的指示306实现,其中如上所述,所述指示识别传输分组中的单元。通过确定中继节点已在传输分组中接收到哪些单元,所述中继节点能够确定数据流中有哪些数据流单元(如果有的话)缺失。在确定所接收的传输分组中是否丢失了数据流的数据流单元的过程中,数据流单元的序列号可被使用。
在步骤S506,替换数据单元生成装置404产生可用于形成数据流的替换数据流单元。在步骤S506,使用接收到的传输分组中的FEC数据单元(结合接收到的数据流单元或是接收到的其他FEC数据单元)来产生数据流单元。特别地,在替换数据单元生成装置404 中可以使用接收到的FEC数据单元来产生没有在中继节点上接收到的数据流单元。这样一来,替换数据单元生成装置404将会导出已在丢失的传输分组中丢失的数据流单元。通过在替换数据单元生成装置404中产生数据流单元,中继节点能在该中继节点中基本恢复数据流,尽管在中继节点108上接收的传输分组中的数据流单元因为丢失的传输分组而不足以构成数据流。在替换数据单元生成装置404中产生的替换数据流单元可以替换已在丢失的传输分组中丢失的数据流中的数据流单元。如果在中继节点上接收到足够的数据流单元,那么基本恢复的数据流将会包含数据流中的所有数据流单元,以使基本恢复的数据流重新构成所述数据流。然而,如果丢失了过多传输分组,那么在中继节点108上有可能无法完整地重新构造数据流。
作为示例,作为对存在于第一传输分组之中的数据流单元以及丢失传输分组的数据流单元执行XOR运算的结果,可能已经产生第一传输分组的FEC数据单元。由此,为了恢复丢失的传输分组的数据流单元,替换数据单元生成装置404会对第一传输分组的FEC数据单元以及数据流单元执行XOR运算,其结果得到丢失传输分组的数据流单元。这样一来, 中继节点108已恢复了丢失传输分组的数据流单元。应该指出的是,即便数据流单元是加密的,也可以在中继节点上执行这种恢复,而不需要中继节点执行任何解密操作。由此,在中继节点108上不会解密那些加密数据,从而保持了数据传·送的安全性。然而,中继节点 108能够导出丢失传输分组的加密数据流单元,以便减少在目的地节点114上接收的数据流中的差错的数量。
作为步骤S504的结果,由于没有在所接收的传输分组中接收到数据流单元,因此,中继节点108既可以确定也可以不确定数据流中的哪些数据流单元丢失。在一些实施例中,替换数据单元生成装置404可以仅仅产生那些已被确定在数据流中缺失的数据流单元。为了确定数据流中的数据流单元是否丢失,中继节点108可以监视所接收的数据流单元的序列号。对本领域技术人员来说,很明显,用于确定数据流单元丢失的其他方式也是可以使用的。根据所接收的数据流单元的序列号,如果存在缺失的数据流单元,则表明在数据流中有数据流单元丢失。接收到的传输分组会在缓存器402中保存有限的时间,例如保存预定时间或者一直保存直到超出存储器容量。在中继节点108上有可能会以失序的方式接收所接收的传输分组中的数据流单元,举例来说,这其中的原因有可能是因为传送节点102 与中继节点108之间的链路上的条件,或者因为用以在传送节点102的传输分组化器1210中将数据流单元分组化成传输分组的方式。在优选实施例中,如果失序接收的数据流单元在其预计到达中继节点的时间的预定时段以内在缓存器402中被接收到(由于其在数据流中的位置),那么不会认为所述数据流单元丢失。而在替换实施例中,失序接收的所有数据流单兀都被认为是丢失的。在其他实施例中,替换数据单元生成装置404可以产生能够从接收到的传输分组中的单元中确定的所有数据流单元。这可以导致替换数据单元生成装置404产生实际也已经在中继节点上接收的数据流单元,然而,具有重复的数据流单元是不存在问题的。在步骤S508,已被基本恢复的数据流中的数据流单元(也就是接收到的数据流单元以及在步骤S506中在替换数据单元生成装置404中产生的数据流单元)会在传输分组化器408中与校正数据单元一起分组化,以便形成用于从中继节点传送的输出传输分组。包含在输出传输分组中的校正数据单元可以是在所接收的传输分组中存在的校正数据单元。在这种情况下,在中继节点108上不需要产生FEC,并且如图4所示,这些单元(也就是已被基本恢复的数据流中的数据流单元以及接收到的FEC数据单元)可被传递至传输分组化器408,从而绕过FEC部件406。 然而,中继节点108可以使用FEC部件406来产生新的FEC数据单元。所述新的FEC数据单元可以包含在由传输分组化器408形成的输出传输分组中。为了让这种情况发生,已被基本恢复的数据流中的数据流单元被传递至FEC部件406 (从缓存器402以及替换数据单元生成装置404),并且FEC部件406会采用与传送节点102的FEC部件208中使用的方式相同的方式来为这些数据流单元产生新的FEC数据。这允许在传送节点102与目的地节点114之间的不同跳上实现的FEC根据不同跳的不同损耗特性而不同。新的FEC数据单元可以替换在中继节点108上接收的传输分组中的初始FEC数据单元。由于FEC生成是一个简单的过程,因此,FEC部件406中的FEC生成不会在数据传送中引入显著延迟。在步骤S510,在步骤S508中在传输分组化器408内形成的输出传输分组将会从中继节点108经由中继节点108的网络接口 112传送至目的地节点114。输出传输分组包括由替换数据单元生成装置404生成的替换数据流单元,以便替换来自丢失传输分组的数据流单元。目的地节点114会以与它处理数据流中的其他数据流单元的方式相同的方式来处理替换数据流单元,就好像它们是从传送节点102传送的一样。图6显示了目的地节点114内的部件。如图6所示,目的地节点114包括缓存器601、替换数据单元生成装置602、数据流去分组化器604、解密部件606以及解码器608。替换数据单元生成装置602与缓存器601耦合。缓存器601的输出耦合至数据流去分组化器604的输入。替换数据单元生成装置602的输出耦合至数据流去分组化器604的输入。数据流去分组化器604的输出耦合至解密部件606的输入。解密部件606的输出耦合至解码器608的输入。图6显示的部件601-608可以用软件实现并由目的地节点114的CPU 116运行。作为替换,图6显示的部件601-608也可以实现为目的地节点114上的硬件部件。在操作中,在目的地节点在网络接口 118上接收从中继节点108传送的传输分组。接收到的传输分组被保存在缓存器601中。目的地节点114确定接收到的传输分组中有哪些单元。这可以通过使用传输分组中的指示306来实现,其中如上所述,所述指示识别传输分组中的单元。通过确定目的地节点114在传输分组中接收了哪些单元,所述目的地节点114能够确定数据流中的哪些数据流单元缺失(如果存在的话)。在确定所接收的传输分组中是否缺失数据流的数据流单元的过程中,数据流单元的序列号可被使用。以与上文中结合中继节点108描述的替换数据单元生成装置404中相同的方式,目的地节点114的替换数据单元生成装置602产生可用于形成数据流的替换数据流单元。这样一来,目的地节点114采用与如上所述在中继节点108上实施的方式相类似的方式来使用传输分组中的F EC数据单元恢复数据流中的丢失数据流单元。然后,数据流单元被传递至数据流去分组化器604(从缓存器601以及替换数据单元生成装置602)。所述数据流去分组化器604从数据流单元中提取加密数据,以便产生加密数据的未分组化的数据流。该数据流从数据流去分组化器604传递至解密部件606,并且在那里将会解密所述加密数据。解密机制与用以在传送节点102上加密数据的加密机制是匹配的。举例来说,目的地节点114可以使用与在传送节点102上用以加密数据的密钥相对应的密钥来解密数据。经过解密的数据被从解密部件606输出至解码器608。解码器608则会使用与在传送节点102的编码器202上用来编码数据的编码算法相匹配的解码算法来解码数据。举个例子,如果数据是语音数据,那么可以使用特定的语音解码算法来解码数据,以及如果所述数据是视频数据,那么可以使用特定的视频解码算法来解码数据。经过解码的数据从解码器608输出,以便在目的地节点114上使用。以上笼统地描述了一种用于在中继节点上恢复丢失传输分组中的丢失数据流单元的方法。为了进一步例证本发明,现在在下文中提供一个更具体的示例。在本示例中,假设加密数据流包括加密数据流单元A、B、C和D。传送节点102将数据流单元分组化成四个传输分组(P1、P2、P3和P4),以使
Pl (在其净荷中)包括数据流单元A,其中由于XOR (A)=A,因此可以将所述数据流单兀书写成XOR (A)0传输分组Pl不包括其他任何单兀。传输分组Pl的指不306表明传输分组Pl在其净荷中只包含XOR (A);
P2 (在其净荷中)包括数据流单元B,其中由于XOR (B)=B,因此可以将所述数据流单元书写成XOR (B)0传输分组P2还包括已经由传送节点102的FEC部件208产生的XOR(A)0所述FEC数据单元(XOR (A))通过非常简单的恒等运算与数据流单元A相关(也就是不需要用以产生数据流单元A的运算)。传输分组P2的指示306表明传输分组P2在其净荷中包含XOR (B)和XOR (A);
P3 (在其净荷中)包括数据流单元C,其中由于XOR (C)=C,因此可以将所述数据流单元书写成XOR (C)。此外,传输分组P3还包括已经由传送节点102的FEC部件208产生的XOR (A7B)0所述FEC数据单元(XOR (A,B))是A与B的XOR运算的结果,并且由此与数据流单元A和B相关。传输分组P3的指示306表明传输分组P3在其净荷中包括XOR (C)和XOR (A,B);
P4 (在其净荷中)包括数据流单元D,其中由于XOR (D)=D,因此可以将所述数据流单元书写成XOR (D)0传输分组P4还包括已经由传送节点102的FEC部件208产生的XOR (A,B,C)。所述FEC数据单元(XOR (A,B,C))是A、B和C的XOR运算的结果,并且由此与数据流单元A、B和C相关。传输分组P4的指示306表明传输分组P4在其净荷中包括XOR (D)以及 XOR (A,B,C)。总的来说,该示例可被书写成Pl XOR (A)(等于 A)
P2 XOR (B)(等于 B)
XOR (A)(等于 A)
P3 X0R (C)(等于 C)
XOR (A, B)
P4 X0R (D)(等于 D)
XOR (A, B, C)o在本示例中,接收传输分组P2可以容忍传输分组Pl的丢失。这是因为如果接收到了传输分组P2,那么将会有足够信息来确定数据流单元A和B这两者。同样,接收到传输分组P3可以容忍传输分组Pl或P2的丢失(但是并非所有这二者)。这是因为在传输分组P2和P3中存在足够的信息用来通过执行本领域技术人员清楚了解的适当XOR运算确定数据流单元A、B和C。同样,在传输分组Pl和P3中具有足够的信息来通过执行本领域技术人员清楚了解的适当XOR运算确定数据流单元A、B和C。在以上给出的示例的变体中,传输分组P2 (在其净荷中)还包括已经由传送节点102的FEC部件208产生的XOR (A, B),由此,现在
P2 X0R (B)(等于 B)
XOR (A)(等于 A)
XOR (A, B)
在该变体中,接收到传输分组P2和P4则足以确定A、B、C和D。这是因为传输分组P2包括A和B,传输分组P4包括D,而C则可以通过执行运算XOR (XOR (A,B),X0R (A, B, C))来确定。在本示例中可以看出,数据流单元可以是在不需要初始数据流单元的情况下从两组FEC数据中恢复的。在这里的示例中,来自传输分组P2的FEC数据单元XOR (A,B)可以与来自传输分组P4的FEC数据单元XOR (A,B, C)结合使用,以便产生数据流单元C。在上述方法中,有时可能会为数据流中实际并未丢失的数据流单元产生了替换数据流单元。这有可能是因为包含该数据流单元的传输分组在传送节点102与中继节点114之间的传送过程中经历了很长的延迟(例如长于在中继节点108的缓存器402中保存数据分组的预定时间)。由此,目的地节点114可能会接收到相同数据流单元的恢复版本和初始版本,其中每个版本都具有相同序列号。在这种情况下,目的地节点114中的数据流去分组化器604被调整成丢弃与别的数据流单元具有相同序列号的数据流单元。由此,以上描述了一种用于将数据从传送节点102经由中继节点108传送到目的地节点114的例示方法。所述数据在整个数据传送过程中将会保持加密,以便确保数据的安全性。然而,由于传输分组中的FEC数据单元与加密数据流单元相关,并且由此在将其用于恢复加密数据流单元之前不需要解密,因此,中继节点108能对数据流的数据流单元实现前向纠错。FEC数据是与媒体无关的FEC数据,并且与加密版本的数据流单元相关。在以上描述的优选实施例中,使用了 FEC数据。在替换实施例中,如果校正数据允许使用校正数据以及在中继节点108上接收的其他单元来恢复丢失传输分组的数据流单元,那么也可以使用其他类型的校正数据而不是FEC数据。传送节点102和目的地节点114可被称为是数据传送中的端点。举例来说,如果数据是经由因特网传送的呼叫数据,那么传送节点102可以是所述呼叫的主叫端点,目的地节点114则可以是所述呼叫的被叫端点。呼叫数据在因特网上经由主叫端点与被叫端点之间的中继节点108传送。这样一来,上述方法可以用于因特网上的呼叫,由此实现例如借助网际协议的语音传输(VoIP)。由于可以在一个或多个中继节点上恢复在经由网络的各跳之间丢失的数据流单元,因此可以通过实现上述方法来提升呼叫质量。换句话说,丢失的分组可以在数据传送中在紧接着的各跳之后得到恢复,这可以减小在目的地节点114上接收的数据流中总的数据流单元丢失。这样一来,更多数量的传送的数据流单元将会到达目的地节点114,从而产生更好的呼叫质量。上述方法对于在传送节点102与目的地节点114之间传送其他任何类型的数据来说也是有用的。对本领域技术人员来说,很明显,在中继节点108上可以实现包含了用于执行上述方法的指令的计算机程序产品。虽然FEC数据单元在上述本发明的实施例中是未加密的,也就是说,所述FEC数据单元是在加密之后生成的,但在本发明的替换实施例中,FEC数据单元是经过加密的,并且所需要的仅仅是不对指示FEC数据单元是从哪个数据流单元产生的指示306进行加密,以使中继能够恢复丢失的数据。 例如,FEC数据可以是通过添加冗余数据分组产生的,例如拷贝每隔一个的数据分组或是每隔两个的数据分组等等,在这种情况下,如果在未加密的情况下将指示加密FEC单元是从哪个加密数据流单元产生的指示306传送到中继节点,那么在中继上仍旧可以使用加密之前产生的FEC数据来恢复丢失分组。通过使用未加密的指示306,中继可以通过拷贝与之相关的加密FEC数据单元来恢复加密数据流单元,从而恢复从传送机传送的数据单元。另一个需要加密FEC数据单元的实施例是使用必须从未加密的数据产生的媒体相关FEC (例如低比特率冗余度(LBRR))的时候。在这种情况下,虽然不能完全恢复丢失的数据流单元,但是中继节点可以确定数据流单元丢失并产生代表了丢失数据流单元的第二加密FEC数据单元,由此可以避免所述数据在第一 FEC数据单元在附加传送跳中丢失的情况下被完全丢失。在本发明的一些实施例中,除了 FEC数据单元之外,数据流单元也是没有必要传送的。在这些替换实施例中,FEC数据单元运送关于数据流单元的信息,并且是不必附加传送数据流单元本身的。例如,数据流中的所有数据分组有可能只包括多个分组的X0R,其中在被组合的时候,所述XOR允许恢复数据分组(例如XOR (XOR (A,B),X0R (A,B,C))。在另一个示例中,数据流单元A未被传送,取而代之,输入FEC部件的数据流单元A在多个FEC数据单元之间拆分,其中所述多个FEC数据单元需要通过组合来恢复数据流单元A。由此,提供了一种用于处理传输分组的方法,所述传输分组包括用于运送与加密数据流单元相关的信息的校正数据单元,其中每一个传输分组都包含了用于指示校正数据单元如何与加密数据流单元相关的未加密恢复数据。该方法包括在中继节点上接收传输分组,以及在中继节点上使用所接收的传输分组中的校正数据单元和未加密的恢复数据中的至少一些来恢复丢失的传输分组。中继节点将校正数据单元分组化,以便形成用于从中继节点传送的输出传输分组,以及从中继节点传送所述输出传输分组。虽然在这里特别参考了优选实施例来显示和描述本发明,但是本领域技术人员应该理解,在不脱离所附权利要求定义的本发明的范围的情况下,可以进行形式和细节方面的各种不同变化。
权利要求
1.一种处理传输分组的方法,所述传输分组运送(i)形成数据流的数据流单元以及(ii)与数据流单元相关的校正数据单元,每一个传输分组都包含用于识别该传输分组中的单元的内容的信息,所述方法包括 在中继节点上接收传输分组,其中在中继节点上接收的传输分组中的数据流单元不足以构成数据流; 使用接收到的传输分组中的校正数据单元以及数据流单元中的至少一些来产生替换数据流单元,以便在中继节点上基本恢复数据流; 在中继节点上,将已被基本恢复的数据流中的数据流单元与校正数据单元一起分组化,以便形成用于从中继节点传送的输出传输分组;以及从中继节点传送所述输出传输分组。
2.权利要求I的方法,其中数据流单元是经过加密的数据流单元。
3.权利要求2的方法,其中中继节点不对接收到的传输分组的单元执行任何解密。
4.权利要求I的方法,其中所述识别单元内容的信息识别校正数据单元与数据流单元之间的关系。
5.权利要求I的方法,其中所述识别单元内容的信息在传输分组中是未加密的。
6.权利要求4的方法,其中所述信息处于每一个传输分组的报头中。
7.权利要求I的方法,其中基本恢复的数据流包括数据流中的所有数据流单元,以使基本恢复的数据流重新构成所述数据流。
8.权利要求I的方法,其中校正数据单元是对数据流单元中的至少一个执行XOR运算的结果,由此与数据流单元相关。
9.权利要求8的方法,其中替换数据流单元中的至少一个是通过对校正数据单元之一以及接收到的传输分组中的数据流单元之一执行XOR运算产生的。
10.权利要求8的方法,其中替换数据流单元中的至少一个是通过对接收到的传输分组中的两个校正数据单元执行XOR运算产生的。
11.权利要求I的方法,其中替换数据流单元替换丢失传输分组中的数据流单元。
12.权利要求I的方法,其中接收到的传输分组是在中继节点上经由网络而从传送端点接收的。
13.权利要求I的方法,其中输出传输分组是从中继节点经由网络传送到目的地端点的。
14.权利要求I的方法,其中校正数据单元是前向纠错数据单元。
15.权利要求I的方法,其中接收到的每一个传输分组都包括数据流单元和校正数据单元。
16.权利要求15的方法,其中每一个传输分组都包括净荷和未加密报头,以及其中数据流单元和校正数据单元处于传输分组的净荷中。
17.权利要求I的方法,其中数据流单元和校正数据单元处于单独的传输分组中。
18.权利要求I的方法,还包括在中继节点上产生新的校正数据单元,以及将新的校正数据单元包含在从中继节点传送的输出传输分组中。
19.权利要求I的方法,其中每一个数据流单元都包括用于指示每一个数据流单元在数据流中的顺序的序列号。
20.权利要求I的方法,还包括产生可以从接收到的传输分组的单元中导出的所有替换数据流单元。
21.权利要求I的方法,还包括确定在中继节点中在接收的传输分组中数据流的特定数据流单元未被接收到,其中响应于所述确定,产生所述替换数据流单元来替换数据流的这些特定数据流单元。
22.权利要求21的方法,其中所述确定包括确定在中继节点上数据流单元是否是在所述数据流单元预计到达中继节点的时间的预定时间以内接收到的。
23.权利要求I的方法,还包括在中继节点的缓存器中将接收到的传输分组保存有限的时段。
24.一种用于处理传输分组的中继节点,所述传输分组运送(i)形成数据流的数据流单元以及(ii)与数据流单元相关的校正数据单元,每一个传输分组都包含用于识别该传输分组中的单元的内容的信息,所述中继节点包括 接收机,被配置成接收传输分组,其中在中继节点上接收的传输分组中的数据流单元不足以构成数据流; 生成器,被配置成使用接收到的传输分组中的校正数据单元和数据流单元中的至少一些来产生替换数据流单元,以便在中继节点上基本恢复所述数据流; 分组化器,被配置成在中继节点上将已被基本恢复的数据流的数据流单元与校正数据单元一起分组化,以便形成用于从中继节点传送的输出传输分组;以及 传送机,被配置成从中继节点传送所述输出传输分组。
25.权利要求24的中继节点,其中中继节点未被配置成对接收到的传输分组的单元执行解密。
26.权利要求24的中继节点,还包括另一个生成器,其被配置成产生新的校正数据单元以及将新的校正数据单元包含在从中继节点传送的输出传输分组中。
27.权利要求24的中继节点,还包括确定器,被配置成确定在中继节点中在接收的传输分组中数据流的特定数据流单元未被接收到,其中所述生成器被配置成响应于所述确定来产生替换数据流单元,以便替换数据流中的这些特定数据流单元。
28.权利要求24的中继节点,还包括缓存器,用于将接收到的传输分组保存有限的时段。
29.一种计算机程序产品,包括可供中继节点上的计算机处理装置运行以处理传输分组的计算机可读指令,其中该传输分组运送(i)形成数据流的数据流单元以及(ii)与数据流单元相关的校正数据单元,每一个传输分组都包含用于识别该传输分组中的单元的内容的信息,所述指令包括指令用于 在中继节点上接收传输分组,在中继节点上接收的传输分组中的数据流单元不足以构成数据流; 使用接收到的传输分组中的校正数据单元以及数据流单元中的至少一些来产生替换数据流单元,以便在中继节点上基本恢复数据流; 在中继节点上,将已被基本恢复的数据流的数据流单元与校正数据单元一起分组化,以便形成用于从中继节点传送的输出传输分组;以及 从中继节点传送所述输出传输分组。
30.一种用于处理传输分组的方法,所述传输分组包括用于运送与加密数据流单元相关的信息的校正数据单元,其中每一个传输分组都包含用于指示校正数据单元如何与加密数据流单元相关的未加密恢复数据, 该方法包括 在中继节点上接收传输分组; 在中继节点上使用所接收的传输分组中的校正数据单元和未加密的恢复数据中的至少一些来恢复丢失的传输分组; 在中继节点上将校正数据单元分组化,以便形成用于从中继节点传送的输出传输分组,以及 从中继节点传送所述输出传输分组。
31.一种用于处理传输分组的方法,所述传输分组包括用于运送与形成数据流的加密数据流单元相关的信息的单元,每一个传输分组都包括未加密的恢复数据,其中所述恢复数据指示所述单元如何与加密数据流单元相关,所述方法包括 在中继节点上接收传输分组; 在中继节点上使用接收到的传输分组中的单元以及未加密的恢复数据中的至少一些来产生与加密数据流单元相关的替换单元,以便在基本恢复数据流时使用; 在中继节点上将接收到的传输分组的单元以及替换单元中的至少一些分组化,以便形成用于从中继节点传送的输出传输分组;以及 从中继节点传送所述输出传输分组。
全文摘要
用于处理传输分组的方法、中继节点和计算机程序产品,所述传输分组运送(i)形成数据流的数据流单元以及(ii)与数据流单元相关的校正数据单元,其中每一个传输分组都包含用于识别该传输分组中的单元的内容的信息。在中继节点上接收传输分组,其中在中继节点上接收的传输分组中的数据流单元不足以构成数据流。使用接收到的传输分组中的校正数据单元以及数据流单元中的至少一些来产生替换数据流单元,以便在中继节点上基本恢复数据流。中继节点将已被基本恢复的数据流中的数据流单元与校正数据单元一起分组化,以便形成用于从中继节点传送的输出传输分组,然后从中继节点传送所述输出传输分组。
文档编号H04L1/00GK102884746SQ201180023888
公开日2013年1月16日 申请日期2011年5月11日 优先权日2010年5月13日
发明者M.希 申请人:斯凯普公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1