CN102412928A - 一种基于网络编码的数据传输方法及装置 - Google Patents
一种基于网络编码的数据传输方法及装置 Download PDFInfo
- Publication number
- CN102412928A CN102412928A CN2011101945334A CN201110194533A CN102412928A CN 102412928 A CN102412928 A CN 102412928A CN 2011101945334 A CN2011101945334 A CN 2011101945334A CN 201110194533 A CN201110194533 A CN 201110194533A CN 102412928 A CN102412928 A CN 102412928A
- Authority
- CN
- China
- Prior art keywords
- node
- segmentation
- downloaded
- natives
- sent
- 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.)
- Granted
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供了一种基于网络编码的数据传输方法,包括:根据各个节点已下载的待下载文件的分段建立对等节点组(PG),其中,所建立PG内所有节点已下载的待下载文件的分段的并集等于待下载文件所包含全部分段的集合;根据PG内每个节点已下载的待下载文件的分段确定发送编码分段的发送节点以及待发送分段集合;以及发送节点对待发送分段集合中的分段进行网络编码,生成编码分段,并将生成的编码分段发送给PG内的其他节点。本发明还提供了一种基于网络编码的数据传输装置。本发明所述的方法和装置可以充分利用节点之间的信息交换,充分发掘网络编码在点对点业务中的增益,减少上传带宽,从而提高数据传输的性能。
Description
技术领域
本发明涉及网络编码技术,特别涉及一种基于网络编码的数据传输方法及装置。
背景技术
网络编码技术是在网络层对数据分组进行编码的技术,该技术允许网络中的节点对接收到的分组进行编码,产生新的分组并转发出去。目前,网络编码技术的应用主要集中在大规模的文件发布,即源节点或服务器发布大量的信息给网络中其它节点的业务,例如,点对点(P2P)文件传输业务或P2P流业务等等。
图1显示了一种针对P2P下载业务的传统网络编码方案。如图1所示,一个文件会被分成若干个分段(Segment)S1,S2,S3,...Sn,服务器在发送分段之前,首先进行随机网络编码,把原始的分段S1,S2,S3,...Sn进行处理,产生编码分段(E1,E2,Ei...),Ei=c1i·S1⊕c2i·S2⊕...⊕cni·Sn,其中,编码系数{c1i,c2i,...cni}是在一个有限域中随机生成的。收到编码分段之后,客户端并不解码,而是对编码分段进行再次编码,然后进行转发。通过这种方式,每个原始分段都将有相同的流行度(Popularity)。那么节点就无需判断此时要先下载哪个分段了。假如服务器不使用网络编码,则有的原始分段(比如一个文件的开始部分)在网络上可能已经被很多节点拥有了,称之为具有高流行度,而有些原始分段(比如一个文件的结尾部分)则可能在网络上非常稀缺,称之为具有低流行度。为了防止拥有稀缺资源的节点退出P2P应用后,导致下载无法完成,通常节点会首先下载具有低流行度的分段。而有了网络编码之后,所有的分段都具有相同的流行度,因此,节点无需判断先下载哪个分段。同时,也不存在稀缺资源的问题,这样,节点的动态加入和离开,对其他节点的影响也将会降低。但是在上述网络编码方案中,客户端必须等到收到足够多的编码分段之后,才能开始解码(也即需要满足条件r>n,其中,r是收到的编码分段个数,n是文件包含的原始分段个数)。因此,该方案不适用于一边下载一遍观看的P2P流业务。
图2显示了一种针对P2P流业务的传统网络编码方案。如图2所示,文件的每个分段被进一步划分成L个块(block)。参与P2P流业务的种子节点在转发数据之前,首先在一个分段内的L个块之间进行网络编码得到若干个编码块E1、E2、......、Ei、......。网络编码的编码系数也是随机生成的。为了让接收节点能够解码,编码系数必须和数据包一起发送。通过在分段内的块之间进行网络编码,可以支持多个种子节点同时给一个节点发送某个分段,这样就可以缩短发送某个分段的传送时间,从而减少用户等待观看的时间。
目前上述这些网络编码方案,虽然在一定程度上提高了P2P业务的质量,但是并没有利用P2P业务的一个重要特征,那就是在节点之间进行信息交换的特征。在P2P业务里,节点之间是经常互为对等节点的,也就是说,一个节点在给另一个节点提供数据的同时,另外一个节点也会给这个节点提供数据。通过研究发现,如果能够利用节点之间信息交换这一特征,则可以进一步发掘网络编码在P2P业务中的增益,从而进一步减少上传带宽。
发明内容
本发明的实施例提供了一种基于网络编码的数据传输方法及装置,可以充分利用节点之间的信息交换。
本发明实施例提供的基于网络编码的数据传输方法,包括:
根据各个节点已下载的分段建立对等节点组(PG),其中,所建立PG内所有节点已下载的分段的并集等于待下载文件所包含全部分段的集合;
根据PG内每个节点已下载的分段确定发送编码分段的发送节点以及待发送分段集合;以及
发送节点对待发送分段集合中的分段进行网络编码,生成编码分段,并将生成的编码分段发送给PG内的其他节点。
本发明实施例提供的基于网络编码的数据传输装置,包括:
位于网络侧控制设备的对等节点组PG建立单元,用于根据各个节点已下载的待下载文件的分段建立PG,其中,所建立PG内所有节点已下载的待下载文件的分段的并集等于待下载文件所包含全部分段的集合;以及
位于网络侧控制设备的发送节点确定单元,用于根据PG内每个节点已下载的待下载文件的分段确定发送编码分段的发送节点以及待发送分段集合,将待发送分段集合通知确定的发送节点;
位于每个节点的网络编码单元,用于对待发送分段集合中的分段进行网络编码,生成编码分段,并将生成的编码分段发送给PG内的其他节点。
本发明实施例提供的另一种基于网络编码的数据传输装置,包括:
位于网络侧控制设备的对等节点组PG建立单元,用于根据各个节点已下载的待下载文件的分段建立PG,其中,所建立PG内所有节点已下载的待下载文件的分段的并集等于待下载文件所包含全部分段的集合;以及
位于每个节点内的发送节点确定单元,用于根据PG内每个节点已下载的待下载文件的分段确定发送编码分段的发送节点以及待发送分段集合,并判断自身是否为当前的发送节点;
位于每个节点的网络编码单元,用于在自身为当前的发送节点时,对待发送分段集合中的分段进行网络编码,生成编码分段,并将生成的编码分段发送给PG内的其他节点。
从本发明所述的基于网络编码的数据传输方法及装置可以看出,由于所建立PG内所有节点已下载的待下载文件的分段的并集等于待下载文件所包含全部分段的集合,因此,通过建立PG的步骤可以仅通过PG中节点之间的信息交换就可以完成文件的下载,而无需再从服务器下载,因此,本发明所述的方法可以充分利用节点之间的信息交换。此外,通过根据PG内每个节点已下载的待下载文件的分段确定发送编码分段的发送节点以及待发送分段集合的步骤可以保证一次编码分段的传送使尽可能多的节点获得分段的信息,因此,可以充分发掘网络编码在P2P业务中的增益,减少上传带宽,从而提高数据传输的性能。
附图说明
图1显示了一种针对P2P下载业务的传统网络编码方案;
图2显示了一种针对P2P流业务的传统网络编码方案;
图3为本发明实施例所述基于网络编码的数据传输方法的流程图;
图4在不同的分段数N以及不同的节点数M的情况下Pc和p的关系曲线;
图5为本发明实施例所述的根据各个节点已下载的分段建立PG的方法流程图;
图6为一个PG的示意图;
图7为本发明实施例所述的COPE-E网络编码方法流程图;
图8为本发明实施例所述的DCK网络编码方法流程图
图9为本发明实施例所述的基于网络编码的数据传输装置的内部结构示意图;
图10显示了采用不同的网络编码方法时,节点数目与每个节点的下载时间的关系曲线;
图11显示了采用不同的网络编码方法时,节点数目与平均下载时间的关系曲线;
图12显示了采用不同的网络编码方法时,节点数目与所需上传带宽的关系曲线。
具体实施方式
本发明的实施例提供了一种基于网络编码的数据传输方法。图3显示了本实施例所述基于网络编码的数据传输方法的流程。如图3所示,该方法主要包括:
步骤1,根据各个节点已下载的待下载文件的分段建立对等节点组(peergroup,PG),其中,所建立PG内所有节点已下载的分段的并集等于待下载文件所包含全部分段的集合;
步骤2,根据PG内每个节点已下载的分段确定发送编码分段的发送节点以及待发送分段集合;以及
步骤3,发送节点对待发送分段集合中的分段进行网络编码,生成编码分段,并将生成的编码分段发送给PG内的其他节点。
下面通过具体的示例详细描述上述步骤1中建立PG的过程。假设网络中有多个节点,都需要获得某个文件F,经过了一段时间的下载之后,这些节点会各自拥有文件F中的一些分段。一旦这些节点所下载的分段的并集等于文件F所包含全部分段的集合,那么这些节点就可以构成一个PG。这意味着在这个PG中,只需要通过节点间的信息交换就可以让该PG内所有节点下载得到整个文件F。
在传统的P2P业务中,网络中会有一个控制器,通常称之为tracker,可以位于内容控制器或网络服务器上。该控制器能够了解每个节点已下载分段的情况。如此,控制器即可根据网络中每个节点已下载的分段,确定哪些节点能够组成一个PG。但是,在这种情况下,需要每个节点在每完成一个分段的下载后就给控制器发送一个通知,该通知中至少应当包括该节点的标识(ID)以及该节点刚刚下载的分段的序号。控制器在收到来自各个节点的通知后,可以记录节点的ID以及该节点已下载的分段序号,并根据已记录的每个节点已下载的分段的序号选择适合的节点构成PG。本领域的技术人员可以理解,通过上述方式可以精确地建立PG,但是会增加整个系统的信令开销。
根据目前的P2P协议,每个节点每隔一段时间会给网络中的控制器发送一个请求(request)消息,这个请求消息中包含一个代表该节点目前已下载分段的数目的参数:downloaded。有了downloaded这个参数,还有整个文件包含的分段总数,就可以获知该节点完成下载的比例。下面将具体推导一下在各个节点完成下载的比例是多少时这些节点可以构成一个PG。推导过程中所使用参数的定义如表1所示。
表1
其中,
可以认为如果M个节点各自都已下载了一些分段,而且这些分段的并集等于文件F所包含所有分段的集合,那么这些节点就可以构成一个PG。也就是说,当覆盖概率(Cover Probability)Pc趋于1的时候,这M个节点就可以形成PG了。经过推导,可以得到Pc和每个节点下载比例(InitialPercentage)Pini的关系如下面的公式(1)所示。
其中,Pa i,j表示所有节点都缺少的分段中,包括了Sj (i)的概率,计算如下:
根据上述公式,对在不同的分段数N以及不同的节点数M的情况下Pc和Pini的关系进行了仿真。图4显示了在不同的分段数N以及不同的节点数M的情况下Pc和Pini的关系曲线。其中,带圆形的曲线代表节点数Nodes为18,分段数Segments为30时Pc和Pini的关系曲线;带方形的曲线代表节点数Nodes为15,分段数Segments为30时Pc和Pini的关系曲线;带菱形的曲线代表节点数Nodes为12,分段数Segments为20时Pc和Pini的关系曲线;而带星形的曲线代表节点数Nodes为10,分段数Segments为20时Pc和Pini的关系曲线。从图3可以看出,节点数和分段数越大Pc随着Pini的增大越快早接近1。另外,在不同的分段数以及不同的节点数下,当Pini>0.5时均可以认为Pc趋近于1。
基于上述研究成果,上述步骤1所述的根据各个节点已下载的分段建立PG可以由网络中的控制器执行,具体如图5所示,包括以下步骤:
步骤11:确定待下载文件包含的分段数目N以及对该待下载文件感兴趣的节点数目M;
步骤12:根据在分段数N以及节点数M的情况下Pc和Pini的关系设置适合的下载比例门限pth,例如设置pth大于或等于0.5,使得在Pini>pth时Pc趋近于1;
步骤13:在接收到每个节点上报的各个节点已下载分段的数目后,根据待下载文件包含的分段数目N,计算每个节点完成的下载比例;以及
步骤14:当所有参与文件下载的M个节点完成的下载比例大于或等于下载比例门限pth时,让这些节点组成PG。
在PG建立后,如果有新的节点也想下载这个待下载文件,也即有新的节点欲加入该PG,则应当判断该新的节点的下载比例Pini是否满足Pini>pth,如果是,则允许该新的节点加入该PG;否则不应该允许该新的节点加入该PG,而应该等待该新的节点的下载比例Pini>pth时才允许该用户加入该PG。
另外,在形成PG时,可以根据节点间的相互位置动态调整下载比例门限pth,例如,对于同一个基站下的节点或者同一个边缘路由器(Edge Router)下的节点可以适当降低下载比例门限pth,也即放宽加入PG的条件,来减少核心网的带宽消耗。
下面再通过具体示例详细说明步骤2中根据PG内每个节点已下载的分段确定发送编码分段的节点以及待发送分段集合的方法。
假设M个节点构成一个PG之后,这些节点已下载的分段的并集等于整个待下载文件所包含所有分段的集合,此时,只需要在这些节点之间进行信息交换,就可以使这M个节点获得整个的文件。但是究竟应该由哪个节点先发编码分段,又应该怎样生成编码分段呢?本领域的技术人员可以理解,最优的方案应当是通过一次编码分段的传送,让尽可能多的节点获得原始分段的信息。
图6给出了一个PG的示意图。如图6所示,该PG包含5个节点N0、N1、N2、N3以及N4,且这5个节点已下载分段的并集等于待下载文件所包含的10个分段的集合。在这个情况下,每个节点均可以采用多种网络编码方案生成编码分段,下面给出了几种可能的编码方案之间的比较:
方案1,由节点N0发送编码分段8⊕2⊕3,此时,节点N1可以通过解码获得分段8的信息,节点N2可以通过解码获得分段3的信息,节点N4可以通过解码获得分段2的信息,而节点N3无法解码该编码分段。
方案2,由节点N1发送编码分段4⊕2⊕3,此时,节点N0可以通过解码获得分段4的信息,节点N2可以通过解码获得分段3的信息,节点N3可以通过解码获得分段2的信息,且节点N4可以通过解码获得分段2的信息。
方案3,由节点N2发送编码分段8⊕2⊕4,此时,节点N0可以通过解码获得分段4的信息,节点N1可以通过解码获得分段8的信息,节点N4可以通过解码获得分段2的信息,而节点N3无法解码该编码分段。
方案4,由节点N3发送编码分段1⊕6,此时,节点N0可以通过解码获得分段1的信息,节点N1可以通过解码获得分段6的信息,节点N4可以通过解码获得分段1的信息,而节点N2无法解码该编码分段。
方案5,由节点N4发送编码分段8⊕3⊕4,此时,节点N0可以通过解码获得分段4的信息,节点N1可以通过解码获得分段8的信息,节点N2可以通过解码获得分段3的信息,且节点N3可以通过解码获得分段8的信息。
从上述5中可能的编码方案来看,采用方案2或方案5均能够使其余4个节点都获得原始分段的信息,因此,可以认为这两种方案就是最优的网络编码方案。如果能够找出最优的网络编码方案即可以最大限度地提高数据传输的效率,减小数据的上传带宽。
下面将通过本发明的具体示例详细描述获得最优网络编码方案的几种方法。
方法1,通过完全搜索找出通过一次编码分段的传送让最多的节点解码获得原始分段的编码方案。简单地说,就是通过遍历每个节点的所有编码方案,从中找出通过一次编码分段的传送能让最多的节点获得原始分段的信息的编码方案,从而确定当前发送该编码分段的发送节点以及待发送分段集合。需要说明的是,该方法在文件的分段数目以及参与下载的节点数目较多时计算复杂度较高。为了降低计算的复杂度,本发明的实施例还提供了如下的方法。
方法2,扩展的COPE(COPE-E)网络编码方法。COPE算法是一种著名的网络编码方案。与本发明实施例所示的应用环境不同的是,COPE算法多用在无线环境的单播业务中,此时,网络中的节点各自要发送一些数据包给其它节点,因为无线环境的广播特性,所以节点可以监听到并不是发送给自己的数据包,但是,每个数据包只有一个节点需要,而且COPE算法的搜索只牵扯单个发送节点,而不需要从多个节点中选择合适的节点,因此,如果将COPE算法应用到P2P业务中,需要对COPE算法进行改进。本发明实施例提供的COPE-E方法具体如图7所示,主要包括如下步骤:
步骤211,从PG内M个节点中选择一个节点i,并将该PG内除节点i之外的其他M-1个节点设置为节点i的邻节点;若全部节点都选择完了,执行步骤220;
步骤212,从节点i的输出队列头部取出分段p;
步骤213,如果节点i的邻节点中有节点需要分段p,则令待发送分段集合Natives为p,并执行步骤214;如果节点i的邻节点中没有节点需要分段p,则从节点i的输出队列中删除分段p,并返回步骤212;
步骤214,从节点i的输出队列取出分段p的下一个分段pj;
步骤216,如果编码分段Natives⊕pj的解码概率prob大于预先设置的解码概率门限G,则执行步骤217;如果编码分段Natives⊕pj的解码概率prob小于或等于预先设置的解码概率门限G,则执行步骤218;
步骤217,令节点i的待发送分段集合Natives=Natives∪pj,若pj是输出队列的最后一个包,则记录下当前Natives中包的数目Num_coded_packet_i,执行步骤211;否则,执行步骤219;
步骤218,若分段pj存在下一个分段,则执行步骤219;否则,返回步骤211,从PG内的M个节点中选择另外的节点,直至找出解码概率大于预先设置的解码概率门限G的编码分段;
步骤219,从节点i的输出队列取出分段pj的下一个分段,仍记为pj,并返回步骤215;
步骤220,挑出Num_coded_packet_i中最大的值,然后令其对应的节点i为发送节点,编码方案即为节点i中记录的Natives,然后结束。
通过上述方法确定当前的发送节点以及待发送分段集合后,当前的发送节点将待发送分段集合中的分段进行网络编码后发送至PG内的相邻节点。与方法1所示的全搜索方法相比,上述COPE-E方法的复杂度要小很多。此外,在上述方法中,如果当前从输出队列中取出的分段和输出队列头部的分段做了模加之后,若是不能满足预先设置的解码概率门限,则这个分段就不能放入待发送分段集合中参与进一步网络编码。但是事实上,在有多个接收节点存在的情况下,即使这个从输出队列中取出的分段和输出队列头部的分段的模加不能满足解码概率的门限,当前的分段pj也有可能和它的下一个分段一起同输出队列头部的分段p模加,从而满足解码概率门限。为了解决这一问题,进一步提高数据传输的性能,提出了方法3:双保险(double check,DCK)方法。
方法3,DCK网络编码方法。本发明实施例提供的DCK方法如图8所示,具体包括如下步骤:
步骤221,从PG内M个节点中选择一个节点i,并将该PG内除节点i之外的其他M-1个节点设置为节点i的邻节点;若全部节点都选择完了,执行步骤236;
步骤222,从节点i的输出队列头部取出分段p;
步骤223,如果节点i的邻节点中有节点需要分段p,则令待发送分段集合Natvies为p;如果节点i的邻节点中没有节点需要分段p,则从节点i的输出队列中删除分段p,并返回步骤222;
步骤224,从节点i的输出队列取出分段p的下一个分段pj;
步骤226,如果编码分段Natives⊕pj的解码概率prob大于预先设置的解码概率门限G,则执行步骤227;如果编码分段Natives⊕pj的解码概率prob小于或等于预先设置的解码概率门限G,则执行步骤228;
步骤227,令节点i为当前的发送节点,当前待发送分段集合Natives=Natives∪pj,若pj是输出队列的最后一个包,则记录下当前Natives中包的数目Num_coded_packet_i,执行步骤221;否则,执行步骤235;
步骤228,从节点i的输出队列取出分段pj的下一个分段pk;
步骤229,统计节点i的邻节点中能够解码编码分段Natives⊕pj⊕pk的节点数目count,并计算编码分段Natives⊕pj⊕pk的解码概率
步骤230,如果编码分段Natives⊕pj⊕pk的解码概率prob大于预先设置的解码概率门限G,则执行步骤231;如果编码分段Natives⊕pj⊕pk的解码概率prob小于或等于预先设置的解码概率门限G,则执行步骤232;
步骤231,令节点i为当前的发送节点,待发送分段集合Natives=Natives∪pj∪pk,若pk是输出队列的最后一个分段,则记录下当前Natives中包的数目Num_coded_packet_i,然后执行步骤221;否则,执行步骤234;
步骤232,若分段pk存在下一个分段,则执行步骤233;否则,记录下当前Natives中包的数目Num_coded_packet_i,然后执行步骤221;
步骤233,从节点i的输出队列取出分段pk的下一个分段,仍记为pk,并返回步骤229;
步骤234,从节点i的输出队列取出pk的下一个分段,记为pj,并返回步骤225;
步骤235,从节点i的输出队列取出pj下一个分段,仍记为pj,并返回步骤225;
步骤236,挑出Num_coded_packet_i中最大的值,然后令其对应的节点i为发送节点,编码方案即为其中记录的Natives,然后结束。
通过上述方法确定当前的发送节点以及待发送分段集合后,当前的发送节点将待发送分段集合中的分段进行网络编码后发送至PG内的相邻节点。
下面将通过具体的示例比较DCK方法和COPE-E网络编码方法的性能。假设节点N0已下载有分段号为1,5和6的分段。且输出队列为分段5,1,6;节点N1已下载有分段号为1,2和5的分段,且输出队列为分段5,1,2;节点N2已下载有分段号为1,4和5的分段,且输出队列为分段5,1,4;节点N3已下载有分段号为1,3和5的分段,且输出队列为分段5,1,3;节点N4已下载有分段号为1,4和6的分段,且输出队列为分段4,1,6;节点N5已下载有分段号为3,5和6的分段,且输出队列为分段5,3,6。同时假设解码概率门限为0.6。根据方法2所述的COPE-E方法,先从节点N0开始搜索,得到的结果为当前的发送节点N0,待发送分段集合为分段5和6,此时的解码概率为0.8。根据方法3所述的DCK方法,也先从节点N0开始搜索,得到的结果为当前的发送节点N0,待发送分段集合为分段5、1和6,此时的解码概率为1。由此可以看出,DCK网络编码方法比COPE-E网络编码方法具有更好的性能。
在确定了发送节点以及待发送分段集合后,在步骤3,发送节点将对待发送分段集合中的分段采用传统的编码方法进行加权模加,也即将待发送分段集合中的每个分段分别与该分段对应的编码系数相乘后再进行模加,得到编码分段;然后再将编码分段以及编码系数发送至PG内的其他节点。其中,每个分段的编码系数是在一个有限域中随机生成的。
需要说明的是,上述确定发送节点以及待发送分段集合的方法可以采用集中控制式的方式由网络中的控制设备实现。在这种情况下,在控制设备确定了PG之后,PG中的节点在每下载完一个分段之后,均需要向控制设备上报自身已下载的分段,控制器在获知了PG中每个节点已下载的分段之后即可采用上述方法1,方法2或方法3确定当前的发送节点以及待发送分段集合,并通知该发送节点对待发送分段集合中的分段进行网络编码,并在得到编码分段后发送给PG内的其他节点。
除了上述集中控制的方式之外,还可以采用分布式的方式由PG中的各个节点实现上述网络编码方法。在这种情况下,网络中的控制器在建立了PG之后会将确定的PG通知该PG中的各个节点,各个节点在每下载完一个分段之后,均需要向PG内的其他节点广播自身已下载的分段,各个节点在获知了PG中每个节点已下载的分段之后可分别采用上述方法1,方法2或方法3确定当前的发送节点以及待发送分段集合,并判断自身是否为当前的发送节点,如果自身为当前的发送节点,则对待发送分段集合中的分段进行网络编码,得到编码分段后,发送给PG内的其他节点。
对应上述基于网络编码的数据传输方法,本发明的实施例还提供了一种基于网络编码的数据传输装置,如图9所示,该装置主要包括:
PG建立单元,用于根据各个节点已下载的待下载文件的分段建立PG,其中,所建立PG内所有节点已下载的待下载文件的分段的并集等于待下载文件所包含全部分段的集合;
发送节点确定单元,用于根据PG内每个节点已下载的待下载文件的分段确定发送编码分段的发送节点以及待发送分段集合;以及
位于每个节点的网络编码单元,用于对待发送分段集合中的分段进行网络编码,生成编码分段,并将生成的编码分段发送给PG内的其他节点。
其中,若每个节点在下载完一个分段后都向网络中的控制设备上报自身的节点ID以及已下载的分段的序号,上述PG建立单元可以根据每个节点已下载的分段的序号建立PG,否则,PG建立单元可以根据图5所示的方法建立PG。
另外,发送节点确定单元可以采用上述方法1,2或3所示的网络编码方法确定发送编码分段的发送节点以及待发送分段集合。
如前所述,位于每个节点的网络编码单元将待发送分段集合中的每个分段分别与该分段对应的编码系数相乘后再进行模加,得到编码分段,然后再将编码分段以及编码系数发送至PG内的其他节点。其中,每个分段的编码系数是在一个有限域中随机生成的。
对应于集中控制的方式,上述PG建立单元和发送节点确定单元都位于网络侧的控制设备中。此时,发送节点确定单元在确定了发送编码分段的发送节点以及待发送分段集合后,将待发送分段集合通知确定的发送节点,由发送节点的网络编码单元对待发送分段集合中的分段进行网络编码,生成编码分段,并将生成的编码分段发送给PG内的其他节点。
对应于分布式的方式,上述PG建立单元位于网络侧的控制设备中,而发送节点确定单元则位于每个节点中。此时,PG建立单元在建立了PG之后会将确定的PG通知该PG中的各个节点,各个节点在每下载完一个分段之后,均需要向PG内的其他节点广播自身已下载的分段,各个节点中的发送节点确定单元接收每个节点广播的各个节点已下载的分段,在获知了PG中每个节点已下载的分段之后可分别采用上述方法1,方法2或方法3确定当前的发送节点以及待发送分段集合,并判断自身是否为当前的发送节点,如果自身为当前的发送节点,则由网络编码单元对待发送分段集合中的分段进行网络编码,然后发送给PG内的其他节点。
为了详细说明本发明实施例的技术效果,下面对本发明实施例所述的数据传输方法进行了仿真,仿真时使用的各种参数如下表2所示:
节点数目 | 5-200 |
文件大小 | 10-200分段 |
动态离开 | 下载完成后再停留p轮,p:0-100 |
下载容量 | 每轮1分段 |
上传容量 | 每轮1分段 |
形成PG前的下载模式 | 随即下载 |
解码概率门限 | 0.6 |
表2
图10显示了采用不同的网络编码方法时,节点数目与每个节点的下载时间的关系曲线。图11显示了采用不同的网络编码方法时,节点数目与平均下载时间的关系曲线。图12显示了采用不同的网络编码方法时,节点数目与所需上传带宽的关系曲线。在图10、图11以及图12中,带圆形的曲线代表在传统多播(Multicast)方式下节点数目(Node Number)与每个节点的下载时间的关系曲线;带方形的曲线代表采用COPE-E网络编码方法时节点数目与每个节点的下载时间的关系曲线;带菱形的曲线代表采用DCK网络编码方法时节点数目与每个节点的下载时间的关系曲线。从图10、图11和图12可以看出,与传统的多播方式相比,采用COPE-E网络编码方法和DCK网络编码方法每个节点的下载时间、平均下载时间以及所需的上传带宽均有减少,而且DCK网络编码方法比COPE-E网络编码方法具有更好的性能。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (13)
1.一种基于网络编码的数据传输方法,其特征在于,包括:
根据各个节点已下载的分段建立对等节点组PG,其中,所建立PG内所有节点已下载的分段的并集等于待下载文件所包含全部分段的集合;
根据PG内每个节点已下载的分段确定发送编码分段的发送节点以及待发送分段集合;以及
发送节点对待发送分段集合中的分段进行网络编码,生成编码分段,并将生成的编码分段发送给PG内的其他节点。
2.根据权利要求1所述的方法,其特征在于,进一步包括:PG中的节点在每下载完一个分段之后,向网络中控制设备上报自身已下载的分段。
3.根据权利要求1所述的方法,其特征在于,进一步包括:在PG建立后,通知PG中的各个节点;PG内各个节点在每下载完一个分段之后,向PG内的其他节点广播自身已下载的分段。
4.根据权利要求1或2或3所述的方法,其特征在于,根据各个节点已下载的待下载文件的分段建立PG包括:网络中的控制器接收节点上报的包含节点标识ID以及已下载分段序号的通知,记录节点的ID以及下载的分段序号,并根据已记录的每个节点已下载的分段的序号选择适合的节点构成PG。
5.根据权利要求1或2或3所述的方法,其特征在于,根据各个节点已下载的待下载文件的分段建立PG包括:
确定待下载文件包含的分段数目N;
根据在分段数N以及节点数M的情况下所述M个节点已下载分段的并集等于待下载文件所有分段的概率Pc和一个节点完成下载的比例Pini的关系设置适合的下载比例门限pth,使得在p>pth时Pc趋近于1;
在接收到每个节点上报的各个节点已下载分段的数目后,根据待下载文件包含的分段数目N,计算每个节点完成的下载比例;以及
当所有参与文件下载的M个节点完成的下载比例大于或等于下载比例门限pth时,让这些节点组成PG。
6.根据权利要求1或2或3所述的方法,其特征在于,根据PG内每个节点已下载的待下载文件的分段确定发送编码分段的发送节点以及待发送分段集合包括:遍历每个节点的所有编码方案,从中找出通过一次编码分段的传送能让最多的节点获得原始分段的信息的编码方案,确定该编码方案对应的发送节点以及待发送分段集合。
7.根据权利要求1或2或3所述的方法,其特征在于,根据PG内每个节点已下载的待下载文件的分段确定发送编码分段的发送节点以及待发送分段集合包括:
步骤211,从PG内M个节点中选择一个节点i,并将该PG内除节点i之外的其他M-1个节点设置为节点i的邻节点;若全部节点都选择完了,执行步骤220;
步骤212,从节点i的输出队列头部取出分段p;
步骤213,如果节点i的邻节点中有节点需要分段p,则令待发送分段集合Natives为p,并执行步骤214;如果节点i的邻节点中没有节点需要分段p,则从节点i的输出队列中删除分段p,并返回步骤212;
步骤214,从节点i的输出队列取出分段p的下一个分段pj;
步骤216,如果编码分段Natives⊕pj的解码概率prob大于预先设置的解码概率门限G,则执行步骤217;如果编码分段Natives⊕pj的解码概率prob小于或等于预先设置的解码概率门限G,则执行步骤218;
步骤217,令节点i的待发送分段集合Natives=Natives∪pj,若pj是输出队列的最后一个包,则记录下当前Natives中包的数目Num_coded_packet_i,执行步骤211;否则,执行步骤219;
步骤218,若分段pj存在下一个分段,则执行步骤219;否则,返回步骤211,从PG内的M个节点中选择另外的节点,直至找出解码概率大于预先设置的解码概率门限G的编码分段;
步骤219,从节点i的输出队列取出分段pj的下一个分段,仍记为pj,并返回步骤215;
步骤220,挑出Num_coded_packet_i中最大的值,然后令其对应的节点i为发送节点,编码方案即为节点i中记录的Natives,然后结束。
8.根据权利要求1或2或3所述的方法,其特征在于,根据PG内每个节点已下载的待下载文件的分段确定发送编码分段的发送节点以及待发送分段集合包括:
步骤221,从PG内M个节点中选择一个节点i,并将该PG内除节点i之外的其他M-1个节点设置为节点i的邻节点;若全部节点都选择完了,执行步骤236;
步骤222,从节点i的输出队列头部取出分段p;
步骤223,如果节点i的邻节点中有节点需要分段p,则令待发送分段集合Natvies为p;如果节点i的邻节点中没有节点需要分段p,则从节点i的输出队列中删除分段p,并返回步骤222;
步骤224,从节点i的输出队列取出分段p的下一个分段pj;
步骤226,如果编码分段Natives⊕pj的解码概率prob大于预先设置的解码概率门限G,则执行步骤227;如果编码分段Natives⊕pj的解码概率prob小于或等于预先设置的解码概率门限G,则执行步骤228;
步骤227,令节点i为当前的发送节点,当前待发送分段集合Natives=Natives∪pj,若pj是输出队列的最后一个包,则记录下当前Natives中包的数目Num_coded_packet_i,执行步骤221;否则,执行步骤235;
步骤228,从节点i的输出队列取出分段pj的下一个分段pk;
步骤230,如果编码分段Natives⊕pj⊕pk的解码概率prob大于预先设置的解码概率门限G,则执行步骤231;如果编码分段Natives⊕pj⊕pk的解码概率prob小于或等于预先设置的解码概率门限G,则执行步骤232;
步骤231,令节点i为当前的发送节点,待发送分段集合Natives=Natives∪pj∪pk,若pk是输出队列的最后一个分段,则记录下当前Natives中包的数目Num_coded_packet_i,然后执行步骤221;否则,执行步骤234;
步骤232,若分段pk存在下一个分段,则执行步骤233;否则,记录下当前Natives中包的数目Num_coded_packet_i,然后执行步骤221;
步骤233,从节点i的输出队列取出分段pk的下一个分段,仍记为pk,并返回步骤229;
步骤234,从节点i的输出队列取出pk的下一个分段,记为pj,并返回步骤225;
步骤235,从节点i的输出队列取出pj下一个分段,仍记为pj,并返回步骤225;
步骤236,挑出Num_coded_packet_i中最大的值,然后令其对应的节点i为发送节点,编码方案即为其中记录的Natives,然后结束。
9.根据权利要求1或2或3所述的方法,其特征在于,发送节点对待发送分段集合中的分段进行网络编码,生成编码分段包括:发送节点将待发送分段集合中的每个分段分别与该分段对应的编码系数相乘后再进行模加,得到编码分段,其中,每个分段对应的编码系数是在一个有限域中随机生成的。
10.根据权利要求5所述的方法,其特征在于,在PG建立后,如果有新的节点欲加入所述PG,则判断所述新的节点的下载比例Pini是否满足Pini>pth,如果是,允许所述新的节点加入所述PG;否则,不允许所述新的节点加入所述PG。
11.根据权利要求5所述的方法,其特征在于,根据节点间的相互位置动态调整下载比例门限pth。
12.一种基于网络编码的数据传输装置,其特征在于,包括:
位于网络侧控制设备的对等节点组PG建立单元,用于根据各个节点已下载的待下载文件的分段建立PG,其中,所建立PG内所有节点已下载的待下载文件的分段的并集等于待下载文件所包含全部分段的集合;
位于网络侧控制设备的发送节点确定单元,用于根据PG内每个节点已下载的待下载文件的分段确定发送编码分段的发送节点以及待发送分段集合,将待发送分段集合通知确定的发送节点;以及
位于每个节点的网络编码单元,用于对待发送分段集合中的分段进行网络编码,生成编码分段,并将生成的编码分段发送给PG内的其他节点。
13.一种基于网络编码的数据传输装置,其特征在于,包括:
位于网络侧控制设备的对等节点组PG建立单元,用于根据各个节点已下载的待下载文件的分段建立PG,其中,所建立PG内所有节点已下载的待下载文件的分段的并集等于待下载文件所包含全部分段的集合;
位于每个节点内的发送节点确定单元,用于根据PG内每个节点已下载的待下载文件的分段确定发送编码分段的发送节点以及待发送分段集合,并判断自身是否为当前的发送节点;以及
位于每个节点的网络编码单元,用于在自身为当前的发送节点时,对待发送分段集合中的分段进行网络编码,生成编码分段,并将生成的编码分段发送给PG内的其他节点。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110194533.4A CN102412928B (zh) | 2010-09-17 | 2011-07-07 | 一种基于网络编码的数据传输方法及装置 |
JP2011199493A JP5814710B2 (ja) | 2010-09-17 | 2011-09-13 | ネットワーク符号化に基づくデータ伝送方法および装置 |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010289982.2 | 2010-09-17 | ||
CN201010289982 | 2010-09-17 | ||
CN2010102899822 | 2010-09-17 | ||
CN201110194533.4A CN102412928B (zh) | 2010-09-17 | 2011-07-07 | 一种基于网络编码的数据传输方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102412928A true CN102412928A (zh) | 2012-04-11 |
CN102412928B CN102412928B (zh) | 2017-03-01 |
Family
ID=45914799
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110194533.4A Expired - Fee Related CN102412928B (zh) | 2010-09-17 | 2011-07-07 | 一种基于网络编码的数据传输方法及装置 |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP5814710B2 (zh) |
CN (1) | CN102412928B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105979284A (zh) * | 2016-05-10 | 2016-09-28 | 杨�远 | 移动终端视频共享方法 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109067856B (zh) * | 2018-07-18 | 2021-02-12 | 南京邮电大学 | 基于网络编码的WiFi direct多跳移动设备文件分享方法和系统 |
CN111459703B (zh) * | 2019-01-03 | 2024-03-19 | 深圳市茁壮网络股份有限公司 | 一种编码检测方法及系统 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1656749A (zh) * | 2002-06-06 | 2005-08-17 | 国际商业机器公司 | 数字内容分发系统、方法、程序及服务器和客户机 |
CN1913440A (zh) * | 2005-08-09 | 2007-02-14 | 张永敏 | 数据分块传输方法 |
US20090172157A1 (en) * | 2006-04-21 | 2009-07-02 | Yongmin Zhang | Method and Device for Content Transmission on P2P Network |
US20100094921A1 (en) * | 2008-10-13 | 2010-04-15 | Subhash Chandra Roy | Peer-To-Peer Distributed Storage |
CN101772938A (zh) * | 2007-08-21 | 2010-07-07 | 株式会社Ntt都科摩 | 带有在线缓存和对等转发的媒体流式传输 |
CN101911236A (zh) * | 2007-12-26 | 2010-12-08 | 日本Ae帕瓦株式会社 | 真空断路器的电极接点部件及其制造方法 |
CN201911236U (zh) * | 2010-12-16 | 2011-08-03 | 许娟 | 硅胶面包模具 |
-
2011
- 2011-07-07 CN CN201110194533.4A patent/CN102412928B/zh not_active Expired - Fee Related
- 2011-09-13 JP JP2011199493A patent/JP5814710B2/ja active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1656749A (zh) * | 2002-06-06 | 2005-08-17 | 国际商业机器公司 | 数字内容分发系统、方法、程序及服务器和客户机 |
CN1913440A (zh) * | 2005-08-09 | 2007-02-14 | 张永敏 | 数据分块传输方法 |
US20090172157A1 (en) * | 2006-04-21 | 2009-07-02 | Yongmin Zhang | Method and Device for Content Transmission on P2P Network |
CN101772938A (zh) * | 2007-08-21 | 2010-07-07 | 株式会社Ntt都科摩 | 带有在线缓存和对等转发的媒体流式传输 |
CN101911236A (zh) * | 2007-12-26 | 2010-12-08 | 日本Ae帕瓦株式会社 | 真空断路器的电极接点部件及其制造方法 |
US20100094921A1 (en) * | 2008-10-13 | 2010-04-15 | Subhash Chandra Roy | Peer-To-Peer Distributed Storage |
CN201911236U (zh) * | 2010-12-16 | 2011-08-03 | 许娟 | 硅胶面包模具 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105979284A (zh) * | 2016-05-10 | 2016-09-28 | 杨�远 | 移动终端视频共享方法 |
CN105979284B (zh) * | 2016-05-10 | 2019-07-19 | 杨�远 | 移动终端视频共享方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102412928B (zh) | 2017-03-01 |
JP2012065316A (ja) | 2012-03-29 |
JP5814710B2 (ja) | 2015-11-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106160937B (zh) | 一种实现码块分割的方法及装置 | |
JP6496740B2 (ja) | 次世代放送システム及び方法 | |
US10476528B2 (en) | Data packet processing method and device | |
CN108282247A (zh) | 一种控制信息传输方法及装置 | |
WO2016155458A1 (zh) | 传输参数确定方法及装置 | |
CN108449161B (zh) | 一种中继协作无线网络中基于网络编码的重传方法 | |
CN101322377B (zh) | 用跨层优化解决无线通信环境中ip缓冲延迟的方法和设备 | |
US20100202340A1 (en) | System and method of constructing a resource matrix for transmitting multicast broadcast service (mbs) data | |
CN101448337B (zh) | 联合网络编码与信道编码的用户协作方法 | |
CN101146079A (zh) | 基于遗传算法的正交频分复用系统子载波分配方法 | |
CN107872300B (zh) | 反馈信息处理方法、装置及系统、基站、终端 | |
CN107534501A (zh) | 用于在无线通信系统中的群组通信的方法与装置 | |
Hassanzadeh et al. | On coding for cache-aided delivery of dynamic correlated content | |
Bayat et al. | Coded caching over multicast routing networks | |
CN102412928A (zh) | 一种基于网络编码的数据传输方法及装置 | |
CN108494525A (zh) | 一种窄带物联网中重复次数与传输块大小联合的自适应选择方法 | |
CN103916223A (zh) | 一种基于遗传算法的d2d协作重传方法 | |
CN104410976B (zh) | 一种分布式端到端用户和蜂窝网络用户关联及时间分配方法 | |
CN108512637A (zh) | 一种ue、基站中的用于下行信息传输的方法和装置 | |
CN102684893B (zh) | 一种基于多媒体广播多播业务的自适应喷泉编码方法 | |
CN113132466B (zh) | 基于编码缓存的多接入通信方法、装置、设备及介质 | |
CN109194445A (zh) | 一种适用于短码长喷泉码的编译码优化方法 | |
CN104079389A (zh) | 移动广播业务的重传方法 | |
WO2017054571A1 (zh) | 一种数据传输方法、设备和系统 | |
CN110086573B (zh) | 一种基于网络编码与用户结对的数据传输方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20170301 Termination date: 20190707 |
|
CF01 | Termination of patent right due to non-payment of annual fee |